Well, its time for another release of Ardour. This release is another
milestone: it marks the end of all bugs that were slated to be solved
before the 1.0 release. The plan from here is to wait for about a few
days to allow testing of this release and minor (cosmetic) bug fixing
to continue, and then ardour 0.99 will be released. After that,
release engineering (install process, new user experience) will be all
that stands between us and release 1.0rc1, which will hopefully be the
last release before 1.0.

Please note: there is no claim that Ardour is bug free. The bug list
for 1.0 was drawn up with the goal of making sure that the vast
majority of new (and existing) users of Ardour will have a rewarding,
powerful and largely problem-free experience recording, mixing and
producing music. There are still substantive (as well as trivial)
issues that require solutions, but the development team is anxious to
move on to the GTK2 port so that we can make Ardour look as shiny
(shinier?) as Rosegarden :)

This is an important release for people who work in locales that do
not use the period (".") as a decimal separator (i.e. decimals written
as "1,5" rather than "1.5"). It is the first version that we believe
is now truly locale-safe against data corruption caused by
LC_NUMERIC's affect on stored data formats.

Enjoy, there's more to come :)

--p

  * fix a truly appalling coding error in all uses of LocaleGuard
   
         - people who run ardour with LC_NUMERIC set to something
           other than en_US.UTF-8 will probably have continued to 
           suffer from locale-based problems because of this
           problem.

   * fix nesting of LocaleGuard objects to provide yet more fixes
       to LC_NUMERIC problems

    * add new flag for custom canvas items that do not require
       an automated redraw when arguments are set.

    * rework canvas "simple rect" item to optimize redraws
       as resizes occur, and use FAST_PAINT_BOX to speed
       up drawing slightly. it is possible (likely?) that
       this will help some system performance issues
       when recording multiple tracks at once.

    * rationalize how the "s" (split) operation works. 

        - if the mouse pointer is inside a regionview, that region
              is split

        - if the region was part of the selection, then
              a) all regions covering the mouse pointer time position
                 are also split 
              b) the selection is cleared after the split

        - if the region was not part of the selection, then
              the selection is left unchanged after the split

     * if auto-connect inputs is in use, only connect the first N
           inputs where N is the number of physical inputs found by JACK

     * fix grotesque error in use of STL reverse iterators
           that messed up any use of AutomationList::truncate_end(),
           causing horrible corruption of the control points.

       * fix long-standing problems with region gain line visibility
           (as-is, plus after-trimming)

       * reimplement Route::_reset_plugin_counts() to use a slightly
           simpler algorithm and allow zero-input plugins
           ("instruments") as the first in the chain

       * fix problem with metering when using zero-input plugins

       * fix problems with failed remove of redirects

       * make region editor clocks insensitive at the right times

       * store relative names in session file for connections,
           allowing re-establishing internal connections when
           connected to JACK using a different client name
      
       * fix major thinko bug with Curve::spline_eval() that
           caused a complete failure if the Curve had 0, 1
           or 2 control points.

       * Karsten's fixes for crossfades, plus a modified
           version of his TimeAxisViewItem "selected" fix.

   * automation track "controls context menu" now includes
      "clear" and auto-state submenus, so that full control
      even using a small track height is possible.

   * require inserts/plugins to either be mono-input or match
      the active streams at that point in the route. this
      means you cannot insert a 2in plugin on a mono track
      without a 1in/2out splitter preceding it.

      we will change this in a future (post-2.0) version of
      ardour so that the splitter is added automatically
      in a hidden way.

   * fix naming of sends/inserts to avoid duplications.
 
    * removed redundant expansion arrow from TimeAxisView

   * when a region overlaps another region but is wholly within 
         the other, create hidden, immutable 64-frame xfades
         at both boundaries. (works, but some more work 
         needed on corner cases and thoroughly testing normal
         overlap xfades)

  * fix off-by-1 errors in drawing canvas rect objects
       (affects rubber band selection, range selection and more)

   * corrected off-by-1 error in position of fade out polygon
       within regionviews

   * expanded height of per-track selection rects to
       full track height

   * muted regions never write silence, whether they
       are opaque or not.

   * added "Mute" and "Unmute" to region ops menu

   * fix bug in Editor::cursor_to_selection_{start,end} that
        prevented the function from working in range mode

   * delete AudioEngine at exit (and thus call jack_client_close())

   * make "active" check menu item on mixer strip "name" context menu
        be in correct state at startup

   * popup error message if clone or copy of redirects fails

   * prepend "!" to the displayed name of a muted region

   * newly created regionviews follow the current "show waveforms"
       setting

   * relevant internal-overlap xfades are invalidated by layering changes
       
   * all (relevant) xfades are invalidated by muting changes

   * another almost-complete reimplementation of plugin count handling

        - no visible changes intended
        - we now compute counts before changing the counts
        - if the configuration is impossible, things are left unchanged
        - if the configuration is possible, we set the counts
        - all failed reset_plugin_count() calls should leave
             the redirect lists in their original state

   * reimplement region layer changes to avoid visible "illegal" state
      with two regions in the same layer             

   * fix bug with soloing that would cause solo states of
       tracks|busses in the incorrect state if busses|tracks were
       also soloed while a track|bus was un-soloed.

 * make "active" check menu item in track controls context menu
     be in correct state at startup

  * use nick mainsbridge's brilliantly simple "later regions are
      on higher layers" idea

  * remove all explicit control over layering from ardour/gtk

  * fix nasty thread/race condition bug when building peakfiles
      for imported/embedded audio. two threads could be
      reading from the same file at the same time, and under
      some circumstances could stomp on each others activities.

  * fix potential (suspected) race condition associated with
      peakfile request submission and handling. may affect
      some reported "hangs" when importing/embedding audio.

  * actually use two-stage regionview creation (rects first,
      waveforms later) by refactoring SndFileSource's use of
      its primary mutex. makes regionviews 

  * fix attempt to access an illegal column of the file selector
     in the library/file browser.

  * add pthread id to "posix signal received" message

  * require use of --new/-N flag to create new sessions from the 
     command line

  * remove "exiting foo thread" and "stopping bar thread" messages

  * from shutdown, don't kill the GUI thread if its not running 

  * add EnvelopeChanged Change to AudioRegion, playlist saves
      state when this or *any* region change occurs. this fixes
      a class of bugs where undo after a region was removed
      fails to fully restore the region's state.

  * remove debug output from Gtkmmext::NewSaveDialog

Reply via email to