Skip to content

midi

3 posts with the tag “midi”

MIDI Program Change Reference: Bank and Patch Formats for 51 Stage Devices

The MIDI specification explains bank select and program change in the abstract. What it does not tell you is that a Nord Stage 4 wants A:11, a Kemper wants a performance and a slot, and a Roland FA-08 is listening on channel 16 rather than channel 1.

This is that missing layer: the addressing scheme for 51 devices that actually turn up on stages, taken from the device profiles Gigmeister ships. If you need the underlying theory first, how MIDI program changes work in a live band covers it.

A Program Change (PC) is a single MIDI message carrying a value from 0 to 127. That gives 128 addressable programs — enough for a vintage synth, nowhere near enough for a modern workstation.

Bank Select extends the range. It is two Control Change messages sent immediately before the program change:

  • CC 0 — Bank Select MSB (Most Significant Byte)
  • CC 32 — Bank Select LSB (Least Significant Byte)

Together they select one of 16,384 banks, each holding 128 programs. The three messages always travel in the same order: MSB, then LSB, then PC.

Where manufacturers diverge is in how they map their own front-panel names onto that structure. A Nord calls it a page, bank and preset. A Helix calls it a setlist and a preset. A Kemper calls it a performance and a slot. Underneath, all of them reduce to the same three numbers.

Each table below gives the device’s own program structure — the vocabulary printed on the instrument — along with the total number of addressable programs and the MIDI channel it listens on out of the box.

The program structure column is the useful one. It tells you how many discrete addresses exist and how the manufacturer divides them. A device listing 8 banks × 128 programs = 1024 programs needs a bank select; one listing Direct program entry takes a program value on its own.

Stage Keyboards

DeviceManufacturerProgram structureDefault channel
Nord Stage 4Nord8 pages × 8 banks × 8 presets = 512 programs1
Nord Stage 3Nord16 banks × 5 pages × 5 programs = 400 programs1
Nord Electro 6Nord26 banks × 4 pages × 4 programs = 416 programs1
Nord Piano 5Nord16 banks × 5 rows × 5 cols = 400 programs1
Yamaha CP88/CP73Yamaha15 pages × 8 live sets = 120 programs1
Yamaha YC SeriesYamaha40 pages × 8 live sets = 320 programs1
Korg Kronos/NautilusKorg21 banks × 128 programs = 2688 programs1
Roland RD-2000Roland15 banks × 20 programs = 300 programs1
Hammond SKXHammond2 banks × 100 patches = 200 programs1

Synthesizers

DeviceManufacturerProgram structureDefault channel
Moog Subsequent 37Moog16 banks × 16 presets = 256 programs1
Sequential Prophet Rev2Sequential8 banks × 128 programs = 1024 programs1
Sequential Prophet 6Sequential10 banks × 100 programs = 1000 programs1
Novation Peak/SummitNovation4 banks × 128 patches = 512 programs1
Access Virus TIAccess Music30 banks × 128 patches = 3840 programs1
Arturia PolyBruteArturia8 banks × 96 presets = 768 programs1
Nord Lead A1Nord8 banks × 50 programs = 400 programs1
Oberheim OB-X8Oberheim9 banks × 128 programs = 1152 programs1
Waldorf BlofeldWaldorf8 banks × 128 sounds = 1024 programs1
Korg Minilogue XDKorg5 banks × 100 programs = 500 programs1
Korg MicroKorgKorgDirect program entry1
Korg microKORG 2Korg4 banks × 8 genres × 8 programs = 256 programs1
Modal Cobalt8Modal ElectronicsDirect program entry1
Nord Wave 2Nord16 banks × 25 programs = 400 programs1
Sequential OB-6Sequential10 banks × 100 programs = 1000 programs1
Korg PrologueKorgDirect program entry1
ASM HydrasynthASM8 banks × 128 patches = 1024 programs1
Novation Bass Station IINovationDirect program entry1
Moog OneMoog8 banks × 8 presets = 64 programs1
Arturia MicroFreakArturiaDirect program entry1
Elektron DigitoneElektron8 banks × 16 patterns = 128 programs10
Elektron Analog FourElektron8 banks × 16 patterns = 128 programs9
Roland System-8Roland4 engines × 64 patches = 256 programs1
Behringer DeepMind 12Behringer8 banks × 128 programs = 1024 programs1
Korg WavestateKorg4 banks × 16 slots = 64 programs1
Dexibell Vivo S9DexibellDirect program entry1
Nord GrandNord16 banks × 5 pages × 5 programs = 400 programs1
Nord Drum 3PNord4 banks × 50 kits = 200 programs10
Roland FA-08Roland5 banks × 128 studio sets = 640 programs16
Roland VR-730RolandDirect program entry4

