How to copy CC data to different CC#, merge with another lane, or another track?

I have many MIDI parts that hold CC data (and notes) on a MIDI track. MIDI output of the track is routed to a VSTi. This track has MIDI Inserts that Transform a particular CC# to CC64 value 127 (sustain on) and another CC# to CC64 value 0 (sustain off). That works perfectly.

My goal was to reach the same result as what the Transformers output, to get an automation lane for CC64 with the same resulting data that I can edit.

My real goal, musically, was to move “sustain on” / “sustain off” events earlier or later, and to turn the sudden changes from 0 - 127 - 0 into slower moves by some means (instrument recognizes partial sustain). First, unless there is an easier way, I need to get one lane of CC64.

I was able to copy automation data from one automation lane to another with some difficulty. Seems like only data selected with Range tool can be copied?!? I can do Select All Events in an automation lane, copy, paste to another automation lane, and nothing will be pasted.

So I copied data for “sustain on” from one of the automation lanes to CC64 successfully. Scale all values from 0 up to 127 for sustain on. So far, so good.

Copy data for “sustain off” from another automation lane to the CC64 lane. All CC data is replaced with pasted data regardless of Part Merge Mode on the automation lane. I would need to be able to merge the pasted CC data with the CC data already in the lane.

The only other thing I can think of would be to record the MIDI CC data generated through the MIDI Insert’s Transformers on the destination MIDI track, and walk away for 1-1/2 hours while it does that.

Can CC data, on automation lanes or in MIDI parts, be merged except by recording MIDI? (Will that even work?)

Bounce MIDI while Transformer is set to Record Output to Track did not have the transformed CC data in the bounced result.

If you want to bake the real time transformations and stuff from the track inspector ‘freeze’ the MIDI track.

So, if you ‘freeze’ a MIDI or Instrument track, anything you’ve done in the track inspector like MIDI channel, pan, program/bank changes, etc, or with MIDI Modulation, Inserts, Project/Track Transformers, etc, will be hard coded into the MIDI track and MIDI channel changes to ‘any’. Many track inspector settings are also disabled or reverted to defaults at this point as well. In terms of play back, you should find that the new ‘frozen’ track plays back as it did before. It’s just everything you were ‘transforming/processing’ in real time before is now hard coded as part of your MIDI track.

Until you’re confident that you understand what freezing tracks like this does, you might opt to copy tracks first and freeze the copy for evaluation and testing.

If all of your CC information lives in the MIDI part the things you seem to be interested in doing are usually pretty simple. You can use MIDI Logical Editors to locate and transform events based on simple sets of conditions.

I.E. Change all CC64 events into CC68 events.

Sometimes you might need multiple passes with the Logical Editor to get something done, but it’s still MUCH faster than going in and doing it all one event at the time with your mouse and keyboard!

I.E. First pass, find all CC64 events that are within 30ms of beat one of every bar and select them. Second pass, move all selected events so they fall precisely on the beat. Third pass, move all selected events 20ms earlier in time. Etc…

Before diving into this; however, it’s important to realize that Cubase can record, store, process, and playback controllers in a variety of ways. These days we have options. MIDI, VST3, and more.
It can be pretty confusing for new users, and even more so if you’re not pretty well read/practiced in dealing with continuous controllers for ‘any daw or sequencer’.

Neither method is ‘superior’ to the rest at this time. It’s just that they all have different strengths and weaknesses for a variety of ‘workflow’ options.

VST automation vs MIDI CC Lanes

Note, Cubase can be set to store recorded CC events on VST automation lanes, it can keep them in the traditional way inside the MIDI part itself, or it can even bind them to individual notes in the form of Note Expression. If a track ends up having data stored more than one of the ways, it can be instructed as to which to prioritize, or to ‘average’ the results of them. These options are set in MIDI/CC Automation Setup


There are advantages and disadvantages to either approach. It all depends upon your project and workflow needs at a given moment.

