Ardour3 Beta 1a released

After a furious 3 months (more than 500 code commits), the Ardour team is pleased to announce the release of Ardour 3.0 Beta 1. This is the first version of Ardour 3 that has support for OS X (Intel only for now, sorry PPC users), where you will find fully functional AudioUnit instrument support among all the other goodies that Ardour 3 brings. The (very long) list below documents the other many changes, including support for Linux native VSTs, an initial new version of Freesound browsing, some shinier (and perhaps out of place) new buttons, and a metric ton of bug fixes and improvements.

This is an update of the beta1 release from earlier today. It corrects several packaging errors in beta1, and by coincidence contains a couple of new features and bug fixes. If you downloaded beta1, please upgrade to this version.

A word of explanation about what a beta release means. This is not a release candidate. Its still an early release in which quite a lot of things are unfinished or experimental. To see what we intend to fix, add, remove or change before the final release of 3.0, check out this list.

Important Linux Notes

These packages use a version of the Cairo graphics library that uses hardware rendering for gradients. If you are using an old Nvidia driver (older than 270.41.03), the new buttons will not render correctly for you. We are considering what to do about this situation for beta2.

Important OS X Notes

To be able to route MIDI to/from other CoreMIDI applications or hardware ports, you will need to:

  1. Enable the IAC MIDI driver from Audio/MIDI setup if you want to exchange MIDI with other applications
  2. Start other applications before you start JACK if you want to be able to exchange MIDI with them
  3. Be sure you use the JackPilot Preferences to enable MIDI "bridging" before starting JACK
  4. Have Pete Yandell's MIDI Patchbay installed for patching
At present, JACK's ability to bridge between its own internal MIDI routing and CoreMIDI is "static" - it does not detect the arrival or departure of new MIDI ports as devices or applications come and go. We plan to fix this, either in JACK itself or in Ardour if necessary, before 3.0 is released.

Initial startup will be very slow, even more so if you have not used Ardour before. It will do a scan of both the system fonts and all available plugins. Subsequent startups will be substantially faster. And yes, we know we need a splash screen.

Please note that all keybindings that use the Control or Alt keys have been switched from the situation in Ardour2. It has become more clear that Apple really did not design their OS or GUI with the idea of using Alt/Option as a modifier, so Ardour3 now uses Control where Ardour2 was using Alt. In this beta release, attempting to set your own keyboard bindings using the Alt modifier will likely fail.

The download is very big (around 160MB). It will unpack to around 1GB on your disk This is because we are currently making debug builds available, which come with all the internal information needed to get useful crash traces. Once 3.0 is released, the package will be around 40MB (the same is true on Linux).

Like other zero-cost versions of Ardour built as a ready-to-run package for OS X, this beta does not save the state of AudioUnit plugins.

This version of Ardour has been built without internationalization support.

New Features

  • Linux "native" VST support
  • Give route groups their own colors
  • Allow route groups to color their tracks
  • Add option to insert time on all a track's playlists
  • Option to glue new markers to bars and beats
  • Implement invert selection for MIDI notes
  • Add Selection-by-note-range for MIDI notes
  • Add session option "MIDI-region-copy-is-fork". If set, all MIDI region copies will be independent from each other; settable via Session->Properties->Misc
  • Offer explicit monitoring choices, so that tracks can be forced to monitor their inputs (and more)
  • Auto-connect new track/bus inputs to physical ports is now the default
  • Auto-connect new track/bus outputs to the master bus is now the default
  • Experimental, incomplete reimplementation of Freesound browser (part of the import dialog), allowing users to find and use audio from the vast Freesound audio database.
  • Add option to have track/bus selection linked between the editor and mixer windows

