Always-Available Rehearsal Piano

Thursday, August 4, 2016 14:21

When you record in Logic your singer or instrumentalist on an Audio Track and want to quickly play him or her the melody on your MIDI keyboard (for the 10th time!), you have to select or record-enable an Instrument Track and switch back the selection before hitting the Record Button.

In this article, I show how to setup an always-available "Rehearsal Piano" in your Logic Project (download link for pre-configured Logic Project Files at the end of the article).

The Problem

Having an Instrument Track with a simple piano patch in your Project is very handy. It is like a Rehearsal Piano next to you that is always available when needed. You can use it to noodle around when developing melodies, chord progressions, or rehearsing a melody with an artist before you record that singer or instrumentalist. At any time, you select that dedicated Instrument Track in your Project and play on your external MIDI Keyboard via the MIDI-thru feature in Logic.

Recording Session

During a recording session, when you have the artist in front of the microphone and the Audio Track(s) record-enabled, you might want to quickly play your MIDI Keyboard using that Rehearsal Piano, for example:

  • Play a specific note for the backup singer who creates the harmony part
  • Play a phrase again for the artist to remember
  • Play an alternate phrase or melody for the artist to try
  • Rehearse a phrase with the artist while staying in the recording booth
  • You even might want to play along (live) while recording the artist to feed that piano signal to his or her headphones

Arm the Track

Logic has a special way how to record-enable a Track ("arm" the Track):

  • Select: A Track is automatically record-enabled when you select it. You don''t have to specifically click on the Record-Enable Button. This is a convenient little feature when you only record one Track at a time.
  • Record-Enable: You can use the dedicated Record-Enable Button in Logic when you record more than one Track at a time.

Select / Deselect / Record-enable

However, the convenience with this "record-enable by Track-selection" feature is kind of in the way when you want to use an Instrument Track as your "Rehearsal Piano". Here is why:

  • Selecting the Audio Track you want to record on will deselect the Instrument Track that you use as the Rehearsal Piano. That means, you cannot hear the piano at that moment anymore.
  • Selecting the Instrument Track (so you can hear the Rehearsal Piano) will deselect the Audio Track, and you have to enable the Input Monitoring Button (to hear the audio), but still have to re-select the Audio Track again before hitting the Record Button.
  • Using the Record-Enable Buttons instead to arm the Audio Track and the Instrument Track has a different problem. Now you will also record (unwanted) MIDI Regions on the Instrument Track (in addition to your Audio Track) when you play your MIDI Keyboard during recording mode.

So no matter what, the idea of the Rehearsal Piano in Logic doesn''t work that well, unless you use the following solution.

The Solution

You can make the concept of a Rehearsal Piano work by using a little modification in Logic''s Environment Window that you can apply to your Template, so it is available in any new Project.


Here is the basic concept:

  • The Environment Window in Logic has an object called "Physical Input"  that represents all the MIDI Devices available on your computer, including your MIDI Keyboard ➋.
  • By default, that Physical Input object is cabled (connected) to another object, called the "Sequencer Input" , which represents the Tracks Window in Logic, with all the available Tracks in your Project.
  • Selecting a specific Track in the Tracks Window routes the Physical Input Signal (your MIDI Keyboard ➋) to that Track.
  • All the Tracks in the Tracks Window are (usually) assigned to individual Channel Strips ➍ in the Mixer Window.
  • You load the Piano Patch ➎ that you use as your Rehearsal Piano on one of the Channel Strips (assigned to one of those Tracks). But as we have seen, only if you select that Track in the Tracks Window will you be able to play (hear) that piano using the MIDI-thru feature.


To understand the required modification to make the Rehearsal Piano concept work, you have to be aware of one of the most fundamental concepts in Logic.

Logic makes that Track-ChannelStrip assignment by default so you might not be aware of that (unless you read my manual "Logic Pro X - How it Works" where I explain that in great detail).

Now here is the Trick:

  • You create a Channel Strip in the Environment that has the piano patch loaded ➎ to function as your Rehearsal Piano.
  • You route the incoming MIDI Signal, coming from the Physical Input ➊ (and therefore from your MIDI Keyboard ➋) directly ➏ to that Channel Strip ➎.
  • That Channel Strip doesn''t have to be assigned to any Track ➌. It is always receiving the incoming MIDI Signal ➏ (without the need to select a Track).
  • You use the Mute Button ➐ on that Channel Strip to turn your Rehearsal Piano on/off. As an advanced setup, you can create a remote switch ➑ in the Environment that lets you control the Mute Button ➐ from your MIDI Keyboard ➋.
  • Keep in mind that the MIDI Signal from the Physical Input is still going parallel ➒ (at the same time) to the Sequencer Input to the selected Track(s) ➌ in your Tracks Window.

If you are familiar with Logic''s Environment, then you have all the information to setup that configuration in the Environment window. If you need a little bit help with that, here are the individual steps.


In this section, I explain the basic preparation. After that, I provide three solutions, from easy to more advanced. There is a download link at the end of this article with Logic Projects that have their Environment Window pre-configured with those three solutions.

This is what you do in a new Project:

  • Create two Instrument Tracks, name the second one "Rehearsal Piano" and load on that one the "Vintage Piano" Instrument Plugin (or any other piano patch you like).
  • Open the Environment Window (cmd+0) and choose the Mixer Layer ➊ from the upper-left corner to display it in the Environment Window.
  • Select the Rehearsal Piano Channel Strip click on the Channel Selector ➌ in the Inspector on the left and choose from the popup menu Inst ➤ Inst 255 ➍ (which is an optional step, more "cosmetic").
  • While the Channel Strip ➋ is still selected, hold down the option key, click on the Layer Selector ➊ and choose "Click & Ports" ➎ from the popup menu. This moves the Rehearsal Piano Channel Strip to that Layer.
  • The Environment automatically switches to the "Click & Ports" ➏ Layer, looking a little bit messy.

