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
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




