Hello, I’d like to create a key command to add a CC#1 Automation lane with a starting value of 60 to all tracks in the project editor. I’ve been looking at the Project Logical Editor and key command macros, but haven’t seen how I can do it in there. Of course I can manually add a CC#1 Automation lane to each track and set a starting value, but am hoping I can create a quick key command to do this. Any ideas?
If you really MUST have these events living on a track automation lane (as opposed to living in the MIDI part), it’s somewhat possible, but it’d be a complicated macro requiring you to do a lot of merging tracks and then extracting them back out. The reasons it gets complicated fast are:
We can’t generate arbitrary events out of thin air using the logic editors. They must at least be borrowed or stolen from somewhere.
There’s no simple way to get a CC automation lane selected that never existed before through our possible key commands. If an event is living on a lane, we can usually find it and automate copying stuff into it, but if it’s empty, I personally have never been able to find a way to force CuBase to get a cursor in it so we can manipulate the data in the lane.
It’s possible to work with MIDI parts instead, but then we still have to do a lot of packing/extracting and moving things around if other types of automation lanes already existed on the target tracks.
I’m not sure it’s worth all the trouble just to set an initial chase value on a track by track basis. In my piddling with the idea, I’ve decided that to me it’s not worth the trouble to make a macro for this particular purpose. The macro gets very long and complex, and we still run into issues of deciding on how to choose which tracks should be bothered, and which should be left alone (things to do before launching the macro).
Sometimes a brute force attack trying to force a track to do every little thing just isn’t worth the effort, especially when tracks in CuBase Pro are unlimited in number. We have all kinds of other ends to achieve this same means at our disposal.
Here is how I’d do it instead.
Make a simple MIDI track with the output channel set to ‘any’.
Create a small part on the track at the very beginning of the project.
Open that part with the MIDI List editor and throw in the desired CC event for all 16 channels.
Set the output MIDI port of the track to the instrument you want.
Now all 16 channels of the instrument will chase CC1 at the beginning of the project to a value of 60 by default. If you wish to change or remove what a given channel’s CC1 gets set for at some point in your project, just open up the track in the list Editor again and do so for the event(s) you need. You can easily change/delete/mute/unmute/etc or each channel’s CC1 event from here.
Simply duplicate this track for any other instruments that need it. Pack these MIDI tracks out of the way in a folder towards the very end (bottom) of your project. You can even ‘hide’ them from project and mixer console view if they are in the way visually.
Export this generic “CC1 Chaser” track to a convenient location. Now you can easily bring it into any project. In fact, I’ve exported a copy for you to easily bring into your projects right here (it unzips to an xml CuBase track that can be ‘imported’ into a project):
CC1 Chaser Track.zip (13.6 KB)
Towards the very last stages of your project you might wish to merge things down so all of this is truly incorporated into each individual track in your project, instead of hosted off in lala land on its on like this. At that point, it’s going to require a lot of track duplication and merging inside the loops, and then extracting things back out into whatever types of lanes you want (Automation lanes vs MIDI part CC lanes). By then it’s probably easier just to draw the stuff in manually for each track anyway. Is it really worth it just to set up default controller positions at the start of a song?
Bumping due to some edits in my wall of text above (fixing typos, grammar, etc.)
Oops, just realized the track I exported was missing an event for channel 16.
Here is a corrected version below.
CC1 Chaser Track.zip (13.6 KB)
Thanks, I’ll have to take a closer look at what you’re saying. But my use case is that I have of bunch of midi tracks I’m bringing over from another program, and I want to add a CC#1 value to all of these existing tracks. I’d by happy if there’s a quick way to add it to either the midi parts in the key editor for all tracks, or to the automation lanes in the project editor.
I understand what you are hoping to achieve. As far I can tell there is no easy way to build such a macro. It would take me all day to even attempt to build such a thing. There is no way in the macro engine to call up the ‘CC1 automation lane’ of a track if there’s not already an existing CC1 lane with an event somewhere in it, and even if it were, we’d still have to build a macro with a TON of steps to go through an entire project and insert a copy of a CC1 event to such a lane.
The next method would involve something like:
- importing a part with the CC event you need.
- Copying that part.
- Placing the cursor at the project beginning.
- Doing a bunch of track renaming to keep up with what’s done so far.
- Even more track/part renaming to get things back like they were before the macro started.
- Cycling through each individual track in the project and ‘pasting’ the part.
- Correcting the MIDI channel of the event each time.
- Extracting it from the MIDI part into the Automation lane.
- And more…
or similar to above, but by duplicating, merging, and extracting tracks in all sorts of ping-pongs.
The proposed solution will quickly get a CC1 @ 60 to every possible channel of the target instrument. It’ll achieve the same sonic effect without having to go into each track one by one, build a lane, and draw in your CC.
It’s the quickest fix I can think of short of going through the project track by track and pasting a MIDI part at the start of the track that holds a CC1 event. Next you’d just use the glue tool and touch those freshly pasted parts. From there, if you want that to live on an automation lane instead of in the MIDI CC editor lane, you’d have to extract all these freshly pasted parts to the automation lane in the MIDI menu.
- Make a fresh MIDI track and make a small part on the track at the beginning of the project.
- Open a MIDI editor and enter a CC1 event at a value of 60.
- Back in the project view select the part you just made.
- Click ctrl-c.
- Select a target track and hit ctrl-v.
- Repeat step 5 for every track you want to add a CC event.
- If the part you added lays on top of, or overlaps an existing part you can optionally touch them with the glue tool to join the parts into one.
At this point if you extract the CCs to automation lanes (MIDI/Functions/Extract MIDI Automation) all CCs living in MIDI parts will extract to the automation lanes.
- Go to Logical Editor and do this:
save Preset As "Add CC#1 60"
- Go to Key Commands and create New Macro “CC#1”
3.Go to Progect Logical Editor and do this:
P.S. It works if all your MIDI events start at the 188.8.131.52 and every MIDI event has at least one note.
Thanks Winter Rat, a very clever solution and works for me. And I added a final step in my macro to extract midi automation for all tracks so I have the CC#1 in automation lanes.
It really opened up my eyes to the power that you can have by creating a key command to call a macro, which can call other macros, logical editor presets, and/or project logical editor presets. The combination of those things and the flexibility it gives you means you can accomplish a heck a lot of stuff with one key command!
Hi Winter Rat,
I know it’s not exactly the same but this thread is the closest thing I could find for what I’m looking for.
I’d like to make a macro that moves both CC1 and CC11 in an increment of +1 and then -1. A small nudge to trigger it’s current value so it gets recorded in the controller lanes.
The goal is the then make a macro that when I hit record, it starts recording and then moves both CC1 & CC11 up and down a single value so that there curent value gets recorded in the midi or instrument track event without me having to manually wake up the controllers so they get recorded.
I know this thread is a little old but it’s the closest thing to midi CC macro I could find.