Here is a helpful little switch I made in Logic's Environment that I thought I would share with you. It is a simple on/off switch that will bypass all of the plug-ins of the channel strips that it is connected to. The interface is pretty simple, but there is a little more going on under the hood that requires a basic understanding of Logic's Environment that I will get into below.
I've written this tut using Logic 9 (the Environment is still a bit buggy in Logic X at the time of writing), but it can be built in X, and also probably in 7 & 8 for that matter if you are still using them.
1. Getting Started
The first thing I did was load up a channel with 16 plug-ins, an instrument, and 15 effects. Logic allows quite a few more to be added, but 15 seems more than a reasonable limit for what I want to do. If you need more, go ahead and load them up.
It doesn't matter what the plug-ins are, or in what order they are placed on the channel. At this point they are simply placeholders to gather programing information from in later steps.
Next, I went into the Environment and created a new monitor from the 'New' pull down menu. While I was at it, I grabbed a transformer as well as a button (it doesn't matter which button you choose - they all do the same thing) from the 'Fader' submenu.
From there, I had to connect the channel strip and the button to the monitor (click drag the cabling triangle from the right side of the objects to the monitor) and toggle the plug-ins on and off to get some MIDI information into the monitor.
2. Programming In The Environment
Here I have toggled the button and the EFM1 instrument plug-in. The information in the monitor tells me the button is a control object (that sort of fader looking symbol) operating on channel 1, assigned to MIDI cc 7, and sends out a signal of 127 when turned on and a signal of 0 when turned off.
Below that is the information concerning the EFM1. It is a fader object ('F') , also operating on channel 1, assigned to the ID number 56 and toggles between a value of 0 and 1 (oddly, it sends a 0 when turned on and a 1 when turned off).
Now that I have some info to work with, I can open up the transformer and start to input some data. For those uninitiated, the transformer basically takes incoming information and transforms it into a different type of information. The top row tells the transformer what to look for and the bottom row tells the transformer what to change that information to.
In the status field, I tell the transformer to look only for control data by selecting the '=' sign and then choosing 'Control'. Likewise, I tell it to only look for information coming in on Channel 1, assigned to MIDI cc 7, and only at a value of 0.
I then tell it to transform that data to only fader information, allow the Channel 1 to pass as that does not need changing, fix the ID to output a value of 56 (the plug-in slot ID), and change the final value to '1' as that equals 'off' for some reason here(?).
The transformer looks for the conditions made in the top row and transforms them into the conditions set in the bottom row.
Now I connect the output of the button (right side) to the input of the transformer (left side) by click dragging the patch cable triangle of the button. Likewise, I connect the output of the transformer (right side) to the input of the channel strip (left side).
After trying out the button, I see that it does in fact work, but it is also causing the channel fader to go up to +6 every time I turn it on. This is because the fader also operates on cc 7 and sends a value of 127 when I toggle the button. This is a problem.
To remedy this, I need to go into the top menu of the transformer and choose the 'filter non-matching events' option so that signals which do not exactly match the conditions set in the top row of the transformer are not allowed to pass through. After doing this, the button works without unwanted side effects - all be it, only to turn the EFM1 off.
To use the button to turn the instrument back on, I need another transformer set up in much the same way as the first. To do this, I option drag the transformer to create a new copy, delete the default wiring that comes along with it and change the final column in the transformer to look for a value of 127 (button on) and output a value of 0 (EMF1 on). I then patch everything in the same way as previously discussed.
3. Final Steps
For the rest of the plug-ins, it is simply a matter of repeating the process. Each new plug-in will require a separate transformer for the on and off positions as well as a change in the plug-in ID (second data byte in the bottom row of the transformer – just option click each plug-in to see its slot ID in the monitor).
This is about how things should look when you are done. Here I have labeled each transformer according to the plug-in slot it controls, cabled everything and run the output of each assigned transformer to a final empty transformer in order to simplify the final connection.
Everything works, but it looks like garbage and is more than a bit confusing for such a simple device. So I decided to clean things up a bit.
To do so, I selected all of the modules of the switch and selected 'Macro' in the 'New' menu, I then adjusted the size of the macro by click-dragging the small square in the lower right to show only the button. Make sure your transformers are below the switch and to the right, as the macro window will not go below the topmost module nor will it go further right than the leftmost module.
I then renamed the macro in the inspector to reflect what the button does, tested it one last time, saved the project (very important) and called it a day.
Now, whenever I want a bypass button, I only need to open the project, copy the button macro to the clipboard and paste it in the required environment. The cool thing about this too, is that one button can be connected to multiple channel strips so a bypass button for a bass instrument can also be connected to other bass instruments if they are layered, for example, or to the send effect channels of the bass in order to quickly bypass all related plug-ins.