View Full Version : [C]Gestione audio
Tarkifos
13-06-2008, 17:20
Ho un problema, vorrei provare a sviluppare un programma sempice semplice che riproduca traccie audio mp3 o anche wav, solo che non ho la minima idea di dove andare a sbattere la testa :mc:
Ho provato a dare un'occhiata al sorgente di mp3blaster ed usa la libreria mpegsound.h
L'unico problema è che è in C++ e io vorrei farlo in C.
Consigli? :help:
L'unico problema è che è in C++ e io vorrei farlo in C. perché...? :mbe:
io veramente per un compito del genere ti consiglierei anche un linguaggio managed... in C# non lo potresti fare?
Tarkifos
13-06-2008, 17:59
perché...? :mbe:
Masochismo XD
No, be' sono curioso di sapere e vedere come si fa a far partire dei suoni in C.
variabilepippo
13-06-2008, 18:06
Se non vuoi fare tutto a manina devi comunque appoggiarti ad una libreria (DirectSound, FMOD, Bass, etc).
Tarkifos
13-06-2008, 18:28
Il punto è che non sapevo davvero a che libraria appoggiarmi e FMOD adesso che sono andato a vedere sembra fare al caso mio :D
Grazie mille!!
Masochismo XD
No, be' sono curioso di sapere e vedere come si fa a far partire dei suoni in C. diciamo piuttosto che è l'unico linguaggio che conosci; non me lo spiego altrimenti visto che per quel poco che devi fare non esiste alcun motivo per non preferire il C++ al C.
C'è pur sempre openAL... però non supporta mp3...
DanieleC88
13-06-2008, 22:41
Hai voglia... se usi C, vai con SDL. Assicurati che ci sia SDL_Mixer installata e poi è questione di due righe di codice, ed è cross-platform.
Consiglio: cerca di capire con quale tecnica raggiungere uno scopo, tralasciando il linguaggio in sé; non guardare a "come si fanno partire dei suoni in C", dipende da ciò che usi per farlo. Potresti farlo anche in assembly comunicando direttamente con la scheda audio, o appoggiarti ad API già pronte e fare tutto con poco sforzo. Basta un'invocazione delle MCI di Windows per riprodurre un file. Senza nemmeno aprire un handle. :D
variabilepippo
13-06-2008, 22:48
Hai voglia... se usi C, vai con SDL. Assicurati che ci sia SDL_Mixer installata
FMOD mi sembra un "filino" più potente della SDL ed è multipiattaforma. ;)
Potresti farlo anche in assembly comunicando direttamente con la scheda audio
Sotto quale sistema operativo?!
Basta un'invocazione delle MCI di Windows per riprodurre un file
Non mi sembra che MCI supporti la riproduzione di file MP3.
DanieleC88
13-06-2008, 22:52
FMOD mi sembra un "filino" più potente della SDL ed è multipiattaforma. ;)
Ed anche "un filino" più complesso. Se lui vuole solo sentir riprodurre un suono...
Sotto quale sistema operativo?!
Dal DOS, da un tuo mini-kernel scritto ad hoc, dovunque tu possa dialogare senza passare per altre vie.
Non mi sembra che MCI supporti la riproduzione di file MP3.
Provaci.
variabilepippo
13-06-2008, 23:02
Ed anche "un filino" più complesso. Se lui vuole solo sentir riprodurre un suono...
Ma non credo proprio, basta invocare 3 funzioni 3 e si ha controllo totale sulla riproduzione. Non mi sembra che SDL_Mixer sia più semplice né più flessibile di FMOD, anzi...
Dal DOS, da un tuo mini-kernel scritto ad hoc, dovunque tu possa dialogare senza passare per altre vie.
Hai un dual-boot o una virtualizzazione con un sistema DOS nativo?! Sono nato con il DOS, ma il mio calendario segna 2008... ;)
Provaci.
Mostrami un un po' di codice basato su MCI che riproduca un file MP3 su qualsiasi sistema Windows...
DanieleC88
13-06-2008, 23:14
Ma non credo proprio, basta invocare 3 funzioni 3 e si ha controllo totale sulla riproduzione. Non mi sembra che SDL_Mixer sia più semplice né più flessibile di FMOD, anzi...
Questione di gusti...
Hai un dual-boot o una virtualizzazione con un sistema DOS nativo?! Sono nato con il DOS, ma il mio calendario segna 2008... ;)
Cosa c'entra? Io volevo solo dire che non è una cosa che è specifica di un linguaggio o di un sistema operativo. Una volta che sa come appoggiarsi ad una giusta libreria, lo può fare allo stesso modo (o in modo simile) in C su Windows che in Java su Linux.
Mostrami un un po' di codice basato su MCI che riproduca un file MP3 su qualsiasi sistema Windows...
Premettendo che non le uso da anni, una cosa del genere mi pare funzioni:
mciExecute("open waveaudio!miofile alias Suono");
mciExecute("play Suono");
Anticamente stavo facendo un giochino che utilizzava proprio MCI e riproduceva benissimo anche gli MP3, basta che i codec siano installati. E mi risulta che ci siano preinstallati sin da Windows 98.
Un consiglio anche a te: nessuno è qui per dimostrare niente agli altri, quindi un po' di calma.
variabilepippo
14-06-2008, 00:08
Un consiglio anche a te: nessuno è qui per dimostrare niente agli altri, quindi un po' di calma.
Hai ragione, chiedo scusa, a volte lo stress fa brutti scherzi... ;)
DanieleC88
14-06-2008, 00:11
Hai ragione, chiedo scusa, a volte lo stress fa brutti scherzi... ;)
Tranquillo, ho visto di molto peggio... però mi sembravano toni fuori luogo e te l'ho fatto notare. :D
ciao ;)
Tarkifos
20-06-2008, 18:30
Grazie a tutti, sono riuscito a fare quello che volevo con le librerie FMOD e non ho ancora provato su windows, ma su Linux funziona.
@71104: No, il C non è l'unico linguaggio che conosco, ma volevo solo provare a farlo in quel linguaggio, come esercizio.. E devo dire che mi sono anche divertito molto alla fine :D
ciao a tutti :)
@71104: No, il C non è l'unico linguaggio che conosco, ma volevo solo provare a farlo in quel linguaggio, come esercizio.. E devo dire che mi sono anche divertito molto alla fine :D bravissimo, e ora lascia che cdimauro ti spieghi soavemente come mai hai letteralmente buttato via il tuo tempo :asd: :D
DanieleC88
20-06-2008, 23:10
LOL, in effetti è strano che ancora non sia giunto a riportarlo sulla retta via! :asd:
Tarkifos
21-06-2008, 12:27
soavemente come mai hai letteralmente buttato via il tuo tempo
Perché? :confused:
non capisco.. :mbe:
DanieleC88
21-06-2008, 12:59
Perché "Python is the way". :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.