Ardour 7.2 released

Another month brings another Ardour release. Although the primary reasons to release 7.2 were to fix some egregious bugs with region automation and the tempo map, this version includes a nice collection of new features too, including MIDI Learn for cue slots, support for Ogg/OPUS compressed audio, importing lyrics from MIDI files and more.

a screenshot showing Ardour 7.2

Download  

New Features and Improvements

MIDI Learn for Cue Slots

This release has both user-visible and under-the-hood changes for people who use grid-based MIDI controllers and are interested in using cues.

Ardour now has a new MIDI input port dedicated to controlling trigger slots (Cue Control in). To make a good use of it, we also added MIDI Learn support for trigger slots. Navigate to Edit > Preferences > Triggers and select the device/port you want to use for this (you can also do this in the normal MIDI I/O matrix). Then set up your environment by "learning" - right clicking on a slot, select "MIDI Learn", then operate a given pad or button to a bind it to a particular slot. All mappings are saved into sessions rather than globally. So your setup can vary between sessions, but you can also create templates and/or binding maps for persistent configurations.

a screenshot showing the cue slot context menu

Currently, there is no MIDI Learn for Cues ("scenes" in Live/Bitwig) or for the stop button in a given track, but actions now exist (Cues/trigger-cue-N (where N is the row number), Cues/stop-all-cues-now and Cues/stop-cues-N-now (where N is the track ID), for example) so that you could use these in a binding map.

The under-the-hood part of the changes is a slight rewrite of Ardour's code that implements support for MIDI-based control surfaces. Multiple devices from different vendors have a similar way to do some things, so we moved all similar code into one place and enhanced it. So far, this affects Ableton Push 2 and Presonus Faderport (1st generation), although you won't see any difference. This reorganization also simplifies adding support for more grid-based controllers in the future (Novation Launchpad Pro is on our radar, in particular).

TouchOSC Support Improvements

Thanks to newly added zeroconf/mDNS support, now TouchOSC users only need to tap the Browse button to discover Ardour and connect to it, no need to input the IP address manually. So far, this only works on Linux and macOS, mainly because Windows is falling behind in that regard (a workaround is possible but will take time).

Moreover, Ardour now supports saving, recalling, and getting status feedback from mixer scenes over the OSC protocol. This has been created with TouchOSC in mind as well.

MIDI Lyrics Importing

If you enable the Import MIDI Markers option in the import dialog , Ardour will now import lyrics from MIDI files as region markers. After that, you can use the pre-existing feature to promote region markers to location markers (and clean up region markers).

a screenshot of ardour showing imported MIDI lyrics

Rulers and Tempo Maps

Sadly, 7.0 and 7.1 revealed a lot of issues with the new implementation of the tempo map. This was apparent from the many crashes that were encountered by users actually using the features of the tempo map.

The crash situation is now vastly improved (with many thanks to those users who provided us with excellent bug reports and backtraces, allowing the crashes to be understood and fixed). The tempo map situation is still due for some further improvements, specifically in the area of tempo-mapping operations (fitting the map to a live performance), but the more obvious features can now be used without so readily crashing the program.

A couple of other minor changes to the tempo map workflow:

  • The behavior of a twist-tempo drag operation remains unchanged, but these are now started from the BBT ruler, not the tempo ruler.
  • BBT ruler: we no longer try to guess what inter-quarter ticks and labels should be shown, but instead just use the grid based on time signature denominators (i.e. if the time signature is 7/8, the BBT ruler "grid" will be be eighth notes). However, note that what is actually labelled (and sometimes even visible) may depend on your zoom level too.

MP3 and Opus Support

Ardour already uses FFmpeg for MP3 support. But now that libsndfile supports MP3 encoding (since version 1.1.0), it is possible to fall back to libsndfile if ffmpeg is not available. This is mainly for the benefit of GNU/linux distribitions, support for MP3 encoding is be checked at runtime.

Ardour can now decode and encode Opus files without using the command line for post-processing. This requires libsndfile version 1.0.29 and newer.

Builds of Ardour provided at ardour.org are shipped with the latest libsndfile code.

Consistent Audio/MIDI Monitor Modes

Now that both Audio And MIDI tracks support all three record modes, monitoring should be consistent. When recording, Sound on Sound now does cue monitoring, while Layered (opaque) and Non-Layered monitor only the input.

A few things worth noting:

  • When not recording MIDI, tracks still monitor both Input and Disk (unless Non-Layered mode is set).
  • MIDI tracks always monitor input as a fallback.
  • Audio tracks can use hardware monitoring.
  • Opaque MIDI regions will now obscure regions below them, just like audio regions.

UX/UI Improvements

We improved the way files from bounced regions are named. Here is the new logic:

  • If just one region is selected, Ardour will automatically suggest using the region name as is.
  • If more than one region is selected, and regions are on different tracks, Ardour will allow adding a prefix to the file names, e.g. adding "take1-" prefix to "piano" and "bass" regions of respective mono tracks will create "take1-piano.wav" and "take1-bass.wav" files.
  • If more than one region is selected, and at least two regions are on the same track, Ardour will hide the Bounce to Trigger Slot option.

