How to edit multiple CC's in the same process?

Hi
I user VSL Dim strings, meaning that I have 4 midi tracks only for my 1. violins. Most of the time they are playing the same notes, but the CC’s might differ quite a bit. Nevertheless I sometimes need to edit the CC’s of all 4 tracks in the same manner, but that is difficult to achieve.
I start selecting all 4 tracks and double click and the key editor opens. The “rules” here is: to be able to select all MIDI-notes in one go I have to use the rubber band method, that’s easy, but if I try to select ALL the CC’s in one go it’s not possible. Does anyone know if that can be achieved somehow?

More powerful CC tools have been asked for years and Steinberg doesn’t seem to believe the issue is important enough. Add your voice in the feature requests forum and hopefully at some point we’ll see improvements.

Okay I will do that!
This might be one of the reasons why I and many others all the time are looking to other DAWS. DP9 is very temptingv although it also have some flaws. :frowning:

That would be a useful function indeed. Right now all you can do is copy the cc data and paste it to the different tracks, if you want identical data on each one.

No, this is not true at all! You can so DO MUCH MORE with CuBase. You can isolate and extract things to temporary tracks…transform, select, deselect, mute, transpose, mirror, invert, retrograde, move, slide, bump, merge, bounce, really, the sky is the limit in the power tools CuBase provides for manipulating MIDI events.

In the OP’s case, just open a Logic Editor and define the range of events you want to ‘select’, and then use the mouse to manipulate them all in one move:
Here’s an example of selecting all CC 1 events in bars 1 - 4:

Here’s one that accents every 2nd and 4th beat of a high-hat part by adding 6 to the velocity.

Oops! I think I’d rather move beats 1 and 3 to an open hi-hat! So here’s a script that’ll take every F#1 in the track that falls pretty close to beats 1 and 3, and moves them to A#1 where my open hat lives.

Starting to get the idea?

Please look in the Manual and read up on the following:
MIDI Logic Editors (Most useful for hard/permanent manipulation in the project arranger or a MIDI editor).
MIDI Global Transformers (Useful for ‘real time’ MIDI manipulation of the Data stream)
MIDI Local Transformers (More real time manipulation)
MIDI Track inserts (A big tool box full of real time MIDI tools)
MIDI Track Sends (Same tool box as Inserts, but at a different point in the data flow).
Generic MIDI Remote Maps (Remotely control practically anything in the DAW with your favorite MIDI controller, or transform various types of real time MIDI events).
Quick VST Controls (Manipulate automation lanes with your Controller)
Quick Track Controls (Manipulate automation lanes with your Controller)
MIDI Expression Maps (Convert symbols or text (VST3 Expression events) into a library of expressive event sequences)

Actually, I don’t know of a ‘modern’ DAW that is any better at manipulating MIDI events and dealing with remote controls. Not only is it tremendously powerful in this reguard, it gives you CHOICES! You can treat it like a scoring package…with ‘translation’ schemes that you build in ‘Expression Maps’. You can treat it like a linear MIDI sequencer right down to the machine level MIDI events; you can treat it like a ‘live instrument’ and record your stuff in real time; or, you can build yourself a toolbox full of stuff you use often and work in ‘a pattern based’ frame of mind, or you can treat it like an ‘automated mixing console’. And more!

I would personally start out by practicing using the Logical Editors.

This allows you to build scripts to do many edits in batch mode with simple logic scripts that you build in the Logic Editor.

Just as another practical example (rehashed from another thread to demonstrate using a Logic Editor)…say I want to add a CC-1 event before every note that matches the MIDI note number (to simulate playing louder with higher notes, and softer with lower notes on an instrument that is set up to use CC-1 for expression volume): I would open a logic editor and do this:
Logic:
Insert CC1 before every note event and set value 2 of CC1 to value 1 of the MIDI note.

What this does (In the case of my example using a Garritan Violin patch in ARIA), is cause the volume to go up as the phrase gets higher, and down as it gets lower. Of course you can also do this backwards if you prefer (mirror MIDI note value to a new CC 1 event so it gets softer when higher, and louder when higher)…or even build a script to randomize or set up other sorts of dynamic patterns.

