How to Create a Cross-Fader in Logic's Environment

Every DJ Mixer has a cross-fader. In fact every DJ Mixer has three essential functions. A volume fader for one audio source, a volume fader for a 2nd audio source and a crossfader.  

Every DJ Mixer has a cross-fader. In fact every DJ Mixer has three essential functions. A volume fader for one audio source, a volume fader for a second audio source and a crossfader. The crossfader allows the DJ to fade out one source, while fading in the other source.

Here's how to create a basic, but very effective crossfader in Logic's environment. This tip is useful for Logic 5, 6, 7 and 8 users! You can use existing Audio or Software Instrument tracks, but for this example I'm going to create a crossfader to mix two audio tracks.

Step 1 - Start with two tracks

Create two new stereo Audio Tracks and import your audio files onto each track in the Arrange area.

Step 2 - Enter the Environment

Let's open the Environment window: Window > Environment and navigate to the Mixer Layer.

Logic's Environment enables the user to route signals, control faders, create custom objects and much much more.

Click on The Layer drop down menu in the Inspector and select the Mixer layer.

Step 3 - Time to Transform

We can connect objects to each other very easily in the Environment. Simply dragging the output of an object (in the top right of the object) and dropping the cable on another object will create a cable from one to the other.

If you connect the channel strip 1 to channel strip 2 and move the volume fader on the first channel strip you'll notice that you now control the volume fader on the second channel strip too.

For our crossfader we want the changes we make to the volume fader on one of the channel strips to be reversed on the other channel strip. So, when channel strip 1's volume fader is at it's highest level, channel strip 2 is, in essence, muted... Here's how we do that.

New > Transformer

Cable the output from channel strip 1 to the Transformer. Now cable the output from the transformer to channel strip 2.

CS1 > Transformer > CS2

It should look something like this:

Step 4 - Reversing the Data

Double click on the Transformer to view it's options. If this is your first time in the Environment this may seem a little daunting, but don't worry, this bit is not complicated, and you don't need to delve too deeply to get this working.

A Transformer can, as it's name suggests, take data it receives and transform it into some other kind of data. For example, we might want to transform MIDI note events or volume or pan data into something else.

In this case, if we leave the Conditions row blank we are not going to filter out any data coming in to the Transformer. We do, however, need to change the value of the volume data to reverse it. This is reflected under Data Byte 2 in the Operations area.

Click on the DB2 drop down menu and choose Reverse.

Now, move the Volume fader on channel strip 1 and you'll notice that channel strip 2's volume fader moves in the opposite direction! We have a Crossfader!

Step 5 - Round-Tripin'

If you try adjusting the volume fader on channel strip 2 you'll notice that nothing happens to the volume fader on the first channel strip. This is because the volume fader data is not being sent out from the channel strip.

Cable the output from channel strip 2 to the Transformer & from the transformer to channel strip 1.

CS2 > Transformer > CS1

Now try moving the Volume fader on either of the channel strips and you'll see it works just fine.

Step 6 - Creating the Crossfader

Although it works fine, it's no fun dragging the volume fader on one of the channel strips to cross fade between two tracks. Let's create a bigger crossfader.

New > Fader > Horizontal 4

Now, it's completely up to you to choose the appearance of the fader. You can always change it later by choosing the desired Style in the Inspector.

You can re-size the fader by dragging the square in the bottom right corner of the object.

Make sure to cable from the new Horizontal Fader's output to one of the channel strips.

We now have a fully functional Crossfader!

Step 7 - Make a floating Crossfader

You may now want to take your new crossfader from the Environment into the Arrange area. We need to make your Environment into a floating window, but first turn off Link mode in the Environment window.

Now, position the Crossfader in the top left of the Environment window. Right-click on the grey background of the Environment window and make sure that Protect Positions and Hide Cables is ticked and also Frameless Floating Window too.

You can now resize the floating environment window to show as much or as little as desired and have access to the Crossfader whenever you are in your Arrange area.

Want to learn more Logic Environment Tips n' Tricks? Click here!

Rounik is the Executive Editor for Ask.Audio & macProVideo. He's built a crack team of professional musicians and writers to create one of the most visited online resources for news, review, tutorials and interviews for modern musician and producer. As an Apple Certified Trainer for Logic Pro Rounik has taught teachers, professional... Read More


Great work! Also, I liked your randomizer TNT that you did. I've heard you say before that you would like to see some development in the environment in Logic in the future. I was curious as to what you would like to see? Thanks to the MPV tutorials I understand the environment but I still don't find myself going in there too frequently.

I would love to see a blog post about the most effective way to create and manage controller assignments with zone groupings etc! I get how to do it but I haven't figured out a solid workflow method for storing and recalling my controller assignments. I think it would help a lot of people out... especially since I haven't ever seen the controller assignment window addressed in any tutorials thus far.

Thanks, you guys rock!
Hi Eric

Thanks! I really enjoyed doing that TNT Randomizer. In fact I made a souped up version which can be downloaded here:

There are loads of features I'd love to see in the Environment. Here are two which spring to mind in my early morning state:
- GUI of objects to be more like that in Mainstage2.
- Objects that can process Audio data... this would be amazing... and Huge!

