Jump to content

Get current MainStage patch number


jbrueck

Recommended Posts

Hello everybody,

 

I wonder if there is a way to get the current MainStage patch number or program change number in a Scripter plugin inside MainStage? Essentially, I'd like to have a channel strip at concert level with a Scripter plugin that does different things, depending on which patch is active. I tried mapping a screen control to the current program change and this does get displayed. But I can't seem to find a way to pass that value to a plugin, for example a UI element in a Scripter plugin.

 

Thanks,

Jens

Link to comment
Share on other sites

I’m pretty sure you will need to do something that will actually send midi to scripter that can be used to determine which patch.

 

Some other things to try, you can try making a GUI control in scripter that has automation set to true and see if that shows up as an available parameter in main stage layout. Maybe you can get it there that way too

Link to comment
Share on other sites

I didn't really get it work, but I'm out of time, so maybe you can take it from here and figure it out..

 

  1. In scripter create a GUI control with automation on:
     
    var PluginParameters = [];
    PluginParameters.push({
       name: "program indicator",
       type: "lin",
       minValue:0,
       maxValue:127,
       numberOfSteps:127,
       defaultValue: 0,
       data: 0,
       disableAutomation: false
    });
    


     

  2. Create a control in layout mode.
     
     
  3. while the concert is selected, in edit mode, select the control and assign it to the action called "Current Patch Number"
     
     
  4. Fine so far, notice that this control can change which patch and when the patch changes, this control changes. Its linked directly to the patch number.
     
     
  5. Here is where I get stuck... you want to use Mainstage's so called "Multi-mapping" feature to assign that control to more then one thing..in this case we leave it assigned to the patch number and we want to assign to to the "program indicator" control we created in Scripter earlier. This is easy enough to do, but when I change patches I'm not getting any changes reflected in the Scripter control. I'm not sure why. It works if the control is linked only to the Scripter control. But in the multi-mapping mode as a secondary mapping, doesn't seem to work for me so far.
     
    Maybe you can figure it out. It may have something to do with the fact that when you change patches, the Scripter plugin doesn't match up exactly compared to when you're looking at the concert setup. I'm not sure.
     
     
  6. You could also try messing around with smart controls

 

If you can get the Scripter UI control to move in response to patch changes, then you will have your way to find out the current patch in the script.

Link to comment
Share on other sites

Thanks a lot for your answer, Dewdman42! Unfortunately, I got stuck at the same stage as you. I can get a screen control to reflect the current patch number, but when I try to assign that same control to a Scripter UI element, Scripter doesn't seem to get any kind of message. I tried a few other things, but can not a solution to this problem.

 

Anyway, thanks again!

Link to comment
Share on other sites

I have a concert with lots of patches. The order of patches change and new ones are added at different places in the concert. I need to send a program change message for each patch to an external instrument. The program change for a patch needs to be the number of the patch. Of course I can send program changes with the standard feature of the external instrument channel strip. But when I have, say, 100 patches and add a new one as the second patch, I have to edit all 98 patches that come after it to reflect the new setlist.

 

I can easily reset the received program change message for all the patches but the problem is the same. I can map the current program change to a screen control but I don't see a way to send it out.

Link to comment
Share on other sites

Apologies for not making myself clearer!

 

Let's say I have my concert of 100 patches. Each patch has an external instrument channel strip with its program change send feature enabled. For patch 1 it sends PC 1, for patch 2 it sends PC 2. All is good. Now I need to add a new patch as the second one in the concert. Patch 1 can stay as it is and the new patch 2 now sends PC 2. But the external instrument in the old patch 2 (which is now the third one) needs to be be edited, because it now needs to send PC 3. Patch 4 (which used to be number 3) needs to be edited because now it needs to send PC 4 and so on. So I have to go through the whole concert, scroll to the right in the mixer, click the channel strip, click on MIDI output, edit the program change number and repeat 98 times.

 

As there is no way to bind the outgoing program change number of an external instrument channel strip to the incoming one of the patch, I thought about using Scripter for that.

Link to comment
Share on other sites

I got you, I guess I'm not understanding why you would need your patches to send a different external program change, depending on its position in the patch list. But...actually...I can see if you are for example using a guitar floor pedal and you want to have 100 songs in the same order there as they are in Mainstage..then it would make sense...

 

I'll think about this a bit to see if I can think of something...

Link to comment
Share on other sites

Thanks for taking your time to help me!

 

To give you a bit more context:

The external instrument is a drum pad controller. Sometimes I need to change MainStage patches by changing the preset on the controller directly. The presets are all the same, but each one sends a program change (in order). This is no problem because when I edit/add/remove/reorder the concert in MainStage, I can simply reset the received program changes in MS to have them in order again. But at other times in the show, I need to change the patch in MS with other means (foot switch, trigger pads etc, other controller). But the controller has to know of that so it also changes its preset accordingly. So I need MS to send a program change to the controller. That's because it would otherwise still be on another preset and the next time I change the preset directly at the controller, it would then send the wrong program change to MS.

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.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  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...