Exploring Logic Pro’s Transformer Object
I’ve worked with Logic for quite some time now, but I never really took the time to seriously look at what all the objects in the Environment are for. I use the arpeggiator on occasion and know how to create a new instrument, or even a mapped instrument should I need one.
Sometimes I put a fader here and there.
One of the most interesting objects in the Environment is the Transformer object. In short, it lets you manipulate all kinds of data in real time, Ableton Live style. It takes some time to get used to its interface, but once you got it, the possibilities are endless. I expect to post more about working with Transformer in the coming months. Or years. So say goodbye to your loved ones, and let’s manipulate some data!
Have a look at what I’ve got set up in the mixer layer of the Environment window:
For starters, let’s focus on the two monitors I have set up. One monitor is connected to the EXS24, the other is connected to both aux buses. Let’s run through the types of messages that channelstrip objects send out, I’ll explain the complete setup later on.
Monitors and Messages
Look what happens in the monitor on the left when I hit some notes on my keyboard:
These are note messages. Note the zero-velocities. These were created when I released the keys, and are called note-off messages. Look at the monitor on the right when I change the volume of channelstrip aux 1:
This is controller data. Is the same type of data that your midi keyboard is sending out when you move your modulationwheel for example. Note that the channel of the channelstrip is 1. Look at the monitor on the right when I change the Wet Level of the Space Designer:
These are fader messages. Yep, channelstrips send this data out too. In fact, every plugin parameter change gets sent out. Note that the plugin’s channel is 2. That’s because it is inserted on insert slot 1 (channel 1 is already occupied by the channelstrip).
Back To The Setup
I’ve created a new instrument, called ‘My Synth’. This object is connected to EXS24 with a cable. I’ve got ‘My Synth’ selected in the Arrange Window. I’ve got EXS24 set up with a factory preset, called ‘Mega Fat LFO’. The channelstrip sends to 2 buses, one with a Space Designer reverb, and one with a Tape Delay. I’ve covered the Tape Delay with a little reverb via a bus send to Aux 1. ‘My Synth’ is also connected to Transformer 1 and Transformer 2. Transformer 1 goes to Aux 1, Transformer 2 goes to Aux 2.
The idea here, for illustration, is to control the Space Designer’s Wet Level with velocity, and at the same time have the velocity control the Tape Delay’s feedback. For that to work, we need to transform the velocity values into fader values. That’s what the Transformers are for.
Setting Up Transformer
Look at Transformer 1:
The ‘Mode’ is set so, that only note messages get a treatment, and everything else is filtered. What I am basically saying here is:
- convert the message’s status from note to fader,
- set the channel to 2 (because the plugin sits on insert slot 1),
- set all pitch information to 1 (in this case, where note messages get converted into fader messages, pitch information is being converted into parameter information)
- don’t pass a velocity of 0 (so note-off messages are ignored. Otherwise these messages would set the plugin parameters to zero).
Shortly put, I am converting these message types:
Transformer 2 is doing the same thing. By moving the Tape Delay’s feedback slider while looking at the right monitor, I found out it’s parameter number (3), see here:
So what’s the ‘Div’ for? That’s where I am dividing the velocity information by 2. Velocity values run from 1 to 127 in this case, and a value of 127 would set the feedback to 100%, which is too much.
Here’s a simple example, to illustrate what this all sounds like. I’m playing a couple of inversions of a C minor chord, at increasing velocities:
Saving Your Work – Here Come The Bugs!
I’ve created this setup in the Mixer layer of the environment window. To keep things organised, I created a new layer, like so:
I called the new layer ‘Transformer Synth’. I selected all the objects in the Mixer layer, cut them by hitting ⌘+X, and pasted them into the new layer with ⌘+V. I saved the project. So far so good…
To import an Environment layer into another (empty) project, I choose this:
This pops up:
After clicking ‘Import’, the result is… a mess:
Unfortunately, objects that are used in an imported layer won’t be created when they’re not already set up in the project. To keep a long story short, for now it’s best to save your work as a template, and use that as a starting point. Hopefully, in a future update this issue will be resolved. Don’t let that stop you from experimenting with Transformer though. It’s endless fun.