Solution 1 - easy

This is how the Environment Window looks like after I "cleaned it up" a bit.

  • You see the Physical Input object  on the left with one MIDI Device, "USB 02", representing my MIDI Keyboard ➋.
  • The Input Notes object  and Input View object  are just monitor objects to see what MIDI Events are coming from the MIDI Keyboard ➋.
  • Per default, the output of the Input View object  is cabled into the Sequencer Input object ➎.
  • Here is the only additional cabling you have to do. Drag the second output (the triangle)  from the Input View object  to the Channel Strip ➐ to create a new MIDI connection.

Now, the MIDI signal from your MIDI Keyboard ➋ goes into two directions, to the selected Track ➎ in your Logic Tracks Window, and at the same time (always), to the Channel Strip "Rehearsal Piano" .You can select any Audio Track in your Tracks Window, or press record and the Rehearsal Piano track is always "available" without being recorded.

Solution 2 - intermediate

Solution 1 has the disadvantage that you have to mute the Rehearsal Piano Channel Strip manually in the open Environment Window. You could make a frameless window and minimize it or assign a Track to the Channel Strip and control it in the Mixer. This Solution 2 is a bit more elegant by controlling the Mute Button of that Channel Strip externally by pushing a button on your MIDI Keyboard.

External Mute Button

You have to do the following modification in the Environment Window:

  • From the Local Menu  select New ➤ Fader ➤ Button 6 which creates an On/Off Button object ➋.
  • Cable that Button object between the Input View  and the Channel Strip ➍.
  • Select the Button object  so you can configure its parameters in the Inspector on the left : "Output: Fader", "Channel: 1", "-1-: 9". These are the Fader Event parameters to toggle the Mute Button ➏ on the Channel Strip. You can also click on the Button object ➋ to toggle the Mute Button ➏.
  • The Input section ➐ on the Inspector lets you configure which external MIDI Event can toggle the Button object remotely. In this example, I use a button on my external MIDI Keyboard  that sends value 0 and 1 for CC#18 on MIDI Channel 1 to turn the Button object  in the Environment on/off.

This is an elegant solution, because, whenever you want to use the Rehearsal Piano, you just press the button on your MIDI Keyboard ➑ that you have assigned to, and un-mute the Rehearsal Piano Channel Strip (without mousing around in Logic).

When you don''t need the Rehearsal Piano, just press the button on your MIDI Keyboard to mute the Rehearsal Piano. Your MIDI Keyboard is still routed (parallel) to the Sequencer Input object ➒, your Tracks Window, so you can record any other MIDI Tracks as usual.

Solution 3 - advanced

With this solution, you also use a Button object in your Environment that you control remotely from a button on your MIDI Keyboard. But this time, the Button object switches the routing of the MIDI signal by controlling a special Routing Switch object.

  • From the Local Menu select New ➤ Fader ➤ Auto, which creates an Auto Style object ➊.
  • Click on that object to select it and set its parameters in the Inspector as follows ➋: "Output: Meta", "Channel: 1", and "-1-: 48 = Switch Fader". This creates the special Routing Switch object that lets you switch its incoming MIDI signal to one of its MIDI outputs.
  • Cable the output of the Button object  to the Switch object ➊ and cable its first output to the Sequencer Input ➍, and its second output to the Channel Strip ➎.
  • In this example, I set the Input parameters ➏ of the Switch object to "Input: Control", "-1-: 19", "Range: 0 1". These are the MIDI Events that are sent out from the Button object ➌.
  • As I just mentioned, the output settings of the Button object ➌ must match the input settings of the Switch object ➊. The input setting of the Button object ➌ itself is the same as in solution 2. It has to match the MIDI signal coming from the button on your external MIDI Keyboard ➐.

You can further optimize this configuration by putting the Button object on its own Layer and set it up as a frameless window that you can minimize and put at the corner of your computer screen. This way you always have a visual feedback where the MIDI signal is sent to.

Adding a Text object ➑ even lets you enter specific text messages  ("Rehearsal off") that are displayed on your screen depending on the status of the button or switch.


As you can see, the Environment is an amazing tool in Logic that lets you customize your setup with an extreme amount of flexibility. This is something that sets Logic apart from all the other DAWs on the market.

If you are starting to ge curious and want to learn more about the Environment to create your own customized solutions (from simple to more complex), check out my book "Logic Pro X - The Details", that includes a 90-pages in-depth explanation of Logic''s Environment with lots of unique graphics and diagrams that makes it easy to understand.

Here is the link to the page on my website where you can download four Projects that have their Environment pre-configured based on those solutions I explained. You can copy those Environment objects to your own Project and tweak them for your individual setup and own personal workflow. Have fun.


Graphically Enhanced Manuals

I hope you found this tutorial useful. If you are interested in learning more about Logic Pro X, check out my books "Logic Pro X - How it Works", "Logic Pro X - The Details", "Logic Pro X - Tips, Tricks, Secrets #1", and "Logic Pro X - Tips, Tricks, Secrets #2". They are available as pdf, printed books on Amazon and interactive multi-touch iBooks on Apple''s iBooks Store.

For a list of all my books in my "Graphically Enhanced Manuals (GEM)" series and all the links, go to my website.



Thanks for your time and interest,

Edgar Rothermich