You are here

Remove all program changes for a track

Is there a way to remove all program changes for a MIDI track?

This seems to be a common problem of mine, import midi, make some changes, the loop starts the track over and all of my synths are acting funny. I then realize I have program changes in the midi and go about using other tools to strip those program changes out, but it seems that qtractor should be able to do this, I just haven't figured out how yet.

rncbc's picture

yes there's at least one way:
1. on the MIDI clip editor (aka. piano-roll) set "Pgm Change" for showing the events in the lower pane (usually showing "Note Velocity" as vertical bars);
2. set focus by clicking anywhere in there to and hit Ctrl+A (or menu Edit > Select All);
3. you may now Del(ete) all of them at once and save.

This was working great!...... but then

Something has gone wrong since I have been implementing this?

I have been doing exactly as you have said for about a month now. 1. 2. 3.,

But now for some reason while doing that in a new project everything keeps reverting.

I am using Arch Linux and am on 0.9.9, and it looks like you added a feature recently:

"Fixed editing and display of 'Pgm Change' events on the MIDI clip editor (aka. piano-roll)."

I wonder if I'm doing something that is wrong?

In my description of 1.2.3.

1. I double click a track, 'pgm change' is usually already selected as I do this for multiple tracks at once
2. click in the lower pane and ctrl-a (and look for the X to go red on the delete button in the toolbar, it will not go red if all pgm changes are already deleted)
3. hit delete (the red X on the delete button in the toobar fades)

save, then re-open and double click a recently modified track, if I then click in the lower pane and ctrl-a, X goes red, and indeed song wil start and all zynaddsubfx tracks go wonky. Any reason why pgm changes are haunting me now? This was working great, and I am entirely uncertain at what point things changed. It is entirely possible that it was working in the previous version and I upgraded and it broke?

Possible feature request: Can I just have a button that makes certain track/bus ignore pgm changes? I think this would be best on bus, and might already be possible with plugins.

Thanks for your fantastic linux audio applications!

rncbc's picture

hi thot,

one couple of questions:

do you have any instrument, bank and/or program selected on the MIDI track's properties?

and is the "Pgm Change" event the very first in the sequence? check that out by looking at the (menu View >) Event List; you can also see whether the "Pgm Change" event items are there anytime, no need to go into the bottom pane and Ctrl+A to select them all.

if yes to the first question please check whether the "Pgm Change" event that gets reappearing is exactly the one you have on track's properties--to let you know, that is always saved to the underlying SMF (MIDI file) at its head (time=zero), and of course will appear on the MIDI clip editor including the event list; so it seems it's all working as ever been ;)

[UPDATE:] on git head master (qtractor >= some things are getting a little more strict on this matter: MIDI bank-select/program-changes are now being stripped from underlying SMF files, but the MIDI track bank/program settings are still honored: so that, for instance, explicitly removing a "Pgm Change" item from the clip will only really occur if the parent MIDI track program is set to "(None)".


On instrument, usually FluidR3 to start with, but sometimes I change it to none after having set the track to my zynaddsubfx bus.

Pgm Change is indeed usually first, but I can find at least one track where it is not first, but it is only preceded by bank selects (which this track has been my most problematic track, and it has a slew of other 'Controller' events that are exactly what has been causing other strange behavior).

I think leaving the event viewer open when importing midi for the first time is very important as not only Pgm Changes, but many other Controller events can induce odd behavior (obviously the bank select is a major one to look for).

Also, of note, it is very easy to forget to save the midi track itself while editing, and save in the main window, and quit without saving the midi track changes, re-open and the midi will still have 'Pgm Changes' you thought you just deleted. Combine that with a controller bank select or two and you might think you are going crazy!

I too am having issues with this.

I can remove the midi instrument, bank and patch number from the track.
Save the project.
Go into edit the actual midi on the piano roll. Find the program changes, ctr+A to select them all, then delete.
Then save the midi file.
Then save the project again.

This will work while I have the project open.

Then close and reopen the project and everything has reverted.

Has anyone got a foolproof way of doing this? It's such a basic necessity I can't believe it's a bug, maybe I'm just doing it wrong.

rncbc's picture

hi, which qtractor version? (qtractor -v)
and can you upload (here or else) one minimal MIDI file (SMF) where it may have more than one PC on the same channel, please?

Add new comment