View Full Version : come vengono rappresentati i file wav?
sto cercando di fare un codec audio, vorrei prima riuscire a capire come vengono rappresentati i file wav.
so che vengono campionati a 44 khz/sec con risoluzione a 16 bit, ecco quali informazioni vengono scritte all'interno del file wav?
TheFuture
16-08-2004, 10:11
Prova a vedere qui
http://mariottim.interfree.it/doc12b_i.htm
grazie ho capito alcune cose, l'unica cosa che mi resta da capire è quale informazione venga codificata a 16bit!
da quello che ho capito funziona cosi, la campionatura avviene 44100 volte al sec, x ogni campione viene memorizzata l'ampiezza del segnale audio! ecco dovrebbe essere l'ampiezza che viene codificata a 16 bit!
edivad82
16-08-2004, 19:42
Originariamente inviato da khri81
up
guardalo su un piano cartesiano...l'ascissa (x) è il progressivo dei sample...
l'ordinata (y) è il valore sample con fondo scala (in questo caso) di 16 bit, ovvero 65535
ciao, ok ho capito, il problema è che quando vado a leggere un file wav con un programmino fatto da me in c, mi trova dei numeri che superano di gran lunga i 65535, cioè il numero max rappresentabile con un intero a 16 bit!
è questo che nn riesco a capire!
avvelenato
17-08-2004, 16:54
Originariamente inviato da khri81
ciao, ok ho capito, il problema è che quando vado a leggere un file wav con un programmino fatto da me in c, mi trova dei numeri che superano di gran lunga i 65535, cioè il numero max rappresentabile con un intero a 16 bit!
è questo che nn riesco a capire!
hai escluso l'header del file?
perché, a meno ché non sia in formato raw pcm, immagino che il wav avrà un header.
btw, ogni numero a 16bit rappresenta il valore istantaneo della pressione acustica (sì, proprio la pressione dell'aria, perché come sai le onde sonore si propagano tramite vibrazioni nell'aria e quindi variazioni della pressione.)
dovrebbero essere in formato pcm! allora io leggo 2 byte alla volta, aspetta gli headers cosa sarebbero?
sono in formato wav, quindi ci sono gli headers, come faccio ad escludere tutti i byte che riguardano gli headers e a tenere i byte che codificano l'audio?
avvelenato
17-08-2004, 18:39
l'header è la testata, la parte dove c'è descritto il file, nel sito
http://mariottim.interfree.it/doc12b_i.htm
viene spiegato a puntino.
praticamente dovresti leggerti byte per byte i primi tot bytes, interpretarli (magari mettere un controllo per esser sicuro si tratti di un wav), e arrivato alla parte data potresti leggere due bytes alla volta per trarne un valore.
come farlo praticamente non lo so, non tocco il c / c++ da tantissimo....... :rolleyes: :muro:
ti ringrazio mi metto al lavoro, programmare nn è un prob sono un programmatore in c++, il programmino è già fatto, solo devo interpretare i byte che leggo dal file wav!
cmq ti ringrazio mi metto all'opera. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.