Pregunta

Como salida de un 1 kHz de frecuencia y potencia / volumen = 60% en Linux (Ubuntu)?

Necesito código de ejemplo en C / C ++. Gracias!

¿Fue útil?

Solución

Tome un vistazo a la biblioteca PortAudio. http://www.portaudio.com/

Es muy fácil de usar, multiplataforma y viene con un montón de pequeños programas de ejemplo. Entre otras cosas se encuentra uno que sintetiza y reproduce una onda sinusoidal.

Cambio de frecuencia y el volumen es trivial .. Si no recuerdo mal el ejemplo era más que una sola página de código de inicialización y que incluye todo.

Otros consejos

A continuación se muestra la forma de salida para un pitido de la frecuencia definida por el usuario (en hercios) y la longitud (en milisegundos). Cómo ajustar el volumen, que no estoy seguro. Tenga en cuenta que este programa C justo hace una llamada al sistema () para 'echo -e' por lo que técnicamente ni siquiera necesita C para esto, pero se preguntó por lo que he dado.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[])
{
   long freq;
   long len;
   char cmd[60];

   if (argc != 3)
   {
       printf("Usage: %s freq_hz length_ms\n", argv[0]);
       return 1;
   }

   freq = strtol(argv[1],(char**)NULL,10);
   len = strtol(argv[2],(char**)NULL,10);

   sprintf(cmd,"echo -e \"\33[10;%ld]\33[11;%ld]\a\33[10]\33[11]\"",freq,len);
   system(cmd);

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