[ardour-dev] ardour-0.9beta27 released

Paul Davis pauld at vermouth.dreamhost.com
Sat Feb 26 18:36:04 PST 2005

Alas, we're still grinding out the remaining issues. There are still
some MIDI/MTC issues to fix before I am comfortable declaring
0.99. Because of problems with my laptop power supply (I hope!), it
will be several days before I can work on these. In the meantime, here
is a large list including some very significant bug fixes:

   * significant reorganization of inter-object signalling
       during region motion/trimming to scale correctly
       (prompted by a brush-mode-edited session with
        46 duplicate overlapping regions and 490

   * add key actions for each snap-to setting

   * add default keybindings for snap-to-beats (F9) and 
      snap-to-bars (F10)

   * move brush-at-mouse command (not brush mode) to Ctrl-b
     This fixes a problem with the first "b" in a brush
     motion from adding a region over the top of the existing
     one. The general problem of keyboard auto-repeat has
     not been solved, however.

   * correctly identify uppermost region when proxying a mouse
     event in a crossfade. this helps with a pathological
     test case that only wacko southern hemisphere types
     would ever come up with :))

   * radical overhaul of many aspects of multi-region motion	
     and deletion. these changes make several actions much
     more efficient and scalable to hundreds or even thousands
     of selected regions. however, they are also very deep
     changes, so its possible/probable that they have broken
     something else.

   * fixes for a couple of erroneous LockMonitor declarations

   * switch to per-playlist layer-op counters instead of time,
      to deal with cases where two layers receive the same

   * cleanup playlist data structure and code

   * minor fix in editor_canvas_events.cc (missing return value)

   * fix lifetime management problem for "instant XML" state
      (stuff that saves mostly GUI-related state to disk)

   * fix for massive bug in track buffer allocation, causing 4x
      more memory to be allocated than was intended.

   * dragging multiples regions leftward now stops when one
       of them hits zero. 

   * a couple of valgrind related fixes for lifetime-of-temporary issues

   * fix for a nasty bug found by nick mainsbridge using valgrind,
        that involved crossfade invalidation being ignored
	during a refresh (e.g. after a region move), which
	on (at least) gcc 3.4 can lead to *cough* notable problems.

   * patch from Sampo to fix several issues with paths, session names
     etc. Use glibc's canonicalize_file_path() to fix several
     potential problems. Ron Parker, this one should be for you :)

   * fix hanging-design-assumption thread/race problem with peakfiles.
     This code was written with the model that the peakfiles got
     built, then read. When Jesse added dynamic display of the
     recorded waveform, this assumption was broken, and it became
     possible for the peakfile reader and writer to interfere with
     each other via the FILE* used to access the peak data.

     This has been changed to use the ::pread() system call as has
     always been used with audio regions.

   * fix memory leak that caused rapidly growing memory size when
   * Fixes to libardour to use realpath().

   * Fixes to gtkmmext for new session dialog path handling.

   * small fix in bbt calculations to get better results when snapping to  
     beat subdivisions when frames_per_beat_subdivision is not an integer

   * simplified constrained dragging:
        dragging a control point with button two will limit the movement to
	  -strictly vertical if the drag movement is bigger in the y-direction,
          -strictly horizontal if the drag movement is bigger in the  

        There is no longer a special modifier key for vertically restrained  

   * when entering and exiting regionviews with visible gain
     envelopes, show/hide control point as per automation tracks.

   * correct placement of new (clicked) region gain control points
   * don't brush a new region over the original

   * change height of "in-progress" regions/rects while recording
     if track height is changed

   * when splitting or separating regions, correctly select
     just part of the parent region's gain envelope. also
     added a fix to XML loading code to fix broken
     end points of region gain envelopes caused by
     incorrect implementation of the above issue.
   * fix incorrect logic for region separate/cut edits
     when range starts before a region and extends into it.

   * made polarity inversion work even when gain is at 1.0 (0dB)
   * save+restore route active status

   * remove code that duplicated work done by realpath()

   * fix nasty error in AutomationList::cut_copy_clear() that
     allowed duplicate points to be added to the list. This
     fixes wierdness with region splitting noticed after my
     last commit.

   * regions created by splitting retain envelope-visibility
     setting of the parent.

   * toggle gain envelope visibility/active status from region context
   * fix a bug that allowed addition of region gain points outside the

   * keyboard-driven audition-at-mouse command added. default binding
     is "."
   * region gain lines change color to reflect active status

   * disconnect sends + port inserts when they are removed from a

   * make "cleanup" work the way most people would expect

   * fix for "make install DESTDIR=foo" in templates dir

   * new layer model: "Most recently added regions are higher"
       With this model, no edits made to a playlist will cause
       relayering to take place. Added following working reports
       from Ron Parker.
   * changing layer models does not recompute the layering of any
   * cleanup fixes for multi-snapshot situations

More information about the Ardour-Dev mailing list