changer d'instrument midi (mmsystem.h)

Le
alex
Salut a tous,

tout est dans le titre, je n'arrive pas à changer d'instrument midi avec
midiOutShortMsg, quoi que je fasse ,il jou toujours du piano !!!

union {
unsigned long word;
unsigned char data[4];
} message;

message.data[0] = 0x90; // MIDI note-on message (requires to data bytes)
message.data[1] = 60; // MIDI note-on message: Key number (60 = middle
C)
message.data[2] = 100; // MIDI note-on message: Key velocity (100 =
loud)
message.data[3] = 0; // Unused parameter

midiOutOpen(&device, midiport, 0, 0, CALLBACK_NULL); //ouverture port
midi

midiOutShortMsg(device, message.word); //message midi, note on ici.
Merci beaucoup pour votre aide éventuelle.alex.
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #9740681
alex wrote:

tout est dans le titre, je n'arrive pas à changer d'instrument midi avec
midiOutShortMsg, quoi que je fasse ,il jou toujours du piano !!!



Voir l'ex KBMidi.c du Petzold (et sur Google)
MidiSetPatch() et paramètre iVoice (iData1 pour dwMessage de
midiOutShortMsg())
Vincent Burel
Le #9740641
"alex" news:48444c00$0$21063$
Salut a tous,

tout est dans le titre, je n'arrive pas à changer d'instrument midi avec
midiOutShortMsg, quoi que je fasse ,il jou toujours du piano !!!

union {
unsigned long word;
unsigned char data[4];
} message;

message.data[0] = 0x90; // MIDI note-on message (requires to data


bytes)
message.data[1] = 60; // MIDI note-on message: Key number (60 middle
C)
message.data[2] = 100; // MIDI note-on message: Key velocity (100 > loud)
message.data[3] = 0; // Unused parameter

midiOutOpen(&device, midiport, 0, 0, CALLBACK_NULL); //ouverture port
midi

midiOutShortMsg(device, message.word); //message midi, note on ici.
Merci beaucoup pour votre aide éventuelle.alex.



0x90, 60, 100 =Note On / canal 1 | note 60 = Do 3 | velocity = 100 (attack
velocity)
ne pas oublier de faire un note off un jour :
0x80, 60, 100 = Note Off / canal 1 | note 60 | velocity = 100 (Release
Velocity).

sinon le message ALL Note OFF est pratique pour tout remettre à plat :
0xB0 0x7B, 0x00

Pour changer de son (toujours sur le canal 1) vous pouvez utiliser le
message "Program Change"
0xC0, suivi du numéro de son (0 à 127).

VB
Publicité
Poster une réponse
Anonyme