Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

changer d'instrument midi (mmsystem.h)

2 réponses
Avatar
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.

2 réponses

Avatar
Christian ASTOR
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())
Avatar
Vincent Burel
"alex" wrote in message
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