Ardour 3 Beta 5 Released

Its been two months and more than 600 source code changes since beta4. I had announced no more betas for Ardour 3, but we've accumulated a prodigious set of changes, fixes, new functionality that it seems silly to try to hold back. Without further ado, here is Ardour 3 beta 5, absolute the last beta release:

(the files have been removed because beta5 is now too old to be useful for testing. beta3 will be out shortly. - paul, march 1st 2013)

NEW FUNCTIONALITY/CHANGES

  • Visualization of automation while recording it has returned (this was removed during the development of Ardour3 as we merged some improvements in data handling from Ardour2/Mixbus). Several other less notable changes to the way automation data is handled add up to a vastly improved system, with more to come. One important missing piece right now: undo/redo for automation capture does not work.
  • Handle AudioUnit plugin GUIs that want to resize themselves
  • Working handling of LV2 plugin presets
  • Touch automation now works for AudioUnit plugins, at least those whose GUIs do the right thing
  • Provide an easier way to add mixed (audio+MIDI) tracks to a session, to facilitate the use of plugins like Reaktor which accept both audio & MIDI data.
  • Name insert and send ports as "return" and "send" rather than "in" and "out". It is possible that this might break some connections in some existing sessions.
  • Allow alt-drag on stereo panner to move just one side of the stereo field. this wiggles a bit, possibly because of rounding, and that probably needs to be addressed
  • Send automation now works
  • Smooth 0.5 second fade out during quit, plus MIDI panic to turn everything off

MIDI FIXES

  • Fix issues with MIDI note selection when entering and leaving leaving internal ("note") edit mode, starting rubber-band note selection drags, and when changing region selections.
  • Fix crash when quitting with MIDI notes selected
  • Add "v" as a new MIDI editing key for velocity, add a velocity editing dialog, and allow all selected MIDI notes to have their velocity set to the same adjusted value
  • Remove extra .mid suffix added to cloned MIDI region names
  • Properly handle zero-length MIDI files during import
  • Improve vertical positioning of MIDI notes during drags
  • Disallow import-without-copy for MIDI files
  • Prevent exit from note edit mode on double-click with a modifier held down - prevents creation of malformed notes
  • Do not mark imported MIDI files as un-writable - all MIDI files are subject to rewriting at any time
  • Rename MIDI "Fork" operation to "Unlink from other copies"
  • Make a few more MIDI track menu options apply to the current selection
  • Remove believed-unnecessary and broken MIDI thru option
  • Extend a previous region if we click in a MIDI automation lane where there is no region

GENERIC MIDI CONTROL SURFACE SUPPORT

  • Fix generic MIDI bindings that use note on/off commands
  • Add BCF2000 device info file for Mackie Control
  • Alternate Korg nanoCONTROL MIDI binding map
  • New Korg nanoControl2 MIDI binding map
  • Allows definitions in a binding map that refer to elements that have not yet been (and might never be) created in a session. When those elements are created (e.g a send, or a plugin) the binding will start to work.
  • Add a set-bank function to MIDI binding map support
  • Add optional threshold for catch-up with non motorised controls in generic MIDI surfaces. This is very useful when working with devices that vary in the "gaps" they may generate when sending a continuous fader motion (i.e. sending non-contiguous controller values). The default value, for example, does NOT work well with a Peavey PC1600X controller, but when tweaked, the faders work very well.
  • bindings to MIDI note on/off messages that involve non-toggle controls (e.g. transport) now do something sensible.
  • bindings to transport controls for "goto start", "goto end" and "play selection" now work)

MACKIE CONTROL SUPPORT

  • Quite a lot of work was done to polish up the revised Mackie Control support that surfaced in Beta4. The code has now been tested on the SSL Nucleus, Mackie Control and Mackie Control Pro, Steinberg CMC and Behringer BC* devices, and all work well modulo issues with the ALSA/JACK MIDI bridge. Specific details that were addressed included:
    • metering now works on MC Pro
    • fix V-Pot displays for Mackie Control
    • fix 100% CPU use when using Mackie Control other than SSL Nucleus
    • timecode display works

