c++,sound
Maximi 21.01.2004 -
19:34 1003
9
Maximi
Little Overclocker
|
hi leutz!
also ich hätte eine frage!
ich wollte in c++ eine art klavier machen! also der user gibt einen Buchstaben ein. z.B. t! und wenn er t eingibt soll ein sound kommen!
gibts eine funktion das der rechner einen ton produziert?
ich hab in der hilfe geschaut da gibts eine funktion die PlaySound heisst! jedoch kenn ich mich mit den parametern nicht aus! ich bin kein programmiergenie deswegn frage ich euch!
tia
maximi
|
that
Hoffnungsloser Optimist
|
Kommt auf dein Betriebssystem/Umgebung/Library an.
|
Maximi
Little Overclocker
|
betriebssystem win2k!
programmiere mit microsoft visual studio autoren edition
|
that
Hoffnungsloser Optimist
|
Hm, ich wusste gar nicht dass es von MSVC eine Version für Schriftsteller gibt.  PlaySound kann u.a. WAV-Dateien abspielen. Wenn du nur einfach einen Ton mit bestimmter Frequenz und Dauer generieren willst, nimm Beep().
|
mat
AdministratorLegends never die
|
|
Ringding
Pilot
|
Am einfachsten wird's wohl über MIDI gehen, da kann man sich wenigstens verschiedene Instrumente aussuchen. Ist alles gut dokumentiert in der MSDN Library. EDIT: fmod oder bass (zweiteres ist mir irgendwie sympathischer)
|
Maximi
Little Overclocker
|
thx für eure hilfe ich werds gleich mal versuchen
|
Geigerzeiger
Addicted
|
du kannst das a so probieren: ist aber mathematisch aufwendig: es gibt in VC++ in der win32 api funktionen, die die sound-hardware direkt ansprechen: Man muss Töne generieren, indem man eine Sinusschwingung also y(t) = sin(w*t) anlegt. In w ist die Frequenz f enthalten w = 2*PI*f. diese werte der Funktion lest ma in a byte array ein und dieses "schreibt" ma auf dem Buffer der Soundkarten. Natürlich muast de Abtastefrequenz, -auflösung wissn. Des geht mit de funktionen wie waveOutPrepareHeader(), oiso die genauen Einstellungen wie Abtastefrq,... Dieser Header entält auch noch das BYTE array, wo die genaue schwingung beschrieben ist. Der ganzen Header wird mit waveOutWite() oder so auf de Soundhardware übertragen. Und du hörst des dann.
I was das des voi kompliziert zum erklären ist aber poste einfach wannst wos net verstehst.
|
that
Hoffnungsloser Optimist
|
@Geigerzeiger: Ja, das geht dann in den Bereich Synthesizer - hab ich vor langer Zeit mal gebastelt; war ganz interessant, verschiedene Funktionen auszuprobieren.
|
atrox
in fairy dust... I trust!
|
auch eine lösung - nachdem ich mich schon mal damit herumgespielt habe (für sprachausgabe), und es gar nicht so schwierig ist: man lädt ein wave mit einer einzelnen note eines instrumentes ins ram. jedesmal wenn man den ton ausgeben will, verändert man im header die samplingrate entsprechend (=verändert tonhöhe) und läßt das ding neu ausgeben.
|