[linux-audio-announce] Ardour 0.9beta22 released

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-audio-dev@...>, <linux-audio-announce@...>
Date: Sunday, December 19, 2004 - 12:18 pm

I am happy to announce the release of Ardour 0.9beta22. With over a
hundred notable new items, and only a handful of bug fixes between
this and 0.99, this is a significant release of Ardour.

Ardour's bug tracking database continues to have 260+ live bug reports
and feature requests, and there are likely twice that number still
present in the program, but we identified those that will be fixed for
the 1.0 release in order to try to gain control of the release

0.99, which just might make it out by Christmas (December 25th, but
don't hold your breath), will be the endpoint of code development for
1.0 per se - the difference between 0.99 and 1.0rc will be related to
release engineering (making sure that the install of Ardour does all
that it should).

Fetch it here:



* Added support for midi parameter feedback. When enabled, controls
that are bound to incoming midi events will send out that event
when modified. This lets you control generic midi control surface
with motor faders and/or led encoders (like the incredibly
affordable Behringer BCF2000, which was used for testing), to match the internal
state. Note the extra/changed options in the option editor's midi
tab. Also note that automation playback does not yet send midi feedback.

Reminder: to bind a fader or bar-control to midi, do a Control-Middle-Click
on it, then send some midi control.

* Added generic midi bindability for mute, solo, and rec-enable controls.
to do it, you can do Control-RIGHT-click on the mute and solo
buttons (the normal binding click is taken on these buttons for other functions).
For the Record-enable button, it is the normal ctrl-middle-click.
You can also pick it from the context menu of the mute button. A menu
will be added to other buttons later.

* fixed some midi prompter dialog issues

* fixed some midi binding state saving issues

* change entire buffer management scheme to be (more) RT-safe

* add -V/--novst flag to avoid using VST even if it
was compiled in

* templates are mpeinstalled

* major changes in thread handling to fix some serious errors in the
way ardour handles threads when exiting.

* make export work when sync'ed with JACK

* add "timecode-source-is-synced" option to ardour.rc(.in)

* new playlist selector (uses a tree structure in a scrolled
window, instead of menus)

* fix bug with MMC rec-enable handling (only odd-numbered tracks
could be enabled)

* make region export progress bar move in the right direction

* more MTC slaving fixes and improvements (not done yet)

* remove wrong-thread-calling of Session::clear_event_type(),
which should help a number of loop-related crashes

* remove erroneous use of "abort" in function call

* new playlist selector

* Automake-1.7 or higher is required for libmidi++ now. Should be pretty
standard on distributions by now.

* add "nudge by capture offset" operation for regions

* enlarge playhead/edit cursor arrows a bit

* avoid duplicate keyboard target registration

* pay attention to "virtual" window enter/leave events,
but continue to ignore "inferior" ones (fixes many
keyboard focus issues)

* cancelling tempo/meter create dialog doesn't insert
a default tempo/meter marker

* tempo/meter create dialogs have minimal WM decor, and
use standard ArdourDialog API

* 2d panner fixed in many ways (still not to my taste and
not really correct)

* context-click on panner shows context menu (Bypass is the only
entry so far)

* general panner state load/restore fixes

* master outs added to connections menu

* added optimizations for peak metering (use of fabsf, flag
constants as floats, avoid implicit double/float casting)

* handle disk over- and under-run errors in the GUI, and be more
comprehensible to regular users.

* remove zoom changes from the undo/redo history

* fix panning bypass for 2d panner

* fix stereo panner "mute" menu item so that it doesn't
toggle panner mute state every time it pops up

* add "OK" button and remove window decoration from "can't
connect to JACK" dialog

* sessions still load when audio files are missing or corrupt

* complete redesign of slave-following design

* stop disk-(over|under)run handler from executing in the
wrong thread

* fix appalling C/C++ bug preventing proper use of
MIDI port tags

* make solo/mute button mouse bindings more consistent
with rest of interface (Ctrl-middle click is now
used for MIDI learn here as well)

* add solo button context menu

* add new MessageWithConfirmation object to libgtkmmext

* fix crash in handling DiskOverrun or DiskUnderrun messages

* correct region fade in/fade out curves after split

* fix complete loss of all optimization flags

* added patch to allow snap-to-SMPTE-frames

* add redo-ability of automation track "clear" operation

* add optimization to AutomationList::_eval, and use
same design in Curve::_eval

* fix failure to use a search path when looking for templates

* fix inserting zero-input plugins (divide-by-zero error)

* improve sync-with-JACK after MTC slaving breakage

* session events are no longer queued during session loading,
which should reduce or eliminate JACK kicking ardour
during startup. instead, these events are now processed
by the GUI thread as the session is loaded. this stops
the process() callback from potentially having a long
list of things to do when its first called, thus causing
JACK zombification.

* recover-from-crash functionality

a) all audio files get a header written into them at creation
b) when session rec-enable is turned on, we store information
about the files we'll be using for recording
c) if ardour (or the computer) crashes during capture, ardour
discovers this information, and uses the actual
size of the audio files to modify their headers.
new regions are then created and added that
correspond to this data.
d) there is GUI dialog to check on the user's wishes as to
whether or not to use this "pending capture"