Effects Processors

DeviceManufacturerProgram structureDefault channel
Line 6 HelixLine 68 setlists × 128 presets = 1024 programs1
Kemper ProfilerKemper125 performances × 5 slots = 625 programs1
Fractal FM9/FM3Fractal AudioDirect program entry1
Boss GT-1000Boss250 presets = 250 programs1
Neural DSP Quad CortexNeural DSP13 setlists × 256 presets = 3328 programs1

Drums & Percussion

DeviceManufacturerProgram structureDefault channel
Roland SPD-SX/ProRoland200 kits = 200 programs10

Workstations

DeviceManufacturerProgram structureDefault channel
Roland Jupiter-XRoland4 banks × 128 scenes = 512 programs1
Roland FantomRoland4 banks × 128 scenes = 512 programs16
Kurzweil PC4Kurzweil41 banks × 128 programs = 5248 programs1
Yamaha MontageYamaha93 banks × 128 programs = 11904 programs1
Yamaha Montage M / MODX MYamahaLive Set pages plus Preset, User and Library performance banks (single and multi part)1

Host Software

DeviceManufacturerProgram structureDefault channel
Apple MainStageApple128 banks × 128 patches = 16384 programs1
Gig PerformerDeskew Technologies128 banks × 128 programs = 16384 programs1
Camelot ProAudio Modeling128 setlists × 128 songs × 127 scenes = 2080768 programs1

Which Devices Do Not Default to Channel 1?

Section titled “Which Devices Do Not Default to Channel 1?”

Six of the 51 listen on something other than channel 1 out of the box, and this is the single most common reason a correctly configured program change appears to do nothing:

Device Default channel Why
Elektron Analog Four 9 Elektron’s own track-channel convention
Elektron Digitone 10 Elektron’s own track-channel convention
Nord Drum 3P 10 General MIDI percussion channel
Roland SPD-SX/Pro 10 General MIDI percussion channel
Roland VR-730 4 Upper/lower/pedal parts occupy channels 1 to 3
Roland FA-08 16 Control channel sits above the 15 part channels

If a device stays silent while everything else in the rig switches, check the channel before you check anything else.

The Nord Stage 4 exposes 512 programs as 8 pages (A–H), 8 banks per page, and 8 presets per bank. The front panel shows A:11. The wire sees something else.

Nord numbers them contiguously, so the position is calculated first and then split across LSB and PC:

  • A:11 — the first program. Position 0, which sends MSB 0, LSB 0, PC 0.
  • B:11 — position 64, which sends MSB 0, LSB 0, PC 64.
  • C:11 — position 128, the first program past the 128 boundary, sending MSB 0, LSB 1, PC 0.
  • H:88 — the last program. Position 511, sending MSB 0, LSB 3, PC 127.

The MSB never moves off 0 on a Stage 4. The LSB increments once per 128 programs, giving four LSB values (0–3) to cover all 512. Every other picker-style device in the tables above follows the same principle with its own page, bank and preset sizes.

MIDI program change values run 0 to 127. A great many manufacturers number the same programs 1 to 128 on the front panel.

So a patch displayed as 001 is usually program change 0 on the wire. If every single patch loads exactly one position away from the one you wanted, this off-by-one is almost always the cause — not your cabling and not your setlist software.

The fix is to decide once whether your device is 0-indexed or 1-indexed, write it on the rig sheet, and stay consistent.

Reading a MIDI implementation chart once is fine. Doing it for four devices, then re-deriving the numbers every time the band adds a song, is where the evening goes.

The practical setup is per-song: each song in the library stores a program for each device in the rig, and advancing the setlist fires all of them at once. Gigmeister ships the 51 profiles above with their bank and program mappings already correct, so patches are chosen by name rather than by number — see the MIDI documentation, the full device list, or the Stage pillar for how it fits with the click track and backing tracks.

