--- title: Introduction to Ardour part: part --- --- title: Welcome to Ardour part: chapter --- --- title: About Ardour's documentation part: subchapter ---

Conventions Used In This Manual

This section covers some of the typographical and language conventions used in this manual.

Keyboards and Modifiers

Keyboard bindings are shown like this: s or x.

x means "press the   key, keep it pressed and then also press the x key.

You may also see key combinations such as e, which mean that you should hold down the   key and the   key, and then, while keeping them both down, press the e key.

Note that different platforms have different conventions for which modifier key (Control or Command) to use as the primary or most common modifier. When viewing this manual from a machine identifying itself as running OS X, you will see Cmd  where appropriate (for instance in the first example above). On other machines you will see Ctrl  instead.

Mouse Buttons

We refer to mouse buttons as Left, Middle and Right. Ardour can use additional buttons, but they have no default behaviour in the program.

Mouse click modifiers

Many editing functions are performed by clicking the mouse while holding a modifier key, for example Left.

Mouse wheel

Some GUI elements can optionally be controlled with the mouse wheel when the pointer is hovering over them. The notation for mouse wheel action is .

Context-click

The term context-click is used to indicate that you should (typically) Right-click on a particular element of the graphical user interface. Although right-click is the common, default way to do this, there are other ways to accomplish the same thing—this term refers to any of them, and the result is always that a menu specific to the item you clicked on will be displayed.

"The Pointer"

When the manual refers to the "pointer", it means the on-screen representation of the mouse position or the location of a touch action if you are using a touch interface.

Other user input

Ardour supports hardware controllers, such as banks of faders, knobs, or buttons.

Menu Items

Menu items are indicated like this:
Top > Next > Deeper.
Each ">"-separated item indicates one level of a nested (sub-)menu.

Preference/Dialog Options

Choices in various dialogs, notably the Preferences and Properties dialog, are indicated like this:
Edit > Preferences > Audio > Some Option.
Each successive item indicates either a (sub-) menu or a tabbed dialog navigation. The final item is the one to choose or select.

If you are requested to deselect an option, you will see something like this:
Edit > Preferences > Audio > Some other Option.

User Input

Some dialogs or features may require you to type in some data such as this. In rare cases, you will be required to perform certain operations at the command line of your operating system:

cat /proc/cpuinfo sleep 3600 ping www.google.com

Program Output

Important messages from Ardour or other programs will be displayed like this.

Notes

Important notes about things that might not otherwise be obvious are shown in this format.

Warnings

Hairy issues that might cause things to go wrong, lose data, impair sound quality, or eat your proverbial goldfish, are displayed in this way.

--- title: Welcome to Ardour! part: subchapter ---

Ardour is a professional digital workstation for working with audio and MIDI.

Ardour is meant for...

Audio Engineers

Ardour's core user group: people who want to record, edit, mix and master audio and MIDI projects. When you need complete control over your tools, when the limitations of other designs get in the way, when you plan to spend hours or days working on a session, Ardour is there to make things work the way you want them to.

Musicians

Being the best tool to record talented performers on actual instruments has always been a top priority for Ardour. Rather than being focused on electronic and pop music idioms, Ardour steps out of the way to encourage the creative process to remain where it always has been: a musician playing a carefully designed and well built instrument.

Soundtrack Editors

Sample accurate sync and shared transport control with video playback tools allows Ardour to provide a fast and natural environment for creating and editing soundtracks for film and video projects.

Composers

Arrange audio and MIDI using the same tools and same workflow. Use external hardware synthesizers or software instruments as sound sources. From sound design to electro-acoustic composition to dense multitrack MIDI editing, Ardour can help.

Ardour features...

Audio and MIDI Multi-Track Recording and Editing

Any number of tracks and busses. Non-linear editing. Non-destructive (and destructive!) recording. Any bit depth, any sample rate. Dozens of file formats.

Plugins with Full Sample Accurate Automation

AudioUnit, LV2, LinuxVST and LADSPA formats. FX plugins. Software instruments. MIDI processors. Automate any parameters. Physically manipulate them via control surfaces. Distribute processing across as many (or as few) cores as you want.

Transport Sync and External Control Surfaces

Best-in-industry sync to MIDI timecode and LTC. Send and receive MIDI Machine Control. Sync with JACK transport and MIDI clock. Dedicated Mackie Control protocol support, pre-defined mappings for many MIDI controllers plus dynamic MIDI learn. Use OSC to drive almost any operation in Ardour.

Powerful Anywhere-to-Anywhere Signal Routing

Complex signal flows are simple and elegant. Inputs and outputs connect to your hardware and/or other applications. Use sends, inserts and returns freely. Connections can be one-to-many, many-to-one or many-to-many. Tap signal flows at any point. If you can't connect in the way you want with Ardour, it probably can't be done.

Video Timeline

Import a single video and optionally extract the soundtrack from it. Display a frame-by-frame (thumbnail) timeline of the video. Use a Video-monitor window, or full-screen display, of the imported video in sync with any of the available ardour timecode sources. Lock audio-regions to the video: Move audio-regions with the video at video-frame granularity. Export the video, cut start/end, add blank frames and/or mux it with the soundtrack of the current-session.

--- title: About Ardour part: subchapter ---

Ardour allows recording and editing both audio and MIDI data, addin of many different kinds of effects and mixing.

Some things Ardour is used for include:

--- title: Isn't This A Really Complicated Program? part: subchapter ---

There is no point in pretending that Ardour is a simple, easy to use program. The development group has worked hard to try to make simple things reasonably easy, common tasks quick, and hard and/or uncommon things possible. There is no doubt that there is more to do in this area, as well as polishing the user interface to improve its intuitiveness and work flow characteristics.

At the same time, multi-track, multi-channel, non-linear, non-destructive audio editing is a far from simple process. Doing it right requires not only a good ear, but a solid appreciation of basic audio concepts and a robust mental model/metaphor of what one is doing. Ardour is not a simple "audio recorder"—it can certainly be used to record stereo (or even mono) material in a single track, but the program has been designed around much richer capabilities than this.

Some people complain that Ardour is not "intuitive" to use—its lead developer has some thoughts on that.

--- title: Why Write a DAW for Linux? part: subchapter ---

It is fairly understandable that existing proprietary DAWs do not run on Linux, given the rather small (but growing) share of the desktop market that Linux has. However, when surveying the landscape of "popular operating systems", we find:

Security matters today, and will matter more in the future as more and more live or semi-live network based collaborations take place.

Let's contrast this with Linux, an operating system which:

More than anything, however, Ardour's primary author uses Linux and wanted a DAW that ran there.

Having written a DAW for Linux, it turned out to be relatively easy to port Ardour to OS X, mostly because of the excellent work done by the JACK OS X group that ported JACK to OS X.

Although OS X has a number of disadvantages compared to Linux, its ease of use and its presence in many studios already makes it a worthwhile platform.

--- title: Why is it called Ardour? part: subchapter ---

The name "Ardour" came from considerations of how to pronounce the acronym HDR. The most obvious attempt sounds like a vowelless "harder" and it then was then a short step to an unrelated but slightly homophonic word:

ardour n 1: a feeling of strong eagerness (usually in favor of a person or cause); "they were imbued with a revolutionary ardor"; "he felt a kind of religious zeal" [syn: ardor, elan, zeal]
2: intense feeling of love [syn: ardor]
3: feelings of great warmth and intensity; "he spoke with great ardor" [syn: ardor, fervor, fervour, fervency, fire, fervidness]

Given the work required to develop Ardour, and the personality of its primary author, the name seemed appropriate even without the vague relationship to HDR.

Years later, another interpretation of "Ardour" appeared, this time based on listening to non-native English speakers attempt to pronounce the word. Rather than "Ardour", it became "Our DAW", which seemed poetically fitting for a Digital Audio Workstation whose source code and design belongs to a group of collaborators.

--- title: Why write another DAW? part: subchapter ---

There are already a number of excellent digital audio workstations. To mention just a few: ProTools, Nuendo, Samplitude, Digital Performer, Logic, Cubase (SX), Sonar, along with several less well known systems such as SADIE, SAWStudio and others.

Each of these programs has its strengths and weaknesses, although over the last few years most of them have converged on a very similar set of core features. However, each of them suffers from two problems when seen from the perspective of Ardour's development group:

--- title: Additional Resources part: subchapter ---

In addition to this documentation, you may check a variety of other resources:

The IRC channels in particular are where most of the day-to-day development and debugging is done, and there are plenty of experienced users to help you if you run into problems.

Please be prepared to hang around for a few hours, the chat is usually busiest from 19:00 UTC to 04:00 UTC. If you can, keep your chat window open, so that you don't miss a belated answer. Also, don't ask for permission to ask a question, just ask your question with the understanding that the answer (from the "right" people or not) could come seconds, minutes, hours, or never.

--- title: Creating Music with Ardour part: subchapter ---

misplaced

Ardour can be used in many different ways, from extremely simple to extremely complex. Many projects will be handled using the following kind of workflow.

Stage 1: Creating Your Project

The first step is to create a new session, or open an existing one. A session consists of a folder containing a session file that defines all the information about the session. All media files used by the session can be stored within the session folder.

More details on sessions can be found in Working With Sessions.

Stage 2: Creating and Importing Audio and MIDI data

Once you have a session, you will want to add some audio and/or MIDI material to it, which can be done in one of 3 ways:

MIDI recordings consist of performance data ("play note X at time T") rather than actual sound. As a result, they are more flexible than actual audio, since the precise sound that they will generate when played depends on where you send the MIDI to.
Two different synthesizers may produce very different sound in response to the same incoming MIDI data.

Audio recordings can be made from external instruments with electrical outputs (keyboards, guitars etc.) or via microphones from acoustic instruments.

Ardour uses the JACK Audio Connection Kit for all audio and MIDI I/O, which means that recording audio/MIDI from other applications is fundamentally identical to recording audio/MIDI from your audio/MIDI hardware.

Stage 3: Editing and Arranging

Once you have some material within the session, you can start to arrange it in time. This is done in one of the two main windows of Ardour, the Editor window.

Your audio/MIDI data appears in chunks called regions, which are arranged into horizontal lanes called tracks. Tracks are stacked vertically in the Editor window. You can copy, shorten, move, and delete regions without changing the actual data stored in the session at all—Ardour is a non-destructive editor. (Almost) nothing that you do while editing will ever modify the files stored on disk (except the session file itself).

You can also carry out many transformations to the contents of regions, again without altering anything on disk. You can alter, move, and delete MIDI notes, and remove silence from audio regions, for example.

Stage 4: Mixing and Adding Effects

Once you have the arrangement of your session mostly complete, you will typically move on to the mixing phase. Mixing is a broad term to cover the way the audio signals that your session generates during playback and processed and added together into a final result that you actually hear. It can involve altering the relative levels of various parts of the session, adding effects that improve or transform certain elements, and others that bring the sound of the whole session to a new level.

Ardour will allow you to automate changes to any mixing parameters (such as volume, panning, and effects controls)—it will record the changes you make over time, using a mouse or keyboard or some external control device, and can play back those changes later. This is very useful because often the settings you need will vary in one part of a session compared to another—rather than using a single setting for the volume, you may need increases followed by decreases (for example, to track the changing volume of a singer). Using automation can make all of this relatively simple.

Stage 5: Export

Once you are really satisfied with the arrangement and mix of your session, you will typically want to produce a single audio file that contains a ready-to-listen to version of the work. Ardour will allow you to export audio files in a variety of formats (simultaneously in some cases). This exported file would typically be used in creating a CD, or be the basis for digital distribution of the work.

Of course sometimes you will want to do export material that isn't finished yet, for example to give a copy to someone else to try to mix on their own system. Ardour will allow you to export as much of a session as you want, at any time, in any supported format.

--- title: Ardour Concepts part: chapter --- --- title: Understanding Basic Concepts and Terminology part: subchapter ---

This section will help you get acquainted with the basic terminology and concepts associated with Ardour. More detailed information on each aspect of the program is provided in later chapters.

Sessions

An Ardour session is a container for an entire project. A session may contain an arbitrary number of tracks and busses consisting of audio and MIDI data, along with information on processing those tracks, a mix of levels, and everything else related to the project. A session might typically contain a song, or perhaps an entire album or a complete live recording.

Ardour sessions are held in directories; these directories contain one or more session files, some or all of the audio and MIDI data and a number of other state files that Ardour requires. The session file describes the structure of the session, and holds automation data and other details.

Ardour's session file is kept in XML format, which is advantageous as it is somewhat human-readable, and human-editable in a crisis. Sound files are stored in one of a number of optional formats, and MIDI files as SMF.

It is also possible for Ardour sessions to reference sound and MIDI files outside the session directory, to conserve disk space and avoid unnecessary copying if the data is available elsewhere on the disk.

Ardour has a single current session at all times; if Ardour is started without specifying one, it will offer to load or create one.

More details can be found at Working With Sessions.

Tracks

A track is a concept common to most DAWs, and also used in Ardour. Tracks can record audio or MIDI data to disk, and then replay it with processing. They also allow the audio or MIDI data to be edited in a variety of different ways.

In a typical pop production, one might use a track each for the kick drum, another for the snare, more perhaps for the drum overheads and others for bass, guitars and vocals.

Ardour can record to any number of tracks at one time, and then play those tracks back. On playback, a track's recordings may be processed by any number of plugins, panned, and its level altered to achieve a suitable mix.

A track's type is really only related to the type of data that it stores on disk. It is possible, for example, to have a MIDI track with a synthesizer plugin which converts MIDI to audio. Even though the track remains MIDI (in the sense that its on-disk recordings are MIDI), its output may be audio-only.

More details can be found at Working With Tracks.

Busses

Busses are another common concept in both DAWs and hardware mixers. They are similar in many ways to tracks; they process audio or MIDI, and can run processing plugins. The only difference is that their input is obtained from other tracks or busses, rather than from disk.

One might typically use a bus to collect together the outputs of related tracks. Consider, for example, a 3-track recording of a drum-kit; given kick, snare and overhead tracks, it may be helpful to connect the output of each to a bus called "drums", so that the drum-kit's level can be set as a unit, and processing (such as equalisation or compression) can be applied to the mix of all tracks. Such buses are also called groups.

Regions

A track may contain many segments of audio or MIDI. Ardour contains these segments in things called regions, which are self-contained snippets of audio or MIDI data. Any recording pass, for example, generates a region on each track that is enabled for recording. Regions can be subjected to many editing operations; they may be moved around, split, trimmed, copied, and so on.

More details can be found at Working With Regions.

Playlists

The details of what exactly each track should play back is described by a playlist. A playlist is simply a list of regions; each track always has an active playlist, and can have other playlists which can be switched in and out as required.

More details can be found at Working With Playlists.

Plugins

Ardour allows you to process audio and MIDI using any number of plugins. These are external pieces of code, commonly seen as VST plugins on Windows or AU plugins on Mac OS X. Ardour supports the following plugin standards:

LADSPA
the first major plugin standard for Linux. Many LADSPA plugins are available, mostly free and open-source.
LV2
the successor to LADSPA. Lots of plugins have been ported from LADSPA to LV2, and also many new plugins written.
VST
Ardour supports VST plugins that have been compiled for Linux.
AU
Mac OS X versions of Ardour support AudioUnit plugins.

Ardour has some support for running Windows VST plugins on Linux, but this is rather complicated, extremely difficult for the Ardour developers to debug, and generally unreliable, as it requires to run a large amount of Windows code in an emulated environment.
If it is at all possible, you are strongly advised to use native LADSPA, LV2 or Linux VST plugins on Linux, or AU on Mac OS X.

More details can be found at Working With Plugins.

--- title: Basic GUI Operations part: subchapter ---

Ardour offers a number of different ways for you to interact with it. This chapter provides information on basic techniques for entering text, making selections, and using shortcuts.

--- title: Interface Elements part: subchapter ---

Checkboxes

Buttons

Pull Down Menus

Pop Up Menus

Context Menus

Browsers

Add content

--- title: Key Bindings part: subchapter ---

Almost every available function in Ardour can be executed via a key binding or OSC command. There are many more functions available than there are keys on even the largest current computer keyboards, so only a subset of them are bound to keys by default.

Key bindings for menu items

Existing key bindings in menus are listed on the right side of the menu items.

To create a custom key binding for a menu item quickly, navigate to the relevant (sub-) menu, hover over the item with the mouse and press the desired combination of modifiers and key.

Ardour will silently re-assign the binding if you use a key combination that is already in use, possibly removing a standard keyboard shortcut without warning you. That might lead to confusion when you ask other users for help, and they explain something in terms of a standard key binding, which will then have a completely different effect on your system.

Key binding editor

For a complete overview of all existing keyboard bindings, go to Window > Key Bindings. This widget will let you view and edit even those functions that are not available in the menu, and even remove key bindings altogether.

--- title: Selection Techniques part: subchapter ---

Ardour follows the conventions used by most other computer software (including other DAWs) for selecting objects in the GUI.

Selecting individual objects

Clicking on an object (sometimes on a particular part of its on-screen representation) will select the object, and deselect other similar objects.

Selecting multiple (similar) objects

A left click on an object toggles its selected status, so using left on a series of objects will select (or deselect) each one of them. You can construct completely arbitrary selections with this technique.

Selecting a range of objects

In cases where the idea of "select all objects between this one and that one" makes sense, you can select one object and then click left on another to select both of them as well as all objects in between.

Time range selection

To select a time range in the Editor, click Left and drag the mouse. A Left drag then lets you create other ranges and a left click extends a range to cover a wider area.

Selection Undo

The set of objects (including time range) that are selected at any one time is known as the selection. Each time you select or deselect an object, the new selection is stored in an undo/redo stack. This stack is cleared each time the content of the timeline changes. If you have built up a complex selection and then accidentally cleared it, choosing Edit > Undo Selection Change will restore your previous selection. If you then decide that you had in fact made the correct change, choosing Edit > Redo Selection Change will take you back to where you were before you chose Edit > Undo Selection Change.

--- title: Tooltips part: subchapter ---

By default, Ardour will show helpful tooltips about the purpose and use of each GUI element if you position the pointer over it and hover there for a short while. These little pop-up messages can be a good way to discover the purpose of many aspects of the GUI.

Pop-ups can be distracting for experienced users, who may opt to disable them via Edit > Preferences > GUI > Show tooltip if mouse hovers over a control.

--- title: Undo/Redo for Editing part: subchapter ---

While editing, it happens that you apply an unintended change, or make a choice one that you later decide was wrong. All changes to the arrangement of session components (regions, control points) along the timeline can be undone (and redone if necessary).

The default keybindings are Z for Undo and R for Redo. These match the conventions of most other applications that provide undo/redo.

Changes are also saved to the session history file, so that undo/redo is possible even if you close the session and reopen it later, even if you quit Ardour in between.

The maximum number of changes that can be undone can be configured under Edit > Preferences > Misc > Undo. The maximum number of changes stored in the history file is a separate parameter, and can also be set in the same place.

In addition to the normal undo (which works only on actions that change the timeline), there is a visual undo which will revert any command that affects the display of the editor window. Its shortcut is Z. There is also an undo for selection. See Selection Techniques for more information.

Note that changes made to mixer strips, such as turning knobs or changing faders, cannot be undone.

--- title: Using the Mouse part: subchapter ---

Clicking

Throughout this manual, the term click refers to the act of pressing and releasing the Left mouse button. This action is used to select objects, activate buttons, turn choices on and off, pop up menus and so forth.
On touch surfaces, it also corresponds to a single, one-finger tap on the GUI.

Right Clicking

The term right-click refers to the act of pressing and releasing the Right mouse button. This action is used to pop up context menus (hence the term "context click", which you will also see). It is also used by default in combination with the shift key to delete objects within the editor window.

Some mice designed for use with Mac OS X may have only one button. By convention, pressing and holding the Control key while clicking is interpreted as a right-click by many application..

Middle Clicking

A middle-click refers to the act of pressing and releasing the Middle mouse button. Not all all mice have a middle click button (see the Mouse chapter for details). Sometimes the scroll wheel acts as a clickable middle button. This action is used for time-constrained region copying and mapping MIDI bindings.

Internally, your operating system may identify the mouse buttons as Button1, Button2, and Button3, respectively. It may be possible to invert the order of buttons to accommodate left-handed users, or to re-assign them arbitrarily. This manual assumes the canonical order.

Double Clicking

A double click refers to two rapid press/release cycles on the leftmost mouse button. The time interval between the two actions that determines whether this is seen as two clicks or one double click is controlled by your system preferences, not by Ardour.

Dragging

A drag primarily refers to the act of pressing the leftmost mouse button, moving the mouse with the button held down, and then releasing the button. On touch surfaces, this term also corresponds to a single one-finger touch-move-release action.

Ardour also uses the middle mouse button for certain kinds of drags, which will be referred to as middle-drag.

Modifiers

There are many actions in Ardour that can be carried out using a mouse button in combination with a modifier key. When the manual refers to Left, it means that you should first press the key, carry out a left click while is held down, and then finally release the key.

Available modifiers depend on your platform:

Linux Modifiers

The following section is almost certainly wrong. Will need to be checked and rewritten asap.

Mod2 typically corresponds to the NumLock key on many systems. On most Linux systems, there are no keys that will function as modifiers Mod3, Mod4 or Mod5 by default, but they can be setup using xmodmap(1). This can be rather useful.

OS X Modifiers

Scroll Wheel

Ardour can make good use of a scroll wheel on your mouse, which can be utilized for a variety of purposes. Scroll wheels generate vertical scroll events, (ScrollUp) and (ScrollDown). Some also emit horizontal events, (ScrollLeft) and (ScrollRight).

When appropriate, Ardour will differentiate between these two different scroll axes. Otherwise it will interpret ScrollDown and ScrollLeft as equivalent and similarly interpret ScrollUp and ScrollRight as equivalent.

Typically, scroll wheel input is used to adjust continuous controls such as faders and knobs, or to scroll vertically or horizontally inside a window.

Should add some mention of drag & drop operations; the "Dragging" section above doesn't mention it at all.

--- title: Cut and Paste Operations part: subchapter ---

The clipboard is a holder for various kinds of objects (regions, control events, plugins) that is used during cut-and-paste operations.

Cut

A cut operation removes selected objects and places them in the clipboard. The existing contents of the clipboard are overwriten.
The default key binding is x.

Copy

A copy of the selected objects are placed in clipboard. There is no effect on the selected objects themselves. The existing contents of the clipboard are overwritten.
The default key binding is c.

Paste

The current contents of the clipboard are pasted (inserted) into the session, using the current edit point as the destination. The contents of the clipboard remain unchanged—you can paste the same item multiple times.
The default key binding is v.

--- title: Deleting Objects part: subchapter ---

Within the Editor window (and to some extent within the Mixer window too), there are several techniques for deleting objects (regions, control points, and more).

Using the mouse and keyboard

Select the object(s) and then press the Del key. This does not put the deleted object(s) into the cut buffer, so they cannot be pasted elsewhere.

Using normal cut and paste shortcuts

Select the object(s) and then press x. This puts the deleted object(s) into the cut buffer so that they could be pasted elsewhere.

Using just the mouse

By default, Shift Right will delete the clicked-upon object. Like the Del key, this does not put the deleted object(s) into the cut buffer.

The modifier and mouse button used for this can be controlled via Edit > Preferences > User Interaction > Delete using .... Any modifier and mouse button combination can be used.

--- title: Starting Ardour part: subchapter ---

There are several ways of starting Ardour, which may vary depending on which platform you are using it.

When Ardour is run for the very first time, a special dialog is displayed that will ask you several questions about your setup. You will not be asked these questions again, but you can always modify your choices via the Edit > Preferences dialog.

If you want to use JACK, in general, it is sensible to start before you run Ardour. This is not necessary, but will provide you with more control and options over JACK's operation. You can start JACK through its CLI, or using a GUI program, like QjackCtl or Cadence.

If you open Ardour without specifying an existing session it will display the Session > New... dialog and the Audio/MIDI Setup dialog. See New/Open Session Dialog for a description of those dialogs.

--- title: Starting Ardour From the Command Line (Linux) menu_title: Starting from Linux Cmdline part: subchapter ---

Like (almost) any other program on Linux, Ardour can be started on the command line. Type the following command in a terminal window:

ardour5

To start Ardour with an existing session:

ardour5 /path/to/session

replacing /path/to/session with the actual path to your session. You can specify either the session folder or any session file inside the folder, including snapshots.

To start Ardour with a new, named session:

ardour5 -N /path/to/session

Other Command Line Options

--- title: Keyboard and Mouse Shortcuts part: chapter --- --- title: Default Keyboard Bindings menu_title: Key Bindings part: subchapter ---

Almost every available function in Ardour can be bound to a keyboard shortcut (and those few that cannot will usually respond to an OSC command). Ardour comes with a rich set of default key bindings for the most commonly used functions.

These bindings strive to be mnemonic, that is, easy and intuitive to remember, and follow widely accepted conventions. As a general rule, the first letter of an operation will be used for as a shortcut, if available. This does not necessarily lead to the best ergonomics for rapid editing—there are alternative binding sets for that—but it does make it simpler for newcomers to remember some of the most useful ones, for example
S for Region > Edit > Split" or
P for Transport > Playhead > Playhead to Mouse.

Almost every key binding in Ardour can be changed in Window > Key Bindings.

The conventions for using modifier keys (, , etc.) differ among platforms, so we provide different default bindings for each.

--- title: Mnemonic Bindings for Linux menu_title: Linux part: subchapter ---

A printable cheat-sheet with the mnemonic bindings for Linux is available for download in US Letter and A4 paper format.

This set of bindings assumes an en_US keyboard. However, most if not all bindings will also work on other keyboards when you use the AltGr to compose those glyphs that are not directly accessible.

Transport & Recording Control

destroy last recording
Del
engage record
r
fast forward
loop play (the loop range)
l
rewind
set playhead position
p
start recording
Space
stop (keep loop/range play)
Space
stop and destroy
Space
toggle auto play
5
toggle auto return
6
toggle click (metronome)
7
toggle playhead follows edits
F
toggle playhead tracking
F
toggle roll
Space
toggle selected track rec-enable
b
toggle selected track solo status
s
transition to reverse
transition to roll

Session & File Handling

add track(s) or bus(ses)
n
export session
e
import audio files
i
open a new session
n
open a recent session
o
open an existing session
o
quit
q
save session
s
snapshot session
s
toggle selected track MIDI input
i

Changing What's Visible

fit tracks vertically
f
move selected tracks down
move selected tracks up
scroll down (page)
PgDn
scroll down (step)
scroll up (page)
PgUp
scroll up (step)
toggle editor window mixer
e
visual undo
z
zoom height to selected region(s)
z
zoom height and time to selected region
z
zoom in
=
zoom out
-

Window Visibility

toggle locations dialog
l(ell)
focus on main clock
÷
maximise editor space
f
switch between editor & mixer window
m
show rhythm ferret window
f
toggle big clock
b
toggle color manager
c
toggle editor window
e
toggle global audio patchbay
p
toggle global midi patchbay
p
toggle key bindings editor
k
toggle preferences dialog
o
toggle preferences dialog
p

Editing with Edit Point

Most edit functions operate on a single Edit Point (EP). The edit point can be any of: playhead (default), the mouse or an active marker. The choice of edit point (by default) also sets the Zoom Focus.

EP to next region sync
;
EP to prev region sync
'
cycle to next grid snap mode
2
cycle to next zoom focus
1
insert from region list
i
insert time
t
move EP to playhead
next EP w/marker
`
next EP w/o marker
`
trim back
k
trim front
j
trim region end to edit point
}
trim region start to edit point
{
trim region to end of prev region
j
trim region to start of next region
k
use previous grid unit
3
use next grid unit
4
use previous grid unit
3
use next musical grid unit
4

Aligning with the Edit Point

Align operations move regions so that their start/end/sync point is at the edit point. Relative operations just align the first region and moves other selected regions to maintain relative positioning.

align end(s)
a
align start(s)
a
align start(s) relative
a
align sync points
a
align sync points (relative)
a
range end to next prev edge
>
range end to next region edge
>
range start to next region edge
<
range start to prev region edge
<

Edit Point Playback

play edit range
Space
play from EP & return
Space
play selected region(s)
h

Region Operations

duplicate region (multi)
d
duplicate region (once)
d
export selected region(s)
e
increase region gain
^
move to original position
o
mute/unmute
m
normalize
n
nudge backward
nudge forward
+
quantize MIDI notes
q
reduce region gain
&
reverse
r
set fade in length
/
set fade out length
\
set region sync point
v
split
s
toggle fade in active
/
toggle fade out active
\
transpose
t

Generic Editing

copy
c
cut
x
delete
Del
paste
v
redo
r
undo
z

Selecting

There are a few functions that refer to an Edit Range. The current edit range is defined using combinations of the possible edit points: playhead, active marker, or mouse.

all after playhead
p
all before playhead
p
all enclosed by edit range
u
all present in edit range
u
convert edit range to range
F6
invert selection
i
select all after EP
e
select all before EP
e
select all in loop range
l
select all in punch range
d
select everything
a
select next track/bus
select previous track/bus

Defining Loop, Punch Range and Tempo Changes

set loop range from edit range
]
set loop range from region(s)
]
set punch range from edit range
[
set punch range from region(s)
[
set tempo (1 bar) from edit range
0
set tempo (1 bar) from region(s)
9
--- title: Mnemonic Bindings for OS X part: subchapter ---

A printable cheat sheet for these bindings is available for download.

Transport & Recording Control

destroy last recording
Del
engage record
r
fast forward
loop play (the loop range)
l
rewind
set playhead position
p
start recording
space
stop (keep loop/range play)
space
stop and destroy
space
toggle auto play
5
toggle auto return
6
toggle click (metronome)
7
toggle playhead follows edits
f
toggle playhead tracking
f
toggle roll
space
toggle track rec-enable
b
toggle track solo status
s
transition to reverse
transition to roll

Session & File Handling

add track(s) or bus(ses)
n
export session
e
import audio files
i
open a new session
n
open a recent session
o
open an existing session
o
quit
q
save session
s
snapshot session
s
toggle sel. track MIDI input
i

Changing What's Visible

fit tracks vertically
f
move selected tracks down
move selected tracks up
scroll down (page)
PgDn
scroll down (step)
scroll up (page)
PageUp
scroll up (step)
toggle editor window mixer
e
toggle last 2 zoom states
z
zoom height to selected region(s)
Control+z
zoom height and time to selected region
z
zoom in
=
zoom out
-

Window Visibility

toggle locations dialog
l
focus on main clock
÷
maximise editor space
f
rotate editor & mixer window
m
show rhythm ferret window
f
toggle big clock
b
toggle color manager
c
toggle editor window
e
toggle global audio patchbay
p
toggle global midi patchbay
p
toggle key bindings editor
k
toggle preferences dialog
o
toggle preferences dialog
p

Editing with Edit Point

Most edit functions operate on a single Edit Point (EP). The edit point can be any of: playhead (default), the mouse or an active marker. The choice of edit point (by default) also sets the Zoom Focus.

EP to next region sync
;
EP to prev region sync
'
cycle to next grid snap mode
2
cycle to next zoom focus
1
insert from region list
i
insert time
t
move EP to playhead
Return
next EP w/marker
^
next EP w/o marker
`
trim back
k
trim front
j
trim region end to edit point
}
trim region start to edit point
{
trim region to end of prev region
j
trim region to start of next region
k
use previous grid unit
3
use next grid unit
4
use previous grid unit
3
use next musical grid unit
4

Aligning with the Edit Point

Align operations move regions so that their start/end/sync point is at the edit point. Relative operations just align the first region and moves other selected regions to maintain relative positioning.

align end(s)
a
align start(s)
align start(s) relative
align sync points
a
align sync points (relative)
a
range end to next prev edge
>
range end to next region edge
>
range start to next region edge
<
range start to prev region edge
<

Edit Point Playback

play edit range
Space
play from EP & return
Space
play selected region(s)
h

Region Operations

duplicate region (multi)
d
duplicate region (once)
d
export selected region(s)
increase region gain
^
move to original position
o
mute/unmute
m
normalize
n
nudge backward
nudge forward
+
quantize MIDI notes
q
reduce region gain
&
reverse
r
set fade in length
/
set fade out length
\
set region sync point
v
split
s
toggle fade in active
/
toggle fade out active
\
transpose
t

Generic Editing

copy
c
cut
x
delete
Del
paste
v
redo
r
undo
z

Selecting

There are a few functions that refer to an Edit Range. The current edit range is defined using combinations of the possible edit points: playhead, active marker, ormouse.

all after playhead
p
all before playhead
p
all enclosed by edit range
u
all present in edit range
u
convert edit range to range
F6
invert selection
i
select all after EP
Shift+e
select all before EP
e
select all in loop range
l
select all in punch range
d
select everything
a
select next track/bus
select previous track/bus

Defining Loop, Punch Range and Tempo Changes

set loop range from edit range
]
set loop range from region(s)
]
set punch range from edit range
[
set punch range from region(s)
[
set tempo (1 bar) from edit range
0
set tempo (1 bar) from region(s)
9
--- title: System Configuration part: part --- --- title: Ardour Systems part: chapter --- --- title: The Right Computer System for Digital Audio menu_title: The Right Computer System part: subchapter ---

It would be nice to think that you could just go and buy any computer, install a bit of software on it and start using it to record and create music. This idea isn't wrong, but there some important details that it misses.

Any computer that you can buy today (since somewhere around the end of 2012) is capable of recording and processing a lot of audio data. It will come with a builtin audio interface that can accept inputs from microphones or electrical instruments. It will have a disk with a huge amount of space for storing audio files.

When you are recording, editing and mixing music, you generally want to work with very little latency between the time that a sound is generated and when you can hear it. When the audio signal flows through a computer, that means that the computer has to be able to receive the signal, process it and send it back out again as fast as possible.
And that is where it becomes very important what computer system you have, because it is absolutely not the case that any computer can do this job well.

Routing audio through a computer will always cause some delay, but if it is small, you will generally never notice it. There are also ways to work in which the delay does not matter at all (for example, not sending the output from the computer to speakers).

The latency that you want for working with digital audio is typically in the 1–5 ms range. For comparison, if you are sitting 1 m (3 ft) from your speakers, the time the sound takes to reach your ears is about 3 ms. Any modern computer can limit the delay to 100 ms. Most can keep it under 50 ms. Many will be able to get down to 10 ms without too much effort. If you try to reduce the delay on a computer that cannot meet your goal, you will get clicks and glitches in the audio, which is clearly extremely undesirable.

Hardware-related Considerations

Video interface
Poorly engineered video interfaces (and/or their device drivers) can "steal" computer resources for a long time, preventing the audio interface from keeping up with the flow of data
Wireless interface
Poorly engineered wireless networking interfaces (and/or their device drivers) can also block the audio interface from keeping up with the flow of data
USB ports
If you are using an audio interface connected via USB, and sometimes even if you are not, the precise configuration of your system's USB ports can make a big difference. There are many cases where plugging the interface into one port will work, but using different USB port results in much worse performance. This has been seen even on Apple systems.
Internal USB Hubs
Ideally, you'd like your USB ports to all connect directly to the main bus inside the computer. Some laptops (and possibly some desktop systems) come wired with an internal USB hub between the ports and the system bus, which can then cause problems for various kinds of external USB devices, including some models of audio interfaces. It is very difficult to discover whether this is true or not, without simplying trying it out.
CPU speed control
Handling audio with low latency requires that your processor keeps running at its highest speed at all times. Many portable systems try to regulate processor speed in order to save power—for low latency audio, you want this totally disabled, either in the BIOS or at the OS level.
Excessive Interrupt Sharing
If your audio interface is forced by your computer to share an interrupt line (basically a way to tell the CPU that something needs its attention) with too many, or the wrong, other devices, this can also prevent the audio interface from keeping up with the flow of data. In laptops it is generally impossible to do anything about this. In many desktop systems, it is possible at the BIOS level to reassign interrupts to work around the problem.
SMIs
SMIs are interrupts sent by the motherboard to tell the computer about the state of various hardware. They cannot safely be disabled, but they can also take a relatively long time to process. It is better to have a motherboard which never sends SMIs at all— this is also a requirement for realtime stock trading systems, which have similar issues with latency.
Hyperthreading
This technology is becoming less common as actual multi-core CPUs become the norm, but it still exists and is generally not good for realtime performance. Sometimes you can disable this in the BIOS, sometimes you cannot. A processor that uses hyperthreading will be less stable in very low latency situations than one without.
Excessive vibration
This doesn't affect the flow of data to/from the audio interface, but it can cause the flow of data to/from your disk storage to become much slower. If you are going to use a computer in an environment with loud live sound (specifically, high bass volume), make sure to place it so that the disk is not subject to noticeable vibration. The vibrations will physically displace the head-write heads of disk, and the resulting errors will force a retry of the reading from the disk. Retrying over and over massively reduces the rate at which data can be read from the disk. Avoid this.
--- title: Mouse part: subchapter ---

Ardour is designed to work best with a three button mouse equipped with a scroll wheel.

It can be used with a two button mouse or touchpad, but at least two key operations will not (easily) be available to you:

You are strongly encouraged to invest in a three-button mouse. You will find that a good quality mouse (especially one with a weighted, latchable scroll wheel) will make your use of Ardour vastly more efficient. They are cheap, and time is not.

For more detailed instructions, see Using the mouse.

--- title: System Setup part: chapter --- --- title: Setting Up Your System part: subchapter ---

Using a general purpose computer for recording digital audio is not trivial. This chapter will guide you through the basic steps and help you with some of the most common pitfalls on the way to a reliable and powerful audio workstation.

--- title: Platform Specifics part: subchapter ---

Platform Specifics

This section of the manual collects together the collective wisdom of the user community regarding details of using Ardour on various specific platforms

--- title: Ubuntu Linux part: subchapter ---

Ubuntu Linux is the most popular variety of Linux in use on desktop and laptop systems. It has the backing of a for-profit corporation (Canonical Inc.), a defined philosophy and a huge and worldwide user base. As a result, it is a common platform for people who want to use Ardour and other tools for music creation and pro-audio work.

High Level Recommendations for Ubuntu Users

Currently, installing pro audio applications on vanilla Ubuntu requires some configuration, in order for the user to gain realtime privilege (read below). Ubuntu Studio, which is an official flavor of Ubuntu, and thus shares the repositories with Ubuntu, has this already configured. Other distributions, such as KXStudio, and Dreamstudio are largely based on Ubuntu, and like Ubuntu Studio, has these settings preconfigured, while also containing customized versions of Ubuntu packages, which often are more up to date.

Installing Ardour

There may be unintended differences, and even bugs in Ubuntu native packages, as a result of a different building method. For this reason, Ardour developers highly recommend you to install the official ready-to-run version of the program that you can get from ardour.org, as Ubuntu native packages are not supported in official Ardour forums or other support channels.

Follow these steps to install the latest version of Ardour.

  1. Download the latest release from ardour.org.
  2. Right+Click the downloaded file and choose properties.
  3. Click the Permissions tab and check the option "Allow this file to run as a program"
  4. Close the dialog and double-click the file.
  5. Follow the prompts.

Problems with the interaction between PulseAudio and JACK

Background Info

Like many distributions, Ubuntu has decided to use PulseAudio as the default audio system. PulseAudio is a rich and capable system that provides excellent services for typical users of Linux on the desktop. However, it is not capable of the type of performance that tools like Ardour require and in particular does not offer the possibility of sending audio between applications that can make the Linux audio environment a very interesting one.

This would not be a problem if it were not for the fact that JACK will not run correctly (if at all) if it needs to use the same soundcard/audio interface that PulseAudio is using. And since on Ubuntu, PulseAudio is configured by default to always use the (typically single) audio interface on your computer, this is a bit of a problem.

The developers of JACK and PulseAudio got together in 2009 and agreed upon a mechanism by which PulseAudio and JACK could cooperate in their use of a single soundcard. Whether or not PulseAudio is running by default, when JACK starts up it sends out a request to use the soundcard. If PulseAudio is running, it will give up its use of the soundcard to allow JACK to take over (and can optionally be told to route its own audio through JACK). When JACK finishes, it sends out another message, and PulseAudio can once again use the soundcard directly.

What is the problem?

The specific issues known at this time for all flavors of Ubuntu 12.04 and 12.10 are:

Symptoms

Cannot start JACK (though see the next section for other causes of this)

How to fix

These bugs do not affect releases from 13.04, and earlier releases (12.04 and 12.10) are in the process of being fixed.

Problems with JACK configuration

What is the problem?

To function as intended, JACK needs to run with access to two operating system facilities called realtime scheduling and memory locking. This means that you, the user who starts JACK, must be allowed access to these facilities. By default, Ubuntu does create a user group that has this permission but—it does not put new users into this group by default. Read more about why here. Consequently, you will not have permission to run JACK in the way you should.

Symptoms

A message like Cannot lock down memory in the output from JACK as it starts up. This output may be hidden in the Messages window of QJackctrl (aka JACK Control), so you should check there.

How to fix

Make sure the file /etc/security/limits.d/audio.conf exists. If it is named /etc/security/limits.d/audio.conf.disabled, rename it to the former. Run the command

sudo usermod -a -G audio YOUR-LOGIN-NAME

Then log out and log in again. On Ubuntu Studio the user is a member of audio group by default, but not on other official flavors.

Reporting Issues

Given the difficulties in supporting Ubuntu and the limited time/resources of the Ardour team, the Ubuntu Studio Project has requested that issues and bug reports related to Ubuntu, Ubuntu Studio and other derivitives be directed to them.

Contact Information for Ubuntu Studio

The Ubuntu Studio Homepage

The Ubuntu Studio Forums.

Information on the Ubuntu Studio Mailing Lists.

Information on the Ubuntu Studio IRC channel. #ubuntustudio on irc.freenode.net

--- title: Microsoft Windows part: subchapter ---

Microsoft Windows is not currently officially supported. If you are willing to live with bugs and help to test this platform, read on.

Installing Ardour

  1. Download the latest windows build from the nightly build page.
  2. Run the installer and follow the prompts.

How to help

--- title: KDE Plasma 5 part: subchapter ---

Under KDE Plasma 5, plugin and various other windows will not stay on top of any main window; therefore a workaround is required.

Workaround for ancillary windows not staying on top in KDE Plasma 5

In order to force ancillary windows in Ardour to stay on top, the following steps are necessary:

  1. Launch the System Settings application.
  2. Open Workspace > Window Managment.
  3. Select Window Rules in the left-hand sidebar. It should default to the Window matching tab.
  4. Click on the New... button.
  5. On the line that says Window class (application), set the combo box to Substring Match and type ardour in the text entry field.
  6. In the list box that is labeled Window types:, click on the option Dialog Window, then press and hold Ctrl while clicking on the second option Utility Window.
  7. Select the Arrangement & Access tab.
  8. Check the box next to the Keep above option. On the same line, select Force from the combo box, then click on the Yes radio button for that line.
  9. Click on the OK button to dismiss the dialog.

At this point you can close the System Settings application.

Background Info

According to one of the lead KDE developers, they are not willing to follow the ICCCM standard for utility windows. Apparently they are alone in this understanding, as plugin windows on Ardour under Linux work out of the box on every other WM out there.

Under KDE 4, there was a workaround in Ardour (Preferences > Theme > All floating windows are dialogs) that would "trick" KDE into forcing certain window types to be on top of their parent windows, but this no longer works under KDE Plasma 5.

--- title: I/O Setup part: chapter --- --- title: Connecting Audio and MIDI Devices part: subchapter ---

Add content

--- title: Using More Than One Audio Device part: subchapter ---

Ardour will only ever deal with a single audio device. If you want to use more than one, you have two choices:

Ardour is fundamentally designed to be a component in a pro-audio/music creation environment. Standard operating practice for such setups involves using only a single digital sample clock (something counting off the time between audio samples). This means that trying to use multiple independent soundcards is problematic, because each soundcard has its own sample clock, running independently from the others. Over time, these different clocks drift out of sync with each other, which causes glitches in the audio. You cannot stop this drift, although in some cases the effects may be insignificant enough that some people might not care about them.

Thus in an ideal world you should not use multiple independent soundcards but instead use a single device with a single clock and all the inputs, outputs and other features that you need.

Of course, a lot of people don't live in an ideal world, and believe that software should make up for this.

OS X

In CoreAudio, aggregate devices provide a method to use multiple soundcards as a single device. For example, you can aggregate two 8-channel devices so that you can record 16 channels into Ardour.

If you are using a single typical 3rd party audio interface (such as those from Apogee, RME, Presonus, and many others), or you are using JackPilot or a similar application to start JACK, you do not need to worry about this.
You will need to set up an aggregate device only if either of the following conditions are true:

In the case of your builtin audio device, you will need to create an aggregate device that combines "Builtin Input" and "Builtin Output" into one device.

The precise instructions for creating an aggregate device on OS X have varied from one released to another. Please read https://support.apple.com/en-us/HT202000

Linux

Please see the instructions at http://jackaudio.org/faq

--- title: Preferences part: chapter --- --- title: Preferences and Session Properties part: subchapter ---

Ardour splits its configuration options into two categories:

--- title: Global Preferences Dialog menu_title: Global Preferences part: subchapter ---

These preferences apply to all Ardour sessions.

ardour preferences
dialog --- title: Misc Tab menu_title: Misc Tab part: subchapter ---

This tab contains settings that do not belong on the other tabs.

preferences
misc tab --- title: Transport Tab menu_title: Transport Tab part: subchapter ---

This tab contains settings that relate to the behavior of the Transport Bar and Synchronization.

preferences
transport tab --- title: Editor Tab menu_title: Editor Tab part: subchapter ---

This tab contains settings that affect behavior in the Editor window when Editing and Arranging.

preferences
editor tab --- title: Audio Tab menu_title: Audio Tab part: subchapter ---

This tab contains settings for handling audio.

preferences
audio tab --- title: Solo/Mute Tab menu_title: Solo/Mute Tab part: subchapter ---

This tab contains settings that affect the use of solo, muting, and panning.

preferences
solo/mute tab --- title: MIDI Tab menu_title: MIDI Tab part: subchapter ---

This tab contains settings related to the use of MIDI inside Ardour.

preferences
MIDI tab --- title: User Interaction Tab menu_title: User Interaction Tab part: subchapter ---

This tab contains settings that affect the user's interaction with Ardours interface.

preferences
user interaction tab --- title: Control Surfaces Tab menu_title: Control Surfaces Tab part: subchapter ---

This tab contains settings for control surfaces. Also see Using Control Surfaces.

preferences
control surfaces tab

Enable a Control Surface Protocol and double-click on it to edit protocol specific settings. Enable feedback to allow Ardour to send position information back to a control surface.

Control surface remote ID: can follow the order of the mixer or be user assigned.

--- title: Video Tab menu_title: Video Tab part: subchapter ---

This tab contains settings related to handling of Video.

preferences
video tab --- title: Plugins Tab menu_title: Plugins Tab part: subchapter ---

This tab contains settings that control the discovery and availability of plugins.

preferences
plugins tab --- title: GUI Tab menu_title: GUI Tab part: subchapter ---

This tab contains settings that affect Ardour's Interface.

preferences
gui tab --- title: Metering Tab menu_title: Metering Tab part: subchapter ---

This tab contains settings that affect Metering in Ardour.

preferences
metering tab --- title: Theme Tab menu_title: Theme Tab part: subchapter ---

This tab contains settings that change the visual appearence of Ardour.

preferences
theme tab --- title: Session Properties Dialog menu_title: Session Properties part: subchapter --- session properties dialog

This dialog allows you to change settings for the current session. These settings are initially set from the template used to create the session. To open the dialog use Session > Properties

--- title: Timecode Tab menu_title: Timecode Tab part: subchapter --- session properties timecode tab

This tab is used to change how Ardour interprets and manipulates timecode.

--- title: Sync Tab menu_title: Sync Tab part: subchapter --- session properties sync tab

This tab is used to modify the timecode settings when working with video to use the imported video's timecode settings instead of the session defaults.

--- title: Fades Tab menu_title: Fades Tab part: subchapter --- session properties fades tab

Change how Ardour works with region crossfades.

--- title: Media Tab menu_title: Media Tab part: subchapter --- session properties media tab

Change how sound is stored on disk. These options do not change how sound is handled internally.

--- title: Locations Tab menu_title: Locations Tab part: subchapter --- session properties locations tab

These options add file locations that will be searched to find the audio and midi files used by the session. This is useful when the files have been imported into the session but not copied into the session.

To add a location, navigate to the directory where the files are stored. Drill down into the directory and then click open. The directory will show up in the dialog. The remove button next to the added directory can be used to remove it from the search path.

--- title: Filenames Tab menu_title: Filenames Tab part: subchapter --- session properties filenames tab

This tab is used to change how Ardour names recorded regions. If Prefix track number is selected a unique number will appear on each track in the Editor window and will prefix the region name. If the track number is 2 and the region would have been Gtr-1.1 with track number prefix turned on the region will be named 2_Gtr-1.1 instead. See XX for base of the region name.

If Prefix take name is selected and the Take name has Take1 the region will have the name Take1_Gtr-1.1 instead. If both boxes are checked the name will be Take1_2_Gtr-1.1 instead.

When Prefix take name is enabled, the first time a track is recorded it will have the specified take name. When recording is stopped, any trailing number on the end of the take name will incremented by 1. If the track name specified doen't have a number on the end, the number 1 will be suffixed.

--- title: Monitoring Tab menu_title: Monitoring Tab part: subchapter ---

Provides options affecting monitoring.

session properties monitoring tab

The Track Input Monitoring automatically follows transport state affects how input monitoring is handling. See Monitor Setup in Ardour.

monitoring section

The 'Use monitor section' displays an extra section in the Mixer window that is modelled on the similiarly named section on large analog consoles.

--- title: Meterbridge Tab menu_title: Meterbridge Tab part: subchapter ---

The meters from audio tracks always display in the Meterbridge. This tab changes what additional controls are also displayed.

session properties meterbridge tab image of meterbidge with all options on --- title: Misc Tab menu_title: Misc Tab part: subchapter ---

This tab has several things that don't fit on the other tabs.

session properties misc tab --- title: Peripherals part: chapter --- --- title: Controlling Ardour with OSC part: subchapter include: controlling-ardour-with-osc.html --- --- title: Controlling Ardour with OSC (Ardour 4.7 and Prior) part: subchapter include: controlling-ardour-with-osc-4.7-and-prior.html --- --- title: OSC Feedback With Ardour part: subchapter ---

Feedback from the Ardour to the the control surface is very useful for a number of things. Motor faders need to know where the the track they have been attached to is at before they were assigned otherwise the DAW fader will jump to where the controller fader is. Likewise, the buttons on each strip need to know what their value is so they can light their LED correctly. Transport controls should let you know if they are active too. This is what feedback is all about.

Ardour does feedback by sending the same path back that is used to control the same function. As such any controls that have feedback have a parameter that is the value of the control or it's state (on or off). In the case of OSC paths listed on the main OSC page as having no parameter, if they have feedback, they will also work with a 1 for button press and 0 for button release. This is because many OSC controllers will only use exactly the same path for feedback as for control. For example:

/transport_stop

can be used also in the form:

/transport_stop press
where press is an int/bool indicating if the button is pressed or not.

The feedback does not have the same meaning as the control message. Where the button release sent to Ardour will be ignored and has no meaning. Both states have meaning in feedback to the controller. The feedback will be:

/transport_stop state
where state is an int/bool indicating if the transport is stopped or not.

With feedback turned on, OSC control commands that try to change a control that does not exist will get feedback that resets that control to off. For example, sending a /strip/recenable to a buss will not work and Ardour will try to turn the controller LED off in that case. Also note that Pan operation may be limited by pan width in some cases. That is with pan width at 100% (or -100%) there is no pan position movement available.

It may come as a surprise, but feedback often generates more network traffic than control itself does. Some things are more obvious like head position or meters. But even a simple button push like transport start sends not only a signal to turn on the play LED, but also one to turn off the stop LED, the Rewind LED, the Fast Forward LED and the Loop LED. That is still minor, think instead of a surface refresh such as happens when the surface is first connected and then most of that happens every time the fader strips are banked. This is why feedback is enabled in sections so that as little feedback as is actually needed is sent. This is also a consideration if the surface is connected via wifi.

List of OSC feedback messages

Feedback only

These messages are feedback only. They are sent as status from Ardour and some of them may be enabled separately from other feedback. See: Calculating Feedback and Strip-types Values.

See strip section below for info about ssid and wrapping it into the path. Also /master and /monitor support what the /strip does.

In the case where Gainmode is set to position, the track name will show the dB value while values are changing.

/strip/name ssid track_name
where track_name is a string representing the name of the track
/session_name session_name
where session_name is a string representing the name of the session
/strip/meter ssid meter
where meter is a value repesenting the current audio level. (the exact math used is determined by the feedback bits set)
/strip/signal ssid signal
where signal is a float indicating the instantaneous audio level is -40dB or higher.
/position/smpte time
where time is a string with the current play head time. Seconds as per smpte.
/position/bbt beat
where beat is a string with the current play head bar/beat.
/position/time time
where time is a string with the current play head time. Seconds are in milliseconds
/position/samples samples
where samples is a string with the current play head position in samples.
/heartbeat LED
where LED is a float that cycles 1/0 at 1 second intervals.
/record_tally state
Some record enable is true or "ready to record". For a "Recording" sign at studio door.

Transport Control

/transport_stop state
state is true when transport is stopped
/transport_play state
state is true when transport speed is 1.0
/ffwd state
state is true when transport is moving forward but not at speed 1.0
/rewind state
state is true when transport speed is less than 0.0
/loop_toggle state
state is true when loop mode is true
/cancel_all_solos state
Where state true indicates there are active solos that can be canceled.

Recording control

/rec_enable_toggle state
Master record enabled.

Master and monitor strips

Master and monitor strips are similar to track strips but do not use the SSID. Rather they use their name as part of the path:

/master/gain dB
where dB is a float ranging from -193 to +6 representing the actual gain of master in dB
/master/fader position
where position is an int ranging from 0 to 1023 representing the fader control position
/master/trimdB dB
where dB is a float ranging from -20 to +20 representing the actual trim for master in dB
/master/pan_stereo_position position
where position is a float ranging from 0 to 1 representing the actual pan position for master
/master/mute yn
where yn is a bool/int representing the actual mute state of the Master strip
/monitor/gain dB
where dB is a float ranging from -193 to 6 representing the actual gain of monitor in dB
/monitor/fader position
where position is an int ranging from 0 to 1023 representing the fader control position

Track specific operations

For each of the following, ssid is the surface strip ID for the track

Some Surfaces (many Android applets) are not able to deal with more than one parameter in a command. However, the two parameter commands below can also be sent as /strip/command/ssid param. Feedback can be set to match this with the /set_surface/feedback state command. See Calculating Feedback and Strip-types Values.

/bank_up LED
where LED is a bool that indicates another bank_up operation is possible.
/bank_down LED
where LED is a bool that indicates another bank_down operation is possible.
/strip/name ssid track_name
where track_name is a string representing the name of the track (note there is no coresponding command to set the track name)
/strip/mute ssid mute_st
where mute_st is a bool/int representing the actual mute state of the track
/strip/solo ssid solo_st
where solo_st is a bool/int representing the actual solo state of the track
/strip/monitor_input ssid monitor_st
where monitor_st is a bool/int. True/1 meaning the track is force to monitor input
/strip/monitor_disk ssid monitor_st
where monitor_st is a bool/int. True/1 meaning the track is force to monitor disk, where both disk and input are false/0, auto monitoring is used.
/strip/recenable ssid rec_st
where rec_st is a bool/int representing the actual rec state of the track
/strip/record_safe ssid rec_st
where rec_st is a bool/int representing the actual record safe state of the track
/strip/gain ssid gain
where gain is a float ranging from -193 to 6 representing the actual gain of the track in dB.
/strip/fader ssid position
where position is an float ranging from 0 to 1 representing the actual fader position of the track.
/strip/trimdB ssid trim_db
where trim_db is a float ranging from -20 to 20 representing the actual trim of the track in dB.
/strip/pan_stereo_position ssid position
where position is a float ranging from 0 to 1 representing the actual pan position of the track

Selection Operations

Selection feedback is the same as for strips, only the path changes from /strip to /select and there is no ssid. there are some extra feedback and commands that will be listed here.

/select/n_inputs number
where number number of inputs for this strip
/select/n_outputs number
where number number of outputs for this strip
/select/comment text
where text is the strip comment
/select/solo_iso state
where state is a bool/int representing the Actual solo isolate state of the track
/select/solo_safe state
where state is a bool/int representing the actual solo safe/lock state of the track
/select/polarity invert
where invert is a bool/int representing the actual polarity of the track
/select/pan_stereo_width width
where width is a float ranging from 0 to 1 representing the actual pan width of the track
/select/send_gain", sendid send_gain
where sendid = nth_send, send_gainis a float ranging from -193 to +6 representing the actual gain in dB for the send
/select/send_fader", sendid send_gain
where sendid = nth_send, send_gainis a float ranging from 0 to 1 representing the actual position for the send as a fader
/select/send_name sendid send_name
where send_name is a string representing the name of the buss this send goes to.

Menu actions

Every single menu item in Ardour's GUI is accessible via OSC. However, there is no provision for returning the state of anything set this way. This is not a bad thing as most menu items either do not have an on/off state or that state is quite visible. Binding that affect other parameters that OSC does track will show on those OSC controls. Examples of this might be track record enable for tracks 1 to 32, play or stop.

--- title: Calculating Feedback and Strip-types Values part: subchapter ---

/set_surface has two values the user needs to calculate before use. In general these will not be calculated at run time, but beforehand. There may be more than one button with different values to turn various kinds of feedback on or off or to determine which kinds of strips are currently viewed/controlled.

Both ,feedback and strip-types use bitsets to keep track what they are doing. Any number in a computer is made out of bits that are on or off, but we represent them as normal base 10 numbers. Any one bit turned on will add a unique value to the number as a whole. So for each kind of feedback or strip type to be used, that number should be added to the total.

strip_types

strip_types is an integer made up of bits. The easy way to deal with this is to think of strip_types items being worth a number and then adding all those numbers together for a value to send. Strip Types will determine What kind of strips will be included in bank. This would include: Audio, MIDI, busses, VCAs, Master, Monitor and hidden or selected strips.

Selected and Hidden bits are normally not needed as Ardour defaults to showing Selected strips and not showing Hidden strips. The purpose of these two flags is to allow showing only Selected strips or only Hidden strips. Using Hidden with other flags will allow Hidden strips to show inline with other strips.

Some handy numbers to use might be: 15 (all tracks and buses), 31 (add VCAs to that). Master or Monitor strips are generally not useful on a surface that has dedicated controls for these strips as there are /master* and /monitor* commands already. However, on a surface with just a bank of fader strips, adding master or monitor would allow access to them within the banks. Selected would be useful for working on a group or a set of user selected strips. Hidden shows strips the GUI has hidden.

Audio Aux? say what? I am sure most people will have noticed that they can find no Aux strips in the Ardour mixer. There are none. There are buses that can be used a number of ways. From analog days, in OSC a bus is something that gets used as a sub mix before ending up going to Master. An auxiliary bus is used like a separate mixer and it's output goes outside the program or computer to be used as: a monitor mix, a back up recording, or what have you. In OSC where controller strips may be limited, it may be useful not to use up a strip for an aux that is not really a part of the mix. It is also useful to get a list of only aux buses if the control surface is a phone used to provide talent monitor mix control on stage. Each performer would be able to mix their own monitor. The user is free to enable both buses and auxes if they would prefer.

feedback

Feedback is an integer made up of bits. The easy way to deal with this is to think of feedback items being worth a number and then adding all those numbers together for a value to send.

So using a value of 19 would turn on feedback for strip and master controls, but leave meters, timecode and bar/beat feedback off.

--- title: Parameter Types in OSC part: subchapter ---

An OSC message is laid out in this form:

/path/of/command type parameter

The type is there to indicate what the parameter is. This gives the idea that parameter types are quite strict and if the command requires an Integer "i" then the controller had better send it. However, the checking of the parameter type is left to the receiving software.

What this means in practical terms is that the surface can get away with sending the wrong type of parameter. There are some places where that just doesn't make sense. For example, a parameter that is specified as a Float with a range of 0 to 1, could be sent as an Integer, but would only have full scale and minimum value with nothing in between. This is not much use for a fader, though ok for a button.

There are a number of OSC controllers based on iOS and Android tablets that only send or receive parameters as floats or text. These controllers should have no problem sending bool or int values as floats. Ardour will interpret the values as required.

--- title: Selection/Feedback Expansion Considerations in OSC part: subchapter ---

Ardour does not send every possible feedback value for each channel. It does send expanded information on the selected channel. There are also extra commands for the selected strip. All the feedback and select commands have their own path /select. This means that for the selected channel the surface does not have to keep track of the strip ID. The /select strip will follow the "current mixer strip" in the GUI editor window.

There are two major uses for this:

  1. Single strip control surfaces. Using /access_action Editor/select-next-route or /access_action Editor/select-prev-route to step through the mixer strips.
  2. Using a "Super strip" section of knobs to control parts of the strip that are changed less often such as polarity, sends or plugin parameters.

Selection in Ardour's OSC implementation are complicated by the possibility of using more than one OSC controller at the same time. User "A" may select strip 4 and use a selected controller to make changes to that strip. User "B" may subsequently select strip 7 to make changes on. This leaves user "A" making changes to strip 7 which they did not choose.

For this reason Ardour offers local expansion aside from the GUI selection. Local expansion only affects the one OSC controller. GUI selection is global and affects all controllers using GUI selection as well as the GUI.

In general, in a one user situation where that one user may use either the OSC surface or the GUI, using GUI based selection makes the most sense. This is the default because this is the more common use.

When there is more than one operator, then expansion only is the mode of choice. It may make sense for one of the surfaces to use GUI selection where the operator is also using the GUI for some things. However, the set up should be carefully analyzed for the possibility of selection confusions. Expansion should be considered the safe option.

It is always ok to use expansion on the surface even in a one user scenario. This allows the user to use GUI and surface selection for different uses.

It is also possible to use both if desired. /strip/select will ways set the GUI select, but /strip/expand will set the select feedback and commands locally without changing the GUI select. Another /strip/expand or a /strip/select will override that expand command and releasing the /strip/expand or /select/expand (setting it to 0 or false) will set the /select set of commands/feedback back to whichever strip the GUI has selected at that time. This could be used to switch between the GUI select and the local expand to compare two strips settings.

--- title: Using the OSC Setup Dialog part: subchapter ---

Starting with Ardour 5.1 OSC has a graphic setup dialog. This dialog can be accessed from Preferences->Control Surfaces. Select OSC and click on the Show Protocol Settings.

The Ardour OSC dialog has three tabs. The main tab, the Strip Types tab and the Feedback tab.

Many OSC devices get their IP from a DHCP making it difficult to set an IP in Ardour's OSC settings. Therefore, most of the settings are default settings. Values are set and the next OSC surface to send a /set_surface* message to Ardour will use those settings. An OSC surface that has previously sent a message to Ardour will retain the settings it already had. The Clear OSC Devices will reset all device settings. A /refresh message will both reset the device settings as well as set that device to any new settings. The Use of /set_surface will override all settings except Port Mode.

Dialog settings

OSC setup tab

the OSC configuration dialog

Connection:

This field is informational only. It shows where Ardour will receive OSC messages. The system Name and the Port are the most important parts.

Port Mode:

This drop down allows the choice of Auto or Manual outbound port setting. The default Auto port mode, will send OSC messages back to the port messages from that surface are received from. This setting allows two surfaces on the same IP to operate independently. However, there are a number of OSC control surfaces that do not monitor the same port they send from and in fact may change ports they send from as well. Manual allows the outgoing port (the port the surface will receive on, to be manually set. In Manual port mode only one control surface per IP can work. Most phone or tablet OSC controllers like touchOSC or Control need Manual port mode. More than one controller can be used so long as each has it's own IP.

Manual Port:

This is an Entry box for setting the outgoing port when in Manual port mode.

Bank Size:

This sets the default bank size for the next surface to send a /set_surface/* OSC message. Bank size 0 (the default) sets no banking and allows controlling all strips included in strip_types at once.

Gain Mode:

Sets the faders (and sends faders) feedback math to position where a value between 0 and 1 represents the fader position of the same fader in the mixer GUI or dB where the feedback from fader movement will be returned as a dB value. When the Gain Mode is set to position, the /*/name feedback for the channel will show dB values in text while the fader is being adjusted and then return the the name text.

Debug:

For debugging purposes this allows logging either good OSC messages Ardour receives or invalid messages received or none.

Preset:

Ardour now allows the use of preset settings. The default settings used are the settings from the last session or the factory defaults the first time OSC is enabled. As soon as any of these settings are changed, the Preset will change to "User" and the new settings will be save to the osc directory Ardour configuration directory as user.preset. This preset file can be renamed for future use. It is suggested to also change the name value inside to avoid confusion in the preset listing. Ardour will ship with some of it's own presets that go with some popular OSC control and map combinations.

Clear OSC Devices

This button clears operating device profiles so that Ardour will reset all devices settings to use the new defaults from changed settings. a device may still override these new settings with the /set_surface set of commands. The reason for setting defaults settings is that some OSC controllers are not able to send more than one parameter at a time and so having correct defaults allows one "Connect" button rather than 4.

Default Strip Types tab

the Default Strip Types tab

This allows selecting which of Ardour's mixer strips will be available for control. The Factory default is all strips except master, monitor and hidden strips. If it is desired to only see input tracks the others can be deselected. It is also possible to change these settings from the control surface. A set of buttons could select showing only inputs or only buses. If a group is selected in the GUI then showing only selected strips will show only that group. Showing hidden tracks is handy for cases where a groups of tracks that grouped to a bus or controlled by a VCA are hidden, but one of those tracks needs a tweak.

Default Feedback tab

the Default Feedback tab

This allows setting up which controls provide feedback. The Factory default is none. If the controller is unable to receive feedback, this should be left blank. In the case of metering, Metering as a LED strip only works if Metering as a Float is disabled.

--- title: Querying Ardour with OSC part: subchapter ---

In order to make a custom controller that knows what strips Ardour has, the controller needs to be able to query Ardour for that information. These set of commands are for smarter control surfaces That have the logic to figure out what to do with the information. These are not of value for mapped controllers like touchOSC and friends. The controller will need to send these queries to ardour as often as it needs this information. It may well make sense to use regular feedback for things that need to be updated often such as position or metering. Here are the commands used to query Ardour:

/strip/list
Ask for a list of strips
/strip/sends ssid
Asks for a list of sends on the strip ssid
/strip/receives ssid
Asks for a list of tracks that have sends to the strip ssid points to
/strip/plugin/list ssid
Asks for a list of plug-ins for strip ssid.
/plugin/descriptor ssid piid
Asks for a list of descriptors for plug-in piid on strip ssid

A list of strips

/strip/list asks Ardour for a list of strips that the current session has. Ardour replies with a message for each strip with the following information:

After all the strip messages have been sent, one final message is sent with:

A bus will not have a record enable and so a bus message will have one less parameter than a track. It is the controllers responsability to deal with this.

A list of sends

/strip/sends ssid asks Ardour for a list of sends for strip number ssid. The reply is sent back to the controller as one message with the following information:

The controller can tell how many sends there are from the number of parameters as each send has 5 parameters and there is one extra for ssid.

A list if tracks that send audio to a bus

/strip/receives ssid will return a list of tracks that have sends to the bus at the ssid. The reply will contain the following information for each track conntected to this bus:

A list of plug-ins for strip

/strip/plugin/list ssid will return a list of plug-ins that strip ssid has. The reply will contain the following information:

A list of a plug-in's parameters

/plugin/descriptor ssid piid will return the plug-in parameters for ppid plug-in on the ssid strip. The reply will contain the following information:

The flag bitset above has been defined as (from lsb):

While this seems complex, it is really not that bad. Minimum, maximum and value will in most cases give you all you need.

--- title: Devices using Mackie/Logic Control Protocol menu_title: Mackie/Logic Control Devices part: subchapter ---

This will walk you through the process of configuring and using a MIDI control surface with Ardour that uses the Mackie Control protocol (MCP) or Logic Control protocol. Devices that have been tested and are known to work include the SSL Nucleus, Mackie Control Pro (plus extenders), Behringer devices in Mackie/Logic mode, and Steinberg CMC devices.

Enabling Mackie Control in Ardour

Navigate to Edit > Preferences > Control Surfaces. Double-click on Mackie Control to see the setup dialog:

Mackie Control Setup Dialog

From the selector at the top, choose the type of device you are using. ( What to do if your device is not listed).

Once your setup is complete, click "OK" to close the dialog. Now click on the enable checkbox for "Mackie Control".

Connecting control surface and Ardour MIDI ports

If you are using a device that uses ipMIDI, such as the SSL Nucleus, no MIDI port connections are required—Ardour and your control surface will be able to talk to each other automatically.

If you are using a device that uses normal MIDI (via a standard MIDI or USB cable), you need to connect Ardour's Mackie Control in and out ports to the MIDI ports leading to and coming from the control surface.

When you have made these connections once, Ardour will recreate them for you in the future, as long as you leave Mackie Control enabled.

Customizing your control surface

Every possible Mackie Control button can be bound to any action present in Ardour's GUI. Please check your control surface page for suggestions.

Preparing your device for use with Ardour

Most interfaces will require some configuration to send and respond to MCP.

When setting up the control surface, do not use "Pro Tools" mode. Pro Tools is the only DAW that still requires HUI. The rest of world uses Mackie Control Protocol. Ardour does not support HUI.

--- title: Behringer devices in Mackie/Logic Control Mode menu_title: Behringer devices part: subchapter ---

Behringer BCF-2000 Faders Controller

Digramatic Image of the BCF2000

The Behringer BCF-2000 Fader Controller is a control surface with 8 motorized faders, 8 rotary encoders and 30 push buttons. The device is a class compliant USB Midi Interface and also has standard Midi DIN IN/OUT/THRU ports. The device has included a Mackie/Logic Control Emulation Mode since firmware v1.06. If you're devices firmware is older than v1.06 it will require an update before Mackie Control Emulation will work as described here.

Digramatic Image of the BCF2000 in Edit Global Mode

In order to put the controller into Mackie/Logic control mode turn on the unit while holding third button from the left in the top most row of buttons (under the rotary encoder row). Hold the button down until EG or edit global mode is displayed on the LCD screen of the unit. The global parameters can then be edited using the 8 rotary encoders in the top row.

To exit the EG mode press the Exit button. The device is now ready to use with Ardour.

Modes of Operation

Digramatic Image of the BCF2000 Control Modes

The four buttons arranged in a rectangle and located under the Behringer logo are the mode selection buttons in Logic Control Emulation Mode, currently Ardour has implemented support for two of these modes.

The surface can be broken into 8 groups of controls.

  1. The rotary encoders at the top of the device
  2. The first row of buttons under the encoders
  3. The second row of buttons under the encoders
  4. The row of motorized faders
  5. The group of 4 buttons at the top right that will be referred to here as the Shift Group
  6. The group of 4 buttons under the Shift Group referred to here as the Mode Group
  7. The group of 2 buttons under the Mode Group referred to here as the Select Group
  8. The group of 4 buttons under the Select Group referred to here as the Transport Group

Mixer Pan Mode

Digramatic Image of the BCF2000 Control Modes

This is the standard work mode that organizes the control surface to emulate a standard mixer layout where controls for each track/bus are arranged vertically. The order of the faders is either controlled by the order of the tracks in the mixer or can be set manually by the user.

Encoders
Mixer Pans. The red LEDs show the amount of pan left or right
First Row of Buttons
Mixer Mutes. The button led lights if the track is currently muted
Second Row of Buttons
Select Active Track/Bus. Currently selected track/bus is indicated by the button led
Faders
Mixer Gains
Shift Group
The top and bottom left buttons are the simply shifts to change the function of other buttons
The top right is the Fine Control button that allows the increment values sent by by rotary encoders and faders to be a small value for more precise editing. This button can also act as a shift button.
The bottom right is the Global Shift button that allows you to change back to the standard Mixer Pan view from other views and modes. This button can also act as a shift button.
Mode Group
The top two buttons functions are not currently implemented in Ardour.
The bottom left button sets the device to Pan mode and should currently be lit
The bottom right button sets the device to Send mode but will only allow the switch if the currently selected track/bus has a send or sends to control.
Select Group
In this mode they function as bank select left and right. If your session has more than 8 tracks the next set of 8 tracks is selected with the right button and the faders will move to match the current gain settings of that bank of 8 tracks/busses. If the last bank contains less than 8 tracks/busses the unused faders will move to the bottom and the pan lights will all turn off. An unlimited amount of tracks can be controlled with the device.
Transport Group
The upper left button controls Rewind.
The upper right button controls Fast Foreword
The lower left button controls stop
The lower right button controls play

Send Mode

Digramatic Image of the Send Mode

Send mode allows for the top row of encoders to control the sends for a selected channel. One interesting option is to flip the controls from the encoders to the faders by pressing the shift 1 button and the global view button at the same time.

Encoders
In send mode, the encoders control sends from left to right instead of mixer pans. If there are less than 8 sends the behavior of the encoder will be to continue controlling the mixer pan. Visually it's indicated by the change in the LED from originating at the 12 o'clock position to originating at the 7 o'clock position. If FLIP is pressed the encoder will control the mixer gain for the selected track/bus.
First row of buttons
No Change
Second row of buttons
No Change.
Faders
No change unless FLIPis pressed then it controls the send for the selected track/bus.
Shift Group
No Change
Select Group
No Change
Transport Group
No Change

Mixer Pan While Holding Shift 1

Digramatic Image of the Mixer Mode while holding down shift 1

The operations of various buttons change while holding down the Shift 1 button

Encoders
No Change
First row of buttons
These now control the Soloing of each track/bus in the current bank
Second row of buttons
These now control the Enable Record for each track
Faders
No Change
Shift Group
No change
Mode Group
No Change
Select Group
These now change the current bank of tracks being controlled over by one. So if you where controlling tracks 1-8 a push the right button the surface would now control tracks 2-9 pressing the left would then shift back to controlling tracks 1-8.
Transport Group
The upper left now controls turning on and off Loop mode.
The upper right now toggles Click.
The lower left toggles Replace.
The lower right toggles Global Record.

Mixer Pan While Holding Shift 2

Digramatic Image of the Mixer Mode while holding down shift 2

The operations of various buttons change while holding down the Shift 2 button

Encoders
No Change
First row of buttons
FIX ME
Second row of buttons
These now control setting up different Views. See bellow for more info
Faders
No Change
Shift Group
No change
Mode Group
No Change
Select Group
Left button controls Undo(NEEDS VERIFIED)
Transport Group
FIX ME
FIX ME
FIX ME
FIX ME

Views

Digramatic Image of the LED display for different Views

FIX ME

--- title: SSL Nucleus part: subchapter ---

The Nucleus, from Solid State Logic, is a 16 fader Mackie Control device that includes many buttons, separate meters, two LCD displays and other features. The device is not cheap (around US$5000 at the time of writing), and has some design features (or lack thereof) which some Ardour developers find questionable. Nevertheless, it is a very flexible device, and makes a nice 16 fader surface without the need to somehow attach an extender to your main surface.

Pre-configuring the Nucleus

Your Nucleus comes complete with a number of "profiles" for a few well-known DAWs. At the time of writing it does not include one for Ardour (or related products such as Harrison Mixbus).

We have prepared a profile in which as many buttons as possible send Mackie Control messages, which makes the device maximally useful with Ardour (and Mixbus). You can download the profile and load it to your Nucleus using the Edit Profiles button in SSL's Nucleus Remote application. Be sure to select it for the active DAW layer in order to make Ardour work as well as possible. Note: unfortunately, the Nucleus Remote application only runs on OS X or Windows, so Linux users will need access to another system to load the profile. We will provide notes on the profile settings at a future time.

Connecting the Nucleus

Unlike most Mackie Control devices, the Nucleus uses an ethernet connection to send and receive the MIDI messages that make up the Mackie Control protocol. Specifically, it uses a technology called "ipMIDI" which essentially "broadcasts" MIDI messages on a local area network, so that any connected devices (computers, control surfaces, tablets etc.) can participate.

All other DAWs so far that support the Nucleus have chosen to do so by using a 3rd party MIDI driver called "ipMIDI", which creates a number of "virtual" MIDI ports on your computer. You, the user, tells the DAW which ports to connect to, and ipMIDI takes care of the rest.

Ardour has builtin ipMIDI support, with no need of any 3rd party packages, and no need to identify the "ports" to connect to in order to communicate with the Nucleus. This makes setting it up a bit easier than most other systems.

Unless ... you already installed the ipMIDI driver in order to use some other DAW with your Nucleus. If ipMIDI is configured to create any "ports", it is not possible for Ardour's own ipMIDI support to function. We decided to offer both methods of communicating with your Nucleus. If you regularly use other DAWs, and appreciate having ipMIDI permanently set up to communication with the Nucleus—that's OK, you can tell Ardour to use the ipMIDI driver you already have. But if you're not using other DAWs with the Nucleus (and thus have not installed the ipMIDI driver), then you can ignore the ipMIDI driver entirely, and let Ardour connect directly with no configuration.

Connecting via Ardour's own ipMIDI support

This is usable only on computers with no 3rd party ipMIDI driver software installed and configured. If you have the OS X or Windows ipMIDI driver from nerds.de, it MUST be configured to offer ZERO ports before using this method.

Open Preferences > Control Surfaces. Ensure that the Mackie protocol is enabled, then double-click on it to open the Mackie Control setup dialog.

Ensure that the device selected is "SSL Nucleus". The dialog should show a single numerical selector control below it, defining the ipMIDI port number to use (it should almost always be left at the default value of 21928).

Communication is automatically established with the Nucleus and you need do nothing more.

If this does not work, then make sure your network cables are properly connected, and that you are not running other ipMIDI software on the computer.

Connecting via 3rd party ipMIDI support

This is usable only on computers with 3rd party ipMIDI driver software installed and configured for (at least) 2 ports.

Open Preferences > Control Surfaces. Ensure that the Mackie protocol is enabled, then double-click on it to open the Mackie Control setup dialog.

Ensure that the device selected is "SSL Nucleus (via platform MIDI)". The dialog should show four combo/dropdown selectors, labelled (respectively):

You should choose "ipMIDI port 1", "ipMIDI port 1", "ipMIDI port 2" and "ipMIDI port 2" for each of the 4 combo/dropdown selectors.

Communication should be automatically established with the Nucleus.

If this does not work, then make sure your network cables are properly connected, and that you are running the approprate ipMIDI driver and have configured it for 2 (or more) ports.

Nucleus Design Discussion

You might be reading this part of the manual seeking some guidance on whether the Nucleus would make a suitable control surface for your workflows. We don't want to try to answer that question definitively, since the real answer depends on the very specific details of your workflow and situation, but we would like to point out a number of design features of the Nucleus that might change your opinion.

Cons

No Master Faster
It is not possible to control the level of the Master bus or Monitor section. Really don't know what SSL was thinking here.
No dedicated rec-enable buttons
You have to press the "Rec" button and convert the per-strip "Select" buttons into rec-enables
No dedicated automation buttons
You have to press the "Auto" button and convert the first 4 vpots into 4 automation-related buttons, losing your current view of the session.
No buttons with Mackie-defined "Marker" functionality
Mackie's design intentions for the interoperation of the Marker, rewind and ffwd buttons requires profile editing in order to function properly.
No "Dyn" button
This is hard to assign in an edited profile. To be fair, other Mackie Control devices also lack this button.

Pros

Single cable connectivity
No need for multiple MIDI cables to get 16 faders
Broadcast connectivity
Connecting to multiple computers does not require recabling
16 faders from a single box
No need to figure out how to keep extenders together
Meters separated from displays
Contrast with the Mackie Control Universal Pro, where meters interfere with the display
DAW profiles
Easy to flip profiles for use by different DAWs.

Ambiguous

Ability to make buttons generate USB keyboard events
The extent to which this is useful reflects the target DAWs inability to manage all of its functionality via Mackie Control
Sophisticated "profile" editing
It is nice to be able to reassign the functionality of most buttons, but this is only necessary because of the relatively few global buttons on the surface.
Builtin analog signal path
SSL clearly expects users to route audio back from their computer via the Nucleus' own 2 channel output path, and maybe even use the input path as well. They take up a significant amount of surface space with the controls for this signal path, space that could have been used for a master fader or more Mackie Control buttons. The USB audio device requires a proprietary driver, so Linux users can't use this, and OS X/Windows users will have to install a device driver (very odd for a USB audio device these days). The analog path also no doubt adds notable cost to the Nucleus. There's nothing wrong with this feature for users that don't already have a working analog/digital signal path for their computers. But who is going to spend $5000 on a Nucleus that doesn't have this already?
--- title: Mackie Control Setup on Linux part: subchapter ---

Devices using ipMIDI

If you are using a device like the SSL Nucleus that uses ipMIDI, no set up is required other than to ensure that your control surface and computer are both connected to the same network.

Devices using conventional MIDI

Before attempting to use a Mackie Control device that communicates via a standard MIDI cable or a USB cable, you should ensure that your Linux MIDI environment is setup.

--- title: What to do if your Device is not Listed menu_title: Unlisted devices part: subchapter ---

All Mackie Control devices are based on the original Logic Control and the documentation in the user manual that came with it. The Mackie Control and the Mackie Control Pro and so on, all use this same protocol. Any units from other manufactures will also use the same encoding as best the hardware will allow. If the unit in use has more than one Mackie Control option, it is best to choose Logic Control or LC. Any Templates for the buttons should be chosen the same way as the Function key Editor uses these button names. The "Mackie Control" option should be considered default and should be tried with any unlisted device before attemping to create a custom definition file.

--- title: Working With Extenders menu_title: Working With Extenders part: subchapter ---

Extenders will require a custom file as there are no combinations listed at this time. The best way is to start with the mc.device file and copy it to a new name such as xt+mc.device and then edit that file. It is best to name the file with the order the devices are expected to be used in as the position of the master device is specified in this file.

The two lines of interest are:

 <Extenders value="0"/>
 <MasterPosition value="0"/>

Add these two lines if they are not present. The Extenders value is the number of extenders used and should not include the master in that number.

When an Extenders value of greater than 0 is used, extra midi ports will appear for the extenders to be connected to. The MIDI ports for the controllers will be named mackie control #1, mackie control #2 and up. The numbers will go from left to right. That is, from lowest number channel to highest.

The MasterPosition value is the port number the master unit (with the master fader) is connected to. So if there are three surfaces, <MasterPosition value="1"/> will expect the master on the left, <MasterPosition value="2"/> would be master in the middle and <MasterPosition value="3"/> would be master on the right. So the position matches the port name.

The default value of <MasterPosition value="0"/> has the same effect as <MasterPosition value="1"/>.

If the MasterPosition value does not properly match the physcal position and MIDI port, the master fader and global controls will not work. The master unit will act like an extender.

--- title: MIDI Binding Maps part: subchapter ---

Ardour 2.X supported MIDI learning for more or less any control. This was a nice feature that quite a few other DAWs are providing by now, but it didn't allow Ardour to work "out of the box" with sensible defaults for existing commercial MIDI controllers. In Ardour 3 and later versions, we have augmented the MIDI learn feature with the ability to load a MIDI binding map for a given controller, which can set up an arbitrary number of physical controls with anything inside Ardour that can be controlled.

Currently (August 2016), we have presets for the following devices/modes:

At this time, new binding maps need to be created with a text editor.

MIDI binding maps are accessible by double-clicking Edit > Preferences > Control Surfaces > Generic MIDI. Ardour will retain your selection after you choose one.

Creating new MIDI maps

The Basic Concept

Since the beginning of time (well, sometime early in the 2.X series), Ardour has had the concept of identifying each track and bus with a remote control ID. This ID uniquely identifies a track or bus so that when messages arrive from elsewhere via MIDI or OSC , we can determine which track or bus they are intended to control. Ardour has a number of ways of assigning remote control IDs, but they don't really matter very much when creating MIDI binding maps, so we won't discuss that here. You just need to know that there is a "first track" and its remote control ID is 1, and so on.

Getting Started

MIDI bindings are stored in files with the suffix ".map" attached to their name. The minimal content looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<ArdourMIDIBindings version="1.0.0" name="The name of this set of
bindings">
</ArdourMIDIBindings>

So, to start, create a file with that as the initial contents.

On OS X, Ardour loads midi maps from its binary-bundle folder in Ardour-<version>/midi_maps/ and checks various other locations as well (defined by the ARDOUR_MIDIMAPS_PATH environment variable). On GNU/Linux the easiest is to save the file to ~/.config/ardour3/midi_maps/.

Finding out what your MIDI control surface sends

This is the most complex part of the job, but its still not very hard. You need to connect the control surface to an application that will show you the information that the device sends each time you modify a knob, slider, button etc. There are a variety of such applications (notably gmidimon and kmidimon, but you can actually use Ardour for this if you want. Start Ardour in a terminal window, connect MIDI ports up, and in the Preferences window, enable "Trace Input" on the relevant MIDI port. A full trace of the MIDI data received will show up in the terminal window. (Note: in Ardour3, you get a dedicated, custom dialog for this kind of tracing.)

Types of Bindings

There are two basic kinds of bindings you can make between a MIDI message and something inside Ardour. The first is a binding to a specific parameter of a track or bus. The second is a binding to a function that will change Ardour's state in some way.

Binding to Track/Bus controls

A track/bus binding has one of two basic structures

<Binding msg specification uri="... control address ..."/> <Binding msg specification function="... function name ..."/>

Message specifications

You can create a binding for either 3 types of channel messages, or for a system exclusive ("sysex") message. A channel message specification looks like this:

<Binding channel="1" ctl="13" ....

This defines a binding for a MIDI Continuous Controller message involving controller 13, arriving on channel 1. There are 16 MIDI channels, numbered 1 to 16. Where the example above says ctl, you can alternatively use note (to create binding for a Note On message) or pgm (to create a binding for a Program Change message).

As of Ardour 4.2, enc-r, enc-l, enc-2 and enc-b may be used for surfaces that have encoders that send offsets rather than values. These accept Continuous Controller messages but treat them as offsets. These are good for banked controls as they are always at the right spot to start adjusting. ( Learn more about working with encoders )

You can also bind sysex messages:

<Binding sysex="f0 0 0 e 9 0 5b f7" .... <Binding sysex="f0 7f 0 6 7 f7" ....

The string after the sysex= part is the sequence of MIDI bytes, as hexadecimal values, that make up the sysex message.

Finally, you can bind a totally arbitrary MIDI message:

<Binding msg="f0 0 0 e 9 0 5b f7" .... <Binding msg="80 60 40" ....

The string after the msg= part is the sequence of MIDI bytes, as hexadecimal values, that make up the message you want to bind. Using this is slightly less efficient than the other variants shown above, but is useful for some oddly designed control devices.

As of Ardour 4.6 it is possible to use multi-event MIDI strings such as two event CC messages, RPN or NRPN.

The sysex= and msg= bindings will only work with function= or action= control addresses. They will not work with the uri= control addresses. Controls used with uri= require a Value which is only available in a known place with channel mode MIDI events.

Control address

A control address defines what the binding will actually control. There are quite a few different things that can be specified here:

/route/gain
the gain control ("fader") for the track/bus
/route/trim
the trim control for the track/bus (new in 4.1)
/route/solo
a toggleable control for solo (and listen) of the track/bus
/route/mute
a toggleable control to mute/unmute the track/bus
/route/recenable
a toggleable control to record-enable the track
/route/panwidth
interpreted by the track/bus panner, should control image "width"
/route/pandirection
interpreted by the track/bus panner, should control image "direction"
/route/plugin/parameter
the Mth parameter of the Nth plugin of a track/bus
/route/send/gain
the gain control ("fader") of the Nth send of a track/bus

Each of the specifications needs an address, which takes various forms too. For track-level controls (solo/gain/mute/recenable), the address is one the following:

a number, eg. "1"
identifies a track or bus by its remote control ID
B, followed by a number
identifies a track or bus by its remote control ID within the current bank (see below for more on banks)
one or more words
identifies a track or bus by its name

For send/insert/plugin controls, the address consists of a track/bus address (as just described) followed by a number identifying the plugin/send (starting from 1). For plugin parameters, there is an additional third component: a number identifying the plugin parameter number (starting from 1).

One additional feature: for solo and mute bindings, you can also add momentary="yes" after the control address. This is useful primarily for NoteOn bindings—when Ardour gets the NoteOn it will solo or mute the targetted track or bus, but then when a NoteOff arrives, it will un-solo or un-mute it.

Bindings to Ardour "functions"

Rather than binding to a specific track/bus control, it may be useful to have a MIDI controller able to alter some part of Ardour's state. A binding definition that does this looks like this:

<Binding channel="1" note="13" function="transport-roll"/>

In this case, a NoteOn message for note number 13 (on channel 1) will start the transport rolling. The following function names are available:

transport-stop
stop the transport
transport-roll
start the transport "rolling"
transport-zero
move the playhead to the zero position
transport-start
move the playhead to the start marker
transport-end
move the playhead to the end marker
loop-toggle
turn on loop playback
rec-enable
enable the global record button
rec-disable
disable the global record button
next-bank
Move track/bus mapping to the next bank (see Banks below)
prev-bank
Move track/bus mapping to the previous bank (see Banks below)

Binding to Ardour "actions"

You can also bind a sysex or arbitrary message to any of the items that occur in Ardour's main menu (and its submenus). The best place to look for the (long) list of how to address each item is in your keybindings file, which will contain lines that look like this:

(gtk_accel_path "<Actions>/Editor/temporal-zoom-in" "equal")

To create a binding between an arbitrary MIDI message (we'll use a note-off on channel 1 of MIDI note 60 (hex) with release velocity 40 (hex)), the binding file would contain:

<Binding msg="80 60 40" action="Editor/temporal-zoom-in"/>

The general rule, when taken an item from the keybindings file and using it in a MIDI binding is to simply strip the <Action> prefix of the second field in the keybinding definition.

Banks and Banking

Because many modern control surfaces offer per-track/bus controls for far fewer tracks & busses than many users want to control, Ardour offers the relatively common place concept of banks. Banks allow you to control any number of tracks and/or busses easily, regardless of how many faders/knobs etc. your control surface has.
To use banking, the control addresses must be specified using the bank relative format mentioned above ("B1" to identify the first track of a bank of tracks, rather than "1" to identify the first track).

One very important extra piece of information is required to use banking: an extra line near the start of the list of bindings that specifies how many tracks/busses to use per bank. If the device has 8 faders, then 8 would be a sensible value to use for this. The line looks like this:

<DeviceInfo bank-size="8"/>

In addition, you probably want to ensure that you bind something on the control surface to the next-bank and prev-bank functions, otherwise you and other users will have to use the mouse and the GUI to change banks, which rather defeats the purpose of the bindings.

A Complete (though muddled) Example

<?xml version="1.0" encoding="UTF-8"?>
<ArdourMIDIBindings version="1.0.0" name="pc1600x transport controls">
  <DeviceInfo bank-size="16"/>
  <Binding channel="1" ctl="1"   uri="/route/gain B1"/>
  <Binding channel="1" ctl="2"   uri="/route/gain B2"/>
  <Binding channel="1" ctl="3"   uri="/route/send/gain B1 1"/>
  <Binding channel="1" ctl="4"   uri="/route/plugin/parameter B1 1 1"/>
  <Binding channel="1" ctl="6"   uri="/bus/gain master"/>

  <Binding channel="1" note="1"  uri="/route/solo B1"/>
  <Binding channel="1" note="2"  uri="/route/solo B2" momentary="yes"/>

  <Binding channel="1" note="15"  uri="/route/mute B1" momentary="yes"/>
  <Binding channel="1" note="16"  uri="/route/mute B2" momentary="yes"/>

  <Binding sysex="f0 0 0 e 9 0 5b f7" function="transport-start"/>
  <Binding sysex="f0 7f 0 6 7 f7" function="rec-disable"/>
  <Binding sysex="f0 7f 0 6 6 f7" function="rec-enable"/>
  <Binding sysex="f0 0 0 e 9 0 53 0 0 f7" function="loop-toggle"/>

  <Binding channel="1" note="13" function="transport-roll"/>
  <Binding channel="1" note="14" function="transport-stop"/>
  <Binding channel="1" note="12" function="transport-start"/>
  <Binding channel="1" note="11" function="transport-zero"/>
  <Binding channel="1" note="10" function="transport-end"/>
</ArdourMIDIBindings>

Please note that channel, controller and note numbers are specified as decimal numbers in the ranges 1-16, 0-127 and 0-127 respectively (the channel range may change at some point).

--- title: Working With Encoders in Ardour menu_title: Working With Encoders part: subchapter ---

Encoders are showing up more frequently on controllers. However, they use the same MIDI events as Continuous Controllers and they have no standard way of sending that information as MIDI events. Ardour 4.2 has implemented 4 of the more common ways of sending encoder information.

Encoders that send the same continuous values as a pot would are not discussed here as they are already supported by ctl.

Encoders as this page talks about them send direction and offset that the DAW will add to or subtract from the current value.

The 4 kinds of encoder supported are:

If the wrong one is chosen, either the positive or negative side will act incorrectly. It is not really possible to auto detect which one the controller is using. Trial and error is the only way if the specification of the controller is not known.

Many controllers have more than one choice as well, check the manual for the surface.

--- title: MIDI Learn part: subchapter ---

Philosophy

There are no "best" ways to map an arbitrary MIDI controller for controlling Ardour. There may be very legitimate reasons for different users to prefer quite different mappings.

On every platform that Ardour runs on, there are excellent free-of-charge tools for making connections between MIDI hardware and "virtual" MIDI ports like the ones that Ardour creates and uses. Rather than waste precious developer time replicating these connection/patch managers, we prefer to leverage their existence by having users rely on them to actually connect Ardour to other MIDI devices and software. On OS X, we recommend Pete Yandell's MIDI Patchbay. On Linux, a wide variety of tools are available including QJackctl, aconnect, Patchage, and more.

Basics

  1. Enable Generic MIDI control: Edit > Preferences > Control Surfaces > Generic MIDI
  2. Connect Ardour's MIDI port named control to whatever hardware or software you want (using a MIDI patchbay app)
  3. Middle-click on whatever on-screen fader, plugin parameter control, button etc. you want to control
  4. A small window appears that says "Operate Controller now"
  5. Move the hardware knob or fader, or press the note/key.
  6. The binding is complete. Moving the hardware should control the Ardour fader etc.

Avoiding work in the future

If you want the bindings you set up to be used automatically in every session, the simplest thing to do is to use Session > Save Template. Then, when creating new sessions, select that template and all the bindings will be automatically set up for you.

--- title: Using the Presonus Faderport menu_title: Presonus Faderport part: subchapter ---

Since version 4.5, Ardour has had full support for the Presonus Faderport. This is a compact control surface featuring a single motorized fader, a single knob (encoder) and 24 buttons with fixed labels. It is a relatively low-cost device that functions very well to control a single (selected) track or bus, along with a variety of other "global" settings and conditions.

Connecting the Faderport

The Faderport comes with a single USB socket on the back. Connect a suitable USB cable from there to a USB port on your computer. As of the end of 2015, you should avoid USB3 ports—these cause erratic behaviour with the device. This issue might get fixed by Presonus in the future.

Ardour uses the Faderport in what Presonus calls "native" mode. You do not need to do anything to enable this—Ardour will set the device to be in the correct mode. In native mode, the Faderport sends and receives ordinary MIDI messages to/from the host, and the host understands the intended meaning of these messages. We note this detail to avoid speculation about whether Ardour supports the device via the HUI protocol—it does not.

The Faderport will be automatically recognized by your operating system, and will appear in any of the lists of possible MIDI ports in both Ardour and other similar software.

To connect the Faderport to Ardour, open the Preferences dialog, and then click on "Control Surfaces". Click on the "Enable" button in the line that says "Faderport" in order to activate Ardour's Faderport support. Then double click on the line that says "Faderport". A new dialog will open, containing (among other things) two dropdown selectors that will allow you to identify the MIDI ports where your Faderport is connected.

the Faderport configuration dialog

Once you select the input and output port, Ardour will initialize the Faderport and it will be ready to use. You only need do this once: once these ports are connected and your session has been saved, the connections will be made automatically in this and other future sessions.

You do not need to use the power supply that comes with the Faderport but without it, the fader will not be motorized. This makes the overall experience of using the Faderport much less satisfactory, since the fader will not move when Ardour tells it to, leading to very out-of-sync conditions between the physical fader position and the "fader position" inside the program.

Using the Faderport

The Faderport's controls can be divided into three groups:

  1. Global controls such as the transport buttons
  2. Controls which change the settings for particular track or bus
  3. Controls which alter which track or bus is modified by the per-track/bus controls.

Because the Faderport has only a single set of per-track controls, by default those controls operate on the first selected track or bus. If there is no selected track or bus, the controls will do nothing.

Transport Buttons

The transport buttons all work as you would expect.

Rewind

When pressed on its own, starts the transport moving backwards. Successive presses speed up the "rewind" behaviour.

If pressed while also holding the Stop button, the playhead will return to the zero position on the timeline.

If pressed while also holding the Shift button, the playhead will move to the session start marker.

Fast Forward

When pressed on its own, starts the transport moving faster than normal. Successive presses speed up the "fast forward" behaviour.

If pressed while also holding the Shift button, the playhead will move to the session end marker.

Stop
Stops the transport. Also used in combination with the Rewind button to "return to zero".
Play
Starts the transport. If pressed while the transport is already rolling at normal speed, causes the playhead to jump to the start of the last "roll" and continue rolling ("Poor man's looping").
Record Enable
Toggles the global record enable setting

Other Global Controls

The Mix, Proj, Trns buttons do not obviously correspond any particular functions or operations in Ardour. We have therefore allowed users to choose from a carefully curated set of possible actions that seem related to the button labels in some clear way. This can be done via the Faderport configuration dialog accessed via Preferences > Control Surfaces. Each button has 3 possible actions associated with it:

Click on the relevant drop-down selector to pick an action as you prefer.

The User button also has no obvious mapping to specific Ardour functionality, so we allow users to choose from any possible GUI action. The menu for selecting the action is somewhat confusing and it can be hard to find what you're looking for. However, all possible actions are there, so keep looking!

Mix

Possible actions include:

Proj

Possible actions include:

Trns

Possible actions include:

Undo/Redo
Undo Causes the last operation carried out in the editor to be undone. When pressed in conjuction with the Shift button, it causes the most recent undone operation to be re-done.
Punch

When pressed on its own, toggles punch recording. If there is no punch range set for the session, this will do nothing.

When pressed in conjunction with the Shift button, this moves the playhead to the previous Marker

User

See above. Any and all GUI-initiated actions can be driven with by pressing this button on its own, or with a "long" press.

When pressed in conjunction with the Shift button, this will move the playhead to the next marker.

Loop

When pressed on its own, this toggles loop playback. If the Ardour preference "Loop-is-mode" is enabled, this does nothing to the current transport state. If that preference is disabled, then engaging loop playback will also start the transport.

When pressed in conjunction with the Shift button, this will create a new (unnamed) marker at the current playhead position.

Per-track Controls

Mute
This toggles the mute setting of the currently controlled track/bus. The button will be lit if the track/bus is muted.
Solo
This toggles the solo (or listen) setting of the currently controlled track/bus. The button will be lit if the track/bus is soloed (or set to listen mode).
Rec
This toggles the record-enabled setting of the currently controlled track/bus. The button will be lit if the track is record-enabled. This button will do nothing if the Faderport is controlling a bus.
Fader
The fader controls the gain applied to the currently controlled track/bus. If the Faderport is powered, changing the gain in Ardour's GUI or via another control surface, or via automation, will result in the fader moving under its own control.
Knob/Dial/Encoder

The knob controls 1 or 2 pan settings for the current controlled track/bus. When used alone, turning the knob controls the "azimuth" or "direction" (between left and right) for the panner in the track/bus (if any). This is all you need when controlling tracks/busses with 1 input and 2 outputs.

If controlling a 2 input/2 output track/bus, Ardour's panner has two controls: azimuth (direction) and width. The width must be reduced to less than 100% before the azimuth can be changed. Pressing the "Shift" button while turning the knob will alter the width setting.

The knob can also be turned while the "User" button is held, in order to modify the input gain for the currently controlled track.

Read
Enables playback/use of fader automation data by the controlled track/bus.
Write
Puts the fader for the controlled track/bus into automation write mode. While the transport is rolling, all fader changes will be recorded to the fader automation lane for the relevant track/bus.
Touch
Puts the fader for the controlled track/bus into automation touch mode. While the transport is rolling, touching the fader will initiate recording all fader changes until the fader is released. When the fader is not being touched, existing automation data will be played/used to control the gain level.
Off
This disables all automation modes for the currently controlled track/bus. Existing automation data will be left unmodified by any fader changes, and will not be used for controlling gain.

Track Selection Controls

You can manually change the track/bus controlled by the Faderport by changing the selected track in Ardour's editor window. If you select more than 1 track, the Faderport will control the first selected track and only that track/bus.

Left (arrow)
This causes the Ardour GUI to select the previous track/bus (using the current visual order in the editor window), which will in turn cause the Faderport to control that track. If there is no previous track/bus, the selected track/bus is left unchanged, and the Faderport continues to control it.
Right (arrow)
This causes the Ardour GUI to select the next track/bus (using the current visual order in the editor window), which will in turn cause the Faderport to control that track. If there is no next track/bus, the selected track/bus is left unchanged, and the Faderport continues to control it.
Output

Pressing the Output button causes the Faderport to control the fader, pan, mute and solo settings of the Master bus. If your session does not contain a Master bus, it does nothing. This is a toggle button—pressing it again returns Faderport to controlling whichever track/bus was selected before the first press of the Output button.

If your session uses Ardour's monitor section, you can use Shift-Output to assign it to the Faderport in the same way that Output assigns the Master bus. This is also a toggle setting, so the second Shift-Output will return the Faderport to controlling whichever track/bus was selected before.

If you press Shift-Output after a single press to Output (i.e. control the Monitor Section while currently controlling the Master bus) or vice versa (i.e. control the Master bus while currently controlling the Monitor Section), the press will be ignored. This avoids getting into a tricky situation where it is no longer apparent what is being controlled and what will happen if you try to change it.

Bank
The "Bank" button is currently not used by Ardour

--- title: Using the Ableton Push 2 menu_title: Ableton Push 2 part: subchapter ---

the Ableton Push 2 surface

Since version 5.4, Ardour has had extensive support for the Ableton Push2. This is an expensive but beautifully engineered control surface primarily targetting the workflow found in Ableton's Live software and other similar tools such as Bitwig. As of version 5.4, Ardour does not offer the same kind of workflow, so we have designed our support for the Push 2 to be used for mixing and editing and musical performance, without the clip/scene oriented approach in Live. This may change in future versions of Ardour.

Connecting the Push 2

Plug the USB cable from the Push 2 into a USB2 or USB3 port on your computer. For brighter backlighting, also plug in the power supply (this is not necessary for use).

The Push 2 will be automatically recognized by your operating system, and will appear in any of the lists of possible MIDI ports in both Ardour and other similar software.

To connect the Push 2 to Ardour, open the Preferences dialog, and then click on "Control Surfaces". Click on the "Enable" button in the line that says "Ableton Push 2" in order to activate Ardour's Push 2 support.

Once you select the input and output port, Ardour will initialize the Push 2 and it will be ready to use. You only need do this once: once these ports are connected and your session has been saved, the connections will be made automatically in this and other future sessions.

Push 2 Configuration

The only configuration option at this time is whether the pads send aftertouch or polyphonic pressure messages. You can alter this setting via the Push 2 GUI, accessed by double-clicking on the "Push 2" entry in the control surfaces list.

the Push 2 configuration dialog

Basic Concepts

With the Push 2 support in Ardour 5.4, you can do the following things:

Perform using the 8 x 8 pad "grid"
The Push 2 has really lovely pressure-sensitive pads that can also generate either aftertouch or note (polyphonic) pressure.
Global Mixing
See many tracks at once, and control numerous parameters for each.
Track/Bus Mixing
View a single track/bus, with even more parameters for the track.
Choose the mode/scale, root note and more for the pads
37 scales are available. Like Live, Ardour offers both "in-key" and "chromatic" pad layouts.
… plus a variety of tasks related to transport control, selection, import, click track control and more.

Musical Performance

Messages sent from the 8x8 pad grid and the "pitch bend bar" are routed to a special MIDI port within Ardour called "Push 2 Pads" (no extra latency is incurred from this routing). Although you can manually connect this port to whatever you wish, the normal behaviour of Ardour's Push 2 support is to connect the pads to the most recently selected MIDI track.

This means that to play a soft-synth/instrument plugin in a given MIDI track with the Push 2, you just need to select that track.

If multiple MIDI tracks are selected at once, the first selected track will be used. Note that messages originating from all other controls on the Push 2 will not not be delivered to the "Push 2 Pads" port. This makes no difference in practice, because the other controls do not send messages that are useful for musical performance.

Global Mix

This is the default mode that Ardour will start the Push 2 in. In this mode, the 8 knobs at the top of the device, the 8 buttons below them, the video display and the 8 buttons below that are combined to provide a global view of the session mix.

global mix mode on Push2 screen

The upper buttons are labelled by text in the video display just below them. Pressing one of the buttons changes the function of the knobs, and the parameters that will shown for each track/bus in the display.

As of Ardour 5.4, the possible parameters are:

Volumes
The display shows a knob and text displaying the current gain setting for the track, and a meter that corresponds precisely to the meter shown in the Ardour GUI for that track. Changing the meter type (e.g. from Peak to K12) in the GUI will also change it in the Push 2 display. The physical knob will alter track/bus gain.
Pans
The display shows a knob indicating the pan direction/azimuth for the corresponding track/bus. Turning the physical knob will pan the track left and right. If the track/bus has no panner (i.e. it has only a single output), no knob is shown and the physical knob will do nothing.
Pan Widths

For tracks with 2 outputs, the display will show a knob indicating the pan width setting for the corresponding track/bus. The physical knob can be turned to adjust the width.

Unlike many DAWs, Ardour's stereo panners have "width" parameter that defaults to 100%. You cannot change the pan direction/azimuth of a track with 100% width, but must first reduce the width in order to pan it. Similarly, a track panned anywhere other than dead center has limits on the maximum width setting. If these concepts are not familiar to you, please be aware than many DAWs use a "panner" that actually implement "balance" and not "panning", hence the difference.

A Sends
The display shows a knob indicating the gain level for the first send in that track. If the track has no send, no knob will be shown, and the physical knob for that track will do nothing.
B Sends, C Sends, D Sends
Like "A Sends", but for the 2nd, 3rd and 4th sends of a track/bus respectively.

To change which tracks are shown while in global mix mode, use the left and right arrow/cursor keys just below and to the right of the display. Tracks and busses that are hidden in Ardour's GUI will also be hidden from display on the Push 2.

To select a track/bus directly from the Push 2, press the corresponding button below the display. The track name will be highlighted, and the selection will change in Ardour's GUI as well (and also any other control surfaces).

Soloing and Muting in Global Mix mode

The Solo and Mute buttons to the left of the video display can be used to solo and mute tracks while in Global Mix mode. The operation will be applied to the first currently selected track(s).

There are two indications that one or more tracks are soloed:

  1. The solo button will blink red
  2. Track names will be prefixed by "*" if they are soloed, and "-" if they are muted due to soloing.

To cancel solo, either:

Track Mix

Track Mix mode allows you to focus on a single track in more detail than is possible in Global Mix mode. To enter (or leave) Track Mix mode, press the "Mix" button.

In Track Mix mode, various aspects of the state of the first selected track/bus will be displayed on the Push 2. Above the display, the first 4 knobs control track volume (gain), pan directiom/azimuth, pan width, and where appropriate, track input trim.

Below the display, 7 buttons provide immediate control of mute, solo, rec-enable, monitoring (input or disk or automatic), solo isolate and solo safe state. When a a track is muted due to other track(s) soloing, the mute button will flash (to differentiate from its state when it is explicitly muted).

The video display also shows meters for the track, which as in Global Mix mode, precisely match the meter type shown in Ardour's GUI. There are also two time displays showing the current playhead position in both musical (beats|bars|ticks) format, and as hours:minutes:seconds.

To change which track is visible in Track Mix mode, use the left/right arrow/cursor keys just below and to the right of the video display.

Scale Selection

Press the Scale button to enter Scale mode. The display will look like this:

track mix mode on Push2 screen

In the center, 37 scales are presented. Scroll through them by either using the cursor/arrow keys to the lower right of the display, or the knobs above the display. The scale will change dynamically as you scroll. You can also scroll in whole pages using the upper right and upper left buttons above the display (they will display "<" and ">" if scrolling is possible).

To change the root note of the scale, press the corresponding button above or below the video display.The button will be lit to indicate your selection (and the text will be highlighted).

By default, Ardour configures the Push 2 pads to use "in-key" mode, where all pads correspond to notes "in" the chosen scale. Notes corresponding to the root note, or the equivalent note in higher octaves, are highlighted with the color of the current target MIDI track.

In "chromatic" mode, the pads correspond to a continuous sequence of notes starting with your selected root note. Pads corresponding to notes in the scale are illuminated; those corresponding to the root note are lit with the color the current target MIDI track. Other pads are left dark, but you can still play them.

To switch between them, press button on the lower left of the video display; the text above it will display the current mode (though it is usually visually self-evident from the pad lighting pattern).

To leave Scale mode, press the "Scale" button again. You may also use the upper left button above the display, though if you have scrolled left, it may require more than one press.

Specific Button/Knob Functions

In addition to the layouts described above, many (but not all) of the buttons and knobs around the edges of the Push 2 will carry out various functions related to their (illuminated) label. As of Ardour 5.4, this includes:

Metronome (button and adjacent knob)
Enables/disables the click (metronome). The knob directly above it will control the volume (gain) of the click.
Undo/Redo
Undo or redo the previous editing operation.
Delete
Deletes the currently selected region, or range, or note. Equivalent to using Ctrl/Cmd-x on the keyboard.
Quantize
If a MIDI region is selected in Ardour, this will open the quantize dialog.
Duplicate
Duplicates the current region or range selection.
Rec-Enable
Enables and disables Ardour's global record enable state.
Play
Starts and stops the transport. Press Shift-Play to return to the session start.
Add Track
Opens Ardour's Add Track/Bus dialog.
Browse
Open's Ardour's import dialog to select and audition existing audio and MIDI files.
Master
Pressing this button jumps directly to Track Mix mode, with the master out bus displayed.
Cursor arrows
These are used by some modes to navigate within the display (e.g Scale mode). In other modes, the up/down cursor arrows will scroll the GUI display up and down, while the left/right cursor arrows will generally scroll within the Push 2 display itself.
Repeat
Enables/disables loop playback. This will follow Ardour's "loop is mode" preference, just like the loop button in the Ardour GUI.
Octave buttons
These shift the root note of the current pad scale up or down by 1 octave.
Page buttons
These scroll Ardour's editor display left and right along the timeline.
Master (top right) knob
This knob controls the gain/volume of Ardour's main output. If the session has a monitor saec

--- title: Configuring MIDI part: chapter --- --- title: Using External MIDI Devices part: subchapter ---

Add content

--- title: Setting Up MIDI part: subchapter ---

What Can Ardour Do With MIDI?

MIDI is a way to describe musical performances and to control music hardware and software.

Ardour can import and record MIDI data, and perform a variety of editing operations on it. Furthermore, MIDI can be used to control various functions of Ardour.

MIDI Handling Frameworks

MIDI input and output for Ardour are handled by the same "engine" that handles audio input and output. Up to release 3.5, that means that all MIDI I/O takes place via JACK. JACK itself uses the native MIDI support of the operating system to receive and send MIDI data. The native MIDI support provides device drivers for MIDI hardware and libraries needed by software applications that want to work with MIDI.

OS X
CoreMIDI is the standard MIDI framework on OSX systems.
Linux
ALSA MIDI is the standard MIDI framework on Linux systems.

On Linux systems, QJackCtl control software displays ALSA MIDI ports under its "ALSA" tab (it does not currently display CoreMIDI ports). By contrast, JACK MIDI ports show up under the MIDI tab in QJackCtl.

JACK MIDI Configuration

By default, JACK will not automatically detect and use existing MIDI ports on your system. You must choose one of several ways of bridging between the native MIDI frameworks (e.g. CoreMIDI or ALSA) and JACK MIDI, as described in the sections below.

--- title: MIDI on Linux part: subchapter ---

The right approach for using MIDI on Linux depends on which version of JACK you use. The world divides into:

Systems using JACK 1, versions 0.124 or later
On these systems, just start JACK with the -X alsa_midi server argument. To support legacy control applications, you can also use the -X seq argument to the ALSA backend of JACK and get the exact same results.
All others
Use a2jmidid to act as a bridge between ALSA MIDI and JACK. Do not use the -X seq or -X raw arguments—the timing and performance of these options is not acceptable.

a2jmidid

a2jmidid is an application that bridges between the system MIDI ports and JACK.

First you should make sure that there is no ALSA sequencer support enabled in JACK. To do that open QJackCtl's Setup window.

Set Settings > MIDI Driver to none. Then uncheck the Misc > Enable ALSA Sequencer support option.
Now it's time to restart your jack server before going on.

Check for a2jmidid availability

First, check whether a2jmidid is already installed in your system. After starting your JACK server, go to the command line and type

a2jmidid -e

If a2jmidid does not exist, install it with the software manager of your Linux distribution and try again.

Check available MIDI ports

If you have correctly configured JACK for MIDI, then your MIDI ports should appear in qjackctl under Connections > MIDI .

Making it automatic

Once you've verified that the ports appear in JACK as expected, you can make this happen whenever you start JACK.

If you use a newer version of JACK 1, just make sure the -X alsa_midi or -X seq options are enabled for whatever technique you use to start JACK.

For other versions of JACK, add a2jmidid -e & as an "after start-up" script in the Setup > Options tab of QJackCtl, so that it is started automatically whenever you start JACK.

Is this true anymore in Ardour 5? This section may have been relevant in Ardour 3, but it might not be relevant anymore.

--- title: MIDI on OS X part: subchapter ---

In order for CoreMIDI to work with Jack MIDI, a CoreMIDI-to-JACK-MIDI bridge is required. This feature is available on versions equal to or great than version 0.89 of JackOSX.

Routing MIDI

Inside Ardour

MIDI ports show up in Ardour's MIDI connection matrix in multiple locations. Bridged CoreMIDI ports as well as JACK MIDI ports that have been created by other software clients will show up under the "Other" tab. Bridged CoreMIDI hardware ports show up under the "Hardware" tab.

External Applications

There are multiple options for connecting MIDI ports outside of Ardour.

--- title: Ardour's Interface part: part --- --- title: About Ardour's Interface part: chapter ---

In Ardour, you work in two main windows: the Editor and the Mixer.

Ardour's mixer window Ardour's editor window
  1. Main menu
  2. Status bar
  3. Transport bar & Times
  1. Mode switch
  2. The Editor window
  3. a track's mixer strip
  1. Editors List
  2. The Mixer window
  3. Favorite plugins
  1. Track list
  2. Group list
  3. Master strip

To switch between those windows, use the buttons (#4 Mode switch in the upper right), the shortcut M, or the menu Window > Editor (or Mixer) > Show. Both windows can be visible at the same time (eg. for a multi-monitor setup) using Detach in the same menu.

--- title: Main Menu part: chapter ---

Add content

--- title: Status Bar part: chapter --- The status bar

The status bar is an informative bar at the top of the window, showing:

The buffers are labelled as p for playback and c for capture. If the system is fast enough, these buffers should be 100% full at all times, showing the system has time to precompute all the data before delivering it to the audio system. A buffer constantly under 20% is a sign of an underpowered computer system or of too much processing.

An Xrun (short for buffer over- or under-run) happens when the system has been forced to skip audio frames, e.g. if the latency asked is too short for the computing power of the machine. It usually results in clicks, pops and crackles if it happens while recording.

The log button turns yellow when a warning is shows, and red when an error occurs. Clicking the log button gives acces to the log.

--- title: Transport bar and times part: chapter ---

Ardour offers many ways to control playback of your session, including the transport bar, key bindings and remote controls. You can also use markers to define locations or ranges within the session and rapidly move around between them.

Ardour's transport bar

If you synchronize Ardour with other devices then some or all of these control methods may be unavailable—depending on the synchronization protocol, Ardour may respond only to commands sent from its master device(s).

The Transport Bar at the top of the window is made of:

--- title: The Transport Bar part: subchapter ---

The Transport Bar groups all the actions regarding the control of playback and recording.

The transport controls

This bar is made of (from left to right):

Language in the above paragraphs is awkward

All these actions are bound to keyboard shortcuts, which allows for speedier use and more focused work.

Under these buttons is the Shuttle Speed Control that allows to scrub through the audio quickly.

The Shuttle Speed Control supports 2 operating modes, that can be chosen with right click > Mode:

The mode is displayed on the right of the control. The current playback speed is shown by a green slider, that is square and centered when the playback speed is normal (1X) and becomes a circle when its changed. The further from the center the slider is set, the faster the playback will scrub in both directions, as displayed on the left of the control.

The 3 vertical buttons on the right of the transport bar control the behaviour of the playhead:

--- title: Times part: subchapter ---

Clocks in Ardour are used to display time values precisely. In many cases, they are also one way to edit (change) time values, and in a few cases, the only way. All clocks share the same basic appearance and functionality, which is described below, but a few clocks serve particularly important roles.

Transport Clocks

In the transport bar of the editor window there are two clocks (unless you are on a very small screen), that display the current position of the playhead and additional information related to transport control and the timeline. These are called the transport clocks; the left one is the primary transport clock and the right one is the secondary transport clock. They look like this:

An image of the transport clocks in Ardour 3

Editing the time in the transport clocks will reposition the playhead in the same way that various other editing operations will.

The Big Clock

To show the current playhead position in a big, resizable window, activate Window > Big Clock. The big clock is very useful when you need to work away from the screen but still want to see the playhead position clearly (such as when working with a remote control device across a room). The big clock will change its visual appearance to indicate when active recording is taking place. Below on the left is a screenshot showing a fairly large big clock window filling a good part of the display, and on the right, the same clock during active recording.

an image of the big clock filling a screen an image of the big clock while recording

The Special Role of the Secondary Transport Clock

On a few occasions Ardour needs to display time values to the user, but there is no obvious way to specify what units to use. The most common case is the big cursor that appears when dragging regions. For this and other similar cases, Ardour will display time using the same units as the secondary clock.

Why are there two transport clocks?

Having two transport clocks lets you see the playhead position in two different time units without having to change any settings. For example, you can see the playhead position in both timecode units and BBT time.

Selection and Punch Clocks

The transport bar also contains a set of 5 clocks that show the current selection range and punch ranges. Clicking on the punch range clocks will locate to either the beginning or end of the punch range. Similarly, clicking on the range clocks will locate to either the beginning or end of the current selection. In this screen shot there is no current selection range, so the selection clocks show an "off" state.

An image of the the selection and punch clocks in Ardour 3

Clock Modes

Every clock in Ardour has four different, selectable clock modes. Each mode displays time using different units. You can change the clock mode by Right-clicking on the clock and selecting the desired mode from the menu. Some clocks are entirely independent of any other clock's mode; others are linked so that changing one changes all clocks in that group. The different modes are:

Timecode
Time is shown as SMPTE timecode in Hours:Minutes:Seconds:Frames, measured from the timecode zero point on the timeline (which may not correspond to the session start and/or absolute zero on the timeline, depending on configurable timecode offsets). The frames value is dictated by either the session FPS setting, or, if slaved to an external timecode master, the master's setting. In the transport clocks, the FPS value is shown below the time display, along with an indication of the current timecode source (INT means that Ardour is its own timecode source).
BBT
Time is shown as Bars:Beats:Ticks, indicating musical time measured from the start of the session. The transport clocks show the current tempo in bpm and meter below the time display.
Minutes:Seconds
Time is shown as Hours:Minutes:Seconds.Milliseconds, measured from the absolute start of the timeline (ignoring the session start and any timecode offsets).
Samples
Time is shown as a sample count from the absolute start of the timeline (ignoring the session start and any timecode offsets). The number of samples per second is given by the current sample rate, and in the transport clocks, this rate is shown below the time display along with any pullup/pulldown adjustment.

Special Modes for the Transport Clocks

In addition to the time-unit modes mentioned above, each of the two transport clocks (if you work on a small screen, you may only have one) can be independently set to display Delta to Edit Point in whatever time units its current mode indicates. This setting means that the clock shows the distance between the playhead and the current edit point, and it may show a positive or negative value depending on the temporal order of these two points. The clocks will use a different color when in this mode to avoid confusion.

To switch either (or both!) of the transport clocks into this mode, use Edit > Preferences > Transport and select the relevant checkboxes.

Note that when in Delta to Edit Point mode, the transport clocks cannot be edited.

Changing clock values with the keyboard

New values for the clock can be typed in after clicking on the relevant clock. Clicking on the clock will show a thin vertical cursor bar just to the right of the next character to be overwritten. Enter time in the same order as the current clock mode—if the clock is in Timecode mode, you need to enter hours, minutes, seconds, frames. So, to change to a time of 12:15:20:15 you would type 1 2 1 5 2 0 1 5. Each number you type will appear in a different color, from right to left, overwriting the existing value. Mid-edit, after typing 3 2 2 2 the clock might look like this:

An image of a clock being edited in Ardour 3

To finish the edit, press or Tab. To exit an edit without changing the clock press ESC. If you mis-type an entry so that the new value would be illegal (for example, resulting in more than 30 frames when Timecode is set to 30 frames per second), the clock will reset at the end of the edit, and move the cursor back to the start so that you can start over.

Avoiding the mouse entirely

There is a shortcut available for those who wish to be able to edit the transport clocks entirely without the mouse. It can be found in Window > Key Bindings > Transport > Focus On Clock. If bound to a key (÷ on the numerical keypad is the default), then pressing that key is equivalent to clicking on the primary (left) transport clock, and editing can begin immediately.

Entering Partial Times

One detail of the editing design that is not immediately obvious is that it is possible to enter part of a full time value. Suppose that the clock is in BBT mode, displaying 024|03|0029, and you want to alter the value to the first beat of the current bar. Click on the clock and type 0 1 0 0 0 0. Similarly, if it is in Minutes:Seconds mode, displaying 02:03:04.456, and you want to get to exactly 2 hours, click on the clock and type 0 0 0 0 0 0 0 to reset the minutes, seconds and milliseconds fields.

Entering Delta Times

You can also type values into the clock that are intended as a relative change, rather than a new absolute value. Simply end the edit by pressing + or - (the ones on any keypad will also work). The plus key will add the entered value to the current value of the clock, minus will subtract it. For example, if the clock is in Samples mode and displays 2917839, you move it back 2000 samples by typing 2 0 0 0 and -, rather than ending with Enter or Tab.

Changing clock values with the mouse

Using a scroll wheel

Position the mouse pointer over the clock, and move the scroll wheel. Moving the scroll wheel up () increases the value shown on the clock, moving it down () decreases it. The step size is equal to the unit of the field you are hovering over (seconds, hours, etc.).

Dragging the mouse

Position the mouse pointer over the clock, press the left mouse button and drag. Dragging upwards increases the value shown on the clock, dragging downwards decreases it, again with a step size equal to the unit of the field you began the drag on.

--- title: The Editor part: chapter ---

The Editor window includes the editor track canvas where you can arrange audio and MIDI data along a timeline. This is the window you will be in while editing and arranging a project. The window has a general "horizontal" sense to it: the timeline flows from left to right, the playhead showing the current position in the session moves from left to right — the window really represents time in a fairly literal way.

It is possible to show a single channel strip in the editor window, and some people find this enough to work on mixing without actually opening the mixer window. Most of the time though, you will want both of these windows at various stages of a session's lifetime — sometimes you'll be focused on editing, sometimes on mixing and possibly some of the time on both.

This section is a description of the Editor window. To learn more about the editing workflow, see Editing.

--- title: The Editor Toolbar part: chapter ---
Ardour's editor toolbar
  1. Toolbar
  1. Zoom Control
  1. Grid Control
  1. Edit Point
  1. Nudge

The Toolbar is made of 5 "zones"

Global Edit mode

Ardour has a global edit mode selector at the left of the Editing toolbar, which affect how regions are moved or copied:

Slide
Regions move freely. Ardour creates overlaps when necessary.
Ripple
Editing affects the regions to the "right" of the edit (see below).
Lock
No region motion is permitted (except for "nudge").

Ripple Edit mode provides the following conveniences:

If Snap To Grid is enabled, then regions can only move so that they align with locations determined by the current snap settings (beats, or seconds, or other region boundaries, etc). See Snap To the Grid for details.

The Smart switch

The Smart Mode button to the left of the mouse mode buttons modifies the Grab Mode. When enabled, the mouse behaves as if it is in "Range Mode" in the upper half of a region, and in "Grab Mode" in the lower half. This allows avoiding constant switching between these two modes.

Mouse Modes

Grab Mode
The Grab Mode is used for selecting, moving, deleting and copying objects. When in object mode, the mouse pointer appears as a hand whenever it is over the track canvas or the rulers. The mouse can now be used to select and perform operations on objects such as regions, markers etc. This is the most common mode to work in, as it allows you to select and move regions, as well as modify automation points on the automation tracks.
Range Mode
When in Range Mode, the mouse pointer appears as a vertical line whenever it is over the track canvas or the rulers. The mouse will now be able to select a point or range of time. Time ranges can be selected over one or several tracks, depending on the selection of your tracks.
If none of your tracks are selected, the Range Tool will operate on all the session track visualized in the Editor.
If you want to edit only particular tracks, select them before you apply the range tool.
Cut Tool Mode
When in Cut Tool Mode, the mouse pointer appears as a pair of scissors whenever it is over the track canvas or the rulers. This tools allows to cut any region into 2 regions at the mouse cursor, regardless of the Edit Point.
If one or more track(s) is selected, then all the regions on these tracks will be split at the mouse cursor position.
If no track is selected, then only the region hovered by the mouse cursor will be split.
Stretch Mode
When in time fx mode, the mouse pointer appears as a distinctive expanding square symbol whenever it is over the track canvas or the rulers. This mode is used to resize regions using a timestretch algorithm. Click on an edge of a region of audio and drag it one way or the other to stretch or shrink the region.
Audition Tool
Clicking a region using the audition tool will play this region to the control room outputs.

You can also scrub with this tool by clicking and dragging in the direction you wish to listen. The amount you drag in one direction or the other will determine the playback speed.

Draw Tool
When in Draw Tool mode, the mouse pointer will change to a pencil. You can then click within an audio region to change the gain envelope for that region. This curve is separate from fader automation for individual tracks. It will remain locked to the region's time, so if the region is moved, the region gain envelope is moved along with it.
The draw tool works on automation too, allowing the creation and modification of control points on the automation curves.
Last, it is used on a MIDI region to edit the notes.
Internal/Region Edit Mode
When in Internal Edit mode, the mouse pointer will change to cross-hairs. This tool acts on gegion gain and automation as the Draw tool.
on a MIDI region, it allows to lasso-select multiple notes at a time.

Make sure the Internal Edit and Draw tool act as described

--- title: the Zoom Controls part: subchapter --- Editor toolbar's zoom

The zoom controls allow to navigate the session along both the time and track axes.

The drop down Zoom Focus menu allows to select a focus point for the zoom, i.e. the center of the zoom. The choices are :

The 2 leftmost zoom buttons ( and +) use this zoom focus to zoom out and in respectively.

The Zoom to session button is a handy shortcut to zoom out or in until all the session (as defined by it's start/end markers) fits horizontally.

Changing the Number of visible tracks dropdown menu allows to fit this number of tracks vertically in the screen.

There is a minimal track height to keep it visible, so according to you screen vertical size, some high number can have no effect.

Inside this menu are 2 handy choices :

The rightmost buttons Shrink tracks and Expand tracks reduce or expand the vertical size of the selected tracks. If no track is selected, all the tracks will be shrunk or expanded each time the button is pushed. --- title: the Grid Controls part: subchapter --- Editor toolbar's grid

Get rid of all the <br>s, they look like shit

Ardour's editor utilizes a grid to assist in the placement of regions on the timeline, or with editing functions that need to happen at a specific point in time. You can choose if you want the cursor and various objects to snap to this grid, and how you want the snapping to behave. You can modify the grid units to fit your needs.

About Snapping

There are two ways to think about aligning material to a grid. The first and most obvious one is where an object\'s position is clamped to grid lines. In Ardour, this is called absolute snap and is commonly used when working with sampled material where audio begins exactly at the beginning of a file, note or region.
The second, relative snap, is used when an object's position relative to the grid lines is important. In music, this allows you to move objects around without changing the "feel" (or timing) of a performance.
Absolute snap is the default method of snapping in Ardour.
While dragging objects you may switch from absolute to relative snap by pressing the absolute snap modifier key(s).
You may also disable snap entirely by using the snap modifier (see below).
Note that in relative snap mode the reference point is taken to be the distance to the nearest grid line.
Note also that when an object lies exactly on a grid line, there will be no difference between relative and absolute snap modes.
The realtive snap and snap modifiers (along with other modifier keys) may be set in Edit > Preferences > User Interaction
For common use patterns, it is recommended that you assign a unique key for one snap modifier and two keys for the other in such a way that they share an otherwise unused key. For example, you may choose the snap modifier to be the   key and the relative snap modifier to be the   and   keys.

.

Snap Modes

Using the above modifications, Ardour supports three different modes of snapping to the grid:

No Grid
disables the grid. All objects move freely in this mode.
In No Grid mode, you may temporarily activate the grid by pressing the snap modifier (for absolute snap) or switch to relative snap by pressing the relative snap modifier.
Grid
activates normal snapping. All positions of objects snap to the grid. (See Grid Units below to change the grid). If you try to move an object in "Grid"-mode, it does not change its position until you move the mouse far enough for the object to reach the next grid line.
Sometimes you may wish to maintain an objects' position relative to the grid line. In order to do this, use the "snap relative" modifier. When holding down this modifier during a drag, the dragged object will jump while maintaining its original distance from the line.
New objects will always be created at grid points.
Holding down the snap modifier will disable the current grid setting and allow you to move the object freely.
Magnetic
is a less strict type of snapping. Objects can still be moved to any position, but positions close to the relative or absolute grid points will snap. In order to move an object very close to a snap point, it may be necessary to zoom in to prevent snapping to that point, or to use the snap modifier to disable snap completely.
As with Grid mode, the snap modifier will disable snap completely while the absolute snap modifier will move the "notch" of Magnetic snap to the grid lines.

Syncing Regions to the Grid

By default, a region's beginning will be used as the reference for both types of snapping, but you can change this behaviour by setting a sync point in the region. Select the region(s) and press V. This will set the sync point to your edit point.

Grid Units

The selector next to the grid mode selector defines the size of the grid elements. You can set your grid to several different units:

CD Frames
A CD Frame is 1/75th of a second. Snapping to CD Frames (using absolute snap) can be used to avoid issues with CD track lengths.
Timecode Frames/Seconds/Minutes
The duration of a frame depends on the timecode settings for the session.
Seconds/Minutes
These are absolute time units, unaffected by sample rate or timecode settings
Beats/N
Set the grid to units of 1/N beats, where N can be 128, 64, 32, 16, 8, 7, 6, 5, 4, 3, 2. The duration of a grid unit will depend on the tempo and meter in effect at that point in the timeline.
Beats
Set the grid to whole beats. The duration of a grid unit will depend on the tempo and meter in effect at that point in the timeline.
Bars
Set the grid to whole bars. The duration of a grid unit will depend on the tempo and meter in effect at that point in the timeline.
Markers
The grid lines are the markers.
Region Starts
The grid lines are constructed from region start points (see below).
Region Ends
The grid lines are constructed from region end points (see below).
Region Syncs
The grid lines are constructed from region sync points.
Region Bounds
The grid lines are constructed from region start or end points.

To use Region starts/ends/syncs/bounds as snap choices, you must have either

If you are moving items on a track, and only the current track is selected, then you will only be able to snap to other regions on the same track. This means that enabling Edit > Preferences > Editor > Link Selections of Regions and Tracks will make the "Region" grid unit unusable. Avoid the use of this option if you are going to use any of the Region grid units.

--- title: the Edit Point Control part: subchapter --- Editor toolbar's Edit Point

Editing operations in a Digital Audio Workstation like Ardour can be broken down according to how many points on the timeline are required to carry the operation out. Splitting a region for example, requires just one position on the timeline (the one where the split will happen). Cutting out a time range requires two positions, one for the start of the cut and one for the end.

In Ardour the edit point is the location where most single-point editing operations take place. It can be set to either of the following:

The default edit point is the location of the pointer.

There are 2 keybindings available to cycle through the edit point options. The most common workflow tends to involve switching back and forth between the playhead and mouse as the edit point. Press the grave accent key ` to switch between these two. Use ` to cycle through all three choices (including the selected marker). You can also switch the edit point using a combo-selector just right of the snap/grid unit selector.

Add images

--- title: the Nudge Controls part: subchapter --- Editor toolbar's Nudge

If there are no selected objects, the nudge controls can be used to move the playhead backward or forward by a fixed amount. The left and right buttons move either backward or forward in time, and the small clock to the left of these buttons sets the amount of time to nudge by. As with all other clocks, you can right-click on the clock to choose the time representation you want to use.

Note that this is a secondary purpose of the nudge controls—it is usually used to move selected objects by specific distances, rather than the playhead.

--- title: Editor's Lists part: chapter ---

At the right of the editor is an optional area which provides one of a range of useful lists of parts of your session. It is not shown by default when you first start using Ardour. The Editor list can be hidden or shown using View > Show Editor List. The very right-hand side of the list gives a selection of tabs which are used to choose the list to view. The left-hand border of the list can be dragged to vary the width of the list.

--- title: Region List part: subchapter ---

The region list shows all the regions in the session. The left-hand column gives the region name, and there are a range of times given for information:

Position
position of the start of the region on the global timeline
End
position of the region on the global timeline
Length
duration of the region
Sync
position of the sync point, relative to the start of region (can be negative)
Fade In
duration of the fade in. Can't be less than 1 ms, to avoid clipping.
Fade Out
duration of the fade out (positive value, ≥ 1 ms).

The units used to display those times are those used for the clock, so changing the units on the clocks change the display of this values.

At the right of the list are four columns of flags that can be altered:

L
whether the region position is locked, so that it cannot be moved.
G
whether the region's position is ‘glued’ to bars and beats. If so, the region will stay at the same position in bars and beats even if the tempo and/or time signature change.
M
whether the region is muted, so that it will not be heard.
O
whether the region is opaque; opaque regions ‘block’ regions below them from being heard, whereas ‘transparent’ regions have their contents mixed with whatever is underneath.

Hovering the mouse pointer over a column heading shows a tool-tip which can be handy to remember what the columns are for.

A handy feature of the region list is that its regions can be dragged and dropped into a suitable track in the session.

--- title: Tracks & Busses List part: subchapter ---

This lists the tracks and busses that are present in the session. The list order reflects the order in the editor, and you can drag-and-drop track or bus names in the editor list to re-order them in the editor. The columns in the list represent the following:

V
whether the track or bus is visible; they can be hidden, in which case they will still play, but just not be visible in the editor; this can be useful for keeping the display uncluttered.
A
whether the track or bus is active; unactive tracks will not play, and will not consume any CPU.
I
for MIDI tracks, whether the MIDI input is enabled; this dictates whether MIDI data from the track's inputs ports will be passed through the track.
R
whether the track is record-enabled.
RS
whether the track is record safe; a record safe track cannot be armed for recording, to protect against a mistake.
M
whether the track is muted.
S
track solo state.
SI
track solo-isolated state.
SS
solo safe state.

Each icon in these columns can be clicked to toggle the track/bus state, which is a very fast way to set multiple tracks/busses state at once.

As with the region list, hovering the mouse pointer over a column heading shows a tool-tip which can be handy to remember what the columns are for.

--- title: Snapshot List part: subchapter ---

This list gives the snapshots that exist of this session. Clicking on a snapshot name will load that snapshot.

See Working with Sessions for more information on snapshots.

--- title: Track & Bus Group List part: subchapter ---

This shows the track/bus groups that exist in the session. These groups allow related tracks to share various properties (such as mute or record enable state). For full details, see the section called Track and Bus Groups.

The columns in this list are as follows:

Col
the colour that the group uses for its tab in the editor.
Name
the group name.
V
whether the tracks and busses in the group are visible.
On
whether the group is enabled.
G
ticked if the constituents of the group are sharing gain settings.
Rel
ticked if shared gains are relative.
M
ticked if the constituents share mute status.
S
ticked if the constituents share solo status.
Rec
ticked if the constituents share record-enable status.
Mon
whether the constituents share monitor settings.
Sel
whether the constituents are selected together.
A
whether the constituents share active status.
--- title: Ranges & Marks List part: subchapter ---

For information on this list see Ranges & Marks List in the "Working with Markers" section of the manual.

--- title: The Mixer part: chapter ---

The Mixer window on the other hand represents signal flow and is the window you will probably be using most when mixing a session. It includes channel strips for each track and bus in your session. It has a general "vertical" sense to it: signals flow from the top of each channel strip through the processing elements in the strip to reach the output listed at the bottom.

--- title: Sessions & Tracks part: part --- --- title: Sessions part: chapter --- --- title: New/Open Session Dialog part: subchapter ---

Info is out of date, image needs updating

The initial Session dialog consists of several consecutive pages:

Open Session Page

On this page, you can open an existing session. You can also open any snapshot of a particular session by clicking on the arrow next to the session name to display all snapshots, and then selecting one. If your session is not displayed in the Recent Sessions list, the Other Sessions button will bring up a file selection dialog to navigate your hard drive.
Alternatively, you can opt to create a New Session.

New Session page

Here you can type in the name of a session, select a folder to save in, and optionally use an existing template.

Under Advanced Options, you can select whether you wish to create a Master Bus, or a Control Bus, and how many channels you wish either to have. You can also decide whether you want Ardour to automatically connect all inputs to the physical ports of your hardware. Ardour will do so sequentially and in round-robin fashion, connecting the first track's input to the first input of your hardware and so on. When Ardour has used all available hardware inputs, it will begin again with the first physical input. You can limit the number of channels on your physical hardware that Ardour uses.

By default Ardour will connect all tracks and busses to the Master Bus if there is one. However you can also tell it to automatically connect each output to the physical outputs of your interface or sound card, and limit the number of physical outputs used, as above.

Audio/MIDI Setup

The Audio+MIDI
Setup Dialog

This page is not displayed if JACK is already running when you start Ardour. It provides a simple interface to configure JACK, which will then be started by Ardour. For more control and options regarding JACK, it is recommended that you start JACK before using Ardour, via a JACK control application such as QJackCtl (sometimes called "Jack Control"), JackPilot, etc.

Audio System
Currently, the only option here is JACK. In the future, native hardware access may be supported.
Driver
On Mac OS X this will typically be CoreAudio. On Linux usually this will be either FFADO or ALSA, depending on whether or not you are utilizing a firewire device. Advanced users on all platforms may also use NetJack which provides network audio I/O.
Device
The selector should show all availiable interfaces provided by the driver above and which are capable of duplex operation.

If you are using an Intel Mac running OS X and the builtin audio interface, you must first merge its separate input and output devices into a single "aggregate device" before Ardour will be able to use it.

Sample Rate
The selector will allow you to select from any sample rate supported by the device selected above it.
Buffer Size
You can adjust the size of the buffer used by your audio interface to allow for either lower latency, or lower CPU usage and higher latency.
Input/Output Channels
Here you can specify the number of hardware channels to use. The default is all available channels.
Hardware Input/Output Latency
Specify the hardware delay in samples for precise latency compensation.
Calibrate
This button guides you through a semi-automated process to obtain precise hardware latency measurements for the above option.
MIDI System
Select the MIDI driver to use. On Mac OS X, this will be CoreMIDI. On Linux, you can change between two legacy ALSA drivers or the (preferred) new JACK+ALSA implementation.
--- title: What's in a Session? part: subchapter ---

The Session is the fundamental document type that is created and modified by the Ardour workstation. A Session is a folder on your computer filesystem that contains all the items that pertain to a particular project or "recording/editing/mixing session".

The Session folder includes these files and folders:

A session combines some setup information (such as audio and MIDI routing, musical tempo & meter, timecode synchronization, etc.) with one or more Tracks and Buses, and all the Regions and Plug-Ins they contain.

--- title: Where Are Sessions Stored? part: subchapter ---

Sessions are stored in a single folder on your computer's filesystem.

The first time you run Ardour, you will be asked where you would like the default location for sessions to be, with the initial choice being your home folder.

After the first-run dialog, you can still change the default location at any time via Edit > Preferences > Misc > Session Management. You can also specify a particular (different) location for a session when creating it, in the New Session dialog.

--- title: Backup and Sharing of Sessions part: subchapter ---

An Ardour session is stored in a single folder on your computer's filesystem. This makes backup very easy—any tool capable of backing up a folder can be used to backup a session. You pick the location of a session when it is created—by default it will be in your default session location, which can be altered via Edit > Preferences > Misc > Session Management.

There is one complication: a session may reference media files that are stored outside of the session folder, if the user has opted not to select Session > Import > Copy to Session during import. Backing up a session with embedded files will not create a copy of the session containing those files.

The single folder approach also makes sharing a project easy. Simply copy the session folder (onto a storage device, or across a network) and another Ardour user (on any platform) will be able to use it. The limitation regarding embedded files applies to session sharing as well.

--- title: Interchange with other DAWs part: subchapter ---

It has never been particularly easy to move sessions or projects from one DAW to another. There are two interchange standards that have reasonably widespread support:

In practice both of these standards have such complex and/or incomplete specifications that different DAWs support them only partially, differently, or not at all.

Moving an Ardour session to another DAW

To move an Ardour session to another DAW, you have 3 basic choices:

Moving another DAW session to Ardour

To move a session from another DAW to Ardour, you have 2 basic choices:

--- title: Copying The Interchange Folder part: subchapter ---

All media in a session folder is stored in a sub-folder called interchange. Below that is another folder with the name of the session. You can copy either of these to another location and use the files within them with any other application, importing them all into a project/session. You will lose all information about regions, tracks, and timeline positioning, but all the data that Ardour was working with will be present in the other DAW. Nothing below the interchange folder is specific to Ardour—any DAW or other audio/MIDI application should be able to handle the files without any issues.

--- title: Stem Exports part: subchapter ---

Stem exports are covered fully in the Export chapter. A stem export creates one file per track, starting at the beginning of the session. You can then import each track into another DAW and begin working on it. You lose all data except the actual audio/MIDI (no plugins, no automation). This is one of the most common methods of interchange because it works between all DAWs.

--- title: Using AATranslator part: subchapter ---

AATranslator is a Windows application that can convert sessions/projects from many diffferent DAWs into other formats. At the present time (December 2016), it can read and write Ardour 2.X sessions, and can read Ardour 3 sessions.

The program runs very well on Linux using Wine (a Windows environment for Linux). There are equivalent solutions for running Windows applications on OS X, but we have no experience with them at this time. Ardour users have reported great results using AATranslator on Ardour 2.X sessions.

The AATranslator website has full details on supported formats and DAWs. The list includes ProTools, Live, Reaper, OMF, AAF and many more.

AATranslator is closed-source, non-free software (as of this writing, Dec. 2016, the cost is 60 USD for the "Standard" version, and 200 USD for the "Enhanced" version).

--- title: Renaming a Session part: subchapter ---

Use Session > Rename to give your session a new name. A dialog will appear to ask you for the new name.

This operation does not make a new session folder — the existing session folder and relevant contents are renamed. If your session was not saved before a rename operation, it will be saved automatically and then renaming will continue.

Ardour's Session > Save As operation will not make a new copy of the session folder and its contents. All it does is create a new session file.

--- title: Session Templates part: subchapter ---

Session templates are a way to store the setup of a session for future use. They do not store any audio data but can store:

Creating a Session Template

Choose Session > Save Template. A dialog will ask you for the name of the new template.

Using a Session Template

In the New Session dialog, choose the desired template from the combo selector.

Note that you can also use an existing session as a template, without saving it as one. This is available as an option in the New Session dialog. Doing this will not alter the existing session at all, but will use its track, bus and plugin configuration just like a template.

See also Track & Bus templates for information on templates for individual tracks or busses.

Broken link

--- title: Snapshots part: subchapter ---

Sometimes you will want to save a snapshot of the current state of a session for possible use in the future. For example, you may be about to change the entire arrangement of a piece, or drastically alter the signal processing, and want a reference to come back to, should that not work out.

This is easily accomplished using Session > Snapshot. A small dialog will appear, allowing you to enter a name for the snapshot. The default name is based on the current date and time.
You can create any number of snapshots.

Creating a snapshot does not modify your session, nor does it save your session. Instead, it saves an alternate version of the session, within the session folder. The snapshot shares all data present in the session.

After creating a snapshot, you can continue working on the session and save it normally using Session > Save and any existing snapshots will remain unchanged.

Switching to a Snapshot

If you are already working on a session and want to to switch to an existing snapshot, navigate the Snapshots tab of the Editor List. Find the name of the snapshot in the list and click it. Ardour will switch to the snapshot. If there are unsaved changes in the current session, Ardour will ask what you want to do.

Starting Ardour With a Snapshot

Since a snapshot is just another session file stored within the session folder, you can specify that "version" when loading an existing session. The browser in the "Open Session" dialog will show an expander arrow for sessions that have more than 1 session file (i.e. snapshots) present—click on it to see the list, and then click on the name of the snapshot you want to load.

Saving and Switching to a Snapshot

Sometimes you may want to create a snapshot and then have all future edits and modifications saved to that snapshot rather than the main session. This is easily done using Session > Save As. This does not create a new session folder, but saves your session as a new snapshot and then switches the "current snapshot" to the newly created one. All subsequent saves of the session will be stored in this new snapshot, and existing snapshots (and the main session) will be left unaffected.

--- title: Metadata part: subchapter ---

Sessions can have various items of metadata attached to them, via Session > Metadata > Edit Metadata... and Session > Metadata > Import Metadata....

Edit Session Metadata Dialog

Add content

--- title: Cleaning up Sessions part: subchapter ---

Recording and editing any serious session might leave the session with some unused or misplaced files here and there. Ardour can help deal with this clutter thanks to the tools located in the Session > Clean-up menu.

Bring all media into session folder

When importing media files, if the Copy files to session hasn't been checked, Ardour uses the source file from its original destination, which can help avoiding file duplication. Nevertheless, when the session needs to be archived or transfered to another computer, moving the session folder won't move those external files as they are not in the folder, as seen in Backup and sharing of sessions.

Using the Bring all media into session folder menu ensures that all media files used in the session are located inside the session's folder, hence avoiding any missing files when copied.

Reset Peak Files

Ardour represents audio waveforms with peak files, that are graphical images generated from the sound files. This generation can be time and CPU consuming, so it uses a cache of the generated images to speed up the display process. To watch for files modification, Ardour relies on the file-modification time. If an external file is embedded in the session and that file changes, but the system-clock is skewed or it is stored on an external USB disk (VFAT), Ardour can't know the change happend, and will still use its deprecated peak files.

Using the Reset Peak Files menu allows to reset this cache, which frees up disk space, and forces the re-creation of the peak files used in the session. It can prove useful if some waveforms are not used anymore, or if a graphical or time glitch happens.

Clean-up Unused Sources...

Recording usually lefts a lot of unused takes behind, be it in midi or audio form, that can clutter the Region List, and eat up a lot of hard drive space. While its generally a good practice to keep as many things as possible while recording, when transferring or archiving the session, some clean up can help a lot in reducing the sessions clutter and size.

Selecting Clean-up Unused Sources... will force Ardour to detect those unused waveforms by looking for unused regions, and (through a prompt) for unused playlists. The media files won't be destroyed, though. At this stage, they are just copied in a particular place of the session path (namely, in the dead sounds/ sub-folder).

Flush Wastebasket

Although Ardour is a non-destructive audio-editor, it allows for a very careful destruction of unused media materials. This function is closely linked to the previous one. When the unused sources have been cleaned up and quarantined, the Flush Wastebasket menu will allow for their physical destruction.

As a safeguarding mechanism though, Flushing the wastebasket in impossible in the same working session as the Cleaning up of unused sources: the user needs to close the session and reload it before flushing. It allows to test the playback of the session and ensure both that Ardour didn't commit any mistake (unlikely, but better safe than sorry), and that the user is absolutely sure of what he does.

Notice that all media destroyed this way is not sent to the system's trash can but permanently deleted. If a file is mistakenly destroyed this way, the user will have to rely on data recovery techniques to try getting it back.

--- title: Copying versus Linking part: subchapter ---

Copying and linking are two different methods of using existing audio files on your computer (or network file system) within a session. They differ in one key aspect:

Copying

An existing media file is copied to the session's audio folder, and if necessary converted into the session's native format.

For audio files, you can control the choice of this format (eg. WAVE or Broadcast WAVE). Audio files will also be converted to the session sample rate if necessary (which can take several minutes for larger files).

MIDI files will already be in SMF format, and are simply copied into the session's MIDI folder.

Linking

A link to an existing media file somewhere on the disk is used as a the source for a region, but the data is not copied or modified in any way.

While linking is handy to conserve disk space, it means that your session is no longer self-contained. If the external file moves, it will become unavailable, and any changes to it from elsewhere will affect the session. A backup of the session directory will miss linked files.

You can choose to copy or link files into your session with the Copy file to session option in the Import dialog window.

← This file will be imported in the audio/MIDI folder of your session.

← This file won't be copied.

There is a global preference Edit > Preferences > Misc > Session Management > Always copy imported files. If it is enabled, you will not be able to link a file.

--- title: Adding Pre-existing Material part: subchapter ---

There are several ways to importing an audio or MIDI file into a session:

These methods are all equivalent: they open the Add Existing Media dialog.

Finally, you can also easily import files into your project by dragging and dropping a file from some other application (e.g. your platform's file manager). You can drag onto the Region List, into the desired track or into empty space in the editor track display.
The file will be imported and copied into your session, and placed at the position where the drag ended.

--- title: Import Dialog part: subchapter ---

Many sessions will require the use of existing material, whether it consists of audio and/or MIDI data. Using existing samples, loops and riffs from files stored on your system can be the basis for a new session, or a way to deepen and improve one that is already underway.

You can import audio and MIDI data into your session with the Add Existing Media dialog.

Update image, possibly update content if out of date

The Soundfile Information Box

This box will display information about the currently selected file:

If the sample rate differs from the current session rate, it is displayed in red, which indicates that the file must be resampled before importing. Resampling is controlled by the Conversion quality option described below.

Auditioner

Files can be auditioned before importing. The slider under the play and stop buttons allows you to scrub around, a fader on the right side allows you to control the playback volume.

Importing options

You can import files into new, automatically created tracks, to the region list (from where you can manually drag them into a track), or as new Tape tracks with the Add new files as... option.

New files will be inserted at either the file timestamp (if available, zero by default), at the edit point, at the playhead, or at the start of the session, as specified in Insert at....

The Channel mapping is either "one track/region per file", or "one track/region per channel". The latter splits multichannel source files into mono regions. If you have selected multiple files and are importing them into a track, you can also choose whether to sequence all files into a single track in the order of selection, or to create as many tracks as there are files to import.

The Conversion quality drop-down controls the quality of the resampling process, if the sampling rate of the source file differs from the session rate.

Finally, and most importantly, you can decide whether to Copy files to session, or to link them. Please read Copying versus Linking for details.

--- title: Searching and Importing From Freesound menu_title: Freesound Search/Import part: subchapter ---

This section is irrelevant now, as the Freesound import function has been removed due to changes done on Freesound's end

Freesound is an online repository of searchable sound files licensed under Creative-Commons term. The Search Freesound tab of the import dialog allows you to search the Freesound database, and to download and audition files directly.

Tags
Enter metadata tags that you would like to search for. You may enter multiple search terms separated by spaces. For example, drums 120bpm will search for files that are tagged drums, 120bpm, or both.
Sort
Choosing one of the sort options will cause Freesound to return the list of available files sorted accordingly. This can save time if you know (for example) the sound you need is very short.
Search
Click this button to initiate the search. Freesound will begin returning pages of information, with 20 items per page. The Stop button interrupts the download.
The file list
Click on a file to download it from Freesound. Double-click the file to auto-play it in the auditioner.

Files imported with Freesound will automatically include any tags that are associated with the file, and these tags will be included in a search when you use the Search Tags tab.

--- title: Searching for Files Using Tags part: subchapter ---

A tag is bit of information, or metadata, that is associated with a data file. Specifically, tags are keywords or terms that you feel have some relevance to a particular soundfile. Ardour can store these tags in a searchable database so that you can quickly search for sounds based on the tags that you have assigned to them.

For example you can assign the term 120bpm to a sound, and then when you search for this tag, the file will appear in the search list. Tags are independent of the filename or anything else about the file. Tags, and the file paths that they are associated with, are stored in a file called sfdb in your Ardour user folder.

To add tags to a given file, open the Session > Import dialog, select the file in the browser, and type new tags into tag area in the soundfile information box on the right. Tags are stored when the input box loses focus, there is no need to explicitly save them.

You can search for specific tags in the Search Tags tab of the same dialog. Files which have been tagged with the relevant terms will appear in the results window. Selected files can be auditioned and marked with additional tags if required.

--- title: Supported File Formats part: subchapter ---

The list of audio file formats that Ardour can understand is quite long. It is based on the functionality offered by libsndfile, an excellent and widely used software library by Australian programmer Erik de Castro Lopo. As libsndfile's capabilities expand, so will Ardour's abilities to import (and export) new formats. Ardour supports all common audio file formats, including WAV, AIFF, AIFC, CAF, W64 and BWF, with all typical sample formats (8-, 16-, 24-, 32-bit integer, floating point, and more).

You can find a full list of libsndfile's supported formats here.

For MIDI import, Ardour will read any Standard MIDI Format (SMF) file.

--- title: Tracks part: chapter --- --- title: Track Types part: subchapter ---

Ardour offers three track types depending on the type of data they contain, and differentiates between three track modes, depending on their recording behaviour.

Track types

An Ardour track can be of type audio or MIDI, depending on the data that the track will primarily record and play back. However, either type of track can pass either type of data. Hence, for example, one might have a MIDI track that contains an instrument plugin; such a track would record and play back MIDI data from disk but would produce audio, since the instrument plugin would turn MIDI data into audio data.

Nevertheless, when adding tracks to a session, you typically have an idea of what you need to use the new tracks for, and Ardour offers you three choices:

Audio
An Audio Track is created with a user-specified number of inputs. The number of outputs is defined by the master bus channel count (for details see Channel Configuration below). This is the type of track to use when planning to work with existing or newly recorded audio.
MIDI
A MIDI track is created with a single MIDI input, and a single MIDI output. This is the type of track to use when planning to record and play back MIDI. There are several methods to enable playback of a MIDI track: add an instrument plugin to the track, connect the track to a software synthesizer, or connect it to external MIDI hardware.

If you add an instrument plugin, the MIDI track outputs audio instead of MIDI data.

Audio/MIDI
There are a few notable plugins that can usefully accept both Audio and MIDI data (Reaktor is one, and various "auto-tune" like plugins are another). It can be tricky to configure this type of track manually, so Ardour allows you to select this type specifically for use with such plugins. It is not generally the right choice when working normal MIDI tracks, and a dialog will warn you of this.
--- title: Adding Tracks, Busses and VCAs part: subchapter --- the add-track dialog

A track, bus or VCA can be added to a session in various ways:

Any of these actions will open the Add Track/Bus/VCA dialog.

Add
Here you can select the number of tracks, busses or VCAs you wish to create, and their types.
Name
Defines the name of the new track(s). If multiple tracks are created, or if a track with the same name already exists, a space and number will be happened at the end (e.g.: Audio 1, Audio 2...)
Configuration
This menu lets you choose from a number of route templates, which determine the number of input ports and optionally contain plugins and other mixer strip configuration. The most common choices here are mono and stereo.
Record mode
This option is only available for audio tracks and affects how it behaves when recording. See Track Modes for details.
Instrument
This option is only available for MIDI tracks and busses and lets you select a default instrument from the list of available plugins.
Group
Tracks and busses can be assigned groups so that a selected range of operations are applied to all members of a group at the same time (selecting record enable, or editing, for example). This option lets you assign to an existing group, or create a new group.
Insert
Defines where in the track list is the track created. The default is Last, i.e. after all the tracks and busses, and can also be First, Before Selection (to place it just above the selected track) or After selection.
Output Ports
Defines how the number of output responds to adding a plugin with a different number of outputs than the track itself. in Strict I/O mode, the track will only use a few of the plugins I/O and will keep its own number of output fixed, while in lexible I/O mode, it will automatically adapt to the I/O of its plugins. See Signal flow to learn more about those options.

New tracks appear in both the editor and mixer windows. The editor window shows the timeline, with any recorded data, and the mixer shows just the processing elements of the track (its plugins, fader and so on).

Removing Tracks and Busses

To remove tracks and busses, select them, right-click and choose Remove from the menu. A warning dialog will pop up, as track removal cannot be undone; use this option with care!

--- title: Selecting Tracks part: subchapter ---

Tracks are selected by clicking on the Track header at the left of the Editor window. You can select multiple tracks with Left clicks, or a range of consecutive tracks with Left.

By default, selecting regions has no impact on track selection. You can select a track, then select a region in another track (or vice versa) and both selections will co-exist happily. Operations that are applied to tracks will use the track selection, and those that apply to regions will use the region selection. Similarly, deselecting a region will not deselect the track it is in (if that track was selected).

In some workflows, and particularly if you have experience with other DAWs, this is not the most comfortable way to work. You may prefer to work in a style where selecting a region will also select the track that the region is in. Similarly, when the last selected region in a track is deselected, the track will also become unselected.

To control this behaviour, set Edit > Preferences > Editor > Link selection of regions and tracks.

--- title: Controlling Track Appearance part: subchapter ---

Ardour offers many options for controlling the appearance of tracks, including color, height, waveform style and more. These can all be found in the Edit > Preferences > Editor menu.

--- title: Layering Display part: subchapter --- Track layering menu

Ardour allows arbitrary layering of regions—you can have as many regions you wish at a given position. By default, the regions are overlaid in the editor window, to save vertical space.

However, this display mode can be confusing for tracks with many overdubs, because its not obvious in which order the overdubs are layered. Although there are other methods of moving particular regions to the top of an overlapping set, and although Ardour also has playlists to let you manage takes a bit more efficiently than just continually layering, there are times when being able to clearly see all regions in a track without any overlaps is reassuring and useful.

Here is an image of a track with a rather drastic overdub situation, viewed in normal overlaid mode:

overlapping regions in overlaid mode

To change this display, right click on the track header, and you'll see the menu displayed above. There are two choices for layers. overlaid is currently selected. Click on stacked and the track display changes to this:

overlapping regions in stacked mode

You can still move regions around as usual, and in fact you can even drag them so that they overlay each again, but when you release the mouse button, things will flip back to them all being stacked cleanly. The number of lanes for the track is determined by the maximum number of regions existing in any one spot throughout the track, so if you have really stacked up 10 overdubs in one spot, you'll end up with 10 lanes. Obviously, using a large track height works much better for this than a small one.

--- title: Track Color part: subchapter ---

New tracks in Ardour are assigned a random color from a pastel color palette, so they should never end up being particularly bright or particularly dark.

Changing the color of specific tracks

Select the tracks whose color you wish to change. Context-click on the track header of one of them. From the context menu, select Color and pick a hue to your taste in the color dialog. Every selected track will be re-colored.

Note that if you are only changing one track, context-clicking on that track's header will be enough to select it, saving the extra mouse click.

Changing the color of all tracks in a group

Tracks that belong to a track/bus group can share a common color by enabling the Color option for the group. With this enabled, any color change will be propagated to all group members.

You can also explicitly change the group color by context-clicking on the group tab in the Mixer, selecting Edit Group... and then clicking on the Color selector in that dialog that is displayed.

--- title: Track Height part: subchapter ---

Depending on the stage of your production, you may require a quick overview over as many tracks as possible, a detailed view into just a few, or a combination of the two. To facilitate this, the height may be configured individually for each track in the editor window.

A context click on a track header will display the Height menu, and allow you to choose from a list of standard sizes. All selected tracks will be redrawn using that height.

Alternatively, select the tracks you wish to resize. Move the pointer to the bottom edge of one track header. The cursor will change to a two-way vertical arrow shape. Left-drag to dynamically resize all selected tracks.

Fit to the Editor Window

Select the tracks you wish to display in the Editor window. Choose Track > Height > Fit Selected Tracks or use the keyboard shortcut, f. Ardour adjusts the track heights and view so that the selected tracks completely fill the vertical space available, unless the tracks cannot be made to fit even at the smallest possible size.

You can use Visual Undo (default shortcut: Z to revert this operation.

--- title: Waveform display part: subchapter ---

The display of waveforms (or, more correctly, peak envelopes, since the actual waveform is only visible at the highest zoom levels) is configurable via the Edit > Preferences > Editor dialog, to support different usecases and user preferences. The following options are available:

Show waveforms in regions
By default, Ardour draws waveforms within audio regions. Disable this option to hide them.
Waveform scale
Linear
This is the traditional linear (1:1) display of the peak envelope, or, at higher zoom levels, the individual samples.
Logarithmic
Alternatively, you can use a logarithmic display of the peak envelope. This will give you a better idea of program loudness (it is similar to dBs) and plot soft passages more clearly, which is useful for soft recordings or small track height.
Waveform shape
Traditional
The zero line appears in the middle of the display and waveforms appear as positive and negative peaks above and below.
Rectified
The zero line appears at the bottom of the display and waveforms appear as absolute peaks above the line only.
--- title: Controlling Track Ordering part: subchapter ---

Ardour does not impose any particular ordering of tracks and busses in either the editor or mixer windows. The default arrangements are as follows:

In the Editor, the Master bus will always be on top unless hidden. Tracks and busses will appear in their initial order, from top to bottom. The monitor section (if used) will never be visible in the editor window.

In the Mixer, the tracks and busses will be displayed in their initial order, from left to right. The Master bus is always on the far right and occupies its own pane, so that it is always visible no matter how you scroll the other mixer strips. If a Monitor section is used, it shows up at the right edge of the mixer window, from where it can be torn off into a separate window.

--- title: Reordering Tracks part: subchapter ---

The track ordering of the Editor and Mixer is synchronized: if you reorder in one window, the ordering in the other window will follow.

Reordering in the Editor Window

Select the tracks you want to move. Then use
Track > Move Selected Tracks Up (shortcut: ) or
Track > Move Selected Tracks Down (shortcut: ).

Alternatively, you can use the Tracks & Busses panel of the Editor Lists, if visible. Here, you can freely drag-and-drop tracks and busses into any order you prefer.

Reordering in the Mixer Window

Within the Strips pane at the top left of the Mixer window, you can freely drag-and-drop tracks and busses into any desired order.

"Collecting" Group Members

Tracks and Busses that are members of a group can be reordered so that they display contiguously within the Editor and Mixer windows. Context-click on the group tab and choose Collect.

Ordering of New Tracks

When adding new tracks, the current selection determines their placement. New tracks will be placed after the rightmost (in the mixer) or bottom-most (in the editor) selected track. If no tracks are selected, new tracks will be added at the end.

Because new tracks are automatically selected, you can quickly reorder them in the editor window via the keyboard shortcuts after adding them (see above).

--- title: Track Ordering and Remote Control IDs part: subchapter ---

Every track and bus in Ardour is assigned a remote control ID. When a control surface or any other remote control is used to control Ardour, these IDs are used to identify which track(s) or buss(es) are the intended target of incoming commands.

By default, remote IDs will be assigned to tracks and busses in the order that they are created, starting from 1. The master bus and monitor section have their own unique IDs (318 and 319).

Ardour provides two methods to control remote control IDs, which can be chosen via Edit > Preferences > Control Surfaces > Control surface remote ID:

follows order of mixer
This will reset the remote control IDs to match the mixer and editor track order order, starting with rcID 1. Manual assignment of rcIDs is not possible.
assigned by user
When enabled, the remote control ID is completely independent of the ordering in either window, and may be changed manually by the user via the trackname > Remote Control ID... dialog in each mixer strip.
--- title: Bus Controls part: subchapter ---

A typical control area or bus header is shown below:

bus controls

At the top-left of the controls is the name of the bus, which can be edited by double-clicking on it. The new name must be unique within the session. Underneath the name is a copy of the bus' main level fader. The control buttons to the right-hand side are:

M
Mute—click to mute the bus. Right-click to display a menu which dictates what particular parts of the bus should be muted.
S
Solo—solo the bus. The behaviour of the solo system is described in detail in the section Muting and Soloing.
A
Automation—opens the automation menu for the bus. For details see Automation.
G
Group—lets you assign the bus to an existing or a new group. For details see Track and bus groups.
--- title: Audio Track Controls part: subchapter ---

A typical control area or track header for an audio track is shown below:

audio track controls

An audio track has the same controls as a bus, with the addition of two extras.

[•]
Record—The button with the pink circle arms the track for recording. When armed, the entire button will turn pink, and change to bright red as soon as the transport is rolling and the track is recording.
p
Playlist—Opens a playlist menu when clicked. The menu offers various operations related to the track's playlist.
--- title: MIDI Track Controls part: subchapter ---

A typical MIDI track header looks like this:

midi track controls

To see the full set of MIDI track controls, you need to increase the track height beyond the default. MIDI tracks show only a few of the control elements when there is insufficient vertical space.

A MIDI track has the same basic controls as an audio track, with the addition of two extra elements. The set of buttons below the main track controls the MIDI channel(s) that will be visible in the editor. A MIDI track's data may span any number of the 16 available MIDI channels, and sometimes it is useful to view only a subset of those channels; different instruments may, for example, be put on different channels. Clicking on a channel number toggles its visibility.

To the right of the MIDI track controls is a representation of a piano keyboard called the scroomer (a portmanteau of scrollbar and zoomer). This performs several functions:

To edit the contents of a MIDI track see Edit MIDI.

--- title: Track Context Menu part: subchapter ---

Within the editor window, context-click (right-click) on either a region or empty space within a track to display the track context menu. The context menu provides easy access to many track-level operations.

If you click on a region, the first item in the menu is the name of the region. If you click on a layered region, the next item in the menu is Choose Top. If selected, you will see a dialog that allows you to change the vertical order of layers at that point. See Controlling Region Layering for more details.

Broken link

The rest of the track context menu is structured as follows:

Play
Play from Edit Point
Play from the location of the current edit point.
Play from Start
Play from the start of the session
Play Region(s)
Plays the duration of the session from the start of the earliest selected region to the end of the latest selected region
Select
Select All in Track
Selects all regions in a track
Select All Objects
Selects all regions in the session
Invert Selection in Track
Invert Selection
Set Range to Loop Range
Set Range to Punch Range
Select All After Edit Point
Select All Before Edit Point
Select All After Playhead
Select All Before Playhead
Select All Between Playhead and Edit Point
Select All Within Playhead and Edit Point
Select Range Between Playhead and Edit Point
Edit
Cut
Copy
Paste
Align
Align Relative
Insert Selected Region
Insert Existing Media
Nudge
Nudge Entire Track Later
Nudge Track After Edit Point Later
Nudge Entire Track Earlier
Nudge Track After Edit Point Earlier
Freeze

This text here to prevent following FIXME from corrupting the above table

Add missing content

--- title: Grouping Tracks part: chapter --- --- title: Track and Bus Groups part: subchapter ---

Tracks and busses can be put into groups. Members of a group can share various settings—useful for managing tracks that are closely related to each other. Examples might include tracks that contain multiple-microphone recordings of a single source (an acoustic guitar, perhaps, or a drum-kit).

You can group tracks and busses in various ways. In the editor window, a track's controls might look like these:

track headers for a group

The green tab to the left of the track header indicates that this track is in a group called Fred. You can drag these tabs to add adjacent tracks to a group.

Create New Groups

There are several ways to create groups for tracks and bussess:

Remove Groups

Context-click on a group tab and select Remove Group from the menu. Removing a group does not remove the members of a group.

You can also remove groups by selecting them in the Groups tab of the Editor Lists or Mixer Window and then pressing the minus (-) button at the bottom of the list.

Add/Remove Tracks and Busses From a Group

Click the g button to display a menu with a list of the available groups. Select one of these groups to add the track or bus to that group. Select No Group to remove it.

Alternatively, you can also drag a group tab to add or remove tracks from the group.

Activate/Deactivate Groups via the Group Tab

Clicking on a group tab toggles the group between being active and inactive. An inactive group has no effect when editing its members. An active group will share its configured properties across its members. Tabs for disabled groups are coloured grey.

Modify Group Properties

To edit the properties of a group, context-click on its tab and choose Edit Group…. This opens the track/bus group dialog, which is also used when creating new groups:

the track/bus group dialog

Group Color

Click on the color selector button to change a group's colour. This affects the colour of the group's tab in the editor and mixer windows. The color does not affect the color of the group members unless you also enable the shared Color property.

Shared Properties

Gain means that the track faders will be synced to always have the same value; Relative means that the gain changes are applied relative to each member's current value. If, for example, there are two tracks in a group with relative gain sharing, and their faders are set to -3 dB and -1 dB, a change of the first track to a gain of -6 dB will result in the second track having a gain of -4 dB (the difference of the gains remains the same).

Muting, Soloing, record enable, active state, colour and monitoring are all straightforward. They simply mean that all member tracks or busses will share the same settings in these respects.

Selection means that if a region is selected or deselected on one member track, corresponding regions on other member tracks will be similarly selected. Since region editing operations are applied to all currently selected regions, this is the way to make edits apply across all tracks in the group.

Broken link

Group Tab Context Menu

Context-clicking on the group tab offers a further menu of group-related actions.

Create a New Group
create a new group
Create New Group from...
create a new group and automatically add ...
Selected
all currently selected tracks and busses
Rec-enabled
all currently record-enabled tracks
Soloed
all currently soloed tracks and busses
Collect Group
moves all the member tracks so that they are together in the editor window
Remove Group
removes the group (and only the group, not its members).
Add New Subgroup Bus
creates a bus (giving it the name of the group) and connects the output of each member to the new bus.
Add New Aux Bus
adds a bus and gives each member a send to that bus. There are two options for this, specifying whether the sends should be placed pre- or post-fader.
Fit to Window
will zoom the member tracks so that they fill the editor window.
Enable All Groups
makes all group active, including any hidden groups.
Disable All Groups
makes all groups inactive, including any hidden groups.
--- title: Importing and Exporting Session Data part: chapter --- --- title: File and Session Management and Compatibility part: chapter --- --- title: Playback & Recording part: part --- --- title: Playing Back Track Material part: chapter --- --- title: Looping the Transport part: subchapter ---

When the loop transport button is pressed, the playhead will jump the start of the loop range, and continue to the end of that range before returning to the start and repeating. While looping, a light green area is displayed in the time ruler over the tracks to show the loop range.

By default, looping is bound to the l key.

For more information on defining and altering the loop range see Loop Range Markers.

Broken link

--- title: Positioning the Playhead part: subchapter ---

The playhead is a vertical line with two arrows at each end that indicates the current position of playback.

Positioning the playhead at the current pointer position

Pressing P will set the playhead to the current position of the mouse pointer, if it is within the editor track area.

Positioning the playhead on the timeline

A Left click anywhere on the timeline (rulers) will move the playhead to that position.

Positioning the playhead with the transport clocks

Click on either the primary or secondary transport clock and edit their value to move the playhead to a specific position.

Positioning the playhead at a marker

Click Right on the marker and select either Locate to here or Play from here.

The playhead can also be moved backward and forward through the markers by respectively pressing the Q and W keys. Pressing Home and End will move the playhead to the special markers start and end, respectively.

--- title: Using Key Bindings part: subchapter ---

Ardour has many available commands for playback control that can be bound to keys. Many of them have default bindings, some do not, so the list below shows both the default bindings and internal command names.

Space
switch between playback and stop.
Home
Move playhead to session start marker
End
Move playhead to session end marker
0
Move playhead to start of the timeline

Commands without default bindings include:

Add content

--- title: Record Setup part: chapter --- --- title: Track Recording Modes part: subchapter ---

The Recording mode is a per-track property (applies to audio tracks only) that affects the way that recording new material on top of existing material ("overdubbing") operates in that track.

Track Modes

Audio tracks in Ardour have a mode which affects how they behave when recording:

Normal
Tracks in normal mode will record non-destructively—new data is written to new files, and when overdubbing, new regions will be layered on top of existing ones. This is the recommended mode for most workflows.
Non-Layered
Tracks using non-layered mode will record non-destructively—new data is written to new files, but when overdubbing, the existing regions are trimmed so that there are no overlaps. This does not affect the previously recorded audio data, and trimmed regions can be expanded again at will. Non-layered mode can be very useful for spoken word material, especially in combination with push/pull trimming.

Broken link

Tape
Tape-mode tracks do destructive recording: all data is recorded to a single file and if you overdub a section of existing data, the existing data is destroyed irrevocably—there is no undo. Fixed crossfades are added at every punch in and out point. This mode can be useful for certain kinds of re-recording workflows, but it not suggested for normal use.
normal and non-layered overdubbing comparision

The screenshot on the right shows the subtle difference between an overdub in normal mode (upper track) and one in non-layered mode (lower track). Both tracks were created using identical audio data.

The upper track shows a new region which has been layered on top of the the existing (longer) region. You can see this if you look carefully at the region name strips. The lower track has split the existing region in two, trimmed each new region to create space for the new overdub, and inserted the overdub region in between.

Channel Configuration

Ardour tracks can have any number of inputs and any number of outputs, and the number of either can be changed at any time (subject to restrictions caused by any plugins in a track). However it is useful to not have to configure this sort of thing for the most common cases, and so the Add Tracks dialog allows you to select "Mono", "Stereo" and few other typical multichannel presets. The name of the preset describes the number of input channels of the track or bus.

If you have configured Ardour to automatically connect new tracks and busses for you, the number of outputs will be determined by the number of inputs of the master bus, to which the track outputs will be connected.

For example, if you have a two-channel master bus, then a Mono track has one input and two outputs; a Stereo track has two inputs and two outputs.

Setting Edit > Preferences > Audio > Connection of Tracks and Busses to manual will leave tracks disconnected by default and there will be as many outputs as there are inputs. It is up to you to connect them as you wish. This is not a particularly useful way to work unless you are doing something fairly unusual with signal routing and processing. It is almost always preferable to allow Ardour to make connections automatically, even if some of them have to be changed manually at some point.

--- title: Audio Recording part: chapter --- --- title: Monitoring part: subchapter ---

When recording, it is important that performers hear themselves, and to hear any pre-recorded tracks they are performing with. Audio recorders typically let you monitor (i.e. listen to) the input signal of all tracks that are armed for recording, and playing back the unarmed tracks.

--- title: Latency Considerations menu_title: Latency part: subchapter ---

In the days of analog tape recording, the routing of monitor signals was performed with relays and other analog audio switching devices. Digital recorders have the same feature, but may impart some latency (delay) between the time you make a noise and the time that you hear it come back from the recorder.

The latency of any conversion from analog to digital and back to analog is about 1.5–2 ms. Some musicians claim that even the basic A/D/A conversion time is objectionable. However even acoustic instruments such as the piano can have approximately 3 ms of latency, due to the time the sound takes to travel from the instrument to the musician's ears. Latency below 5 ms should be suitable for a professional recording setup. Because 2 ms are already used in the A/D/A process, you must use extremely low buffer sizes in your workstation I/O setup to keep the overall latency below 5ms. Not all computer audio systems are able to work reliably at such low buffer sizes.

For this reason it is sometimes best to route the monitor signal through an external mixing console while recording, an approach taken by most if not all professional recording studios. Many computer I/O devices have a hardware mixer built in which can route the monitor signal "around" the computer, avoiding the system latency.

In either case, the monitoring hardware may be digital or analog. And in the digital case you will still have the A-D-A conversion latency of 1–2 ms.

--- title: Monitor Signal Flow menu_title: Signal Flow part: subchapter ---

There are three basic ways to approach monitoring:

External Monitoring

When using external monitoring, Ardour plays no role in monitoring at all. Perhaps the recording set-up has an external mixer which can be used to set up monitor mixes, or perhaps the sound-card being used has a "listen to the input" feature. This approach yields zero or near-zero latency. On the other hand it requires external hardware, and the monitoring settings are less flexible and not saved with the session.

JACK-Based Hardware Monitoring

Some sound cards have the ability to mix signals from their inputs to their outputs with very low or even zero latency, a feature called hardware monitoring. Furthermore, on some cards this function can be controlled by JACK. This is a nice arrangement, if the sound card supports it, as it combines the convenience of having the monitoring controlled by Ardour with the low latency operation of doing it externally.

Broken link

Software Monitoring

With the software monitoring approach, all monitoring is performed by Ardour—it makes track inputs available at track outputs, governed by various controls. This approach will almost always have more routing flexibility than JACK-based monitoring. The disadvantage is that there will be some latency between the input and the output, which depends for the most part on the JACK buffer size that is being used.

--- title: Monitor Setup in Ardour menu_title: Setup in Ardour part: subchapter ---

Ardour has three main settings which affect how monitoring is performed. The first is Edit > Preferences > Audio > Record monitoring handled by. There are two or three options here, depending on the capabilities of your hardware.

The other two settings are more complex. One is Tape machine mode, found in the same dialog, and the other is the Session > Properties > Monitoring automatically follows transport state setting.

Monitoring also depends on the state of the track's record-enable button, the session record-enable button, and on whether or not the transport is rolling.

Software or Hardware Monitoring Modes

If Ardour is set to external monitoring, the explanation of Ardour's monitoring behaviour is simple: it does not do any.

Monitoring in Non-Tape-Machine Mode

When Tape-Machine mode is off, and a track is armed, Ardour always monitors the live input, except in one case: the transport is rolling, the session is not recording, and auto-input is active. In this case only, you will hear playback from an armed track.

Unarmed tracks will play back their contents from disc, unless the transport is stopped and auto-input is enabled. In this case, the track monitors its live input.

Monitoring in Tape-Machine Mode

In Tape-Machine mode, things are slightly simpler: when a track is armed, its behaviour is the same as in non-tape-machine mode.

Unarmed tracks however will always just play back their contents from disk; the live input will never be monitored.

--- title: MIDI Recording part: chapter --- --- title: Punch Recording Modes part: chapter --- --- title: Working With Markers part: subchapter ---

It is very useful to be able to tag different locations in a session for later use when editing and mixing. Ardour supports both locations, which define specific positions in time, and ranges which define a start and end position in time.

In addition to the standard location markers, there are three kinds of special markers:

--- title: Creating Location Markers part: subchapter ---

Location Markers appear in the Locations ruler at the top of the timeline. The start and end markers appear automatically, but you can create custom markers at any position in a session.

To add a marker at the current playhead position, press Num-↵ (the Enter key on the numeric keypad). Alternatively, use Transport > Markers > Add Mark from Playhead.

To add a marker at an arbitrary location on the timeline, navigate to the desired position, right-click on the Locations ruler and select New Location Marker. You can also go to the Editor list, click New Marker and use the clock widget to set its position.

For details see Ranges & Marks List and Using Ardour Clock Displays.

--- title: Creating Range Markers part: subchapter ---

Add images

Range markers are essentially two location markers the are grouped together to mark the beginning and end of a section in the timeline.

Creating a Range on the timeline

To create a new range, right-click on the Ranges ruler at the top of the timeline, then select New Range. Two markers with the same name will appear along the ruler. Both marks can be moved along the timeline by clicking and dragging them to the desired location.

It is also possible to create range markers from a selected range or region in the Editor window, or to use the Ranges & Marks List in the Editor list.

--- title: Ranges & Marks List part: subchapter ---

The Ranges & Marks List is a tab in the Editor Lists area on the right of the Editor window. If the editor list area isn't visible it can be enabled by checking View > Show Editor List. The Ranges & Marks list can be used as a single point of control for all range and location markers (including the punch and loop ranges), or as a supplement to other methods of working with them.

Common elements

Each section has a set of editable clock widgets which display the location of a marker, or the start, end, and duration times of a range, respectively.
The Use PH buttons allow you to set the corresponding clock to the current playhead position. A Middle click on any of the clocks will move the playhead to that location. Both functions are also available from the clock context menus.
Right clicking on any of the clocks brings up a context menu that allows changing of the display between Timecode, Bars:Beats, Minutes:Seconds, and Samples.

The (subtract) button in front of each user-defined range or marker in the list allows that particular item to be removed. The name fields of custom ranges and markers can be edited.

The Hide checkboxes make markers and ranges invisible on the respective ruler to reduce visual clutter; the markers remain active however, and can be used normally.
Selecting Lock prevents the respective marker from being moved until unlocked. Where applicable, Glue fixes the marker position relative to the current musical position expressed in bars and beats, rather than the absolute time. This will make the respective marker follow changes in the tempo map.

At the bottom of the list are buttons to add new markers or ranges.

List sections

Loop/Punch Ranges
This list shows the current loop and punch range settings. Since these are built-in ranges, you cannot rename or remove them.
Markers (Including CD Index)
This section lists the session's markers. By ticking CD, you instruct Ardour to create a CD track index from this marker, which will be included in the TOC or CUE file when you export.
Ranges (Including CD Track Ranges)
This is the list of ranges (including CD track ranges). Ticking CD will convert the range to a CD track, which will again be included in exported TOC or CUE files. This is relevant for Disk-At-Once recordings that may contain audio data between tracks.
--- title: Moving Markers part: subchapter ---

Single marker

Left-click and drag to move a single marker to a new location on the timeline.

Multiple markers

It is possible to move multiple markers by the same distance. Left-click each marker you want to move, then drag one of the selected markers to a new location. All selected markers will then move together. Note that the markers are bounded by the zero point on the timeline. In other words, the first marker in your selection cannot move to the left of zero on the timeline.

Both ends of a range marker

Left-drag either end of the range marker. The other end will move by the same distance.

--- title: The Loop Range part: subchapter ---

Missing content

The loop range is a special range that defines the start and end points for loop play, which can be enabled in the transport bar.

It can be defined via the timeline or the Ranges & Marks list.

Broken links --- title: Marker Context Menu part: subchapter ---

Right-clicking a marker in the timeline opens the marker context menu. From this menu, you can:

Locate to Here
Move the playhead to this marker's position.
Play from Here
start playback from this marker's position.
Move Mark to Playhead
Move this marker to the current playhead position.
Create Range to Next Marker
Create a range marker between this location and the next one along on the timeline.
Hide
Hide this marker from the view. It can be made visible again from the Window > Locations window or the Ranges & Marks list.
Rename
Change the name of the marker.
Lock
If this is ticked, it will be impossible to drag the marker's position; useful if you want to prevent accidental movements.
Glue to Bars and Beats
If this is ticked, the marker will maintain its position in bars and beats even if there are changes in tempo and meter.
Remove
Removes the marker.

There are also a few options in Transport > Active Mark. These options apply to the currently selected location marker, and move it to a nearby region boundary, region sync point, or to the playhead or mouse.

--- title: Punch Range part: subchapter ---

Missing content

The punch range is a special range used to define where recording will start and/or stop during a punch.

It can be defined on the timeline or in the Ranges & Marks list.

Broken links --- title: Editing part: part --- --- title: Editing Basics part: chapter --- --- title: Working With Regions part: subchapter ---

Working With Regions

Regions are the basic elements of editing and composing in Ardour. In most cases, a region represents a single contiguous section of one or more media files. Regions are defined by a fixed set of attributes:

When placed into a playlist, they gain additional attributes:

There are other attributes as well, but they do not define the region. Things you should know about regions:

Regions Are Cheap

By themselves, regions consume very little of your computer's resources. Each region requires a small amount of memory, and represents a rather small amount of CPU work if placed into an active track. So, don't worry about creating regions whenever you need to.

Regions Are Not Files

Although a region can represent an entire audio file, they are never equivalent to an audio file. Most regions represent just parts of an audio file(s) on disk, and removing a region from a track has nothing to do with removing the audio file(s) from the disk (the Destroy operation, one of Ardour's few destructive operations, can affect this). Changing the length of a region has no effect on the audio file(s) on disk. Splitting and copying regions does not alter the audio file in anyway, nor does it create new audio files (only recording, and the Export, Bounce and Reverse operations create new audio files).

--- title: Region Naming part: subchapter ---

Region names are initially derived from either

It appears that recorded regions are always named after the track, not the active playlist in that track.

Whole File Region Names

These are not audio files, but regions that represent the full extent of an audio file. Every time a new recording is done, or a new file is imported to the session, a new region is created that represents the entire audio file. This region will have the name of the track/playlist/original file, followed by a "-", then a number plus a dot and then a number.

For recorded regions, the number will increase each time a new recording is made. So, for example, if there is a playlist called Didgeridoo, the first recorded whole file region for that playlist will be called Digderidoo-1. The next one will be Digeridoo-2 and so on.

For imported regions, the region name will be based on the original file name, but with any final suffix (e.g. ".wav" or ".aiff") removed.

Normally, whole file regions are not inserted into tracks or playlists, but regions derived from them are. The whole-file versions live in the editor region list where they act as an organizing mechanism for regions that are derived from them.

Normal Region Names

When a region is inserted into a track and playlist, its initial name will end in a version number, such as .1. For a recorded region, if the whole file region was Hang drum-1, then the region in the track will appear with the name Hang drum-1.1. For an imported region, if the whole file region was Bach:Invention3, then the region in the track will appear with the name Bach:Invention3.1.

Copied Region Names

If you copy a region, it initially shares the same name as the original. When you perform an operation modifies one of the copies, Ardour will increment the version number on the particular copy that changed.

Renaming Regions

You can rename a region at any time. Use the region context menu to pop up the Rename dialog. The new name does not need to have a version number in it (in fact, it probably should not). Ardour will add a version number in the future if needed (e.g. if you copy or split the region).

--- title: Corresponding Regions Selection part: subchapter ---

Track Groups have a property titled Select which, if enabled, cause Ardour to propagate a region selection in one track of a group to the corresponding regions of the other tracks in that group.

For example, let's assume you have used multiple microphones to record a drum kit to multiple tracks. You have created a track group, added all the drum tracks, enabled the group and enabled the Select property for the group. When you select a region in one of the drum tracks, Ardour will select the corresponding region in every other drum track in the group, which in turn means that a subsequent edit operation will affect all the grouped drum tracks together.

How Ardour Decides Which Regions are "Corresponding"

Regions in different tracks are considered to be corresponding for the purposes of sharing selection if they satisfy all the following criteria:

  1. Each region starts at the same offset within its source file,
  2. each region is located at the same position on the timeline, and
  3. each region has the same length.

Overlap Correspondence

Sometimes, the rules outlined above are too strict to get Ardour to do what you want. Regions may have been trimmed to slightly different lengths, or positioned slightly differently, and this will cause Ardour to not select regions in other grouped tracks.

In this case, change Edit > Preferences > Editor > Regions in active edit groups are edited together: to whenever they overlap in time. With this option enabled, r egions in different tracks will be considered equivalent for the purposes of selection if they overlap. This is much more flexible and will cover almost all of the cases that the fixed rules above might make cumbersome.

--- title: Region Context Menu part: subchapter ---

Need to add detail to the context menu table to describe what the options do

In the editor window, right clicking (context clicking) on a region displays a menu with track and region operations. The menu begins with the name of the region, or Selected Regions if multiple regions are selected.

If there is more than one region layered at the point where you clicked, the menu will also contain an item Choose Top. This dialog lets you select which region you want on the top layer. See Adjusting Region Layering for more details.

Below these items is the rest of the Track Context Menu, which provides access to track-level operations. To see the contents of the region context menu, select the region name or "Selected Regions", and the following submenu structure appears:

Play
Loop
Properties
Rename
Edit
Combine
Uncombine
Split
Make Mono Regions
Opaque
Mute
Pitch Shift
Reverse
Close Gaps
Place Transients
Rhythm Ferret
Strip Silence
Position
Move To Original Position
Lock
Glue to Bars and Beats
Snap Position to Grid
Set Sync Position
Remove Sync
Nudge Later
Nudge Earlier
Nudge Later by capture offset
Nudge Earlier by capture offset
Trim
Trim Start at Edit Point
Trim End at Edit Point
Trim to Loop
Trim to Punch
Trim to Previous
Trim to Next
Layering
Raise to Top
Raise
Lower
Lower to Bottom
Ranges
Set Loop Range
Set Punch Range
Add Single Range Marker
Add Range Marker per Region
Set Range Selection
Gain
Normalize
Boost
Cut
Reset Envelope
Envelope Active
Fades
Fade In
Fade Out
Fades
Duplicate
Duplicate
Multi-Duplicate
Fill Track
Export
Bounce (without processing)
Bounce (with processing)
Spectral Analysis
Remove
--- title: Common Region Edit Operations menu_title: Region Editing part: subchapter ---

This section covers a set of region editing operations that you are likely to use often while working on a session. Depending on your work habits (and experience of other DAWs) you will find some of these operations critical while others are used only rarely.

You can carry out all of these operations from the keyboard (see Default Keyboard Shortcuts for a list). Equivalent operations can be performed with the mouse in most cases.

You may want to review your understanding of the edit point/range and which regions will be affected by region operations.

Spot (Align)
Move selected regions to the edit point.
Split
Split selected regions at the edit point.
Trim Start
Adjust the start of selected regions to the edit point (or as close as possible).
Trim End
Adjust the end of selected regions to the edit point (or as close as possible).
Duplicate
Make a copy of each selected region and position it immediately after the original.
Crop
Truncate selected regions to the edit range.
Separate
Split selected regions at both ends of the edit range.
Set Fade In
Adjust selected audio regions' fade in to end at the edit point.
Set Fade Out
Adjust selected audio regions' fade out to end at the edit point.
Toggle Fade In
Turn selected audio regions' fade in on or off.
Toggle Fade Out
Turn selected audio regions' fade out on or off.
Play Region
Play session from the start of the earliest selected region.
Zoom To Region
Zoom horizontally so that the selected regions span the editor track view.
Set Sync Point
Set the sync point of all selected regions to the edit point.
Insert
Inserts the currently selected regions in the Region List at the edit point.
--- title: Copy Regions part: subchapter ---

Copy a Single Region

To copy a region, make sure you are in object mouse mode. Move the mouse pointer into the region and left-drag. Ardour creates a new region and follows the mouse pointer as it moves. See Move Regions for more details on moving the copied region.

Copy Multiple Regions

To copy multiple regions, select them before copying. Then left-drag one of the selected regions. All the regions will be copied and as they move. The copied regions will keep their positions relative to each other.

Fixed-Time Copying

If you want to copy region(s) to other track(s) but keep the copies at the exact position on the timeline as the originals, simply use Middle-drag instead.

--- title: Move Regions With the Mouse part: subchapter ---

To move or copy a region, make sure you are in object mode. If you are using smart mode, the pointer must be in the lower half of the region to begin a move or copy operation.

Move the pointer into the region, use a Left-drag. The region will follow the pointer as you move it around. By default, the region can move freely along the timeline.

To move a region from one track to another, simply start a move as described above, but move the pointer into the desired track. The region will follow the pointer. Note that if you have other kinds of tracks visible, the region will remain where it is as the pointer moves across them, and will then jump to the new track. This serves as a visual reminder that you cannot drag an audio region into an automation track or a bus, for example.

Move Multiple Regions

To move multiple regions, select them before moving. Then Left-drag one of the selected regions. All the regions will move, keeping their positions relative to each other.

Fixed-Time Motion

Sometimes, you want to move a region to another track, but keeping its position along the timeline exactly the same. To do this, use Middle-drag instead.

--- title: Align (Spot) Regions part: subchapter ---

Aligning regions (sometimes called "spotting") means moving one or more regions based on a defined location, which in Ardour is always the edit point. An alignment operation moves the region(s) so that some part of the region is positioned at the edit point. Available alignment commands include:

Align Region starts a
Selected region(s) are moved so that their start is located at the current edit point
Align Region ends a
Selected region(s) are moved so that the end is located at the current edit point
Align Region sync points Shift-a
Selected region(s) are moved so that their sync point is located at the current edit point
Align Region starts relative a
Selected region(s) are moved so that the start of the earliest region is located at the current edit point, and all others maintain their relative position relative to that region
--- title: Edit Mode and Tools part: chapter --- --- title: Which Regions Are Affected? menu_title: Affected Regions part: subchapter ---

This one is alone in its chapter. Find him a place somewhere else.

This section explains the rules used to decide which regions are affected by editing operations. You don't really have to understand them—hopefully things will Just Work™—but it may be useful eventually to understand the rules.

Editing operations in Ardour either operate on a single point in time (Split being the obvious example) or on two points (which can also be considered to be a range of sorts); Separate is a good example of this.

Most operations will operate on the currently selected region(s), but if no regions are selected, the region that the mouse is in will be used instead. Single-point operations will generally pick a set of regions to use based on the following rules:

The rationale here for the two different rules is that the mouse edit point is special in that its position indicates both a time and a track; the other edit points (Playhead, Marker) indicate a time only.

--- title: Making Selections part: chapter --- --- title: Select Regions part: subchapter ---

Remove all "you" references FFS

Many editing operations in Ardour require you to first select one or more regions that you want to change in some way. You can select a single region, or multiple regions, including regions in different tracks. When you select a region, it will appear in a darker color than unselected regions.

Note that if a track is a member of a group that is active and has the Select property enabled, then Ardour will attempt to match whatever selections you make in one track across every other track of the group. See Corresponding Regions Selection for more information on precisely how selections will be propagated to other tracks.

Region Selection and Track Selection

Please read Region & Track Selection for more information on how selecting regions and selecting tracks interact.

Broken link

Select a Region

Confirm that you are using the Object tool, then click on a region to select it. If smart mode is enabled, click in the lower half of the region.

Deselect a Region

Confirm you are using the Object tool, then Left-click the region. If smart mode is enabled, click in the lower half of the region.

Note that a left click simply toggles the selected status of an object, so it can be used to select unselected regions too.

Select Multiple Regions in a Track

Do one of the following:

Select All Regions in a Track

Context-click the track, and in the context menu, navigate to Select > Select All In Track.

See the Track Context Menu for more information on other per-track selection operations that are available.

Broken link

Select Multiple Regions Across Different Tracks

Left-click or Left-click the regions you wish to select.

Select a Region From the Region List

Click the name of the region in the Region List. Note that this will do nothing for whole-file regions, since they do not exist anywhere in a playlist or track.

--- title: Editing Clips and Selections part: chapter --- --- title: Trimming Regions part: subchapter ---

Add images, description of mouse cursor changes that signal this type of editing

Changing the length of a region is a very common editing operation, often known as trimming. There are several ways to accomplish this with Ardour, and some very useful specialized trimming operations.

Drag-Trimming With the Mouse

In object mode, move the pointer near the beginning or end of the region. The cursor will change to indicate that trimming is possible, and you then Left-drag the edge of the region.

Trimming will obey Snap settings.

Click Trimming With the Mouse

Left-click in the colored bar at the bottom of a region. If you are nearer to the start of a region, this will trim the start time to the position of the pointer. If you are nearer to the end of a region, it will trim the end time.

Keyboard Shortcuts for Trimming

There are several commands for region trimming. Some use the edit point to determine where to trim to. Some are not bound to any keys by default (but could be via the Keybindings Editor).

Region/trim-front j
Trim selected region(s) start to edit point.
Region/trim-end k
Trim selected region(s) end to edit point.

Trim to Next/Previous Region

Sometimes you just want to extend the start or end of region so that it reaches the end or start of an adjacent region. There is now an operation accessible from the region context menu, under Edit >Trim > Trim to Next or Edit > Trim > Trim to Previous. This will extend the selected regions so they directly adjoin their neighbours, unless their source files are not long enough, in which case they will be extended to the maximum possible. Trim to Next will extend the end of the selected regions to the start of the next region; Trim to Previous will extend the start of the selected regions to the end of the previous region.

Region/trim-to-previous-region j
Trim the start of selected region(s) to the end of the previous region.
Region/trim-to-next-region k
Trim the end of selected region(s) to the start of the following region.

Other Possible Commands for Trimming

These are not bound to any keys by default, but could be via the Keybindings Editor. They can also be sent via OSC or other control protocols.

Region/trim-region-to-loop
Trim region to match the current loop range.
Region/trim-region-to-punch
Trim region to match the current punch range.
--- title: Push/Pull Trimming part: subchapter ---

Normally, when you trim regions by dragging with the mouse, it affects only the selected regions. Their lengths are directly affected by the trim operation, but nothing else is. Sometimes though, you might like to trim a region that directly adjoins another, and keep this relationship the same—you are not trying to make one of the regions extend over the other—you would like the junction to move in one direction or the other as part of the trim. This requires trimming both regions on either side of the junction, in opposite directions. Push/Pull trim, activated by pressing shift key before starting the drag, will do just that. Here's a few pictures to show the difference in the results of a normal trim and push/pull trim. First, the initial situation:

region arrangement before trim

Here is what happens after we trim the right hand (selected) region by dragging its starting position earlier:

region arrangement after a trim

You can see that it now overlaps the earlier region and a crossfade has been created between them.

Lets look now at what happens if we do the same trim, but Left-dragging to turn it into a push-pull trim instead:

region arrangement after a push trim

There is no overlap, and the end of the earlier region has been moved along with the start of the later region, so that they still directly adjoin each other.

--- title: Separate Under part: subchapter ---

You may have a situation where you have positioned one region over another, and you just want to cut the lower region so that it directly adjoins both ends of the overlapping one, with no overlaps. To do this, select the upper region, then choose Edit > Separate > Separate Under. This will split the lower region so that it no longer overlaps the upper region at all.

Here is an example where we start with a short region placed so that it overlaps a longer region:

region arrangement before separate under

When we perform the Separate Under edit, the lower region splits in two, with boundaries exactly positioned at the edges of the upper region:

region arrangement after separate under

If the upper region covers only one end of the lower region, then this operation is equivalent to Trim to Next/Previous Region, depending on which end is covered.

--- title: Separate Range part: subchapter ---

Add example with images; 1p ≥ 1,000w

A final new editing feature is an operation in the context menu of a range labeled Separate Regions Under Range. This splits any selected regions that are covered by the range at both ends of the range (or just one, if the range only covers part of the region). This makes it easy to generate regions that correspond precisely to a range.

--- title: Strip Silence from Audio Regions menu_title: Stripping Silence part: subchapter ---

From the region context menu, choose Edit > Strip Silence to detect silence (based on a user-chosen threshold in dBFS), split a region based on the boundaries of the silent segments, and remove the silence. You can also specify a minimum length for silence—useful when editing very percussive material and just needing to automatically trim the ends of a region. The dialog looks like this:

strip silence dialog

The edit applies to all selected regions, allowing batch processing. You can also see in the screenshot how the main editor window is used to show silent segments and report the number and durations of the shortest segments.

--- title: Fades and Crossfades part: chapter --- --- title: Create Region Fades and Crossfades part: subchapter ---

Add images--an image is worth more than 1,000 words

Every Region has a fade-in and fade-out. By default, the region fade is very short, and serves to de-click the transitions at the start and end of the region. By adjusting the regions fade length, a more gradual transition can be accomplished.

Region Fades

Region fades are possible at the beginning and end of all audio regions. In object mode, a grip appears at the top left and top right of an audio region when the cursor hovers over it. Placing the cursor over the top of the grip displays the region fade cursor tip. Click and drag the grip left or right in the timeline to adjust the length of the fade.

Crossfades

Crossfades refer to the behavior when you want to make a smooth transition (mix) from one audio region to another on the same track. Historically, this was done by splicing 2 pieces of analog tape together, and this concept was carried forward into digital editing. Each track is a sequence of sound files (regions). If two regions are butted against each other, there needs to be a method to splice them smoothly together. The crossfade allows one region to fade smoothly out, while the next region fades smoothly in, like 2 pieces of tape that have been cut at and angle, and overlapped.

But Ardour uses a more refined "layered" editing model, and therefore it is possible for multiple regions to be stacked on a single location with arbitrary overlaps between different layers. For this reason, crossfades must be implemented differently. We can't assume that a crossfade is an entitry that exists between 2 regions; instead each region must have its own associated crossfades at each end, and the topmost region must always crossfade down to the underlying region(s), if any.

Ardour solves this problem by putting a crossfade at the beginning and end of every region. The fades of the bottom-most region are first rendered, and then each region is rendered on top of the one below it, with fades at the end of each region providing a crossfade to the region(s) beneath it.

It is important to understand that region fades are crossfades. When one region has another region or multiple regions beneath its fade area, then you will hear the topmost region fade-out be mirrored as a fade-in on the underlying region(s). The grip for the topmost region will allow changing the length and type of the crossfade into the underlying region(s). In this way you can create a complicated series of crossfades, and then layer another region atop the others, and fade into that complicated series.

An image here would probably help.

If a region doesn't have any region(s) under it, then the region is crossfaded to silence; for convenience we call this a "fade" rather than a crossfade.

Fade Shapes

To activate/deactivate or change the shape of a region's fade-in or fade-out, hover the cursor over the region fade grip till the cursor tip indicates region fade editing and context-click to bring up a context menu. In the context menu there is a list of options for the region fade. Activate/Deactivate enables and disables the region fade.

Because each fade is also a crossfade, it has an inverse fade shape for the audio beneath the fade. It is important to know how the shapes differ, and which are most suitable for various editing tasks.

The different types of fades are:

Linear
A simple linear coefficient decrease, and its mathematical inverse. A Linear fade starts attentuating quickly and then cuts off even more abruptly at lower levels. When used as a crossfade, the signals are each -6dB attenuated at the midpoint. This is the correct crossfade to use with highly-correlated signals for a smooth transition.
Constant Power
The constant power curve starts fading slowly and then cuts off abruptly. When used as a crossfade between 2 audio regions, the signals are symetrically attenuated, and they each reach -3dB at the midpoint. This is the correct crossfade to use when you want to splice audio in the general (uncorrelated) case.
Symmetric
The Symmetric fade starts slowly, then attenuates significantly before transitioning to a slower fade-out near the end of the fade. When used as a crossfade, the Symmetric curve is not mathematically correct like the Equal Power or Linear curves, but it provides a slower fade-out at low volumes. This is sometimes useful when editing two entire works of music together so that the transition is more gradual.
Fast
The Fast curve is a linear decibel fade; It sounds like a perfectly smooth fader or knob moved to silence. This shape is excellent as a general-purpose fade-in. When used as a crossfade, the inverse fade curve maintains constant power but is therefore non-symmetric; so its use is limited to those cases where the user finds it appropriate.
Slow
The Slow curve is a modified linear decibel fade. The initial curve starts more gradually so that it has a less abrupt transition near unity. After that, it sounds like a perfectly smooth fader or knob moved to silence. This shape is excellent as a general-purpose fade-out. When used as a crossfade, the inverse fade curve maintains constant power but is therefore non-symmetric; so its use is limited to those cases where the user finds it appropriate.

Although these fade shapes serve specific purposes, any of the shapes is usable in certain situations. The final decision is an artistic choice rather than a rigidly prescribed one.

These fade curves are developed to provide a range of common uses, and are developed with the least possible amount of changes in the "slope" of the line. This provides artifact-free crossfades. Some DAWs provide complicated fade editors with parametric "spline" controls of the fade curves. While it might be interesting to develop a fade curve with a faster cutoff, the mathematical difference between this and simply shortening the fade is vanishingly small; the amount of effort to shorten the fade is much easier than fooling around with a crossfade editor dialog.

--- title: Playlists part: chapter --- --- title: Understanding Playlists part: subchapter ---

A playlist is a list of regions ordered in time. It defines which parts of which source files should be played and when. Playlists are a fairly advanced topic, and can be safely ignored for many types of audio production. However, the use of playlists allows the audio engineer more flexibility for tasks like multiple takes of a single instrument, alternate edits of a given recording, parallel effects such as reverb or compression, and other tasks.

Each audio track in Ardour is really just a mechanism for taking a playlist and generating the audio stream that it represents. As a result, editing a track really means modifying its playlist in some way. Since a playlist is a list of regions, most of the modifications involve manipulating regions: their position, length and so forth. This is covered in the chapter Working With Regions.
Here, we cover some of the things you can do with playlists as objects in their own right.

Tracks are not Playlists

It is important to understand that a track is not a playlist. A track has a playlist. A track is a mechanism for generating the audio stream represented by the playlist and passing it through a signal processing pathway. At any point in time, a track has a single playlist associated with it. When the track is used to record, that playlist will have one or more new regions added to it. When the track is used for playback, the contents of the playlist will be heard. You can change the playlist associated with a track at (almost) any time, and even share playlists between tracks.

If you have some experience of other DAWs, then you might have come across the term "virtual track", normally defined as a track that isn't actually playing or doing anything, but can be mapped/assigned to a real track. This concept is functionally identical to Ardour's playlists. We just like to be little more clear about what is actually happening rather than mixing old and new terminology ("virtual" and "track"), which might be confusing.

Playlists are Cheap

One thing you should be clear about is that playlists are cheap. They don't cost anything in terms of CPU consumption, and they have very minimal efforts on memory use. Don't be afraid of generating new playlists whenever you want to. They are not equivalent to tracks, which require extra CPU time and significant memory space, or audio files, which use disk space, or plugins that require extra CPU time. If a playlist is not in use, it occupies a small amount of memory, and nothing more.

--- title: Playlist Operations part: subchapter ---

In the track header (editor window, left pane) is a button labelled p (for "Playlist"). If you click on this button, Ardour displays the following menu:

(Local Playlists)
Shows all of the playlists associated with this track, and indicates the currently selected playlist
Rename
Displays a dialog to rename the current playlist
New
Creates a new empty playlist, and the track switches to the new playlist
New Copy
Creates a new playlist that is a copy of the current playlist; the track switches to the new playlist
Clear Current
Removes all regions from the current playlist
Select From All
Displays a playlist browser to manually choose which playlist this track should use. (You can even select playlists from other tracks here)

Renaming Playlists

Playlists are created with the name of the track of which they are associated, plus a version number. So, the first playlist for a track called "Cowbell" will be called Cowbell.1. This name will be used to define the names of any regions added to the playlist by recording. You can change the name at any time, to anything you want. Ardour does not require that your playlist names are all unique, but it will make your life easier if they are. Suggested examples of user-assigned names for a playlist might include Lead Guitar, 2nd take, vocals (quiet), and downbeat cuica. Notice how these might be different from the associated track names, which for these examples might be Lead Guitar, Vocals and Cuica. The playlist name provides more information because it is about a specific version of the material that may (or may not) end up in the final version of the track.

If you are going to rename your playlists, do so before recording new material to them.

It appears that recorded regions are not named after the playlist, but after the track.

Sharing Playlists

It is entirely possible to share playlists between tracks. The only slightly unusual thing you may notice when sharing is that edits to the playlist made in one track will magically appear in the other. If you think about this for a moment, its an obvious consequence of sharing. One application of this attribute is parallel processing, described below.

You might not want this kind of behaviour, even though you still want two tracks to use the same (or substantially the same) playlist. To accomplish this, select the chosen playlist in the second track, and then use New Copy to generate an independent copy of it for that track. You can then edit this playlist without affecting the original.

--- title: Playlist Usecases part: subchapter ---

Using Playlists for Parallel Processing

One of the uses of playlists is to apply multiple effects to the same audio stream. For example, let's say you would like to apply two different non-linear effects such as distortion or compression to the same audio source (for linear effects, you could just apply them one after the other in the same track).
Create a new track, apply the original track's playlist, and then apply effects to both tracks independently.

The same result could be achieved by feeding your track to multiple busses which then contain the processing, but this increases the overall latency, complicates routing and uses more space in the Mixer window.

Using Playlists for "Takes"

Using Playlists for takes is a good solution if you are going to need the ability to edit individual takes, and select between them.

Each time you start a new take, create a new playlist with p > New Later, you can Select your way back to previous or later takes as desired.

If you want to create a composite edit from multiple takes, create a new track to assemble the final version, and "cherry pick" from the playlists in the original track by copying regions over as required.

Alternatively, record each successive take on top of the others in "layers" and then edit them using the layer tools, explained later.

Using Playlists for Multi-Language Productions

The same approach as for takes is useful when you are recording or editing content in multiple versions, such as dubbed movie dialog in several languages, and you want all versions on the same track, to get the same processing.
Select the appropriate language before exporting the session.

--- title: Rhythm Ferret part: chapter --- --- title: MIDI part: part --- --- title: MIDI Editing part: chapter --- --- title: Edit MIDI part: subchapter ---

Ardour's handling of MIDI editing differs from most other DAWs and MIDI sequencers.

Key features of Ardour MIDI handling

Notable Differences

--- title: Fundamental Concepts part: subchapter ---

Check to see if this is still true for v5

Ardour's MIDI editing is based on two basic principles:

  1. Editing should be done without having to enter a new window
  2. Editing should be able to carried out completely with the keyboard, or completely with the mouse, or with any combination of the two.

Currently, MIDI editing is primarily restricted to note data. Other kinds of data (controller events, sysex data) are present and can be added and deleted, but not actually edited.

Fundamentals of MIDI Editing in Ardour 3

MIDI, just like audio, exists in regions. MIDI regions behave like audio regions: they can be moved, trimmed, copied (cloned), or deleted. Ardour allows either editing MIDI (or audio) regions, or MIDI region content (the notes), but never both at the same time. The e key (by default) toggles between region level and note level editing, as will double-clicking on a MIDI region.

One very important thing to note: editing note information in Ardour occurs in only a single region. There is no way currently to edit in note data for multiple regions at the same time, so for example you cannot select notes in several regions and then delete them all, nor can you copy-and-paste notes from one region to another. You can, of course, copy and paste the region(s), just as with audio.

--- title: Create MIDI Tracks part: subchapter ---

To create a new MIDI track, choose Session > Add Track/Bus. In the Add Track/Bus dialog, pick MIDI Track from the combo selector at the upper right.

You may decide to use a track template if you have one. You may also know the instrument (a plugin that will generate audio in response to receiving MIDI) that you want to use in the track. The Instrument selector will show you a list of all plugins that you have which accept MIDI input and generate audio output.

Remove "you" language

--- title: Create MIDI Regions part: subchapter ---

Although recording MIDI is a common way to create new MIDI regions, it is often desirable to do so as part of editing/arranging.

To create a new MIDI region, simply Left-click in a MIDI track. A region will be created that is one bar long. It can trimmed to any length desired.

Broken link

Once a region has been created, notes can be added to it.

--- title: Add New Notes part: subchapter ---

Adding new notes

In general, most MIDI editing will be done with the mouse in object mode. This allows selecting notes, copying, moving or deleting them and altering their properties (see below). Adding notes to a MIDI region using the mouse requires dragging with the mouse if they are to be anything other than a fixed length. Since this would normally be a selection operation if the mouse is in object mode, there needs to be some way to tell Ardour to draw new notes within a MIDI region. Ardour provides two ways do this: one is to leave the mouse in object mode and Left-drag; the other, useful if entering a lot of notes for a while, is to switch the mouse into Draw Notes mode, which will now interpret any drags and clicks as requests to add a new note. For obvious reasons, Draw Notes mode cannot be used while using region-level editing.

So, to summarize:

Selecting, moving, copying, trimming, deleting regions
leave Note Level Editing disabled, use object, range or other mouse modes
Selecting, moving, copying trimming, deleting notes
enable Note Level Editingand use mouse object mode
Adding new notes
enable "Note Level Editing" and then either

 

It is also a a step entry editor allowing entry of notes from a virtual keyboard, and lots more besides.

--- title: Change Note Properties part: subchapter ---

Details about a selected note can be viewed by context-clicking on it. The dialog that pops up will also allow modification of all the properties of the selected note(s). Individual properties can be modified more efficiently using the techniques described below:

Moving notes
Right arrow and Left arrow move the selected note(s) early and later in time.
Changing pitch values
increases the pitch of the selected notes.
reduces the pitch of the selected notes.
If any of the selected notes are already at the maximum or minimum value, no changes will be made to any of the notes, to preserve relative pitches. This can be overridden with . The default shift distance is one semitone. Use to alter this to one octave.
Changing velocity values
increases the velocity of the selected notes.
reduces the velocity of the selected notes.
If any of the selected notes are already at the maximum or minumum value, no changes will be made to any of the notes, to preserve relative velocities. This can be overridden with . Presssing v will popup a dialog that will allow the setting of the absolute velocity value of each selected note. Finally, the scroll wheel will also adjust notes in the same way as the arrow keys.

Like the arrow keys, it only affects selected notes, not the note the pointer is over.

Changing channel
Press c to bring up a dialog that allows viewing and altering the MIDI channel of the selected notes. If the selected notes use different channels, they will all be forced to the newly selected channel.
Changing start/end/duration
, (comma) will alter the start time of the note.
. (period) will alter the end time of the note. Both keys will by default make the note longer (either by moving the start earlier or the end later). For the opposite effect, use ,/.. The note will be altered by the current grid setting. To change the start/end positions by 1/128th of a beat, use the modifier in addition to these shortcuts.
Quantization
q will quantize the selected notes using the current quantize settings. If the quantize settings have not been set for this session yet, the quantize dialog will appear. q will display the quantize dialog to allow resetting of the quantize settings, and then quantize the selected notes. The default quantize settings are: quantize note starts to the current grid setting, no swing, no threshold, full strength.
Step Entry, Quantize etc.
missing

Add missing content

--- title: Handling Overlapping Notes menu_title: Overlapping Notes part: subchapter ---

Every MIDI note consists of two messages, a NoteOn and a NoteOff. Each one has a note number and a channel (also a velocity, but that isn't relevant here). The MIDI standard stresses that it is invalid to send a second NoteOn for the same note number on the same channel before a NoteOff for the first NoteOn. It is more or less impossible to do this with a physical MIDI controller such as a keyboard, but remarkably easy to trigger when editing in a DAW—simply overlapping two instances of the same note will do it.

Ardour offers many options for how to deal with instances where you overlap two instances of the same note. Which one to use is a per-session property and can be modified from Session > Properties > Misc > MIDI Options.

never allow them
Edits that would create note overlaps are not allowed
don't do anything in particular
Ardour leaves overlapping notes alone—the behaviour of a MIDI receiver (plugin or hardware) is undefined
replace any overlapped existing note
When one note is moved to overlap another, remove the one that wasn't being moved
shorten the overlapped existing note
When one note is moved to overlap another, shorten the one that wasn't moved so that there is no overlap
shorten the overlapping new note
When one note is moved to overlap another, shorten the one that was moved so that there is no overlap
replace both overlapping notes with a single note
When one note is moved to overlap another, merge them both to form one (longer) note

Changing the option in use will not retroactively make changes—it will only affect new note overlaps created while the option remains chosen.

Ardour does not check for note overlaps across tracks or even across regions. If you create these, it is your responsibility to deal with the consequences.

--- title: Note Cut, Copy and Paste part: subchapter ---

While in note edit mode, selected notes can be cut using x, copied with c and deleted with Delete, just as regions can. Once cut or copied, they can be pasted at the edit point using v.

--- title: Note Selection part: subchapter ---

Selecting/Navigating note-by-note

Tab selects the next note. Tab selects the previous note. Tab or Tab adds the next/previous note to the selection.

Selecting notes with the mouse

While in mouse object mode, you can click on a note to select it. Once you have selected one note, Left-click on another to select all notes between them. To add or remove a note to/from the selection, click Left. You can also click and drag outside of a note to rubberband select a series of notes.

Three different selection operations are possible if you switch to mouse range mode:

Listening to Selected Notes

If Edit > Preferences > MIDI > Sound MIDI notes as they are selected is enabled, Ardour will send a pair of NoteOn/NoteOff messages through the track, which will typically allow you to hear each note as it is selected.

--- title: Quantize MIDI part: subchapter ---

Needs fleshing out; this is a bit thin at the moment

quantize dialog

Accessed via q, the dialog includes:

--- title: Step Entry part: subchapter ---

Sometimes editing MIDI data directly from a connected MIDI device like a musical keyboard or pad controller is desired; sometimes using the mouse is. Sometimes the fine-grained control, precision and speed of entry that comes from using a custom note entry dialog is; the Step Entry dialog aims to be the latter.

The step entry dialog is accessed via a right click context menu on the rec-enable button, because step entry is related to recording MIDI data—step editing and recording MIDI via the track's MIDI port cannot be done simultaneously.

The dialog (closely modeled after Logic's) contains:

More or less all actions in the step entry dialog can be driven directly from the keyboard, so moving back and forth from keyboard to mouse to do complex data insertion is unnecessary.

--- title: Patch Change part: subchapter ---

A patch change is Ardour's description for a combination of MIDI program change and bank select messages, that (typically) instruct a synthesizer or sampler to select a different sound to use on a particular channel.

Patch changes are shown within MIDI regions as small rectangles or flags, as shown below:

Add missing images

Inserting Patch Changes

Ensure that the edit point is located where the patch change should be (within an existing MIDI region). Context click, and from the MIDI region's context menu, select MIDI > Insert Patch Change. A dialog will appear allowing the setting of the bank and program values.

Modifying Patch Changes

Context-clicking on a patch change will bring up the same dialog that was used to create it, allowing the modification of the program and/or bank numbers.

The mouse wheel can also be used: / on the patch change will alter the program number, / will modify the bank number.

Moving Patch Changes

Just Left-drag on the patch change to move it around.

Removing Patch Changes

Put the mouse pointer into the rectangular area, and press Del or use the delete mouse button operation. This will remove the patch change (the operation can be undone).

Names for Patch Numbers: MIDNAM files

…mising…

Add missing content

--- title: Independent and Dependent MIDI Region Copies menu_title: Copy MIDI Region part: subchapter ---

When copying a MIDI region, Ardour has to decide whether to make the copy refer to the same data as the original or not. If it does refer to the same data, then editing either the copy or the original will affect the both of them. If it refers to an independent copy of the data then each one can be edited without affecting the other.

Changing dependent/independent copying for the entire session

Sesson > Properties > Misc > MIDI region copies are independent can be used to control the default behaviour when making a copy of a MIDI region.

When enabled, every new copy of a MIDI region results in a copy being made of the MIDI data used by the region, and the new copy of the region will refer to that data.

When disabled, every new copy of a MIDI region will refer to the same MIDI data, and thus editing any copy will change the contents of all of them.

Changing the status of this option has no effect on the existing dependent/independent status of existing region copies.

Making an existing copy of a MIDI region independent

Context-click on the MIDI region to be made independent. From the context menu, select MIDI > Unlink From Other Copies. The copy is now using an independent version of the data, and edits to the copy will affect only the copy. Other linked copies will continue to share data.

The copied data only covers the extent of the region when the copy is made. If the region was already trimmed and then a copy is made, an independent copy will have no access to data that is earlier or later than the bounds of the region it was copied from. Put differently, if an independent copy of a trimmed MIDI region is made, it cannot be "untrimmed" to a larger size.

--- title: Automating MIDI - Pitch bending and aftertouch menu_title: Automating MIDI part: subchapter ---

Adding pitch bending or aftertouch can add a lot of subtlety to an otherwise plain sounding midi region and help humanize it.

Automation: pitch bending

Pitch bending and aftertouch both work the same way, through automation. Right click the MIDI track's header > Automation > Bender (or Pressure) > choose the channel you want to bend.

Using the Draw tool, as for all the automation, allows creation of a gradual change from one drawn point to another. A line in the center produces no change to the pitch, while a line above the center will bend the pitch to a higher note (up to 4 semitones) and a line going under the middle will bend the pitch to a lower note.

The values can be anything between 0 (-4 semitones) to 16,383 (+4 semitones). No automation or a value of 8,192 means no pitch shifting.

Aftertouch works very similarly, though the values are between 0 and 127. It should be noted that aftertouch differs from velocity, as aftertouch allows to slightly change the timbre or create a vibrato, while the velocity sets the power with which the note is played (e.g. on a keyboard, the key is hit).

--- title: Transforming MIDI - Mathematical operations menu_title: Transforming MIDI part: subchapter ---

Considering the numerical nature of MIDI events, it can be tempting to apply mathematical transformations to our MIDI regions by using mathematical operations. Ardour makes it very easy and powerful with the Transform tool.

MIDI transformation

To access the Transform tool, right click the MIDI region > name_of_the_region > MIDI > Transform...

First, select the property you want to modify in the 'Set' field, then change the target value using the 2 following fields. If you want to add more operands, click the "+" sign to create new lines. You can remove a superfluous line using the "-" sign on the right of the newly created line.

In the picture above, we've used the Transform tool to add a bit of humanization, by slightly changing the velocity of each note of the region, by a random number between -19 and +19 from it's original velocity. So we've used 3 operations:

Each note will trigger a calculation of its own, so its velocity will be increased by a random number between 1 and 20, then decreased by a random number between 1 and 20.

The properties that can be computed are:

and the calculation may be based on the following properties:

The mathematical operators can be:

All this operations can be very handy, as long as you find a mathematical way to achieve your goal. Beware though of odd "border cases": division by zero (which does nothing), using the note's index and forgetting it starts at 0 and not 1, etc.

You can nevertheless create very interesting results, like humanizing (randomizing the velocity, start time and duration of all the notes), creating arpeggios, automating tedious tasks, transposing, etc.

--- title: MIDI Editors part: chapter --- --- title: MIDI Scene Automation part: subchapter ---

Ardour is capable of being used to both record and deliver MIDI "scene" automation. These are MIDI messages typically used to switch presets or "scenes" on a variety of external equipment (or software), including lighting and other audio/video tools. A common use case is to automatically change presets between songs or to change lighting conditions based on a specific position on the timeline.

Each change from one scene to another is represented by a marker in the "Marker" bar.

Technically, scene changes are delivered as a combination of bank and program change MIDI messages. MIDI allows for 16,384 banks, each with 128 programs.

Recording Scene Changes

Ardour has a dedicated MIDI port named "Scene In". Connect this port to whatever source(s) of MIDI scene (bank/program change) messages you wish to record.

Whenever the global record enable button is engaged and Ardour's transport is rolling, a new marker will be created for each scene change message received via the "Scene In" port.

If two different scene changes are received within a certain time period, only the later one will be recorded as a new marker. The default threshold for this is one millisecond.

If a scene change message is received while the playhead is close to an existing marker with an associated scene change, the recording process will alter the scene change in the existing marker rather than adding a new one. The default threshold for this "proximity" test is one millisecond.

Manually Creating Scene Changes

This feature is not currently implemented.

Playing back Scene Changes

Ardour has a dedicated MIDI port named "Scene Out". Connect this port to wherever you wish to send MIDI scene (bank/program change) messages.

When the global record enable button is not enabled, the relevant message(s) will be sent via the "Scene Out" port as the playhead rolls past each marker with a scene change associated with it.

Editing Scene Changes

This feature is not currently implemented.

Disabling Scene Changes

This feature is not currently implemented.

--- title: Score Editor part: chapter --- --- title: MIDI Event List part: chapter --- --- title: Arranging part: part --- --- title: Time, Tempo and Meter part: chapter --- --- title: Tempo and Meter part: subchapter ---

Tempo and meter belong together. without both, there is no way to know where a beat lies in time.

Tempo provides a musical pulse, which is divided into beats and bars by a meter. When tempo is changed or an audio-locked meter is moved, all objects on the timeline that are glued to bars and beats (locations, regions) will move in sympathy.

When performing meter or tempo operations, it is advised to show the BBT ruler (available by right-clicking an existing marker or ruler name), and that the constraint modifier is set (in Preferences->User Interaction) so that no other modifiers share its key combination.

The constraint modifier is the "Constrain drags using:" setting under the "When Beginning a Drag" heading. One viable setting is .

Tempo

Tempo can be adjusted in several ways:

A tempo may be locked to audio or musical time. This may be changed by right-clicking on a tempo. If a tempo is locked to music, an entry will be available to lock it to audio. Similarly an audio-locked tempo may be locked to music by right clicking it an selecting the "Lock to Music" entry.

Audio locked tempo marks stay in their frame position as their neigbours positions are altered. Their pulse (musical) position will change as their neighbours move. Music locked tempo marks move their frame position as their neighbours are moved, but keep their pulse position (they will move as the music is moved).

A tempo may be ramped or constant.

A constant tempo displaying the tempo at the playhead in the audio clock
A series of constant tempo markers. The tempo at the playhead position is the same as the previous tempo.

A ramped tempo displaying the tempo at the playhead in the audio clock
A ramped tempo marker. The tempo at the playhead position is approaching the second tempo. Because the playhead is equidistant (in beats) between the two markers, the tempo at the playhead is the average of the two.

To add a new tempo, use the primary modifier and click on the tempo line at the desired position. The new tempo will be the same as the tempo at the position of the mouse click (it will not change the shape of the ramp).

To copy a tempo, hold down the primary modifier and drag the tempo desired to be copied.

Meter

Meter positions beats using the musical pulse of a tempo, and groups them into bars using its number of divisions per bar.

The first meter in a new session may be moved freely. It has an associated tempo which cannot be dragged by itself (although all others can). It can be moved freely and is locked to audio.

New meters are locked to music. They may only occur on a bar line if music locked.

An audio locked meter provides a way to cope with musical passages which have no meter (rubato, pause), or to allow a film composer to insert a break in music which cannot be counted in beats.

If a meter is audio-locked, its bar number is fixed from the point at which it left the main score. That bar number cannot be changed, nor can tempo motion allow the previous bar to overlap. If another bar is needed, lock the meter to music again (right click->"Lock to Music"), drag the meter to the desired bar and re-lock to audio. The new bar may be freely moved again.

  • To change a meter, double click it. A dialog will appear.
  • To copy a meter, hold down and drag it.
  • --- title: Techniques for Working with Tempo and Meter part: subchapter ---

    Techniques

    As a general approach, the best way to control tempo ramps is to use them in pairs.

    Lets imagine we want to match the click to a drum performance recorded in 'free time'.

    The first thing we need to do is determine where the first beat is. Drag the first meter to that position.

    Now the first click will be in time with the first beat. To get all the other beats to align, we listen to the drums and visually locate the position of bar 4. You may wish to place the playhead here.

    We then locate bar 4 in the BBT ruler and while holding the constraint modifier, drag it to bar 4 in the drum performance.

    We notice that the click now matches the first 4 bars, but after that it wanders off. You will see this reflected in the tempo lines.. they won't quite match the drum hits. We now locate the earliest position where the click doesn't match, and place a new tempo just before this. Two bars later, place another new tempo.

    Now while dragging any beat after the second new tempo, watch the drum audio and tempo lines until they align.

    Notice what is happening here: the tempo previous to your mouse pointer is being changed so that the beat you grabbed aligns with the pointer. Notice that the tempo lines previous to the changed one also move. This is because the previous tempo is ramping to the tempo you are changing. Look further to the left. The tempo lines in the first four bars do not move.

    Again, some time later the click will not align. I didn't say this was easy.

    Repeat the same technique: add two new tempos and drag the BBT ruler after the newest tempo so that the beats align with the audio again.

    In a general sense, adding tempo markers in pairs allows you to 'pin' your previous work while you move further to the right.

    Another use case: matching accelerando

    Imagine you have some video and have located where your music cue begins. Move the first meter to that frame (you may snap to TC frames, but not music with an audio locked meter).

    Find a starting tempo by listening to the click while you drag the meter's tempo vertically using the constraint modifier.

    You have the playhead at point where the dude slams the phone down, and your idea was that 4|1|0 would be good for this, but you want an accelerando to that point.

    Add a tempo at bar 4.

    Holding down the constraint modifier, and with snap set to 'TC Frames', grab the BBT ruler just after 4|1|0. Drag the ruler so that 4|1|0 snaps to the 'phone' frame.

    Notice what happened: The second tempo was changed.
    You had set a musical position for the second tempo marker. It was not aligned with the frame you wanted, so you dragged the BBT ruler, making the second tempo provide enough pulses over the ramp for 4|1|0 to align with the desired frame.

    If the ramp doesn't feel right, you may add more points within it and keep adjusting beat positions in a similar manner.

    General

    Audio locked meters can be useful when composing, as they allow a continuous piece of music to be worked on in isolated segments, preventing the listening fatigue of a fixed form. Reassembly is left as an excercise for the reader.

    --- title: Memory Locations part: chapter --- --- title: Arranging Regions part: chapter --- --- title: Region Loops and Groups part: chapter --- --- title: Mixing part: part --- --- title: Basic Mixing part: chapter --- --- title: Metering in Ardour part: subchapter ---

    Introduction

    An engineer reading and using audio level meters compares to a musician reading or writing sheet-music. Just like there are virtuoso musicians who can't read a single note, there are great sound-engineers who just go by their ears and produce great mixes and masters without ever looking at a single meter.

    Yet, if you want to work in or with the broadcast industry, it is usually unavoidable to use meters.

    Audio level meters are very powerful tools that are useful in every part of the entire production chain:

    Meter Types

    A general treatise on metering is beyond the scope of this manual. It is a complex subject with a history... For background information and further reading we recommend:

    There are different metering standards, most of which are available in Ardour. In short:

    Digital peak-meter
    A Digital Peak Meter displays the absolute maximum signal of the raw audio PCM signal (for a given time). It is commonly used when tracking to make sure the recorded audio never clips. To that end, DPMs are always calibrated to 0 dBFS, or the maximum level that can be represented digitally in a given system. This value has no musical reason whatsoever and depends only on the properties of the signal chain or target medium. There are conventions for fall-off-time and peak-hold, but no exact specifications.

    Various conventions for DPM fall-off times and dBFS line-up level can be chosen in Edit > Preferences > GUI.

    RMS meters
    An RMS-type meter is an averaging meter that looks at the energy in the signal. It provides a general indication of loudness as perceived by humans. Ardour features three RMS meters, all of which offer additonal peak indication.
    IEC PPMs
    IEC-type PPMs are a mix between DPMs and RMS meters, created mainly for the purpose of interoperability. Many national and institutional varieties exist (EBU, BBC, DIN).

    These loudness and metering standards provide a common point of reference which is used by broadcasters in particular so that the interchange of material is uniform across their sphere of influence, regardless of the equipment used to play it back.

    For home recording, there is no real need for this level of interoperability, and these meters are only strictly required when working in or with the broadcast industry. However, IEC-type meters have certain characteristics (rise-time, ballistics) that make them useful outside the context of broadcast.

    Their specification is very exact, and consquently, there are no customizable parameters.

    VU meters
    VU meters are the dinosaurs (1939) amongst the meters. They react very slowly, averaging out peaks. Their specification is very strict (300ms rise-time, 1–1.5% overshoot, flat frequency response). Ardour's VU meter adheres to that spec, but for visual consistency it is displayed as a bar-graph rather than needle-style (more below).

    Ardour Specifics

    mixer strip meter context menu

    Meters are available in various places in ardour:

    They all share the same configuration and color-theme which is available in preferences and the theme-manager. Settings for the Peak and RMS+Peak meters as well as VU meter standards are found in Edit > Preferences > GUI > Metering.

    The type of meter and the metering point (the place in the signal chain where the meter taps the signal) are configurable in the context menu of each meter. Depending on the Edit > Preferences > GUI > Mixer Strip settings, the metering point is also accessible via a button in each Mixer strip.

    Regardless of meter type and standard the meter display will highlight red if the signal on the given channel exceeds the configured peak threshold.

    Left on the peak-indicator button resets the peak-hold indicator of a single channel.
    Left resets a whole group, and
    Left resets all meters.

    Overview of meter types

    The figure on the left below shows all available meter-types in Ardour 3.4 when fed with a -18 dBFS 1 kHz sine wave.

    Needle-style meters as external LV2 plugins Bar-graph meters in Ardour

    Due to layout concerns and consistent look & feel, all meters available in Ardour itself are bar-graph type meters. Corresponding needle-style meters—which take up more visual screen space—are available as LV2 plugins (see image on the upper right).

    --- title: Signal Routing part: subchapter ---

    Ardour does most of its internal signal routing via JACK: all track and bus inputs and outputs are JACK ports, as are sends and inserts—which means they can be tapped into by other JACK clients. Only the signal flow inside a track or bus (i.e. from processor to processor) is handled internally.

    By default, Ardour will create the following connections:

    This configuration is normally sufficient to do basic tracking and playback of sessions without any adjustments. When changing these connections, be certain that there is good reason for doing so—it is generally not necessary and can often lead to problems.

    However, for many workflows during mixing, more complicated signal routing is required. Fortunately, Ardour is very flexible in the ways it offers to connect things to each other.

    --- title: Busses and VCAs part: subchapter ---

    In order to use the process of mixing, Ardour offers two tools traditionally found on hardware mixing consoles: Busses and VCAs.

    Busses

    An Ardour bus can be considered a virtual track, as in a track that doesn't have a playlist (so, no regions).

    Its use is to "group" some audio signals to be treated the same way. One simple use case is to group all the audio tracks containing the different drums of a drumkit. Routing all the drums tracks outputs to a bus allows, once the different levels amongst the drums have been set, to adjust the global level of the drumkit in the mix.

    Bus usage goes way beyond this simple example though: busses, as tracks, can receive plugins for common audio treatment, and be routed themselves as needed. This makes for a very useful tool that is very commonly used both for musical purposes and computing ones: instead of using e.g. 10 discrete delay plugins on 10 different tracks, busses are often used as receivers of sends, and only 1 delay plugin is used on this bus, reducing the processing power needed.

    Note that the Master strip, which by default receives the output from all tracks, is a bus itself.

    Audio Busses vs MIDI Busses

    Ardour supports 2 types of busses: Audio and MIDI. A MIDI bus differs from an audio bus just by its input (which is 1 midi input instead of n audio), the fact that you can put an instrument on it at creation time, whereas you can't easily add an instrument to an audio bus.

    MIDI bus are provide a particularly efficient workflow for virtual drumkits where the arrangement uses different MIDI tracks. Moreover, busses with both Audio and MIDI inputs are well suited for vocoders and similar plugins.

    Depending on the user's workflow and the way busses are used, 2 possibilities exists:

    Connecting a track to a bus via outputs

    Connecting a bus through a track's outputs

    Connecting the output(s) of a track to the input(s) of the bus sends all the audio/MIDI to the bus. In the mixer strip, select (at the bottom) the OUTPUT button (often, by default, "Master"), and in the list, choose the input of a bus. Note that only the bus able to receive this output will show up, e.g. a mono bus wont be able to be connected to the output of a stereo track).

    Obviously, doing so will (by default) disconnect the output from the Master's input, which means all the audio/MIDI will be routed to the bus. For more complex routing, the OUTPUT button allows to show the Routing Grid that allows to plug the output of the track to multiple outputs at once, be it busses, tracks, Master... The button will then reflect these multiple connections by showing a *number*, number being the number of connections made in the routing grid.

    Connecting a track to a bus via Sends

    Connecting a bus through a send

    This allows not to interrupt the natural flow of the signal, i.e. the track will still output to what its connected to (e.g. Master). The signal is "tapped" at the point of insertion of the send, to be sent to the bus. Right click where in the signal flow you want the send to happen, and select New Aux Send... > name_of_the_bus.

    By left-clicking the send meter, it is possible to adjust the amount of signal sent to the bus. This is often the way tracks are connected to an effect bus, like a Delay bus.

    Busses can be plugged to other busses, through outputs or sends. Both example workflows discussed previously, i.e. busses for grouping tracks and busses for effects, can both coexist, as e.g. a "grouping" drum bus can have a send to a reverb bus, and be connected to a compressor bus.

    VCAs

    VCAs strips

    Although track/bus groups offer a certain kind of grouped-control over gain, solo, mute and more, traditional mixing consoles have long had group master channels ("VCAs") which allows to combine both a single fader to control the group level while also allowing you to easily adjust the relative levels inside the group. For large projects, this can make mixing much easier to control.

    It allows to use either or both of the conventions for combining multiple masters:

    Using a VCA strip

    A VCA strip is made of (from top to bottom in the screenshot):

    Right-clicking the name button shows a context menus comprised of:

    Connecting to a VCA strip

    Connecting to VCA

    Connecting a track/bus/VCA to a VCA is as simple as clicking the VCA button on any mixer strip and choosing the VCA to connect to.

    The VCA button only shows up in mixer strips when at least 1 VCA exists, i.e., you have to first create a VCA before connecting it.

    --- title: Aux Sends part: subchapter ---

    Auxilliary sends are processors in a bus or track channel strip. They tap the signal at a specific point in the signal flow (pre-fader, post-fader, before or after EQs and other plugins, etc.) and send a copy of that signal somewhere else, without affecting the normal signal flow downwards to the channel fader.

    Usually, aux sends from several tracks are collectively sent to a dedicated Aux bus in Ardour, to create a monitor mix for a musician, or to feed an effect unit. The output of such a bus might be routed to separate hardware outputs (in the case of headphone or monitor wedge mixes), or returned to the main mix (in the case of an effect).

    Since sends are JACK ports, it is also possible to send the tapped signal somewhere else directly, which is not usually possible on hardware mixers (see External Sends).

    It may be useful to compare and contrast the use of aux sends with subgrouping.

    Adding a new aux bus

    Choose Session > Add New Track or Bus. In the New Track & Bus dialog, select "Busses" in the Track/Bus selector at the upper right.

    Adding a send to an aux bus

    Context-click on the processor box for the track you want to send to the bus, and choose New Aux Send. From the submenu, choose the bus you want to send to. A send will be added (and will be visible in the processor box). Note that the submenu may be empty if you have not created a bus yet.

    Pre-fader and Post-fader Aux Sends

    Depending on whether you context-click above or below the fader in the processor box, the new aux send can be placed before or after the fader in the channel strip. Post-fader aux sends are typically used when using an aux for shared signal processing (FX), so that the amount of effect is always proportional to the main mix fader. Pre-fader sends ensure that the level sent to the bus is controlled only by the send, not the main fader—this is typical when constructing headphone and monitor wedge mixes.

    Adding a new aux bus and sending a Track Group to it

    You can add aux sends to all members of a group and connect them to a new aux bus with a single click. After creating the track group (and adding tracks to it), context-click on the group tab and choose either Add New Aux Bus (pre-fader) or Add New Aux Bus (post-fader). A new aux bus will be created, and a new aux send added to every member of the track group that connects to this aux bus.

    Add images, fix factual inaccuracies

    Altering Send Levels

    You can alter the amount of the signal received by a send that it delivers to the bus it connects to. There are three approaches to this:

    Use the Send Fader

    Every send processor has a small horizontal fader that can be adjusted in the usual way. It is not very big and so this can be a little unsatisfactory if you want very fine control over the send level.

    Mapping the Main Fader

    Double-clicking on the send in the processor box will allow you to use the big fader of the mixer strip to control the send. The visual appearance of the mixer strip will change to reflect this. Double-click the send again to revert back to normal function for the strip.

    Map Aux Sends To Main Faders

    Pressing the button marked Aux Sends on a aux bus will alter the channel strip for every track or bus that feeds the aux bus. Many aspects of the strip will become insensitive and/or change their visual appearance. More importantly, the main fader of the affected channel strips will now control the send level and not the track gain. This gives a larger, more configurable control to alter the level. Click the Aux Sends button of the aux bus again to revert the channel strips to their normal use.

    Disabling Sends

    Clicking on the small "LED" in the send display in the processor box of the channel strip will enable/disable the send. When disabled, only silence will be delivered to the aux bus by this track. When enabled, the signal arriving at the send will be delivered to the aux bus.

    Send Panning

    Send panners can be configured to either be independent of the main panner, or to follow it. The latter could be useful for Reverb effects, or for in-ear monitor mixes delivered in stereo.

    --- title: Comparing Aux Sends and Subgroups menu_title: Auxes vs. Groups part: subchapter ---

    Auxes and Subgroups share a common concept—they both provide a way for one or more tracks (or busses) to send their signal to a single bus so that common signal processing can be applied to the mix of their signals.

    Aux sends leave the existing signal routing to the main mix in place, and are typically used to create a separate mix to send to (for example) monitors or headphones (for performer monitor mixes):

    aux signal routing

    Subgroups usually remove the original signal routing to the main mix and replace it with a new one that delivers the output of the subgroup bus to the main mix instead.

    sub group signal routing --- title: External Sends part: subchapter ---

    Like a normal aux send, an external send taps the signal at a specific within a channel strip, but delivers it to an external application or piece of hardware rather than an Ardour bus. By itself, an external send has no effect whatsoever on the audio signals within Ardour—it is a one-way signal routing that leaves all existing signal processing just as it was.

    Most people will not have much use for this, but it can be useful if you want to experiment with external applications or hardware signal processing applications.

    Adding an External Send

    Context-click on the processor box in a channel strip (at the desired location, pre or post fader) and choose Add new External Send. A dialog will appear containing the standard Ardour patchbay to allow you to connect the send to the desired destination.

    Broken links

    Removing an External Send

    You can remove an external send in several ways:

    Altering Send Levels

    Just below the send in the processor box is a small fader that can be used like all other faders in Ardour to control the gain applied to the signal delivered by the send. Drag it to alter the level, Shift-click to restore to unity (0dB) gain.

    Disabling Sends

    Click the small "LED" in the send display within the processor box to turn it on and off. When turned off, silence will be delivered to the send. When turned on, the signal within the channel strip will be delivered.

    Editing Send Routing

    Double-clicking or Edit-clicking on the send in the processor box will redisplay the patchbay dialog that allows you full control over the routing of the send.

    --- title: Inserts part: subchapter ---

    Inserts are signal tap points that can be placed anywhere inside a channel strip. Unlike Auxes, they will interrupt the signal flow, feeding the signal from before the insert point to its Insert send(s), and connecting the remainder of the channel strip to the Insert return(s), both of which are JACK ports which are visible to other JACK applications.

    Inserts are the JACK equivalents of normalized switching jacks on an analog console.

    An insert allows you to either use a special external DSP JACK application that is not available as a plugin, or to splice an external analog piece of gear into your channel strip, such as a vintage compressor, tube equalizer, etc. In the latter case, you would first connect your inserts to a pair of hardware ports, which are in turn connected to the outboard gear.

    To disable (bypass) an insert, click on its LED in the processor box.

    When you create an insert, the signal will be interrupted until you make the relevant connections to the insert ports!

    Inserts will incur an additional JACK period of latency, which can be measured and compensated for during mixing, but not during tracking!

    --- title: Subgrouping part: subchapter ---

    Subgrouping (sometimes known as "Grouping" or "Audio Grouping") is a way to collect related signals together to apply some common treatment, before sending them on to the main mix. One standard application is to group several tracks belonging to the same instrument or section (such as a drumkit or horn section), to be able to adjust their volume with a single fader, after their inner balance has been set using the track faders.

    To create a subgroup from an existing Track/Bus group, context-click on the relevant group tab, and choose Add new subgroup bus. A new bus will be created and every member of the track group will have its outputs disconnected from other destinations and then connected to the new bus inputs. The bus outputs will feed the master bus unless you have selected manual connections for the session. The bus will be named after the track group name.

    Alternatively, you can create a group manually, by first adding a new bus, then, for each track you want to feed the subgroup bus, disconnect its outputs from the master and connect it to the inputs of the subgroup bus instead. You can do this in the global audio patchbay or a track by track basis via the output button of each track's channel strip.

    To remove a subgroup (bus), context-click on the track group tab, and select Remove subgroup bus. You can also simply delete the bus itself. Note that this operation will not restore signal routing to the way it was before the addition of the subgroup bus—tracks that had been subgrouped will be left with their main outputs disconncted.

    --- title: Patchbay part: subchapter ---

    The patchbay is the main way to make connections to, from and within Ardour's mixer.

    Notable exceptions are internal aux sends and connections to the monitor bus (if you are using one): these cannot be controlled from a patchbay, and are basically not under manual control at all.

    an example patchbay

    The patchbay presents two groups of ports; one set of sources (which produce data), and one of destinations (which consume data). Depending on the relative number of each, the sources will be placed on the left or the top of the dialogue, and the destinations on the right or the bottom. Thus, in general, signal flow is from top or left to right or bottom.

    Both sources and destinations are divided up into groups, with each group being given a tab:

    Hardware
    These are ports which are connected to a physical piece of hardware (a sound card or MIDI interface).
    Ardour Busses
    All ports belonging to busses.
    Ardour Tracks
    All ports belonging to tracks.
    Ardour Misc
    These are other ports that do not fit into the previous two categories; for example, the ports on which the metronome click is output, and MIDI ports for things like control surfaces and timecode.
    Other
    If you have other JACK clients running, their ports will be found here. If there are no such ports, the tab will not exist (on one or both axes of the grid).

    The main part of the patchbay is a matrix grid. Within this grid, green dots represent connections, and you can click in any of the squares to make or break connections. You can also click and drag to draw a line of connections, which is sometimes useful for making many connections at once.

    In the example patchbay shown above we can note various things. We are using the Ardour Tracks sources tab, so we see the output ports of the three tracks in our session: Fred, Jim and Foo. Our destinations are from the Ardour Busses tab, so we have the inputs of a session bus, Sheila, and the inputs of the master bus. Fred and Jim have stereo outputs, so have L and R connections. Foo is a MIDI track, so it only has one connection, and its squares in the grid are coloured light grey to indicate that no connection can be made between Foo (a MIDI output) and our busses (which are all audio-input).

    The green dots in the example show that both Foo and Bar are connected to the master bus, left to left and right to right.

    Variants on the Patchbay

    Slightly different versions of the patchbay are available from different places in Ardour. For a global view of all JACK audio connections, use Window > Audio Patchbay, or press P. A corresponding MIDI Connection Manager can be opened using P.

    There is also a patchbay available when connecting individual tracks; clicking on the input or output buttons of a mixer strip will open a connection manager which has the corresponding track input or output as the only destination or source, with all other ports available for connection to it.

    Other patchbay features

    Context-clicking on a port name in the connection manager opens a menu which provides a few handy options:

    Add audio port and Add MIDI port
    These options add audio or MIDI ports to the thing that you opened the menu over, if this is possible. In this way, for example, tracks and busses can be extended to have more inputs or outputs.
    Remove
    Removes the given port, if possible. Right-clicking a port will do the same.
    Disconnect all from…
    Disconnects everything from the given port.
    Rescan
    Ardour will try to keep abreast of any changes to the JACK ports on your system, and reflect them in any connection managers which are open. If for some reason this fails, use this to re-scan the list of ports and update the manager.
    Show individual ports
    If you have a session which has lots of multi-channel tracks or busses, it may be an unnecessary detail that you have to connect left to left and right to right every time you make a connection. This obviously gets worse with higher channel counts (such as for 5.1 or Ambisonics). To make life easier with such sessions, you can untick Show individual ports. After that, the channels of tracks and busses will be hidden, and any green dots you add in the connection manager will automatically connect each channel of the source to the corresponding channel of the destination (left to left, right to right and so on). In this mode, a half-circle in the connection grid indicates that some (but not all) of the source's ports are connected to the destination.
    Flip
    This will flip the visible ports on the vertical axis with those on the horizontal. If, for example, the top of the connection manager is showing Ardour Busses and the right is showing Hardware, flip will swap the view to the opposite. You can also flip by pressing f. Note that if there are no matching tabs on both axes, flipping will be impossible.
    --- title: Track/Bus Signal Flow part: subchapter ---

    Overview

    In each individual Track or Bus the signal flow is top to bottom. Consider the following diagram:

    track signal routing

    Trim, Fader and Panner are provided by Ardour. The Processor-Box can hold 3rd Party Plugins or host-provided redirects (insert, aux-send,..).

    Where is the processor box in that image?

    An important aspect is that the signal flow is multi-channel and not fixed throughout the track. For example, a Track can have a mono input, a mono to stereo plugin (e.g. reverb) flowing into a surround panner with 6 outputs. The design of Ardour is that width of the signal flow is defined by the passage through plugins in the processor box, followed by panning. The number of inputs to the panner is defined by the number outputs of the last plugin in the chain. The number of panner outputs is equal to the track's outputs ports, which can be added and remove dynamically. This schema called Flexible I/O. It's very powerful and a distinct feature of Ardour.

    The golden rule of processor signal flow:
    The number of outputs of one link of the process chain defines the number inputs of the next, until the panner.

    Due to this rule there is one very common case that is hard to achieve: Keep a mono track mono. With Flexible I/O, if a stereo plugin is added on a mono track, the signal flow after that plugin becomes stereo.

    Strict I/O

    Strict I/O enforces a simple rule: Plugins have the same number of inputs as they have outputs. By induction the track will have as many output-ports as there are input ports.

    1. Adding a Plugin will not modify the signal-flow. The number of plugin outputs is forced to the number of inputs present at the point of insertion. If a plugin-pin is missing, it is ignored. If Plugin-pin is unconnected, it is fed with silence. Unconnected plugin outputs are ignored).
    2. Strict I/O enforces the number of output ports. The number of inputs to the panner (outputs of last plugin) defines the number of track outputs (after panner). Required ports are automatically added, excess ports are removed. The user cannot manually add/remove output ports.

    Strict I/O is set when creating the track and can later be en/disabled dynamically in the context menu of every mixer strip.

    strict i/o routing

    There are two exceptions to the above rule 1.

    Customizing the Signal Flow

    The signal flow though the mixer can be customized at every processor node via "Pin Configuration" in the context menu of every processor. User customization override all automatic (flexible/strict I/O mode) inferred output port settings for the given processor. Non-customized plugins downstream will follow suit depending on the selected route mode, e.g. adding an additional output to a plugin on a track set to strict I/O will trickle down the process chain until the output and result in the addition of an output port. This is useful for example in case of a mono to stereo reverb.

    One can also bypass plugin instances with a 'thru' connection. This connection is latency compensated. One example is separate Left/Right channel Equalization using two mono plugins on a stereo track:

    separate left/right Eq

    --- title: Muting and Soloing part: subchapter ---

    Each track and bus has two buttons which have important implications for signal flow: mute and solo. The behaviour of these buttons is configurable in Ardour, to suit different studio set-ups.

    Without a monitor bus

    If you are using Ardour without a monitor bus, there is only one way in which mute and solo will work:

    With a monitor bus

    For setups with a monitor bus, you have more options, mostly governed by the setting of the Solo controls are Listen controls option in Edit > Preferences > Solo / mute.

    With Solo controls are Listen controls unticked, behaviour is almost exactly the same as the situation without a monitor bus. Mute and solo behave the same, and the monitor bus is fed from the master bus, so it sees the same thing.

    With Solo controls are Listen controls ticked, the master and monitor busses behave differently. In this mode, solo controls are more properly called listen controls, and Ardour's solo buttons will change their legend from S to either A or P to reflect this.

    Now, without any mute or listen, the monitor bus remains fed by the master bus. Also:

    When solo controls are listen controls, the listening point can be set to either After-Fade Listen (AFL) or Pre-Fade Listen (PFL). The precise point to get the signal from can further be configured using the PFL signals come from and AFL signals come from options.

    The solo-mute arrangement with a monitor bus is shown below:

    mute/solo signal flow

    Here we have a number of tracks or busses (in orange). Each one has an output which feeds the master bus. In addition, each has PFL and AFL outputs; we have a choice of which to use. PFL/AFL from each track or bus are mixed. Then, whenever anything is set to AFL/PFL, the monitor out becomes just those AFL/PFL feeds; the rest of the time, the monitor out is fed from the master bus.

    In this scheme Solo has no effect other than to mute other non-soloed tracks; with solo (rather then listen), the monitor out is fed from the master bus.

    Other solo options

    Edit > Preferences > Solo / Mute has some more solo options:

    Solo-in-place mute cut

    When using solo-in-place (SiP), in other words when soloed tracks are being listened to on the master bus, this fader specifies the gain that will be applied to other tracks in order to mute them. Setting this level to -∞&nbdp;dB will mean that other tracks will not be heard at all; setting to some higher value less than 0dB means that other non-soloed tracks will be h eard, just reduced in volume compared to the soloed tracks. Using a value larger than -∞dB is sometimes called "Solo-In-Front" by other DAWs, because the listener has the sense that soloed material is "in front" of other material. In Ardour, this is not a distinct mode, but instead the mute cut control offers any level of "in-front-ness" that you might want to use.

    Exclusive solo

    If this is enabled, only one track or bus will ever be soloed at once; soloing track B while track A is currently soloed will un-solo track A before soloing track B.

    Show solo muting

    If this is enabled, the mute button of tracks and busses will be drawn outlined to indicate that the track or bus is muted because something else is soloed. This is enabled by default, and we recommend that you leave it that way unless you are extremely comfortable with Ardour's mute/solo behaviour.

    Soloing overrides muting

    If this is enabled, a track or bus that is both soloed and muted will behave as if it is soloed.

    Mute affects…

    These options dictate whether muting the track will affect various routes out of the track; through the sends, through the control outputs (to the monitor bus) and to the main outputs.

    --- title: Panning part: subchapter ---

    Panning is the process of distributing one or more signals across a series of outputs so that the listener will have the experience of them coming from a particular point or area of the overall listening field.

    It is used to create a sense of space and/or a sense of motion in an audio mix. You can spread out different signals across the space, and make them move over time.

    Types of Panners

    The way a panner works depends a great deal on how many signals it is going to process and how many outputs it will send them to. The simplest case is distributing a single signal to 2 outputs, which is the common case when using a "mono" track and a stereo speaker setup.

    But panning in Ardour could theoretically involve distributing any number of signals to any number of ouputs. In reality, Ardour does not have specific panners for each different situation. Currently, it has dedicated panners for the following situations:

    Even for each of these cases, there are many different ways to implement panning. Ardour currently offers just one solution to each of these situations, but in the future will offer more.

    In addition to the panners, Ardour has a balance control for subtle corrections to existing stereo images.

    --- title: Mono Panner part: subchapter ---

    The default mono panner distributes 1 input to 2 outputs. Its behaviour is controlled by a single parameter, the position. By default, the panner is centered.

    Mono Panner User Interface

    image of the mono panner

    The mono panner looks a quite similar to the stereo panner interface. The difference is that the L/R labels in the lower half of the mono panner do not move because there is no "width" to control.

    Using the mouse

    To change the position smoothly, press the right button and drag anywhere within the panner. Note: you do not need to grab the position indicator in order to drag

    Reset to defaults
    Click right
    Change to a "hard left"
    Double click right in the left side of the panner
    Change to a "hard right"
    Double click right in the right side of the panner
    Set the position to center
    Double Click right in the middle of the panner

    Keyboard bindings

    When the pointer is within a mono panner user interface, the following keybindings are available to operate on that panner:

    /
    move position 1° / 5° to the left
    /
    move position 1° / 5° to the right
    0
    reset position to center

    Using the scroll wheel/touch scroll

    When the pointer is within a mono panner user interface, the scroll wheel may be used as follows:

    or
    move position to the left by 1°
    or
    move position to the left by 5°
    or
    move position to the right by 1°
    or
    move position to the right by 5°
    --- title: Balance Control part: subchapter ---

    For stereo tracks, you can now switch between the default stereo panner and a traditional balance control by right-clicking on the panner widget.

    Stereo Balance
control

    When the balance is centered, the incoming signals will be unaffected. Moving it to one side will linearly attenuate the signal of the opposite side.

    While the balance control is considerably less flexible than the stereo panner, it works with arbitrary content without danger of introducing comb filter artifacts.

    --- title: Stereo Panner part: subchapter ---

    The default stereo panner distributes two inputs to two outputs. Its behaviour is controlled by two parameters, width and position. By default, the panner is centered at full width.

    The stereo panner assumes that the signals you wish to distribute are either uncorrelated (i.e. totally independent), or that they contain a stereo image which is mono-compatible, such as a co-incident microphone recording, or a sound stage that has been created with pan pots.*

    With the default values it is not possible to alter the position, since the width is already spread entirely across both outputs. To alter the position, you must first reduce the width.

    Stereo Panner User Interface

    The panner user interface consists of three elements, divided between the top and bottom half. Click and/or drag in the top half to control position; click and/or drag in the bottom half to control width (see below for details).

    In the top half is the position indicator, which shows where the center of the stereo image is relative to the left and right edges. When this is the middle of the panner, the stereo image is centered between the left and right outputs. When it all the way to the left, the stereo image collapses to just the left speaker.

    In the bottom half are two signal indicators, one marked "L" and the other "R". The distance between these two shows the width of the stereo image. If the width is reduced to zero, there will only be a single signal indicator marked "M" (for mono), whose color will change to indicate the special state.

    It is possible to invert the outputs (see below) so that whatever would have gone to the right channel goes to the left and vice versa. When this happens, the entire movable part of the panner changes color to indicate clearly that this is the case.

    Position vs. L/R

    Although the implementation of the panner uses the "position" parameter, when the user interface displays it numerically, it shows a pair of numbers that will be familiar to most audio engineers.

    PositionL/REnglish
    0L=50% R=50%signal image is midway between left and right speakers
    -1L=100% R=0%signal image is entirely at the left speaker
    1L=0% R=100%signal image is entirely at the right speaker

    One way to remember this sort of convention is that the middle of the USA is not Kansas, but "Los Angeles: 50% New York: 50%".

    Examples In Use

    AppearanceSettings
    Width=100%, L=50 R=50
    Width=0%, L=50 R=50
    Width=-100%, Position = 0 (center)
    Width=36%, L=44 R=56
    Width=0%, L=0 R=100

    Using the mouse

    Mouse operations in the upper half of the panner adjust the position parameter, constrained by the current width setting.

    Mouse operations in the lower half of the panner adjust the width parameter, constrained by the current position setting.

    To change the position smoothly, press the right button and drag within the top half of the panner, then release. The position will be limited by the current width setting. Note: you do not need to grab the position indicator in order to drag.

    To change the width smoothly, press the right button and drag within the lower half of the panner, then release. The width will be limited by the current position setting. Note: you do not need to grab the L/R indicators in order to drag.

    Reset to defaults
    Click right
    Change to hard left
    Double click right in the upper left half of the panner
    Change to a hard right
    Double click right in the upper right half of the panner
    Move position as far left as possible, given width
    Double click right in the upper left half of the panner
    Move position as far right as possible, given width
    Double click right in the upper right half of the panner
    Set the position to center
    Click right in the upper middle of the panner
    Reset to maximum possible width
    Double click right on the lower left side
    Invert (flip channel assignments)
    Double click right on the lower right side
    Set width to 0°
    Double click right in the lower middle

    Keyboard bindings

    When the pointer is within a stereo panner user interface, the following keybindings are available to operate on that panner:

    /
    increase width by 1° / 5°
    /
    decrease width by 1° / 5°
    /
    move position 1° / 5° to the left
    /
    move position 1° / 5° to the right
    0
    reset position to center
    reset width to full (100%)

    Using the scroll wheel/touch scroll

    When the pointer is within a stereo panner user interface, the scroll wheel may be used as follows:

    /
    increase width by 1° / 5°
    /
    decrease width by 1° / 5°
    /
    move position 1° / 5° to the left
    /
    move position 1° / 5°to the right

    Stereo panning caveats

    The stereo panner will introduce unwanted side effects on material that includes a time difference between the channels, such as A/B, ORTF or NOS microphone recordings, or delay-panned mixes.
    When you reduce the width, you are effectively summing two highly correlated signals with a delay, which will cause comb filtering.

    Let's take a closer look at what happens when you record a source at 45° to the right side with an ORTF stereo microphone array and then manipulate the width.

    For testing, we apply a pink noise signal to both inputs of an Ardour stereo bus with the stereo panner, and feed the bus output to a two-channel analyser. Since pink noise contains equal energy per octave, the expected readout is a straight line, which would indicate that our signal chain does not color the sound:

    To simulate an ORTF, we use Robin Gareus' stereo balance control LV2 to set the level difference and time delay. Ignore the Trim/Gain—its purpose is just to align the test signal with the 0dB line of the analyser.

    Recall that an ORTF microphone pair consists of two cardioids spaced 17 cm apart, with an opening angle of 110°. For a far source at 45° to the right, the time difference between the capsules is 350 μs or approximately 15 samples at 44.1 kHz. The level difference due to the directivity of the microphones is about 7.5 dB (indicated by the distance between the blue and red lines in the analyser).

    Now for the interesting part: if we reduce the width of the signal to 50%, the time-delayed signals will be combined in the panner. Observe what happens to the frequency response of the left and right outputs:

    You may argue that all spaced microphone recordings will undergo comb filtering later, when the two channels recombine in the air between the speakers. Perceptually however, there is a huge of difference: our hearing system is very good at eliminating comb filters in the real world, where their component signals are spatially separated. But once you combine them inside your signal chain, this spatial separation is lost and the brain will no longer be able to sort out the timbral mess. As usual, you get to keep the pieces.

    Depending on your material and on how much you need to manipulate the width, some degree of comb filtering may be acceptable. Then again, it may not. Listen carefully for artefacts if you manipulate unknown stereo signals—many orchestra sample libraries for example do contain time-delay components.

    --- title: Plugin and Hardware Inserts part: chapter --- --- title: Working With Plugins part: subchapter ---

    Plugins are bits of software that get loaded by Ardour in order to create various audio or MIDI effects, or generate audio by functioning as "software instruments".

    Ardour supports a variety of different plugin standards:

    LADSPA
    An early, simple, lightweight plugin API, audio effects only, plugins have no editors/GUI of their own (Ardour provides one, however).
    LV2
    An extensible, full-featured plugin API, audio and MIDI, plugins can provide their own GUIs; the successor to LADSPA
    AU
    OS X only, full featured, audio and MIDI, plugins can provide their own GUI
    VST
    Plugins using Steinberg's VST plugin standard. Varies by platform:
    on Linux
    (native) Linux VST plugins fully supported (VST2.4)
    on Windows
    (native) Windows VST plugins fully supported (VST2.4)
    on OS X
    Not supported, unless you use a VST-to-AU bridge plugin. Similar to Apple's Logic DAW.
    Windows VST Plugins on Linux
    VST plugins for Windows, but being used on Linux. Normally not supported. See Windows VST Plugins on Linux for details.
    --- title: Processor Box part: subchapter ---

    the Processor Box

    In Ardour terminology, a processor is anything which treats the signal in some way and gets plugged into a mixer strip. Ardour provides several builtin processors such as the fader or panners. Processors can also be plugins used for effects or as instruments, as well as sends or inserts which affect signal routing.

    The arrangement of processors is arbitrary, and there is no limit to how many there can be. The Processor Box will automagically add a scrollbar to itself if there are more processors in it than can be shown in the given space.

    The main box in the top half of a mixer strip shows the processor box. Processors are shown as colored rectangles, with a small "LED" beside them that lights up when the processor is enabled. The color of the processor depends on its location in the sequence; processors that are pre-fader are colored in red, and post-fader processors are colored green (in the default theme).

    The processor box will always contain a blue Fader processor. This indicates where in the processor chain the main channel fader is located; this is the fader shown in the lower half of the strip. It can be enabled and disabled like any other processor.

    Adding Processors

    Processors can be added to the chain by Right-clicking in the processor list, This does three things:

    From the menu, new processors can be inserted.

    Processors can also be dragged and dropped from the Favorite Plugins window to an appropriate spot in the Processor Box.

    The Favorite Plugins window can be populated via the Plugin Manager, or by dragging and dropping an existing processor from the processor box to the Favorite Plugins window.

    To Reorder (Move) Processors

    Processors can be re-ordered using drag & drop. Dragging a processor allows it to be moved around within the chain, or copied to another processor list on another track or bus.

    To Enable/Disable a Processor

    a typical processor

    To the left of the name of each processor is a small LED symbol; if this is lit-up, the processor is active. Clicking on it will deactivate the processor and effectively bypass it.

    Some processors have their own bypass controls that are independent of the one that Ardour provides; this can make it appear that the plugin is non-responsive when its independent bypass control is active.

    Selecting Processors

    A processor in the processor box can be selected with a Left-click on it; it will be highlighed in red. Other processors can be selected at the same time by Left-clicking on them while holding down the key, and ranges can be selected by Left-clicking on them while holding down the Shift key

    Removing Processors

    Context-click on the processor to be removed, and select Delete; or Right-click on it; or Left-click on it and press the Delete key. If multiple processors are selected, they will all be deleted at the same time.

    --- title: Plugin Manager part: subchapter ---

    This needs updating; it was written for v3 or v4, and it's out of date

    The Plugin Manager serves two purposes. Primarily it is used to control the display status of plugins. It can also be used to find and insert plugins into the Processor Box. It is displayed either by a double-click in the Processor Box or by choosing New Plugin > Plugin Manager... from the Processor Box context menu.

    Plugin Manager window

    Displayed for each plugin is the status (normal, favorite, hidden), name, type, category, creator (author), and the number of audio and MIDI connections. The plugins can be sorted by clicking on a column header.

    Plugin Display Status

    Click on a Fav(orite) or Hide radio button to change a plugin's display status. Clicking on an already selected radio button will cancel it, returning the plugin to the normal display status. Plugins marked as a favorite show up in the Processor Box context menu under New Plugin > Favorites and in Favorite Plugins pane in the Mixer window. Setting the hide radio button on a plugin will keep the plugin from showing in the Processor Box context menus New Plugin > By Creator or New Plugin > By Category.

    Filtering Listed Plugins

    The middle of the Plugin Manager is used to filter the listed plugins. Typing into the text-box will filter the plugins based on the filter mode selected by drop-down box. Clicking Clear empties the text-box.

    Inserting Plugins in the Processor Box

    The bottom half of the plugin manager shows plugins that have been selected for insertion into the Processor Box. A plugin can be added by either double clicking the plugin entry in the top half, or, if already selected in top half, by clicking Add.

    Plugins can be removed from the bottom half with a double click, or, if already selected, by clicking Remove.

    --- title: Favorite Plugins Window part: subchapter ---

    Favorite Plugins window

    The Favorite Plugins window is on the top-left side of the Mixer Window. Like other elements in that window it has variable height and can be hidden by dragging it to zero-height. If it is not visible, the top-handle can be grabbed and dragged down to reveal it.

    Plugin names that have a right facing triangle next to them have presets associated with them; clicking on the triangle will cause all presets associated with the plugin to show in the list.

    Features

    The Favorite Plugins window provides easy access to frequently used plugins:

    When favorites are added with the Plugin Manager, they are appended to the bottom of the list.

    --- title: Managing Plugin Presets part: subchapter ---

    Add images

    All plugin control widgets, whether they are created by Ardour or by the plugin, have a common set of controls at the top of the window. These include 4 controls for managing plugin presets.

    What Is a Plugin Preset?

    A preset for a plugin is simply a saved set of values for all of a plugin's parameters. If you load a preset, you are restoring all the parameters of that plugin to the values stored in the preset. This is an easy, fast way to manage your preferred settings for particular plugins.

    The Preset Selector

    The preset selector is a regular selector that can be clicked to display a list of all known presets for this plugin. This will include presets that you have created yourself, and for some plugin formats, presets that come with the plugin itself.

    Load a New Preset

    Click on the preset selector to pop up a menu showing the names of all available presets. Click on the name of the preset you wish to load. The preset will be loaded—you may see various controls in the plugin editor change to reflect the new value of some or all parameters.

    Create a Preset

    To save the current plugin settings as a new preset, click on the Add button at the top of the window. A dialog will appear to ask for the name of the preset.

    Save a Preset

    If you wish to modify the settings in an existing preset, first use the preset selector to load the preset, then adjust the settings as you wish. When done, click the Save button and the new values will be stored, overwriting the previous version of this preset.

    Delete a preset

    To delete an existing preset, use the preset selector to load the preset. Click the Delete button, and the preset will be removed. The preset selector turn blank, showing that no preset is currently loaded (although the settings will stay as they were).

    --- title: Working with Ardour-built Plugin Editors part: subchapter ---

    This section needs expansion, and at least one image

    To view a plugin editor, double-click on the plugin within the processor box. A new window will appear showing the editor/GUI for the plugin.

    If a plugin does not have its own GUI, Ardour will construct a generic plugin editor from a small set of common control elements. Ardour will do this even for plugins that have their own, if Edit > Preferences > GUI > Use Plugins' own interface instead of Ardour's is disabled.

    The generic UI can be temporarily switched to by context-clicking on a processor and selecting Edit with generic controls. This will be necessary to access the plugin automation controls.

    In the generic UI, any controller can be reset to its default by Left-clicking on it.

    --- title: Plugins Bundled With Ardour part: subchapter ---

    Ardour now comes with the following plugins as part of a standard installation:

    a-Amplifier
    A versatile ±20dB multichannel amplifier
    a-Compressor
    A side-chain enabled compressor with the usual controls. Comes in stereo and mono versions
    a-Delay
    A basic single-tap delay line, with tempo sync
    a-EQ
    A nice sounding 4-band parametric EQ with shelves
    a-Fluid Synth
    Wraps the Fluidsynth SoundFont2 synthesis engine as a new sample player
    a-High/Low Pass Filter
    Independent high and low pass filters with steepness up to 48dB/octave
    a-Inline Scope
    A mixer strip inline waveform display
    a-Inline Spectrogram
    A mixer strip inline specturm display
    a-MIDI Monitor
    A mixer strip inline display to show recent MIDI events
    a-Reverb
    A reverb that finds a balance between sounding good, using a lot of CPU and having too many controls
    --- title: Getting More Plugins part: subchapter ---

    The following list shows plugin packages. In some cases, a package contains just one or two plugins; in other cases, dozens.

    Plugins by Standard

    LADSPA

    LV2

    Linux VST (LXVST)

    How do I install plugins?

    Linux

    Installation will vary a little depending on how you get plugins. If your repository has a particular plugin package, just install it using the normal software package management tool for your system. Most Linux distributions that are good for audio work will have most of the LADSPA and LV2 plugins mentioned above available in ready-to-use forms.

    Finding them will typically require searching your distribution's repository to find the name of the package. The tools for doing this vary from distribution to distribution. A good place to start searching is with the name of the package (e.g. "caps" or "calf"). There are no fixed rules about what different Linux distributions call their packages for a given set of plugins.

    If the package isn't available, then you can build the plugins from source (plugins are generally fairly easy to compile if you've ever done this sort of thing before).

    LADSPA plugins are shared library files. They need to be installed in either /usr/lib/ladspa, /usr/local/lib/ladspa or in a directory mentioned in your LADSPA_PATH environment variable.

    LV2 plugins are folders/directories. They need to installed in either /usr/lib/lv2, /usr/local/lib/lv2 or a directory mentioned in your LV2_PATH environment variable.

    Linux VST (LXVST) plugins are distributed as shared library files. They are typically installed in /usr/lib/lxvst, /usr/local/lib/lxvst or a directory mentioned in your LXVST_PATH environment variable.

    OS X

    Unless you're a particularly technical computer user, building and installing plugins in the LV2 (or LADSPA) format is probably not something worth planning on.

    Most of the plugins you are likely to use on OS X will be in Apple's AudioUnit format. These have their own installation process that tends to just work.

    --- title: Using Windows VST Plugins on Linux part: subchapter ---

    Thanks to the combined work of Torben Hohn, Kjetil Mattheusen, Paul Davis and a few other developers, it is possible to use Windows VST plugins (that is, plugins in VST format built and distributed for the Windows platforms) on Ardour running on Linux. (Note: there is no VST support of any kind on OS X).

    However, doing so has three substantial downsides:

    The dependence on Wine makes it almost impossible for the Ardour project to support this feature. Wine's functionality generally improves over time, but any given release of Wine may behave worse with some or all Windows VST plugins. It may even just crash Ardour completely.

    Step back and think about what "using Windows VSTs" really means: taking bits of software written with only one idea in mind—running on the Windows platform—and then trying to use them on an entirely different platform. It is a bit of a miracle (largely thanks to the incredible work done by the Wine project) that it works at all. But is this the basis of a stable, reliable DAW for a non-Windows platform? Getting Ardour on Linux to pretend that its really a Windows application running on Windows?

    We understand that there are many outstanding plugins available as Windows VSTs and that in many cases, no equivalent is available for Ardour's Linux-based users. If your workflow is so dependent on those plugins, then remain on Windows (or potentially consider using an actual Windows VST host running inside of Wine). If you can make the effort, you will get a better environment by using a normal build of Ardour and exploring the world of plugins built to run on Linux natively. This covers LADSPA, LV2 and Linux VST formats, and even some outstanding proprietary plugins such as those from Loomer.

    A Plea To Plugin Manufacturers

    Please consider porting your plugins so that users can enjoy them on Linux too. Several other commercial plugin developers have already done this. You can choose between using "Linux VST" (which is what Loomer and others have done)—you will find toolkits like JUCE that help to make this fairly easy—or using LV2 format which is ultimately more flexible but probably more work. We have users—thousands of users—on Linux who would like to use your plugins.

    --- title: Automation part: chapter --- --- title: Mixdown part: chapter --- --- title: Export Dialog part: subchapter ---

    When you have finished mixing your session, you probably want to export it to a sound file to burn to a CD, upload to the web, or whatever. Session > Export > Export to Audio file(s)... shows the Export Dialog to do this.

    You can also export the outputs of multiple tracks & busses all at once via Session > Export > Stem Export....

    File Format

    This tab contains controls for the format of the exported audio file. You can enable more than one format here, in which case each will be exported in turn. Ardour is supplied with a list of export formats, including:

    You can edit these formats, or create your own, with the "Edit Export Format Profile" dialog, which appears when you click the "Edit" or "New" button to the right of the drop-down list of formats.

    You can also create a 'Preset' consisting of one or more formats. Ardour provides some ready-made presets, too:

    Soundcloud upload

    When 'Upload to Soundcloud' is ticked on in any format's tab, a pane containing fields to enter in Soundcloud account details (email and password), and what should happen to the uploaded files will become visible.

    Make files public
    Choose whether to make uploaded files available to anyone via the Soundcloud web site.
    Open uploaded files in browser
    Open each file on soundcloud in your browser after upload. If you don't enable this, you can still see the URLs in the Log window.
    Make files downloadable
    Choose whether to allow downloading of files uploaded to Soundcloud.

    Time Span

    This tab allows you to select the range (or ranges) of the timeline to export. By default, "session" is enabled—this will export the whole session from the start marker to the end marker.

    Channels

    Here you can choose which outputs (tracks or busses) should be sent to the exported file.

    Stem Export

    If you chose 'Stem Export', the 'Channels' tab appears slightly differently: in this case each chosen channel (track or bus) is exported to its own file, instead of all channels being mixed together into a single file. You can choose to export either the region contents or the track output here in this case.

    --- title: Export Format Profiles part: subchapter ---

    Export Format Profiles

    An Export Format Profile specifies the file format in which Ardour will export audio files, and also other audio file export options.

    Export Format Profiles are edited via the 'Edit Export Format Profile' dialog.

    Normalize

    If enabled, peak levels of exported files will be normalized to the level chosen here.

    Trim/Add silence at start/end

    Compatibility/Quality/File format/Sample rate

    Compatibility

    Selecting an item in the 'Compatibility' column will display options in the other columns that are incompatible with that item in red.

    Quality

    The appropriate item in the 'Quality' column will be highlighted when you choose a file format. Clicking on items in the 'Quality' column currently doesn't seem to do anything useful.

    File format

    This column contains a list of Ardour's supported export file types. Click on the format you want to use.

    Sample rate

    You can explicitly choose the sample rate of your exported files here, or choose 'Session rate' to export in the current session's sample rate, without sample rate conversion.

    Sample rate conversion quality

    If your chosen sample rate does not match the current session's sample rate, choose the sample rate conversion quality here. Better quality options are slower.

    Options

    Options relevant to the chosen file format will appear here. Categories of audio file format are:

    Available options include a selection of the following:

    Sample Format

    Choose the bit depth of exported files.

    Dithering

    If the exported files bit depth is less than Ardour's native bit depth, choose the dithering algorithm to use.

    Create CUE file/Create TOC file

    As well as exporting an audio file, create a file (in CUE or TOC format respectively) containg CD track information, as defined in the Ranges & Marks List.

    Tag with session's metadata

    If the exported file format supports metadata, use data entered in the Session Metadata window to tag the exported files.

    Label

    The 'Label' field lets you choose the name which will be shown for this format in the drop-down list of export formats in the 'File Formats' tab of the Export dialog.

    Command to run post-export

    If this is not blank, it is considered as a command to be run after the export of each file. Either the command must exist in $PATH, or you can specify an absolute path to an executable file here.

    Certain sequences are allowed here to stand for the exported file name and the like. Currently these are:

    %f
    Full path & filename of the exported audio file
    %d
    Directory containing the exported audio file (including trailing directory separator)
    %b
    Basename of the exported audio file (without extension)
    %s
    Path to the current session file
    %n
    Name of the current session file
    %%
    A literal percent sign

    Any part of the command-line enclosed in double-quotes (") will be used as-is.

    --- title: Surround part: part --- --- title: Ardour Setup for Surround part: chapter --- --- title: Multichannel Tracks and Signal Routing part: chapter --- --- title: Surround Panning and Mixing part: chapter --- --- title: VBAP Panner part: subchapter ---

    Ardour's VBAP panner is currently in development, and its semantics may change in the near future, possibly affecting your mixes. Please do not rely on it for important production work while the dust settles.

    VBAP is a versatile and straightforward method to pan a source around over an arbitrary number of speakers on a horizontal polygon or a 3D surface, even if the speaker layout is highly irregular.

    Basic concepts

    VBAP was developed by Ville Pulkki at Aalto University, Helsinki, in 2001. It works by distributing the signal to the speakers nearest to the desired direction with appropriate weightings, aiming to create a maximally sharp phantom source by using as few speakers as possible:

    Thus, if you move the panner onto a speaker, you can be sure that only this speaker will get any signal. This is handy when you need precise 1:1 routing.

    The drawback of VBAP is that a moving source will constantly change its apparent sharpness, as it transitions between the three states mentioned above.

    A horizontal VBAP panner has one parameter, the azimuth angle. A full-sphere panner offers an additional elevation angle control.

    More elaborate implementations of VBAP also include a spread parameter, which will distribute the signal over a greater number of speakers in order to maintain constant (but no longer maximal) sharpness, regardless of position. Ardour's VBAP panner does not currently include this feature.

    Speaker layout

    Each VBAP panner is specific to its speaker layout—the panner has to "know" about the precise location of all the speakers. A complete VBAP implementation must therefore include the possibility to define this layout.

    The VBAP
panner with 5 outputs

    Ardour currently uses a simplified approach: if a track or bus has more than two output channels (which implies stereo), it assumes that you have N speakers distributed in a regular N-gon. That means that for irregular layouts such as 5.1 or 7.1, the direction you dial in will differ a bit from the actual auditory result, but you can still achieve any desired spatialisation.

    Experimental 3D VBAP

    The VBAP
panner with 10 outputs, in experimental 3D mode

    For tracks with 10 outputs, Ardour will currently assume a 3-dimensional speaker layout corresponding to Auro-3D 10.1, which is a horizontal 5.1 system, four elevated speakers above L, R, Ls, and Rs, and an additional "voice-of-god" speaker at the zenith.

    N:M panning

    The VBAP
panner in 4 in, 5 out mode

    For tracks and busses with more than one input, Ardour will (for now) assume that you wish to distribute the inputs symmetrically along the latitude around the panner direction. The width parameter controls the opening angle of the distribution sector.

    --- title: Sync & Video part: part --- --- title: Working with Synchronization part: chapter --- --- title: On Clock and Time part: subchapter ---

    Synchronization in multimedia involves two concepts which are often confused: clock (or speed) and time (location in time).

    A clock determines the speet at which one or more systems operate. In the audio world this is generally referred to as Word Clock. It does not carry any absolute reference to a point in time: A clock is used to keep a system's sample rate regular and accurate. Word clock is usually at the frequency of the sample rate—at 48 kHz, its period is about 20 μs. Word Clock is the most common sample rate based clock but other clocks do exist such as Black and Burst, Tri-Level and DARS. Sample rates can be derived from these clocks as well.

    Time or timecode specifies an absolute position on a timeline, such as 01:02:03:04 (expressed as Hours:Mins:Secs:Frames). It is actual data and not a clock signal per se. The granularity of timecode is Video Frames and is an order of magnitude lower than, say, Word Clock which is counted in samples. A typical frame rate is 25 fps with a period of 40 ms. In the case of 48 kHz and 25 fps, there are 1,920 audio samples per video frame.

    The concepts of clock and timecode are reflected in JACK and Ardour:

    JACK provides clock synchronization and is not concerned with time code (this is not entirely true, more on jack-transport later). On the software side, jackd provides sample-accurate synchronization between all JACK applications. On the hardware side, JACK uses the clock of the audio-interface. Synchronization of multiple interfaces requires hardware support to sync the clocks. If two interfaces run at different clocks the only way to align the signals is via re-sampling (SRC—Sample Rate Conversion), which is expensive in terms of CPU usage and may decreases fidelity if done incorrectly.

    Timecode is used to align systems already synchronized by a clock to a common point in time, this is application specific and various standards and methods exist to do this.

    To make things confusing, there are possibilities to synchronize clocks using timecode. e.g. using mechanism called jam-sync and a phase-locked loop.

    An interesting point to note is that LTC (Linear Time Code) is a Manchester encoded, frequency modulated signal that carries both clock and time. It is possible to extract absolute position data and speed from it.

    --- title: Latency and Latency-Compensation menu_title: Latency part: subchapter ---

    Latency is a system's reaction time to a given stimulus. There are many factors that contribute to the total latency of a system. In order to achieve exact time synchronization all sources of latency need to be taken into account and compensated for.

    Sources of Latency

    Sound propagation through the air

    Since sound is a mechanical perturbation in a fluid, it travels at comparatively slow speed of about 340 m/s. As a consequence, your acoustic guitar or piano has a latency of about 1–2 ms, due to the propagation time of the sound between your instrument and your ear.

    Digital-to-Analog and Analog-to-Digital conversion

    Electric signals travel quite fast (on the order of the speed of light), so their propagation time is negligible in this context. But the conversions between the analog and digital domain take a comparatively long time to perform, so their contribution to the total latency may be considerable on otherwise very low-latency systems. Conversion delay is usually below 1 ms.

    Digital Signal Processing

    Digital processors tend to process audio in chunks, and the size of that chunk depends on the needs of the algorithm and performance/cost considerations. This is usually the main cause of latency when you use a computer and one you can try to predict and optimize.

    Computer I/O Architecture

    A computer is a general purpose processor, not a digital audio processor. This means our audio data has to jump a lot of fences in its path from the outside to the CPU and back, contending in the process with some other parts of the system vying for the same resources (CPU time, bus bandwidth, etc.)

    The Latency chain

    Latency chain

    Figure: Latency chain. The numbers are an example for a typical PC. With professional gear and an optimized system the total roundtrip latency is usually lower. The important point is that latency is always additive and a sum of many independent factors.

    Processing latency is usually divided into capture latency (the time it takes for the digitized audio to be available for digital processing, usually one audio period), and playback latency (the time it takes for In practice, the combination of both matters. It is called roundtrip latency: the time necessary for a certain audio event to be captured, processed and played back.

    It is important to note that processing latency in a jackd is a matter of choice. It can be lowered within the limits imposed by the hardware (audio device, CPU and bus speed) and audio driver. Lower latencies increase the load on the system because it needs to process the audio in smaller chunks which arrive much more frequently. The lower the latency, the more likely the system will fail to meet its processing deadline and the dreaded xrun (short for buffer over- or under-run) will make its appearance more often, leaving its merry trail of clicks, pops and crackles.

    The digital I/O latency is usually negligible for integrated or PCI audio devices, but for USB or FireWire interfaces the bus clocking and buffering can add some milliseconds.

    Low Latency usecases

    Low latency is not always a feature you want to have. It comes with a couple of drawbacks: the most prominent is increased power consumption because the CPU needs to process many small chunks of audio data, it is constantly active and can not enter power-saving mode (think fan-noise). Since each application that is part of the signal chain must run in every audio cycle, low-latency systems will undergocontext switches between applications more often, which incur a significant overhead. This results in a much higher system load and an increased chance of xruns.

    For a few applications, low latency is critical:

    Playing virtual instruments

    A large delay between the pressing of the keys and the sound the instrument produces will throw-off the timing of most instrumentalists (save church organists, whom we believe to be awesome latency-compensation organic systems.)

    Software audio monitoring

    If a singer is hearing her own voice through two different paths, her head bones and headphones, even small latencies can be very disturbing and manifest as a tinny, irritating sound.

    Live effects

    Low latency is important when using the computer as an effect rack for inline effects such as compression or EQ. For reverbs, slightly higher latency might be tolerable, if the direct sound is not routed through the computer.

    Live mixing

    Some sound engineers use a computer for mixing live performances. Basically that is a combination of the above: monitoring on stage, effects processing and EQ.

    In many other cases, such as playback, recording, overdubbing, mixing, mastering, etc. latency is not important, since it can easily be compensated for.
    To explain that statement: During mixing or mastering you don't care if it takes 10ms or 100ms between the instant you press the play button and sound coming from the speaker. The same is true when recording with a count in.

    Latency compensation

    During tracking it is important that the sound that is currently being played back is internally aligned with the sound that is being recorded.

    This is where latency-compensation comes into play. There are two ways to compensate for latency in a DAW, read-ahead and write-behind. The DAW starts playing a bit early (relative to the playhead), so that when the sound arrives at the speakers a short time later, it is exactly aligned with the material that is being recorded. Since we know that play-back has latency, the incoming audio can be delayed by the same amount to line things up again.

    As you may see, the second approach is prone to various implementation issues regarding timecode and transport synchronization. Ardour uses read-ahead to compensate for latency. The time displayed in the Ardour clock corresponds to the audio-signal that you hear on the speakers (and is not where Ardour reads files from disk).

    As a side note, this is also one of the reasons why many projects start at timecode 01:00:00:00. When compensating for output latency the DAW will need to read data from before the start of the session, so that the audio arrives in time at the output when the timecode hits 01:00:00:00. Ardour3 does handle the case of 00:00:00:00 properly but not all systems/software/hardware that you may inter-operate with may behave the same.

    Latency Compensation And Clock Sync

    To achieve sample accurate timecode synchronization, the latency introduced by the audio setup needs to be known and compensated for.

    In order to compensate for latency, JACK or JACK applications need to know exactly how long a certain signal needs to be read-ahead or delayed:

    Jack Latency Compensation

    Figure: Jack Latency Compensation.

    In the figure above, clients A and B need to be able to answer the following two questions:

    JACK features an API that allows applications to determine the answers to above questions. However JACK can not know about the additional latency that is introduced by the computer architecture, operating system and soundcard. These values can be specified by the JACK command line parameters -I and -O and vary from system to system but are constant on each. On a general purpose computer system the only way to accurately learn about the total (additional) latency is to measure it.

    Calibrating JACK Latency

    Linux DSP guru Fons Adriaensen wrote a tool called jack_delay to accurately measure the roundtrip latency of a closed loop audio chain, with sub-sample accuracy. JACK itself includes a variant of this tool called jack_iodelay.

    Jack_iodelay allows you to measure the total latency of the system, subtracts the known latency of JACK itself and suggests values for jackd's audio-backend parameters.

    jack_[io]delay works by emitting some rather annoying tones, capturing them again after a round trip through the whole chain, and measuring the difference in phase so it can estimate with great accuracy the time taken.

    You can close the loop in a number of ways:

    Once you have closed the loop you have to:

    1. Launch jackd with the configuration you want to test.
    2. Launch jack_delay on the commandline.
    3. Make the appropriate connections between your jack ports so the loop is closed.
    4. Adjust the playback and capture levels in your mixer.
    --- title: Timecode Generators and Slaves part: subchapter ---

    Ardour supports three common timecode formats: LTC, MTC, and MIDI Clock, as well as JACK-transport, a JACK-specific timecode implementation.

    Ardour can generate timecode and thus act as timecode master, providing timecode information to other applications. Ardour can also be slaved to some external source in which case the playhead follows the incoming timecode.

    Combining the timecode slave and generator modes, Ardour can also translate timecode. e.g create LTC timecode from incoming MTC.

    Ardour Timecode Configuration

    Each Ardour session has a specific timecode frames-per-second setting which is configured in session > properties > timecode. The selected timecode affects the timecoderuler in the main window as well as the clock itself.

    Note that some timecode formats do not support all of Ardour's available fps settings. MTC is limited to 24, 25, 29.97 and 30 fps.

    The video pull-up modes change the effective samplerate of Ardour to allow for changing a film soundtrack from one frame rate to another. The concept is beyond the scope of this manual, but Wikipedia's entry on Telecine may get you started.

    Ardour Timecode Generator Configuration

    This is pretty straightforward: simply turn it on. The MTC and MIDI-Clock generator do not have any options. The LTC generator has a configurable output level. JACK-transport cannot be generated. Jack itself is always synced to its own cycle and cannot do varispeed—it will always be synced to a hardware clock or another JACK master.

    The relevant settings for timecode generator can be found in Edit > Preferences > MIDI Preferences (for MTC, MC) and Edit > Preferences > Transport Preferences (for LTC).

    The timecode is sent to jack-ports ardour:MTC out, ardour:MIDI clock out and ardour:LTC-out. Multiple generators can be active simultaneously.

    Note that, as of Jan 2014, only the LTC generator supports latency compensation. This is due to the fact the Ardour MIDI ports are not yet latency compensated.

    In Session > Properties, it is possible to define an offset between Ardour's internal time and the timecode sent. Currently only the LTC generator honors this offset.

    Both LTC and MTC are limited to 30 fps. Using frame rates larger than that will disable the generator. In both cases also only 24, 25, 29.97df (drop-frame) and 30 fps are well defined by specifications (such as SMPTE-12M, EU and the MIDI standard).

    MTC Generator

    The MTC generator has no options. Ardour sends full MTC frames whenever the transport is relocated or changes state (start/stop). MTC quarter frames are sent when the transport is rolling and the transport speed is within 93% and 107%.

    LTC Generator

    The level of the LTC generator output signal can be configured in in the Preferences > Transport dialog. By default it is set to -18 dBFS, which corresponds to 0dBu in an EBU calibrated system.

    The LTC generator has an additional option to keep sending timecode even when the transport is stopped. This mode is intended to drive analog tape machines which unspool the tape if no LTC timecode is received.

    LTC is send regardless of Ardour's transport speed. It is accurately generated even for very slow speeds (<5%) and only limited by the soundcard's sampling-rate and filter (see Gibbs phenomenon) for high speeds.

    Ardour Slave Configuration

    The timecode source can be switched with the button just right of Ardour's main clock. By default it is set to Internal in which case Ardour will ignore any external timecode. The button allows to toggle between Internal and the configured timecode source which is chosen in Edit > Preferences > Transport.

    When Ardour is chasing (synchronizing to) an external timecode source, the following cases need to be distinguished:

    1. the timecode source shares the clock
    2. the timecode source is independent (no wordclock sync)

    and

    1. the timecode source uses the same FPS setting as Ardour
    2. the timecode source runs at different frames-per-second

    In both cases the first option is preferred: clock sync + same FPS setting.

    Frames-per-second

    If the frames-per-second do not match, Ardour can either re-calculate and map the frames, or the configured FPS (Session > Properties) can be changed automatically while the slave is active. The behavior is configured with the checkbox Edit > Preferences > Transport > Match session video frame rate to external timecode.

    When enabled, the session video frame rate will be changed to match that of the selected external timecode source. When disabled, the session video frame rate will not be changed to match that of the selected external timecode source. Instead the frame rate indication in the main clock will flash red, and Ardour will convert between the external timecode standard and the session standard.

    29.97 drop-frame timecode is another corner case. While the SMPTE 12M-1999 specifies 29.97df as 30000/1001 frames per second, not all hardware devices follow that standard. The checkbox Lock to 29.9700 fps instead of 30000/1001 allows to use a compatibility mode for those devices.

    When enabled, the external timecode source is assumed to use 29.970000 fps instead of 30000/1001. SMPTE 12M-1999 specifies 29.97df as 30000/1001. The spec further mentions that drop-frame timecode has an accumulated error of -86 ms over a 24-hour period. Drop-frame timecode would compensate exactly for a NTSC color frame rate of 30 * 0.9990 (ie 29.970000). That is not the actual rate. However, some vendors use that rate—despite it being against the specs—because the variant of using exactly 29.97 fps yields zero timecode drift.

    Clock Sync Lock

    As described in the On Clock and Time chapter, timecode and clock are independent. If the external timecode source is not in sample-sync with the audio hardware (and JACK), Ardour needs to run at varispeed to adjust for the discrepancy.

    The checkbox External timecode is sync locked allows to select the behavior according to your setup. When enabled, it indicates that the selected external timecode source shares sync (Black & Burst, Wordclock, etc) with the audio interface.

    In other words: if enabled, Ardour will only perform initial synchronization and keep playing at speed 1.0 instead of vari-speed adjusting to compensate for drift.

    Note that vari-speed is unavailable when recording in Ardour, and all tracking happens at speed 1.0. So if you want to record in sync with external timecode it must be sample-locked or it will drift over time.

    MIDI Clock

    MIDI Clock is not a timecode format but tempo-based time. The absolute reference point is expressed as beats-per-minute and Bar, Beat and Tick. There is no concept of sample-locking for MIDI clock signals. Ardour will vari-speed if necessary to chase the incoming signal.

    Note that the MIDI Clock source must be connected to the ardour:MIDI clock in port.

    LTC—Linear Timecode

    The LTC slave decodes an incoming LTC signal on a JACK audio port. It will auto-detect the frame rate and start locking to the signal once two consecutive LTC frames have been received.

    The incoming timecode signal needs to arrive at the ardour:LTC-in port. Port-connections are restored for each session and the preference dialog offers an option to select it for all sessions.

    Ardour's transport is aligned to LTC-frame start/end positions according to the SMPTE 12M-1999 specification, which means that the first bit of an LTC-Frame is aligned to different Lines of a Video-Frame, depending on the TV standard used. Only for Film (24fps) does the LTC-Frame directly match the video Frame boundaries.

    LTC frame alignment

    Figure: LTC frame alignment for the 525/60 TV standard

    Ardour supports vari-speed and backwards playback but will only follow speed changes if the sync locked option is disabled.

    While Ardour is chasing LTC, the main transport clock will display the received Timecode as well as the delta between the incoming signal and Ardour's transport position.

    A global offset between incoming timecode and Ardour's transport can be configured in Session > Properties.

    The user-bits in the received LTC frame are ignored.

    MTC—MIDI Timecode

    Ardour's MTC slave parses full timecode messages as well as MTC quarter-frame messages arriving on the ardour:MTC in port. The transport will only start rolling once a complete sequence of 8 quarter frames has been received.

    Ardour supports vari-speed and backwards playback but will only follow MTC speed changes if the sync locked option is disabled.

    When Ardour is chasing MTC, the main transport clock will display the received Timecode as well as the delta between the incoming signal and Ardour's transport position.

    JACK Transport

    When slaved to jack, Ardour's transport will be identical to JACK-transport. As opposed to other slaves, Ardour can be used to control the JACK transport states (stopped/rolling). No port connections need to be made for jack-transport to work.

    JACK-transport does not support vari-speed, nor offsets. Ardour does not chase the timecode but is always in perfect sample-sync with it.

    JACK-transport also includes temp-based-time information in Bar:Beats:Ticks and beats-per-minute. However, only one JACK application can provide this information at a given time. The checkbox Session > Properties > JACK Time Master configures Ardour to act as translator from timecode to BBT information.

    --- title: Overview of all Timecode related settings menu_title: Overview of Timecode settings part: subchapter ---

    Timecode settings are accessed from the menu in three places:

    Timecode Settings

    Timecode frames-per-second
    Configure timecode frames-per-second (23.976, 24, 24.975, 25, 29.97, 29.97 drop, 30, 30 drop, 59.94, 60). Note that all fractional framerates are actually fps*(1000.0/1001.0).
    Pull up/down
    Video pull-up modes change the effective samplerate of Ardour to allow for changing a film soundtrack from one frame rate to another. See Telecine
    Slave Timecode offset
    The specified offset is added to the received timecode (MTC or LTC).
    Timecode Generator offset
    Specify an offset which is added to the generated timecode (so far only LTC).
    JACK Time Master
    Provide Bar|Beat|Tick and other information to JACK.

    These settings are session specific.

    Transport Preferences

    External timecode source
    Select timecode source: JACK, LTC, MTC, MIDI Clock
    Match session video frame rate to external timecode
    This option controls the value of the video frame rate while chasing an external timecode source. When enabled, the session video frame rate will be changed to match that of the selected external timecode source. When disabled, the session video frame rate will not be changed to match that of the selected external timecode source. Instead the frame rate indication in the main clock will flash red and Ardour will convert between the external timecode standard and the session standard.
    External timecode is sync locked
    Indicates that the selected external timecode source shares sync (Black & Burst, Wordclock, etc) with the audio interface.
    Lock to 29.9700 fps instead of 30000/1001
    The external timecode source is assumed to use 29.97 fps instead of 30000/1001. SMPTE 12M-1999 specifies 29.97df as 30000/1001. The spec further mentions that drop-frame timecode has an accumulated error of -86ms over a 24-hour period. Drop-frame timecode would compensate exactly for a NTSC color frame rate of 30 * 0.9990 (ie 29.970000). That is not the actual rate. However, some vendors use that rate—despite it being against the specs—because the variant of using exactly 29.97 fps has zero timecode drift.
    LTC incoming port
    Offers a session agnostic way to retain the LTC port connection.
    Enable LTC generator
    Does just what it says.
    Send LTC while stopped
    Enable to continue to send LTC information even when the transport (playhead) is not moving. This mode is intended to drive analog tape machines which unspool the tape if no LTC timecode is received.
    LTC generator level
    Specify the Peak Volume of the generated LTC signal in dbFS. A good value is 0 dBu (which is -18 dbFS in an EBU calibrated system).

    These settings are common to all sessions.

    MIDI Preferences

    Send MIDI Timecode
    Enable MTC generator
    Send MIDI Clock
    Enable MIDI Clock generator

    These settings are also common to all sessions.

    --- title: Working with Field Recorders in Ardour part: chapter --- --- title: Working with Video in Ardour part: chapter --- --- title: Video Timeline and Monitoring part: subchapter ---

    Ardour offers a video timeline and video monitoring for convenient audio mixing and editing to video, in order to produce film soundtracks and music videos, or perform TV postproduction tasks.

    The video capabilities are:

    The setup of the video subsystem is modular and can be configured in different ways, including:

    Ardour does not:

    --- title: Video Timeline Setup part: subchapter ---

    No configuration is required if you intend to run everything on a single machine, and if you acquired Ardour from http://www.ardour.org. Everything is pre-configured and included with the download/install.

    Single Machine

    If you compile Ardour from source, or have installed it from a 3rd party repository, three additional tools will need to be installed manually, which are used by Ardour to provide video features:

    Ardour requires xjadeo ≥ version 0.6.4, harvid ≥ version 0.7.0 and ffmpeg (known to work versions: 1.2, 2.8.2)

    The Ardour development team is in control of the first two applications. ffmpeg however can be a bit of a problem. To avoid conflicts with distribution packages, Ardour looks for ffmpeg_harvid and ffprobe_harvid.

    All four applications need to be found in $PATH (e.g. $HOME/bin or /usr/local/bin). For convenience the binary releases of harvid include ffmpeg_harvid and ffprobe_harvid, but if your distribution provides suitable ffmpeg commands you can also just create symbolic links:

    sudo ln -s /usr/bin/ffmpeg /usr/bin/ffmpeg_harvid sudo ln -s /usr/bin/ffprobe /usr/bin/ffprobe_harvid

    Binary releases are available from ardour.org as well as an installer script: install_video_tools.sh.

    The easiest way to install the video-utilities is by running the following line in a terminal:

    sh -c "$(curl -s -L http://git.io/tVUCkw)"

    Studio Setup

    Please read the info in the previous section to familiarize yourself with the tools involved first. Setting up a proper A/V post-production studio can be a complicated task. As much as we streamline and simplify the single machine setup, the studio setup is focused on modularity.

    --- title: Transcoding, Formats & Codecs part: subchapter ---

    This chapter provides a short primer on video files, formats and codecs – because it is often cause for confusion:

    A video file is a container. It usually contains one video track and one or more audio tracks. How these tracks are stored in the file is defined by the file format. Common formats are avi, mov, ogg, mkv, mpeg, mpeg-ts, mp4, flv, or vob.

    Each of the tracks by itself is encoded using a Codec. Common video codecs are h264, mpeg2, mpeg4, theora, mjpeg, wmv3. Common audio codecs are mp2, mp3, dts, aac, wav/pcm.

    Not all codecs can be packed into a given format. For example the mpeg format is limited to mpeg2, mpeg4 and mp3 codecs (not entirely true). DVDs do have stringent limitations as well. The opposite would be .avi; pretty much every audio/video codec combination can be contained in an avi file-format.

    To make things worse, naming conventions for video codecs and formats are often identical (especially MPEG ones) which leads to confusion. All in all it is a very wide and deep field. Suffice there are different uses for different codecs and formats.

    Ardour specific issues

    Ardour supports a wide variety of video file formats codecs. More specifically, Ardour itself actually does not support any video at all but delegates handling of video files to ffmpeg, which supports over 350 different video codecs and more than 250 file formats.

    When importing a video into Ardour, it will be transcoded (changed from one format and codec to another) to avi/mjpeg for internal use (this allows reliable seeking to frames at low CPU cost—the file size will increase, but hard disks are large and fast).

    The export dialog includes presets for common format and codec combinations (such as DVD, web-video,..). If in doubt use one of the presets.

    As last note: every time a video is transcoded, the quality can only get worse. Hence for the final mastering/muxing process, one should always to back and use the original source of the video.

    --- title: Workflow & Operations part: subchapter ---

    Overview of Operations

    Session > Open Video
    Add/replace a video to/on the timeline
    Window > View Monitor
    Open/close external video monitor window
    View > Video Monitor > …
    Various settings of the video monitor
    Session > Export > Video
    Export session and multiplex with video-file
    Left-drag the video in the timeline
    Re-align video and move 'locked' audio-regions along
    Context-menu on the video-timeline: 'lock'
    Prevent accidental drags
    Audio region context menu: Position > Lock to video
    Mark audio region(s) to be moved along with the video.

    Adding Video

    Adding video is a two-step process: select a video file, and choose import mode and optionally select an audio track to extract.

    The first step is rather straight-forward. The panel on the right side allows to seek through the video and displays basic file information. It is also useful to check if the video format/codec is supported:

    video-open-dialog

    The second step analyzes the video file in more detail and offers import options:

    Import/Transcode to Session
    This is the default. The video will be imported in a suitable video format/codec for the timeline and video monitor and saved inside the session folder. A location other than the session folder can also be chosen (external disk, or network storage of the video server on a different machine).
    Reference from Current Location
    Only useful for opening files that were previously encoded (are already in a good format/codec). Use with care.
    Do not Import Video
    Useful for extracting audio only.
    Video Import Dialog

    By default the video is imported using the original width/height. If it is a large video (e.g. full-HD) it makes sense to scale it down to decrease the CPU load and disk I/O required to decode and play the file.
    A small, low-quality representation of the image is usually sufficient for editing soundtracks. The default bitrate in kbit/sec is set to use 0.7 bits per pixel. (Compare: the average DVD medium uses 5000 kbit/s; at PAL resolution this is about 0.5 bits per pixel. But the DVD is using the mpeg2—a denser compression algorithm than the mjpeg codec used by Ardour.)

    Working with A/V

    Well now...

    Video Timeline

    Exporting Video

    The video export will take audio from the current Ardour session and multiplex it with a video file. The soundtrack of the video is taken from an audio export of Ardour's master bus.

    An arbitrary video file can be chosen. For high quality exports, the original file (before it was imported into the timeline) should be used. This is the default behaviour if that file can be found. If not, Ardour will fall back to the imported proxy-video which is currently in use on the timeline. Any existing audio tracks on this video file are stripped.

    The range selection allows to cut or extend the video. If the session is longer than the video duration, black frames are prefixed or appended to the video. (Note: this process may fail with non-standard pixel aspect ratios). If Ardour's session range is shorter, the video will be cut accordingly.

    Audio samplerate and normalization are options for Ardour's audio exporter. The remaining settings are options that are directly passed on to ffmpeg.

    The file format is determined by the extension that you choose for it (.avi, .mov, .flv, .ogv, .webm,...) Note: not all combinations of format, codec, and settings produce files which are according to specifications. For example, flv files require sample rates of 22.1 kHz or 44.1 kHz, mpeg containers can not be used with ac3 audio-codec, etc. If in doubt, use one of the built-in presets.

    Video Export Dialog

    Ardour video export is not recommended for mastering! While ffmpeg (which is used by Ardour) can produce high-quality files, this export lacks the possibility to tweak many settings. We recommend to use winff, devede or dvdauthor to mux & master. Nevertheless this video-export comes in handy to do quick snapshots, intermediates, dailies or online videos.

    --- title: Scripting part: part --- --- title: Lua Scripting in Ardour part: chapter --- --- title: Lua Scripting part: subchapter ---

    Starting with version 4.7.213, Ardour supports Lua scripts.

    Lua Integration is Work in Progress and far from complete.

    --- title: Scripting Documentation part: subchapter ---

    This Documentation is Work in Progress and far from complete. Also the documented API may be subject to change.

    Preface

    There are cases that a Ardour cannot reasonably cater for with core functionality by itself, either because they're session specific or user specific edge cases.

    Examples for these include voice-activate (record-arm specific tracks and roll transport depending on signal levels), rename all regions after a specific timecode, launch an external application when a certain track is soloed, generate automation curves or simply provide a quick shortcut for a custom batch operation.

    Cases like this call for means to extend the DAW without actually changing the DAW itself. This is where scripting comes in.

    "Scripting" refers to tasks that could alternatively be executed step-by-step by a human operator.

    Lua is a tiny and simple language which is easy to learn, yet allows for comprehensive solutions. Lua is also a glue language it allows to tie existing component in Ardour together in unprecedented ways, and most importantly Lua is one of the few scripting-languages which can be safely used in a real-time environment.

    A good introduction to Lua is the book Programming in Lua. The first edition is available online, but if you have the means buy a copy of the book, it not only helps to support the Lua project, but provides for a much nicer reading and learning experience.

    Overview

    The core of ardour is a real-time audio engine that runs and processes audio. One interfaces with than engine by sending it commands. Scripting can be used to interact with or modify active Ardour session. Just like a user uses the Editor/Mixer GUI to modify the state or parameters of the session.

    Doing this programmatically requires some knowledge about the objects used internally. Most Ardour C++ objects and their methods are directly exposed to Lua and one can call functions or modify variables:

    C++
    session->set_transport_speed (1.0);
    Lua
    Session:set_transport_speed (1.0)

    You may notice that there is only a small syntactic difference, in this case. While C++ requires recompiling the application for every change, Lua script can be loaded, written or modified while the application is running. Lua also abstracts away many of the C++ complexities such as object lifetime, type conversion and null-pointer checks.

    Close ties with the underlying C++ components is where the power of scripting comes from. A script can orchestrate interaction of lower-level components which take the bulk of the CPU time of the final program.

    At the time of writing Ardour integrates Lua 5.3.2: Lua 5.3 reference manual.

    Integration

    Like Control surfaces and the GUI, Lua Scripts are confined to certain aspects of the program. Ardour provides the framework and runs Lua (not the other way around).

    In Ardour's case Lua is available:

    Editor Action Scripts
    User initiated actions (menu, shortcuts) for batch processing
    Editor Hooks/Callbacks
    Event triggered actions for the Editor/Mixer GUI
    Session Scripts
    Scripts called at the start of every audio cycle (session, real-time)
    DSP Scripts
    Audio/Midi processor—plugins with access to the Ardour session (per track/bus, real-time)
    Script Console
    Action Script commandline

    There are is also a special mode:

    Commandline Tool
    Replaces the complete Editor GUI, direct access to libardour (no GUI) from the commandline.
    Be aware that the vast majority of complex functionality is provided by the Editor UI.

    Managing Scripts

    Ardour searches for Lua scripts in the scripts folder in $ARDOUR_DATA_PATH, Apart from scripts included directly with Ardour, this includes

    GNU/Linux$HOME/.config/ardour5/scripts
    Mac OS X$HOME/Library/Preferences/Ardour5/scripts
    Windows%localappdata%\ardour5\scripts

    Files must end with .lua file extension.

    Scripts are managed via the GUI

    Editor Action Scripts
    Menu → Edit → Scripted Actions → Manage
    Editor Hooks/Callbacks
    Menu → Edit → Scripted Actions → Manage
    Session Scripts
    Menu → Session → Scripting → Add/Remove Script
    DSP Scripts
    Mixer-strip → context menu (right click) → New Lua Proc
    Script Console
    Menu → Window → Scripting

    Script Layout

    A minimal example script looks like:

    
    	ardour {
    	  ["type"]    = "EditorAction",
    	  name        = "Rewind",
    	}
    
    	function factory (unused_params)
    	  return function ()
    	   Session:goto_start()  -- rewind the transport
    	  end
    	end
    

    The common part for all scripts is the "Descriptor". It's a Lua function which returns a table (key/values) with the following keys (the keys are case-sensitive):

    type [required]
    one of "DSP", "Session", "EditorHook", "EditorAction" (the type is not case-sensitive)
    name [required]
    Name/Title of the script
    author
    Your Name
    license
    The license of the script (e.g. "GPL" or "MIT")
    description
    A longer text explaining to the user what the script does

    Scripts that come with Ardour (currently mostly examples) can be found in the Source Tree.

    Action Scripts

    Action scripts are the simplest form. An anonymous Lua function is called whenever the action is triggered. A simple action script is shown above.

    There are 10 action script slots available, each of which is a standard GUI action available from the menu and hence can be bound to a keyboard shortcut.

    Session Scripts

    Session scripts similar to Actions Scripts, except the anonymous function is called periodically every process cycle. The function receives a single parameter—the number of audio samples which are processed in the given cycle

    
    ardour {
      ["type"]    = "session",
      name        = "Example Session Script",
      description = [[
      An Example Ardour Session Script.
      This example stops the transport after rolling for a specific time.]]
    }
    
    -- instantiation options, these are passed to the "factory" method below
    function sess_params ()
      return
      {
        ["print"]  = { title = "Debug Print (yes/no)", default = "no", optional = true },
        ["time"] = { title = "Timeout (sec)", default = "90", optional = false },
      }
    end
    
    function factory (params)
      return function (n_samples)
        local p = params["print"] or "no"
        local timeout = params["time"] or 90
        a = a or 0
        if p ~= "no" then print (a, n_samples, Session:frame_rate (), Session:transport_rolling ()) end -- debug output (not rt safe)
        if (not Session:transport_rolling()) then
          a = 0
          return
        end
        a = a + n_samples
        if (a > timeout * Session:frame_rate()) then
          Session:request_transport_speed(0.0, true)
        end
      end
    end
    

    Action Hooks

    Action hook scripts must define an additional function which returns a Set of Signal that which trigger the callback (documenting available slots and their parameters remains to be done).

    
    ardour {
      ["type"]    = "EditorHook",
      name        = "Hook Example",
      description = "Rewind On Solo Change, Write a file when regions are moved.",
    }
    
    function signals ()
      s = LuaSignal.Set()
      s:add (
        {
          [LuaSignal.SoloActive] = true,
          [LuaSignal.RegionPropertyChanged] = true
        }
      )
      return s
    end
    
    function factory (params)
      return function (signal, ref, ...)
        -- print (signal, ref, ...)
    
        if (signal == LuaSignal.SoloActive) then
          Session:goto_start()
        end
    
        if (signal == LuaSignal.RegionPropertyChanged) then
          obj,pch = ...
          file = io.open ("/tmp/test" ,"a")
          io.output (file
          io.write (string.format ("Region: '%s' pos-changed: %s, length-changed: %s\n",
            obj:name (),
            tostring (pch:containsFramePos (ARDOUR.Properties.Start)),
            tostring (pch:containsFramePos (ARDOUR.Properties.Length))
            ))
          io.close (file)
        end
      end
    end
    

    DSP Scripts

    See the scripts folder for examples for now.

    Some notes for further doc:

    Accessing Ardour Objects

    The top most object in Ardour is the ARDOUR::Session. Fundamentally, a Session is just a collection of other things: Routes (tracks, busses), Sources (Audio/Midi), Regions, Playlists, Locations, Tempo map, Undo/Redo history, Ports, Transport state & controls, etc.

    Every Lua interpreter can access it via the global variable Session.

    GUI context interpreters also have an additional object in the global environment: The Ardour Editor. The Editor provides access to high level functionality which is otherwise triggered via GUI interaction such as undo/redo, open/close windows, select objects, drag/move regions. It also holds the current UI state: snap-mode, zoom-range, etc. The Editor also provides complex operations such as "import audio" which under the hood, creates a new Track, adds a new Source Objects (for every channel) with optional resampling, creates both playlist and regions and loads the region onto the Track all the while displaying a progress information to the user.

    Documenting the bound C++ methods and class hierarchy is somewhere on the ToDo list. Meanwhile luabindings.cc is the best we can offer.

    Concepts

    Ardour is a highly multithreaded application and interaction between the different threads, particularly real-time threads, needs to to be done with care. This part has been abstracted away by providing separate Lua interpreters in different contexts and restricting available interaction:

    The available interfaces differ between contexts. e.g. it is not possible to create new tracks or import audio from real-time context; while it is not possible to modify audio buffers from the GUI thread.

    Current State

    Fully functional, yet still in a prototyping stage:

    Examples

    Apart from the scripts included with the source-code here are a few examples without further comments...

    Editor Console Examples

    
    print (Session:route_by_remote_id(1):name())
    
    a = Session:route_by_remote_id(1);
    print (a:name());
    
    print(Session:get_tracks():size())
    
    for i, v in ipairs(Session:unknown_processors():table()) do print(v) end
    for i, v in ipairs(Session:get_tracks():table()) do print(v:name()) end
    
    for t in Session:get_tracks():iter() do print(t:name()) end
    for r in Session:get_routes():iter() do print(r:name()) end
    
    
    Session:tempo_map():add_tempo(ARDOUR.Tempo(100,4), Timecode.BBT_TIME(4,1,0))
    
    
    Editor:set_zoom_focus(Editing.ZoomFocusRight)
    print(Editing.ZoomFocusRight);
    Editor:set_zoom_focus(1)
    
    
    files = C.StringVector();
    files:push_back("/home/rgareus/data/coding/ltc-tools/smpte.wav")
    pos = -1
    Editor:do_import(files, Editing.ImportDistinctFiles, Editing.ImportAsTrack, ARDOUR.SrcQuality.SrcBest, pos, ARDOUR.PluginInfo())
    
    #or in one line:
    Editor:do_import(C.StringVector():add({"/path/to/file.wav"}), Editing.ImportDistinctFiles, Editing.ImportAsTrack, ARDOUR.SrcQuality.SrcBest, -1, ARDOUR.PluginInfo())
    
    # called when a new session is loaded:
    function new_session (name) print("NEW SESSION:", name) end
    
    
    # read/set/describe a plugin parameter
    route = Session:route_by_remote_id(1)
    processor = route:nth_plugin(0)
    plugininsert = processor:to_insert()
    
    plugin = plugininsert:plugin(0)
    print (plugin:label())
    print (plugin:parameter_count())
    
    x = ARDOUR.ParameterDescriptor ()
    _, t = plugin:get_parameter_descriptor(2, x) -- port #2
    paramdesc = t[2]
    print (paramdesc.lower)
    
    ctrl = Evoral.Parameter(ARDOUR.AutomationType.PluginAutomation, 0, 2)
    ac = plugininsert:automation_control(ctrl, false)
    print (ac:get_value ())
    ac:set_value(1.0, PBD.GroupControlDisposition.NoGroup)
    
    # the same using a convenience wrapper:
    route = Session:route_by_remote_id(1)
    proc = t:nth_plugin (i)
    ARDOUR.LuaAPI.set_processor_param (proc, 2, 1.0)
    
    

    Commandline Session

    The standalone tool luasession allows one to access an Ardour session directly from the commandline. Interaction is limited by the fact that most actions in Ardour are provided by the Editor GUI.

    luasession provides only two special functions load_session and close_session and exposes the AudioEngine instance as global variable.

    
    for i,_ in AudioEngine:available_backends():iter() do print (i.name) end
    
    backend = AudioEngine:set_backend("ALSA", "", "")
    print (AudioEngine:current_backend_name())
    
    for i,_ in backend:enumerate_devices():iter() do print (i.name) end
    
    backend:set_input_device_name("HDA Intel PCH")
    backend:set_output_device_name("HDA Intel PCH")
    
    print (backend:buffer_size())
    print (AudioEngine:get_last_backend_error())
    
    s = load_session ("/home/rgareus/Documents/ArdourSessions/lua2/", "lua2")
    s:request_transport_speed (1.0)
    print (s:transport_rolling())
    s:goto_start()
    close_session()
    
    
    --- style: luadoc title: Class Reference part: subchapter include: class_reference.html ---