GUI Changes

  • On OS X, switch all use of Control and Alt/Option keys (closer to Apple's standard modifier usage)
  • New ArdourButton widget, now widely used for buttons that convey state through their visual appearance
  • Rearrange the transport bar; items not frequently modified while working (auto-input, time-master) have been moved to Session->Properties or Edit->Preferences
  • Use evenly distributed green palette for MIDI notes.
  • Use standard selection colour (purple) for selected MIDI notes.
  • Less day-glo panner colours based on audio track colours.
  • Make meters with different colour parameters actually work.
  • Fix meter colour gradients (mid and top were swapped).
  • Fix meter colour range to again have a hard knee at 0dB and twiddle colours so >0dB levels are red and stand out.
  • Fix style of the clock in the insert time dialogue.
  • Increase threshold for zoom-by-horizontal movement; ignore movements to y positions outside the scroomer; round page size and value to prevent 'quivering' during drags.
  • Put session-modified asterix in mixer window title as well as editor
  • Redesigned info bar (ideas from Chris Goddard)
  • Reorganize Preferences dialog a bit
  • Add Visibility control for a growing number of repeated GUI elements (particularly in mixer strips)
  • Restore mixer strip comments button, but optionally visible.
  • Don't show busses tab in MIDI connection managers, since there are no MIDI busses yet.
  • Clean up display of channel buttons in monitor section so that it looks optimal for both normal people and ambisonics freaks
  • Add options to add ports to input/output menus on mixer strips.
  • Add an option to disable editor update during drags of the summary pane (helps GUI performance with large sessions)
  • Add option to set default-session-parent-dir
  • Don't offer up Send editors for internal sends (too confusing, because they are not like JACK-level sends)
  • Add tooltips for plugins/inserts/sends in the mixer strip
  • Drastic overhaul of keyboard handling in mixer window.
  • Fix port matrix dimensions on non-24-bit displays
  • Make "OK/Apply" the default response in several dialogs
  • Set window icons for the startup window
  • Provide global prelight option (its in Edit -> Preferences->Interface)
  • Alert the user if a connection is made which causes feedback, and preserve the route graph in the state that it was in before the feedback was introduced. The intent being to simplify the code, reduce the number of areas of code which must consider feedback, and fix a few bugs.
  • Provide global prelight option (see Edit -> Preferences->Interface)
  • 2 level structure for theme manager window, to help with themeing ArdourButtons
  • Fix transparency of selection rectangles (and change color a bit)
  • Add "active" indicator/control to rows in the editor route list
  • Fix insertion of processors at the point at which the processor menu was opened; give a visual cue to indicate where a processor will be inserted.
  • make return/enter trigger the default action in a variety of dialogs

Crash Fixes

  • Fix crash caused by empty bundles
  • Fix a crash with plugins when the processing of a block of audio is split up (e.g. for automation handling)
  • Fix crash on rename region
  • Fix crash when moving end marker after deleting loop range
  • Fix crash on "Consolidate Range" on MIDI tracks

Other Bug fixes

  • Fix note snapping so that we snap to the note we're over
  • Fix various MIDI keybindings that were lost previously in a regression
  • Setup fader for audio/MIDI when its position in the processoing chain is altered
  • Reconfigure processing chain appropriately when setting up a peak meter
  • Update fader curves when xfade length changes
  • Fix thinko bug with dragging one of the >1 tabs in the same route group
  • Stop session range location being removed on clear-ranges
  • Do not move the initial tempo / meter changes at 0 time when inserting time
  • Snap new automation points in AutomationRegionViews
  • Don't create new regions on clicks on MIDI plugin automation tracks
  • Set up ControlUI::combo_map correctly to fix drop-down boxes in generated plugin UIs (#4221). Based on work by jeremybub.
  • Delete RouteUI immediately on request, rather than in an idle loop
  • Don't allow non-movable meter / tempo markers to be dragged
  • Don't draw MIDI note horizontal grid lines if they would be less than 3 pixels apart
  • Load the tempo map before the locations so that locations can compute their BBT positions correctly
  • Clear clicks on locating for a seamless loop so that they don't stop
  • Fix default disk_io_chunk_frames for diskstream so that it isn't larger than the default playback buffer size
  • Make it possible for undo records to contain details for crossfades that are later deleted
  • Fix adding of automation points to regions with a non-zero start
  • Check inodes before reporting ambigious files (to avoid seeing symlinks twice)
  • Fix interaction with JACK latency API
  • Handle scroll events on track header meters
  • Hide/ignore inputs on a plugin if the previous processing element doesn't provide any data for them
  • Make management of MIDI ports thread-safe
  • Various fixes to Mackie/Logic Control support
  • Fix a search/replace bug in TOC/CUE generation
  • Fix problems with selecting control points in AutomationRegionViews with non-zero region start.
  • fix ghost note position on non-zero-start regions
  • Remove erroneous check that would prevent notes being put at pitch 0 or 127
  • Clear selected MIDI notes in all regions when they are cleared in a single one
  • Stop MidiRegionView claiming PrimaryModifier-scrollwheel so that zoom still works when MIDI notes are selected
  • Make phone-home option default to False even for non-debug builds
  • Fix visibility of MIDI CC automation lanes
  • New Emu Xboard 61 binding map from mcgruff
  • Patch from colinf to disallow colons in snapshot names for compatibility with FAT filesystems
  • Adjust send faders depending on what signal type they are passing
  • Make MIDI sends work.
  • Improve plugin hide logic to prevent crashes when trying to insert fully audio plugins into MIDI tracks.
  • Save marker selection state in instant.xml
  • Fix crossfade construction
  • More robust plugin I/O mapping.
  • Cope with drags of selections that include regions on hidden tracks
  • Fix check on dragging MIDI notes to a point before the region position.
  • Fix snap of note drags when the region position is not itself snapped to the grid
  • Allow status bar components to be individually shown / hidden.
  • Don't offer the monitor buss to export from
  • Don't resort routes at every step during a session's construction; can dramatically speed up loading of big sessions.
  • Use shared_ptr for Port in the AudioEngine; improves thread-safety of the audio engine's port list as a writer cannot destroy a port in one thread while the port list is being iterated in another.
  • Reload meters in the right place even if they are set to a custom position
  • Fix left-over Panner and related objects after session close
  • Change internal API used by native VST support to read/write info files, so that users can generate .fsi files in ~/.fst if is not writable by them
  • Fix compensation of roll delay with MIDI tracks; data should be obtained from playback_sample, not transport_frame
  • Reverse the order of vertical tabs when they are on the right hand side so that from top to bottom it is the same order as that from left to right for the top tabs.
  • Fix bleed of signals between tracks/busses caused by disabled plugins
  • Allocate some thread-local buffers for the GUI thread so that the Plugin analysis stuff works again
  • Make it impossible to create MIDI tape tracks
  • Do a topological sort of the route list before passing it to the graph, as the graph's feedback detection algorithm depends on the input route list being sorted in such a way.
  • Fix naming / numbering of new MIDI tracks
  • Attempt to fix some confusions caused by bundles containing different types of ports
  • Fix master bus mute button
  • Use home-grown solution for path_expand(), rather than wordexp() which is broken in different ways on different platforms
  • Fix nasty off by one error that lead to the creation of 1 sample xfades where there should be none
  • Fix incorrect buffer status reports when using MIDI tracks.
  • Find export presets correctly.
  • Open route group dialogue on Ctrl-right-click rather than Ctrl-left-click on a group tab to be more consistent with the rest of Ardour.
  • Save custom meter position so that it can be restored if the metering point is set to something else and then back to custom again

Build Changes

  • Don't build tranzport support unless it was asked for (it doesn't work anyway)
  • Remove LV2 support via SLV2 (Lilv only now).
  • Comment out soundtouch-related configuration checks

Translations

  • Updated Italian translation from Raffaele Morelli
  • Updated Russian translation from Alexandre Prokoudine
  • New Norwegian translation from Eivind Ødegård

Contributors

mike start, mcgruff, david robillard, colinf, roy vegard, jeremy bub, carl hetherington, todd naugle, acolom, joern nettingsmeier, paul davis

The downloads don’t seem to be compilable source…
I’ve got bin, etc, lib and share folders.
Do I have to put these in my root folder or my usr folder… or does it not matter?

@megamasha

They are installers. Run one of them from console.

I see no button icons if I just run the bin executable on the Linux 32-bit version…

@vervelover: URL for a screenshot please, but also note that you were asked not to discuss issues with a3 on the forums. IRC would be much better.

Holy crap! That’s a lot of fixes and changes! Good going! Really impressed and can’t wait for the final :slight_smile:

@megamasha: actually, i’ve released the wrong files. give me a few minutes.

@paul

sorry about that I’ll report a separate bug for this issue!

Now that’s what I call a changelog!

Congrats and big thanks to Paul, Carl, Mike LinuxDSP and everyone else listed above and otherwise who have helped make this first beta such a groundbreaking release!

Some good repositories of Linux native VSTs are:

http://distrho.sourceforge.net/

http://code.google.com/p/juced/updates/list

http://www.linuxdsp.co.uk/

http://www.loomer.co.uk/

falktx is currently working on porting most of the good open source VSTs available at the above sites to LV2 which will make sessions using such plugins portable been the Linux and OSX versions of A3.

This is truly a turning point in music tech history… maybe I should actually try using it now?

@danboid

VST support doesn’t exist in the OS X version, sorry. Just AU.

Seablade

@vervelover: i have a screenshot from another user, and i have some idea about the nature of the problem.

hem… maybe I’m blind, but I installed the Beta1 and I can’t see VST plugins… is there a secret command or just because I’m on 64 bits Linux ?

@seablade

Yes I know there is no VST support in the Mac build but I don’t get how you derived that from my posting as the whole third paragraph is actually dedicated to explaining to people whats underway to solve the AU/VST OSX/Linux plugin dichotomy; this is presuming that they have just discovered this to be the case and they unnecessarily start fearing there’s no hope for transferring MIDI sessions between the two.

@danboid

I got that from this…

falktx is currently working on porting most of the good open source VSTs available at the above sites to LV2 which will make sessions using such plugins portable been the Linux and OSX versions of A3.

The session was already portable to the extent it would be now, LADSPA plugins exist on both platforms but initiating a VST on Linux or AU on OS X means that you will lose that going to the respective platform as the plugin standards are not identical and at the moment Ardour can’t load one in favor of another automatically(If that would even be reasonably possible). I don’t necessarily consider that completely portable, in fact things are only as good as they previously were with A2, if not slightly worse for one more plugin standard that isn’t portable.

That being said I am glad to see native VST support in there I think.

Seablade

EDIT I take that back and see where you are going, we are slightly better due to LV2 being supported on both platforms yes. But that still won’t solve, for instance, loading Kontakt as an AU on one platform, and trying to do so as a VST on another.

@stanlea: the only change in “VST support” is for native Linux VST plugins, not Windows ones. Ardour is currently using LXVST_PATH as the environment variable to look for them; if its not set, it will look in places like /usr/lib/lxvst and /usr/local/lib/lxvst and /usr/lib64/lxvst and so on.

@paul

Just reported a new bug with the error message I get. Thanks!

It looks amazing. I worked for alpha 1 - 10 The beta version of positively surprised me with his GUI. Looking at the list of changes I see that this is a very stable release. (Today, it will check carefully:). Meanwhile, a huge round of applause for the authors. Big, big thanks.

@paul : yes, I know : only native vst - but the trick is that my path for them is /…/vst, not lxvst I just have to change that - thanks

ohh… i’ve been dreaming on this day dude! jajaja actually been checking ardour’s site every single day waiting for good news… these are EXCELLENT news… thanks for your effort devs! (btw… since i see so much GUI improvement… is there going to be a change on the faders also? … analog look perhaps ala Mixbus???)

YEAAHHHH! Thanks to Paul and everyone else who worked on this, been waiting patiently :slight_smile:

Also, Linux native VST support, only the Ardour team unexpectedly adds features they promised they wouldn’t :slight_smile: Quite a pleasant surprise, even though my main box is OS X.

Also, is there a way to donate and get a version with full AU support?