MIDNAM, Plugin preset & Program Changes

  • Some major reworking was done to integrate the handling of patch/instrument data, regardless of whether a MIDI track is being used to drive external synthesizers or plugin instruments. This is not complete, and may never be because the two concepts do not really fully align (plugin presets are NOT program changes). As part of that work, some other details of handling MIDNAM files (used to define programs for external synthesizers) were addressed:
  • fix search path for MIDNAM files
  • add MIDNAM data into patch change dialogs
  • fix lookup of MIDNAM patch data
  • save MIDNAM settings for each track
  • Stop s with unresolved s to stop errors on startup
  • add a General MIDI MIDNAM file

GUI BEHAVIOUR

  • Add option to not use gradients when rendering waveforms
  • Outline fade in/out handles in black
  • Provide some numerical data during automation trim (range) drags
  • Shift-click on shuttle controller in wheel mode resets it to 1.0 (100%)
  • Move binding for duplicate-region to secondary-d rather than d, use d for draw notes mouse mode
  • Introduce the idea of a "default transport speed", used whenever Session::start_transport() is called. Only the shuttle controller alters it, and even that only alters it in wheel mode, which means that stopping the transport does not rever the default speed back to zero. To get back to zero either switch the shuttle controller back to sprung mode, or change the speed back to zero
  • Keep latency dialog for plugins above the plugin GUI
  • Add a menu option and key press (F) in port matrices to flip the selected row and columns in the matrix.
  • Middle-click on a location clock still works even when the location/clock is locked
  • Filter the existing session chooser to .ardour files, as with the open session chooser.
  • Hide patch changes if they are too wide for the region at a given zoom level
  • Move delta-to-edit-point options to the main clock context menus
  • Make faders visually desensitised when their tracks are in automation-play.
  • Properly manage the splash screen, particularly on OS X
  • Add primary-modifier click on monitor knobs to go to -inf dB
  • Try to provide some rationality for region gain line visibility (and automation line visibility in general
  • Paste to the track under the mouse if we are using the mouse as the edit point, otherwise use selected tracks
  • Fix for plugin windows reappearing at (0,0) after ardour becomes the active app again on OS X
  • Remove beta page from startup wizard
  • In startup wizard, use dbl-click to activate "what would you like to do?" radio buttons, rather than click
  • Fix crash on zooming out too far
  • Grey-out patch changes on inactive channels rather than not plotting them at all
  • Sensitize region-related actions even in non-object mode
  • Provide dialogs to edit pan values numerically, at least for mono and stereo panners.
  • Simplify management of waveform visibility / shape / scale
  • Add option to disable autoscroll of editor
  • Fix for track height step losing 'grip' on the track being resized
  • Add translucent "shade" to playhead cursor
  • Thicken automation lines (makes dragging them easier, and looks better too)
  • Make more or less all left-hand-side treeviews use the same style in both the editor and mixer windows
  • Handle failure to start audioengine correctly, rather than get stuck in an endless dialog.
  • Force I/O selector windows to stay-on-top (experimental)
  • Fix display of region names that don't fit inside a region
  • When sounding notes on selection / note movements, play the note for as long as the mouse button is held dow
  • Darken light theme treeview text
  • Add option to add new range marker from the context menu without needing the keyboard
  • Slightly narrower faders in the editor track controls area

BUG FIXES

  • Opaque regions correctly overwrite anything in the mix buffer
  • Fix crash when sum of fade in + fade out is longer than the region
  • fix (very old) bug when evaluating automation curves at a position before the first point on the curve.
  • Gracefully handle LV2 plugins without a GUI
  • Always create short xfades when adding a region after a capture pass
  • Fix up various loose ends associated with the conversion to the "new xfade model"
  • Don't alter session search path when auditioning audio files
  • Avoid splitting unselected regions on the same track as a selected region
  • Make the "No selection = all tracks" button work
  • Improve display of timestretching in stacked layers mode
  • prevent x-axis movement of the end points of region gain lines
  • Re-implement URIMap to tolerate broken plugins that use the wrong context to map MIDI event types
  • Fix clear-selection behaviour
  • Don't reset region fades to default after a playlist edit unless the fades used to be part of an xfade and now no longer are
  • Fix a variety of issues with mouse cursors
  • Slightly unpleasant hack to stop control points being unselected when you ctrl-drag a selected point in order to do a push drag.
  • Correct rounding issues when converting between audio frame and unit/pixel values
  • Handle discontiguous control point selections properly when dragging.
  • Allow movement of several vertically-colinear points at the same time.
  • Fix incorrect automation point drags when a drag is started with push held and finished without it.
  • Use the same logic to decide on step size when scroll-wheeling faders in the mixer and knobs in the monitor section
  • Fix subtraction math for ranges used when computing what data to read from regions/playlists
  • Fix uninitialised variable causing garbage output from panners in some cases.
  • When we rename a track, only rename its playlist if it has never contained any regions
  • Prevent latency measurement output buffer being silenced by cycle_end, to fix port insert latency measurement
  • Claim button release on patch change events so that editing a patch change does not also open the region editor for any selected regions.
  • Fix non-updated ordinary fade-outs during trim drags
  • Fix crash when creating a new session after session close
  • Make automation state management full locale-independent (so sessions can be moved between locales without messing up automation data)
  • Correctly handle plugins with variable input AND output when they are the first processor in a track/bus
  • Don't set TimeFXRequest done to true too early, fixes crashes after time stretching
  • Somewhat primitive implementation of allowing the edit note dialog to handle multiple notes
  • Try to correctly manage follow-playhead behaviour before and after playhead drags
  • Make crossfade edge drags undoable.
  • Make sure that regions created during AsTrack and AsTapeTrack imports are added to the master region list, otherwise if they are subsequently deleted they will be lost. This causes the undo record to go wrong as it references a non-existant region.
  • Commit one reversible command for the whole of an import, rather than one per region; makes MIDI imports into multiple tracks undoable in one step
  • Fix off-by-one in computation of crossfade lengths.
  • Set up layering correctly on compound playlists so that the regions on the compound list are arranged the same as on the original.
  • Fix incorrect display of automation lines after points are removed.
  • Don't change playlists of frozen tracks when changing the playlist of a route group
  • Patch from colinf to put the playlist / take name in the playlist button tooltip
  • Make "View >> Toolbar When Maximized" act immediately, i.e., even when already maximized changing this toggle changes whenever toolbar is shown or not;
  • Renames "Toolbar When Maximized" to "Show Toolbar" as it acts whenever editor has maximized space or not.
  • Escape angled brackets in playlist names for tooltips.
  • Handle failure of statfs to return available disc space on Samba shares mounted via GVFS
  • Detect filesystems mounted read-only when determining whether a session is writable
  • Make fit contents / show full range work for all selected tracks
  • Fit note range on adding regions to tracks during import
  • Colour lower stacked regions with a lighter colour and make it configurable
  • Fix some issues with toggling mixer-on-top status
  • Use preview filename rather than the first-alphabetically-sorted filename for preview in the import dialogue
  • Fix broken visibility and size management of piano roll keyboard + scroomer
  • Fix several crashes during shutdown
  • Never try to remove state from a read-only session
  • Fix crash associated with track freezing
  • Return silence from read_from_sources() if we try to read a channel that our source does not have (if replicate-missing-region-channels is turned off
  • fix restore of mute control state when loading session
  • Fix failure to load A2 sessions with a ControlOut.
  • Make switching between input+disk monitoring work "right" for MIDI track
  • Fix a bug that led to messages about notes already being on at program start because of a double seek with no read in between
  • Slighty brighten bar lines and slighty dim beat lines for easier visual distinction
  • Fix logic for setting mixer strip name button widths
  • Change option name to clarify that get_default_narrow_ms is applied to the mixer only
  • Store the topologically sorted order of execution so that even the single DSP processor case uses its
  • Adds an 'empty' preset to the preset drop-down list, so that plugins can be set back to the 'no preset' state rather than being stuck in the state of 'preset loaded and modified
  • Make sure we always copy Freesound imported files as well as MIDI ones
  • Clarify the meaning of the show-region-gain-envelopes option.
  • Tweak naming of various buttons and labels in the export dialog
  • Unify clamping of frames-per-unit values during zoom
  • Declick before the end of seamless loops, not after the end, so that loops are rendered accurately
  • Fixing issues with opening a browser for web-access
  • Fix reset of transport speed when seamless looping
  • Prevent the nastiness that occurs when the RHS editor list is dragged so that the pane handle "vanishes" into the tabs
  • Don't swallow left/right scroll events in a midi region view when in internal edit mode
  • Don't try to backup sessions from older versions of ardour that are also read-only
  • In export format dialog, show preview of generated part of description
  • Revert to using SSE mix-buffers-with-gain rather than simple one.
  • Fix stem export. The capturing processor of routes was never removed, and was restored inactive, which made stem export fail.
  • Change logic for compiling export format descriptions from incomplete formats
  • Increase the export "chunk size" to speed it up over 10% at least in some situations
  • Remove some excess commas from the export format description
  • Drastic rethink of the relationship between remote control ID and route order keys
  • Don't specify real-time priority when starting JACK
  • Be more graceful if there is an undo record which references a non-existant object; this shouldn't happen, of course, but there was a bug in some early betas which made it occur
  • Allow new idle visual changer calls to be requested while the current changer is executing (fixes auto-return even when zoomed in)
  • Fix some oddities with playhead movement when locating during roll
  • fix rec-enable toggle with the Korg nanoKONTROL
  • Set number of process thread buffers based on run-time-discovered num-cpus
  • Fix missing lock causing erroneous disk space reports when dragging audio clocks.
  • Don't start a clock drag if we drag to the right of the numbers.
  • Fix crash on trying to snap to markers when there aren't any
  • Don't rename playlists on rename track if the track has >1 playlist
  • Do not deactivate the meter in a frozen track
  • Fix Jack transport master after session load.
  • Report correct time instead of old time when locating as Jack transport master.
  • Set fader and plugin parameter automation curve default values
  • Don't spin on Session::timecode_transmission_suspended() if disconnected from JACK because it will never be re-enable
  • Use correct event struct when handling key events in patch changes
  • Flip semantics for next/prev bank so that the direction in numerical terms matches next/prev patch (i.e. up arrow goes to higher numbers)

BUILD & CODING FIXES

  • update to Suil 0.6.4 for support of plugins with X11 and Qt GUIs
  • change build system to support complation with CLANG (via setting the CC and CXX environment variables)
  • remove more than 500 unnecessary #included header files, thus speeding up compilation a bit
  • use chrpath to reset RPATH within bundled libraries so that the runtime linker will not go looking in places set by parts of the GTK build stack
  • adjust bundling/packaging to make SUIL (and thus several LV2 GUIs) work
  • fix resample-session.pl to work even if there is no automation directory
  • Use std::string instead of PBD::sys::path
  • use various g_**** functions rather than versions from PBD::sys namespace
  • fix osx build script when the path to the plugin folder contains spaces
  • OS X version can now successfully find an existing running instance of JACK
  • fix substitution and install of session templates
  • define CHARSETALIASDIR (again) to stop various bits of the GNU stack from loading a charset.alias file that we did not provide
  • converge on 3 different search paths (ARDOUR_CONFIG_PATH, for configuration files; ARDOUR_DLL_PATH, for included shared libraries; ARDOUR_DATA_PATH, for other included data files), all of which can be controlled from the environment
  • Use a map of region names to speed up RegionFactory::new_region_name, which was a performance bottleneck

TRANSLATIONS

Updated Russian and Spanish translations.

CONTRIBUTORS

Carl Hetherington, David Robillard, Colin Fletcher, James Roberts, Antony Gelberg, Dave Flick, Rodrigo Severo, Marcin ?, Tim Mayberry, Lynde ?, Roy Vegard, Thomas Vecchione, Thorsten Wilms, Sakari Bergen, Johan Mattsson, JaaxxOne, Philippe Demartin, Alexander Prokoudine, Pablo Fernández and Paul Davis.

Nice !!

A huge improvement to beta4

New lv2 gui support rocks.

truly impressive fix list for only two months!

continues to have frequent crashes of OSX, I can not deterninarne a real cause, however good improvement of the graphical

@gusta: we need backtraces. it is really useless and frankly incredibly irritating to get reports like “it crashes a lot on OS X”. we want to get those bugs fixed. if people don’t report them and provide information that lets us track them down, they can’t be fixed.

one thing i am aware of is that there seems to be a general issue with drag-based stuff on OS X. investigation will commence in 3 … 2 …

guesta,

You don’t necessarily need to know the steps how to reproduce a problem in order to report a bug.

IIRC Mac/OSX calls “backtraces” crash-reports.
Open Applications->Utilities->Console.

When ardour3 crashes, some messages about it will appear there, and it should mention a “crash report” file in
“$HOME/Library/Application Support/CrashReporter/” or “$HOME/Library/Logs/CrashReporter” which contains the actual backtrace. Open a ticket at http://tracker.ardour.org and attach the file.

It seems to me that Mackie Control support actually works even much better than on Beta4a. And my CPU is now much less busy than before. :slight_smile: Thanks to Paul and the developpers

paul, I have clearly written that I can not determine a cause, for the simple fact that these crashes seem completely random, not related to a specific situation or specific transaction. I do not exclude that the problems are upstream of ardor, perhaps on the jack in the past has made me suffer (and not a little) on Linux (because of my transition to mac) but with the 2.x did not have many of these problems .
However, I see that is having many positive comments, so work is going well, I like, I just do not seriously reisco using this sw.
congratulations for the plugin au!

Congrats! It looks awesome. My pupils started learning audio production with A2, then had to move to Reaper because of midi. I will focus on A3 as soon as it’s out!

I’m having this problem with beta5 on Ubuntu 12.04: http://i.imgur.com/h5jNg.png

It seems to fix when I zoom in and then out again.

this is already in mantis.

thanks paul

btw, is it possible for midi channels to set up like “automatically arm for recording when selected”? It speeds up things a lot.
last question: can I set up midi tracks to “receive in all channels, write in 1, or 2, or x”? This too increases workflow for me. Congrats again
Pedro

@supercoco74: feature requests go to http://tracker.ardour.org/ this is not possible at present (and, btw, i’m not totally clear on why it would be MIDI only)

sorry paul, I’m a bit anxious, A3 looks very promising!

Hi All
Just tried install Ardour 5 and got the missing library thing.
Here is a printout of missing stuff.


Ardour_x86_64-3.0beta5_13072/lib/panners/libpan2in2out.so: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11' not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libardour.so.3) Ardour_x86_64-3.0beta5_13072/lib/panners/libpan2in2out.so: /usr/lib/libstdc++.so.6: versionGLIBCXX_3.4.11’ not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libaudiographer.so.0)
Ardour_x86_64-3.0beta5_13072/lib/panners/libpan1in2out.so: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11' not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libardour.so.3) Ardour_x86_64-3.0beta5_13072/lib/panners/libpan1in2out.so: /usr/lib/libstdc++.so.6: versionGLIBCXX_3.4.11’ not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libaudiographer.so.0)
Ardour_x86_64-3.0beta5_13072/lib/panners/libpanvbap.so: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11' not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libardour.so.3) Ardour_x86_64-3.0beta5_13072/lib/panners/libpanvbap.so: /usr/lib/libstdc++.so.6: versionGLIBCXX_3.4.11’ not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libaudiographer.so.0)
Ardour_x86_64-3.0beta5_13072/lib/surfaces/libardour_generic_midi.so: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11' not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libardour.so.3) Ardour_x86_64-3.0beta5_13072/lib/surfaces/libardour_generic_midi.so: /usr/lib/libstdc++.so.6: versionGLIBCXX_3.4.11’ not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libaudiographer.so.0)
Ardour_x86_64-3.0beta5_13072/lib/surfaces/libardour_mcp.so: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11' not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libardour.so.3) Ardour_x86_64-3.0beta5_13072/lib/surfaces/libardour_mcp.so: /usr/lib/libstdc++.so.6: versionGLIBCXX_3.4.11’ not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libaudiographer.so.0)
Ardour_x86_64-3.0beta5_13072/lib/surfaces/libardour_osc.so: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11' not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libardour.so.3) Ardour_x86_64-3.0beta5_13072/lib/surfaces/libardour_osc.so: /usr/lib/libstdc++.so.6: versionGLIBCXX_3.4.11’ not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libaudiographer.so.0)
Ardour_x86_64-3.0beta5_13072/lib/libardourcp.so: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11' not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libardour.so.3) Ardour_x86_64-3.0beta5_13072/lib/libardourcp.so: /usr/lib/libstdc++.so.6: versionGLIBCXX_3.4.11’ not found (required by /home/studio/ardour/ardour-5/Ardour_64bit-3.0beta5_13072/Ardour_x86_64-3.0beta5_13072/lib/libaudiographer.so.0)

!!! ERROR !!! - Missing library detected!


Sure I found a way round this last time but cant remember now.

Cheers
Bob

Great Work! I use Ardour every week to rehearse with my band. Yeah, no recording, just adding effects to my Bass so I don’t have to buy an amplifier. Sounds awesome :slight_smile: When A3 is released I’ll raise my subscription to $20/month. Thanks for the great software guys!

@wavesound: Your system is using a way too old version of the standard C++ library. What distribution is it, and what version?

OMG i am so curious when the next release is going to be and what’s happening.

This is really great software! And getting better with every new installation. Probably one of the best DAW you can run on Linux, made by Pros!