Input von der Soundkarte: In einem C++ Skript analysieren



  • Hallo!
    Ich bin recht neu im Geschäft mit C++. Hauptsächlich schreibe ich Skripte für wissenschaftliche Zwecke unter Linux, die auf das C++ Framework ROOT (http://root.cern.ch) aufbauen.

    Mein Programm soll können: Die Frequenz eines Tonessignals bestimmen, das am Line-in oder dem Mikroeingang der Soundkarte anliegt.

    Momentan zeichne ich erst mal ein Soundfile auf und analysiere das dann anschließend mit meinem C++ Programm.
    Ich würde aber gerne einen Stream benutzen, den das C++ Programm direkt (live) analysiert, damit nicht eine riesige Tondatei aufgezeichnet werden muss.

    Geht das möglicherweise mit einer pipe?
    #arecord... | ./analyseSound

    Wäre um jeden Hinweis dankbar, wie man so etwas ungefähr machen könnte!

    Falls weitere Informationen benötigt werden kann ich ja auch mal Teile meines Skripts posten.

    Vielen Dank schon im Voraus, Phil



  • im prinzip reicht fuer dein programm das einlesen der standardeingabe

    int main(int argc, char *argv[])
    {
    
    	int in= 0;
    	while ( ( in = getchar() ) != EOF ){
    		std::cout << "tu was mit " << in << "\n" ;	
    	}
    
    	std::cout << std::endl;
    	return 0;
    
    }
    

    arecord wird aber nie ein eof liefern das musst du dir halt was ueberlegen, auch was ist wenn deine analyse der daten ein bissl langsam ist.


Anmelden zum Antworten