Foros - Stratos

Programadores => Programación de audio => Mensaje iniciado por: Mixu en 06 de Febrero de 2013, 12:28:47 AM

Título: Mezclar varios sonidos en tiempos determinados en una canción.
Publicado por: Mixu en 06 de Febrero de 2013, 12:28:47 AM
Hola gente!

Teniendo un audio en .ogg (canción larga) necesito insertar varios .ogg's más con sonidos de pocos segundos (3 o 5 segundos quizás) y que resulte una canción con los sonidos esos de por medio, según la posición de tiempo indicada.

Es decir...

------------ canción larga------- continua la canción------------------
--- aquí un sonido ---- aqui otro sonido ----- aquí otro sonido----

La restricción es usar libsndfile.

Por lo que he estado leyendo... la cosa sería abrir en modo escritura la canción, y mirando los frames que tiene, dividirlos por el tiempo total de la canción para poder saber a qué frame específico pertenece cierto tiempo.
Entonces en ese frame escribir el sonido pero haciendo una media con el valor actual.

He visto estos dos ejemplos:
http://stackoverflow.com/questions/13437346/artifacts-when-mixing-wav-files-with-libsndfile
http://stackoverflow.com/questions/5671055/libsndfile-usage-joining-and-mixing-wav-files

Pero lo que no llego a entender es el 88200 del primero, y el

outdata = (data + data2) -(data)*(data2)/65535;

del segundo link.

Me podéis echar un cable?
Gracias!
Título: Re:Mezclar varios sonidos en tiempos determinados en una canción.
Publicado por: H-K en 06 de Febrero de 2013, 03:24:22 PM
Así a bote pronto, a mí el 88200 me suena a tamaño de buffer para almacenar un segundo en estéreo a 44100 Hz. No estoy seguro de a qué se refiere el segundo.