Easy was to remove *all* MIDI program changes?

Hi guys, first in what promises to be a series of really N00B questions from me as I’m just starting into CUBASE. I do promise that I try to find the answer either in the manual or by searching the forums before asking for help!

Anyhow, I’m loading up MIDI files to play with external synths. I figured out how to get the bank select to get to the proper bank on my Motif Rack XS (MSB*128+LSB) in the MIDI inspector pane, but there’s somewhere else in the files I’ve imported that does its own program change. I tried remove the bank/program select controller lanes via the MIDI editor, but as soon as I hit ‘play’ the patches go back to something else. I remember back int early 90’s I could script up bulk editing in Cakewalk Pro to do something like this, but I’m hoping that 25 years later it’s easier!

What I’d like to do is press a button and have it strip out all bank/prog changes in any track of my project. Is that there somewhere??


Take a look at the Logical Editor (manual, pg.855 and onwards… there’s quite a bit to read, but this is a very powerful tool, can certainly delete Program Changes and Bank Changes :wink: )
We’ll certainly help out if you need, but I got the feeling you’d rather enjoy just being guided in the direction to help you get there yourself :wink: )


Be aware, Logical Editor is Cubase Pro only.

You can also select all events in the Project window (Ctr+A), open List Editor. In the upper part, you can find filters. Click to the dedicated MIDI message names to filter out Notes, Controllers, SysEx (if there are some in the project), After Touch, etc. Make sure Program Change is not filtered out. Now, there should be Program Change messages only in the list. Select All (Ctrl+A) and Delete. All Program Change messages are deleted.

But the Bank Select MSB and LSB are still present.

Btw, the Logical Editor preset would looks like this:
( Type Is | Equal | Controller | And
( Value 1 | Equal | 0 | Or
Value 1 | Equal | 32 ) Or
Type Is | Equal | Program Change )

Action Target
Kepp this empty

Function: Delete

This will delete all MIDI Controllers 0, MIDI Controllers 32 and Program Change.

Be carefull with parentheses here. Because of the logic, there should be exactly this way, how I described. See attached screenshot, please.

Good luck. :wink:
Screen Shot 2015-10-19 at 08.06.05.png

Thanks Vic, thanks Martin! Much appreciated!!

My first thought when told to go to p855 was “but the manual only has 600-some-odd pages!” :laughing: Yep, I’m demoing Elements, since I need a USB stick to try either other version. So Logical Editor is a no-go for me (at this point).

And…List Editor is Artist/Pro only! So I can’t even try that one.

I’ve been trying to ascertain if there’s anything in any higher version that makes it worth the extra $. Although I’m not shy about paying for items of value, my use-case (MIDI sequencing; no recording) makes it hard to swallow to pay 500 beans for something where I’ll only use about 10% of the functionality.

By the way: that LE code being a “filter” means that the CC events remain in the midi code, correct? It’s just that they’re filtered upon execution and not transmitted? One thing I’m kicking around is to use the DAW/sequencing program to perfect the sequences, then export them to a SMF and load into a hardware MIDI sequencer for live use. I have nightmares about being in the middle of a tune and then stopping and telling the crowd “haha…hang on a sec…I’ve gotten the Blue Screen of Death!” :blush:

Aha, I missed that “function: delete” thingy in there!!

Now I’ve to to figure out if I should buy a USB key so I can demo Pro…

I’ve found DOS CLI utilities to LIST the program changes from a MIDI file; now I’ve got to see if I can find one that will REMOVE them…

thanks again!

Well, serendipity has struck and I got an INCREDIBLE deal on Pro (along with a small controller I think?)! So now I’ll be able to try both these methods once I get it installed/licensed/upgraded. I just now hope that Cubase does what I need! I’ve already bought Sonar (sunk cost) and Ableton (thankfully they refunded me because within 3 days of activating I discovered they don’t accommodate Sysex messages). Third time’s the charm, right?? :smiley:

I believe (and wish you) you will be happy with Cubase.

Thanks again guys! Thought I owed a little update.

(BTW, Vic was right…I prefer being pushed in the right direction so I can figure things out. Makes things easier in the future!)

I got 8 Pro installed and up and running. Was able to use the List Editor to get rid of the Program Changes (rather klugey, though). But then I moved on to a different problem which had perplexed me. Turns out this sequence also had a bunch of other controller changes buried in (sustain time, etc.)and sysexs that were giving me headaches. So it really looks like I have to figure out how to learn to use the logical editor to strip out EVERYTHING save the notes and volume/pan. It’s not quite like the edit sequence that Martin described (probably a older incarnation) but I’ll print the manual (on 3-hole!) and start digging. Probably would have been more efficient for me to build this one sequence from scratch instead of using a “professional” sequence, but what I learn here will better prepare me to doctor up the next 99 :slight_smile:.

Thanks again!

Aha, I see, I was in the PROJECT Logical Editor, not the MIDI Logical Editor. I’m easy to confuse!! :smiley:

OK, I probably should to to a new thread for this, but for simplicity’s sake, maybe this is something simple that can be answered here. I put together a simple LE macro (fairly identical to the sample) to delete ALL Sysex & Program Changes and Controllers EXCEPT volume and pan. (Still undecided if I should really keep them, but that’s academic right now). It’s deleting everything fine, but not retaining vol & pan. Cany anyone see what is going wrong??

( Type is     Equal              Controller                                  And
       (Value 1      Unequal          CC 7 (Main Volume)      Or
        Value 1      Unequal          CC 10 (Pan)                  )           Or
 Type is       Equal              SysEx                                        Or
 Type is      Equal              Program Change            )

Parens all match; the two .ne. or conditons are subscripted to the controller…don’t know what is wrong.

Thanks! Brings me back to my .CAL (Cakewalk Application Language) days!!
ScreenHunter_03 Oct. 25 21.59.jpg

there’s just one fault in (your) logic there :slight_smile:
Have a real think about “CC unequal 7 OR CC unequal 10”… if the data being tested is either of those (where you really want it to fail the test, so that it won’t be deleted), it is in fact passing the test (if it is examining an incoming CC#7, then it is “unequal 10”, thus the condition has been met :wink: ). It should be “AND” between those two conditions. (and will require a slight parenthesis change).
Like this…
Logical CCs.jpg
Otherwise… congratulations on your acquiring Cubase Pro… you are going to love it! :slight_smile:

DOOOH!!! Thanks! I got bit by double negation. Since I’m testing for negatives I need inclusive conditions. And I’m a programmer too. How embarrassing! :blush: Thanks for checking my “work”!!!

There is no need to not stop apologising :stuck_out_tongue:

Oh my god thank you so much for this script, i was getting mad due to all the program changes I had after importing midi tracks!