ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 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és172Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention16 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és608Date d'inscriptionsamedi 3 août 2002StatutMembreDernière intervention22 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és589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 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és589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 5 juil. 2004 à 01:36
Chose promie chose du, je vous ai mis le tuto sur les mp3 .....
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 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és1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention 6 mai 2007 2 juil. 2004 à 12:36
Fait les 2 ;) :-D
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 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és1114Date d'inscriptionjeudi 19 décembre 2002StatutMembreDerniè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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 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 !
25 janv. 2007 à 12:41
25 janv. 2007 à 12:00
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
15 janv. 2005 à 19:04
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
5 juil. 2004 à 22:48
5 juil. 2004 à 01:36
3 juil. 2004 à 11:14
Bon coding
2 juil. 2004 à 12:36
2 juil. 2004 à 11:00
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.
2 juil. 2004 à 10:37
2 juil. 2004 à 08:33
1 juil. 2004 à 20:41
allé bon coding.
1 juil. 2004 à 19:17
bravo !
@ +
MadMatt