"Melodie" aus dem PC-Speaker



  • Also ich programmiere gerade so ein bißchen in der Berufsschule mit c++ (mit dem Dev-C++) vor mich hin. Da ich beruflich eh andere Sprachen brauche kann ich auch nur das was wir da in der Schule machen (und damit sehr wenig).

    Jetzt machen wir ein Projekt und ich bin viel zu früh fertig und möchte deshalb ein paar Spielereien einbauen. U.a. eine kleine Melodie die aus dem PC-Speaker... Ist das möglich? Ist das mit geringem Aufwand möglich?
    Wenn einer nen Tipp fände ich das sehr nett, wenn nicht ist das auch nicht tragisch

    Nochwas: Farbiger Text mit cout geht nicht, oder?

    Vielen Dank

    Taggart



  • Machs halt mit:

    Beep(DWORD dwfreq, DWORD dwDuration);

    also erster Parameter die Frequenz des Tons, zweiter die Dauer in Millisekunden.
    Muss thalt für a Melodie a haufn Beeps hintereinander schachteln.
    Hoff das hilft

    achja, <windows.h> noch inkludieren



  • Das ist erstmal genau das was ich gesucht habe...
    Weiß jetzt auch noch jemand wie man Noten in Frequenz und Länge umrechnet?

    Danke schon mal

    Taggart



  • hi

    ich hatte mal ein lied komponiert.. mit dem djgpp geht das auch mit
    sound()
    und nosound().

    dazwischen brauchte ich delays.

    ein alter borland kann es so auch noch.
    ansonsten halt windows.

    //1048 Hertz    1140 Hertz    1200 Hertz    1288 Hertz    1414 Hertz
    
    //1504 Hertz    1587 Hertz    1708 Hertz    1860 Hertz    1940 Hertz
    
    //enum HERTZ{ a=1048, b=1140, c=1200, d=1288, e=1414, f=1504, g=1587, h=1708,
     ii=1860, j=1940 };
    /* Reine Stimmung Temperierte Stimmung
    c 528 Hz      528 Hz
    h 495 Hz   498,4 Hz
    b - - 470,4 Hz
    a 440 Hz   444,0 Hz
    gis - - 419,1 Hz
    g 396 Hz   395,6 Hz
    fis -  - 373,4 Hz
    f 352 Hz   352,4 Hz
    e 330 Hz   332,6 Hz
    dis - - 314,0 Hz
    d 297 Hz   296,3 Hz
    cis - - 279,7 Hz
    c 264 Hz      264 Hz
    */
    


  • farbiger text mit cout in standard c++ geht nicht. da brauchste api oder etwas ähnliches



  • Also, standard ist es, wie Spyro schon schrieb, nicht!
    Mit windows.h gehts dann aber ganz bequem, es stellt sich dann halt die Frage, inwieweit dein Programm portabel sein soll bzw. welches OS du hast.
    Bunten Text kannst du beispielsweise so ausgeben:

    #include <iostream>
    #include <windows.h>
    
    int main()
    {
    	HANDLE OutputH;
    	OutputH = GetStdHandle(STD_OUTPUT_HANDLE);
    	SetConsoleTextAttribute(OutputH,FOREGROUND_BLUE); //z.B. Blau 
    	std::cout<<"Dies ist ein blauer Text"<<std::endl;
    	return 0;
    }
    

    Weitere Hinweise findest du da unter
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_screen_buffers.asp
    Du kannst dir auch mal die Improved Console anschauen, aber die ist IMHO etwas überladen, wenn es dir nur um den farbigen Text geht.
    Näheres dazu in der FAQ: http://www.c-plusplus.net/forum/viewtopic.phpt=39319
    Zur Soundausgabe: Unter Windows steht dir dafür auch die Funktion Beep() zur Verfügung:

    Beep
    The Beep function generates simple tones on the speaker. The function is synchronous; it does not return control to its caller until the sound finishes.

    BOOL Beep(
    DWORD dwFreq, // sound frequency, in hertz
    DWORD dwDuration // sound duration, in milliseconds
    );

    Parameters
    dwFreq
    Windows NT: Specifies the frequency, in hertz, of the sound. This parameter must be in the range 37 through 32,767 (0x25 through 0x7FFF).
    dwDuration
    Windows NT: Specifies the duration, in milliseconds, of the sound.
    Return Values
    If the function succeeds, the return value is nonzero.

    If the function fails, the return value is zero. To get extended error information, call GetLastError.

    Remarks
    Windows 95: The Beep function ignores the dwFreq and dwDuration parameters. On computers with a sound card, the function plays the default sound event. On computers without a sound card, the function plays the standard system beep.

    QuickInfo
    Windows NT: Requires version 3.1 or later.
    Windows: Requires Windows 95 or later.
    Windows CE: Unsupported.
    Header: Declared in winbase.h.
    Import Library: Use kernel32.lib.

    Es kommt halt darauf an, was du benutzen kannst / darfst / sollst ...
    Gruß
    E-the-Real



  • Ist die FAQ tot? Sowohl Farbe als auch die Erzeugung von Tönen wird dort beschrieben 😞 😞

    Thread closed.

    MfG SideWinder


Anmelden zum Antworten