Intenta interpretar el código de forma correcta antes de utilizarlo a tu trabajo si ttienes algo que aportar puedes dejarlo en la sección de comentarios.
Solución:
Parece que estás buscando Audacity, que es un editor de audio de código abierto multiplataforma. Una de sus características es permitirte generar tonos. Es un editor de audio multipista, por lo que puede crear fácilmente un tono estéreo.
Bajo la Generate
menú, puede crear tonos de forma de onda sinusoidal, de diente de sierra y cuadrada de frecuencia, amplitud y longitud arbitrarias sin la necesidad de grabar o necesitar archivos de entrada adicionales.
Podrías mirar speaker-test
que (en una máquina Arch) encuentro en el paquete alsa-utils.
speaker-test -c2 -t sine
ejecutado desde un xterm, me dio una onda sinusoidal de 440 Hz durante aproximadamente 6 segundos cada uno, alternando los altavoces izquierdo y derecho. En el xterm, proporcionó información sobre qué altavoz pensó que estaba usando.
De acuerdo con la página de manual, puede hacer ondas sinusoidales de frecuencia arbitraria y ruido rosa.
ffmpeg
ffmpeg puede hacerlo, como de costumbre.
Cree una sinusoidal mono de 1000 Hz de 5 segundos out.wav
archivo de sonido:
sudo apt-get install ffmpeg
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" out.wav
Estéreo en cambio con -ac 2
:
ffmpeg -f lavfi -i "sine=frequency=1000:duration=5" -ac 2 out.wav
El archivo será 2 veces más grande, y ffprobe
dirá que tiene 2 channels
en vez de 1 channel
.
Reproduce el audio durante 5 segundos sin crear un archivo:
ffplay -f lavfi -i "sine=frequency=1000:duration=5" -autoexit -nodisp
Juega para siempre hasta que te vuelvas loco:
ffplay -f lavfi -i "sine=frequency=1000" -nodisp
Documentación:
- https://ffmpeg.org/ffmpeg-filters.html#sine
- https://www.ffmpeg.org/ffmpeg-devices.html#lavfi
La otra sección bajo Fuentes de audio documenta otros algoritmos de generación de sonido útiles además de sine
p.ej:
anoisesrc
: ruidos de varios colores, por ejemplo, blanco, rosa, marrónaevalsrc
toma expresiones matemáticas arbitrarias y, por lo tanto, debería poder producir formas de onda triangulares (expresión TODO)
Bibliografía:
- https://superuser.com/questions/724391/how-to-generate-a-sine-wave-with-ffmpeg
- https://stackoverflow.com/questions/11831214/how-to-run-ffplay-as-a-window-less-process/53295994#53295994
Probado en Ubuntu 18.04, ffmpeg 3.4.6.
Ejemplo de generación de audio Minimal C sin bibliotecas adicionales
Solo por diversión: https://stackoverflow.com/questions/732699/how-is-audio-represented-with-numbers-in-computers/36510894#36510894
Si aceptas, eres capaz de dejar un tutorial acerca de qué te ha impresionado de este tutorial.