I like the idea of a Controller Assignments blog tip... I'll have a think about that because it is potentially a huge topic.
Thanks Eric!
Hi Eric!

Is there any way to automate that crossfader object (or ANY object in the environment)?? I can't find ANY literature about that, and it makes me think...


Thanks for the informative post!

Hi Ryan

I actually wrote the post ;-p

Yes you can record movement of faders in the Environment as automation data.

I should write a post on this... although cool stuff like this is covered in Steve H's TNT2 (& I suspect to be release TNT3):
and if you search the forums you'll find it discussed too.

Anyway, back to your question: The normal way to do this is to create a transformer. Open the Transformer and leave all the conditions and operations settings as they are. Only change the mode to Track Automation splitter (true -> top cable).

Now cable the output from your 'last environment object, e.g. the CrossFader in this case to the transformer.

Take the top output cable from the transformer into a new channel strip. In this case I'd recommend creating a blank new audio track.

Finally cable the audio channel strip's output to the crossfader. Done.

In most other environments all you'll need to do is create the transformer and output it to the channel strip.

Albert Wifstrand
If I use a Button Fader instead of Horizontal 4, the volume goes immediately from 0 to 100% so it's like muting channel 1 and unmuting channel 2 really quickly. This is expected, of course, but is there a way to use a Button Fader so that it causes a smooth crossfade transition upon clicking it? In other words, I'd like to have a pre-set crossfade with a fixed duration so I won't have to manually fade with a Horizontal 4.
Hi Albert,

Getting a smooth transition is a bit tricky. I'd try making use of the delay line and a transformer or two to add a value that will be delayed a certain number of times before it reaches the Cross fader... but even this may produce a step-like effect, rather than a truly smooth effect.

Also, when using "live" objects like the delay line, Logic's transport must be in "play" mode...

I'd recommend checking out Steve H's TNT tutorials for more info on the Environment... and bear in mind that Logic isn't really designed to be used as a live DJ tool - although it can be in many ways.

Pop by the forums if you'd like to chat more about the Environment. Perhaps we can figure something out for this...

found your post inspiring and i did that :

i added clearer ways,
exponential crossfading
and dividing (not to get to +6dB)

cheers :)
Hi tkIM,

Thanks! Really glad you found this article inspiring!

I love what you've done with your environment too. Great idea.

If you're interested in more Logic Environment trickery & magic - have you checked out the Logic TNT2 and Logic TNT3 series?

Also, there's this thread here with some excellent environments for you to download and modify to your heart's content!

Thanks again! Appreciate your comment :)
Tedd Firth
Hi Rounik,

Thanks for the well-written post on this. I'm slowly coming to terms with working with objects like this in the Environment.

My question is whether it's possible once you've created the fader object to function as a cross-fader to control the fader object with an external control surface--for example a fader on a keyboard controller. I would imagine there's a way to do this, but I haven't quite figured it out yet. Any thoughts on this would be greatly appreciated, and thanks again for this post and the many other great posts you've written for the site.

Hi Tedd,

Thanks. It is possible to do what you want!

First step is to go to the Clicks & Ports Layer in the Environment. Now move the slider/fader on your MIDI Controller.

Notice the MIDI message being sent to Logic (look at the Monitor object or even the Transport's MIDI In area).

The first two values are most important. They show the MIDI Channel and then the CC number.

Next, create a new fader and set its Input controls to match the values above. Then make sure its output value matches of the input of the Crossfader. (Don't use CC 7 or 10 (volume or pan) - it'll lead to a bag of hurt ;-)

Next you need to connect the new fader to the cross fader and then connect from the input notes or input view object to the new fader. This will allow the MIDI value coming in to control the new fader, which in turn will control the cross fader.

Hope this make sense.

Tedd Firth

Thanks so much! Very clear and easy to understand, I had it working within minutes. Thanks again for all your tutorials and contributions to the site, I'm learning a lot.

Hi Tedd,

No problem and glad it was easy enough to follow.

Hope you keep enjoying MPV :)
Tedd Firth
Hi Rounik,

Oops, I might've spoken too soon. When I cable the new fader from the input view in Clicks & Ports to the cross-fader object it works fine--the slider on my MIDI keyboard controls the cross-fader object as desired. However, when I play my MIDI keyboard I find that I'm triggering both software instruments that are being controlled by the cross-fader, resulting in a layered sound. Not sure if there's a workaround for this, but figured I'd ask. Thanks again for the advice--very clear and easy to follow.

Hi Tedd,

No problem. Probably easier to watch the Logic TNT2 and TNT3 videos as use of a transformer will give you so much flexibility when working in the Environment.

However, for now, try setting the New Fader's Filter to ALL. That should work - but I'm not near Logic right now to double-check.

Tedd Firth
Hi Rounik,

Thanks! It totally worked. Also, if the filter is set to "other" it seems to work as well. In fact, I'm a little confused as to why it works with the filter set to "All"--that would seem to mean that the filter would block all MIDI information from getting to the fader, meaning that the control change info from the keyboard's slider wouldn't get to the fader to adjust it's level. It works, though, so I'm satisfied.

I have started to check out some of the TNT videos on transformer objects--very interesting (and occasionally complicated) stuff. Thanks again for taking the time to answer, sorry about all the follow-up questions.


Want to join the discussion?

Create an account or login to get started!