Hi,
I’m working with Mainstage for Live purpose on Mac Ventura.
I have 2 instances of Unify, each one is on a different track with different midi channels and I've created a separate MIDI bank file for each one.
In Mainstage 3.6.4 when I call a preset (with TouchOSC) on Track 1 the preset N° 1 is loaded on Unify instance 1 and I can call a different preset on Track 2.
To call the preset on track 1 I have a file 1_3 and I send MSB = 0 then LSB = 2, and a Program Change according to the patch I need, to call the preset on track 2 I have a file 1_4 and I send MSB=0 then LSB=3 and a Program Change.
Since Mainstage has been updated from 3.6.4 to 3.6.5 yesterday, the ability seems to be broken, I think something has changed in the way of Apple ‘fixed” a problem that existed in previous versions of Mainstage and which seems to be fixed in their last version according their release note ("External Instrument channels sending Bank select messages now send the correct sequence of MSB and then LSB messages.")
Now, in Mainstage 3.6.5, when I call a preset on Track 1, the preset is loaded on track 1 and when I load another preset on track 2, it calls the same preset as loaded in track 1, but in order to make it work I’m forced to use a 1_1.txt file. In that situation, 1_2, 1_3 and 1_4 files are totally ignored and I'm limited to only 127 patches. (Please see the 2 pics attached showing the different results between different Mainstage versions)
- Yet MSB is sent first, then LSB and finally Program Change in the right order (please see the screenshot taken from Mainstage since I could not use Midi Monitor in Unify because it disappears each time the preset is called...
- I unchecked the “Bank/Program Change” in “MIDI Functions” in Unify Settings, then restarted Unify but nothing changed.
I made the same test with 2 instances of DUNE synth, and it works properly with Mainstage 3.6.5 as it worked with Mainstage 3.6.4.
I’m available to make a video call if needed, maybe it could be easier, please let me know.
Thanks very much for your help as I’m stuck now with this problem.
Dan
Thank you for this very clear and detailed report. I was able to reproduce the underlying problem using TouchOSC Bridge, MainStage 3.6.5, and Unify. What's happening is that MainStage 3.6.5 does not pass MIDI bank-select messages through to plug-ins. Perhaps MainStage 3.6.4 did this--I don't have it to test--but MainStage 3.6.5 certainly does not. You may wish to take this up with Apple support.
I created a MainStage concert with just a single instance of Unify, hosting just a single MIDI Monitor instance, with "CC" checked so CC#0 and CC#32 (bank select MSB, LSB) messages would be visible, then sent the exact sequences of messages you showed in your first screenshot using TouchOSC. Only the two MIDI program-change messages appeared. (Unify did not attempt to load any patch, because I had switched off the MIDI "Bank/Program Change" checkbox in Settings.) I then repeated the test using the Unify stand-alone app, and all six messages appeared as expected. I can only conclude that MainStage is not passing the CC#0/CC#32 messages through to Unify.
I don't know MainStage well, but based on this page in the documentation, it appears that it's designed to interpret MIDI bank-select messages itself, and there appears to be no option to switch this off. Hence, you are limited to one MIDI bank file for all instances of Unify.
I regret what seems to have been a loss of functionality for you, but I don't think there's anything I can do about it. If Unify doesn't even receive bank-change messages, it can't interpret them to select among different banks.
Small update: I repeated the test with Logic Pro 10.8, and verified that it does pass all incoming MIDI messages to the Unify plug-in. Whatever this issues is, it appears to be specific to MainStage.
Hi, thanks for taking time to test that, hoping this could be fixed in a future Mainstage version, all I have to do now is choosing between all the Unify best libraries for a maximum of 127 sounds (gonna be hard...)
Yet it's working with DUNE and Mainstage 3.6.5, could you test it out please ?Small update: I repeated the test with Logic Pro 10.8, and verified that it does pass all incoming MIDI messages to the Unify plug-in. Whatever this issues is, it appears to be specific to MainStage.
Thanks
BTW why are you using MainStage? Have you considered using Unify stand-alone as the primary live host, and then loading multiple instances of Unify on separate INST layers, set to different MIDI channels. That DOES allow MIDI-based bank- and patch-selection on a per-layer (per-MIDI-channel) basis.
@getdunne Thanks for this good idea but I have a tons of other plugins that I'm calling plus audio tracks...
@getdunne Thanks for this good idea but I have a tons of other plugins that I'm calling plus audio tracks...
Makes sense. I think it's reasonable to ask Apple's MainStage team to provide an option to pass MIDI bank messages to plug-ins, rather than interpret them itself. Feel free to refer to this discussion thread as evidence for why this would be valuable.