Duchamp
19-11-2010, 17:54
Ciao a tutto il forum,
sono alle prese con la lettura di un wave. Non voglio tediarvi con specifiche, header o cose strane, vi dirò solo che c'è un'informazione relativa alla lunghezza in byte del file:
Subchunk2Size == NumSamples * NumChannels * BitsPerSample/8
In poche parole questo Subchunk2size contiene la dimensione del wave considerando anche il numero di campioni, di canali, il bitrate e così via. Insomma, le info giuste per allocare un array in memoria.
Ma ecco il mio dubbio: essendo una dimensione in byte, io allocherò con:
float *wave = (float *) malloc(Subchunk2Size * sizeof(float))
oppure semplicemente
float *wave = (float *) malloc(Subchunk2Size)
?
Naturalmente il mio esempio usa float, perchè immagino di avere un wave con campioni in virgola mobile.
Io sono più propenso verso la seconda modalità, ma i dubbi mi assalgono.
Ringrazio per qualsiasi delucidazione possiate darmi :)
sono alle prese con la lettura di un wave. Non voglio tediarvi con specifiche, header o cose strane, vi dirò solo che c'è un'informazione relativa alla lunghezza in byte del file:
Subchunk2Size == NumSamples * NumChannels * BitsPerSample/8
In poche parole questo Subchunk2size contiene la dimensione del wave considerando anche il numero di campioni, di canali, il bitrate e così via. Insomma, le info giuste per allocare un array in memoria.
Ma ecco il mio dubbio: essendo una dimensione in byte, io allocherò con:
float *wave = (float *) malloc(Subchunk2Size * sizeof(float))
oppure semplicemente
float *wave = (float *) malloc(Subchunk2Size)
?
Naturalmente il mio esempio usa float, perchè immagino di avere un wave con campioni in virgola mobile.
Io sono più propenso verso la seconda modalità, ma i dubbi mi assalgono.
Ringrazio per qualsiasi delucidazione possiate darmi :)