PDA

Visualizza la versione completa : [C++] Eseguire suoni


Poker1
19-01-2004, 11:07
Ciao a tutti.
Sapreste indicarmi un qualche modo per eseguire un midi diciamo "da file" oppure creare dei suoni direttamente programmando?

Grazie

cicciox80
19-01-2004, 11:36
mah, io uso visualc++ solo per i programmi sotto dos, dove usufruisco del beeper del pc con le istruzioni sound(int x), delay(int tempo) e nosound();

Xadoom
19-01-2004, 15:34
Scusa se mi intrometto, ma una veloce spiegazione di queste funzioni?
Grazie :ciauz:

Angioletto
20-01-2004, 01:39
Inserisco il mio messaggio solo con l'intenzione di seguire + da vicino questa discussione, che può essere veramenre utile!!
Tra l'altro mi chiedo anche come sia possibile introdurre immagini!!!

nik600
20-01-2004, 12:31
usate system!

facendo cosi potete eseguire qualsiasi comando come se foste nella shell!

esempio

system("ls cartella");

fa un ls della cartella, nel tuo cas fai

system("play nomefile.estensione"); e sei a posto!

mi sembra che bisogna ncludere

unistd.h o stdlib.h!

Johnny_Depp
20-01-2004, 12:47
dipende!

da cosa intendiate per: "eseguire suono"

ovviamente il modo più intuitivo e anche semplice
è il seguente:

printf("\a\a\a"); // classico beep di sistema!

se invece volete "eseguire" un file wave ".wav"
il comando da eseguire sarà il seguente:

#include <windows.h>

int main()
{
sndPlaySound("C:\\WINDOWS\\Media\\tada.wav", SND_SYNC);
system("pause");
return 0;
}
per vedere i possibili parametri accettati da questa API
fate una ricerca su google: sndplaysound()

Se... invece volete eseguire dei midi ".mid" le cose si complicano
e non di poco.
Provate a cercare (sempre su google): midiOutOpen()



Upgrade:

dimenticavo... per utilizzare sndplaysound()
bisogna linkare la libreria :winmm.dll
(in dev c++: libwinmm.a)

Angioletto
20-01-2004, 12:48
Ho provato..
Il programma viene compilato, ma all'atto dell'esecuzione esce:

"play" non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch.

Ovviamente ho salvato sia il programma che il file audio nella stessa cartella..

Angioletto
20-01-2004, 12:51
sndPlaySound("C:\\WINDOWS\\Media\\tada.wav", SND_SYNC);

Cosa indica il comando SND_SYNC??

nik600
20-01-2004, 13:11
scusate..io parlavo x la programmazione in linux!

Johnny_Depp
20-01-2004, 13:27
Originariamente inviato da Angioletto
sndPlaySound("C:\\WINDOWS\\Media\\tada.wav", SND_SYNC);

Cosa indica il comando SND_SYNC?? qua trovi tutti i parametri:
http://www.mentalis.org/apilist/sndPlaySound.shtml

puoi concatenali nel seguente modo:
sndPlaySound("C:\\WINDOWS\\Media\\tada.wav", SND_SYNC | SND_LOOP);

Loading