Note that it’s also easy to lasso a group of events in the key editor and scale/tilt/expand/compress them…or otherwise work with them as a big unified group. Experiment by holding the mouse button while lassoing a group of events…also with things like holding ctrl or shift key while dragging (it can lock the x or y drag plane…etc).

At this point, if it’s too soft, I can lasso phrases as above and drag it a bit louder…or I can run a second pass with a logical editor to raise all of the CC1 events on the entire track by a set uniform amount.
Logic Example:
Raise all CC1 events by adding 5.

Note, the ability to isolate CC event lanes in the ‘key editor’ above! Yep, you can do it for multiple tracks as well, though it helps to have each track set to a different ‘midi channel’ and ‘freeze’ the tracks so their events have a unique ‘channel’ so you can keep track of what events belong with what parts.

If I have a phrase where the same note repeats over and over, I’ll again use the logic editor to give that passage some ‘random’ volume and velocity settings to avoid getting a ‘machine gun’ effect.
Logic:
Move the selected CC1 events to a random value within a given range:

If there is a lot of ‘block cording’ going on in a part, I’ll go back and ‘thin MIDI controller’ data to avoid really large unwanted jumps in volume during said ‘chords’. A quick visual inspection of such tracks isn’t a bad idea…as too much jumping around while a chord sustains might be unwanted…just delete the CC1 events that don’t work in the interest of the musical phrase.

Here you can see a violin phrase (actually two second violins on the same track [divisi style]) that has some Fp, sFz, and multiple notes/chords going on. I got the basics running some logical editors, then drew in (or recorded using my mod wheel) my crescendos and whatnot.

Don’t forget that you can still change the over all mix of the track using the CuBase Mixer, or via Master Volume Control in a MIDI track or automation lane (CC7) without having to redo all your detailed general dynamic stuff that you did with CC1 (or CC 11, or whatever) events.

While this might sound like a lot of trouble, it actually only takes a few clicks to select any parts I want to do this for in the logic editor, and a few more clicks to do everything described above. The result is a more natural sounding track (in most cases).

Example:

  1. Right click a MIDI track and choose ‘select all events’.
  2. Open the Logic Editor.
  3. Build my script or load one of my logic editor presets.
  4. Click apply!
  5. If I haven’t already, and I think I’ll want my little logic script again in the future…save a preset of it.

It’s really that simple :slight_smile:

Really you can use a series of Logic Editors to do pretty much anything you can imagine.
I.E.

  1. Build a generic sforzando-like string of CC-11 events on a track by itself.
  2. Pull up a full page score of the part and select all the notes you want to apply that sofrzando.
  3. Run a logic editor that inserts your sforazando for the ‘selected notes’…
  4. Go to the key editor, pull up a CC lane for CC 11, and spot check from there…use lasso to adjust/compress/tilt/scale/etc, and fine tune each case.

Note, you can certainly process more than one track at once!
The trick here is to work from the main arranger’s window to select all of the events on all of the parts you wish to process with a Logic Editor.

I.E.
Hold ctrl and click several tracks. Next, right click and choose ‘select all events’. Now open your logical editor and build your simple logic script. Alternatively, you can open a MIDI editor of you choice first and then use a Logic Editor.

In short the Logic Editors give you all the tools to select, mute, transform, extract, etc…any type and range of MIDI event and Value you wish.

Sometimes it’s easier just to use a Logical Editor to ‘select’ a range of events and then use the mouse in your MIDI Editor of choice to drag/compress/scale/tilt/etc.

As for manipulating more than one type of CC at once…you’d simply use booleen (if, and, or) statements in your script Logic; however, there may still be cases where it’s simpler to do things in multiple Logic Editor passes rather than trying to pack it all into one script.

More food for thought:
Here I’m discussing just few of dozens of methods CuBase offers…in the CC1 to every note case I described above we’re stashing CC data in the same MIDI track as the note events, but you do have other options as well! You can keep CC events on a separate track set to the same instrument and channel if you like (or even have different takes of the CC track(s)). The Logic Editor also allows you to ‘extract’ a range of events, and they’ll get parked on a fresh track. This approach of using dedicated CC tracks makes it easy to ‘record’ stuff in real time using your favorite MIDI controller’s wheels, knobs, sliders, etc. You can do as many takes as you like, mute them in and out…and eventually cut and paste the best parts of each into a ‘best of’ track, etc…

