Racks provide the ability to group together a set of objects into a self-contained "black box" that works as a standalone unit.
For example you could put an instrument plugin connected to a set of effect plugins into a rack. That rack would then appear in the parent song as a single self-contained slot wrapping all the plugins and their wiring.
Inserting a Rack
To add a rack to a song, click the Add Object button and choose one of following commands:
- Embedded Rack - inserts a new empty Embedded Rack
- Embedded Rack (from file) - inserts an Embedded Rack and initializes it with the contents of a saved rack file
- New Linked Rack - creates a new linked rack (will prompt for the name the rack should be saved as)
- Existing Linked Rack - select an existing rack file to be inserted as a linked rack
(See below for details on Linked vs Embedded racks)
Editing a Rack
To edit the contents of a rack, simply double click its name in the parent song file (or select it and press Enter).
When editing a rack, Cantabile's main window splits and shows the rack's content in the lower half:
Editing the contents of a racks is identical to working with a song. Insert plugins, connect them using routes, setup bindings etc... exactly as you would for a song.
To close the rack click the "eject" button:
Racks support a set of audio and MIDI ports that can be used to create route connections between racks. By default, each rack has the following ports:
- MIDI In
- MIDI Out
- Stereo In
- Stereo Out
Externally to the rack you connect your song and rack files by creating routes between the song and the racks ports. Internally you connect a racks ports to plugins and other objects in the rack.
For example, here's how a song with a single rack containing an instrument and an effect might be wired up.
Internally to the rack:
- The rack's MIDI In port is connected to the instrument
- The instrument is connected to the effect
- The effect is connected to the rack's Stereo Out port
Externally, in the song:
- The Main Keyboard environment port is connected to the rack's MIDI In
- The Rack's Stereo Out is connected to the Main Speakers environment port.
Although each rack has a default set of input and output ports, you can create your own port configurations by:
- Right clicking on the port slot in the parent song file and selecting "Rack Audio Ports" or "Rack MIDI Ports"
- With the rack open for editing, right click on the Input Ports or Output Ports slot and choosing from the same two commands.
The Background Rack
Aside from racks that you explicitly load into a song there is one special rack called the "Background Rack" that is typically used for bindings that need to work across all songs but can also be used to load plugins, media players or triggers that you need available in all sessions.
To access the background rack, from the View menu choose "Background Rack".
Changes to the background rack are always saved automatically when the Cantabile is closed.
Linked vs Embedded Racks
Racks can either Embedded or Linked:
- Embedded Racks are saved as part of the parent song and can't be shared across songs (although they can be exported and re-imported into other songs)
- Linked Racks are saved in a separate .cantabileRack file and can be shared across multiple songs. They provide the ability to share plugin instances across multiple songs making song switching faster.
Linked racks are only supported in Cantabile Performer.
Racks vs Songs
Racks and songs are very similar and working with a rack is almost identical to editing a song.
Songs and racks both support:
- Routing - a set of plugins, media players and nested embedded racks and the routes that connect them together.
- Bindings - assignments that automatically connect objects settings and MIDI devices.
Songs provide the same functionality as racks, but add:
- Tempo and Time signature settings
- A Global transpose setting - Cantabile Performer Only.
- Ability to load linked racks
Note that only songs can load linked racks. Racks can have embedded racks but can't load linked racks.
A song is the primary file you work with at any one time in Cantabile and only one can be loaded at a time.
Song and Linked Rack Lifetimes
The "lifetime" of songs and racks is handled differently.
When switching songs the song and all routes between the song and it's loaded racks are immediately closed and any held notes released. Embedded racks are closed when the parent song is closed.
Linked racks only closed when the current song no longer refers to them. If you switch between two songs that use the same rack, that rack will be kept loaded and continue to process uninterrupted.
Song and Rack Pre-loading
You can instruct Cantabile to pre-load all songs and racks in a set list in order to improve song switching times. See Set Lists.
Song and Rack States (Cantabile Performer Only)
In Cantabile Performer, both songs and racks support States however they're typically used for different purposes:
In racks, states are typically used to switch between different sounds where each state works similarly to a plugin preset and is selectable from the parent song's just like a plugin preset
For songs, states are typically used to represent the parts of a song (eg: intro, chorus, verse).
The terms "Song State" and "Song Part" are used interchangably in Cantabile.
Per-Song Rack Settings (Cantabile Performer Only)
When editing the state behavior of objects in a rack you can indicate that the setting should be stored on a per-song basis. This allows for control over a rack's settings on a per-song basis without having to create states for every possible combination. See States for more information.