Another month, another Ardour3 beta! More than 130 fixes and changes since beta1, all documented below. Download at:
- Linux x86 (32 bit) binary package: http://ardour.org/files/Ardour_32bit-3.0beta2_11213-dbg.tar
- Linux x86_64 (64 bit) binary package: http://ardour.org/files/Ardour_64bit-3.0beta2_11213-dbg.tar
- OS X Intel binary package: http://ardour.org/files/Ardour-3.0-11213.dmg
Installing (Linux Only)
To install, untar the tar file you download, then in a Terminal window, run
Ardour is self-contained - it installs into /opt and will not touch any other files on your system except for adding itself to the desktop menu. An uninstall script is included (and will be used when you upgrade to beta3.
Important notes for any OS X beta testers
- You must be using JackOSX 0.89 (the latest release). Earlier versions of JackOSX will cause strange behaviour and/or crashes. Upgrading from existing JackOSX versions is recommended anyway, even if you are using it with Ardour2 or other software.
- If you want access to any hardware MIDI ports and/or other MIDI software on your OS X system, you need to start JACK with JackPilot and ensure that the CoreMIDI bridge is enabled in its preferences settings.
- As with beta1 and the zero-cost prebuilt versions of Ardour, plugin preset saving is disabled.
My hope is that there will be two more betas before Ardour 3.0. Beta 3 will concentrate on remaining matters of functionality that must work, and Beta 4 will focus mostly on polish and the first time user experience. I doubt that these boundaries will be strictly adhered to, tough.
- Completely new implementation of the audio clocks used throughout Ardour (for docs on using them, please see: http://ardour.org/a3_features_clocks)
- Lots of work on Ardour's handling of tempo and meter.
- tempo and only tempo affects the computation of frames_per_beat()
- allow tempo changes on any beat of a bar
- fix lots of bugs associated with dragging and place new tempo or meter markers
- provide config parameter to allow non-quarter note pulses; off by default; no GUI to reset it at this point
- Save templates as directories with plugin state. Unfortunately breaks existing Ardour3 session templates. They can be fixed by moving the .template file into a new directory with the name of the template (minus the .template)
- Re-work layering in possibly debatable ways. Preliminary documation at doc/layering.
- Add option to glue new regions to bars and beats
- On OS X, Ardour3 now uses ~/Library/Preferences/Ardour3 as its "user config folder", rather than ~/.config/ardour3.
GUI Tweaks and Fixes
- Label solo iso / solo lock buttons even on narrow strips
- Make activate/deactivate all only operate on visible processors (and also exclude the fader from its effect)
- add a signal so that if the Big Clock is closed, the edit window can grab focus back
- Remove solo buttons from the master route in the route list
- Remove panner altogether, if necessary, when configuring the UI panning
- Tooltips for mixer strip width and hide button
- Remove ghost notes when actual notes are deleted
- Reset a mixer strip's peak display when its route is changed (notably affects the editor mixer strip)
- Change label of audition button in region editor to "Audition" to indicate *how* it will be heard (via the audition bus, not in-place)
- Fix use of GTK Dialog windows, by (a) adding buttons to all actual Dialogs (b) using Windows for all non-dialog windows. Fixes problems for users of GNOME 3 where Dialogs do not have the usual window manager decoration, and so could not be closed.
- Fix mute display on session load
- Fix for AFL/PFL button misbehaviour
- Start autoscroll in from the right-hand edge of the screen if the editor list is not in view, so that autoscroll kind-of works in this situation
- Display underscores in plugin names correctly
- Fix autoscroll fudge calculations
- Remove code to zoom on up/down mouse movement when dragging the playhead
- Save location UI clock mode in Session instant.xml
- Make fader belts wider to take up maximum space and line up with things nicely
- Shift-ctrl-click on a mixer width button toggles width of all strips
- Fix partial visibility of piano roll when changing MIDI track height in various way
- Set up piano roll and scroomer objects before the MidiTimeAxisView height gets set up, so that their visibility can be initialised correctly
- New zoom button icons
- Set ellipsizing behaviour for mixer strip name button
- Add full name tooltip to name button
- Fix a number of fundamental issues with Gtkmm2ext::Prompter, mostly centered on bad behaviour when Enter/Return is pressed
- Allow Cancel button on route rename dialog to actually cancel
- Rename new send options to be more clear on the difference;
- Relabel "sends" button to say "Aux Sends" to be clearer on what it does
- Restore the functionality of the join-play-range button,
- Desensitize make-mono-regions as appropriate
- Add tooltips to editor region list column headers
- Add tooltips to the editor track/bus list column headers
- Add tooltips to the editor route group list column headers
- Fix column expansion behaviour of editor region list
- New configuration variable to control display of periodic MIDI messages (MIDI Clock, MTC)
- Gradient-ized waveforms
- Fix somewhat unlikely crash on doing add note; start drag to resize note; undo; finish drag to resize note.
- Do not show panner GUI in external send UI, to avoid confusion
- Consistent colors for selected treeview rows
- Fix scroll wheel handling on both gain faders and parameter controls in automation track headers
- Add monitoring column to route group list;
- Make click in blank area of route list and route group list cancel selection and/or name editing
- Add color editor button to editor route groups list
- Add "enabled" column to editor route groups list
- Clarify meaning of route group tab context menu items
- Remove visible "sound notes" button, and add a Configuration parameter to control this
- Fix setup of gain envelope visible menu item.
- Use same modifiers with the mouse wheel in the summary as in the editor
- Fix scroll-wheel direction in summary
- Fix, or at least improve, management of the editor toolbar when maximising editing space
- Fix reversed scroll in timeline rulers wrt editor pane
- Add middle-clock-on-range/marker-clock to locate there
- Tweak constants that affect whether/where trimming cursors are shown for MIDI notes, to avoid making it so hard to drag relatively small notes
- Make a few region/track context menu actions able to use the mouse location where the context click occured (insert-patch-change, paste )
- Fix comparison of beats to frames when deciding whether to show a patch change
- Improve layout and display of CD range info in location display
- Make the export ranges view expand with the export dialogue.
- Show generic plugin UI toolbar (for presets etc.) on LV2 UIs (except external).
- Show panner drag information tool-tip style, and also show it when the button is pressed to start a drag
- Make the MidiRegionSelection notice when its MidiRegionViews go away; fixes one source of memory corruption during MIDI edits
- Add select all / deselect all to timespan section of export dialogue
- Tweak up size+spacing of main menu bar info box
- Make sure that create drags make notes with a minimum length of 1 tick
- Use a Drag class for midi note selection, so that it gets autoscroll
- Remove OS X specific code for key editor binding displays
- Use the correct display for key accelerators (key "label" not key "name")
- Show pulse note type in tempo markers (optionally)
- Make Carbon GUI support for AU's optional at compile time
- Fixes for Windows VST support build
- Share code between native linux VST and windows/x86 VST support, where possible
- Implement the LV2 urid extension and remove implementation of (experimental) LV2 uri-unmap extension
- Support new URIs for LV2 presets (Old stuff continues to work for Calf, but it'd sure be nice if it would be updated)
- Implement latest LV2 state extension (0.4) (Corresponding patch to LinuxSampler available here: http://drobilla.net/files/linuxsampler_lv2_state_0_4.diff)
- Save references to external files in LV2 state as symbolic links
With this commit it is possible to archive sessions that contain plugins with complex file-containing state (e.g. Linuxsampler with a sample bank loaded) with any archive tool, e.g.:
tar -hjcf session.tar.bz2 session
Which will give you a fully self-contained archive of everything used in the session, so you can e.g. send it to a collaborator who may not have the same sample banks in the same place as you and it will work.
Code Changes/Bug Fixes
- Slightly unpleasant fix for creation of tracks from templates
- Fix erroneous setup of order keys when tracks have children: order keys relate to the actual tracks only, and ignore child automation views
- Fill extra channels if monitor sends have more outputs than inputs
- Re-add code to support do-not-record-plugins
- Add track-solo-toggle / track-mute-toggle to make them bindable to keys
- Sort session routes before trying to do the group tabs collection
- Provide and use mechanisms for resolving translation ambiguity
- Fix mis-ordering of MIDI events when merging MidiBuffers in-place
- Patch from colinf to fix build on gtkmm versions prior to 2.28
- Don't load program 0 on initialising a VST
- Fix crash on save caused by never having shown the locations editor
- Fix confusion with midi note selection and channel selection
- Use compiler-generated _LP64 macro to detect x86_64 rather than USE_X86_64_ASM
- Made region export default to use region gain and fades
- Fix failure to find export formats in packages
- Be consistent in the way we merge environment-set search paths and pre-defined ones
- Make Freesound support default to true
- Provide sensible default step and page sizes for AutomationControllers based on parameter max and min values
- Fix incorrect position of a copied region
- Fix up some logic so that we don't replicate the session dir path twice in the search path(s)
- Check that adding a port to an IO is ok with the processors in its route, and raise an error if not
- Centralize legal-session-name-checkng and include : and ; in characters that we disallow, because they conflict with search path conventions on *nix and windows
- Use session_name_is_legal for snapshots too
- Remove unnecessary silencing of unused plugin inputs; unnecessary as (LADSPA/LV2 at least) connect_and_run routines pass in silent buffers for inputs that are not in the ChanMapping. The explicit silencing also failed if the plugin had more inputs than any processor on the route
- Compute delta time correctly when appending events to an SMF object; the converter must be used to convert a source time, not a delta time, otherwise tempo / meter changes are not correctly accounted for
- Fix for most (all? we can dream ...) issues involved in #4399 (editing multiply-applies operations to playlists used more than once), and as a side-issue, fix playlist selection which broke when we hid Diskstreams inside Tracks by using orig_track_id() rather than orig_diskstream_id()
- Move note creation code into a Drag; fix snapping of note starts when drag-created
- Keep track of MIDI region's start positions in beats, to match the source, so that starts are not corrupted when tempos change
- Fix lack of marker/range display in marker/range list at startup, and tweak location display quite a bit to improve things
- Clarify stop-at-session-end behaviour
- Patch from roy vegard to stop feedback from causing jumps when a MIDI controller and ardour are out of sync
- Send sustain=off and all-notes-off when a MIDI track is muted
- Tidy up monitoring slightly so that it gets closer to matching chris goddard's truth table for the various different states.
- Grab bag of changes correcting and improving the way MIDI note on/off tracking is done. may/should fix a number of problem with spurious note-offs under a variety of circumstances
- Do not write sequential same-value automation data into a ControlList (bug fix)
- Thin AutomationList data when reloading from disk (similar code as Ben's from Ardour 2.X & Mixbus, but without user-adjustable thinning density at present).
- Move patch changes when inserting silence at the start of a model.
- Add configure option to raise a FP exception when a denormal is detected (--denormal-exception)
- Create Freesound working directory a little more lazily so that a Freesound directory doesn't appear in the user's home directory without ever using Freesound.
- Don't round control list events when x-scaling them; prevents large loss of accuracy with xfades when they are scaled to be small and then expanded again
- Use the correct flag for DAZ and default to using FTZ and DAZ denormal protection.
- Fix issues with export caused by exporting and disk butler threads working in parallel
- Miscellaneous other crash fixes.
- .de Richard Oax
- .en_GB Colin Fletcher ("Transport roll" => "Tally ho!")
- .cz Pavel Frich
Carl Hetherington, David Robillard, Andre Colomb, Roy Vegard, Robin Gareus, Mike Start, Colin Fletcher, Paul Davis