[Ardour-Users] Ardour 3.0 beta5 released

Paul Davis paul at linuxaudiosystems.com
Mon Jul 23 12:41:56 PDT 2012


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:


   - OS X Intel (32 bit build) http://ardour.org/files/Ardour-3.0-13072.dmg
   - Linux 32 bit http://ardour.org/files/Ardour_32bit-3.0beta5_13072.tar
   - Linux 64 bit http://ardour.org/files/Ardour_64bit-3.0beta5_13072.tar

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ardour.org/private.cgi/ardour-users-ardour.org/attachments/20120723/d732fa16/attachment-0001.htm>


More information about the Ardour-Users mailing list