Program Change 0 with GP

hi, I’m reading a midi file from Midi player external (LoopMidi or Midi Omni). With midi monitor,
I see all the program changes except program change 0 (program change 0 is ok with global midi monitor). I thing that GP is using the PC 0 for something but i don’t find it.

I only found one solution to get it working. I changed the “Only accept PC on specific channel” parameter in “Options/Global MIDI” and set it to 16. As a result, I receive PC 0 correctly, but no longer channel 16.

Can you give me a solution so that I receive PC 0 correctly and don’t lose channel 16?

Thank you.

Here’s an old blog post that can get you started with how GP uses program changes.

thank you for this old post. I’m already using Use zero-based PC numbers toggle button, but the post doesn’t tell me how I can use PC 0 for my personal use and not for changing setlists, rackspaces, or anything else.

GP interprets external PC messages for use with rackspace/song assignments. It’s a fundamental part of the software. When messages are aren’t in use that way, they can be passed on otherwise (There’s a setting for that in the Options menu). However, PC 0 will be the first rackspace assignment by default if you’re using zero-based numbering.

??? external PC messages PC 0 is a fundamental part of a general midi file to change sound to Grand Piano.

Sure - but Gig Performer is a plugin host - not a GM player. Program change messages are used to select a rackspace or song part.

If you want to play GM MIDI Files, then use a GM Rompler plugin like Purity (Products – Sonic Cat)

I use GP to play external MIDI files and be able to modify everything I want within GP (sound, EQ, transpose, etc.). The problem with the internal MIDI player (MIDI file player) is that it’s far too basic (no rewinding, no live sound changes, no .kar playback, no text display, etc.). I’ve tested many external MIDI players, but I’d like to use MIDI Player, which is an industry standard. And I’m stuck with PC 0.

So what exactly do you want to have happen when you send PC 0 into GP?

A PC 0 in a general MIDI file is sound 0 of the general MIDI bank (sound 0 is usually the grand piano). So I simply want to filter this PC 0 and send it to my instrument 0 (my piano). If it’s a PC 33, I send it to my instrument 33 (a bass), and so on…

I join here a scriptlet for PC 0

PC 0.txt (621 Bytes)

Now, none of this is a big deal because with the “only accept PC messages on channel 16” function, I only lose PC 0 on channel 16, which should be quite rare in General MIDI. Lol

I’m still not understanding how you’re approaching this.

Where are these instruments specifically? Are they all in one rackspace? What plugin are you using for each instrument?

All my plugins are in the same rackspace. I’m using 8 instances for Pianoteq. If i détect PC 0, i heard sound from Pianoteq 0, if i detect PC 1, i heard sound from Pianoteq 1…and so on.

I see …. That’s not the usual way to use GP but OK

I assume then you are just using a single Default variation.

The solution is then simple. For that default variation, simply change one of the bank parameters from 0 to something else. Then since that variation will no longer be using bank 0, all program changes, including 0, will pass through to your plugin

1 Like

Sorry, I didn’t understand anything..

The general concept is simple — Gig Performer passes through to plugins any program change that is not associated with a rackspace. When you have a single rackspace, by default its associated program change number is 0. That is why PC 0 is not reaching your plugins.

However, that’s not the whole story. Beyond program changes, there is a concept of bank selection, the goal being to allow more than the limited 128 choices you get when using a program change number.

If you change the bank number to something other than 0, then Gig Performer will not respond to the PC 0 because it’s not on the correct bank. Hence the PC 0 will be passed on to your plugins.

If you don’t understand banks, then a google search for MIDI bank select will probably help

2 Likes

Thank you. This is a solution !