petegoodliffe/PGMidi

Midi Flush not working

Opened this issue · 1 comments

Need to cancel the sending of packets that were previously scheduled for future delivery.

Tried with this:
for (int i=0;i<midi.destinations.count;i++){
PGMidiDestination *destination = [[midi destinations] objectAtIndex:i];
[destination flushOutput];
}

Not working, then, I add these methods to PGMidi.mm

  • (void) flushOutput {
    MIDIFlushOutput(0);
    }

  • (void) flushOutput2
    {
    for (ItemCount index = 0; index < MIDIGetNumberOfDestinations(); ++index)
    {
    MIDIEndpointRef outputEndpoint = MIDIGetDestination(index);
    if (outputEndpoint) {MIDIFlushOutput(outputEndpoint); }
    }
    }

Not working, the sended notes still playing after flush. Any ideas ?

Same, specifically over network MIDI.

Non-network destination stops sending as expected.