Hello, and welcome to the second part of this Live Rig tutorial. In this part were going to look at how we can convert notes on the keyboard into messages that can activate FX. Well assign controllers like Modulation and Aftertouch to plugin parameters to animate them.
Also available in this series:
- How to Create a Live Performance Rig in Logic Pro – Part 1
- How to Create a Live Performance Rig in Logic Pro – Part 2
- How to Create a Live Performance Rig in Logic Pro – Part 3
I'll also show you how you can build reusable blocks by creating Macros and also build user interfaces for those blocks for more intuitive editing. You'll also learn how to build custom faders and switches.
We'll also deal with the problems that arise when dealing with Note Off messages in the environment.
If you wanted to know some more advanced Environment techniques then you've come to the right place!!!
- Turning On An FX Using A Note
- Switching The FX Off
- Assigning CC Data To An FX Parameter
- Working With Different Hardware Controllers
- Adding Another Effect
- Recording your Effects Performance
- Other Applications Of This Technique
- Project Files
- 4 Video Walkthroughs
Turning On An FX Using A Note
So let's see how we can use just a standard MIDI keyboard to activate FX plugins. This could come in handy in a number of ways both live and as a creative tool in the studio.
This kind of thing can be done pretty easily with a dedicated hardware controller like a Mackie Control but unless you own one ($2,000) and don't want to risk it getting covered in beer at a gig then this could be the answer!
Let's get going!
So here's where we left off last time. Open up the 'Sonifi Premium Part 1.logic' file from last months download and open the Environment (Command+8). You can apply this technique to any fader you like, for this example I'm going to use the master 'Output' fader.
On the 'Output' channel insert an 'Auto Filter' plugin into FX slot 1.
Change the settings like the image below. We're using this as a Low Pass Filter. Bypass the effect by hitting the 'Bypass' button and close the plugin.
Now we're going to create an Instrument object that will be used to control our plugin. This will eventually exist on our arrange page as a track that will feed the channel strip.
Our first job is to name the object. In the Inspector double click the name and call it 'Lo Pass'. Then in the 'Key Limit' field change both values to C3. Why? Well C3 is going to be our trigger note for the Low Pass Filter effect. We can use the 'track' object to filter any other notes that might cause a miss trigger of the effect before they enter the Environment. The only note that will pass through this object is C3.
I'm using this technique to filter notes as an example for now, there are other ways we can filter notes and as we start to add more plugins we should probably think of a way that will be more effiecient. I'll show a technique for that later on.
Now create a Transformer from the New menu and name it 'C3 To FX On'.
Drag a cable from 'Lo Pass' to the new transformer. You'll get a message saying the 'Cable and Channel Port is set', just press 'Remove'. This is because 'Instrument' objects are by default assigned to 'Port: All' as Logic thinks you want it to send MIDI out into the 'Real' world.
Now create two 'Monitor' objects. Name one 'Fader Out' and drag a cable from the 'Output' channel strip into that monitor. Name the other 'FX on Output' and drag a cable from 'C3 To FX On' into it. Your wiring should look like this.
It's very important to follow signal flow when using Monitors. Always plug the object you want to monitor 'into' the monitor, not the other way round!
Go over to the Arrange page and create a new 'External MIDI' track. Check 'Open Library'.
Assign the new track to the 'Lo Pass' object by clicking on it in the Library window.
Drag the track down so it's below the Remix Regions track, if it isn't already. Make sure the track is armed.
Go back to the Environment and press C3 on your keyboard, you should see it come up in the monitor. Pressing D3 should or any other notes shouldn't register in the monitor. There should be a 'Note on' and a 'Note Off'.
So far so good! So now we need to find out what fader message we need to turn our note into to turn the plugin on. If you open the Auto Filter plugin by double clicking it and press 'Bypass' (or press 'Option' and click the plugin slot) you should see a message in the 'Fader Output' monitor.
It should read [F 1 56 0].
Let me break this down for you. 'F' stands for Fader (Status byte message), '1' is a reference to the channel strip object, '56' is targeting the 'Bypass' parameter for the channel strips 'Insert Slot 1' and '0' is the value for 'On' or un-bypass!
It's important to grasp that Insert FX slots are part of the channel strip object. Even though you can bypass from within the plugin it's a parameter that belongs to the fader not the plugin. '56' is slot 1 bypass, '57' is slot 2 bypass etc.
If you look at the note messages coming into the other monitor you'll see they have the same four column structure. In a notes case they stand for Note (Status byte message), MIDI Channel, Note Number and Velocity.
If your confused by this go and read the Using Logic Pro’s Transformer Object tutorial.
We're going to use the 'C3 To FX On' Transformer to convert the 'Note On' message into a 'Fader' message that matches the values for Slot 1 un-bypass. That way whenever we hit the key the plugin is active.
Have a look at the image below. It should be pretty self explanatory what I've done but I'll explain anyway.
In the 'Conditions' field I've said convert anything that's a 'Note' (Status) message on 'Any' MIDI channel of 'Any' note number (don't forget we filtered that down to C3 with the instrument object) at a velocity equal or greater (>=) than '1'. We use >= than 1 because a velocity of '0' is considered to be a Note Off message by Logic (we'll run into problems with this 0 value later).
If the conditions are met we apply an 'Operation' to them. Namely fix the 'Note' message to a 'Fader' message. Fix it's channel to '1' (the Fader channel strip object), fix the incoming note number (C3 = 60) to a value of '56' (Slot 1 Bypass) and fix any velocity value equal or greater than 1 to '0' (un-bypass).
Clear the monitor attached to the transformer we modified by clicking it. Hit C3 on your keyboard, you should see that the note on message is now a fader message. Success!!! I hope!
Now plug the monitor into the 'Output' fader by dragging a cable.
Hit C3.......Fingers crossed, the Auto Filter should activate!!!
Switching The FX Off
So now we've got our FX on how do we turn it back off when the key is released? This is going to interesting as Logic Pro has some rather odd behavior when it comes to note off messages.
The first thing to do is change the mode of our 'C3 To FX On' Transformer. By changing the mode to 'Condition Splitter (True -> top cable)' we can redirect the values that don't meet our conditions to the bottom cable output separately for processing.
In our case it will be any Note message with a velocity value of 0 (our note off). This is because the conditions only effect a note with a velocity equal or greater (>=) than '1' (that's the 'true' bit), that leaves only 0.
Unplug the monitor from the Transformer by selecting the cable and deleting it. Plug the Transformer directly to the 'Output' fader.
Create a new Transformer called 'Note Off Convert'. Drag a cable from the bottom output of 'C3 To FX On' into the new Transformer. Connect 'Note Off Convert' to the monitor we used before.
If you 'Option' click the activated Auto Filter plugin you should see a message appear in the 'Fader Output' monitor. This is the message for 'Bypass Slot 1', it should read [F 1 56 1]. Double click the 'Note Off Convert' Transformer and in the Conditions Choose 'Note' on the Status column and '=' '0' in Data Byte 2.
In the Operations box match the parameters to our new Bypass message.
When your done press C3 and release it. You should see a message pop up into the monitor. But wait up, it's wrong! It should have a 1 on the end! What's going on?
Well, I'm as stumped as you are! It's definitely Transforming the Note Off as it's the only thing entering this transformer. Logic seems to have a problem with this '0' value.
Now I'm aware that Note Ons and Note Offs have a different binary number and are both Note messages which is why it's transforming the message. I ran a load of tests on this and have come to the conclusion that even though Logic interprets a velocity of '0' to be a Note Off (look at the image below) it can't process the actual value of '0'!
Now this isn't the end of the world as we can get round this quite easily.
So let's sort this out. Create a new Transformer and call it 'FX Off'. Wire it into the chain like the images below.
Open the new transformer and set it up like the image below. What we've done is fixed any value of '0' coming from 'Note Off Convert' in Data Byte 2 to a '1'. Problem solved!!! You can see now that when we release C3 we are getting the right message in the monitor.
Delete the monitor and wire the output of 'FX Off' into the 'Output' fader. You should now get the Auto Filter switching on and off when you press and release C3. Success!!!!
The last thing to do is change the mode in 'Note Off Convert' to 'Apply operation and filter non-matching events'. This will filter any unwanted controller data from the chain ready for our next step.
Assigning CC Data To An FX Parameter
Now we have the switching done we need to be able to do something with the effect. Let's assign Filter Cutoff to the Mod Wheel. This part is actually really easy to accomplish.
Open the plugin and move the Cutoff parameter. In the 'Fader Output' monitor you should see the numbers that relate to the Cutoff.
Create a new Transformer and name it 'CC to Param'. Set up the Transformer like so.
What we've done is say transform any incoming signal that is a 'Control' message with a controller number of '1' (Modulation) and fix it to a 'Fader' message with a channel number of '2' (this references the actual 'Plugin' in Slot 1) and fix the number in Data Byte 1 to '2' (the number for the 'Cutoff' parameter). We've also said discard anything that isn't modulation data by choosing 'Apply operation and filter non-matching events'.
If your confused about how controller messages are transformed into fader messages this might help.
Just plug a cable from 'Lo Pass' into the 'CC to Param' then out of that into the 'Output' fader like so.
Go to the Arrange page and make sure both the 'Remix Regions' and 'Lo Pass' tracks are armed and the 'Remix Regions' track is selected. Start the sequencer and trigger some touch tracks loops. Press C3 and move the Mod Wheel to hear the effect. Whooo!!!
Adding More Controllers
You can add as many controllers to manipulate as many parameters you like by simply copying the 'CC To Param' (Option + Drag) and changing the Transformers values to suit your needs. Let's say you wanted Resonance applied to Aftertouch. Find the parameter number in the monitor like before (Resonance is '3').
Copy the 'CC To Param' transformer, probably a good idea to name them too.
Change 'Control' to 'C-Press' (Aftertouch) and change Data Byte 1 in the Operations box to 3 (for Resonance). I've also added a 'Max' to the value to limit the output to 88. This will stop the Resonance getting out of control if you press to hard.
You'll find different plugin parameters have different range values. There's a good chance you'll want to fine tune them using the Operations math of range tools!
Most decent MIDI controller keyboards will have Aftertouch built in as standard. Aftertouch is a great controller as it can be used by the hand your pressing the note with freeing up the other one for the Mod Wheel, that way you can manipulate two parameters at once. If yours doesn't have this you could just predefine the resonance setting and just use the Mod Wheel.
Working With Different Hardware Controllers
Now you've only got two hands so mapping 20 parameters is a bit pointless if you've only got one hand free. With Filters the Cutoff and Resonance are the two most commonly used parameters thus probably the best to have at hand. You should pick the parameters that will give you the biggest bang for your buck.
You do have some other options though.
Expression Pedals - Expression pedals are a great way to manipulate controller data, and they are also controlled by your foot! You could map an extra parameter with this!
X/Y Pads - X/Y pads are capable of outputting two controller numbers. One for up/down and one for left/right. The Korg Nanopad is a great cheap option for gaining an X/Y pad in your rig/studio. Most good hardware controllers will come with software that allows you to assign controller numbers to each axis. You'll find that most X/Y pads output numbers controller numbers 12 and 13.
Just build a new Transformer for each controller and plug it in.
Adding Another Effect
Ok so let's add another effect onto the 'Output' Fader. THe process is pretty simple as all we have to do is copy what we have and change some of the Transformer properties to suit the new plugins.
First off let's color our elements so we don't get lost. Color 'Lo Pass' blue. You'll notice it colors the cables too. Then lasso the five Transformers dealing with the FX and color them green.
Now rename 'Lo Pass' to 'FX Triggers'. You could have a separate object (track) for each FX but it's a bit unnecessary. We might as well feed all the triggers via one track. Since we'll have three FX change the 'Key Limit' range to C3 to E3.
Earlier on I said there was another way to filter the note values. In the 'C3 to FX On' transformer change the value in Data Byte 2 to '=' 'C3'. This way the transformer will only deal with this note value. Now because we have the 'Conditional Splitter' mode activated anything that isn't C3 with a velocity greater or equal to 1 will pass out the bottom cable.
Now because we've allowed other notes to pass through the track object (remember C3 to E3), if we play D3 for example it will pass into this transformer and be shunted out the bottom cable into the 'Note Off Convert'.
Now because we didn't specify a value for the 'Note Off Convert' transformer, any note off will trigger this! We need to filter out notes that aren't relevant to this effect. Open the 'Note Off Convert' transformer. We can do this by selecting '=' 'C3' in Data Byte 2. Now only C3 'note off' will bypass the effect, and because the mode of the transformer is set to 'Filter Non-matching events' all other note (i.e. C#3 - E3) will be ignored and discarded.
Now this set of green Transformers is specific to one note (C3) triggering one effect (Auto Filter 'Low Pass').
We can now simply copy this Transformer set by 'Option' dragging. You'll notice the output cables are preserved. You'll need to color the objects you copied with a different color so you know what's what.
Rename the Copied 'C3 to FX On' to 'D3 to FX On'. Wire a cable from the 'FX Triggers' object into it. Do the same for the new 'Mod To Cutoff' and 'Pressure To Res' transformers.
So we need a new plugin to be triggered by D3. Load in an 'Auto Filter' into Slot 2 on the 'Output' fader. Set it up as a Hi Pass filter like the image below.
We need to find the bypass number for Slot 2. Open the new plugin and Click the bypass button. This is just like the steps we did earlier. You can see in the image below that Slot 2 bypass is fader parameter '57', Slot 1 was '56' which means Slot 3 will more than likely be '58'!
Open 'D3 to FX On' and change the note value to 'D3' and the fader parameter '57' like below.
Now open the 'Note Off Convert' that's connected to 'D3 to FX On' and do the same thing. Note to 'D3', fader parameter to '57'. That's it for the new FX trigger. We don't need to bother about the 'FX Off' transformer as it doesn't deal with any note values.
Now let's assign the Mod Wheel to the new plugin. If you move the 'Cutoff' in the new Auto Filter you'll see it is transmitting on Fader channel '3'.
Go into the new 'Mod to Cutoff' and change the 'Channel' value in the Operations box to '3'. Done!
If you move the 'Resonance' dial you'll see that the message is [F 3 3 value]. Let's change this in the new 'Pressure to Res'. Done!
You can test this out now. Hit C3 and D3 and you'll see your effects activate. Because each effect is driven by a unique note you can combine FX by hitting two notes. The only down side is the mod wheel and pressure drives all plugins with the same value.
Recording your Effects Performance
As well as using this live you can also record the effects you trigger as part of a performance.
Make sure both tracks are armed. Make sure the Remix Regions track is selected.
Record some Touch Track trigger notes and some FX Trigger keys and use the Mod Wheel. When your done you'll see two regions. The region on the FX Triggers track is an 'alias' of the 'Remix Regions TT' region. This means any edits you make to the top region are reflected in the alias.
If you look inside the top region you'll see all the note and controller data. This can all be edited (cleaned up/quantized) and moved after the fact.
Other Applications Of This Technique
One technique that immediately springs to mind when I think of this is Key Switching. This has been around for ages in Samplers and let's you assign a key to certain articulations or groups of sounds within a larger single patch without having to switch MIDI channels or change presets.
The techniques described above for triggering things via a transformed 'Note' event can be applied in countless creative ways both in a live and studio environment. All you have to do is imagine it! Now I know that sounds a bit naff but it's true. What I've shown you is just a technique, try to take that technique and do your own thing!
When used in conjunction with cable switchers and other environment objects via various hardware controllers you can create some really cool performance tools. Always remember this, all your doing is converting MIDI messages. The Transformer is pretty much capable of anything MIDI related so use it to your advantage. If you know what message should converted and what it should be converted into then that's half the battle won. Here's a quick list of tips to consider.
- Use Monitors to find fader messages
- Use Monitors in the signal path to troubleshoot messages
- Use the modes of the Transformer to help you split, filter and redirect messages
- Use the math and range tools to help you fine tune control over values
- Draw out a signal plan of your idea on paper before you start
- Learn a bit about controller messages and byte structure in MIDI
The best way to get good at this is to experiment! Start simple, the more you practice the more complex your creations will become.
Here's a short list of ideas (most of which I've used in real situations) that could be applied to this tutorial. Maybe you could even try to build some of these yourself!
- Key switching between Software Instrument faders
- Switching on arpeggiators
- Switching Aux sends between two delays with different values
- Switch a parameter (like LFO rate) between two different values
- Create complex rhythmic effects using the Tremolo plugin by choosing sync values with notes
- Insert your idea here!
The beauty of using this technique is that you can predefine values that are triggered via notes. These precise values are pretty hard to hit when automating via a hardware controller like a slider or dial.
I've included a couple of example projects for you to study. See if you can work them out. Although this may seem overly complex the creative outcomes will seriously outweigh the initial setup time. Once you get used to building these types of environment setups they take no time at all. These examples took about 2-3 mins to construct. If you like what you've built save it as a 'macro' for later use.
So that's it for Part 2! In the last part we'll look at how we can combine the techniques from Part 1 and 2 to trigger prerecorded automation inside regions to create a 'Stutter' effect!