Fortunately, you have everything you need to easily convert back and forth between keeping your CCs on track VST3 Automation Lanes, as CC events in MIDI parts, or as VST3 Note Expression events.

Here’s a way to practice moving things about (more on why might want to do this later)

To convert all CCs kept in MIDI parts for an entire track over to an Automation Lane:

  1. Select a MIDI or Instrument Track. Right click the track and choose Select All Events.

Note, you can also do this sort of conversion to select events, or ranges of events. For the scope of this ‘practice session’ we’ll focus on simply converting entire tracks.

  1. Go to MIDI/Functions/Extract MIDI Automation

  2. Right Click the track again and choose Show Used Automation (Selected Tracks)

Now you can see that all of the CCs in the MIDI part have been moved to VST Automation Lanes.

Advantages to keeping CC’s on these project automation lanes include ease of working with them in real time via remote control (control wheels, pedals, faders, encoder pots, buttons, pads, etc on an external MIDI controller). It’s not difficult to select ranges of these lanes and copy/cut/paste them elsewhere in the project (set the cursor where it should begin pasting).

Disadvantages are that the Logic and Key Editors can’t get at them as easily for mass batch edits, or conditional sequences of edits. In contrast, CC events stored in the MIDI part can be edited with the Key Editor, which provides a lot of nice drawing/curve/scaling tools and more.

So how do you get these ‘lanes’ back into MIDI parts?

  1. First, make sure your cursor is at the very beginning of the project. Solo the track you wish to rebuild. This merge feature ignores all tracks that are ‘muted’. It merges everything else as if rendering a new recording of the soloed ‘tracks’ to a new ‘merged’ track (or overwrite an existing track depending on the selected track and cursor position)

  2. For conversion of a complete instrument or MIDI track, right click it and choose all events.

  3. Tap P to quickly set the project locators so they encompass all of the track events.

Go to MIDI/Merge MIDI in Loop

Tick Erase Destination and Convert VST 3 and OK (If you want to overwrite the same track. Or, you could set up a fresh track instead, and do the Merge to the new track)
image

Now I find all of my CCs are back in the Key Editor as channel data that I can edit from there.

I can use the very powerful Logic Editors to hunt and edit a CC with ease.

Examples:

Add 10 to all selected CC1 events.

Mirror/invert all selected CC1 events.

Insert a CC11 event at the start of each note, with a value that matches the MIDI note.

Select all CC11 events with a value of 64 or more.

And so forth.

Logic editors can really save you a LOT of time! They can be used to transform events, move them around in time, and more. See the manual for working with the MIDI Logic Editor!

Note, Cubase also allows you to work with Note Expression events. For regular channel CC events, effectively it simply binds events relative to a specific note as opposed to keeping them as independent channel data on the timeline. CCs established as NE events are bound to the note, and can be quantized (position and/or length), cut, copied, pasted, stretches/shrunk over time (relative to the note length) etc, as if they are kind of stored as ‘part of the note’ and now have a relative relationship with said note. So, if you were to select such a note, copy it, and then paste it to a new track…all that CC information comes with it! If you scale the length of the note longer/shorter, then the CC events bound to it will scale as well.

Some instruments can accept more advanced forms of NE events that are not ‘channel responsive’, but rather special VST 3 parameters tied exclusively to individual notes. I.E. for some HALion instruments, it might be possible to have several notes on the same channel, at the same time, responding to different pitch bends in different directions at the same time. For the most part though, it’s important to realize that for most plugins or MIDI instruments CC events will still be CHANNEL events, and instruments will respond accordingly even though some CCs might be ‘note-bound’.

Cubase also provides the tools to convert back and forth between channel CC, and Note Expression.

One advantage to binding traditional CCs to notes as Note Expression is that you can easily cut/paste/quantize associated CCs as part of an individual note.