What MSB and LSB values does a Nord Stage 4 need? MSB stays at 0. The LSB runs 0 to 3, incrementing every 128 programs across the 512 total. Program A:11 is MSB 0, LSB 0, PC 0; H:88 is MSB 0, LSB 3, PC 127.

Which stage devices do not default to MIDI channel 1? Six: the Elektron Analog Four (channel 9), the Elektron Digitone, Nord Drum 3P and Roland SPD-SX (channel 10), the Roland VR-730 (channel 4), and the Roland FA-08 (channel 16).

Do all devices need a bank select before the program change? No. Anything with 128 programs or fewer takes a bare program change. Bank select only becomes necessary above 128, which is why a Korg MicroKorg needs none and a Korg Kronos with 1,792 programs does.

Does the order of the three messages matter? Yes. Bank MSB, then bank LSB, then the program change. Sending the program change first selects a program in whichever bank was already active, which is how a rig ends up playing the right patch number from the wrong bank.

How long should I leave between the message and the downbeat? Some devices take 100–500 ms to load a patch, and a few of the larger workstations take longer. Send the change during the gap between songs rather than on the count-in.

Using Gigmeister with MainStage and Gig Performer

If you play keys or guitar in a live band, there is a good chance you use Apple MainStage or Gig Performer to host your virtual instruments and effects. Both are excellent at what they do: load plugins, switch patches, and process audio in real time with rock-solid stability.

But they are built for one player at a time. And if you have ever tried to coordinate patch changes across a full band – keyboards, guitar rig, drum triggers, maybe a lighting desk – you know that each player managing their own host independently leads to problems. Missed cues, wrong patches, awkward gaps between songs.

Gigmeister is not a replacement for MainStage or Gig Performer. It is the layer that sits above them and runs the show.

Both apps are patch hosts. They load your virtual instruments (piano, organ, synth pads, guitar amp sims) and let you switch between configurations using MIDI program changes. Their strengths:

  • Low-latency audio processing with optimized plugin hosting
  • Complex signal routing (splits, layers, effects chains)
  • Per-patch settings for volume, EQ, effects parameters
  • Setlist organization of patches in performance order

MainStage is built into the Apple ecosystem and works seamlessly with Logic Pro sounds. Gig Performer is cross-platform, supports both VST and AU, and has a visual wiring view that makes complex routing intuitive. Both are purpose-built for stage use and both are great at their job.

The problem is not the host. The problem is everything around it.

Each player is an island. Your keyboard player has their MainStage setlist. Your guitarist has their Helix presets. Your drummer has SPD-SX kits. None of these systems talk to each other. When the band decides to swap songs 4 and 7 in tonight’s setlist, every player has to manually reorder their own rig.

No shared context. The singer is on verse 2, but the keyboard player loaded the wrong patch because they thought the band was on the bridge. There is no single source of truth for “where are we in the show right now.”

Patch switching is per-device. Even within MainStage or Gig Performer, switching patches means the player has to tap a button, click a mouse, or step on a pedal assigned to that specific host. Multiply that by every device on stage and you have a lot of manual actions per song.

No visibility for the rest of the team. Your sound engineer cannot see your MainStage setlist. Your lighting operator does not know what song is next. The band leader has no way to push a setlist change to everyone at once.

Gigmeister acts as the band-level conductor. It manages the setlist, the song metadata, and the MIDI messages that tell every device on stage – including MainStage and Gig Performer – what to do.

Build your setlist once in Gigmeister. Assign MIDI program changes to each song for every device in the band. When you advance to the next song, Gigmeister sends program changes to all devices simultaneously:

  • Your keyboard player’s MainStage receives PC 23 on channel 1 and loads the Rhodes patch
  • Your guitarist’s Helix receives PC 4 on channel 3 and loads the clean rig
  • Your drummer’s SPD-SX receives PC 12 on channel 10 and loads the right kit

One action. Every device switches. No one has to touch their individual host.

Songs are not one patch from start to finish. You might need a piano for the verse, a synth pad for the chorus, and a lead sound for the solo. Gigmeister’s step-based navigation handles this.

Define steps for each song (intro, verse, chorus, bridge, solo) and assign different MIDI program changes to each step. When you advance to the chorus, MainStage or Gig Performer receives the right program change and loads the chorus patch. Your guitarist’s rig switches at the same time.

This is something neither MainStage nor Gig Performer does well on its own. They can switch patches, but they do not know what section of the song you are in. Gigmeister provides that structure.

