DIRECTX TUTO 6 : DIRECTMUSIC JOUER DES FICHIERS MIDI

MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 - 1 juil. 2004 à 19:17
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 - 25 janv. 2007 à 12:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/24166-directx-tuto-6-directmusic-jouer-des-fichiers-midi

ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
25 janv. 2007 à 12:41
Je suis dsl mais j'ai jamais étudier cette partie de DirectMusic, penche toi sur l'aide de directx.
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011
25 janv. 2007 à 12:00
Bonjour, comment modifier ce code pour qu'un métronome suive précisément le tempo du fichier midi ?
Actuellement, j'ai un programme qui lit les fichiers mais dès que j'inclus ce que je crois être la solution, l'information arrive en décalé par rapport au tempo...

Dim msg As DMUS_NOTIFICATION_PMSG
Dim metronome As DMUS_NOTE_PMSG

Private Sub timer1_Timer()
If dmPerf.GetNotificationPMSG(msg) Then
metronome.midiValue = 77
metronome.mtDuration = 150
metronome.flags = DMUS_NOTEF_NOTEON
metronome.velocity = 127
Call dmPerf.SendNotePMSG(0, DMUS_PMSGF_REFTIME, 9, metronome)
end if
end sub
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
15 janv. 2005 à 19:04
... Pour répondre à Patrice99

La hauteur d'une note c'est son numéro (de 0 à 127)
Pour calculer la durée ... c'est beaucoup plus compliqué
Il faut connaitre la résolution du fichier MIDI exprimé
en nombre de Tick par noire (par exemple 96)
Puis savoir le nombre de Tick de la Note_On, le nombre
de Tick de la Note_OFF et faire la différence ...
Et pour compliquer le tout ...
Le nombre de tick dans un fichier MIDI est exprimé par rapport à l'évènement précédent ... dans un mot à longuer variable (maximun 4 octets)
Bon ... si vraiment t'as envie fais moi signe ...

A+

Afyn
Navedac
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
5 juil. 2004 à 22:48
Héhé, et je viens d'ajouter celui sur le menu echap, pas mal en 2 jour non ??
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
5 juil. 2004 à 01:36
Chose promie chose du, je vous ai mis le tuto sur les mp3 .....
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
3 juil. 2004 à 11:14
Lol, je ferais les 2 ok, mais sa va mettre un certain temps, car deja il y en a 2 et en plus comme j'ai deja dis le mp3 je connais pas trop, donc pour commencer je vous fait un sur les menu, des que la technique que j'utilise est au point.

Bon coding
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
2 juil. 2004 à 12:36
Fait les 2 ;) :-D
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
2 juil. 2004 à 11:00
Partice99, normalement je pense que c'est possible (en thérorie) de connaitre ce que tu demandes, mais pour cela il est nessecaire de faire des calcul, sachant que je me suis pas interressé plus que sa à DirectMusic, car mon but et de jouer des fichiers dans mes jeux.

Par exemple : Ceci te donne le tempo de ton fichier :
dTempo = perf2.GetTempo(mtTime + 2000, 0)
lblTempo.Caption = "Tempo: " & Format(dTempo, "00.00")

donc je suppose que c'est possible.

Pourt azerty25, j'hesite entre 2 tuto, je ne sais pas encore lequels je choisirai :

- Jouer des MP3 (ce qui me prendrais du temps car je connais que trés peu)
- Faire des systemes de menu ( ce qui est difficile quand on ne connait pas la technique)

Donc je verrais.

Si vous avez besoin d'explication supplémentaire n'hésité pas.
cs_azerty25 Messages postés 1114 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 6 mai 2007
2 juil. 2004 à 10:37
Pas mal une fois de plus ton tuto. ET les prochains, c'est pour quand et sur quel sujet ? :-)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
2 juil. 2004 à 08:33
Est-ce que l'on peut obtenir la hauteur et la durée de chaque note d'un fichier .mid de cette façon ? Un jour je ferais un reseau de neurones pour apprendre à jouer les accords à partir d'un fichier .mid
ciberrique Messages postés 589 Date d'inscription lundi 25 août 2003 Statut Membre Dernière intervention 18 juillet 2010 1
1 juil. 2004 à 20:41
Merci, pour ton commentaire, pour les tutos, ce n'est pas le dernier....

allé bon coding.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
1 juil. 2004 à 19:17
tiens j'avais pas vu tous les tutos précédents, je trouve que c'est une super idée et c'est très sympa de ta part.
bravo !

@ +
MadMatt
Rejoignez-nous