SysEx Bank Management

Hi all, new Cubase user,

TL;DR: I need a way to send SYEX files, full banks of patches, to my synths.

I’ve searched the forum and found some topics about sysex data in tracks (to send device specific messages, controller events, etc) and of course the standard MIDI track event editing / drawing in MIDI track stuff, all easy to find.

What I’m not finding (and maybe it’s not there): In Cakewalk/Sonar products, there’s always been a sysex bank window. To me, this meant basically saving device-specific patch banks for each project. You could use this window to store single patches, full user banks, send and receive, and specify ports to target the specific MIDI device.

For instance, I might want to keep all patches used in a project in a single user memory bank for a device (patches which otherwise might be all over the place and therefore not easily selected by PC messages).

For this kind of thing: use an external app? If so, what does everyone use? I really have not had to use one for decades because it was all in Sonar.

Additionally (and possibly related), I’ve seen more than one mention of a document named “MIDI Devices”. For instance, there’s more than one mention on page #789 of “Cubase_Pro_11_Operation_Manual_en.pdf”, such as this example:

“If you want to build more complex device maps, you must make yourself familiar with SysEx
programming (see the separate document MIDI Devices).”

But I’ve searched the Steinberg Document page and it seems to only be looking for product names. Does anyone have a link to this doc (or a tip to help me help myself next time)?

Thanks much,
Chris

They refer to the document found on this page if you scroll down:

I use that for one of my synths to send sysex to switch on/off legato mode on it. I set up a simple device panel for it to send sysex.

Thanks Shor, I’ll check it out.

Chris

