Splitting MIDI track with program changes into tracks with different patches


I have a midi track with midi events ONLY on channel 1 of an instrument. There are Program change messages at different measures.

Goal: split the midi track into multiple tracks each with different patch/sound each on channel 1 ( OK if dissolves into different channels).

I tried this method, but It does not work:

I open the list editor: first the first Program change, I select all the notes from this program change to the next program change, change the channel to say 2, I do this again until end. Then I use dissolve MIDI. But then, all the tracks have the same as the first dissolved 1072, 78 as Patch data ( see the gif please).

This issue with this is that if I have my melody going back to same program change ( patch), I need to recuse the existing channel for that program changes with the same data value; making sure they get mapped to the same channel if I encounter that again.

There is a windows plugin that does that: https://www.midi-plugins.de/

Split by Patches is a plug-in for splitting tracks that contain different sounds. The result is a track where the different sounds are split into different midi channels.

Any help would be appreciated.


I’m sorry, I’m not sure if you don’t mix up the terminology here: “MIDI Channel” vs “MIDI Track”. If you want to split your MIDI data based on the MIDI Channel to multiple tracks, use MIDI > Dissolve Part, please.

Or is your use case different?

I am sorry, Martin. I was working too late. I fixed the OP for folks who read it for the first time.