Page 1 sur 2
Musiques MIDI
Publié : lun. 22/sept./2008 11:58
par gildev
Je n'ai rien trouvé dans l'aide pour charger et jouer les partitions MIDI. Quelqu'un sait-il le faire?
En sachant que ça doit marcher sous Windows et Linux, donc pas d'API.
Publié : lun. 22/sept./2008 16:17
par venom
salut gildev,
très facile regarde dans l'aide au niveau movie tu prend l'exemple qui donne ceux-ci :
Code : Tout sélectionner
If InitMovie() = 0
MessageRequester("Error", "Can't initialize movie playback !", 0)
End
EndIf
MovieName$ = OpenFileRequester("Choose the movie to play", "", "Midi|*.mid", 0)
If MovieName$
If LoadMovie(0, MovieName$)
OpenWindow(0, 100, 150, MovieWidth(0), MovieHeight(0), "PureBasic - Movie")
PlayMovie(0, WindowID(0))
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Else
MessageRequester("Error", "Can't load the movie...", 0)
EndIf
EndIf
ps: si tu a essayé d'ouvrir du midi avec loadsound() c'est mort car il gère que le wave ou le ogg
@++
Publié : lun. 22/sept./2008 22:28
par gildev
Je viens de tester ton exemple avec plusieurs fichiers midi sans résultat.
Tout à lair de bien se dérouler à part que je n'ai pas de son (biensûr j'ai testé avec Windows Media Player avant pour vérifier que les fichiers midi sont valides).
Je suis triste...

Publié : mar. 23/sept./2008 5:30
par venom
Je viens de tester ton exemple avec plusieurs fichiers midi sans résultat

c'est étonnant sa fonctionne tres bien chez moi
je ne voie pas la je vais rearder a sa sauf si quelqu'un a la solution
@++
Publié : mar. 23/sept./2008 6:16
par venom
voici un petit exemple qui normalement devrez fonctionner mais je doit partir bosser
Code : Tout sélectionner
;- Window Constants
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
Enumeration
#Button_0
EndEnumeration
If OpenWindow(#Window_0, 0, 0, 125, 35, "MIDI", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Window_0))
ButtonGadget(#Button_0, 0, 0, 125, 35, "ouvrir un fichier midi")
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Button_0
fichiermidi$ = OpenFileRequester("ouvrir son midi", "", "Fichiers midi|*.mid;*.MID;*.midi;*.MIDI", 0)
Programme = RunProgram(fichiermidi$, "", "", #PB_Program_Open)
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
CloseProgram(Programme)
@++
Publié : mar. 23/sept./2008 7:50
par gildev
Cette fois-ci ça fonctionne mais le problème c'est que ça lance WMP pour jouer la partition. Mon but est de la lire directement dans mon appli PB pour pouvoir la démarrer et l'arrêter sans passer par un programme externe.
Un peu à la manière de
Loadsound.
PS: Oui, je sais, je suis pénible.

Publié : mar. 23/sept./2008 8:34
par jbernard13
Kayne a fait un excellent tuto sur la création d'un lecteur multimedia ...
Publié : mar. 23/sept./2008 10:29
par gildev
En fait ça va être une usine à gaz. Tous les posts sur ce forum ou le forum anglais présentent des kilomètres de code pour espérer y ariver. Je pense m'orienter vers un format plus "classique".
Je ne clos pas encore le sujet, j'attend de faire des recherches et des essais avant.
Merci quand même à vous deux.

Publié : mar. 23/sept./2008 15:28
par venom
oui je sais sa lance wmp

je me doutais que sa ne serai pas la solution que tu attendais.
mais c'est quand meme etonnant que mon 1er code ne fonctionne pas chez toi y'a t'il des autres personnes qui pourrais confirmer si mon code fonctionne chez vous ? d'avance merci
EDIT: verifie au niveau des parametres sons si tout est bon car je me suis dit que sa pourrais venir des codecs mais vu que tom media player le lie il n'y a pas de raison. car je viens de tester sur 3 de mes ordinateurs et sur les 3 sa tourne niquel.
@++
Publié : mar. 23/sept./2008 16:24
par jbernard13
Venom
ton premier code marche trés bien chez moi
Publié : mar. 23/sept./2008 18:32
par gildev
Ben mince, je n'ai pas de bol. Le 1er code ne sort aucun son sur mon 2ème PC non plus.
Je ne comprends pas d'où ça viens, j'étudie la question...
Publié : mar. 23/sept./2008 20:32
par venom
ba oui c'est étonnant surtout que wmp le lit donc sa ne vient pas du midi essaye en un autre au cas ou mais je suppose que tu la déjà fait ?
@jbernard13
merci pour l'info
@++
Publié : ven. 26/sept./2008 21:12
par KarLKoX
Publié : lun. 29/sept./2008 11:42
par gildev
Merci KarLKoX, mais tu te doutes que j'ai déjà trouvé ces codes, ainsi que sur le forum anglais. Je pensais qu'il existait une méthode plus simple. Je laisse tomber pour le moment, je vais attendre que dans une version future de PB on trouve des commandes du style PlayMIDI, StopMIDI, LoadMIDI... car je ne suis pas trop adepte des usines à gaz.
En tout cas merci à tous.
Publié : lun. 29/sept./2008 14:13
par Backup
......