Weird problem with program change in exported MIDI file

I’m not sure if this is a Cubase/Nuendo problem, or a Logic Pro problem. I want to export a project from Nuendo (but I tried from Cubase and the result is exactly the same) to Logic Pro, and as we know, sadly there’s no simple way to do it, relying on a good old MIDI file.

Because I will give that MIDI file to a friend, I thought I’d try for the first time ever to insert program change values in each track. So I pulled the spreadsheet where I have all the codes and started assigning the ones that were closest to the instrument in that track.

But half way through, I thought I would export the MIDI file to see if it worked. And I found something really odd when I opened that file in Logic Pro 11. Every single program change code had a offset of -1. So for example, 40, which is a violin, became a 39, which is “synth bass 2”. And 48, string ensemble, became 47, a.k.a. Timpani. So a total mess.

I spent the last two hours searching for this online, here, the manuals, I went into all the preferences for both Cubase and Logic Pro, and I couldn’t find anything about this weird offset. I did many test exports, with different options in the MIDI export dialog, but it’s still the same.

Unfortunately I only have two DAWS that handle MIDI, Cubase/Nuendo, and Logic Pro and then GarageBand, which is like Logic Pro Mini Me, so same exact offset.

Anyone knows what this is about?

Never heard of anything like this happening.
Are you inserting the BankSelect/ProgramChanges directly in a part on the track or via the Inspector?
Can you please show us in the List Editor an example of a program change
or
a screenshot of the settings in the Inspector?

Does this mean that, when played in Cubase you actually hear a violin, and the same MIDI file in Logic plays a synth bass?

It might be just a display thing; MIDI program changes are 0-127, however it might displayed as the more human-friendly 1-128. It would still be a zero of Acoustic Piano in GM, for example, but that could be referred to as the “first” program, rather than the “zeroeth”.

Cubendo shows Program Changes as 1 - 128, while Logic Pro shows it as 0 - 127.
So a Patch displayed as 40 in Cubendo, is displayed as 39 in Logic, but actually it will play the same Patch, since both are referring to MIDI command C0 27 (hex).

1 Like

As I never worked with program changes, I’ve inserted them the only way I know, which in its own MIDI controller lane:

Geez, Apple and their little annoying things. Why do they have to change what doesn’t need to be changed?

Well, I tried this with the most obvious, which was the change from 48 (string ensemble) down to 47 (timpani). And in Logic the track plays timpanis instead of strings. It also shows like that in the track name and picture. So I assume all the rest are the same thing.

I can’t believe that nobody has ran into this before, because I bet that more than one person had to export a MIDI from Cubase and bring it into Logic, them being two of the most popular DAWs out there.

Now, I just realized that maybe I could open the midi file in the Musescore local app, even if it’s not a DAW, but can read MIDI. And Musescore acts like Logic Pro, the 48 turns into 47 and plays timpanis.

So I can just change all the codes to +1 and be done with it, but it’s just weird. Isn’t there a setting somewhere in Cubase to change this? Or perhaps in Logic, I will ask in a Logic forum and see what they say.

That doesn’t seem to be the case unfortunately.

Also, I love that the title of the page is “Program change events in Logic Pro for Mac”, as opposed to what? Logic Pro for Windows? :laughing:

The allocation of program change numbers as standardised in GM is fixed, and Cubase does it correctly.

Good idea.

But GM 48 are Timpani, not String Ensemble.
grafik

Oh, then this table I downloaded from somewhere is total crap LOL

Gotta get me a better table.

1 Like

This would mean that Logic is interpreting the MIDI file incorrectly or has a setting for switching between the first patch as 0 or 1?

I think the case is solved.

1 Like

Thanks Johnny!!

1 Like

You can join the MIDI Association and download the GM specification for free.