* clear-all-markers and clear-all-ranges no longer crash
with no session

* "duplicate client/no jack server" dialog grabs focus
for its "OK" button

* change all of libardour + gtk_ardour to use types
(uint32_t etc.) and for printf-style tags. a few
"int" declarations remain.

* redesign + reimplement plugin input/output count handling. try
it and see. i think its way better. your mileage may vary.

A note on the new scheme:

a) sends are ignored entirely in figuring out
plugin configuration. they send a signal
*out* of the route, and have no effect
on the flow within the route, so this
seemed right to me.

b) the first insert (plugin or port insert)
is configured the match the input count
of the route

c) then we work *backwards* through the inserts
to make them match the configuration of
the previous insert. the output configuration
of the last insert is left "free".

d) we recompute in/out counts whenever we
- add an insert
- remove an insert
- reorder inserts
- change the input configuration of the

e) if the computation "fails" (i.e. no
way can be found to make them work),
the order is left as is, and an error
is delivered via the GUI.

* fix ancient bug in computing lengths of overlaps under 1 of
the 4 possible types of overlaps. this fixes problems
with chunks (and possible range ops) that extended to
the end of the session (and beyond)

* automation tracks now have some modest logic for handling
height changes. alas, i can't hide the "expansion arrow"
when i want to.

* there is now a context menu for the region list display,
complete with "Hide", which will move the region into
a special subtree titled "hidden". I am still working
on what a "Remove" option should actually do.

* selecting a region in the region list selects all
regionviews that are considered "region-list-equivalent"

* mouse mode buttons never end up with 2 active at the
same time

* fix for new insert in/out counting scheme
as it affects port inserts
* libardour: 0.843.2

* fix deep order-of-operations problem that prevented
Session->{Open,Recent,New} working with new plugin in/out code.
* delete failed redirect, not just plugin, when adding a new plugin
* fix for crash at session close caused by list iterator botchups
(thanks to nick murtagh for discovering this one)
* (in previous un-announced commit) patch from nick mainsbridge
for crashing bug induced by tempo change

* JACK sync is mostly working again

* new, not necessarily improved Route::_reset_plugin_counts()
(still a work in progress, debug output generated)

* fix for crashing bug when deleting a plugin-based redirect

