PDA

View Full Version : gestione audio in c++


ultio
22-03-2003, 18:28
qualcuno mi puņ dare qualche indicazione?
non mi interessa riprodurre audio, vorrei invece ottenere ad esempio le linee di picco, per elaborazioni successive
grazie ciao

misterx
22-03-2003, 19:32
Originally posted by "ultio"

qualcuno mi puņ dare qualche indicazione?
non mi interessa riprodurre audio, vorrei invece ottenere ad esempio le linee di picco, per elaborazioni successive
grazie ciao


non ho capito se intendi leggere dal file picchi massimi e minimi!!!

cmq, non č molto difficile

ultio
22-03-2003, 19:50
si, mi servono solo i picchi...
hai un link da darmi?
grazie :D :D

misterx
22-03-2003, 19:58
http://people.msoe.edu/~taylor/examples/wav.xml

ultio
22-03-2003, 20:00
grazie mille, ora lo guardo :D

misterx
22-03-2003, 20:11
tieni presente che una volta definite le strutture č abbastanza facile leggere i dati di un file WAV


il significato dei membri delle strutture lo trovi sul win32 SDK


struct intestazione {
char riff[4];
DWORD filesize;
char rifftype[4];
} RiffHeader;

struct identif_chunck{
char chunk_id[4];
DWORD chuncksize;
} Chunck;

struct resto{
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
} WAVEFORMAT;

struct dati_del_wav {
char chunck_data[4];
DWORD nc;
} intdati;



aperto il file:

fp = fopen("miowav.wav"rb");
if(!fp) return;


fread(&RiffHeader,sizeof(RiffHeader),1,fp);

fread(&Chunck,sizeof(Chunck),1,fp);

fread(&WAVEFORMAT,sizeof(WAVEFORMAT),1,fp);

fread(&intdati,sizeof(intdati),1,fp);


for(i=0; i<intdati.nc/4; i++){
fread(&left,sizeof(left),1,fp); // canale sx
fread(&right,sizeof(right),1,fp); // canale dx
}