Domanda

Come per produrre un 1kHz frequenza e potenza / volume = 60% in Linux (Ubuntu)?

Ho bisogno di codice di esempio in C / C ++. Grazie!

È stato utile?

Soluzione

Date un'occhiata alla biblioteca PortAudio. http://www.portaudio.com/

E 'molto facile da usare, multi-piattaforma e viene fornito con un sacco di piccoli programmi di esempio. Tra le altre cose troverete uno che sintetizza e svolge un sinusoidale.

La modifica della frequenza e il volume è banale .. Se ricordo bene l'esempio era solo una singola pagina di codice di inizializzazione e compreso tutto.

Altri suggerimenti

Di seguito è come uscita un segnale di frequenza definita dall'utente (in hertz) e lunghezza (in millisecondi). Come impostare il volume, che non sono sicuro. Si noti che questo programma C solo fa una chiamata di sistema () per 'echo -e' quindi tecnicamente non è neppure bisogno di C per questo, ma ha chiesto così ho dato.

#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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top