Pregunta

Necesito una biblioteca para MS VC6 que codifique datos muestreados en forma de matriz flotante, en un formato de archivo de audio, preferiblemente wav ¿También hay una biblioteca que pueda codificar las muestras en formato pcm y reproducirla directamente a través de la tarjeta de sonido sin guardar primero un archivo wav?

¿Fue útil?

Solución

Como se señaló, el formato de archivo WAV es muy simple. Para reproducir solo las muestras, use las funciones waveOut; están documentados.

Para convertir de una muestra PCM de 16 bits flotante a una firma, simplemente convierta la muestra al rango de 16 bits. Por ejemplo, suponiendo que una muestra en el rango de -1.0 a +1.0 se multiplique por 32767.0 y se convierta en un entero:

int16_t sample = static_cast<int16_t>(32767.0 * float_sample);

Una vez que los tenga, simplemente use las funciones waveOut * para reproducir las muestras.

Otros consejos

Parece libsndfile (www.mega-nerd.com/libsndfile/) y SndLib (ccrma.stanford.edu/software/snd/sndlib/) lo hará haz lo que quieras.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top