Exchanging Environments

One of the main advantages of the Environment is the ability to customize Logic Express to fully control your MIDI studio. This can, however, present a problem when sharing projects with other musicians, or using different studio setups.

It also presents a problem when you return to older projects after you’ve changed your studio. Logic Express offers several functions to make these transitions as easy as possible.

Whenever you want to exchange Environments between projects, there is a source project containing the desired Environment, and a destination project with an Environment that you want to change.

The destination Environment must be in memory, and must be the active project (one of its windows must be active). The source project can also be in memory, or it can be a file on your hard disk (or any other media).

Importing Single Purpose Environments

A single purpose Environment patch might be an editor for a specific piece of MIDI equipment, an Environment for a single MIDI processing task (such as a MIDI LFO), or a complex arpeggiator/delay line configuration.

To import an Environment patch contained on a single layer
  1. Choose Options > Import Environment > Layer.

  2. Choose a layer in the dialog that appears.

This layer—inclusive of all objects on the layer—is inserted in the destination project, at the same layer position (the same place in the Layer pop-up menu) that it occupied in the source project. Any existing layers are shifted as needed.

You can also move selections of Environment objects (inclusive of cabling) between projects by dragging or copy and pasting. This is made even simpler by first combining the objects into a macro.

To import an Environment patch that is spread across several Environment layers
  • Choose Options > Import Environment > Merge.

All Environment objects from the source project are added to the Environment of the destination project.

Merged objects are placed on the same layer as their source. This can create a mess if objects already occupy that layer in the destination project.

To avoid this issue, create blank layers (in the destination project) at the same layer positions of the source project, before importing.

Something to be careful of in both cases is the treatment of unique objects in the Environment, including the Physical Input and Sequencer Input objects. If imported, they will replace their counterparts in the destination Environment and any cables leading into them will be lost.

It is best to temporarily delete these from the source Environment, before importing.

Another thing to be aware of is that when you import an object, all objects cabled from the imported object are also imported.

Updating an Older Environment

If you have only added things to the Environment, but not deleted anything, you can update older projects by choosing Options > Import Environment > Update.

Only the new objects will be imported—the older objects (along with their cabling and track assignments) will remain in place.

Swapping Environments

In the complex situation where you want to swap the Environment of one MIDI setup with the Environment of another, Logic Express offers three options:

  • Replace by Port MIDI/Channel: This option replaces all objects in the destination project with objects that address the same port and MIDI channel in the source project.
  • Replace by Name: This option replaces all objects in the destination project with objects of the same name in the source project. This affords you some degree of control, by renaming objects in the source project accordingly.
  • Total Replace: This completely replaces the destination project’s Environment with the source project’s Environment. If you use this option, you’ll have plenty of work to do, including reassigning Arrange window tracks to objects, but sometimes it’s the only way.

Note: This complex task involves a lot of guesswork on the part of Logic Express, and the results almost always require some manual fine-tuning on your part.

Replacing Environments by Assignment

The most flexible (and most time consuming) method of exchanging Environments is to manually choose whether each Environment object is kept, deleted, or replaced. If you choose to replace an object, you must also define the replacement object. This method is accessed via Options > Import Environment > Custom.

When you choose custom import, an Environment window listing all objects in the destination Environment is shown in a column on the left, and the chosen action for each object is shown in a column on the right.

You can assign the replacements one at a time, by clicking items in the list on the right and choosing the replacement object from a pop-up menu. This pop-up menu includes all objects in the track list of the source project.

Alternately, you can select one or more rows in the list, and make a choice from the Import menu. In addition to keep and delete, this menu offers several automated selection techniques, as described below.

The first Import menu option is “Import Environment using current Assignment.” No importing can take place until you make this selection. The other choices (including the pop-up menus in the right column) determine how things will be imported.

Import Options

The last two items in the Import menu provide additional options for the import process:

  • Import > Copy Layer Names: The layer names of the source (second) Environment are transferred to the current one.
  • Import > Copy selected Objects from 2nd Environment: All objects selected in the source Environment are copied into the destination Environment, even if they don’t appear on the assignment list.

Automatic Assignment Functions

The assignment functions described below are immediately applied to all selected rows in the import list. The assignments appear in the right column, and all rows are then deselected.

  • Import > Assign as ‘Keep’: These objects are unaltered.
  • Import > Assign as ‘Delete’: These objects are deleted.
  • Import > Assign by Identical: These objects are assigned to objects from the source project that match the type, icon, name, port, and MIDI channel. Objects with the same Unique ID have priority.

Logic Express maintains an internal list of all Environment objects. An object’s position in the list is its Unique ID; as long as the object is not deleted, its Unique ID never changes.

When objects are deleted, their position in this list becomes available for a new object.

Whenever an object is added to the Environment, it is placed in the first available position on the list. (If there are no empty positions, it is added to the end of the list.)

  • Import > Assign by Unique ID: Objects are assigned to objects from the source project with the same Unique ID. This option is useful for updating an Environment when objects have only been added.
  • Import > Assign by Port/MIDI Channel: Objects are replaced by objects with the same Port/MIDI channel. If a match can’t be found for an object, an object set to Port 0 and the same MIDI channel is assigned. If a match still can’t be found, an object with the same MIDI channel is assigned.
  • Import > Assign by Name: Objects are replaced by objects with the most similar name. (At least 80 percent of the name must be the same.)
  • Import > Assign by Icon/Name: As above, except the object icons must also match.