MIDI Controller reset mirroring to CC#, or reset controller value on track selection?

Is is possible to mirror a CC# with a MIDI command like CC#121 MIDI Controller Reset?

Basically, I have a big live performance rig all dialed in using Cubase 9.5.3 and it’s working well. I have assigned MIDI footswitches to select (and record-arm) different tracks so that only one sound is selected and record armed at a time. This works well for selecting patches and saves on CPU since only one channel is record armed at once.

I used Generic Remote to map footswitch CC#'s to select certain tracks in the mixer. That is working well.

The only issue is that sometimes if I switch patches by selecting a new track while a controller like pitch bend was active on the channel I was playing before I swtiched, when I switch back to that track which was being pitch-bent, the pitch bend value it was on before I switched patches will still be active. This results in “wrong” notes coming out of the channel, until I “clear” the pitch bend memory by hitting the pitch bend on that track again, which seems to reset pitchbend on that channel and then the notes come out normally.

What this means, though, is that if that happens without me realizing it, I will be playing “wrong” notes until I clear the pitch bend memory by hitting the pitch bend again on any tracks I had been pitchbending as I was switching patches, which is common for my playing style.

I have tried mapping MIDI Reset to the same controller values as my MIDI Fooswitch patch selectors in Generic Remote. This actually cured the issue perfectly, but the problem is that I also use some plugins like TimeFreezer to freeze sounds in place and jam over them. Anytime MIDI Reset is engaged globally, the frozen sounds from Timefreezer also stop since the “Freeze” function is mapped to a MIDI command, which is not what I want to happen when I switch sounds.

What I want to do is mirror my patch switching CC#'s from the footswitches to trigger MIDI Controller Reset on individual channels only. So, each time I select a channel that a .vst instrument is on via a MIDI footswitch assignment, I want it to reset the MIDI controller values as well (i.e. clearing any pitchbend data that was sent before I switched channels on the mixer so that when I start playing the sound, the “right” notes will come out immediately.)

Is there a way to do this in Cubase? I tried to figure it out in Input Transformer, but it is not clear how to do this and the manual is limited on this subject. I basically want to mirror “MIDI Controller Reset” to my assigned mixer channel selectors which are mapped to MIDI Footswitch CC#'s on individual channels, not globally, so that each time I select a channel via Generic Remote, a MIDI Controller Reset message will also be sent on individual channels to reset MIDI modulations before I play new notes on that channel.



Hi and welcome,

You could try to use the Local Input Transformer on every single tracks. And setup pretty simple rule: When CC# X comes in, sent MIDI CC 121 (Reset).

Does it work to you?

Oh that is wonderful. Thank you so much for your helpful response. I will certainly try that and let you know. I believe that will work. I am relatively new to Cubase as I used Logic and Reaper heavily in the past but Cubase is the only DAW that does everything I need. I have been using Local Input Transformer for other things and so far it has proven very useful. Thank you and I will report back.


Unfortunately this did not work. It’s a combination of issues. I am able to make input transformer turn my CC’s into MIDI reset data (I tried using combinations of CC120, CC121, and CC123 all of which are reset functions), but it does not keep pitchbend from hanging. So when I have pitchbend bent, and then I switch tracks without letting go of pitchbend, and then I switch back to the 1st track, the pitch is still bent.

I could of course just be very careful to not have pitchbend held down when I am switching patches, but since this is a live performance rig and sometimes the heat of the moment improvising takes over, you can’t always be thinking about that.

Is there a way just to tell Cubase not to keep pitchbend information when you switch tracks? It seems rather odd that it is hanging the pitchbend in this way.

Is there a way I could solve this without using MIDI Input Transformer? Something simpler I am overlooking?



For some reason, I understood it so, that you send a dedicated MIDI message to inform Cubase, you switched the track. Then you could add to the Input Transformer an action: Pitch Bend set to 0.

But I was wrong, you don’t send any dedicated MIDI message, right?

I can’t come to any solution, how to inform Cubase it should reset Pitch Bend when the track becomes selected or deselected.

Maybe one solution… How many tracks do you use in your live projects?

Just make it a habit to hit the pitch bend wheel (or stick :wink:) when you start playing on a new track. I guess it will only take about ten tries before it becomes muscle memory.

You are correct, I do use MIDI messages to switch the tracks, yes. For example, let’s say I have 10 sounds setup on 10 different instrument tracks. I have one of those Keith McMillen Softstep pedal footswitches that allows you to assign MIDI CC numbers to each switch. For my fooswitch which controls patch switching, I have its 10 buttons programmed to CC#'s 20-29.

Each CC# is assigned to a line in Generic Remote which is then setup to select whichever track I program it to select. So, CC#20 selects track 1 on the mixer, CC#21 selects track 2 on the mixer, and so on.

So you were right.

The complicated thing is that I have 3 of these footswitches doing sometimes similar but sometimes different jobs. So I run a seprate program at the same time called BOME MIDI Translator to organize the virtual MIDI buses and tie certain tasks together. In BOME MIDI Translator, I have all my footswitches tied together on a virtual MIDI bus named BMT5.

My EWI wind synth, on the other hand, is tied to a virtual MIDI bus called BMT2.To complicate matters further, I run a separate MIDI harmonizer processing program at the same time called MIDI HArmonizer and that program’s MIDI output is routed to another virtual MIDI bus called BMT4.