Again, you can use the Logic Editor to extract any sort of events you like to a fresh track, and edit, process, cut/paste/copy to your hearts desire from that.

Don’t forget that you can indeed store presets of your custom Logic Editor scripts! You can also build key macros to launch them (even in sequence if something requires more than one Logic editor pass/script) if it is something you use often…and for what it’s worth, you can easily assign them to MIDI remote controls as well (see generic MIDI remote map). Other DAWs don’t even come close on this front without adding more apps (Such as Bome Translator)!

The Logical Editors really are quite powerful! Some more complex processes might require more than one pass, and temporarily stashing some values away on a temporary track somewhere, or as some other data type, but with a little thinking, there’s not much you can’t accomplish. Practice with them…make presets for things you do often.

Yet another option (quite attractive for through composed classical and jazz) is to explore the ‘Expression Maps’ offered by the Score and Key Editors. These will let you assign all sorts of MIDI commands to various ‘symbols’ or "text keywords’ that you can set up as ‘attributes or directions’ and then simply drag and drop on a score, or draw into lanes on the Key Editor. I.E. Tell CuBase that the pp symbol should set volume @ 30%, or to increase the velocity X amount for the ‘accent mark’, or throw in a ‘patch change or key switch’ for the word ‘arco’, or kick on the CC-68 for the word ‘legato’, or turn portamento with symbol, and on and on. In short, ‘expression maps’ can give you MIDI ‘translation’ abilities for your most commonly needed MIDI event sets. Again, you can drive/insert these ‘attributes and directions’ via remote if you like…simply assign them ‘key switches’. I.E. Put the cursor where you want to give the ‘mute on’ command for trumpets, then tap the remote key you assigned in the Expression Map, and poof…in goes your ‘mute trumpet’ command…which sends whatever commands your VSTi or MIDI instruments need to pull that up.

You can also elect to work with Automation lanes for CC data instead of traditional MIDI tracks, which can allow you to use ‘Automation Panel’ tools, along with ‘Project Logic Editors’ in tandem with more ‘mixing like’ controls.

VST3 Expression goes even further:
So far I’ve mainly touched on using traditional CC style events, but CuBase opens the door to VST3 expression as well! At first, you’ll see this pop up when using ‘Expression Maps’ along side the Key and Score editors, but it offers a heck of a lot MORE if you’re using HALion 5 or Groove Agent 4. I.E. Rather than using ‘channel events as CC messages’, you can independently apply this stuff in individual ‘notes’! Example: Have two violin parts on the same track divisi style…and draw things like pitch bend, or expression volume on each note by itself…copying and pasting each note throughout the score will carry all that fine tuning information with it as part of the note! Unlike with channel CC data, you can have multiple things going on with expression all on the same track! I.E. One note of a chord bending pitch upward and applying a filter, while another note in that exact same block chord on the same track does exactly the opposite. Currently…no other DAW lets you do this…

CuBase is EXTREMELY powerful when it comes to manipulating MIDI…both in real time (using real-time transformation plugins/scripts), or in editors.

If you want to get anywhere close to the raw power Today’s CuBase/Nuendo provides for generating and manipulating MIDI events…you’d probably have to go ‘super retro’ with some Atari ST Emulation such as STeem/Nostalgia, and go back to software from the 90s (KCS Level 2, CuBase Audio Falcon, etc.). Today, there’s just not much out there that can come anywhere close to CuBase/Nuendo on the MIDI side…most of the modern DAWs are far more focused on the audio side, along with prepackaged loops…tons of dumbing things on the MIDI end down to the point that they’re almost useless for through composed music. They force you to do far more by ‘hand’, and do NOT give you the tools and access to build up your own maps and workflow choices. The few that do have a logic editor or script engine often require you to reboot the stupid thing to change or install a new script or MIDI tool :frowning: In contrast, CuBase lets you choose…and build any sort of workflow you need to fit your project style/need ‘on the fly’. It’s got the swing tools, the quantify tools, the scripting tools, and dozens of workflow options…as well as the tools needed to convert from one workflow style to another (I.E. start out with a score, and later convert that to all linear style General MIDI tracks, and then crunch that down to Type O SMF…and on and on).

