Understanding Logic Pro’s Environment
Twice a month we revisit some of our reader favorite posts from throughout the history of Audiotuts+. This tutorial was first published in April 2009.
The Environment is the core of Logic. It can be the cause of a lot of confusion (and even fear!) for new and even more experienced Logic users. In the first of three tutorials that focus on the Environment I'm going to explain exactly what the Environment is and why it makes Logic the most flexible and advanced MIDI sequencing package on the market.
About this tutorial
The following article is here to complement the screencast. The screencast touches on all of the subjects below and demonstrates them in some practical examples. In the final example we'll build a DJ style crossfader using some MIDI objects and save it as a reusable MIDI plugin. This tutorial is aimed at beginners to intermediates.
So what is the Environment?
The Environment is, not to put too fine a point on it, the foundation that Logic is built on. It's been around since the birth of Logic in version 1.5 in 1993 and remains pretty much the same to this day. It has two main functions:
- The Virtual Studio - The Environment contains all the elements of your Logic project which are stored inside a virtual studio space or 'Environment'. These elements are referred to as as 'Objects'. These Objects include any channel strips you create for audio and software instruments, busses, auxiliary and output channels, and any MIDI based elements you choose to include like links to external MIDI hardware. In fact anything you create in Logic via the Arrange page now is added to the Environment automatically as an 'Object', probably without your knowing it. It does this primarily to enable the exchange of MIDI messages between any Object in your project.
Not only is it a virtual representation of all objects in your Logic project (there isn't one fixed Environment for Logic as a program, it's project driven) it can and should also be a virtual representation of all elements in your physical MIDI studio setup which should be saved as a user template. This provides easy access to all MIDI inputs from your hardware and sound modules from within Logic at the start of a project.
- MIDI - Primarily the Environment handles all of Logic's MIDI functionality. It allows you to bring MIDI into Logic, route those MIDI messages anywhere you want to inside Logic, alter or 'Transform' them as they travel, and eventually send them out into the physical world if need be. No other software allows for the manipulation of MIDI messages and MIDI signal flow to the extreme that Logic does.
You can use the Environment to create anything from a simple arpeggiator to a complete virtual simulation of a hardware synth. If you want to maniplulate MIDI signals in Logic then your going to have to do it in the Environment. Please note I'm not talking about recording and editing MIDI regions on a track, I'm talking about what happens to that MIDI before it gets to the track and when it leaves the track. In fact you can't even record MIDI without the say so of the Environment.
Every Logic user will treat the Environment differently, and every user will have a unique default Environment depending on their needs and studio setup. You can happily start using Logic on a basic level without ever having to know anything about the Environment or even ever going there. To really understand the Environment though we need to understand the concept of 'Objects' and how they relate to tracks.
Objects and Tracks
Logic is fundamentally an 'Object' oriented program. When you create a track in the Arrange page you're actually first creating an Environment 'Object' and then assigning it to that track. This is key to understanding the connection between the 'Arrange' page and the 'Environment'. The most glaring example of this is the 'Reassign Track Object' menu which is found by control-clicking over a track name.
Tracks are merely shells for the objects you assign them. What you record on that track will be defined by the Object you assign it. For instance, if you create a Software Instrument track and record some MIDI on it, those MIDI track regions can then be reassigned or fed to any other Object capable of processing MIDI without having to copy or move the regions or create another track. This makes trying out different sound sources very easy, especially external synths. The only rule is that Audio Tracks can't play MIDI notes and MIDI tracks can't play audio.
There are two kinds of Objects that can be created in Logic. These are Channel Strip Objects like Audio, Software Instrument, Auxiliary and Output channel strips and MIDI objects.
Logic will handle the creation of most audio objects in the Environment automatically for you from the Arrange window. This wasn't always the case. In previous versions of Logic you were required to create all your audio based objects first in the Environment before using them in the Arrange window.
Various 'Channel Strip' Objects
One thing to bear in mind is that you can't manipulate the signal flow of audio in the Environment any more so than you can in the Mixer in the Arrange window (it has no special powers when it comes to audio signal flow) although you can set up more complex audio configurations like live input channels and Rewire setups. Some people ask why you'd want to use the Environment when you have the mixer. The mixer is merely a simplified view of your Environment setup. It doesn't give you access to any of the MIDI routing options in the Environment and when it comes to MIDI signal flow, this is where the Environment excels.
There are a number of MIDI objects in the Environment ranging from Arpeggiators and MIDI faders to more advanced processing tools like the Transformer object. Below are some of these objects.
Various 'MIDI' Objects
You can pass MIDI to and from any object in the Environment regardless of whether it's MIDI based or audio based and this is the real power of Logic's Environment. But first you need an incoming MIDI signal.
The Physical Input
The Physical input is the most important MIDI object in the Environment as it is Logic's link to the outside world. It picks up anything connected to your Mac that is capable of transmitting a MIDI signal into Logic. This includes USB MIDI controller keyboards, MIDI interfaces and physical MIDI ports on Firewire/USB audio interfaces.
It will reflect your configuration in 'Audio MIDI Setup' which is found in Applications > Utilities.
All the available input devices are routed to the 'SUM' output. From there we pass the MIDI to the Sequencer Input which is the doorway to Logic's MIDI sequencing engine. Logic makes this connection by default in every new project so unless you delete it you're good to go. Any MIDI object assigned to a track is connected to the Sequencer Input when the track is armed, allowing you to record Record MIDI from your controller hardware.
Logic's default 'Clicks and Ports' Environment layer.
Cables and Layers
Objects in the Environment are connected using cables. Cables only allow the flow of MIDI data, not audio data. Every object has a connector in the top right corner.
There is another application that that uses the concept of cabling, and that's Reason. You can think of Reason's 'Tab' view as the equivalent of Logic's Environment if it helps. The only difference being that Reason exploits the audio signal path with cables too. Although the concept is similar (the Environment predates Reason's 'Tab' view by about 8 years) it is no match for Logic when it comes to manipulating MIDI, but still very powerful and lots of fun.
Reason's 'Tab' view. It's a bit like Logic's Environment.
There are two ways to make a cable connection between objects. The first is to simply click on the connector and drag it to the destination object. Notice how Logic automatically adds a new output connector, allowing objects to be routed to multiple (unlimited) destinations.
The second way is to Option+click the port and select the destination from the drop down menu. This menu shows you all of your Environment layers which means this is a great way to link objects between layers.
Notice this menu is the same as the one used in the Arrange window when reassigning track objects.
Layers are a great way to organize and group objects in the Environment. You can create as many layers as you like by going to the layers menu dropdown and choosing 'create'.
Ports are the key to getting MIDI out of Logic and into your physical studio. Ports available will be defined by your configuration in 'Audio MIDI Setup' just like those you find on the Physical Input. By default both Instrument and Multi Instrument objects are assigned to 'All' ports as they are mainly used in conjunction with external hardware synths. You can tell if an object is routed to an external port as its connector socket will be solid white.
To change the port, select the desired one from the 'Port' menu dropdown in the channel parameters. Be sure to set the right MIDI channel for the device you're sending to.
Environments can be exchanged between projects by importing them from one project to another. This is very handy if you're remixing another person's existing Logic project. They might have a completely different setup to you and instead of recreating your MIDI hardware setup by hand in their project you can import your whole default Environment or just a single layer into the project instead.
This is where the concept of organizing your Environment into layers really pays off. Keep all your externally routed Instruments and Multi Instruments on one layer, preferably the 'MIDI Inst' layer that is default in all new projects — this can save you lots of time.
To import an Environment or just a layer go to Options > Import Environment from inside the Environment window. When importing a layer Logic will bring up the finder and ask you to select a project. When this is done you will be asked to select the layer from a drop down. The layer will then be added to your current project.
Saving an Environment as a Template
Saving a good user template is essential with Logic. Your Environment will vary depending on your MIDI outboard setup. A basic setup will only require a simple default environment. A large MIDI hardware rig will need a more complex and considered environment. Once you have decided what you'll need at the start of every project save it as a template. A lot of the complaints about the Environment come with having to create the objects and cable them, so just creating everything you need in a template will speed up your work flow.
My Default 'Mixer' Layer
Just go to Save as Template in the file menu.
When you select 'New' from the file menu, your template will be there in 'My Templates'.
Tips & Tricks
Set up a screenset
Is opening the Environment getting you down? Well, set up a screenset for it. Just assign the window to a number on your keyboard. Easy!
Screensets save time, and the Environment!
Objects will only show up in the 'Reassign Track Object' list when Option+clicking a connector socket if its icon check box is checked. Some objects will not have this enabled by default so watch out for this one!
Name your objects
Naming your objects is good practice as it can get confusing when you have a lot of similar types of objects.
Which one was it again?
The MIDI Thru tool
Pressing the Esc key will bring up a tool menu in the Environment. Select the 'MIDI Thru' tool and click an object. The selected object is then assigned to the currently selected track in the Arrange window.
Float the Environment
You can configure the Environment as a floating window by control-clicking anywhere on an empty space and selecting 'Frameless Floating Window'.
A lot of Logic users moan about the Environment and say it's too complex, but its modular approach is what makes it so flexible and powerful. I know people who have been using Logic for years and still can't get on with it. Saving a good Environment and Arrange template can save you a lot of time and make Logic easier to work with.
So there really is no reason to be scared of the Environment and the only learning curve comes from understanding what all the objects do. The manual is pretty helpful at explaining these, so have a look. The screencast will show you a practical use for it and the only limitation is your imagination at the end of the day. Unfortunately I can't cover every aspect of it as it would take forever.
I hope this has shed some light on the subject and the screencast example has sparked your imagination with some of the different possibilities the Environment opens up. If you have any questions or feedback, just leave a comment. Don't delay and jump in. You know it's good to be Environmentally friendly!
- Logic Pro Source Files