Jump to content

Patch changes mapping / Banks / Set management


Recommended Posts

Hi everyone,


I'm totally new to Mainstage (and got started with MIDI only a couple of weeks ago), so I apologise in advance for the noob questions. I read the manual, watched quite a lot of videos, read a bunch of posts here, mucked about with it and I'm starting to get a clearer picture of how to use it. However, there's one thing I still haven't managed to figure out, and I couldn't really find any info on how to handle it.


I would think what I'm trying to do is a pretty standard thing, so maybe I'm not searching the right way and just missed it, or maybe the way I envision my workflow is wrong. I'd happily take any suggestions!


I need to set up a live keyboard rig for a repertoire containing about 20-30 songs. Within each one of the songs, I'll use several different patches. For instance, in one song a Rhodes patch on verses, a synth patch on choruses. In another song, a B3 and a piano. Stuff like that, varying between songs.


I'm currently trying to figure out how to switch between patches within each song easily, from my controller. Using Next Patch/Previous Patch is not an option, as I will sometimes need to jump very quickly between non consecutive patches. I saw I could assign each Patch to a PC message. That sounds good, but for what I'm trying to achieve it it looks like I would need some kind of bank change management as I'd like to restrict the number of buttons dedicated to this kind of operations to the minimum, and keep them always at the same location on the keyboard.


A convenient scenario for me would be something like that :


* For song #1, I'd like to assign patches #1, #2, and #3 to buttons C18, C19, and C20 on my controller.

* For song #2, I'd like to assign patches #4, #5 and #6 to the same buttons C18, C19 and C20. And let's say #7 to C21 for good measure. And recycle an existing patch using an alias, too.

* and so on


So, I thought I might be able to use Sets in my Concert as some kind of banks, and then to assign my controller buttons to PC messages assigned to each Patch within these banks. But from what I understand, I'm not sure if I can really do that, or how. Or if it is the right solution.


Something like that, for instance:


* Set 01 (Bank 01 ?)

* Patch 01 - Button C18

* Patch 02 - Button C19

* Patch 03 - Button C20


* Set 02 (Bank 02 ?)

* Patch 04 - Button C18

* Patch 05 - Button C19

* Patch 06 (patch 01 alias) - Button C20

* Patch 07 - Button C21


So, I guess nothing new or unusual here. But I don't understand how to achieve that (if it's doable straight from Mainstage). Would anyone be able to point me in the right direction?


Cheers from France,



Link to comment
Share on other sites

Not sure if I got this right: It's an option for you to organize the whole concert with individual sets for each song? If so it should definitely be possible; however you would still need some sort of command to switch between sets.

What exactly are the buttons sending? Program Changes or notes?

In general there will be a bit of work in this because you need to assign the buttons individually on the Set level (instead globally on the Concert level).

Link to comment
Share on other sites

Hi, thank you for your answer!

Yes, it definitely is an option for me to organize the concert with one set per song.

My buttons can send whatever I tell them to send, right now they send Program Changes.

So far, I have set up my two first Sets as sketched in my previous post: Patches in Set 1 are assigned to Bank1 PC1 to 3, Patches Set 2 are Bank2 PC1 to 4.

At the moment, I'm switching from one Set to the next one with CC 110 and 111 on channel 16 (that's the default assignments for the Track-/Track+ buttons on my controller, which Mainstage happily understands straightaway as Set-/+). What I can't figure out is how to handle my Bank changes. I was wondering if I should do something inside the Current Bank Number in the Screen Control Inspector, but I just don't know what.

Link to comment
Share on other sites

Here's what I would do; I'm sure there are other ways to accomplish this.

Make your controller buttons send notes (on a different channel than your keys).


Then create a number of controls for those buttons in the Layout screen and assign the MIDI commands coming from the buttons to them. Each and every button from your controller should be able to control one screen button. Here's a screenshot from my Layout; my "buttons" are coming from a Korg Nanopad (in the end I'm only using the first four buttons but the principle should be clear):



Now let's move over to the Edit screen. Here's a screenshot from an example concert:


We can see in the Patch list three Sets with four Patches each. I can now use the buttons on my Nanopad to switch between those patches within a single Set; and once I'm in the next Set those four buttons switch between the Patches in this Set and so on.

There are different ways to achieve this; I'm actually using Program Changes. But you can also use the Patch Numbers. Let's have a look at the Patch list:


As you can see I have consecutive Program changes for all Patches; this isn't exactly required but certainly helps. There's a menu entry and a key command to reset the Program Changes.

Important: No Bank Select must be used! No Program Change must appear twice!


And now we can put this all together: On the level of each Set we assign the buttons to Program Changes and hence to the Patches. Here's an example for Set 2:


As you can see the "Set 2" folder is selected. I can't stress this enough: This is most crucial part of doing those assignments. You must not select the Concert Level (as we often do when assigning controls) and neither a single Patch. The folder for the desired Set must be selected as in the picture.

Then click the button and select "Current Program Number" from "Actions". Input the desired value for the Program Change (in this particular case: 5) on the left.

Click the next button and repeat, but this time with "6". And so on.

This allows us to use the buttons from your controller to activate the buttons on the screen which in turn send different Program Changes depending on the Set you're currently in.

It's a bit twisted but works well as long as we stay within 128 Patches.

I've used individual Parameter Labels hence the buttons on the screen read 5-8; normally they would display the type of action.


Does this help for a start? As I said there probably are many other different ways to accomplish this.

Link to comment
Share on other sites

  • 4 months later...

Hi again folks!


I've been using that setup for a while now, and it's been working fine. However, there's a few improvements I'd like to make. I've tried different things, but didn't manage to make it work the way I'd like to. I'm not sure it's doable, but maybe someone here would know.


So, here's how my concert is organised so far:

I have set up one set per song, within which there are various patches. In each set, I navigate between patches with the 5 coloured buttons at the bottom, using Program Changes. These Program Changes are assigned at set level for every song. This works great, but visual monitoring would be much easier if the selected patch lit up the matching button (the controller I use for patch changes is a Launchpad X, which could reflect the currently selected patch button status. If that worked, I wouldn't need to watch the computer screen while changing sections)






The buttons don't light up, I guess it is the default Current Program Number action behaviour.


One workaround I've found is to use Jump to Patch or Current Patch instead. The buttons are then lit and it's great. However, when I do that, if I reorganize the order of my sets (which I need to do if the setlist changes), the patch numbers change but are not updated inside the buttons. Then my navigation is all messed up.


If I can make this work, I also intend to use the two rows of eight buttons in the middle as direct access to every patch, assigned at concert level. But the issue is similar.


I guess it all boils down to: is there a way to have an absolute patch addressing system, like Program Change numbers, which would still allow the patch selection button to be lit up as with Current Patch or Current Patch Number?


I hope I make sense ^^




Link to comment
Share on other sites

I know something like this can be done because I managed to do this with my xTouch mini. But it required a sort of "backchannel" to the controller. It's not exactly super easy but gave me the exact visual feedback on the controller itself. As far as I remember I even implemented a "set change" with the top row with the newly selected set just blinking until an actual patch from the set was called up.

It's been some time that I did this (two years?) and I didn't have an opportunity to use this setup since then. So I might have forgotten some things; and I certainly would have to dig through my files to gather all the information.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...