Bumped for those following via email notifications due to a lot of edits and updates to the previous post.

Hi Brian
Thanks a lot for your extensive reply.
I know the Logical Editor and that is also the tool I use with the problem I described in my first post.
But it’s still a bit inconvenient if you want to “paint” a CC curve over several bars. In my case I have these 4 tracks that all needs a redone of the CC2 (breath control controlling the Key Switch in VSL), and even a new articulation. In that case the Logical Editor - however versatile it is - is a solution but not an elegant one.
Nevertheless thanks a lot for taking the time. :smiley:

I wonder if you could create a midi track with the cc info only - and send it to the 4 tracks via midi sends…

1 Like

Are you trying to duplicate the same CC data to other CCs or channels?
If so, try vespesian’s suggestion…
You could simply set up a track send in the track inspector that echos the CC to any and all events/channels you like. In this case you get a real time transformation of the data. It’s also possible to real time modulate the send as it’s sent in a variety of ways (so it’s not an ‘exact static copy…yet similar’, and later ‘freeze’ it into actual track data.

Example:
Create a ‘dummy CC’ that you use to draw in your data. We’ll use CC 8 just for this example.
Now use a MIDI track send to transform that CC8 data and send it over several different CCs/Channels at once, with a little random variation on each. You could nest up all sorts of possibilities using such an approach. And don’t forget that it’s possible to ‘freeze’ the results of these types of Inserts into actual track data if you decide you need to hard code it into a track for detailed/controlled editing.

Each track has up to 8 real time transformers (4 Global, and 4 local), in addition to being able to add more (at least 8, maybe more with some creative manipulation of virtual MIDI ports) in the insert and send MIDI effect areas.

If you’re wanting to ‘paint’ a curve or something, and use it over and over again as a kind of template, then just draw it once on a track somewhere out of the way as a sort of template that you can stash away as saved track to use in any future project. Then you can copy/paste directly, or even use Project and MIDI logic editors (to move and layer entire parts from the main Project Arranger, or ranges of MIDI data with the MIDI logic editor) to use those templates and insert them when and where you need it. I personally have a number of starting templates that stash a bunch of my favorite CC ‘tricks’ across a handful of hidden tracks. I’m also known to use ‘negative’ bar ranges to stash things on temporary basis…where they’re out of the way and won’t get played by ‘accident’ if one of my hidden tracks accidentally gets assigned somewhere it shouldn’t and ‘unmuted’.

Don’t forget that you can also set up marker tracks as a quick reference to ranges of events used in a piece, and later use manual copy/paste routines, or even tap Logic editors to grab that range at will and place it anywhere you want with nothing more than a click or two and possibly some key combos or MIDI remote commands.

If you want to ‘copy’ a range of events to another CC type or channel/track, again, it can be done in just a few clicks.

I don’t think I’m understanding the ultimate goal. I could be wrong, but I’m thinking the right combination of macros and logic editors might well add the elegant feature you’re seeking. To make your custom logic more elegant, one simply places it in a menu, as presets, macros or remote commands that’ll put it within easy/quick reach. For starters, anytime you save one of your Logic Editors as a preset, it shows up in the Logic Editor area of the main CuBase menu. You can of course also string several of them together in the form of a macro if you’re doing an edit that requires several passes with a logic editor (I.E. extract a copy of CC2 to a new temp track, then copy/merge/freeze it elsewhere with project logic).

When it comes to MIDI manipulation, think of CuBase as a really powerful engine that can do almost anything. It’s pretty dumb on the surface, but it gives you the tools to build almost anything you can imagine and tuck it into your personal tool box for future use. At first the learning curve might seem a bit too steep to bother with, but trust me, it only takes a little practice with it and soon your brain starts lighting up with all sorts of powerful ideas that will save you HOURS in the long run.

If you can try to give some more specific examples of things you’re wanting to do with a particular VSTi, and the work-flow you have in mind, I’d be happy to attempt to help you design some more elegant approaches.

I think it’d be pretty cool if Steinberg had a competition where they reward users who build and share the best marcos and such with keys to some Steinberg software, and/or expense paid opportunities to visit some of their workshops and share ideas :wink:

  1. It drives home the point that every well designed Logic preset or macro build is a new ‘feature’.
  2. It would help get the word out on how flexible and powerful Cubendo can be.
  3. It’d show a bunch of powerful examples that can save people a bunch of time.
  4. It’d be fun and possibly a little extra rewarding for some of us.
  5. It’d offer some incentive for newer generations of users to read software documentation and learn about power-user features.
  6. It would lead to a more robust scripting engine (I can think of a few additions I’d like to see with the Logic Editors…I.E. manipulating the graphic events of the score editor, and a broader set of ‘range tools’), where new features expand ‘exponentially’ through the user-base.

Except it’s not, because you can’t even generate CC messages in arbitrary locations. A very simple function I would want is a global diminuendo which takes the active CC1 or CC11 value on each track and creates a slope from that to 0 inside cycle. Not possible in Cubase.

Where is it possible? REAPER. Unfortunately its MIDI editor itself is behind Cubase’s Key Editor, so I’m not ready to jump ship, but their scripting system is amazing and I sure hope Steinberg implements something similar some day, because for me that’s the key feature in a DAW. The Logical Editor, while powerful compared to some other DAWs, is incredibly limited compared to what you can do there.

Is this what you mean?

  1. I set the resolution I want for the events with the editor grid (in this case one event per beat).
  2. I just ran my mouse real quick across a C11 lane…where the events are drawn is not important at all.
  3. Then I ran this and got a diminuendo effect.

It took about 15 seconds to get this much.

I could get more precise in my logic editor and start/end where ever I want…or just select all this with my mouse and use the move/scale/tilt/compress/expand options there to fit it where and how I want.

On generating arbitrary events, I’ll have to ponder the challenge. Agreed it’d be nice if there were a more obvious way to generate them out of thin air in the Logic Editor. It seems we’ll need to draw in at least one event (or borrow it from somewhere). In the mean time…one can always set up some templates with events at various resolutions as a basis for transformation.

My first low-thought impulse is to simply draw in a bunch of events at the desired resolution. From there it’s easy to paste the thing on a track and use Logic and graphical editors to manipulate/expand/compress it to fit on an editor lane with the mouse.

Thanks for the options, unfortunately I’m aware of all of these and it’s not what I want. I just find it faster to draw in the actual curve I want than create temporary ones and transform them.

Here’s an example of a tool I coded for REAPER a few years ago (there’s other stuff in that short demonstration that Cubase does just fine, I’m linking this only for the following example). http://dl.dropbox.com/u/8520185/cc_editor.gif

The part I mean is about 15 seconds in. I use the “c” parameter for the values: my script recognizes the context of the CC slope and creates a smooth transition between the values before and after the cycle. That’s the particular functionality I would want in Cubase and it’s unfortunately not possible.

I did actually create it for Cubase using AutoHotkey’s image recognition, but that’s way too slow to use in practice, so I rather just draw stuff in. My REAPER script takes less than half a second to process a context-aware diminuendo to a full orchestral arrangement. That’s the power of scripting – Steinberg can’t possible foresee all the scenarios we would like to use Cubase for (although this particular use case should be fairly common), but they can empower their users more.

If I understand correctly, adding this to Logic Editor would make your task possible:

  1. Ability to generate arbitrary events with the script itself.
  2. Some more obvious variables for generating different types of event curves.

I’d personally like to see them also give us more control over Score events in that editor as well.
I.E. Grab all pp symbols and change them to ppp.
I.E. Locate all Slur events and insert CC68-127 a few ticks after the slur starts, and CC68-0 after the slur ends (or better yet, a simple dialog on the slurs that allow attaching a little expression map to them).

At this time these sorts of events just show up in editors as ‘VST Expression’ or ‘graphic’ events, but we can’t manipulate them via Logic Editors (at least not that I’m aware of).

I’ve managed to find some workarounds in terms of what I can ‘hear’ by using different score layers to quickly select groups of objects and insert raw MIDI events…but it sure would be awesome if CuBase would give us access to everything via Logic scripts.

Hi Brian, i want to thank you for the intro to the Logical Editor. it took me a while to go thru what you wrote and also study the manual. i finally managed to automate what i have been doing manually for years.

because i use EWQLSO via Kontakt most of the time, there was an issue with cc11 not returning to 100 after a fade in or fade out on programme change, i had to manually add a cc11 event about half a count after every programme change event. you can imagine the time taken to do this for all the instruments used.

using the Logical Editor i am now able to capture every programme change event and add a cc11 event; with the value of 100, at the forward position of 0.0.0.32 count. This has really helped immensely.

thank you so very much for this.

Also to the OP, i apologise for hijacking this tread however, i too wish to thank you for bringing this up and hence Brian was able to provide us with a huge write up on the Logical Editor.

once again many thanks all; sincerely very much appreciated. Cheers!!!

You are of course right regarding the logical editor. I have been using Cubase since the first Atari version. Actually even Pro 24 before that! I didn’t mean that copying and pasting was the only option in general, just that you couldn’t simultaneously manually edit CCs on different tracks :slight_smile:

Nice eulogy of the logical editor - I bet many users haven’t even tried using it.

I think you can edit as many parts at once as you like if you select several parts before opening your editor(s) of choice.

Give it a try…
Hold ctrl while selecting several parts in the main project window, then open the editor(s) you wish to work with.

Another approach that helps insure you’ve got all the parts on a track is to hold ctrl and select several tracks, then right click on the track and choose ‘select all events’. Open your editor(s) once all of the parts darken.

I do this (process different parts on different tracks) with the Logic editor all the time…

As for the graphic editors…I’ve less practice at trying to manipulate several parts at once in the same graphic editor, but I’m pretty sure the tools are there to pull the part you’d like to ‘draw in’ to the foreground…as for the editing existing events…it seems you can grab and manipulate them easy enough no matter which part layer they’re living on. It comes in handy, but it can get kind of messy keeping up with which part gets any ‘new drawn in data’. Practice/trial/error may be required to get the hang of it. Also, you might need to remember to go back and freeze tracks to sync up channels if you’re painting in new data.

Me too…I still have fun with the old Atari sequencers, and second generation synths/samplers…and will continue to do so as long as I can keep the old machines running (my eyes are getting too bad to solder and replace parts so I don’t know how much longer I can keep them going).

I still like to start students out on the old gear so they can more or less grasp things one ‘era’ at a time, get their hands on some ‘real MIDI documentation’, and gain an appreciation for today’s tool kits. I’ve left the old price tags on there as well, so they can get an idea of how we used to pay 6 times as much for way less than we can get today for less than a grand :wink:

I still prize software documentation from the 80s and 90s. It read more like a good novel…with concepts, theory, etc. in the body, and the ‘feature lists’ in the margins and glossaries. Some of it even came with coffee mug stains and cigarette burns that bled through from the originals when they printed it out…it cracked me up…and added a major human element to the experience. Even though I’d never met most of the guys making the software and documenting it…such little human touches often made me feel like I did know them. It wasn’t unusual at all, if you called one of the tech numbers for support, that it’d be someone’s home number…and one of their kids would answer the phone.

Modern DAWs can do so much right out of the box, that it can be a bit overwhelming for a total newbie to learn it all at once. Today’s style of documentation is effective enough I guess…but it’s a heck of a lot more of a ‘trial and error/discovery’ process for the user than I recall it being back when I started playing with computer music.

I’ve found that after they play with the old gear for a few months…they complain much less about the tools at their disposal, and have more fun with the craft once they get on the modern kit :slight_smile:

Yes, you can. I practically always use the key editor. You will see all the note data from the tracks, but the controller lanes only display and deal with the single track in “focus”. Selecting a note on the editor will automatically bring up the cc data from the track containing that note. You have to draw on one track at a time. Having said that, I can’t say it creates any problems for me. I usually want my different tracks to vary, not be exact clones. I prefer recording or drawing my cc data separately for each track. If I need a clone I copy and paste.

I haven’t switched on my Atari STE in a long time, but if I remember correctly there was an editor page specifically created for controllers… I must go down nostagia lane one of these days and get it out of my storeroom. The midi timing on the Atari was super tight. For a long time I was totally unsatisfied with the VST version, until they made the midi work properly.

Almost forgot, but wanted to add mention of the line tool for drawing in quick lines and curves:

Latecomer… :blush: Verfy interesting thread !!

Check this cool editing in RapidComposer :