* every use of the %f specification is now
bracketed by enforced use of the POSIX
locale (for libardour; GUI is still 100%

* main transport clocks shown meter+tempo in BBT mode

* CD markers+CD TOC/CUE patch from Nick Mainsbridge

* all connections to Session signals made by editor
are dropped when session is closed (avoids
title bar being reset to show session name)

* add new "mtc_qtr" signal to libmidi++, emitted every time
an MTC quarter frame message is received.

* redesign MTC slaving to sample apparent master speed
from the process callback, rather than set it
from the MIDI signal handlers.

* attempt to use jack_client_open(), if its available.

* alter --jack-client-name argument to be just --name, in
keeping with some other JACK clients.

* Ardour now handles JACK buffer size changes
- note: VST plugins are likely not correctly handled
at this time

* move JACK related material to its own top-level menu bar item

* better handling of JACK multiple disconnect/reconnect actions

* add control for JACK buffer setting to that menu

* make reconnect/disconnect to/from JACK sensitive at the
right times.

* finally (?) fix mouse mode buttons to work correctly
at startup AND change default bindings of "r"
and "g"

* remove "disk rate" metering stuff from GUI

* modularized mixer strip components internally

* renamed the Route Parameters window to Track/Bus Inspector,
redesigned to use tabs and the same context menu as
the mixer strips.

* rectified the plugin list handling in the mixer strip and
the inspector window.

* ardour_ui.rc is modified, so you might need to take action to get
it used. The simplest way is to copy the new one to

* fix long standing bug where closing+saving a snapshot saved
to the base version of the session. Thanks to Doug Mclain
sticking with this bug until we finally got to the
bottom of it.

* make the "ask about saving" dialog use the snapshot, not
session, name.

* new metering design paves the way for 1.0 work on multiple
meter points. the "pre" button is no longer a toggle, but
a N-state button, where N is currently 3 (input/pre/post).
Rec-enabling a track automatically switches to input

* if a diskstream cannot be rec-enabled because it has
no known connections, check with JACK in case it was
connected by starting from another JACK port.

* catch "no more port" errors when using "Connections"

* don't try to unregister non-Ardour JACK ports

* encapsulate and rationalize the way diskstreams
switch between audio files before capturing,
and how they store capture pending info. This
fixes several crashing bugs reported by Doug
over the last 10 days.

* handle block size changes for VST plugins. Note: some
VST plugins do not handle this correctly, and will
cause crashes.

* remove call to VST "resume" method from process() thread.
This *may* have some ramifications for certain
plugins that don't understand the intended thread
relationships for a VST host. Haven't seen them
yet myself.

* fix ordering of creating the "Master Outs" "Connection"
and the Master bus ports. This bug has led to some
potentially nasty stuff happening with session
files that appear to drop all connections from
tracks to the master bus. [ Not totally solved. ]

* Ardour will build on macosx out of CVS now, with the right
toolset installed on OSX and recent JACK CVS.

* playlists now have "frozen" property.
- frozen playlists cannot be selected by any track. they are
accessible only by freezing or re-freezing a track.

* rec-enable buttons and playlist selector buttons start out
insensitive if a track is frozen at load time

* some modifications to ArdourMessage to make it even easier and
more consistent to use.

* make "cannot record - no inputs" message more useful,
informative, explanatory and use ArdourMessage.

* remove middle click mutes regions behaviour (for safety)

* add behaviour to the meter button that is similar to
the mute/solo buttons:

shift-ctrl-click adjusts all metering
ctrl-button2-click is momentary
ctrl-button1-click affects mix group

* cleanup improvements (SIGNIFICANT)

- fix stupid bug that led to sources having paths
with "//" in them. this meant that string
comparisons between paths found using
a directory scanner and the source paths
would fail to see them as identical,
and would conclude that the file was not
being used withing the session.

- remove peakfiles for files that are moved
into dead_sounds

- actually unlink files when the wastebasket
is cleaned out

- search all snapshots to ensure that cleanup
does not remove files used by one snapshot
and not another.

* sample rate indicator now includes period size
indicator in msecs

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[linux-audio-announce] Ardour 0.9beta22 released, Paul Davis, (Sun Dec 19, 12:18 pm)
[LAA] nted announcement, schoappied, (Thu May 15, 8:47 pm)