There have been two more UX/UI changes:

  • Re-order redirect-box (plugin) context menu: move plugin-specific items (presets, edit, rename, etc) to the top, group related items together.
  • Ensure that the session-save dialog remains above all other Ardour windows.
  • The grid (when visible) now generally appears to be above regions rather than obscured by them. Previously, stacking regions would progressively obscure the grid lines.

Themes

  • Step-entry dialog is now themeable, and scalable. Previously fixed size, black icons were used.
  • Updated cubasish and cleargray themes for better text legibility in the pin editor dialog.
  • Fix VU meter color in default theme and some other themes.
  • Xcolors theme: update alert:cyan and widget:ruddy to Teal #9.
  • Remove cruft from diehard theme.

Misc Changes

  • Add action and shortcut to add BBT marker at playhead, and default the BBT time for the new marker to 1|1|0.
  • Delete/BackSpace clears selected trigger-slot.
  • Add context so that BackSpace could be used to both clear a trigger slot and delete a processor in a mixer channel.
  • Thin MIDI automation when combining regions (bug #9117).
  • Add named ranges to quick export dialog.
  • Render opaque layered [MIDI] regions transparently onto a grid.
  • Add tooltip for mixer-strip color/number label about double-click and right-click actions.
  • Update ArdourSans font, include UTF8 symbols used by Ardour, add API to force ArdourSans font (for UTF8 symbols), and use ArdourSans for symbols cross platform.
  • Only use playlist-name when bounced region-name is unset.
  • The Bank/Patch buttons in the step entry dialog were hidden. Those actions are not currently implemented.

Lua Scripting

  • Lua Convolver tweaks. show how to use IRs from the session-folder, set file when instantiating the plugin.
  • Update Lua VAMP scripts, follow readable API change since 7.0.
  • Add Lua method to show system env for v in ARDOUR.LuaAPI.env():iter() do print(v) end`.
  • Add Lua bindings to change mute-points.

Bug Fixes

  • Fix region gain when splitting and cutting regions.
  • Fix sndfile_data_width use of low bits of subtype of libsndfile format.
  • Fix "Couldn't create output file" error message .
  • Various PulseAudio fixes.
  • Fix compilation on some older systems (amend 3fb9052).
  • Copy state when replicating VST3 plugins (#9006).
  • Fix memory leak when replicating plugins.
  • Add missing bracket when tagging split-by-channel MIDI files.
  • Fix negated origin time in main clock.
  • Fix bad escaped trailing newline in #define.
  • Fix concurrency issue when deactivating plugins.
  • Fix LV2 Atom ringbuffer overflow/corruption.
  • Allow to override default stack limit for background processes and do not limit stack-size when freezing tracks. This fixes an issue with plugin state save/restore that requires excessive stack to do that.
  • Special case tansient-parent windows on macOS. This fixes an issue that plugin windows cannot be re-stacked but were previously always stacked in the order they were opened.
  • Prevent crash when running unconfigured meter processor.
  • Deliveries support mismatched chan-counts. This issue was introduced in f3423b8, which assumed that number of input channels matches the number of outputs. With flexible I/O this is not necessarily the case.
  • Fix soundcloud curl callback. This also addresses C++17 compatibility.
  • Fix session-archive of stereo files. Archiving creates a dedicated mono file for each Source. When the original session has (embedded) stereo files, the channel needs to be temporarily set to 0.
  • ALSA: fix autostart when using different I/O devices.
  • Fix copying MIDI regions w/automation.
  • Fix manual drawing of MIDI automation (avoid offset, bug #9142).
  • Resolve export format ambiguities. This fixes an issue when switching formats.
  • Potential fix for "/bus/... master ..." target in MIDI binding maps failing.
  • A number of fixes and improvements in AudioClocks related to the difference between displaying a position vs. displaying a duration.
  • Fix manual drawing of MIDI automation (avoid offset).
  • Temporal: fix various incorrect uses of ::samples() in audio time arithmetic.
  • Fix behavior of duration-displaying AudioClocks when using the scrollwheel to edit.
  • Fix macOS URI open, use macOS API to open finder at given path.
  • Pick route colors from the color palette (with random variation, bug #9115), when use stripable palette colors, use them sequentially.
  • Fix Lua biqaud filter parameter range.
  • Remove remnants from AudioMidi Tracks. This fixes meter faceplace background color when adding a MIDI port to an audio track.
  • MIDI tracer: disable trace when window is closed. This fixes a bug with some MIDI port constantly tracing, because trace_parser is never unset.
  • temporal: fix ::get_grid() crash condition.
  • Fix unnecessary error messages from time info box.
  • SessionDialog: avoid crash if enter is pressed twice rapidly.
  • MIDI automation (avoid offset, bug #9142).

Translations

Updated: French, German, Russian

New: Catalan

Contributors

Code: cooltehno, Paul Davis, John Emmas, Robin Gareus, Mads Kiilerich, Ben Loftis, David Robillard, Gon Solo.

Translations: Edgar Aichinger, Albert Homs, Alexandre Prokoudine, Julien Taverna, Nicolas Faure, Olivier Humbert.