URL: https://www.overclockers.at/coding-stuff/csound_104850/page_1 - zur Vollversion wechseln!
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
Kommt auf dein Betriebssystem/Umgebung/Library an.
betriebssystem win2k!
programmiere mit microsoft visual studio autoren edition
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().
http://msdn.microsoft.com/library/d..._start_page.asp
neben playsound gibts noch ein paar andere "nette" funktionen.
empfehlenswert(er): DirectSound und fmod
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)
thx für eure hilfe ich werds gleich mal versuchen
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.
@Geigerzeiger: Ja, das geht dann in den Bereich Synthesizer - hab ich vor langer Zeit mal gebastelt; war ganz interessant, verschiedene Funktionen auszuprobieren.
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.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025