"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 tragischNochwas: 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 hilftachja, <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