The simplest way to send sysex is to create a part on the relevant MIDI track, open it in the List Editor, and insert a sysex event. When you click in the comment field of the sysex event, a basic hex editor opens and in that window you can load and save sysex files.
MIDI Editor > List Editor > Event List
The MIDI Devices, while great, are very complex when you want to do anything beyond defining a device/port combination with easy patch selection from the Track Inspector. The MIDI Devices function hasn’t seen any love from Steinberg since the SX years (the '90s called, they want their UI back!) so I’d be hesitant to invest too much time learning it now if there’s an easier way to do things.

Agree so much to this.
However, the midi device thing is unfortunately the best way if you want a midi device in your template that you need to control in a quick and easy way.

At least I think so?
I only use it for my one synth that doesn’t let me switch on/off legato without using sysex, and it’s so annoying, but needed.

Having to load sysex files would not be a good solution for it I feel.
Please let me know if there’s a way to do this more conveniently though… it’s one of the weaknesses in my template right now.

Thanks Mr. Soundman as well. I will check that out today.

It looks like there are a lot of cool things in Cubase that Sonar didn’t have, like when you configure a hardware synth as an external plug-in so you can use inserts and sends (audio-engine effects, etc.). But it also assumes a static setup, like “Synth X will always be plugged into audio interface inputs Y and Z”.

My interface has 8 inputs, but I have far more than 4 external stereo pairs, and so I use a patch bay. That means that a device can be on one pair of inputs for one project, a different stereo pair for the next project (or a different device on that same pair of inputs). Thankfully, I don’t have to do it this way (the external plug-in route).

And it’s good to hear that I can send a big block of SysEx from the MIDI editor, as well as imbed events to do things like fiddle with synth settings.

Cheers, Chris

Agreed, by all means set up a MIDI device to faciliate patch selection etc., but creating e.g. panels for devices can be extremely time-consuming and often frustrating. That’s what I meant by saying it is very complex to do anything beyond defining a named device/port (and patchlist if you have one).

I would create a MIDI part with the sysex event required to switch on legato, and another part to switch it off, on a spare (muted) MIDI track in your template using the MIDI List Editor, then just copy-and-paste them as required onto the MIDI track that plays out to the synth in question whenever you want to switch legato on/off. Place them a few milliseconds ahead of time in order to give the synth time to receive and interpret the sysex event.

FYI: I have set up my MIDI devices in Cubase. And I’ve successfully inserted a SysEx bank in a track and sent it off successfully.

But the lack of feedback and UI controls left me cold, so I went out and installed MIDI OX. For full bank send and receive, I can just use this tool. The UI is still in the 80s, but I can grapple with it alright.

Thanks all,
Chris

Ahh yeah but I guess I forgot to mention I use Cubase often to play “live” with all my gear, so for performance reasons it’s not planned out. In my long term plan I am getting a midi pedal that can send sysex, but I was hoping I could use Cubase to do this in a smooth way.

Unfortunately you can’t bind MIDI Device stuff to midi cc or keycommands to control it…whelp :slight_smile:

Thanks again for input though.

Yeah it’s rough haha… I remember just setting up my 2 commands and it was a trek.

I found creating a midi device panel to match my gear much easier and certainly quicker than setting up a midi remote, although i appreciate they’re not quite the same thing.

Im looking to do the opposite and send a bank dump from my hardware to cubase, and I’m guessing the process would depend on what the external gear is/does. Is there a way for cubase to ‘request’ it perhaps? I’ll read that manual liked above i think,.

I would not be aware of a defined midi message that can request another device to send a sysex dump.
So I’d record the dump like anything else in midi: make a midi track, arm it, hit record, initiate to send the dump on your external device directly.

ok thanks Johnny

Hook up the synth to a Cubase MIDI track. Arm a MIDI track for recording. Tap record on the Cubase transport. Start your dump.

Cubase will faithfully record it. Export/Save the entire track for later use if you like. Only tricky part is setting up a naming and directory system to keep track of your stuff. I’d recommend tagging the parent directory of your sysex tracks in the Media bay so they can easily be found there.

You might also give it a try with loop MIDI tracks. Those can be auditioned from the MEDIA bay (send a dump without actually pulling the file into the project), but you’ll need to be careful that port and device names don’t change over time for the ‘audition’ thing to keep working.

Later you can import your dump tracks or loop MIDI files into projects as needed.

Allow a few bars at the beginning of the project to send the dumps. You could even set the project to start at a negative bar number with a marker at bar 0 for convenience.

As for MIDI device control panels…a little puzzling at first, but once you get the hang of it (how to build and manage sysex, RPN, or NRPN with specific MIDI bytes connected to a control) it’s not all that difficult. These are more for real time control or quick settings or shorter commands/sequences. Not so much for large bulk dumps and library management.

It’s possible, yes. You could manually build the dump request sysex message with the list or key editor. Start the transport so Cubase sends the dump request on one track, and record on another.

You could also build the dump request into a MIDI control panel pretty easily. I.E. Make a ‘dump request’ one touch style button. You could tap it manually at any time to initiate the dump.

Also…

All controls you build in this thing can be ‘automated’ on a Cubase automation lane. It’s similar to how you automate VST plugins and such. So, you could set up automation to tap that ‘dump request’ button where ever you need it on the timeline.

You might also want to check out Ctrlr. It’s a free VST plugin of which you can build very complex control panels involving CCs, PCs, RPN, NRPN, etc. Quite a few panels exist that users out there have made and share…you might get lucky and find some for your synth(s).

Note, since Ctrlr is a VST plugin (or a stand alone app) you might need to get a little creative in getting it routed to your instruments (perhaps through a virtual port).

1 Like

bump since I just added a paragraph or two above…

Thanks Brian - you’re a wealth of knowledge as always, and thank you for not replying with ‘why would you want to do that…’.

This all started because i never understood why we couldnt have more than 8 quick controls, i.e. why can’t we page them, why would they limit us to 8 when there are so many controls left? answer is they haven’t really, but you have to go hunting or be an older user who knows about things like the controller editor.

Anyway, I saw a video where greg was demonstrating how you can use the ‘next parameter bank’ as a button which does exactly what i was, paging the quick controls. Only problem is, the visual aid up the top of the plug in doesn’t page with it so you have no way of knowing what the next bank of controllers are unless you have a fancy controller with text feedback, which i don’t (the MK3 does i suppose). I then saw i could have the VST instruments panel open but alas, it also doesn’t page as the commands do and so far I can’t find a way to do that without the mouse. and using the mouse isn’t a big deal so perhaps thats the answer - i just need to be able to see what the next lot of 8 controls are somehow.

Then, the next time i create a midi device i saw this (see image below). I’ve never seen this before, the ‘fetch device state’ buttons. As you can see, i can’t use them because they’re greyed out probably because i can’t choose an input device. I don’;t suppose you know the answer to this either?

Interesting. That’s the first time I’ve seen a device list inputs at all. None of the profiles I’m using show an input at all!
(Cubase 13 here, but I’ve never seen them in older versions either)

Perhaps it’s because I’ve never worked with any instrument profiles that required bi-communication.

I see you’ve got a Jam and Jam2 listed. Are these both meant to work with the same port(s)?

Seeing two Jam instruments leads me towards this ‘hypothesis’ as to why you might not see what you’re expecting here.

Does the first Jam device have it showing? Is it technically supposed to be the same port?

USB<>MIDI drivers for Windows have a common issue (lack of multi-client support) for ‘input’ devices. The first app that grabs a USB>MIDI input gets exclusive control, then other stuff can’t connect. It is ‘possible’ that Cubase is isolating these device ports in a way that prevents multiple connections?

Anytime I run into the ancient ‘USB MIDI Drivers that hate multiple-clients in Windows’ issue I use virtual ports instead. Without 3rd party software involved, you’d simply use empty MIDI tracks and a virtual port to divert stuff where it needs to go.

I.E. Instead of connecting devices in the MIDI Device Manage to actual hardware ports. connect them to Virtual ports. From there, use empty MIDI tracks with inputs directly from the hardware, but armed to reroute streams wherever you need them to go.

My personal favorite virtual port for Windows is loopMIDI, but others out there are fine.

With 3rd party software in play…

Personally, I have my PC set up to run an app that grabs ALL MIDI inputs before I even launch Cubase/Dorico/or any other major host that involves MIDI. The third part app is responsible for acting as a patch bay to get MIDI too and from any Apps (or even directly on to bits of hardware) that I like.

I route all MIDI inputs through a stand alone instance of Bidule first (Bome would also work), and then divert them to virtual ports that are fully ‘multi-client’ friendly (more than one app can use them at the same time).

I.E. Below you can see that my Arturia mkII Keylab 61 controller USB>MIDI inputs gets diverted to virtual ports A, B, and C (The C one has some real time transformations done to it to make it easier for me to remote control some things in Dorico).

When I launch Cubase later, it can’t see the ‘inputs’ from the mkII at all. Instead, it gets what it needs from those virtual ports.

This isn’t a Steinberg thing mind you. It’s a Windows thing. For whatever reason…every single USB>MIDI devices I’ve ever owned isn’t capable of connecting to multiple clients at the same time. Outputs usually aren’t a problem tho’.

Hi Brian,
Well, at least I know im not going mad. I’ve been using the old midi device since my ensoniq days and agree, i’ve never once seen the stuff at the bottom there, the input choice, or the two fetch buttons. Its not a new C13 thing either because i’ve had C13 for a while now and Ive only just noticed it yesterday.

Don’t read too much into the Jam2 or any other devices there, thats just me stuffing around. It doesn’t matter though, because now I get those same options even when creating a brand new device in blank project.

Must be a switch or options somewhere to activate it? Could be in Cubase prefs, or built into the device control panel profiles themselves?

Over the years I’ve only needed a few rather basic Sysex messages in the panels, and wads of instrument lists (for bank and program changes). I made a simple one for my Fantom XR that can swap between GM, GM2, or Fantom mode, and do some basic real time changes to the effects. The XR came with a nice editor of its own that I sometimes use to ‘dump’ an entire ‘performance patch’ setup onto a recording Cubase Track as part of the project in a designated ‘preroll’ area (only needs to run once after first opening a project, from then on I designate the beginning as bar 0 and it gets ignored).

After I get it set up, the Fantom can do just about anything else needed by a project with regular CCs that sysex can do. I forget exactly why, but I found it easier to have several smaller device profiles for the XR than having one huge one. The ‘Mode’ one has the few sysex commands I mentioned, and has a list to change ‘performance patches’ for the entire XR instead of each channel’s ‘instruments’. The others (XR and SRX card Banks) are just patch/instrument lists for bank/program changes.

When I create an external instrument (Tap F4, External Instruments), I do NOT assign any MIDI inputs/outputs there. Reason being, I use several different device profiles at a time with the Fantom XR (Mode, XR, and SRX profiles). If I leave that undefined, I can just point tracks at the device profile I need as I go. So, I just leave MIDI port assignments blank, but I do assign Audio inputs and outputs from my audio device here so it’s easy to get the instrument on the Mixer (from the Instrument/Plugin rack).

I use the XG and SC-88 setups with some plugins that have their instruments organized as XG or Sound Canvas ‘instrument banks’. To get those working I use a virtual port, and an empty MIDI track to get the stream from the control panel diverted back into the plugin instances.

Seems like I played with Ctrlr a bit (with some borrowed synths and existing instrument profiles) at one point, and found it easier to just use it in Stand Alone mode with some virtual ports in play to get it sending stuff over to Cubase. I just recorded the bits I needed from it onto a MIDI track, thusly Ctrlr wouldn’t be necessary to play the projects again once they’ve been built.

I’ve done very little sysex stuff, I find it a bit scary with my real external gear. I’m so close to getting what I want which is the page forward and back on the vst instruments panel to be mappable but I don’t think there is a cubase gui option available . I’ve setup. Keyboard maestro short cut for now but if sucks really. When I skip them back and forward I can see a common message of 90 67 F7; I tried to sysex this in. Midi track but I must have something wrong cause nothing happened