To avoid having errant MIDI data sent to places it doesn’t belong, I only allow each instrument track to listen to the MIDI bus that it needs which keeps things nice and clean in Cubase. So my instrument tracks that are for EWI playing only listen to MIDI bus BMT2 in the routing at the top of the track. For the MIDI Harmonizer tracks, they are listening to virtual MIDI Bus BMT4. For the Generic Remote that controls the patch switching, it is only listening to BMT5, which is the footswitch MIDI bus.

All that is to say, I can’t use input transformer when I switch tracks because the instrument tracks themselves are not listening to the footswitch CC#'s. They’re only listening to the EWI instrument’s CC#'s.

To test it, though, I made the instrument channels listen to all MIDI inputs. I programmed the footswitch CC’s to trigger MIDI reset or MIDI Controller rests. Unfortunately it didn’t work to bring pitch bend back to “0”.

I also tried setting up a second Generic Remote using the same CC’s from the footswitches to trigger MIDI Resets. This also didn’t seem to work.

I’m very confused because I tested input transformer and Generic Remote in such a way that I am positive they are both working correctly, but using them to induce MIDI Reset is not seeming to do the same thing as going up to the MIDI Menu with a mouse and selecting “MIDI Reset” manually. That does work to eliminate the pitch bend hangs, but triggering a MIDI Reset from the CC#'s doesn’t appear to work the same way. I wonder what it’s missing that does not allow the modulation controllers to reset to “0”.

I even tried using input transformer to tell my EWI’s CC#2 Breath Controller (which is always activated when I’m playing) to first trigger a MIDI Reset on input transformer module 1, and then I setup a second input transformer module to tell MIDI reset to induce Breath CC#2. That works functionally, but it doesn’t reset the pitch bend to “0.” So confusing. It also causes some weird glitches at the beginning of each note input, so I gave up on that idea pretty quickly.

I guess I’ll keep messing with it until something clicks.

The thing about global MIDI reset that I’m trying to avoid is, to make matters even MORE complicated, I often use a plugin called TimeFreezerFX which freezes a sound (a chord, for example) in place on a track and allows me to improvise over it on a different track. I have the “freeze” function mapped to a button on my EWI via a MIDI CC# using Cubase Track Quick Controls. If I trigger a global MIDI Reset, it cuts off the sustained frozen notes since MIDI Reset causes the CC-mapped “Freeze” button on TimeFreezerFX to turn off. That’s why I was trying to figure out how to localize MIDI Reset on individual channels so that MIDI Reset doesn’t happen on the TimeFreezer channel when I trigger it.

Here, maybe this will show you what I am talking about a little bit more clearly, might help it make more sense what I’m trying to acheive with all this mumbo jumbo; This is my EWI setup playing chords with MIDI Harmonizer and switching tracks after freezing a chord to solo over it: https://www.youtube.com/watch?v=CbkDQguV-OE

This is another version of the same thing where I have used fooswitch notes to trigger chords and am playing over them with the intricate MIDI routing I mentioned before to keep the footswitches and EWI inputs separate: https://www.youtube.com/watch?v=57Ve-bcv8yg

This was all done originally in Usine Hollyhock 3 but that program became so unstable and unreliable I ditched it for Cubase earlier this year. I’ve been very happy with Cubase so far except for a few very minor problems like this one.



Just an idea… Could you set it up so, that every track would accept the incoming MIDI data on the specific MIDI Channel only? So on the track 1, you would create a Input Transformer, which would ignore all MIDI data, which are not sent at MIDI Channel 1; on the track 2, you would create a Input Transformer, which would ignore all MIDI data, which are not sent at MIDI Channel 2, etc.

Then on your main MIDI device (EWI) you would just switch the channel you are sending the data. Or you could switch it via BOME MIDI.

Could this work to you?

Thanks for the idea, really appreciate your time. I could see how that might work but part of the beauty of only having one track selected and armed at a time is how much it saves on CPU. I’ll experiment with that idea though, maybe it will work.


You are right. In this case all tracks will be processed in real time. No ASIO Guard involved.

If anyone has any ideas about this, it would be awesome! Still haven’t figured out a way to fix it completely. Thanks,


Hey Guys,
I just came across this thread in search for a similar setup.
My main difficulty is that I can Switch inbetween the different VST tracks, but without disarming/muting the presently inactive track.

Practically, I am sending all MIDI via my Roland A300Pro …however, regardless of which track I am on, I hear all the different sounds at once!

I would like to give a short example of what I am intending to do using Cubase 8 Elements and a Roland A300 Pro Controller:

My live set includes playback tracks and within a song I play a live keyboard/synth part on the fly. I would like to Switch inbetween a synth bass and an arpeggiator, which are both loaded in two different VST tracks (HalioSonic). As for now, I can switch inbetween the tracks with my controller (pad), but I can’t mute the VST I don’t want to be heard at the same time!

Any thoughts on how to mute the VST via my controller, which is not supposed to be heard within that part of the song? Thanks in advance for all advice.

Cheers, K.


By default Cubase is set so the track is Armed (Record enabled) once you select it. If you select another track, the original one (which was armed automatically by this feature) is Record disabled. All other tracks you enabled for record manually remains record enabled.

So if you use only this auto-record-enable feature, then it should work to you. Don’t enable any track manually.