Gigmeister sends MIDI clock at 24 pulses per quarter note, locked to the song’s tempo. MainStage and Gig Performer can slave their tempo-synced effects to this clock:

  • Delays that are perfectly in time with the band
  • Arpeggiators that follow the song tempo
  • Tremolo and modulation effects that pulse on the beat

You can even set per-step tempo changes. If the bridge slows down to half time, Gigmeister adjusts the clock and your host’s synced effects follow automatically.

Upload MIDI files to Gigmeister and trigger them on song or step start. These clips play back through your host’s loaded instruments:

  • Trigger a synth sequence loaded in MainStage
  • Fire a one-shot sample via Gig Performer
  • Auto-loop a MIDI pattern for the duration of a section

Clips are tempo-scaled to match the current song BPM, so they stay in sync even if you adjust the tempo.

Getting MainStage or Gig Performer working with Gigmeister takes about 15 minutes.

Connect your Gigmeister device (iPad, iPhone, laptop, or desktop app) to your host computer via USB-MIDI, a MIDI interface, or a virtual MIDI bus if both apps run on the same machine.

In MainStage: Go to Layout mode. Set your Concert to respond to MIDI program changes on your chosen channel. Each patch in your Concert already has a program change number – just make sure the numbers match what you configure in Gigmeister.

In Gig Performer: Open the MIDI settings for your rackspace. Enable “MIDI Program Change” listening on the appropriate channel. Gig Performer maps rackspaces to program change numbers, so rackspace 1 responds to PC 0, rackspace 2 responds to PC 1, and so on.

Open any song in your Gigmeister library. Go to the MIDI tab. Add your MainStage or Gig Performer instance as a device (generic MIDI device works – just set the channel). Pick the program change number that corresponds to the right patch in your host.

Do this for each song. If you use step-based navigation, assign per-step programs too.

Drag your songs into a setlist. Hit play. When you advance songs – by swiping, tapping, or using a foot pedal – Gigmeister sends the program changes and your host loads the right patch.

Think of it this way:

Responsibility MainStage / Gig Performer Gigmeister
Host virtual instruments Yes No
Process audio in real time Yes No
Complex signal routing Yes No
Manage the band’s setlist No Yes
Switch patches across all devices at once No Yes
Per-section MIDI automation Limited Yes
Share setlist with the whole band No Yes
Share setlist with sound engineer No Yes
Chord sheets and lyrics on stage No Yes
MIDI clock sync to band tempo No Yes
Work offline at the venue Standalone Yes (offline-first)

MainStage and Gig Performer manage your sounds. Gigmeister manages your show. Together, they cover the full workflow from soundcheck to encore.

Match your program change numbers. The most common issue is a mismatch between what Gigmeister sends and what your host expects. MainStage and Gig Performer both number from 0, but some documentation shows 1-based numbering. Test every song before the gig.

Use dedicated MIDI channels. Put MainStage on channel 1, Gig Performer (if another player uses it) on channel 2, and hardware devices on higher channels. This prevents crosstalk.

Send changes during transitions. Some patches take a moment to load, especially if they use large sample libraries. Advancing to the next song a beat early, during applause, or during stage banter gives the host time to load without audible gaps.

Keep your host’s own setlist as a backup. If the MIDI connection fails mid-gig, you want to be able to manually step through patches in MainStage or Gig Performer. Set up their internal setlists to mirror your Gigmeister setlist as a fallback.

If you already use MainStage or Gig Performer, Gigmeister plugs right into your workflow. Your host keeps doing what it does best – hosting plugins and processing audio. Gigmeister adds the band-level coordination that a single-player host cannot provide.

Create a free account on Gigmeister and connect your first device. Check the MIDI documentation for detailed setup instructions.

How to Use MIDI Program Changes in a Live Band

If you play keyboards, guitar effects, or any MIDI-capable instrument in a live band, you have dealt with the scramble of switching patches between songs. You are mid-set, the last chord of “Take Me to the River” is still ringing out, and you need to get from your Rhodes patch to a synth pad before the intro of the next tune. Fumbling through menus on stage is not a good look.

MIDI program changes solve this. Here is how they work and how to set them up for a seamless live show.

A MIDI Program Change (PC) message tells a device to switch to a specific preset. It is a single byte value from 0 to 127, giving you access to 128 programs on any given MIDI channel.

