Ich möchte einen Soundcheck machen (Beep immer einen höher)



  • Ich wollte mit der Funktion 'Beep' im header <windows.h> Töne erzeugen von ganz unten bis ganz oben nach einander mit einer for-Schleife jedoch kam kein Ton bei mir.

    #include <iostream>
    #include <windows.h>
    
    int main()
    {
    	int FQ;
    
    	std::cout << "Soundcheck startet... \a";
    	Sleep(2*1000);
    	for(FQ = 100; FQ >= 800; FQ++)
    	{
    		Beep(FQ, 200);
    	}
    
    	std::cout << std::endl << std::endl << std::endl;
    
    	system("PAUSE");
    	return 0;	
    }
    

  • Mod

    Windowsversion < 7? Hat dein Rechner überhaupt einen Systemlautsprecher?



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ja Windows 8.1

    Jedoch funktioniert er nur bei der Schleife nicht... wenn ich einfach so

    int main {
        Beep(700, 200);
    
        system("PAUSE");
        return 0;
    }
    

    drauf zu greife funktioniert es


  • Mod

    crazyyzarc schrieb:

    Jedoch funktioniert er nur bei der Schleife nicht...

    Sag das doch gleich. Guck dir mal die Schleife genau an. Da stimmt was nicht.



  • SeppJ schrieb:

    crazyyzarc schrieb:

    Jedoch funktioniert er nur bei der Schleife nicht...

    Sag das doch gleich. Guck dir mal die Schleife genau an. Da stimmt was nicht.

    Ach was, das sieht verdammt gut aus.
    Wenn es später ist als übervorgestern dann leg los. :p

    Auch noch:
    Ausser für Debug-breakpoints hab ich eigentlich noch nie eine sinnvolle Anwendung für Sleep() gefunden.

    EDIT:
    Wenn heute später ist als übermorgen dann Beep wie ein Olympionike.
    übervorgestern hat sich einfach besser angehört. 🙂



  • Ich denke mal er spielt die Töne zu schnell ab? aber ich möchte sie in 1 Sekunden Abständen abspielen? = Richtig? 😃



  • Sleep(2*1000); // Was soll das?
    
    for(FQ = 100; FQ >= 800; FQ++) // Da wird nix abgespielt, weil der Schleifenkörper nie ausgeführt wird. Versuch es mal mit <=
    


  • EOP schrieb:

    Sleep(2*1000); // Was soll das?
    
    for(FQ = 100; FQ >= 800; FQ++) // Da wird nix abgespielt, weil der Schleifenkörper nie ausgeführt wird. Versuch es mal mit <=
    

    Ich will nicht dass direkt der Ton rauskommt und deshalb mach ich immer 1-2 Sekunden Pause. Es geht jetzt danke aber wie mache ich es jetzt dass er nicht nicht eine Frequenz pro "Sekunde" geht sondern in 100er Schritte ? Ich habs so versucht aber funktionierte leider nicht:

    for(FQ = 500; FQ <= 800; FQ+100)
    


  • crazyyzarc schrieb:

    Ich habs so versucht aber funktionierte leider nicht:

    for(FQ = 500; FQ <= 800; FQ+100)
    

    Nur planlos probieren bringt nix.

    Sleep ausserhalb der Schleife und was soll FQ+100 denn machen?
    Gehen Sie zurück auf Start und ziehen keine 2000 € ein.
    Dir fehlt es an den einfachsten C/C++ Kenntnissen. Rumpfriemeln hilft da nix.
    Ich bin jetzt raus aus der Nummer. Dachte es wäre nur ein Schreibfehler, aber offensichtlich ist Beepen und Sleepen und Programmierung generell nicht dein Ding.



  • OK, bringt wahrscheinlich nix, aber hier ist das was du wahrscheinlich willst:

    int FQ;
    for(FQ = 100; FQ <= 800; FQ += 100)
    {
    	Beep(FQ, 200);
    	Sleep(2*1000);
    }
    

    Jetzt bin ich aber endgültig raus aus dieser Nummer.



  • Okay ich bin auch nicht ein Alleswisser ich bin neu in der Sache, ist das schlimm? Nein ist es nicht ich brauche nur eine Hilfe darin und Sleep kann ich doch benutzen wo ich will? Ist ja mein Code musst du ja nicht benutzen 🙂 Ich will nur Hilfe, Tipps & Tricks sofern es nicht so viel verlangt ist :o

    Ach ja mit dem Sleep es soll bewirken, dass es nicht so schnell ist und hab es eh jetzt rausgenommen da es jetzt irgendwie zu langsam ist



  • crazyyzarc schrieb:

    Ich will nur Hilfe, Tipps & Tricks sofern es nicht so viel verlangt ist :o

    Ist es nicht. Das ist ja wohl der Zweck dieses Forums.

    Tut mir Leid wenn ich etwas unfreundlich war. Bin halt manchmal so.
    Werde an mir arbeiten wenn du versprichst dir ein C/C++ Buch zu schnappen (genug links im Forum) und etwas zu lernen.

    Trial + error bringt in der Programmierung nicht viel.


Anmelden zum Antworten