One disadvantage is that it’s important to be mindful that CCs are still channel events. If you have several notes sounding at the same time on the same track, and they all have different sets of CC events attached to them the played back results might yield something unintended. Cubase does have some options for how it should attempt to deal with potential conflicts in this sort of data, as well as abilities to ‘consolidate’ overlaps, trim, and more, but one needs to be aware of how things work. For tracks that are not monotimbral (have harmony or counter melodies and such), be careful as to how you bind and implement things.

It’s not uncommon to want to bounce how Cubase works with CC events from one format to the other for various purposes. All the tools are here. Hopefully I’ve provided some examples of some ideas to practice and experiment with.

3 Likes

P.S. Sometimes it’s helpful to isolate a lane to a world of its own. You might find it easier to edit it in isolation. You might want to keep different ‘variations’ of the track to try different ideas or takes.

Again, this isn’t necessarily the most efficient or only way to isolate an automation lane! I just put it here as an exercise to show a method that is ‘possible’, and it has come in handy for me in the past when I wanted to experiment with different takes of recording controller movements, and cut/pasting the best portions of all these takes into my final version. It can be a good practice to try something similar a few times to get an idea of ways to select/copy/paste/delete/move various types of events in Cubase.

If the CC you wish to isolate is kept on a VST Controller Lane…

Simply clone the track, and delete everything you don’t need anymore.

Step 1: Select a track, right click it and choose Duplicate. Now you have two identical twins of the track.

Step 2: Select the new track. Right Click it and choose select all events. Tap your del key and the MIDI parts go away. The VST3 automation lane events are still very much present.

Step 3: Unfold the automation lanes for the new copy by right clicking the track and selecting "Show Automation (Selected Tracks).

Step 4: Right click any automation lane you don’t want here, choose “select all events”. You can also hold ctrl and select more than one lane at once. Tap the delete key again.

Repeat this deletion process for anything you want to ‘strip away’ from this new track, as well as the original.

Now you have a nice clean track with nothing but a single automation lane living on it. It’s already pointing at the proper instrument/plugin/channel and is ready to play. It’s easier name as you like, manipulate, and to edit and merge with other tracks at some point in the future. You could even have many versions of this ‘automation’…mute/unmute the takes you want to hear. Chop up the best parts of all your takes (range tool + cut/copy/paste) into yet a new track.

Now if you like, you could even merge the track so the CC events are moved into a MIDI part (Gain access to key editor functions, and best of all, MIDI Logical Editors!).

  1. Right click the automation lane and select all events.

  2. Tap P to set the locators.

  3. Select and Solo the Duplicated track.

  4. Do a “Merge MIDI in Loop”. Tick Erase Destination and Convert VST 3.

Now I have a part that’s nothing but the CC event I’ve isolated! It’s ready to use logic editors or whatever I want on it!

If the cc was recorded in the MIDI part…

To extract a given CC that was recorded or drawn directly into a MIDI part/event one can use a MIDI Logical Editor.

  1. Right Click the MIDI track and select all events.

  2. Do MIDI/Logical Editor/Setup

  3. Build an editor to extract the CC events you like to a new MIDI track. In this case I will do CC1 (Mod Wheel).


    Note; if you’d rather work with lanes on a single track this is also possible; however, I find you get more ‘flexibility’ when working with complete MIDI tracks, most notably, everything in the track inspector!)

Now I scroll down to the bottom of my project view and find a new MIDI track. All of the CC1 events were ‘moved’ to this new track. It is already pointed to the instrument and channel that it was copied from so it’s ready to play/edit.

Later on we might want to merge it back together into a single track with everything else again. Again, the tools are there to do it, and there is more than one way!

Method 1. Solo any tracks you wish to merge, set the Project Locators, and do a Merge MIDI in loop.

Method 2. Drag the events from the project editor of one track to another. It’s still kept in a unique event/part this way, but still works as if it were on the same track. You can also further merge lanes on the track if you like. Etc.

