Frage

Wie zur Ausgabe einer Frequenz 1 kHz und Leistung / Volumen = 60% in Linux (Ubuntu)?

Ich brauche Beispielcode in C / C ++. Dank!

War es hilfreich?

Lösung

Werfen Sie einen Blick auf die Portaudio-Bibliothek. http://www.portaudio.com/

Es ist sehr einfach zu bedienen, Cross-Plattform und kommt mit vielen kleinen Beispielprogrammen. Unter anderem finden Sie einen finden, der eine Sinuswelle synthetisiert und spielt.

Ändern Frequenz und Lautstärke ist trivial .. Wenn ich mich recht erinnere das Beispiel war nur eine einzelne Seite von Code einschließlich der Initialisierung und alles.

Andere Tipps

Unten ist, wie ein akustisches Signal von benutzerdefinierter Frequenz auszugeben (in Hertz) und Länge (in Millisekunden). Wie die Lautstärke einzustellen, dass ich nicht sicher bin. Beachten Sie, dass das C-Programm nur ein System tut () Aufruf ‚echo -e‘ so technisch brauchen Sie nicht einmal C für diese, aber Sie gefragt, so gab ich.

#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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top