Midi sequence issue

Hi,
I would like to report a problem regarding the execution of a MIDI sequence.
Specifically on the use of program changes.
I have a midi file that contains a program change with

MSB 89 | LSB 64 | ProgramNum 2

When I import the midi file into my program, I create a sequence that contains these ( correct ) values

However, when I play and direct the midi output to MIDI-OX ( a midi simulator ) I get these values :

As you can see the first pair of MSB / LSB is sent correctly.

Immediately after that, however, both 0s are sent for MSB and LSB.

I tried the same thing using Waveform13 and get the exact same result. I would like support to resolve this situation.

Also because I tried a quick test like this :


MidiMessage getLSBBankMessage()
{
	return MidiMessage::controllerEvent(channel, 32, 64);
}

MidiMessage getMSBBankMessage()
{
	return MidiMessage::controllerEvent(channel, 0,89);
}

MidiMessage getMessage() { 
      return MidiMessage::programChange(channel, 2); 
}

...

midiOut->fireMessage(getMSBBankMessage());
midiOut->fireMessage(getLSBBankMessage());
midiOut->fireMessage(getMessage());

And I get such a correct result :

I think those extra messages are being sent due to properties of the MIDI clip.
Try calling MidiClip::setSendingBankChanges (false). I think that will remove them.

OK @dave this seems to solve the problem.
When would it be useful to have MidiClip::setSendingBankChanges (true) ?
Thank u.

I think its so you can set a clip to have a specific bank and then just add program change messages to the clip. Then it will sort out the correct set of messages to send.

Otherwise, you could do things like send the program change first then the bank select and it wouldn’t work.