1 Like

Nice post!!! :thinking:

Could you please show me a LE preset that would accomplish the task above?

No problem. I do this quite often actually. I.E. With something like East West Opus Orchestra. If I want a phrase to ‘get louder’ as notes go higher, and ‘get softer’ as they go lower…

The first question to ask, is do you want it to happen to everything on the track? Just for a few bars? Etc…

So step one is ‘selecting events’ that can ‘potentially’ be edited by the logic at hand. At times you might want to build the limits into the condition of editor itself. At others, you might just select a bunch of stuff manually, and process from that. Etc.

For a simple version, lets just set up an entire track. I’ve grabbed a general MIDI music file for Appalachian Spring off the internet and imported it into Cubase.

I’ll set up an instance of Opus and load up a violin sound. Since this imported MIDI file is set to use Channel 5 for the Violin I’ll run with that in Opus as well.

To prepare this for my Opus Instrument, the first thing I want to do is strip out the General MIDI Program Changes between arco/pizzicato and replace them with the proper key-switches for the Opus Violin.

So I’ll do two passes…
One to locate all the PC 49 events and covert them to MIDI Note C0 (Note that I do need to subtract one…for some odd reason the Editor numbers Program Changes from 1 to 128, while the Logical Editor does it from 0 to 127);

I’ll run another one to take care of the pizzicato transformation from PC 45 to a C#1 key-switch.

Now I’ll draw CC11 events with the same value as each note-number at the same position as the note_on event. (simulate getting louder with higher notes, and lower with lower notes).

Since I’m going to process this entire track I’ll do the selection process manually with my mouse by right clicking the track and choosing “Select All Events”.
Logical Editor Functions (steinberg.help)

Then run a Logical Editor that looks like this:

Note, if I wanted, I could instead make CC11 events that copy over the ‘key velocity’ rather than the note value. Such a Logical Editor would look more like this:

Now imagine that I’ve done something similar to all of the other instruments, but I find this Violin to be a bit ‘too loud’ in context in the higher registers. I could use this logical editor again to find all the CC11 events and scale them down a bit (subtract 20 from all selected CC11 events, value 2).

Now I imagine I want to accent the first beat of every bar a bit by giving CC11 a little bump. So I’ll do this to every CC11 event in a bar range (within a few frames of beat one of each bar).

And so forth…

Thus far I end up with something like this already roughed in…and I’m ready to use my mouse in the key editor to get into more precision and detail from here.

Note, sometimes you might only want to work with smaller portions of a track. You might use the scissor tool to temporally slice events in Project view and limit the logic to that portion of the track (you can always glue it back together later if that’s conductive to the work flow).

You can also run ‘multiple passes’ with these Logic Editors. One time to select a given range of events, another time to process subsets of ‘selected events’, and so forth.

Don’t forget that you can save these things as user presets, and bind them together in a sequence using macros, assign them to key-combos, or even bind remote controls to them!

1 Like

Awesome!! I’ll give it a try.

Re: Slicing things up so as to limit what the LE edits. I use ‘Property Is Set’ ‘Events are Selected’ in my LE presets and then select the events that I want to edit.

Brian_Roland –
Many thanks for the posts. I bet that will be helpful to others in the future as well.

Seems like I ought to be able to do the transformation I described a couple of different ways;

  1. Freeze track. Then possibly extract automation to lanes as needed. Make desired changes.

  2. Extract the relevant CC data onto 2 lanes in another track, possibly 2 tracks. Transform each to CC64 with desired values. Solo. Merge MIDI in Loop.

If I set the CC to use Ramp/Curve, I suspect it will be necessary to double up so that the transition from 0 to 127 and back would go 0, 0 to 127, 127 to 0.

Thanks again.

1 Like

Yeah, try things and practice. By the end of the process you’ll discover more options, possibilities, and workflows.

It all starts somewhere :slight_smile: