PDA

Visualizza la versione completa : [C++] Emissione di suoni su pressione del tasto


iacoposk8
03-11-2008, 15:07
ciao a tutti!!! volevo fare un programma in c o c++ che quando si schiacciava un tasto della tastiera il pc emetteva il suono di un tamburo della batteria.. ad esempio se schiaccio 'a' fa il rumore di un piatto se schiaccio 'b' il rumore d un tamburo ecc... io il c a scuola l'ho fatto bene ma il c++ ho fatto solo cin e cout comunque a me serve il comando tipo cout o printf solo che questi 2 stampano scritte a me serva che stampi un suono... non mettetemi comandi tipo \a o beep() perch io devo far emettere un suono ben preciso e non il beep del case... grazie

MacApp
03-11-2008, 15:11
Dipende dal sistema operativo e dall'ambiente di sviluppo.

MItaly
03-11-2008, 15:14
Puoi lavorare con il canale 10 del MIDI (dedicato alle percussioni), ma per poterti dare indicazioni dobbiamo sapere su che sistema operativo lavori.

iacoposk8
03-11-2008, 16:01
windows xp

pallinopinco
03-11-2008, 17:34
Su Windows puoi usare le funzioni PlaySound (http://msdn.microsoft.com/en-us/library/ms712879.aspx) e GetAsyncKeyState (http://msdn.microsoft.com/en-us/library/ms646293(VS.85).aspx).

MItaly
03-11-2008, 18:14
Queste per riprodurre suoni registrati in formato wav; invece per sintetizzare suoni tramite il sintetizzatore MIDI del computer puoi usare la midiOutShortMsg (http://msdn.microsoft.com/en-us/library/ms711640(VS.85).aspx).

iacoposk8
04-11-2008, 16:42
ciao a tutti!!! grazie per le risposte che mi avete dato nel post precedente.. io volevo un comando per fare un programma che emetta dei suoni di percussioni dopo aver premuto un tasto e voi mi avete detto che i comandi sono PlaySound e GetAsyncKeyState mi avete dato anche i link con la spiegazione solo che in inglese sono una pippa :D b volevo sapere se gentilmente mi potete dare la spiegazione di questi comandi.. ho windows xp.. se serve a voi per le risposte.. grazie

MItaly
04-11-2008, 16:56
Credo che ti convenga continuare nel primo thread...

LeleFT
04-11-2008, 17:20
Originariamente inviato da MItaly
Credo che ti convenga continuare nel primo thread...
Infatti... ho unito le discussioni.


Ciao. :ciauz:

MItaly
04-11-2008, 17:43
PlaySound (tra le altre cose) riproduce il file wav specificato


PlaySound(_T("nomefile.wav"), NULL, SND_FILENAME);.
GeyAsyncKeyState ti consente di sapere se un determinato pulsante stato premuto.
Per il resto ti rimando alla documentazione delle funzioni, s in inglese, ma inglese tecnico, estremamente semplice. Tieni conto che se non sai l'inglese ti sar estremamente difficile in futuro programmare, visto che la documentazioni di praticamente tutte le librerie in inglese, e cos pure buona parte dei libri di programmazione sopra un certo livello.
In ogni caso resto dell'idea che per un'applicazione del genere ha pi senso usare il MIDI per sintetizzare suoni, anche se in questo modo il programma pi complicato da scrivere.

Loading