When you send PC 42 on channel 1 to your keyboard, it loads program 42. Simple enough. But most modern instruments have far more than 128 presets, which is where bank selection comes in.

The MIDI specification added Bank Select messages to extend beyond the 128-program limit. Bank selection uses two Control Change (CC) messages sent before the Program Change:

  • Bank Select MSB (CC 0): The “coarse” bank selector. Values 0-127.
  • Bank Select LSB (CC 32): The “fine” bank selector. Values 0-127.

Together, MSB and LSB can address up to 16,384 banks, each containing 128 programs. That is over two million possible patches – more than enough for any device.

The message sequence always goes in this order:

  1. CC 0 (Bank MSB) – select the bank group
  2. CC 32 (Bank LSB) – select the specific bank
  3. Program Change – select the patch within that bank

Some devices only use MSB, some use both MSB and LSB, and some ignore bank select entirely. Check your device’s MIDI implementation chart to know which messages it expects.

MIDI supports 16 channels per connection. Each musician’s gear typically lives on its own channel. A common setup:

  • Channel 1: Main keyboard (piano, Rhodes, organ)
  • Channel 2: Synth (pads, leads)
  • Channel 3: Guitar multi-effects processor
  • Channel 4: Backing track trigger

This isolation means one program change message will not accidentally switch patches on another player’s gear.

On a typical gig night, you might play 20 to 30 songs. If you have two MIDI devices, that is 40 to 60 patch changes. Do any of these manually and you will eventually:

  • Load the wrong patch
  • Miss the intro of a song while scrolling through presets
  • Forget which program number goes with which song

The answer is automation. Store the correct program change for each song, and let software send the messages as you advance through the setlist.

The basic workflow for automating MIDI program changes on stage:

Before you touch any automation, make a list. For every song in your repertoire, write down which patch you need on each device. Be specific: device name, bank number, program number, and the patch name for reference.

Connect your devices via USB-MIDI or 5-pin DIN cables to your tablet, phone, or laptop. Make sure each device is assigned to a unique MIDI channel.

In your setlist software, assign the correct bank and program number to each song for each device. When you advance to the next song in your setlist, the software sends the program changes automatically.

Run through your entire setlist at home or in rehearsal. Verify every patch loads correctly. MIDI numbering is notoriously inconsistent – some manufacturers number programs starting from 0, others from 1. A program listed as “001” on your keyboard might be MIDI program change 0.

Every manufacturer handles MIDI slightly differently:

  • Nord keyboards use a lettered bank system (A:11, B:23) that maps to specific MSB/LSB combinations
  • Line 6 Helix expects Bank MSB for setlist number and PC for preset within that setlist
  • Kemper Profiler uses CC 0 for performance slot and PC for rig within it
  • Boss GT-1000 uses Bank MSB/LSB pairs that map to user and preset banks

This is where pre-configured device profiles save you hours of reading MIDI implementation charts. Gigmeister supports 51+ devices out of the box with correct bank/program mappings already set up — the program change reference lists the bank structure and default channel for every one of them.

The most practical setup is one where each song in your library has MIDI programs saved for each device. When you build a setlist and start performing, advancing to the next song triggers all the right patch changes at once.

In Gigmeister, you configure this in the MIDI tab of each song. Select your device, pick the program by name (no need to memorize numbers), and you are done. During performance, swiping to the next song or pressing a foot pedal sends all program changes simultaneously.

Hands-free navigation is critical for performers. Map a MIDI CC message from a foot pedal to advance songs in your setlist. This way, your hands stay on the instrument and your patches change automatically as you step through songs. Learn more about MIDI foot pedal controls.

Use short cables. Long MIDI cable runs introduce latency and data errors. Keep cables under 15 feet when possible, or use USB-MIDI for direct connections.

Send program changes early. Some devices take 100-500ms to load a patch. Advancing to the next song a beat early, or using software that sends changes during the transition, prevents audible gaps.

Have a backup plan. If your MIDI rig fails mid-gig, know how to manually select your most critical patches. Write the top five on a piece of tape stuck to your keyboard.

Test with your full rig. MIDI issues that do not appear with a single device can surface when you add a second or third device. Test everything connected together.

If you want to stop fumbling with patches on stage, set up MIDI automation in Gigmeister. Add your devices, assign programs to songs, build your setlist, and let the software handle the rest. Read the full MIDI documentation for setup details and supported devices.