The Really Big Stuff
For some users, Ardour 6.0 will not look noticeably different from 5.12. However internally there have been huge engineering changes. Indeed, the primary reason for the very long interval between the two releases has been the scope and difficulty of these engineering designs and implementations. We are now confident 6.0 is a more reliable and usable program than any previous version of the program. Below is a list of the major architectural changes that form the basis for this release.
- Full latency compensation everywhere
- Previous versions of Ardour have contained various levels and kinds of compensation for latency in the signal processing flow. Ardour 6.0 is now absolutely, fully compensated for latency along any signal pathway. Busses, tracks, plugins, sends, inserts, returns: no matter how you route signals within (and external to) Ardour, everything will be fully compensated and aligned with sample accuracy.
- Global varispeed
- Previous versions of Ardour implemented varispeed using specific DSP. Ardour 6.0 now contains a high quality resampling engine at its core to deal with varispeed, a design that makes the core of Ardour's code much simpler and ensures that MIDI tracks will have their audio output (if any) handled correctly. This also lays the groundwork for a future version of Ardour to become sample-rate agnostic.
- Cue Monitoring
Previous versions of Ardour allowed you to monitor the signal coming from disk, or the signal from inputs, but not both. Ardour 6.0 now provides the ability to monitor any combination, often called "cue monitoring" (you can hear existing data from disk while also listening to the input signal). This is particularly useful for MIDI tracks, where you can now hear yourself performing/adding new material to a track while listening to the playback of existing material in the track.
- Wet Recording
- In previous versions of Ardour, we noticed that users were confused by the Grid. Sometimes the Grid appeared to do nothing, and sometimes it did something unexpected. Furthermore, it required a lot of switching between grid modes: if you were snapping to 16th notes, then you had to switch the grid mode if you wanted to snap to a marker. The "Grid" has been separated into 2 separate features: Snap and Grid. There is full description of the new design in the manual. Many interlocking changes should result in a more consistent, "what you see is what you get" operation for Grid and Snap.
- MIDI handling
- Although we still have significant work to do on improving Ardour's MIDI workflow, 6.0 features some major breakthroughs and fixes for a lot of the irritating bugs that interfered with MIDI editing in earlier versions. We've completely changed the way we handle MIDI data during playback and the result has been (according to our beta testers) an end to stuck notes, odd looping behavior and missing notes. Although 6.0 did not end up including the overhaul of musical time representation (still planned for a version 7), these changes have already fixed a large number of the most pressing and immediate issues when working with MIDI. We've also made it easier to visualize velocity too. We look forward to lots more improvements in the MIDI workflow in future versions.
- Plugin management
A comprehensive new "pin management" system supports arbitry connections between plugins. Related benefits include managing the number of instances of a plugin, splitting a signal to feed multiple inputs of a plugin, and exposing the sidechain inputs of AudioUnit plugins. Plugins can now be "tagged" with metadata, like "EQ" or "Vocal", allowing the categorization of plugins in various plugin selector menus and dialogs. Harrison contributed a set of tags for over 2,000 plugins, so many users will find sensible categories are already provided without being required to tag their existing plugins. The Plugin Manager dialog was overhauled with a friendlier layout and it allows more sensible searching and filtering.
Audio/MIDI Input & Output
- ALSA (Linux) backend can now use separate devices for Input and Output
- ALSA (Linux) backend now lists subdevices (sometimes useful to pick a specific set of outputs/inputs)
- New PulseAudio backend for Linux. Only provides playback, but useful for mixing/arranging with Bluetooth on Linux, or just avoiding problems with other applications)
Virtual MIDI keyboard: a rich implementation that can be
used to deliver complex MIDI to any part of Ardour (you can
connect it just like a hardware device). Support for several
different keyboard layouts (QWERTY, AZERTY, Dvorak etc.)
File Formats, Import, Export Etc.
- Many MIDNAM files added, after validating them using the official MIDNAM standard
- When exporting to Ogg/Vorbis, a GUI dialog is available to control quality settings
- Support for MP3 audio files, both import and export, across all platforms (Linux, Windows, macOS etc.) Export supports meta-data tagging.
- FLAC has been added as an option for Ardour's native recording format
- Official ARM binaries 32/64bit builds for Linux (Raspberry Pi and related platforms)
- Support for NetBSD, FreeBSD, Open Solaris
- New "Latch" automation mode (like touch mode, but remains engaged until transport stop)
- All MIDI note editing commands now have user-editable shortcuts/bindings, rather than being hardcoded
- Transport Masters: chasing and slaving to timecode (LTC, MTC, MIDI Clock & JACK) has been almost completely reimplemented. Ardour collects (and displays) information from all sources all the time. You can also add additional masters (e.g. two difference sources of LTC).
- Foldback ("monitor") busses: dedicated submixes for performers, with full OSC control, for remote management via eg. TouchOSC
- MIDI notes now explicitly display velocity with "bars"
- MIDI Clock can now optionally set the session tempo (if there is a single global tempo)
- Ability to take a screenshot of the entire mixer
- Primary transport clock, not secondary, now controls other clock display modes
- When auditioning MIDI, the General MIDI synth is always the default, with a dropdown to select a different instrument as needed
- Improve organization and display in port/connection matrices
- A dedicated Source List shows the files used by a session to facilitate take management and file organization.
- Various fade/declick options now possible for loop boundaries (See Preferences > Transport)
- A session can be created without providing a name (like much other desktop software)
- Toolbar and status bar can now be user-customized to show/hide optional widgets, The order of items has been shuffled and the overall visual appearance improved.
- Add a time+layer equivalence check, now used as default for region selection on grouped tracks. This means that regions will be selected across grouped tracks if they are on the same layer and cover the same section of the timeline. Previously the layer was ignored which caused some issues with editing overdubs
- Bundle VAMP plugin for Lua script pitch-detection.
- Control surface settings are now session independent preferences (except for bindings created using MIDI learn)
- When exporting stems, pre-select currently selected tracks/busses for export
- Support for various optional LV2 extensions (inform plugins about UI scale and color schema, allow plugin to show host's file-selector, verify if LV2 features can be satisfied)
- Theme design cleanup. It's a lot nicer now with semantically named colors.
General Fixes and Improvements
In addition to the items listed below, 6.0 contains hundreds of more minor fixes compared to the 5.12 release. Sometimes, it's just the little things (and sometimes it's not).
- Translations now work (if requested) on newer versions of macOS
- Show the VCA mixer pane when creating VCAs
- Prevent recursive VCA assignments
- Aux Sends now propagate solo: if you solo a track that has an aux send to a bus, the bus will be soloed too.
- Observe user preference to prompt for names when adding range markers
- Periodic backup saves are no longer deleted at transport-stop
- Check whether punch-in is enabled and record is enabled in addition to if we are actively recording when deciding whether to run count-in clicks
- Remove "add track" button from the mixer-list, and add a more obvious one at end of strips.
- Make disk+dsp gauges blink on major errors (disk out-of-space or xrun-while-recording)
- Sequential pasting to the same time, but different tracks no longer causes an offset between the pastes.
- Tell the user why Insert/Remove Time failed, rather than fail silently.
- Splitting a selected track is now possible in range mode
- Arrow keys (playhead_x_to_grid()) should move the view along with it. This is more consistent with jog-wheel operation, which has proven to work nicely.
- Fix region-list column layout.
- Fix for automation-line edits using the Range+Draw tool, when no line is already present.
- Action naming/namespaces rationalized (actions are used for menus, keyboard shortcuts and MIDI binding maps)
- When fitting the selection to the available vertical space, fit whatever is possible and notify the user if there was not enough room for the entire selection.
- Separate "select-all-tracks" action into "select-all-visible-lanes" (everything) and "select-all-tracks" (just actual tracks)
- Pan automation: to match most people's expectations, vertically up within the automation track now corresponds to "left"
- Prompt user when deleting a VCA
- "Show Sends" spills in the same way as VCA
- Fix font-scaling in the port/connection matrices
- Numerous improvements to ProTools session import
- Improve logic used when trying to select the right I/O configuration for a plugin
- Organize and improve usability of the key binding (shortcut) editor
- Leave user-created MIDI connections in place when changing MIDI port connections due to track selection changes
- Do not send MIDI CC value messages when locating if the relevant parameter has automation set to "Off"
- Session archiving now offers compression level options, both for the audio (e.g. FLAC) and the archive as a whole (e.g. xz)
- Fix timestretching when using "resample without preserving pitch" option
- New option to limit the number of automatable parameters (required for certain somewhat insane plugins with 10k parameters)
- Fix handling of MIDI polyphonic pressure/aftertouch during import, recording and playback, including automation
- Allow use of a default Sans font (included with Ardour) as the default font
- Add a new dialog to inform the user about missing files
- Allow copy/paste of aux sends
- Visibility fixes for detached editor and Show-Sends buttons
- Fixes and improvements for the template manager
- Prevent a category of crashes when using non-JACK audio/MIDI backends and adding/removing ports
- Shift several 3rd party library dependencies to newer versions
- Save/restore LTC output port preference/setting
- Allow disabling of auto-connect when adding new track
- When using the mouse (scroll wheel) to zoom, always use the mouse pointer as zoom focus
- Drop use of Terminal to start Ardour on macOS - restores ability to record on macOS Catalina (and beyond)
- Allow tagging plugins (arbitrary tags)
- Add an exhaustive list of default tags from Harrison
- New built-in plugin: a-expander
- Improved GUI for a-comp
- Initialize reverb and chorus sections of a-fluid
- Fix plugin analysis for several VST and AU plugins
- VST plugin presets are now plugin + parameter-count sensitive
- Improve GUI handling for VST plugins using idle callbacks in their editors
- Fix keyboard event forwarding for Linux VST plugins
- Support for plugin-provided MIDNAM data (allows plugins to name patches, and individual notes and MIDI CC parameters)
- Improve plugin GUI resizing support for several different plugin APIs
Plugins with no controls (just presets, such as some convolution reverbs) get a specialized generic GUI.
- Plugin DSP statistics display, both aggegrated and
New surface support
- Launch Control XL
- FaderPort 16
- Faderport 2nd generation
- Nektar Panorama (binding map)
- Contour Designs' ShuttlePRO and ShuttleXpress
- Behringer X-Touch and X-Touch Compact
- EXPERIMENTAL Web browser control surface support (via web socket and JSON data streams)
Fixes & Improvements
- Mackie surfaces can now navigate and control plugin parameters
- Faderport: Add Record-PreRoll and Record-CountIn to the actions available in the footswitch selections.
- Faderport: fix user button settings save/restore
- Push2: application font scaling applied video display
- New Ardour-focused smartphone layout for TouchOSC
- Redo much of the feedback to only send feedback when something actually changes
- Don't clear values on strip change, just send new values
- cuts feedback in half
- because of UDP sometimes the values got to surface before clear
- Added /surface/list to list surfaces Ardour knows about (debugging)
- Added the ability to link two surfaces for larger banks (Extenders)
- some surfaces only send floats, some only ints, accept either.
- Add "Latch" to automation.
- input disk buttons can now both be on. (same as GUI)
- Add click level
- Add feed back for punch in/out, click enable, toggle play/stop
- Add /select/plugin/activate
- Added custom strip list creation and use
- user selected strip list in:
- user selected order
- Added /strip\select/spill to filter strip set to only:
- just strips in the strip's group
- just strips controled by the VCA (if the strip is a vca)
- just strips that send to the selected bus (plus that bus). On the strips that send to the bus, the faders, automation and pan will then apply to the send level, automation and pan (if the send is stereo) All other controls are disabled
- Added /marker to jump to markers greater than 9 or by name or rename
- An existing marker
- Add two more gainmodes, fader only and fader + gain
- Add hide/show strips.
- Allow surface to set it's own portmode and port
- Add group listing, select and strip group name display
- Add group create, delete, switch, join, leave command
- Add group sharing control
- strip name, group name, comment and session name are now editable
- Selected strip can choose VCA to control it
- Personal monitoring can add a new aux bus and connect it.
- Fixed bugs
- Destructive ("Tape") tracks have been removed
- These added substantial complexity to the codebase, have always been (at best) temperamental in their behavior, and are ultimately rendered pointless by the massive reductions in the cost of storage (disk drives). To make future development simpler, we have removed them from the codebase. Sessions that used them will still load - tape tracks will be "converted" to regular tracks.
- Audio+MIDI tracks have been removed
- These caused more confusion than the problem they were intended to solve. If you use a plugin that handles both audio and MIDI inputs (e.g. a vocoder), it is already easier in 6.0 to set up the right signal flow. This option frequently led to users making poor choices when adding tracks, and we've removed it.
- -C,-E and -U command line options
- None of these did anything useful at this point
- Combining Loop and Punch Recording
- You can loop record, or you can punch record. You can no longer do both, which makes sense because it didn't work before (certainly not in general).
Robin Gareus, Paul Davis, Ben Loftis, Albert Graef, Alby M., Alex Pilon, Andre Nusser, Andreas Mueller, Carl Hetherington, Chris Dennis, Christopher Arndt, Damien Zammit, Daniel Appelt, David Healey, David Robillard, David Runge, Guido Aulisi, Julio Martinez, Jan Lentfer, Jeam Marie Favreau, Jelle van der Waa, Johannes Malbaum, Johannes Mueller, John Emmas, Julien Rivaud, Len Ovens, Luciano Iam, Mark Knoop, Markus Seeber, Maxine Lecoq,, Mirko Kunze, Mister Benjamin, nia, Nikolaus Gullota, Nils Geisweiller, Nils Philippsen, Olivier Humbert, Phil Suess, R, R. Mattes, Rui Nuno Capella, Shawn Doherty, Stefan Westerfeld, Sunil Chopra, Terence Clastres, Todd Naugle
Pavel Fric, Hiroki Inagaki, Constanto Alvarez Casado, Alexandre Prokoudine, Julien Rivaud, Fred Rech, Porrumentzio (new Basque translation!), Edgar Aichinger, YQ-YSY, Olivier Humbert
Ben Loftis, Cooltehno