PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sound



GU4RDI4N
19-04-2006, 18:21
hi,
Ich wollte in c++ mal versuchen mit sound anzufangen, also hab ich bei google gesucht und das gefunden:



Ein Weihnachtslied spielen
Füge ein clearscreen; ein, damit, der Output der vorherigen Versuche nicht im output-Fenster erscheinen.

Schaue in der Hilfe nach sound. Beachte #include <DOS.h>

Lasse den sound einige Millisekunden ertönen (delay) und stelle den sound wieder ab (nosound)

Teste in welchem Frequenzbereich, Du noch hörst.
Junge Leute: 16-20 000 Hz (=Hertz)
Sprache: 300-2500 Hz

Programmiere einen Dreiklang

mit while(1) {...} lasse man den Dreiklang unendlich oft laufen (1= true).

Beende das (unendliche Programm) durch die IDE mit CtrPause, dann Enter (= abbrechen)

Beende die unendliche Schleife per Programm durch eine Tastaturabfrage :
!kbhit(); (kbhit = if keyboard has been hit)
(! = logische Negation)
Lösung:
#include <stdio.h>
#include <DOS.h>
#include <conio.h>
iain (void)
{
// Anfangston zum Test
sound(1000);delay(1000);nosound();
while(!kbhit())
{
sound(400); // Hier der Fehler
delay(200);
sound(800);
delay(200);
sound(1600);
delay(600);
}
nosound ();
return 0;
}


wenn ich das bei mir compilieren will kommt das :




7 F:\coding\c++\tests\soundtest\main.cpp `sound' undeclared (first use this function)



ich SCHÄTZE mal das der code für linux is(ka wiso ich die header trotzdem hab), also wie mach ich sowas unter win?

Joghurt
20-04-2006, 23:11
Erstens ist das C, und kein C++.

Zweitens siehst du schon an DOS.h, dass das spezifisch für einen DOS-C Compiler (wahrscheinlich BorlandC) ist.

Der C- und auch C++-Standard sieht keine Funktionen für sound vor.

Schau dir mal SDL an. (Allerdings sprichst du damit dann die Soundkarte und nicht den PC Piepser an; um z.B. einen 440Hz Ton auszugeben müsstest du dann eine Sinuswelle in einen Puffer schreiben und diesen dann ausgeben lassen. Ist aber nicht so schwer.
Dafür ist das abspielen von WAV natürlich leichter ;)
)

Und SDL ist auch reines C.

Oh, und es gibt noch Allegro: http://alleg.sourceforge.net