Come uscita di un 1kHz frequenza e potenza / volume = 60% in Linux (Ubuntu)?
Domanda
Come per produrre un 1kHz frequenza e potenza / volume = 60% in Linux (Ubuntu)?
Ho bisogno di codice di esempio in C / C ++. Grazie!
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;
}