[Ardour-Users] Ardour 3 Beta 4a released
Paul Davis
paul at linuxaudiosystems.com
Wed May 23 14:56:24 PDT 2012
Ardour 3 beta 4 arrived after more than 3 months of development activity,
and more than 1000 commits to the source code repository. Beta 4a followed
rapidly after a deadlock was discovered when pasting regions, and
incidentally gained support for MIDI region export along the way.
- Linux 32 bit
http://ardour.org/files//Ardour_32bit-3.0beta4a_12406.tar<http://ardour.org/files/Ardour_32bit-3.0beta4a_12406.tar>
- Linux 64 bit
http://ardour.org/files//Ardour_64bit-3.0beta4a_12406.tar<http://ardour.org/files/Ardour_64bit-3.0beta4a_12406.tar>
- OS X Intel (Tiger, Leopard, Snow Leopard, Lion)
http://ardour.org/files/Ardour-3.0-12406.dmg
This is the last beta release before 3.0 is actually released. As of this
release, 3.0 is now in "feature freeze". There are many bugs to fix and UI
details to fix/improve, but there will be no new functionality added before
the release. We know that there are many things about 3.0 that need to be
improved, and they will be, but the big push is now to get to a release
that we can stand behind and get more users switched over to, thus allowing
us to move to post-3.0 development.
As usual, there are a gaggle of new features, as detailed below.
Significant New Functionality New Crossfade Model
In this beta release of Ardour3, we have switched to a new model for
Crossfades that is derived from work done by Ben Loftis of Harrison
Consoles for Mixbus. The older model, which was inherited from Ardour2, was
quite complex at the code level and removing it makes other things simpler
too. The two models are very different, however:
- In the old model, a crossfade was an independent object that described
the gain relationship between the start of one region and the end of
another.
- In the new model, crossfading simply uses the existing fade in (or
out) curve of a region, and applies a complementary fade out (or in) to any
material "below" the region. Put differently, in the new model crossfading
does not happen between two specific regions, but is instead the gain
management applied to manage the start (or end) of a region and anything
"below" it.
The new implementation reduces the number of standard fade shapes to just
5: Linear (for crossfading strongly correlated audio), Constant Power (for
general purpose crossfades), Fast, Slow and Symmetric (the last 3 all have
a different feel, but are somewhat "musical").
It is now possible to drag the end of an xfade that isn't defined by the
start (or end) of a region, and sensible things will happen. More work is
planned for the future to allow full, easy and fast control of crossfades.
The old crossfade editor is no longer accessible, and will be replaced in
the future by a simpler but more powerful tool.
*If you have an existing Ardour 3 session that uses crossfades for specific
effects, you should make a copy of the entire session folder before using
it with this release. *
Reimplementation of support for Mackie Control Protocol devices
Ardour2 and Ardour3 have had existing support for devices that use
something like Mackie Control Protocol such as the Mackie Control Pro, the
Logic Control and the BCF2000. Unfortunately, this support was somewhat
buggy and had a number of issues. As a result of unexpected access to the
relatively new Solid State Logic Nucleus control surface, I decided to
invest the time and effort to revamp the support for devices like this. In
the end the code has been almost entirely reimplemented. So far we have
only really tested with the Nucleus and the Steinberg CMC series, but
before 3.0 is released we plan to ensure complete out of the box
functionality with the Mackie Control Pro and Behringer BCF2000 as well.
Well-tested and operational features:
- Support for both Mackie and Logic variants of the control protocol
- Full access to gain/mute/solo/pan, bank-by-channel, bank-by-track,
metering
- Full fader and LED feedback from Ardour
- GUI dialog to bind any surface button to any Ardour function
- Shuttle/Zoom with the jog wheel
- Strip locking
- Per-device info files
- Profiles allow task-specific button bindings for different workflows
Specifically for the Nucleus, Ardour now supports ipMIDI internally which
provides an extremely flexible, lightweight and reliable data path to/from
the surface. LV2 Plugin API Support
- Ardour now uses the released versions of the lv2core, serd, sord,
sratom, lilv and suil libraries, and no longer requires pre-release
versions of these libraries. It will no longer build against old versions
of these libraries and no longer has any support for the slv2 library that
was replaced by lilv.
- Many fixes for support of different types of LV2 GUIs (plugin
editors/interfaces)
- Support for the following extensions:
- worker thread, including sample-accurate synchronous execution
during export
- event MIDI in/out
- atom MIDI in/out
- instance-access, data-access
- state, including full non-destructive file saving, and saving of
all atom types (via lilv)
- uri-map, urid
- ui, with support for Gtk/Qt/X11 UIs (via suil) and external UIs
- ui control "touch"
- full round-trip communication between ui and plugin for messages
(e.g. atoms)
- display plugin and port documentation in UI as tooltips
- presets (loading only)
- latency
- support for ports specially designated for BPM and freeWheeling
Other
- support a grid of beats/64 and beats/128
- Freezing tracks is now more generally possible, but will only operate
on the processing in a track/bus as far as the the first send/return/insert
or a plugin with a different I/O configuration than the input of the
track/bus.
- Copying of sends is now better behaved, including retaining the same
connections as the original (with new names, obviously)
- Add user metadata. User metadata is edited from the same dialog and
read/writable using the same mechanism as session metadata, but it is
stored in the ardour.rc file instead of with the session. Importing
metadata from another session does not change user metadata.
- Add 44 MIDNAM files for a variety of external hardware synthesizers,
thus providing named patch/program management for this hardware
- MIDI region export
GUI Improvements
- Remove magic number voodoo when saving zoom focus/snap settings to
instant.xml etc. (this has a minor breaking-behaviour for existing
sessions)
- Keep track of grid type/settings in and out of note edit mode and
switch back and forth, thus allowing independent grids while working at the
note or region level
- Make region gain line visibility global, not per-region
- Display fader and send gain automation in dB using a logarithmic
fader.
- Add base MIDI map for the Behringer BCF2000 in Mackie emulation mode.
- If there is one invert button for many channels, always use a menu; in
this case, also partially light the invert button if only a subset of
channels are inverted
- Show the number of channels in brackets when there is a single invert
button for multiple channels
- Make route group dialog resizable
- Make ArdourPrompter entries resize when the window is resized, rather
than the label
- Mark rec enable controls as toggling, thus ensuring proper behavior
with various controllers
- Always show loop markers when looping is initiated
- Add motorised attribute to DeviceInfo for generic MIDI maps so that we
can specify if a surface is motorised, and as such will keep its phyiscal
controls in sync with Ardour's controllables at all times. If this is not
the case, we enable the code to avoid jumps when controls and controllables
are out of sync. Mark the BCF2000 as motorised
- Expand just entry fields when the metadata dialog is expanded and fix
label assignments
- Tweaks to improve the Freesound browsing/import dialog
- Allow the number of recent sessions to be configured
- Put a tooltip in the recent session display.
- Remove submenu-only items from the keybindings dialog
- Move text in rulers up by a few pixels for MUCH better appearance
- Make the close button in the config info dialog work.
- Handle default session dir a little better
- Force the creation of a new session on first run of Ardour 3
- Visual state management now uses ctrl-Fn (Fn is a function key such as
F1) to save, Fn to goto
- Save and restore nudge clock value
- Reduce the width of the line separating tracks in the editor summary
line (by-product: slightly more space appears to be there between the
colored blocks representing regions too
- Make toggle MIDIControllables with program changes only respond to the
appropriate program change
- Make MIDI Patch Manager search in $user_config_dir/patchfiles for
midnam files as well as the per-session equivalent
- Add tooltips to plugin controls in the processor box
- Relabel the "precise" button does in the timefx dialog to make it
clear what it does
- Don't leave internal edit mode when clicking on an automation region
view
- Make stereo panners move right with the mouse
- Reshow time selection when zooming in object-range mode
- Make automation thinning factor controllable at run time
- Fix some packing issues in the monitor section when using
high-channel-count master/monitor busses (eg. with ambisonics)
- Force small screen profile if ARDOUR_NARROW_SCREEN is set in the
environment
- Add Primary-Shift-P as shortcut for preferences dialog
- Support adding plugins via keyboard (Enter).
- Remove seemingly not-that-useful menu item, since edit mode can be
changed from the drop-down in the toolbar.
- Remove a couple of uses of the word Route in the UI.
- Make it possible to select very short regions
- Use Later / Earlier in descriptions of nudging and some playhead
movements, instead of Forward / Backward
- Display hardware IO individually in the port matrices unless we are in
_show_only_bundles mode.
- Embolden the labels of connection matrix tabs when they have
connections
- Reorder editor route list columns to put visible and active first
Internal Improvements
- The installer will now create a link to the program in /usr/local/bin
to allow starting from the command line.
- If the installer or uninstaller is not running as root, they will now
attempt to use both sudo and su to get root access. This means double click
install now works on systems that don't have sudo installed or configured.
- Fix Ardour/VST build
- Drop boost::signals2 and replace with a home-grown solution which
continues to rely on boost::function and boost::bind for the hard stuff.
- Fix up a substantial mess with the operation of toggle-zoom and
related actions, partially caused by XMLNode semantics
- New design for processor drag-n-drop
- Tweak audio track importer to use the modified xml++ API for XPATH
searching
- Some deep changes to xml++ in which we retain a C-level xmlDocPtr as a
member of an XMLTree objects. this allows us to do repeated XPATH searches
(as in the midnam parser of libmidi++) without constantly rewriting an
entire tree into memory to recreate a new xmlDocPtr with which we can
search.
- A lot of tweaking and fixing for the MIDNAM parsing code so that it
correctly handles all 44 sample files from digicake.com/midnams.
- Draw all automation points, rather than trying to use a heuristic to
show some at any given zoom level.
- add "centrally-parsed" property to MIDI::Port so that we can avoid the
MidiUI loop from handling input for every MIDI port that Ardour creates
- various fixes based on feedback from Coverity
- A few tweaks to make Ardour build in GCC -std=c++0x mode
- A few tweaks to make Ardour build with GCC 4.7
- Use a list of ControlPoints to hold the automation selection, rather
than a time range. Simplifies the code a fair bit simpler, and should fix
some unexpected behaviours, especially when cutting automation points.
- Use a read-write mutex for playlists and remove the single bit of
design that used to require a recursive mutex.
- Clarify behaviour of Region::read (overwrites its buffer) wrt
Region::read_at (mixes into its buffer). Fixes various Rhythm Ferret bugs.
- Remove virtual inheritance of sigc::trackable by Receiver and
AbstractUI, done by changing Gtkmm2ext::UI to use composition (HAS-A)
rather than inheritance (IS-A) for Receiver
- Use correct synchronization when starting up a BaseUI event loop
thread so that tests that start/stop quickly do not encounter a race
condition
- Add --generic flag to wscript to facilitate 32 bit builds on 64 bit OS
X
- Stop using old GNU config.guess script and use python's builtin
os.uname() values
- Fix crashes on certain processors by correctly using posix_memalign()
in general, and specifically in connection with assembler code that saves
the FPU flag state.
- Major rationalization of use of search paths. ardour now has just 4
functions used to define how external resources are located:
ardour_config_search_path() (for system or user specific configuration
data), ardour_data_search_path() (for machine, user and system independent
data), ardour_dll_directory() (base directory where shared libraries are
found) and user_config_directory(). These are now used throughout the code.
the config, data and dll paths/directories can be overridden by environment
variables. the user config dir is added as the first element of the first
two search paths, and use selectively when searching for a few other
things.
Bugs Squashed
- Slightly tweaked patch from colinf to avoid crashes on out-of-range
LADSPA port indices
- Fix crash on stem export of 4-channel tracks
- Prevent duplication of search path elements when symlinks are involved
- allow shortcut/accel for set-mouse-mode-draw to work
- Fix auto-connect of bus outputs
- Fixes some misplaced BBT-time based pastes.
- Fix up naming of Sends/Returns when copying them
- Fix crash when display MIDI region context menu
- Fix crash when setting an LV2 preset that refers to ports via
incorrect names
- Use an AutoSpin rather than a combo box for plugin parameters marked
up as scalePoint with fewer labels than there are possible values for the
parameter
- Prevent a deadlock when removing an aux send
- Fix bug in decoding URL's
- Fix reads off the end of the data array during transient analysis
- Fix reference to MIDI track after it has been deleted
- Fix double-delete of peakfile descriptor
- Fix failed assertion with plugins with only an audio output are
inserted on a MIDI track
- Don't abort if mis-matched processors are found; a vaguely
satisfactory workaround for crashes when loading sessions with missing
plugins.
- Don't crash when hovering over a MIDI region
- Possibly fix loss of MIDI notes when changing existing tempo marks
- Fix freeze operation crashes by obtaining process buffers in freeze
thread (and then dropping them) rather than just setting up the per-thread
object that stores them
- Fix linear interpolator to avoid error accumulation.
- Get the _note_mode set up correctly in a MidiDiskstream before the
initial buffer fill, so that percussive mode tracks play properly
- Fix crash during region spectral analysis
- Fix the focussing of newly-created marker name entries when
Config->get_name_new_markers() is true.
- Stop crash if an error message is generated before the style RC file
is loaded
- Don't load irrelevant symlinks when trying to discover control
protocol shared objects
- Fix unnecessary backups of session files.
- Imported sources should be marked as non-writable and non-removable,
always
- When resetting the import dialog based on selceted track counts,
change the file chooser filter to match a clear selection of a a particular
track type
- Make solo lock/safe button only respond to mouse button1
Translations
- German update from Edgar Aichinger
Contributors
Carl Hetherington, David Robillard, Colin Fletcher, Nick Lanham, Joern
Nettingsmeier, Paul Davis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ardour.org/private.cgi/ardour-users-ardour.org/attachments/20120523/8ab9c895/attachment-0001.htm>
More information about the Ardour-Users
mailing list