Question

Comment sortir un 1kHz de fréquence et de puissance / volume = 60% sous Linux (Ubuntu)?

J'ai besoin exemple de code en C / C ++. Merci!

Était-ce utile?

La solution

Jetez un oeil à la bibliothèque portaudio. http://www.portaudio.com/

Il est très facile à utiliser, multi-plateforme et vient avec beaucoup de petits programmes par exemple. Entre autres, vous trouverez un synthétisant et joue une onde sinusoïdale.

Modification de la fréquence et le volume est trivial .. Si je me souviens bien l'exemple était une seule page de code comprenant l'initialisation et tout.

Autres conseils

Ci-dessous est la façon de délivrer en sortie un signal sonore de fréquence définie par l'utilisateur (en hertz) et la longueur (en millisecondes). Comment régler le volume, que je ne suis pas sûr. Notez que ce programme C ne fonctionne tout simplement un système () pour « echo -e », même si techniquement, vous n'avez pas besoin C pour cela, mais vous demandé si j'ai donné.

#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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top