Editing and UI changes in Ardour

Ardour's editing interface has changed significantly between version 2.1 and 2.2. This document presents on overview of the changes. Most of these changes have been driven by requests from SAE, the audio/video educational institution that is helping to support Ardour's development. I think that these changes are exciting, but they are also potentially confusing.

Edit Cursor - Edit Point

The most important change is the removal of the edit cursor. This was done because (a) it confused new users (b) it was invisible to many new users (c) it didn't fit with the editing style that was about to be introduced.

The edit cursor has been replaced by a new concept: the Edit Point. The edit point is the location where most (all?) editing operations take place. It can be defined as one of the 3 possibilities:

  • the playhead
  • the mouse
  • the selected marker
There are 2 keybindings available to cycle through the edit point options; one of them includes "selected marker", one does not. In many editing situations, just the playhead and mouse are all you need. You can also switch the edit point using a new combo-selector just right of the snap unit selector.

The Edit Range

The edit point implies a parallel notion of "edit range". In the SAE version of Ardour, there actually is no range mode anymore at all - it has been entirely replaced by the "edit range" which is an implicit range. In the non-SAE version, range mode still exists, but as of November 30th 2007, there may be occasional conflicts over whether a "range selection" takes precedence over the edit range. In time, we will discover if it worth retaining "range mode" or not.

How is the edit range defined?

There are 6 simples rule to define the edit range:

  • Edit Point = Playhead
    • selected marker exists : range is between Playhead and Marker
    • no selected marker : range is between Playhead and Mouse
  • Edit Point = Mouse
    • selected marker exists : range is between Mouse and Marker
    • no selected marker : range is between Playhead and Mouse
  • Edit Point = Selected Marker
    • selected marker exists : range is between Playhead and Marker
    • no selected marker : an error, there is no edit range.

Snap changes

To turn off snap-to-grid, you used to select "None" from the snap units selector. This was OK but it meant that you couldn't just turn if off for a moment, and it added an item to that selector that was really pretty different from all the others. This item has been removed from the snap units selector. In the selector next to it, there are now 3 choices: No Grid / Grid / Magnetic. These correspond to the old None / Normal / Magnetic settings. There are key bindings available to cycle through both the snap units and the snap setting.

Keyboard-centric editing

This is where things start to get interesting, and fun, and most importantly fast. Ardour's workflow model has evolved over the years as a rather randomly collected set of user interface "styles", and has a strong emphasis on context menus. The context menus still exist, but to make editing faster and less cumbersome for professional users, there is now a lot more that can be done using just the keyboard with the mouse as a pointing device.

Many commands that were not bound to the keyboard now are, and several new commands have been added. What is important to grasp about using the keyboard in this way is that it is the Edit Point that defines where the operation associated with the key will take place. Let's take split as an example. In recent versions of Ardour, this was bound to the "s" key, and it would split the region that the mouse was pointing at (more or less). In the code currently in SVN, the split command splits region that are at the edit point. This could be the mouse, or it could be one the other two possibilities.

This means that you can set the edit point precisely by setting it to the playhead and positioning that in various ways. Then you can carry out one or more operations at precisely the same location without worrying about where the mouse pointer is. Alternatively, leave the edit point set to "mouse" for behaviour roughly like the older versions of Ardour.

What gets operated on?

This aspect of Ardour's editing interface is being evaluated and may change again in some important ways between v2.2 and v2.3. Any changes made will be aimed at improving workflow speed.

In addition to the use of the Edit Point to define where an operation will take place, Ardour now has some clearly defined rules for what objects will be operated upon:

  • if any objects (e.g. regions) are selected, they will be the target of the operation (assuming they are positioned suitably given the current Edit Point)
  • if no objects are selected, the operation will be applied in all currently selected tracks, at the Edit Point
  • if no tracks are selected, the operation will be applied in all tracks, at the Edit Point

Keyboard editing operations

This shows a list of the (mostly new) keyboard-based editing commands and their default bindings for an ANSI-style keyboard.

Spot (align) - A
move regions to edit point (aligned on sync point)
Split - S
split regions at the edit point
Trim Start - J
Adjust start of region to edit point (or as close as possible)
Trim End - K
Adjust end of region to edit point (or as close as possible)
Duplicate - D
Copy regions and put the copy adjacent to the original
Crop - F3
Truncates region(s) to the edit range
Separate - F4
Splits region(s) at both ends of the edit range
Pitch Shift Region - F6
Initiates a pitch shifting operation
Loop - L
Put the transport into loop mode (playing the loop range)
Adjust Fade In - /
Set region fade in end to edit point
Toggle Fade In - Ctrl-/ (X) Command-/ (OSX)
Turn region fade in on and off
Adjust Fade Out - \
Set region fade out start to edit point
Toggle Fade Out - Ctrl-\ (X) Command-\ (OSX)
Turn region fade out on and off
Play Region - H
Play session from start to end of region(s)
Zoom To Region - Z
Set Sync Point - V
Sets the sync point of regions at the edit point
Insert - I
Inserts the selected region(s) from the region list in track(s)
Set Playhead - P
Moves the playhead to the edit point
Set Punch Range - [
Sets the punch range from the current edit range
Set Loop Range - ]
Set the loop range from the current edit range
Set Punch Range From Region - Alt-[
Set the punch range to cover regions
Set Loop Range From Region - Alt-]
Set the loop range to cover regions
Cycle Edit Point - `
Alternates edit point choice between Playhead and Mouse
Cycle Edit Point With Marker - Alt-`
Alternates edit point choice between Playhead, Marker and Mouse
Cycle Edit Mode - 1
Alternates edit mode between Splice & Slide
Cycle Grid State - 2
Alternates grid state between Off, On, Magnetic
Cycle Grid Units - 3
Cycles the grid unit choice between all relevant choices
AutoReturn - 4
Toggles state of auto-return
Click - 5
Toggles state of the click/metronome