Qtractor - An Audio/MIDI multi-track sequencer
----------------------------------------------

ChangeLog


0.9.20  2021-02-12  A Winter'21 Release.

- Fixed and improved automation curve recording, whenever playback
  is rolling (and also when isn't:)).

- Fixed parsing/loading of large session bundle archive/zip files
  (.qtz > 2GB).

- Fixed LV2 plug-in UI X11 (native) resize.

- Make NSM state file names independent to session display names,
  keeping backward compatibility for old sessions.

- Exiting, quitting or closing the main window while under NSM, now
  promptly asks whether to save, discard or cancel as usual.

- Re-improved Mixer multi-row layout.

- Fix incorrect destruction order for VST3 modules.


0.9.19  2020-12-20  A Winter'20 Release.

- Session directory auto-name option added to the session properties
  dialog, as convenience.

- Loading and saving a LV2 plugin's state has been vastly improved.
  IMPORTANT CAVEAT: From this moment onwards, when loading any newer
  saved sessions into older versions of the program, all LV2 plugins
  won't get their state restored correctly.

- Track colors saturation introduced as yet another eye-candy option
  (cf. View/Options.../Display/Track color saturation)

- Fixed VST3 number of channels query/report.

- Fixed immediate crash when loading untitled or unnamed Instrument
  Definitions files (*.ins): base file-name is now taken as default 
  instrument definition name or title.

- Tempo (BPM) entry may now be specified with arbitrary precision, to
  at most 3 decimal positions in fractional part, while integer whole
  values are displayed with no decimal point.

- Added option to keep MIDI clip editor windows (aka. piano-roll)
  always on top of the main window (cf. View/Options.../General/
  Keep editor windows always on top).

- MIDI clip editor status-bar labels are not stretched to whole text
  size anymore, most specially for the current file complete path.  


0.9.18  2020-10-30  A Fall'20 Release.

- When under NSM, all top-level windows, main, mixer and connections,
  will always start hidden.

- Plugin editors (GUIs) that are currently open on a track are now
  brought up as top-level windows immediately when a track is made
  current or highlighted (and Track / Auto Monitor is in effect).

- MIDI clip editor mouse hovering effect extended to whole current
  note line on main view (piano-roll eye-candy++); also, the white
  keys on MIDI clip editor's virtual piano keyboard, are now fully
  highlighted.

- Plugin search paths (cf. View/Options.../Plugins/Paths) now showing
  all the default and actual existing paths, instead of a blank list.

- Undimmed octave divider lines on the piano-roll.

- Fixed potential crash on changing audio output buses channel count.

- Note names display (inside note rectangles) are now an option on
  the MIDI clip editor (aka. piano-roll; menu View > Note Names).


0.9.17  2020-09-15  An End-of-Summer'20 Release.

- Early fixing to build for Qt >= 6.0.0 and the C++17 standard.

- Fixed crash when changing an auto-monitored audio track's number
  of channels due on switching its audio output bus.

- Avoid a complete track re-open when changing properties, unless
  either input or output buses are changed.

- Fixed custom track icon selection when none is currently set.


0.9.16  2020-08-07  A Summer'20 Release.

- Experimental / High resolution plugin automation (14-bit) options
  is now also removed from View > Options... > Plugins dialog.

- Audio Clip / Export... now takes into account custom fixed gain
  property (shamefully missing for the whole last decade to date).

- Finally indulged on dummy LV2 plug-in CVPort support, just to
  avoid certain immediate and sudden crashes when inserting those
  kind of 'non-functional' plugins accidentally.

- Bring the Track Export dialog down to Clip Merge/Export as well,
  for optional file type and format selection.

- When enabled, do auto-save upon adding or inserting a new plugin.

- Make sure LV2 plug-in UI GTK2 and X11 native support is selected
  first by default on top to libsuil.

- Both out-of-process plugin inventory scan and LV2 Dynamic manifest
  options have been removed from View > Options... > Plugins dialog.

- Fixed deprecated stuff on an early preparation for Qt6.


0.9.15  2020-06-27  An Early-Summer'20 Release.

- Fixed MIDI tracks export that were missing the end-of-export tail
  parameter and bailing out always with default SMF format anyway.

- Fixed VST3 component/controller inter-connection.

- LV2 Atom/Port-event host notification support has been retouched,
  but still unofficial though.

- Fixed VST3 audio-processor initialization/activation when a plugin
  has no inputs or outputs present.

- Let main window pseudo-asynchronous stabilization re. menus, tools
  and status bars, just faster and immediate.

- Fixed MIDI track monitor reinstantiation and reset.


0.9.14  2020-05-07  A Mid-Spring'20 Release.

- Export file type, format and quality are now specific options on
  the Track/Export Tracks.../Audio, MIDI dialogs.

- LV2 plug-in UI GTK2 and X11 in Qt5 host native support in addition
  and alternative to libsuil.

- Generic plug-in/Properties... dialog now showing each
  parameter/property automation status on a skeuomorphic aka. fake and
  tiny LED ;)

- LV2 Plug-in Patch parameter/properties automation and MIDI
  Controller assignment/learn are now a possibility.

- LV2 Atom/Port-event host notification support has been implemented
  (unofficial).

- Fix clean-up of any recording leftovers.

- JACK Transport latency is now taken into account for recording
  latency compensation.

- Attempt to force correct audio clip offsets due on recording latency
  compensation are not quantized to MIDI metronomic time-scale anymore.

- LV2 Plug-in MIDNAM support introduced.

- Use Shift or Ctrl keyboard modifiers with the mouse- wheel to change
  any Direct Access plug-in parameters.


0.9.13  2020-03-28  A Spring'20 Release.

- All meters background color are now customize-able (cf.
  View/Options.../Display/Meters, color level "Back").

- Automatic mixer grid layout (multi-row) is now in effect
  permanently--being an option no more.

- Always show plugins and meters on track list/left pane as permanent
  standard now.

- LV2 UI Request-value feature/interface support has been implemented.

- Audio output monitoring meters are now shown/hidden auto-magically
  on MIDI tracks and/or buses--no need for some user preference option
  anymore (ie. View/ Options.../Plugins/Instruments/Show audio output
  monitoring meters, is now gone).

- Default track height has been slightly increased.

- Track / Duplicate Track... now also takes a MIDI track's audio
  meters setting into account.

- VST3 plug-in support introduced.

- Fixed first bar/measure position drawing on the time-scale/grid
  across time-signature changes on the MIDI clip editor (aka.
  piano-roll).

- Plugins and meters on track list/left pane, are now being set on as
  default--maybe going stapled in some near future ;)

- Make man page compression reproducible (after request by Jelle van
  der Waa, while on the Vee-Ones, thanks).

- Avoid resetting top or left position when zooming with mouse pointer
  is in main tracks or MIDI clip editor (piano-roll) views.

- Make libaubio a build dependency on Debian/Ubuntu; also fix
  cross-build check to sizeof(float).

- Bumped copyright headers into the New Year (2020).


0.9.12  2019-12-28  The Winter'19 Release.

- Basic key-signature has been added to tempo, time -signature and
  location markers map.

- MIDI Clip editor (aka. piano-roll) horizontal and vertical splitter
  sizes, widths and heights resp. are now preserved as user preferences
  and also to session state.

- Second attempt to fix the yet non-official though CMake build
  configuration.


0.9.11  2019-11-09  The Mauerfall'30 Release.

- MIDI Instrument and patch, bank and program names are now correctly
  updated on their respective track -list (left pane) columns.

- Avoid copying/replicating dirty MIDI clip files, for yet
  untitled/scratch sessions.

- Transport/Backward commands now honoring edit-tail, loop-end and
  punch-out points, when playback is not rolling.

- A session name (sub-)directory is now suggested on every new session
  properties dialog.

- Avoid adding any extraneous clip replica when Ctrl +dragging on
  either of its edges.

- When using autotools and ./configure --with-qt=..., it is also
  necessary to adjust the PKG_CONFIG_PATH environment variable (after a
  merge request by plcl aka. Pedro López-Cabanillas, while on qmidinet,
  thanks).

- Fixed a potential crash-effect in switching MIDI output buses on
  tracks that are set to show audio output monitoring meters.


0.9.10  2019-10-12  Autumn'19 Beta.

- Fixed initial session tempo override when importing a standard MIDI
  file.

- An alternate time-signature/meter option is being served to the MIDI
  clip editor (aka. piano-roll) and allowing for some poly-rythm/meter
  scenarios on a per MIDI clip basis.

- Fixed MIDI "overdub" recording on offset clips.

- MIDI bank and program settings now propagating to all MIDI track's
  clips resp.

- Fixed MIDI file format default setting other than SMF Format 0.

- Escape key may now be used to reset time and tempo /time-sgnature
  spin-box controls.

- Play-head time and tempo/time-signature controls are now featured in
  MIDI clip editor toolbars (aka. piano-roll); time display format is
  also separated from the tracks main application view and defaults to
  BBT as being most convenient.

- All items in the MIDI clip editor's event list are now enabled,
  selectable and editable, no matter the filter settings for the event
  views.

- Added alternate yet non-official CMake build option.

- Improved MIDI clip editor (aka. piano-roll) position and size
  persistence across session state.

- Fix HiDPI display screen effective support (Qt >= 5.6).

- Mixer, Connections and MIDI clip editor top-level windows shall have
  no parent, unless when set as always-on-top tool windows. (REGRESSION)

- Make sure compiler flags comply to c++11 as standard.


0.9.9  2019-07-24  Summer'19 Beta.

- Fixed editing and display of 'Pgm Change' events on the MIDI clip
  editor (aka. piano-roll).

- Introducing tempo/beat-detection support on the Clip / Tempo
  Adjust... dialog (provided libaubio >= 0.4.1 is available); and now
  also featured with some rough visual clues ;).

- Updated for the newer Qt5 development tools (>= 5.13).

- Imply asking for a brand new filename (ie. Save As...) whenever the
  session file original sample-rate differs from the current audio
  device engine (ie. JACK).

- Configure updated to check for qtchooser availability.

- Fix MIDI through for LV2 plug-ins that have no MIDI output
  event/atom ports.


0.9.8  2019-05-31  Spring'19 Beta.

- Plugin-lists and respective plugins state may now be exported and/or
  imported as XML files.

- When in Drum Mode, Key and Scale are meaningless and thus
  functionally disabled from the MIDI clip editor (aka. piano-roll).

- MIDI clip editor's View > Ghost Track menu option is now finally a
  reality: show any existing MIDI track and its respective clips in the
  background as dimmed, semi-transparent aka. ghost events.

- Minor update to Debian packaging control file.

- Make sure partially selected clips are reset to whole when
  Shift/Ctrl keyboard modifiers are in effect, to prevent extraneous
  clip splits or cutaways afterwards.


0.9.7  2019-04-16  Spring-Break'19 Release.

- Re-defined all main application UNIX signal handling.

- Fixed possible crash in drawing clips while rare
  loop-recording/takes situations.

- Main window stabilizing is now kind of asynchronous re. menus, tools
  and status bars.

- MIDI Controller's Latch mode attribute on tracks and plugins are now
  properly saved/loaded as meant to be.


0.9.6  2019-03-20  Pre-LAC2019 Release Frenzy.

- Fixed LV2 UI Touch feature/interface implementation.

- Plugin latency/delay compensation is now introduced as an option to
  tracks only (cf. Track/Properties... /Latency compensation).

- Refactored all singleton/unique application instance setup logic
  away from X11/Xcb hackery.

- A bit lesser of a naive file-name numbering is now in place to avoid
  as much as possible, the piling up of internal curve/automation files
  when saving existing sessions.

- Maybe just informational but the original MIDI file format is now
  correctly reported across ref-counted linked MIDI clips.


0.9.5  2019-02-14  Valentines'19 Hotfix.

- HiDPI display screen support (Qt >= 5.6; patch by Hubert Figuiere,
  thanks).

- Fixed for DSSI plug-ins (eg. fluidsynth-dssi) loss of configuration
  state: clear internal config/state keys on release virtual method.
  (REGRESSION)

- Fixed for NSM (and JACK) sessions not saving the correct file
  references/symlinks of clips that are recorded or created during the
  initial and scratch session.


0.9.4  2019-02-07  Winter'19 Beta.

- Drag-moving and copy-pasting existing clips, while over the main
  track-view, now shows the respective (audio wave-shapes and MIDI
  piano-rolls) graphical representations, as much as possible.

- For good and bad, session name changes now trickle down to
  respective audio/MIDI file names as well.

- Audio output monitoring meters may now be shown on MIDI tracks and
  buses as a default user preference option (View/
  Options.../Plugins/Instruments/Show audio output monitoring meters)
  and also in plugin list context sub-menu (Audio/Meters).

- Custom color (palette) themes can be exported to and imported from
  external files.

- LV2 plug-in UI GTK2 and X11 in Qt5 host native support are now
  enabled on configure by default. (REGRESSION)

- Fixed minimum input value as 10% (was 1%) for audio clip
  time-stretching in the Clip / Edit... dialog.


0.9.3  2018-12-07  End of Autumn'18 Beta.

- Auto-backward now skips the end-of-session location.

- Audio clip time-stretching and pitch-shifting limits are now 10-fold
  in either direction.

- Custom color (palette) theme editor introduced; color (palette)
  theme changes are now effective immediately, except on default.

- Old deprecated Qt4 build support is no more.

- Recover audio and MIDI dedicated port connections when changing any
  of the Metronome, Player and/or Control option settings.

- Fix MIDI track (and bus) bank/program reset to none.

- Anti-glitch micro-fade-in is disabled on audio clips with zero
  offset.

- Audio and MIDI file players also stopped on Transport / Panic
  command.

- LV2 plug-in UI GTK2 and X11 in Qt5 host native support are now
  disabled on default configure.

- Get rid of symlink duplicates on the default plugin search paths.

- According to Debian policy and guidelines, the out-of process plugin
  scanner (qtractor_plugin_scan) is now installed to $LIBDIR/qtractor.


0.9.2  2018-09-09  Summer'18 Beta.

- AppData/AppStream metadata is now settled under an all permisssive
  license (FSFAP); also updated to be the most compliant with latest
  freedesktop.org specification and recommendation.

- Fix build for Qt >= 5.11.0 (by David Geiger, thanks); also for some
  g++ >= 8.1.1 warnings and quietness.


0.9.1  2018-05-29  Pre-LAC2018 Release Frenzy.

- Displaying MIDI note(on) events as diamonds instead of simple
  rectangles (aka. Drum Mode) is now being introduced as an optional
  MIDI track property (Drums) and as a MIDI clip editor (piano-roll)
  visual option (cf. View/Drum Mode).

- Extended multi-selection is now supported on all the Connections
  client/port lists, allowing for multiple (dis)connections at once.

- Added LV2 UI sample-rate option support.

- Always reset all internal dedicated MIDI controllers, eg. MIDI track
  volume (CC#7) and panning (CC#10), on Transport/Panic and after
  rendering export to aud1io (ie. Track/Export Tracks/Audio...) as
  needed to reset MIDI instrument plugins to nominal session state.

- Fix, detect and preserve MIDI Bank-select method across MIDI
  track/clips editing operations.

- Fixed MIDI track and clip note min/max display range while recording
  and also when duplicating tracks.

- Added "All files (*.*)" filter to every file requestor dialog,
  wherever missing.

- The tiny zoom-magnifier icons have been revamped.


0.9.0  2018-03-22  Early Spring'18 Beta.

- New View/Options.../Plugins/Experimental/Show plugins on track
  list/left pane option is in effect on tracks that are tall enough in
  height for their plugins list to fit on the Bus column.

- Fixed a day-zero bug over the MIDI Insert (Send/Return)
  pseudo-plugin, which was duplicating MIDI events onto the next LV2
  plugin in chain, causing strange hanging notes, mutes, retriggerings
  and what not.

- MIDI track and clip note min/max range display now fixed.

- MIDI Program Change events (PC) now have their proper program number
  as parameter, instead of value, on the internal MIDI event
  representation.

- Merging MIDI clips while on SMF Format 0 has been fixed: was merging
  always onto the same MIDI channel (2), most often the wrong one,
  resulting in an empty or blank clip.

- When importing from standard MIDI files (SMF), set track names from
  Mtrk TRACKNAME meta-events instead of filename.

- Avoid asking to save as to existing or just newly created clip
  file-names, whenever possible.

- Disable singleton/unique application instance setup logic when the
  display server platform is not X11.

- Whether to use native file browser/requester dialogs is now an
  effective option when launching under NSM session management (was once
  disabled initially).

- Content files are now saved as symlinks when saving to JACK and/or
  NSM session directories/folders.

- Trying to get CC14 MSB+LSB (course+fine) running status on, no
  matter whether each pairing event are under 200ms apart.

- Possible VST plug-in GUI reparenting hack/fix on Qt5/Xcb.


0.8.6  2018-01-30  Winter'18 Beta.

- Added LV2_UI_updateRate option support.

- Added brand new option to deactivate plugins only if they can
  produce sound cf. main menu Track/Auto Deactivate (by Andreas Müller
  aka. schnitzeltony, thanks).

- Workaround native file dialogs hang up by setting parent widget to
  NULL; it should be noted that dialogs now get an own entry in the
  task-bar (also by Andreas Müller aka. schnitzeltony, thanks).

- Added ARM NEON acceleration support (by Andreas Müller aka.
  schnitzeltony, thanks).

- Track count "limit" and a "Delta" mode flag, for momentary and
  encoded controllers support, have been added to MIDI Controllers
  generic mapping (cf. View/Controllers...; after an original
  pull-request by Holger Dehnhardt, thanks).

- A little hardening on the configure (autoconf) macro side.

- Pinned current/hi-lighted track dangling after removal.

- An anti-flooding timer is now in place in MIDI Controller assignment
  (aka. MIDI learn) dialog.

- Add MMC Track input monitor support.

- New user preference option: View/Options.../General/Options /Reverse
  keyboard modifiers role (Shift/Ctrl), applied to main transport
  re-positioning commands: Transport/Backward, Forward, etc.

- VST Time/Transport information is now also updated as on playing
  when in audio export aka. freewheeling mode.

- LXVST_PATH environment variable now takes precedence over VST_PATH
  as Linux-native VST plug-ins search path.

- MIDI Controllers mapped to non-toggling shortcuts now work as
  one-shot triggers, independent of MIDI event value.


0.8.5  2017-12-04  Autumn'17 Beta.

- Audio clip gain and panning properties are now taken into
  consideration when hash-linking (aka. ref-counting) their back-end
  buffers.

- New out-of-process plug-in inventory scan and cache option,
  replacing the old (aka. dummy) VST plug-in scan option and extending
  its function to all other plug-in types: LADSPA, DSSI and also LV2
  (cache only).

- A File System browser and tree-view is finally integrated as a
  dockable-widget on the main application window (cf. main menu View /
  Window / File System).

- Drag-and-dropping of session, audio and MIDI files over the main
  track-list (left pane) is now possible, allowing for yet another quick
  means to open a new session or add new tracks to the current session.

- MIDI input/capture time-stamping has been fixed as much to avoid
  missing inbound events, when play-head is near the loop-end point and
  the loop-start is set below the absolute first half-a-second
  (<0.5sec).

- LV2 Time/Transport speed information is now set on rolling when in
  audio export aka. freewheeling mode.

- Added *.SF3 to soundfont instrument files filter, on View >
  Instruments... > Import... file dialog.

- A brand new View/Options.../Display/Meters/Show meters on track
  list/left pane option has been added.


0.8.4  2017-09-20  End of Summer'17 Beta.

- Assigned MIDI Controllers to plug-in's Activate switch are now
  finally saved and (re)loaded properly across sessions.

- Audio clip panning option property is now being introduced.

- Out-of-process (aka. dummy) VST plug-in inventory scanning now
  restarts automatically and resumes processing in case of a premature
  exit/crash; VST plug-in inventory scan/cache persistency is now in
  place.

- Desktop entry specification file is now finally independent from
  build/configure template chains.

- Updated target path for freedesktop.org's AppStream metainfo file
  (formerly AppData).

- Changing the View/Options.../Display/Custom/Style theme takes effect
  immediately unless it's back to "(default)".

- Slightly slower but better approximation to IEEE 32bit floating
  point cubic root ie. cbrtf().


0.8.3  2017-06-30  Stickiest Tauon Beta.

- Make sure any just recorded clip filename is not reused while over
  the same track and session. (CRITICAL)

- LV2 Plug-in worker/schedule interface ring-buffer sizes have been
  increased to 4KB.

- Fixed track-name auto-incremental numbering suffix when modifying
  any other track property.

- WSOLA vs. (lib)Rubberband time-stretching options are now
  individualized on a per audio clip basis.

- Long overdue, some brand new and fundamental icons revamp.

- Fixed a tempo-map node add/update/remove rescaling with regard to
  clip-lengths and automation/curve undo/redo.

- Fixed a potential Activate automation/curve index clash, or
  aliasing, for any plug-ins that change upstream their parameter count
  or index order, on sessions saved with the old plug-in versions and
  vice-versa.


0.8.2  2017-05-10  Stickier Tauon Beta.

- Track-name uniqueness is now being enforced, by adding an
  auto-incremental number suffix whenever necessary.

- Attempt to raise an internal transient file-name registry to prevent
  automation/curve files to proliferate across several session load/save
  (re)cycles.

- Track-height resizing now meets immediate visual feedback.

- A brand new user preference global option is now available:
  View/Options.../Plugins/Editor/Select plug-in's editor (GUI) if more
  than one is available.

- More gradient eye-candy on main track-view and piano-roll canvases,
  now showing left and right edge fake-shadows.

- Fixed the time entry spin-boxes when changing time offset or length
  fields in BBT time format that goes across any tempo/time-signature
  change nodes.

- French (fr) translation update (by Olivier Humbert, thanks).


0.8.1  2017-02-17  Sticky Tauon Beta.

- The View/Options.../Display/Dialogs/Use native dialogs option is now
  set initially off by default.

- All tempo and time-signature labels are now displayed with one
  decimal digit, as it was in mostly everywhere else but the time
  ruler/scale headers.

- JACK transport tempo and time-signature changes are now accepted,
  even though playback is not currently rolling; also, changing (JACK)
  Timebase master setting (cf.View/
  Options.../General/Transport/Timebase) will take effect immediately,
  not needing nor warning for session restart anymore.

- Track/Navigate/Next and Previous menu commands, finally fixed to
  wrap around the current track list.

- Current session (JACK) transport mode option switching is now being
  made accessible, from the main menu and drop-down toolbar buttons, as
  well as user configurable PC-keyboard and/or MIDI controller shortcuts
  (cf. Transport/Mode/None, Slave, Master, Full).

- Fixed some auto-backward play-head position flip-flopping, when
  opening a new session while the previous was still on rolling/playing
  state, hopefully.

- Added French man page (by Olivier Humbert, thanks).

- MIDI clip changes are now saved unconditionally whenever the editor
  (piano-roll) is closed or not currently visible.

- Audio clip peak/waveform files re-generation performance,
  scalability and resilience have been slightly improved.

- Some sanitary checks have been added to audio clip peak/ waveform
  re-generation routine, as much to avoid empty, blank, zero or
  negative-width faulty renderings.

- Do not reset the Files tree-view widgets anymore, when leaving any
  drag-and-drop operation (annoyingly, all groups and sub-groups were
  being closed without appeal).

- Make builds reproducible byte for byte, by getting rid of the
  configure build date and time stamps.


0.8.0  2016-11-21  Snobbiest Graviton Beta.

- MIDI clip tools redo/undo processing refactored as much to avoid
  replication over multiple hash-linked clips; MIDI clip editor's
  floating selection/anchor event stability has been also improved, in
  regard to MIDI tools processing range.

- Auto-backward play-head location, when playback was last started, is
  now shown on main track-view, as a momentary dark-red vertical line
  marker.

- LV2 plug-in parameter optimization: stuff consecutive series of
  plug-in's parameter value changes, as much as possible into one single
  undo/redo command.

- LV2_STATE__StateChanged is now recognized as a regular atom
  notification event and raising the current session dirty flag, as
  normal behavior.

- Adjusting clip selection edges is now possible and honored while on
  the the main track-view canvas.

- Audio peak file caching and rendering, as far as audio clip
  wave-forms are concerned, have been refactored and optimized a couple
  of notches higher, on the ephemeral and rather marginal throughput
  front ;).

- Fixed a potential crash on the singleton/unique application instance
  setup.

- Edit/Select Mode tool-buttons moved into single drop-down
  tool-button on the main and MIDI editor's tool-bar.

- Do not reset the current clip selection when updating the main
  track-view extents eg. while zooming in or out.

- Automation curve node editing auto-smoothing revisited; also fixed
  input MIDI RPN/NRPN running status processing, which was crippling
  some plug-in automation curve nodes, when saved in high-resolution
14-bit mode.

- Fixed the visual play-head position (vertical red line) while
  zooming in or out horizontally.

- Almost complete overhaul on the configure script command line
  options, wrt. installation directories specification, eg. --prefix,
--bindir, --libdir, --datadir and --mandir.

- LV2 Plug-in worker/schedule fix: make request/response ring-buffer
  writes in one go, hopefully atomic (suggested patch by Stefan
  Westerfeld, while on SpectMorph, thanks).


0.7.9  2016-09-21  Snobbier Graviton Beta

- JACK buffer-size change handling has been deeply improved, now doing
  an immediate session restart, while preserving all external
  connections as much as possible.

- Introducing an audio and MIDI metronome anticipatory offset, kind of
  latency compensation, to respective option settings cf.
  View/Options.../Audio, MIDI/Metronome/Offset (latency).

- Fixed LADSPA plug-in preset switching, incidentally broken as NOP,
  ever since late Haziest Photon's crash-landed.

- MIDI Track/Instrument cascading menus have been found empty broken
  on Qt5 builds, now fixed.

- MIDI RPN/NRPN running status and RPN NULL reset command are now
  supported (input only).

- Fixed a sure immediate crash on removing audio buses that are
  current targets of any active Aux-send inserts.

- Fixed yet another old bummer that was reaping off assigned MIDI
  controllers on existing track's gain/volume or panning controls, when
  adding any single new track.

- Fixed missing feedback on MIDI controllers assigned to any of
  monitor, record, mute and solo track/bus state buttons.

- Eye-candy warning: the current clip, not necessarily the one
  currently selected, is now highlighted with a solid outline; linked
  MIDi clips are also highlighted with an alternate dashed outline.

- SFZ file conversion, and bundling of the respective sample files, is
  now supported when saving as zip/archive (*.qtz).

- Fixed track monitor, record, mute and solo dangling states, on
  Track/Duplicate command.

- Slight regression on the LV2 State Files abstract/relative file-path
  mapping, trading QFileInfo::canonicalFilePath() for
  QFileInfo::absoluteFilePath(), and thus skipping all symlink
  dereferences in the process.

- Fixed a one first linking/ref-counting glitch, affecting recently
  recorded MIDI clips which might have their initial clip length still
  un-quantized to MIDI resolution (BBT).

- A brand new and discrete MIDI clip editor command tool has been
  added: MIDI Tools/Transpose/Reverse.

- Discretely fixed MIDI Controllers catch-up algorithm.

- Fixed a borderline mistake on plug-in parameter port index mapping
  to its corresponding symbolic name, especially if newer plug-in
  versions are loaded on older saved sessions.


0.7.8  2016-06-23  Snobby Graviton Beta

- MIDI file track names (and any other SMF META events) are now
  converted to and from the base ASCII/Latin-1 encoding, as much to
  prevent invalid SMF whenever non-Latin-1 UTF-8 encoded MIDI track
  names are given.

- MIDI file tempo-map and location markers import/export is now
  hopefully corrected, after almost a decade in mistake, regarding MIDI
  resolution conversion, when different than current session's setting
  (TPQN, ticks-per-quarter-note aka. ticks-per-beat, etc.)

- Introducing LV2 UI Show interface support for other types than Qt,
  Gtk, X11 and lv2_external_ui.

- Prevent any visual updates while exporting (freewheeling) audio
  tracks that have at least one plugin activate state automation enabled
  for playback (as much for not showing messages like "QObject::connect:
  Cannot queue arguments of type 'QVector<int>'"... anymore).

- The common buses management dialog (View/Buses...) sees the
  superfluous Refresh button finally removed, while two new button
  commands take its place: (move) Up and Down.

- LV2 plug-in Patch support has been added and LV2 plug-ins parameter
  properties manipulation is now accessible on the generic plug-in
  properties dialog.

- Fixed a recently introduced bug, that rendered all but one plug-in
  instance to silence, affecting only DSSI plug-ins which implement
  DSSI_Descriptor::run_multiple_synths() eg. fluidsynth-dssi, hexter,
  etc.


0.7.7  2016-04-27  Haziest Photon Beta

- LV2 UI Touch feature/interface support added.

- MIDI aware plug-ins are now void from multiple or parallel
  instantiation.

- MIDI tracks and buses plug-in chains now honor the number of
  effective audio channels from the assigned audio output bus; dedicated
  audio output ports will keep default to the stereo two channels.

- Plug-in rescan option has been added to plug-ins selection dialog
  (yet another suggestion by Frank Neumann, thanks).

- Dropped the --enable-qt5 from configure as found redundant given
  that's the build default anyway (suggestion by Guido Scholz, thanks).

- Immediate visual sync has been added to main and MIDI clip editor
  thumb-views (a request by Frank Neumann, thanks).

- Fixed an old MIDI clip editor contents disappearing bug, which
  manifested when drawing free-hand (ie. Edit/Select Mode/Edit Draw is
  on) over and behind its start/beginning position (while in the lower
  view pane).


0.7.6  2016-04-05  Hazier Photon Beta

- Plug-ins search path and out-of-process (aka. dummy) VST plug-in
  inventory scanning has been heavily refactored.

- Fixed and optimized all dummy processing for plugins with more audio
  inputs and/or outputs than channels on a track or bus where it's
  inserted.

- Fixed relative/absolute path mapping when saving/loading custom LV2
  Plug-in State Presets.


0.7.5  2016-03-21	Hazy Photon Beta

- Beat unit divisor, aka. the denominator or lower numeral in the
  time-signature, have now a visible and practical effect over the
  time-line, even though the standard MIDI tempo(BPM) is always denoted
  in beats as quarter-notes (1/4, crotchet, seminima) per minute.

- Fixed an old hack on LV2 State Files abstract/relative file-path
  mapping when saving custom LV2 Presets (after a related issue on
  Fabla2, by Harry Van Haaren, thanks).

- Default PC-Keyboard shortcuts may now be erasable and re- assigned
  (cf. Help/Shortcuts...).

- New option on the audio/MIDI export dialog, on whether to add/import
  the exported result as brand new track(s).

- Introducing brand new track icons property.

- Old Dry/Wet Insert and Aux-send pseudo-plugin parameters are now
  split into separate Dry and Wet controls, what else could it possibly
  be? :)

- Brand new MIDI Insert and Aux-Send pseudo-plugins are now
  implemented with very similar semantics as the respective and existing
  audio counterparts.

- Implement LV2_STATE__loadDefaultState feature (after pull request by
  Hanspeter Portner aka. ventosus, thanks).

- Plugi-ins search paths internal logic has been refactored; an
  alternative file-name based search is now in effect for LADSPA, DSSI
  and VST plug-ins, whenever not found on their original file-path
  locations saved in a previous session.

- Finally added this brand new menu Clip/Cross Fade command, aimed on
  setting fade-in/out ranges properly, just as far to (auto)cross-fade
  consecutive overlapping clips.


0.7.4  2016-01-28  Tackiest Gluon Beta

- Eye-candy warning: muted/non-soloed tracks are now shaded over the
  main thumb-view.

- Faster and crispier VST plugin editor (GUI) idle cycles.

- Fixed all core processing when any plugin has more audio outputs
  than channels on a track/bus where it's inserted.

- Added one decimal digit to all percentage input spin-boxes on the
  MIDI Tools dialog.

- Added brand new and global option to disable the so called
  "catch-up" default behavior (cf. View/Controllers.../Sync).

- Fixed some track control issues related to MIDI Controllers generic
  mapping (cf. View/Controllers...).

- Try making Help/Shortcuts... dialog window modeless, as far as under
  MIDI Controller, Inputs/Outputs Connections window also gets
  accessible enough.

- Fixed some vertical scrolling and play-head line re-drawing glitches
  introduced by the recent unlimited slack to editing beyond current
  contents length on main tracks view.

- Added one decimal digit to the Pitch-shift spin-box on audio
  Clip/Edit... properties dialog window.

- Added application keywords to freedesktop.org's AppData.

- Fixed local keyboard shortcuts on the Files organizer widget actions
  and context-menu.

- Improved Mixer multi-row layout (patch by Holger Marzen aka.
  bluebell, thanks).

- Fixed the Ctrl+drag/cloning left of a clip when towards near the
  beginning of session.


0.7.3  2015-12-29  Tackier Gluon Beta

- Slight increase on the number of decimal digits for the plugin
  parameters while on the generic plugin properties dialog. Also applied
  to automation curve node value editing.

- Unlimited slack is now in effect on editing over and beyond the
  current session or clip contents length, on both the main tracks and
  MIDI clip editor (piano-roll) views.

- Ctrl+click and dragging the left or right edges of a clip will now
  make it spill over and replicate as many clip clones as it fits in the
  left or right horizontal extent.

- Added View/Note Type and Value Type command menus to the MIDI clip
  editor (aka. piano-roll) which opens the possibility for discrete
  shortcuts to switching views eg. Note Velocity and Controller views
  (after a kind request by yubatake, thanks).

- Fixed the conversion and/or override of MIDI clip offsets when
  moving and copy/pasting across tempo/time-signature changes.

- Fixed MIDI file track/channel duration estimator, which was giving
  quite wrong and way too short reads.

- Fixed a drag-and-drop bug over the main tracks view, when new tracks
  were being inserted at the top and not to the bottom as is normally
  indicated by the floating visual placeholder.

- Fixed LV2UI_Resize handle from extension_data(LV2_UI__resize), now
  passing LV2UI_Handle in first argument to ui_resize(), as found
  correct and needed for resizable/scaleable LV2 UI's, most specially to
  ssj71's so called Infamous Plugins, thanks.


0.7.2  2015-12-10  Tacky Gluon Beta

- Yet another audio/MIDI time drift correction fix, now giving it some
  slack while turnaround looping on tempo changes.

- Prevent x11extras module from use on non-X11/Unix platforms.

- MIDI Track/Instrument cascading pop-up menus have been added, to
  main and MIDI clip editor windows.

- VST Plugin preset/bank files support (FXB/FXP) is now being
  integrated to the generic Plugin/Properties widget dialog.

- Added new Track/Duplicate menu command.

- Added simple XRUN red indicator to status bar.

- Make sure program change/presets are not selected on possibly
  multi-timbral instrument plugins when inserted on a MIDI bus.

- Prefer Qt5 over Qt4 by default with configure script.

- Fixed a potential crash-bug on first enabling either once the audio
  or MIDI metronomes.


0.7.1  2015-10-09  Meson Dope Beta

- Fixed an ages old MIDI track/channel instrument mapping (bank,
  program) issue that prevented normal all-shut-up messages from being
  sent to MIDI output buses/ports on playback stop.

- Messages standard output capture has been improved again, now in
  both ways a non-blocking pipe may get.

- Fixed port on MIDI 14-bit controllers input caching.

- Fixed false value readings on the MIDI clip editor (aka. piano
-roll) tool-tips, when dragging a note velocity or controller value
  outside the acceptable nominal range (eg. 0-127).

- Added LV2_BUF_SIZE__nominalBlockLength option support (patch by
  falktx aka. Filipe Coelho, thanks).

- Fixed wrong initial tempo/time-signature display when session is
  loaded from command line.

- LV2 plug-in UI GTK2 and X11 in Qt5 host native support added.

- Transport/Auto Backward feature now honoring (auto return) to same
  current location precedence as Transport/Backward.

- Single/unique application instance control adapted to Qt5/X11 (cf.
  configure --enable-xunique).

- MIDI Tools/Transpose, Resize duration display format (frames, time
  or BBT) have been fixed.

- Build fix for Qt5.5 (patch by KaOS, thanks).

- MIDI Tools/Quantize et al. are tentatively being corrected to take
  event times as relative to THE beginning of session, instead of MIDI
  clip start location.


0.7.0  2015-07-24  Muon Base Beta

- Complete rewrite of Qt4 vs. Qt5 configure builds.

- Revised MIDI Controlllers catch-up algorithm.

- Mixer multi-row layout gets a little bit of a fairness fix.

- Non-continuous MIDI Controllers now have their Hook and Latch
  options disabled as those are found not applicable,

- As an alternative to PC-keyboard shortcuts, MIDI controllers are now
  also assignable and configurable for any of the main menu command
  actions, all from the same old configuration dialog
  (Help/Shortcuts...).

- Fixed missing Track and Clip sub-menus from Edit/context-menu that
  were found AWOL ever since after the Lazy Tachyon beta release (>
0.6.6).

- An off-by-one bar position (as in BBT, bar, beat and ticks) has been
  purportedly fixed as long as LV2 Time/Position atom event transfer
  goes.

- French (fr) translation line to desktop file added (patch by Olivier
  Humbert, thanks).

- A new top-level widget window geometry state save and restore
  sub-routine is now in effect.

- Improved MIDI clip editor resilience across tempo and time-
  signature changes.

- Keyboard shortcuts configuration (Help/Shortcuts...) now lists
  complete menu/action path where available.

- Fixed in-flight VST plugin editor (GUI) resizing.

- Added support to LV2UI_portMap extension, found really handy for the
  cases where you have multiple plugins with different port
  configurations and a single common UI to drive them all (pull request
  by Hanspeter Portner aka. ventosus, thanks).


0.6.7  2015-05-27  Lepton Acid Beta

- MIDI clip editor (aka. piano-roll) position, size, and view /event
  type criteria are now persistent, across session and user preferences
  application state.

- Generic plugin form widget position is now also preserved across
  open/save session cycles.

- MIDI clip editor resilience is about to get an improvement, fe. it
  doesn't close on stopping record/overdub anymore.

- Introducing (JACK) Timebase master setting as an option to Transport
  mode (cf. View/Options.../General/Transport /Timebase).

- LV2 plug-in MIDI/Event support now slanted for deprecation.

- Spanish (es) translation added, by David Reyes Pucheta.

- It's live: audio track export (cf. Track/Export Tracks/ Audio...)
  has been deeply refactored to finally include MIDI track/instrument
  plugins rendering (aka. freeze) on selected audio output buses on
  mix-down.

- MIDI file player now does (N)RPN 14-bit controller events.

- Track properties dialog output bus switch fix/optimization; also
  fixed multiple DSSI instance reference count on close.

- Fixed for some strict tests for Qt4 vs. Qt5 configure builds.

- German (de) translation update (by Guido Scholz, thanks).


0.6.6  2015-03-29  Lazy Tachyon Beta

- MIDI clip record/reopen to/from SMF format 0 has been fixed.

- LV2 and VST plugins GUI editor widget position is preserved across
  hide/show cycles.

- Added application description as freedesktop.org's AppData.

- Added a "Don't ask this again" prompt option to zip/archive extrated
  directory removal/replace warning messages.

- MIDI clip editor (aka. piano-roll) gets lingering notes properly
  shown while on record/overdubbing.

- Current highlighted client/port connections are now drawn with
  thicker connector lines.

- Fixing segfaults due to QClipboard::mimeData() returning an invalid
  null pointer while on Qt5 and Weston.

- Return of an old hack/fix for some native VST plugins with GUI
  editor, on whether to skip the explicit shared library unloading on
  close and thus avoid some mysterious crashes on session and/or
  application exit.

- Force reset of plugin selection list when any of the plugin search
  paths change (in View/Options.../Plugins/Paths).

- Recursive VST plugin search is now in effect for inventory and
  discovery on path sub-directories (VST only).

- Non-dummy scannig for regular VST, non-shell plugins, were doomed to
  infinite-loop freezes on discovery, now fixed.


0.6.5  2015-01-30  Fermion Ray Beta

- Connections lines now drawn with anti-aliasing; connections splitter
  handles width is now reduced; the MIDI connections splitter pane sizes
  are now saved and restored properly.

- Extended multi-selection is now featured on the track-list (main
  left-pane), primarily allowing for group mute/solo (and monitor)
  switching.

- Track-list (left pane) header column widths are now saved and made
  persistent across application power cycle (double -click reverts to
  the old original default).

- Minor fixes on the MIDI clip event list editor, also making sure the
  current event is visible on the piano-roll view.

- As long to prevent asynchronous mistakes to JACK transport state
  changes, an internal slack-delay is now introduced after
  self-initiated transport commands (eg. start/stop).

- The MIDI clip editor (aka. piano-roll) was missing to clear or reset
  the current selection when no shift/ctrl keyboard modifier is in
  effect.

- VST-shell sub-plugins are now supported (as suggested by abique aka.
  Alexandre Bique, thanks).

- MIDI clip record/overdubbing is now possible (Clip/Record on the
  main menu or File/Record from the MIDI clip editor.

- Make sure some audio sample file encodings (eg. old Ogg Vorbis) does
  not head-start on audio peak generation.


0.6.4  2014-11-24  Baryon Throne Beta

- Fixed some old loop-recording clip drawing glitches.

- Current assigned track/channel instrument definition names for MIDI
  controllers, note keys, RPN and NRPN, are now in effect on the MIDI
  clip editor drop-down lists, whether available.

- Clip/Take/Range... input dialog values are now properly sanitized as
  long to prevent invalid take/folding ranges.

- Audio capture/export file type default now set to "wav".

- Extending punch-in/out over loop-recording/takes modes.

- Make audio tracks monitoring always flow while playback is rolling,
  independently of their mute/solo state.

- Fixed undo/redo conversion of audio clip offsets under (automatic)
  time-stretching eg. due on tempo changes. (ticket by Holger Marzen,
  thanks).

- Latch/momentary MIDI Controllers toggle mode introduced (a request
  by AutoStatic aka. Jeremy Jongepier, thanks).

- JACK client/port pretty-name (metadata) support is being seamlessly
  introduced.

- Audio frame/MIDI time drift correction is now an option on
  View/Options.../MIDI/Playback/Enable MIDI queue time drift correction.

- Transport auto-backward feature now honoring last position playback
  was started.

- Introducing brand new application user preferences on
  View/Options.../Display/Options/Custom style and color themes (eg.
  "KXStudio", by Filipe Coelho aka. falkTX).

- Mixer widget gets automatic multi-row strip layout.

- Clip fade-in/out now follows time-stretch resizing, via
  shift/ctrl+click and drag one of its edges.

- Fixed a typo causing FTBFS when VST plug-in support is explicity
  disabled (./configure --disable-vst).


0.6.3  2014-09-22  Armed Hadron Beta

- Make the mouse-wheel to scroll the plugin list views, when not
  hovering a direct-access parameter slider.

- Mixer widget gets (un)dockable Inputs and Outputs panels, also with
  their respective title captions.

- Plugin instantiation is now constrained as much to prevent any audio
  channel output overriding.

- Existing plugin presets may now be selected right(-click) from
  plugin list context-menu (ticket by Harry van Haaren, thanks).

- So-called "painting" over multiple selected event values, while on
  the MIDI clip editor view pane below the main piano-roll (eg. note
  velocities, controller values, etc.) is now split into two similar
  painting modes, whether the sub-menu Edit/Select Mode/Edit Draw is set
  on (free-hand) or off (linear).

- Drag-and-copy of plug-in instances across tracks or buses (ie.
  cloning) now also copies the direct access parameter setting (ticket
  by Holger Marzen, thanks).

- File/Save As... now prompts and suggests an incremental backup name
  for existing sessions files.

- Zooming in/out increment is now augmented by whether shift /ctrl
  keyboard modifiers are set (on a ticket request by Holger Marzen,
  thanks).

- LV2 Time position event messages for plugin atom ports that support
  it is now being implemented.

- Attempt to break extremely long audio file peak generation on
  session close or program exit (as reported by EternalX, thanks again).

- MIDI Controllers Hook and Invert properties are now properly saved
  for tracks (after bug report by Nicola Pandini, thanks).

- A segmentation fault when closing with VST plugins open has been
  hopefully fixed (after a patch by EternalX, thanks).

- Messages standard output capture has been slightly improved as for
  non-blocking i/o, whenever available.

- Automation curve node editing has been slightly improved in regard
  to time positioning and resolution.


0.6.2  2014-07-07  Boson Walk Beta

- Prevent linear and spline automation curve modes for all integer
  valued subjects. Also, make sure those values are rounded to the
  nearest integer away from zero.

- Fixed save of LV2 Presets for plugins with state files.

- A man page has beed added (making up Gürkan Sengün's work on debian,
  thanks).

- When moving plugins by eg. drag-and-dropping across tracks,
  automation curves were being left behind, maybe leading to
  unpredictable mistaken behavior. Hopefully, not anymore.

- Translations install directory change.

- Automation curves are now automatically re-adjusted to tempo map
  node changes (after a ticket by Holger Marzen, thanks).

- Audio/MIDI files or plugins found missing on session load are now
  subject for an explicit modal warning message and prompt for an
  immediate session backup salvage.

- Changing instrument plugin programs is now an undo/redo-able command
  operation, especially for DSSI but also for plugins that come with the
  LV2 Programs interface extension support
  (http://kxstudio.sourceforge.net/ns/lv2ext/programs).

- Drawing, selecting and/or resizing of MIDI note events that extend
  across tempo/time-signature changes is now made a bit more correctly
  over the MIDI clip editor (aka. piano-roll), especially regarding to
  current snap-to-beat setting (after an outstanding ticket by yubatake,
  thanks).

- Once again, audio frame/MIDI time drift correction has been slightly
  refactored to improve MIDI input monitor and timing.

- Discrete automation curve node values may now be edited via a
  numerical entry floating spin-box on double-click (as yet another
  request by AutoStatic aka. Jeremy Jongepier, thanks).

- Pressing shift/ctrl keyboard modifiers while double-clicking on a
  plugin list entry now briefly reverses the current View
  /Options.../Plugins/Editor/Open plugin's editor (GUI) by default
  option preference.

- Fixed an old crash lurker when switching output buses that implied a
  change on the number of audio channels, while on tracks that have
  (auto-)monitor turned on and at least one active plugin in chain (yet
  another ticket by AutoStatic aka. Jeremy Jongepier, thanks).

- MIDI Controller assignment (aka MIDI learn) and/or automation of
  plugins (de)activation state has been added (as requested by
  AutoStatic aka. Jeremy Jongepier, thanks).

- LV2 UI Idle and Show interfaces support added.

- Allow the build system to include an user specified LDFLAGS (patch
  by Alessio Treglia aka. quadrispro, thanks).


O.6.1  2014-04-29  Bitsy Sweet Beta

- New user preference option added as View/Options.../Display
  /Transport/Hold auto-scrolling (follow play-head) on edits (after
  requests by Holger Marzen and Louigi Verona, thanks).

- All color chooser dialogs were missing proper titles.

- Audio peak file re-generation and clean-up has been hopefully fixed
  and cache optimized (re. drawing audio clip waveforms).

- Fixed initial session snap-per-beat setting on main toolbar.

- Clip/Export...'ed files are now made persistent, no questions asked
  (after a ticket by Oliver Kester, thanks).

- Portuguese (pt) translation added (by Esteban Viveros, thanks).


0.6.0  2014-03-21  Byte Bald Beta

- New user option added: on whether to save plugins automation values
  with higher resolution as possible, using 14-bit NRPN: cf.
  View/Options.../Plugins/Experimental/High resolution plugin automation
  (default=off).

- Generic native plugin dialogs now shows an additional "About" last
  page where authorship credits are due.

- A new user preference option is now in place for whether to use
  desktop environment's own native file requester/browser dialogs
  (View/Options.../Display/Dialogs/Use native dialogs).

- A bit of slack have been introduced to put "Follow Playhead" (aka.
  auto-scroll view mode) on hold, while doing in-flight selection edit
  moves.

- Fixed some user interface related annoyances while on the MIDI
  Controllers mappings (ie. View/Controllers...).

- Fixed port origin on MIDI RPN/NRPN 14-bit controllers input.

- A discretionary plug-in unique identifier have been devised for when
  more than one from the same type are inserted on a bus or track chain,
  avoiding destructive clashing of automation data.

- Horizontal scrolling shift+mouse-wheel direction now reversed.

- LV2 Dyn(amic)-manifest support is now optional (default=off); cf.
  View/Options.../Plugins/Experimental/LV2 Dynamic Manifest support).

- The following options, although decieved on View/Options... as
  global configuration options, were always and still are proper session
  instance properties: (JACK) Transport mode, MMC mode, MMC device, MIDI
  SPP and MIDI Clock modes, are now shown there reflecting the current
  open session state.

- A couple of run-time circumventions have been hacked in, both
  strictly related to when NSM session management is in charge: 1) the
  new session template feature is disabled (was aborting initial NSM new
  client additions); 2) the native (as from the desktop environment eg.
  KDE) file browser/requester dialogs are disabled (were taking too long
  to list the current directory on first time invocation).

- Update current automation/curve nodes selection while changing
  horizontal (time axis) zoom levels.

- One liner's attempt to make it consistent behaviour on resizing and
  moving multiple selected notes or events while on the MIDI clip editor
  (aka. piano-roll; after a ticket request from Daniel MacDonald aka.
  danboid, thanks).

- Introducing tiny quarter-note/crotchet/seminima/beat icon on all
  snap-to-beat selection items get a new icon :).

- Corrected some audio buffering boundary conditions that were causing
  dead-loops/freezes while merging some audio clips.

- Session auto-save period was chronically reduced to one third of its
  user setting; non critical but fixed now.


0.5.12  2013-12-31  Mike November

- Fixed another off-by-one MIDI plugin chain timing bug, delaying the
  actual playback of the first MIDI event, whenever it started at the
  same and as long as the initial play-head position (after another
  ticket by Holger Marzen, thanks again).

- A new LV2 host convention is in effect on plugins that expose
  multiple AtomPort's in either direction: only the first input or
  output declared AtomPort is eligible to convey regular MIDI data
  events (introduced while trying Frank Kober's forthcoming QmidiArp LV2
  suite of plugins, thanks).

- Zooming with shift/ctrl+mouse-wheel and pointing over the main
  tracks view or MIDI clip editor time ruler header's now fixed.

- A rare freezing loop condition has been fixed on the oldest of MIDI
  file save/write routines (after a ticket and solution by Tuomas
  Airaksinen, thanks again).

- Copy/paste now preserving clip names (ticket by Holger Marzen,
  thanks).

- Scaling of whole tempo map with a given factor has been added,
  through a spin-box and button in Tempo Map / Markers dialog, after a
  long overdue patch by Tuomas Airaksinen, thanks again.

- When issued from main tracks view (ie. Clip/Tools menu) MIDI clip
  tools are now a bit more crash-resilient re. undo/redo- ability.

- Session auto-save / crash-recovery support is now on trial as in
  View/Options.../General/Session/Auto-save current working session
  every 10 minutes (default on).

- Plugin-list chain context-menu now includes MIDI instrument audio
  output options to existing non-dedicated output buses, any other than
  the previous hard-wired default (eg. Master).

- Tracks export now allows for the mix-down/merge of multiple
  audio/MIDI output buses (Track/Export Tracks).

- When adding new tracks, try preserving the last selected bus names,
  while not the default Master ones (after a suggestion from danboid
  aka. Daniel MacDonald, thanks).

- More preparations for Qt5 configure build.

- Brand new thumb-(over)view toolbar widget added to MIDI clip editor
  window (aka. piano-roll overview).

- General MIDI RPN/NRPN 14-bit controller support is now being
  introduced on real-time MIDI input parsing, on standard MIDI file I/O,
  on MIDI Controller options and, of course, on MIDI clip and event list
  editor.

- Pretty innocent nitpick on most thread cleanup routines.


0.5.11  2013-10-07  Lima Oscar

- Adding a track now inserts it after the current one, if any; one can
  also drag and move a track below the last one in the track list (main
  view left pane).

- Extended Edit/Select Mode/Automation: multi-selection mode, cut,
  copy, paste and delete of current track's automation curve nodes, now
  reached implementation ready status.

- Another old silent bug bites the dust: changing track names were
  dropping any track gain/volume and panning automation curves when
  saving the session.

- A primeval processing bug has been sorted out: aux-sends to audio
  output buses that just appear to be after the input bus where they're
  inserted were being left muted and silent (on a ticket follow-up by
  Holger Marzen, thanks).

- Fixed a sure crash bug exposed when processing of aux-send plugins
  when inserted too early on audio input buses chain (after a ticket
  report by Holger Marzen, thanks).

- Allow the build system to include an user specified CFLAGS (patch by
  Cristian Morales Vega, thanks).

- Shift/Ctrl keyboard modifiers now set to extend current clip
  selection while in main track view's Edit/Select Mode/Range, Rectangle
  modes.

- Main Edit/Select Mode/Automation icon retouched to look a bit more
  obvious and intuitive, hopefully ;)

- Allow to change the velocities/values of the current selected events
  which have the exact same onset times and hide beyhond each other on
  the MIDI clip editor's pane below the main view piano-roll (ie. the
  one that represents MIDI event values as a bar chart).

- Fixed some problematic playback/export muting and annoying cleanup
  freezing, due on audio tracks with too many clips eg. more than
  hundred clip splits (hopefully fixes an issue reported by Louigi
  Verona, thanks).

- LV2 UI resize feature support/control added.

- Fixed dedicated MIDI control and MIDI metronome port connection
  restore conflict (thanks to jhammen catch & patch:).

- New user preference option added: reverse middle-button role to
  Shift/Ctrl keyboard state, in special regard to edit-head/tail vs.
  play-head positioning while on the main track and MIDI clip editor
  (aka. piano-roll) views.


0.5.10  2013-07-18  Kilo Papa

- Default drum-key note names are now properly showing on MIDI tracks
  that are assigned to known drum/percussive instrument patches (eg.
  SoundFont 2 (.sf2) bank 128).

- Time display format (frames, clock-time or BBT) may now be changed
  from the context-menu on any time entry spin-box.

- LV2 plugin support is now tightly tied to liblilv; the same tie
  applies to LV2 plugin UI support and libsuil and vice-versa.

- Mixer buses racks (ie. left/input and right/output panes) are now
  both kept fixed-width when whole mixer window is resized.

- Unconditional LV2 Dyn(amic)-manifest support has been added.

- Main track-view Edit/Insert, Remove/Range dialog is now being
  introduced with optional applicability to Clips, Loop, Punch in/out,
  Automation, Tempo-map and/or Markers.

- New range removal editing tool, split/moving clips backward at the
  specified edit-head/tail interval (Edit/Remove/Range, Track Range)--by
  Tuomas Airaksinen, thanks.

- Andy Fitzsimon's original icon from opencliparts.org makes it
  through as the default standard scalable format (SVG).

- Automation's back in effect on Track/Export Tracks.../Audio.

- Reversed Shift/Ctrl keyboard modifier roles on middle-button
  clicking over the main track and MIDI clip editor views (aka.
  piano-roll) in regression to original old semantics.

- Color selection actions now have a brand new palette icon.

- Make sure main track-view and MIDI clip editor selection is only
  cleared on specific discrete commands.

- Try keeping the original session file in most recent files menu
  list, despite current version auto-incremental backup mode is in
  effect.

- Fixed non-zero clip offsets upon tempo/time-scale changes.

- Some sympathy to extreme dark color (read black) schemes is now
  indulged on empty backgrounds.


0.5.9  2013-06-06  Juliet Quebec

- Auto-incremental version numbering of backup session files; brand
  new versioning mode option added.

- Fixed one long as ever MIDI file export bug, which was about washing
  all self-induced MIDI bank-select (CC#0, CC#32) and program-change
  (PC#) events into MIDI channel 1, regardless of the source
  track/channel.

- Fixed initial sample-rate settlement on plugin chains for all tracks
  and buses whenever a session file original sample-rate differs from
  the current audio device engine (ie. JACK).

- New German (de) translation added (by Guido Scholz, thanks).

- Now accepting JACK transport tempo and time-tignature changes while
  in slave transport mode.

- Fix ref-count and auto-removal of created files that result from
  clip merge/export when session is closed but not saved.

- MIDI track instrument bank/program selection, from plugin UIs that
  support it, is now effectively and complete.

- Custom connections for dedicated audio outputs from all plugin
  chains in MIDI tracks or buses are back in business, hopefully restored
  gain on session load (ticket by yuba, thanks).

- Track Properties dialog now dirty after any plugin related change
  (another head-up by yuba, thanks again).

- Tempo Map/Markers dialog is not set initially dirty anymore.

- Audio buses plugin state's persistance were found AWOL: while being
  properly saved as usual, were being restored to default on every
  session reload (as noticed by yuba, thanks).

- NSM (Non Session Management) support is being introduced.

- The MIDI clip editor (aka. piano-roll) gets a brand new rescale
  mode: ctrl+dragging the right edge of a note now rescales all times
  and duration of all the subsequent selected notes (after an
  interesting idea/ticket by Joel Leclerc, thanks).

- The new MIDI clip editor rescale mode also applicable to event
  values (eg. note velocities, pitch-bend), while ctrl+dragging the
  edges of an event vertical bar.

- VST plugin (GUI) idle timer makes a comeback.

- Hard-wired LV2 UI selection order for plugins which supply more than
  one option (lv2_external_ui gets always honored first then, as
  provided via libsuil, X11, GTK and last but not least, Qt4).


0.5.8  2013-03-19  India Romeo

- Dropped old audio ramping spin-locks as its glitching reduction
  weren't that effective anymore.

- Audio bus and track gain may now be set for amplification again,
  from +0dB up to +6dB, while using the Mixer strip sliders/faders (an
  old function found missing ever since pre-TYOQA).

- Basic LV2 X11 UI support has been added through libSUIL but only
  really effective if plugins doesn't support the LV2 External UI
  extension in addition which takes precedence on any case.

- Improved precision tolerance on the Tempo Map / Markers dialog.

- Reinstated and fixed (old) warning and impending re-conversion on
  loading session files which the original sample-rate differs from
  current audio device engine (aka. JACK).

- LV2 Plugin State/Preset name discrimination fix (after a ticket by
  Jiri Prochaszka aka. Anchakor, thanks:)

- Linked/ref-counted audio clips must not overlap and now must have a
  buffer-size worth of a gap between each other.

- Something fishy has been detected in the SSE (not so) optimized code
  from SoundTouch's-inspired WSOLA time-stretching.

- Splitting clips apart is now easier than ever: a brand new entry
  enters the main menu scene: Edit/Split (Ctrl+Y) splits up clips
  according to current range/rectangular selection.

- Audio clip offsets are now properly corrected when time-stretching
  is applied via Shift/Ctrl+dragging any of the clip edges.

- One semi-colon typo was hiding proper descrimination of peak files
  used to draw distinct waveforms of time-stretched audio clips.

- Track automation curves are now also affected by Edit/Insert/Range
  commands.

- Finally, some visual feedback is shown while audio track export is
  running, in he form of a main status progress bar.

- New user option: save backup versions of existing session files.

- Default session directory now set to regular file's path on load.

- A convenient minimum slack duration has been fixed for MIDI SysEx
  messages.

- LV2 Time/position information is now asynchronously fed back into
  their parameter (control input) ports when designated.

- LV2 State is now properly restored for  plugins inserted on buses,
  probably solving the Calf Fluidsynth SoundFont information missing on
  buses ticket, reported by Albert Graef, thanks.

- Fixed an immediate null pointer crash on creating a parentless new
  group while on the files organizer widget.

- Preparations for future Qt5 migration.


0.5.7  2012-12-27  Hotel Sierra

- Loop and punch in/out ranges may now get set simultaneously, may
  even overlap each other. However, punch in/out range recording will
  always prevail over any loop recording takes.

- LV2 Worker/Schedule now supporting multi-instance vs. single-UI
  scenarios.

- LV2 Options and Buf-size extension support added.

- Fixed an off-by-one-tick bug on MIDI file input which was leaving
  spurious zero-length runt notes at the end of a MIDI clip, if a
  note-on coincides with the ending/split point (on ticket issued by
  Jonathan H. Pickard, thanks).

- Good old SLV2 library support for LV2 plug-ins (libslv2) is now
  irrevocably deprecated, or better said, completely wiped-out from the
  LV2 host code, now considered extinct.

- LV2 UI parameter updates are now asynchronously detached from the
  source GUI widget thread, in attempt to improve cross-GUI-toolkit
  responsiveness, specially focused on LV2 plugins with a GTK based UI
  (eg. amsynth, triceratops, etc.).

- Make sure LV2 UI parameters (input control ports) get updated when
  loading a genuine LV2 state preset.

- Improved the (custom) tempo spin-box widget signal(ing) processing
  and dispatching.

- Show proper pointing cursor and location tool-tip while dragging any
  of the time ruler markers (including latest location markers/bar).

- On saving as an archive/zip session file (suffix .qtz) include only
  those files that are actually referenced by live clips arrangement.

- Ongoing integration of location markers infrastructure (time-scale
  and MIDI-file support).

- Free-hand/linear retouching of event values, while on the MIDI clip
  editor's view pane below the main piano-roll (eg. note velocities), is
  now possible provided the target events are selected, otherwise the
  usual painting edit sub-mode applies (cf. menu Edit/Select Mode/ Edit
  Draw).

- The MIDI clip editor now senses which target view pane has focus for
  general selection commands (cf. Edit/Select/None, All, Invert, Range)
  whether the main piano-roll or the event value (velocities) view.

- Mouse middle-button clicking is back in business on main track-view
  and on MIDI clip editor views (piano-roll) as an immediate play-head
  (re)positioning command or merge/reset the edit-head/tail cursors if
  Shift/Ctrl keyboard modifiers are pressed.

- Formerly protected, class qtractorClip::FadeFunctor is now public in
  an shot-in-the-dark attempt to fix clang builds (as reported by Jekyll
  Wu, thanks).

- Override all sub-classed widgets mouse-pointer event handlers to be
  isolated from base widget style and/or window management.


0.5.6  2012-10-02  Golf Tango

- Day 1 post-release fix: LV2 plugins with a GTK GUI were not shown
  due to their respective widget (GdkWidget) being prematurely and
  unexpectedly destroyed when raised (via libsuil).

- The dedicated audio outputs setting for instrument plugins was not
  in effect as default global option for new MIDI tracks, now fixed,
  hopefully (thanks to danboid aka. Daniel MacDonald persistence).

- An immediate Files widget cleanup option is now made available, as
  to select and remove all unused file entries.

- MIDI track (un)solo/mute reset clip event sequence fixing; definite
  regression to MIDI track's occasional muting bug while clip editing
  and playback is rolling.

- Apologies due on this one: Shift/Ctrl keyboard modifiers are back in
  business to change MIDI events currently selected in one single step
  while on MIDI clip editor (aka. piano-roll). Sorry.

- Japanese (ja) translation added (by Takashi Sakamoto).

- General time-scale bar, beat and tempo rounding fixing.

- Keyboard shortcuts configuration (Help/Shortcuts...) now checks and
  warns for already assigned key sequences.

- The View/Snap menu is now listed as fully accessible actions, making
  each snap-per-beat setting assignable to a keyboard shortcut (after a
  feature request by danboid aka. Daniel MacDonald, thanks).

- Fixed MIDI resize tool, now applying symmetric proportional changes
  to pitch-bend event values [-8191, +8191].

- Fixed re-loading of LV2 Presets that are newly created/saved during
  current session; actually delete and remove a LV2 Preset if found in
  the file-system (as suggested by Jiri Prochaszka aka. Anchakor, thanks
  again).

- Preset drop-down list is now sorted, on plugin properties dialog.

- After a long absence, edit(blue) cursor vertical lines are back on
  the MIDI clip editor views (aka. piano-roll).

- LV2 1.0.0 compliance phase II: LV2 State Files support completed.

- Updated to newer LV2 External UI extension support (now maintained
  by Filipe Coelho aka. falktx).

- Brand new editing tool: empty range insertion, split/moving clips or
  events forward the specified edit-head/tail interval, defaults to next
  measure or bar (cf. menu Edit/Insert/Range, Track Range).

- Don't show the waiting cursor anymore when loading any plugins which
  might have a nice native editor (GUI) and options are set to show it.

- MIDI clip editor now hopefully rid of random but persistent muting,
  a slight regression to editing while playback is rolling.

- A MIDI file player's bug, evident while transport rolling in looped
  mode, has been fixed with yet another oneliner patch (kind by Jiri
  Prochaszka aka. Anchakor, thanks again).

- LV2 plugins with a Qt4 GUI (guess what or whom?) are now guaranteed
  to some reasonable window type like Qt::Widget but not Qt::Dialog nor
  Qt::Popup, preventing those from standing always on top while on some
  window managers or desktop environments (a simple addition by Jiri
  Prochaszka aka. Anchakor, thanks).

- MIME type icons support for session (*.qtr *.qtr), template (*.qtt)
  and zip/archive (*.qtz) are now being introduced.

- LV2 State Files feature support is shamelessly getting real trial,
  now letting files referenced in LV2 plugin states to be seamlessly
  included when saving to a zip/archive file bundle (.qtz suffix).

- Added some virtual destructor stubs to shut up gcc 4.7 warnings.

- Improved plugin state resilience, now finally with parameter name
  matching, specifically targeted on loading old sessions or plugin
  preset files (.qtx), preserving old saved plugin states as much as
  possible in face of rogue or discrete parameter index renumbering, due
  naturally on any plugin's life cycle ie. upgrades etc.;)

- Added some more snap-to-beat divisors (Beat/14, /21 and /28) due on
  feature request ticket, while dropping highest, probably useless one
  (Beat/128).

- New French (fr) translation added (by Yann Collette, thanks).

- Slight late optimization on vertical zebra/grid lines drawing.


0.5.5  2012-06-15  Foxtrot Uniform

- Auto-monitored MIDI tracks were missing their pass-through to their
  respective MIDI output bus plugin chains, now fixed and letting any
  multi-timbral instrument plugin to get a peek from auto-monitoring.

- New user option/preference to whether to open a plugin's editor
  (GUI) by default, when available (cf. View/Options.../Plugins/Editor).

- Clicking and/or dragging for rubber-band selection on main
  track-view canvas doesn't change the edit-head and -tail positions
  anymore.

- Backward and Forward transport commands now have an additional stop
  at first clip start point.

- LV2 Atom/MIDI buffering support is finally entering the scene; LV2
  Worker/Schedule support is also included in a bold attempt to convey
  non-MIDI event transfers between plugin and its UI.

- MIDI Clip editor (aka. piano-roll) and MIDI Tools fix: avoid note-on
  events of zero velocity, which conventionally equates to a dangling
  note-off event and dropped into oblivion sooner or later. There's no
  more need for Shift/Ctrl keyboard modifier to change in one single
  step all the MIDI events that are currently selected (now consistent
  with drag-move).

- LV2 Presets support now entering effective operational status; a new
  local option has been added (cf. View/Options.../Plugins/Paths/LV2
  Presets directory; default is ~/.lv2).

- Dropped XInitThreads() head call as it was never useful but on those
  early days of JUCE VST plugins.

- Italian (it) translation added (by Massimo Callegari, thanks).

- Clip fade-in/out dragging now follows snap-to-beat setting.

- Late modern eye-candy indulgence: alternate shaded stripes, on every
  other bar as in a "zebra" background option for the main tracks and
  MIDI clip editor views (cf. View/Snap/Zebra).

- LV2 Time/position information is now being supported through special
  designated plugin input ports (after suggestion by Filipe Coelho aka.
  falktx). Additionally, the time/position information report has been
  corrected and complemented for VST plugins.

- Audio vs. MIDI time drift correction has been slightly improved
  against rogue tempo changes across looping cycles.

- Honor tempo/timing on MIDI instrument plugins. Happy regression fix
  on getting MIDI note-offs at looping ends back in business; all the
  necessary bumming for MIDI plugins to play nice in face of tempo
  changes and whenever playback is started from anywhere but the
  beginning of the time-line (ie. frame zero); thanks to rvega aka.
  Rafael Vega, for the heads-up).

- Audio clip wave-forms were being displayed in inverted phase (ie.
  upside-down) all this time ever since day one. What a shame! :)

- LV2 Programs interface is getting initial experimental status, to
  let LV2 instrument plugins get on par with the DSSI and VST crowd for
  MIDI bank/program instrument inventory and selection support (a
  sidetrack complot with Filipe Coelho aka. falktx, thanks:).

- Dropped the old but entirely useless LV2 URI-unmap feature, now
  being superseded by official LV2 URID (un)mapper.

- Russian (ru) translation added (by Alexandre Prokoudine, thanks).

- SLV2 deprecation process started, effective now at configure time.

- Added include <unistd.h> to shut up gcc 4.7 build failures (patch by
  Alessio Treglia).

- Another approach avoiding recursive observer widget updates. Also
  applies to mixer, monitor and track state buttons.

- Update to latest LV2 state extension (by David Robillard, thanks).

- Loop-recording/take number displayed on clip title, respectively.

- Make(ing) -jN parallel builds now available for the masses.

- A one buffer period slack on audio engine's loop turn-around logic
  might just have fixed an illusive report on loop-recording/takes going
  progressively out-of-sync, most notably when recording under large
  audio buffer period sizes (>= 1024 frames/buffer).

- Editing MIDI while playback is rolling, doesn't mute the track any
  more, adding a point to the live editing experience.

- Finer granularity for direct access parameter mouse wheel changes.

- Dropped a dumb optimization for short full-cached multiple linked
  /ref-counted audio clips which were incidentally out-of-sync after
  rewind/backward playback. Once again and uncertain to be the last take
  on this, got fixed (probably related to some oddity reported by Louigi
  Verona, thanks).


0.5.4  2012-03-01  Echo Victor

- Direct access plugin/insert parameter changing tool-tip added.

- A Transport/Panic action enters the scene, in a nostalgic attempt to
  emulate the all-MIDI-track-shut-off command of those drop-dead and
  primordial MIDI sequencers of all time. Now finally a keyboard
  shortcut and mouse click-away ;)

- MIDI editor command redo/undo adjustment now effective on all other
  channel events besides notes, which overlap at the same event time.

- A new File/Unlink menu action is now made available from the MIDI
  clip editor (aka. piano-roll) for detaching the current linked/ref-
  counted MIDI clip into a new auto-incremented SMF filename.

- Some audio/MIDI content/media-file resource management is entering
  the scene, taking care of some file-system house-keeping, this gets
  evident on unsaved/dead recorded files being automatically removed from
  the file-system, on session close.

- Killed the old and entirely deprecated LV2 Save/Restore and Persist
  feature/extensions support.

- Auto-monitored MIDI events are now merged/queued correctly into the
  instrument plugin playback queue, avoiding sudden crashes, hopefully.

- Awesome patch from Albert Graef, thanks, which makes most MIDI SysEx
  to get through MIDI instrument plugins at last; applies to DSSI and
  LV2 plugins only.

- LV2 URID map/unmap feature support added.

- Plugin parameter value redo/undo command aliasing fix.

- Double-clicking in plugin list item now show/activates the plugin's
  editor window (was toggling visibility/activation).

- Plugin path settings have been fixed again, with special regards to
  an effective LV2_PATH environment variable settlement.

- Session properties dialog now asks to create a new session directory
  if the given one does not currently exist.

- MIDI note names and their respective octave numbers are now
  compliant with the ISO standard where middle C (60) is now C4 (was
C3).

- Fixed audible glitch/pop at the beginning of an audio clip with long
  quadratic or cubic shaped fade-in (reported by Lougi Verona, thanks).

- MIDI Controller Auto-Hook patch by Alessandro Preziosi, thanks.

- Make sure all MIDI note-off are always queued after their respective
  note-on events when buffering for MIDI input of instrument plugins,
  event though for zero duration MIDI note events (hopefully fixing the
  hanging notes bug reported by Albert Graef, thanks).

- LV2 MIDI-fx plugin support has been repaired.

- Single-track clip selection logic corrected again, fixing multi-clip
  selection drag/move across an odd number of distinct tracks (after a
  bug report by Louigi Verona, on linux-audio-dev, thanks).

- MMC Locate time-code hour bit-field fix; MMC Locate now also on loop
  turnarounds (patches by Albert Graef, thanks).

- Looping across multiple linked/ref-counted audio clips was
  incredibly broken with complete out-of-sync playback. Hopefully fixed
  now, with auto-unlinking/cloning all the affected audio clip buffers.

- Audio clip overlapping detection off-by-one(-frame) fix.

- MIDI Tools/Resize value ramp mode has been added (mocking the
  'resize to range' feature request by Daniel MacDonald aka. danboid).


0.5.3  2011-12-28  Delta Whisky

- Fixed initial LV2 plugin UI widget/window titles.

- Attempt to get any brand new LV2 plugins Qt4 enabled UI's working on
  either slv2 and lilv build modes ;) (nailed by falkTX, thanks).

- Current clip is ultimately inferred from the one under the play-head
  position and current selected track; the last one clicked over and/or
  selected still has precedence (following request by Loiugi Verona).

- Drag-moving clips horizontally with the keyboard arrow-keys just got
  a step better with a fixed minimum of one pixel, depending still on
  the current snap-per-beat setting and horizontal zoom level (as
  suggested by Louigi Verona, thanks).

- Get maximum and minimum peak values back when drawing audio
  waveforms.

- Automation play/feedback has been missed to show on those plugins
  that provide their own GUI, now on par with all the rest 'homebrew'
  widgets (eg. generic plugin properties dialog).

- All plugin parameters automation and selection were left
  inaccessible until the generic native plugin dialog is eventually
  shown, now fixed.


0.5.2  2011-12-16  Charlie X-ray

- Fixed a probably old lurking destructive bug, which was incidental
  to when an invalid or non audio file is imported, intentionally or by
  mistake, into new or existing audio clips (eg. importing a MIDI file
  where an audio file is expected).

- Force audio file closing to occur on the very same disk-write (sync)
  thread, possibly mitigating an old random crash issue lurking in the
  vorbis reference encoder (recording) re. the non thread-safeness of
  the vorbis_analysis() final call.

- Fixed extraordinary shadow-playback of audio clips which extent were
  longer than the respective audio file length.

- Default session file format option now promoted (see View/Options...
  /General/Session) in the way of whether file suffix gets honored upon
  session open or save (.qtr, .qts or .qtz). This brand new option also
  applies for default state file format on a JACK-session salvage
  context.

- The View/Options... (aka. user preferences) dialog sees a new
  arranjement in layout, with some options moving into this brand new
  tab page called General.

- LV2 State extension support has been added, which shall replace old
  LV2 Persist extension interface in the near future. It also replaces
  the LV2 Files extension from now on (thanks to Dave Robillard).

- Dirty MIDI clips are now auto-saved when MIDI track properties get
  changed through its own dialog.

- Fixed one probable too old crash when canceling a new/add track
  dialog.

- MIDI SysEx event list editing is now fixed.

- Once again, make sure all recorded clips start and end at the very
  same position when multiple track recording is turned on/off, while
  playback is still rolling.

- Fixed Makefile.in handling installation directories to the configure
  script eg. --datadir, --localedir.

- Possible attempt to improve in-flight recording clip display,
  especially when looping and MIDI clips are involved.

- MIDI clip revision (re)numbering paranoia has been improved as much
  to avoid MIDI file clashes as much as possible while editing multiple
  MIDI clips which reference the same SMF and track/channel.

- Creating new or updating existing buses with exact same names of any
  current dedicated inputs/outputs (which are implemented as special
  covert buses) is now disallowed.

- Loop-recording/takes functionality is now ready for the masses and
  accessible from brand new Clip/Take menu (Select, First, Previous,
  Next, Last, Reset and Range...; the latter is actually being provided
  as bonus feature :) as to fold any given clip into so-called takes,
  simulating loop-recording mode over an arbitrary range).

- Loop-recording/takes infrastructure integration is sneaking in: all
  clips recorded under a loop/cycle range may now get split (folded)
  into one or more so-called takes. A new option is now provided, as to
  select which take is about to retain after the recording ends, either
  the First or the Last one. Just turn this mode off (None) and keep
  with the old recording behavior, where clips are laid out unfolded
  through the timeline, as usual (see menu View/Options.../Display/Loop
  recording mode).

- Improved robustness in face of disabled audio buses when global
  maximum number of JACK (audio) ports is surpassed.

- Improved single-track clip selection status logic.

- Clip/Unlink action is now available for detaching linked/ref-counted
  MIDI clips, renaming and saving into auto-incremental SMF filenames.

- Temporary session archive directory now (pre)fixed with program name
  (eg. /tmp/qtractor).

- Fixed VST GUI editor window title on first show.

- Fixed build for ancient VST-SDK 2.3 (32bit only).


0.5.1  2011-10-05  Bravo Yankee

- More LADISH support: SIGTERM signal is nowrapped for graceful
  application close.

- Improved paste-repeat snap precision when dealing with large repeat
  counts.

- Czech (cs) translation added, by Pavel Fric.

- Added a few snap-to-beat divisors (unusual Beat/5, Beat/7, Beat/9
  and Beat/10) for completeness sake.

- Such a simple change of mind with a visual twist: the "A" track
  automation button/menu has now been moved to the right-most, as it
  belongs ;)

- Auto-connection of dedicated audio outputs is now optional for
  default audio master bus, metronome, player and MIDI instrument plugin
  dedicated audio outputs.

- Finally, after a pitiful large brain-dead period, generic plugin
  forms are now showing all possible controllable plugin parameters
  featuring a paged, tabbed dialog, whenever applicable.

- Special hack/fix for JUCE based native VST plugins, which are the
  most actually found with a GUI editor, skipping explicit shared
  library unloading and thus avoiding some mysterious crashes on session
  close and/or application exit.

- Support for MIDI-fx plugins (native VST and/or LV2) is now
  implemented and functional (intra-chain only).Instrument plugin
  bank/program selection  was found broken or dead in the water,
  specially on VSTi, now finally  fixed again.

- VST plugin parameter value display on generic form is now back in
  business (were dead regarding value changes).

- All plugin's provided GUI editors are now honored by being popped up
  first, instead of the usual but good old generic plugin form.

- Long overdue implementation of a dedicated MIDI file player is now
  accessible from the MIDI files widget; one can play the whole SMF or
  just a single track or channel.

- Update to a newer VeSTige header, probably fixing an old 32 vs. 64
  bit mismatch.

- Avoid JACK session filenames/paths to be ever shown; also avoid all
  buses ports (re)connections when JACK sessions are (re)loaded, given
  the fact that session management will take care of just that; more
  also, untitled/default session names are now also picked up to match
  current LADISH project name, obviously given by LADISH_PROJECT_NAME
  environment variable, whenever present (as suggested by Nedko
  Ardaunov).

- Paste-repeat floating selection has been fixed (was showing only the
  last repeated selection).

- Coherence of tempo changes on audio and MIDI clips, whether
  automatic time-stretching is in effect, has been slightly improved,
  hopefully fixed.

- Bold attempt to get linked (aka. ref-counted) audio and MIDI clips
  into practice.

- Main track view now showing all clips above the grid.

- Added support for both new and older (deprecated uri)
  lv2_external_ui extension (by Nedko Ardaunov).

- Following yet another great idea, and implementation, by Holger
  Dehnhardt, who already brought us the new aux-send insert plugin,
  thanks again, the so-called direct access control option is now
  featured for any plugin parameter right from plugin listings eg. mixer
  strips.

- General resource consumption and management has been slightly
  improved, due to internal buses allocation optimization.

- Fixed nasty crash-bug that was severely affecting all sessions that
  had at least one insert (pseudo-)plugin on any audio input bus.

- All automation curve nodes are now relocated whenever disparate
  session sample-rate is detected on load.

- New aux-send/insert pseudo-plugin is now introduced, allowing to
  route any track audio output to any other audio output bus besides the
  nominal one -- thanks to an original implementation from Holger
  Dehnhardt.

- New immediate edit/loop-range settings from current clip extents,
  accessible on the main menu (Clip/Range Set, Loop Set) and from MIDI
  clip editor menu as well (File/Range Set, Loop Set).

- MIDI Names XML files (*.midnam) may now be imported into MIDI
  instrument definitions.

- Avoid cursor reset while editing MIDI events list (fixes bug
  reported by Frank Neumann).

- Just some typos fixing (patch by c-korn).

- Track view automation curve editing mode has been slightly fixed,
  now allowing for other previously existing point-and-click mouse
  operations.

- Default automation curve mode is now preserved (following a
  suggestion by Alexandre Prokoudine, thanks).


0.5.0  2011-07-22  Alpha Zulu (TYOQA)

- MIDI controller learn/catch-up sees the way in: MIDI controller
  changes are now only effective after catching-up with their respective
  program parameters, avoiding abrupt jumps and keeping a safe and
  continuous behavior.

- Track/Height menu is now featured, giving access to Increase,
  Decrease or Reset the current track height.

- All changes to audio gain and panning on tracks and buses are now
  applied following a piece-wise linear ramp, reducing the old nasty
  clicks, pops or zipper artifacts that might be awfully audible on some
  situations, most specially on automation.

- All zooming in/out is now relative to either the viewport center or
  current mouse cursor position if found laying inside.

- TYOQA! the underground sources have emerged:... after years in the
  making, track automation, or dynamic curves as some like to call, is
  finally a reality, tricky but real ;)

- Audio clip anti-glitch/ramp-smoothing effect is now slightly
  independent of current buffer-size period.

- Once buried under the Edit menu, Clip menu has been finally promoted
  to top main menu.

- Debugging stacktrace now applies to all working threads.

- Fixed muted loop playback on audio clips ending coincidentally with
  the loop-turn/end point.

- Old/deprecated JACK port latency support added to audio recording
  latency compensation.

- Audio clip merge/export lock-ups now untangled.

- LV2 extension headers update.

- Fixed configure of newer LV2 host implementation stack (LILV) when
  older (SLV2) is not present.


0.4.9  2011-05-26  The Final Dudette

- Session file format saved on JACK session has been reverted to
  archive/zip bundle one (.qtz) now using temporary extraction directory
  when loading an existing JACK session.

- Main toolbar time and tempo widgets get their visual extents a bit
  more theme-friendlier ;).

- Some current working directory trickery is now in place avoiding
  JACK session directories to ever be picked as default, as much as
  possible.

- Ghost-playbacks are now avoided on audio clips that are artificially
  extended beyond their own audio file lengths.

- Recording clips now shown in a reddish shade; also, it's all now
  shown a bit more correctly, regarding the lead and within looping
  range.

- Custom tempo spin-box widgets now honoring the decimal point cursor
  positioning for integral up/down tempo value stepping.

- Audio recording latency is now compensated via automatic clip
  offsetting.

- Audio peak file generation is now pipelined on a single unique
  thread, instead of old one per audio clip file basis.

- MIDI tempo/time-signature map import problem has been hopefully
  fixed.

- Session and track names are now sanitized from slashes (fixes bug#
625798@bugs.debian.org).

- Mouse wheel effect to sliders is now reversed.

- An appropriate export filename is now suggested as default
  (Track/export Tracks...).

- Follow-playhead automatism is now temporarily suspended while mouse
  cursor hovering prompts for any editing action (applies to main track-
  view and MIDI clip editor/piano-roll).

- Audio vs. MIDI time drift correction now takes jack_frame_time() as
  audio time reference.

- Audio buffering internal synchronization logic gets it bartered:
  three bools for a single byte flag.

- Connections are now preserved as possible when changing bus
  properties (View/Buses.../Update).

- A rare audio clip looping out-of-sync condition got squared,
  hopefully the last ;)

- Yet again, the audio clip buffer/disk-streaming optimization has
  been almost completely redrawn: now there's one thread per audio
  track.

- Not replacing a session directory that already exists on loading an
  archive file (.qtz) is now fixed with an usable brand new untitled
  session.

- The major thread optimization has been slightly improved: the audio
  clip buffer/disk-streaming thread is now served in a FIFO manner (was
  LIFO).

- Custom time/tempo spin-box widget change fixup.

- Audio clip filename change segfault/crash fixed.

- Make sure all clips in multiple recording tracks start and end at
  the very same position whenever recording is already engaged and
  rolling.

- Hopeful fix to a potential audio buffering race condition, which was
  a probable cause of random muted clips.

- Avoid recursive observer widget value updates.

- Almost complete rewrite of the main track-view selection and
  redrawing logic, taking advantage of the fundamentally static
  graphical backstore.

- Autonomic resizing of mixer bus splitter sizes.

- Improved timing for monitored MIDI events being buffered though MIDI
  instrument plugins, while playback/transport is rolling.

- Audio peak/waveform is now slightly tweaked from the early
  optimization days (master C++ guru has always said that was root of
  all evil anyway :).

- MIDI controller mapping now with "Invert" value option. Also, new
  "Inputs" and "Outputs" buttons have been added as helpers for MIDI
  control port connections access.

- Main left pane vertical splitter resize hack,  avoiding some track
  list update re-entrancy.

- Inserting a LV2 instrument/synth plugin on an audio track or bus
  were causing immediate crash, now fixed (give or take some event
  buffer stub).

- Plugin Activate All/Deactivate All menu fixing.

- Make sure given session directory has all the necessary access
  permission (read/write) while on session properties dialog.

- Dedicated audio outputs setting for instrument plugins inserted on
  the MIDI track properties dialog were not being honored, now fixed.

- Force update/close of all MIDI clips and their respective editors
  (piano-roll) if open, when changing the global session tempo (BPM).

- Removed the misleading "(Any)" special channel value while on MIDI
  controllers/learn dialog.

- Floating tool-tips now being shown also while on mouse
  rubber-banding (drag-select).

- Audio clip pitch-shifting change fixing; also, tooltips now showing
  semitones units instead of a clueless percentage.

- Rendering audio wave-forms while recording is now a little bit
  smoother than before.

- New main track-view clip selection tool: invert current selection
  (Edit/Select/Invert). The MIDI clip editor (piano-roll) also gets
  proper range selection tool (Edit/Select/Range).

- More eye-candy: muted/non-soloed tracks are now slightly shaded on
  the main track-view.

- A major hidden optimization has been implanted: all audio clip
  buffer/disk-streaming threads are finally merged into a single
  multiplexing thread (was one thread per audio clip longer than 3 sec.
  which was quite wasteful and creepy;).

- All plugin list view changes are now properly signaled to track
  properties and bus manager dialogs and enable their respective
  acceptance.

- Two brand new MIDI tools make their appearance: Scale-Quantize and
  Snap-to-Scale. The later may be readily accessible from the MIDI clip
  editor toolbar and menu (check View/Toolbars/Scale and View/Scale).

- Mixer track strips are now completely redone whenever a track gets
  moved or re-ordered on main track list-view.

- Transport auto-backward option is now honored whenever a new session
  gets loaded.

- LV2 extension headers update.

- Got rid of recent QX11EmbedContainer bloating, while introducing
  gtk_init() as for LV2 GTK UI support stabilization.

- Tempo tap helper button was added to View/Tempo Map... dialog.

- Executable DSSI plug-in GUI detection fixed.

- Backout default session directory after cleaning up extracted
  archive/zip bundle session (.qtz).

- Files widget item selection feedback/focus fix.

- MIDI editor anchor event floating tool-tip fix.

- Probable fix for GtkStyle usage detection (might be gentoo
  specific).


0.4.8  2011-01-18  The Fiery Demigoddess

- MIDI controller mapping/learn is now possible on all mixer controls
  (monitor, gain, panning, record, mute, solo).

- An internal rewrite (aka. refactoring) have been carried out, making
  sure that all track state action buttons (R, M, S) are now all under
  the observer pattern umbrella.

- Single track range selection is now available on main menu
  (Edit/Select/Track Range; default keyboard shortcut: Ctrl+Shift+R);
  additionally to vertical range and horizontal track actions
  (Edit/Select/Range, Track) all these operations can now toggle over
  the previous selection.

- Direct clip selection from Files list item has been brute-forcefully
  implemented (after being challenged by Jiri Prochaszka aka Anchakor:).

- Files tree widget sticky "New Group" item fixed.

- A new menu option has been added (View/Tool Tips) to show/hide a
  floating tool-tip while dragging, moving, resizing or pasting selected
  clips or events over the main tracks view and MIDI clip editor (piano-
  roll) respectively, displaying current target position and status.

- Attempt to reset audio/MIDI time drift compensator on every engine
  start and loop turnaround.

- Moving the punch-out marker over the main track time ruler was
  failing to shrink the punch-in/out range, now it does (not).

- MIDI clip tools (quantize, transpose, normalize, randomize, resize,
  rescale and the new timeshift) are now all accessible from the main
  tracks view (Edit/Clip/Tools menu) and apply to all events on current
  selected  clip(s).

- LV2 Persist extension support is being introduced.

- A new timeshift MIDI tool has been added, after an awesome patch by
  Jiri Prochaszka aka Anchakor; applies to selected events between edit
  markers, distorting their time and duration (optionally), either
  slowing down and accelerating, based on a given parameter P value.

- Audio clip/buffer pitch-shifting fixes with regard to latency
  correction due on the RubberBand library one-pass (real-time)
  processing mode.

- New Send Gain and Dry/Wet control parameters have been implemented
  for audio Inserts pseudo-plugins.

- MIDI channel/master volume enqueued events are now affected by the
  current track/bus volume (0-100%).

- Prevent old rounding error when resetting to plugin parameter
  default value with the mouse middle-button click while hovering a
  slider widget (observer).

- A quantize percentage has been added to MIDI clip editor quantize
  tool (Tool/Quantize...) for time and duration quantization (0% for
  none; 100% for full regular quantization).

- Metronome bus/ports are now created at engine start and not when
  user switches it on anymore.

- Make sure all audio clip buffers are in sync upon smooth-ramping
  going off and playback is rolling.

- Copy-pasting across controller event types is now possible on the
  MIDI clip editor (aka piano-roll).

- Finally indulged, the genuine transport stop button makes its
  appearance on main toolbar and menu.

- Main tracks grid visibility option (View/Snap/Grid).

- Yet another off-by-one (frame) audio buffer bug got squashed away:
  rare symptom was that some audio clips were being left dead silent
  right after playback of their first looping period.

- Plugin parameter name/label now a proper attribute of its respective
  MIDI Controller observer instance, allowing to be shown on dialog
  title (MIDI learn).

- Default session file format saved on JACK session demand is now the
  bundle archive/zip one (.qtz).

- Plugin selection dialog now shows whether a plugin features its own
  editor (GUI) and/or external state configuration (EXT).

- Help/Shortcuts... window positioning and sizing are now preserved.

- All plugin chain changes over the track properties dialog now sure
  counts as a dirty action.

- Newly extracted archive/zip session directories are now removed
  automatically from the file-system on session close, prompting the
  user for confirmation (cf. View/Options.../Display/Confirm Removals).

- Ctrl+mouse-wheel is now set for zooming in/out, on main track-view
  and all applicable MIDI clip editor views (piano-roll), according to
  current zoom mode (see View/Zoom Horizontal, Vertical or All for both
  ways simultaneously).

- New MIDI clip editor (piano-roll) mouse hovering effect
  (eye-candy++).

- After too many a user request, a brand new session archive file type
  is being introduced (.qtz) which tries to bundle in one single zip
  archive all the media and contents of a session.

- Add that to eye-candy: either loop or punch-in/out outer ranges are
  now shaded on the main track-view, thumb-view and MIDI clip editor
  (piano-roll) views.

- LV2 GTK UI plug-in hosting is now roaring its ugly head.

- Ignore all initial and decremental notifications of audio engine's
  buffer-size changes.

- Internal audio buffer loop points were not being set properly for
  non-zero clip offsets, leaving some as severely out-of-sync while
  rolling over loop turns. Now fixed again, hopefully.

- Avoid audio peak file clashing when deriving from audio sample files
  with distinct absolute paths but the very same file (base)name.

- A new MIDI editor (piano-roll) tool has been added: Rescale event
  times, durations and/or values by a percentage between 1 and 1000%
  (adapted thanks to patch by Jesse Lucas).

- Attempt to mitigate audio clip sequencing glitches on
  single-core/single-thread machines.


0.4.7  2010-09-30  The Furious Desertrix

- While moving multi-selected MIDI events around the clip editor (aka
  piano-roll), with help of keyboard arrow keys, that is, was not clear
  which one was the so-called "anchor" event, the one which positioning
  gets honored for snap-to-beat business. Not anymore: the anchor event
  now defaults to the earliest in time or the one the user's last
  point(-click)ed.

- MIDI control observer pattern implementation has sneaked in, making
  it ready for the so-called and long-awaited "MIDI Learn" feature and
  arbitrary MIDI controller assignment, for plugin parameters in
  particular.

- MMC DEFERRED PLAY doesn't cause transport state to stop if currently
  rolling.

- Audio clip merge processing might have been skipping  a few initial
  frame blocks, now fixed.

- Clip selection and plugin parameter hash optimization.

- Anti-glitch audio clip macro fade-in/out fixed again.

- New clip fade-in/out slopes (curves) are introduced, partially
  adapted and refactored from those easing equations of Robert Penner's
  fame.

- Clip fade-in/out non-linear slopes are now shown as actual WYSIWYG
  curves.

- Escape key now closes generic plugin widgets as ever found usual
  elsewhere.

- Picking nits: unselect current track when clicking on any gray empty
  area, also accessible from a new menu item: Track/Navigate/None.

- A nasty and deadly MIDI resolution overflow has been finally fixed,
  allowing for long MIDI sequences (1h+) to load correctly on 32bit
  machines from now on (was perfectly fine on 64bit though).

- MIDI editor selection hash optimization in face of reasonably huge
  event sequences.

- MIDI controller mapping finally refactored to support some other
  MIDI event types than just CC (0xBn) ones.

- Nitpicking fix: corrected main track-list (left pane) display when
  no track is currently selected.

- libX11 is now being added explicitly to the build link phase, as
  seen necessary on some bleeding-edge distros eg. Fedora 13, Debian 6.

- New audio metronome bar and beat sample gain options.

- Progressively, the observer pattern is being finally introduced,
  targeting all potentially automation controls and widgets as plain
  ground-zero for the (ultra-)long overdue automation feature.

- MIDI controller mapping of still non-existing tracks were being
  implicitly assigned to the last, highly numbered, existing track. Now
  fixed.

- Moving from old deprecated Qt3'ish custom event post handling into
  regular asynchronous signal/slot strategy.

- Muting/soloing tracks while playback is looping was leaving current
  audio clip out-of-sync whenever that same track is later un-muted on
  any other preceding clip. Now hopefully fixed.

- MIDI Clock support makes its first appearance.

- All tempo (BPM) calculations are now compliant to the MIDI
  conventional equivalence between beat and quarter note (1/4, crotchet)
  as common standard time division.

- Automatic audio time-stretch option is not enabled by default
  anymore.

- Standard warning Apply button is now only shown when dismissing
  dialog changes are actually valid.

- Make sure non-dedicated metronome and player buses are properly
  reset and reopen when changing regular audio buses (hopefully fixing
  bug re. crash after changing audio bus).

- Hopefully, an outrageously old bug got squashed away, which was
  causing random impromptu crashes, most often when importing audio
  clips while looping and play-head is any near the loop end point.

- General standard dialog buttons layout is now in place.

- Fixed main track view off-limits play-head positioning.

- Main tool-bar Time and Tempo spin-boxes, may now have their colors
  correct, as for most non-Qt based theme engines (ie. Gnome). Green
  text on black background has been and still is the the intended aspect
  design ;)

- MIDI file import and internal sequence representation has been
  changed to be inclusive on all bank-select (CC#0,32) and
  program-change events which were previously discarded while honoring
  MIDI track properties. Interleaved SysEx events are now also preserved
  on their original sequence positions instead of squashing a duplicate
  into the MIDI bus SysEx setup.

- Attempt to include the VeSTige header by default, as for minimal VST
  plugin support.

- JACK transport support has been slightly rewritten, in fact the sync
  callback is now in effect for repositioning.

- The MIDI clip editor (piano roll) widget won't be flagged as a tool
  window anymore.

- A tempo adjustment tool is making inroads from the menu, as
  Edit/Clip/Tempo... (factory shortcut: F7).

- Audio tracks auto-monitoring is now effective on playback.

- Make sure to ask whether a dirty MIDI clip should be saved, upon
  resizing or stretching its edges.

- Backward and Forward transport commands are now taking additional
  stops on loop points.

- Attempt to optimize track solo/mute redundant transactions, in
  special regard to MIDI track events which were being duplicated on
  soloing and temporarily muted on unsoloing.


0.4.6  2010-05-21  The Funky Deviless

- Introducing a non-painting edit sub-mode on the MIDI clip editor's
  piano-roll (see Edit/Select Mode/Edit Draw menu).

- The MIDI clip editor (aka piano-roll) is now a lot more quiet about
  saving its own dirty content, delegating all salvage questions to main
  session control.

- Don't show session restart message box when changing JACK transport
  mode option anymore.

- Dedicated MIDI control bus switching fixed. Was closing the wrong
  bus eventually and crashing the whole show with it.

- MIDI bank/program backout has been corrected on MIDI track
  properties dialog rejection (ie. user cancellation).

- MIDI bank select method has been corrected for tracks with no
  instrument defined.

- LV2 UI Instance and Data Access extension support added; reduce LV2
  external UI parameter value update flickering.

- JACK session infrastructure support.

- Initial widget geometry and visibility persistence logic has been
  slightly revised as much to avoid crash failures due to wrong main
  widget hidden state.

- Initial mixer widget extents are now set reasonably larger.

- General source tree layout and build configuration change.

- Ever since smooth-ramping introduction that having at least one
  input-only buses were causing immediate playback crashes, now
  hopefully fixed.

- Refactored for common engine client nomenclature, primarily provided
  by JACK, then secondarily passed to ALSA Sequencer, getting rid of the
  JackUseExactName requirement and lifting the unique/single instance
  restriction in the process.

- Current JACK Transport, MMC Device, and MIDI Song Position pointer
  (SPP) control modes are now saved/loaded as part of session option
  properties.

- MIDI clip editor's context menu crash on Qt >= 4.6 has been fixed.

- An ancient double-free corruption has been finally fixed at the
  audio/MIDI bus connection persistence logic.

- Improved visibility of track state buttons text (R, M, S) when
  turned on dark colored themes.

- LV2 Save/Restore extension support kicks off.

- MIDI engine read-ahead period has been shortened to half than it was
  since inception--now it's a 500msec cycle.

- MIDI clip editor event list gets its due inline editing, for time,
  note, value/velocity and duration columns, just one double-click away
  over the target cell ;)

- Add-plugin selection dialog position and extent are now remembered
  across invocations and application sessions (tipping by Frank
  Neumann).

- MIDI clip time-stretching is now made available through the same
  gestures as audio ones, by just shift+dragging either of the clip
  edges.

- Drag-and-copying plug-in instances (cloning) is now fixed with
  regard to parameter value replication.

- MIDI clip editor snap-per-beat setting is now independent from main
  multi-track view; File/Save As... dialog fixed; the current event
  selection is now kept floating as long as it's possible after editing
  command actions; finally, edit mode has been extended to free-hand
  event drawing, chalking off (piano roll) draw mode from the TODO list.

- Swing-quantize has finally made its overdue debut as an additional
  MIDI clip editor tool (see Tools/Quantize...).

- Almost since its inception, audio inserts were injecting garbage
  random noise when not being activated, now fixed.

- Dedicated audio output ports for MIDI track plugins, now have their
  connection persistence back in business due on session load.


0.4.5  2010-01-23  A Friskier Demivierge ;)

- Changing loop points while playback is rolling, with the play-head
  any near, was leaving audio clips out-of-sync.

- MIDI event list view was missing some selected items with the very
  same onset time, now fixed.

- When failing to detect a SSE enabled build, the CFLAGS variables are
  now properly restored to their previous sane state, preventing all
  subsequent dependency tests from false positives (bug# 565860
  @bugs.debian.org).

- MIDI clip editor (aka piano-roll) multiple selection has been fixed
  (again) re. move/paste-snapping consistency.


0.4.4  2010-01-16  The Frisky Demivierge

- For all the DSSI plugins that have output control ports, a host
  feedback/update process cycle is now being finally provided: all
  output control ports are now marshaled to their respective GUI
  process, rather often and when found open/visible.

- MIDI clip editor (aka piano-roll) snap-to-beat behavior on edit mode
  is now kind of more like 'filling-in-the-blanks' (as Frank Neumann et
  al. wishes ;)

- Fixed MIDI clip editor mistake when reverting to initial clip
  length, before closing and discard changes (thanks to Frank Neumann,
  for spotting this one).

- LADISH Level 1 support has been added: SIGUSR1 signal trap just
  makes it a shortcut to File/Save.

- Avoid parameter value flickering, due to duplicate command
  invocation, most evident when changing values massively on native
  Linux VSTi plugin editor GUIs (thanks to a detailed report on this
  odd behavior, from Mike of linuxDSP.co.uk).

- Another TODO item bites the dust: MIDI event list editor, now
  acessible from the MIDI clip editor menu (View/Events)

- Last used session directory is now made current on startup only when
  no filename is given on the command line.

- Current snap-to-beat setting (time quantization) now affects the
  anchor event only, while dragging, moving and/or pasting multiple
  events over the MIDI clip editor (aka piano-roll).

- Make anti-glitch audio clip micro fade-in/outs independent from
  current buffer size as much as possible.

- Audio/MIDI engine drift correction gets really sophisticated, with
  the help of (now old) ALSA MIDI tempo skew facility.

- Edit/Clip/Import... menu option is now available for expedite clip
  insertion from audio and MIDI file requesters.

- Set default session directory effective to file's location.

- Audio track/clip recording process has been target to special
  refactorization across the internal audio engine process cycle, in a
  late attempt to get self-bounce/recording effective and working
  consistently for all track layouts.

- All session related dialogs are now set to window modality, (were
  set to default application modality before) allowing for continued
  input focus and interaction on all plugin/tool windows.

- An off-by-one nasty old bug fixed in audio clip drawing, was causing
  instant crashes on certain zoom levels of the main track view.

- Graphical MIDI clip representation regarding note/pitch range is now
  kept as much as possible across clip edits (cut, copy, paste, drag,
  move, delete, etc.)

- LV2 plug-in hosting has finally come into actual implementation;
  only some and the most basic LV2 plug-in features are supported at the
  moment; probably there's no big advantage against the old LADSPA ones;
  there's some support for external UIs though; also, LV2 MIDI/Event
  bare-bones support is included but chances are it won't build nor work
  right on most of the setups out there. It's a WIP host implementation
  anyways, as is the  whole LV2 spec. for that matter ;)

- Connections filter is now reset when widget is shown through the
  View/Connections main menu or toolbar button.

- Audio bus auto-connection option is now applied when creating or
  updating, newer or existing buses, respectively.

- Global configuration state is now explicitly saved/committed to disk
  whenever View/Options... dialog changes are applied or when a session
  is loaded or saved.

- Audio ramping spin-locking makes its smooth stuff, in an attempt to
  reduce glitching and crackling when editing (due to its own pseudo
  spin-locking) and toggling playback states.

- JACK Transport, MMC Device, and MIDI Song Position pointer (SPP)
  control modes are now made optional (View/Options...), allowing for
  discretionary configuration: None/Disabled, Slave/Input, Master/Output
  or Full/Duplex  (default).

- Session files may now be dragged and dropped over the main track
  view and get loaded for business as usual (once quietly ignored).

- In an attempt to mitigate potential stack corruption and sudden
  crashes, old commented out session pseudo-locks are now back in
  business while executing clip editing commands (cut, paste, drag,
  move, insert, delete) and playback is currently rolling.

- Adjusted first-time application window size to fit into 800x600
  screen size and with reasonable initial dockables layout.

- Avoid duplicate snap-to-grid effect when changing the length of MIDI
  clip editor events across non-zero clip offsets (after a glitch
  reported by Ralf Mardorf).

- Late audio track processing optimization, suppressing all plugin,
  mixer and monitor pass-through activity when given track is muted,
  either explicitly or implicitly (ie. other track is in solo state).

- Entering System Exclusive events (SysEx) on the MIDI clip editor
  (aka matrix/piano-roll widget), yet something not fully supported
  anyway, even though allowed in edit mode, doesn't crash the whole damn
  thing anymore, while saving the clip to a file.

- Strict aliasing avoidance, with plain and demanded use of 'union',
  as much as to stop nagging warnings from gcc >= 4.4.1 (last seen on
  src/qtractorMidiEvent.h hackery).

- Visual correct play-head position while changing zoom levels,
  applicable to both main track and MIDI clip editor views.


0.4.3  2009-10-05  The Fussy Doula

- External preset files are not removed nor deleted from the
  file-system anymore.

- Connections support for UTF-8 encoded client/port names.

- Force track and clip properties dialog widget to be modal as it
  should from their beginning dawn.

- Audio effect send/return aux. inserts are implemented as special
  pseudo-plugins (Plugins/Inserts).

- Reset play-head position on auto-backward and keep playback rolling
  when continue past end transport option is not set.

- MIDI clip editor (aka piano-roll/matrix aditor) gets better on the
  virtual piano keyboard eye-candy side of things ;).

- Plugins are now also referenced by label, avoiding plugin index
  clash/misses eg. when plugin object file/path changes or is moved
  externally.

- Keyboard focus is now cleared/reset from the main toolbar time and
  tempo spin-boxes when editing gets finished (eg. Enter key is
  pressed).

- First audio metronome beat/bar now played back correctly.

- Client to/from port (dis)connections now found consistent as good
  ol'QjackCtl behavior.

- All dirty open MIDI clip editors are now prompted to save before the
  main application closes.

- Mixer level meters get their long deserved gradient look.

- Fixed any ghost clip selections that were haunting the main track
  view, specially after undo/redo.

- Increased tolerance on reading corrupt MIDI files (SMF).

- A MIDI SysEx manager is being finally introduced, in some primordial
  rather basic form though. MIDI System Exclusive (SysEx) event strings
  may now be freely assigned to MIDI output buses only, allowing for
  proper setup of external outboard MIDI equipment. Each bus may have an
  unlimited SysEx queue that gets sent out on every connection change
  (see View/Buses.../MIDI/SysEx...).

- A default MIDI instrument name may now be assigned to any MIDI
  output bus (see View/Buses.../MIDI).

- More legacy headers, stdio.h and stdlib.h, are yet again necessary
  to build with gcc/g++ >= 4.4 (as patch noted by Alexis Ballier on
  Gentoo bug report #274168, thanks).

- Bus manager dialog (View/Buses...) gets new columns on the left pane
  buses list as for displaying number of channels and bus mode.

- Crash when updating bus probably fixed.

- Fixed glitch displaying beat snap/grid lines on MIDI clip editor,
  incidental to clips located at absolute zero time.

- Overlapped MIDI clips were rendering garbled note events to
  DSSI/VSTi plugins, now fixed.

- New MIDI Playback/Queue timer (resolution) option is now available
  (see View/Options.../MIDI).

- MIDI instrument definitions may now be imported from plain SoundFont
  files.


0.4.2  2009-06-04  The Flaunty Demoness

- The MIDI clip editor (piano-roll/matrix editor), the main track view
  as well, have been subject to usability fixing, the most notable
  avoids clearing current selection as much as possible when updating
  view contents (eg. changing zoom levels does not reset current
  selection anymore).

- MIDI tracks channel bank/program and controller stuff are now only
  issued when the respective bus connections have changed, seldom on
  every playback start.

- MIDI controller mapping infrastructure, with file based
  configuration management (see View/Controllers...), is now in place,
  following an original contribution from gizzmo aka Mathias Krause.

- Plugin chain buffer reset on playback start/stop is not guarded by a
  momentary plugin de/activation anymore.

- Clip export may now be applied to multiple clips, sharing common
  refactored code and same semantics as merging of current selected
  clips.

- Improved, may be just fixed yet again, audio track export
  synchronization and reliability.

- Clip merge is now featured both for audio and MIDI tracks (see
  Edit/Clip/Merge...).

- Improved, or better said, fixed (again) the precision of multi-clip
  final positioning as result of drag/move and paste operations in main
  track view.

- MIDI track program number is now listed in 1-128 range, in an
  attempt to be consistent with corresponding MIDI track dialog
  drop-down list.

- MIDI editor snap grid lines get slight different color then regular
  beat divisions.

- Reset local tempo map cursor on newer MIDI file imports in a
  tentative to fix incidental but random crashes.


0.4.1  2009-04-04  The Funky Dominatrix

- MIDI editor command item execution order has been fixed, correcting
  the redo/undo adjustment of overlapping note events.

- MIDI clip editor (aka. piano-roll/matrix editor) sees one of its
  most wanted features introduced: visual snap grid, now accessible
  through View/Snap/Grid option toggle.

- Actual non-zero session length gets back to status bar of main
  application window.

- One potential buffer-overflow/memory-corruption crash bug has been
  fixed, long due on most audio (down) sample-rate conversions and
  affecting audio export in particular.

- MIDI track/channel patch information, ie. bank-select and
  program-change events, are now being properly set on MIDI track/clip
  export.

- SSE optimization is back in town after being mysteriously disabled
  since its dawn :/

- Looping and punch-recording now actively mutual exclusive states:
  setting either one unsets the other off and vice- versa. Also,
  punch-in/out is now made an undoable command.

- Moving tracks, any track, up or down, were leaving MIDI playback and
  meter monitoring completely out-of-sync, now fixed.

- Automatic crash-dump reports, debugger stack-traces (gdb),
  back-traces, whatever, are being introduced as a brand new configure
  option (--enable-stacktrace) and default enabled on debug build
  targets (--enable-debug).

- Audio/MIDI drift correction is now progressive, taking a least
  significant differential approach, on every read- ahead cycle and
  swallowed on loop turn-arounds, as before.

- Improved Edit/Clip/Normalize and Quantize commands, now affecting
  the whole extended multi-clip selection.

- Playback is now being temporarily suspended while either transport
  rewind or fast-forward rolling is engaged.

- A bad and shame-on-me bug was fixed: this was hideously affecting
  any track/clip playback synchronization, most noticeable after
  toggling solo/mute track states while playback is rolling and skipping
  the play-head backward over more than one clip under the same track.

- A floating-rectangle flip that showed while dragging new files
  beyond the left of main track view is now gone.

- MIDI note event truncation on both track and clip export has been
  fixed.


0.4.0  2009-03-13  The Foxy Dryad

- MIDI (re)connections fix; now caring for the ALSA client and port
  textual names only, avoiding as much as possible, any reliance on
  those volatile client and port numbers.

- Transport/Backward and Forward commands may now reset to immediate
  full start or end of session locations, by just pressing the Shift or
  Ctrl keyboard modifiers and clicking their respective toolbar buttons.

- Default session/MIDI resolution has been set to 960 ticks per beat
(960 TPQN, where a beat equals a quarter-note); it is worth of note
  that the previous default resolution was set to one order of magnitude
  lower, ie. 96 TPQN ;).

- Making (dis)connections now also flags session as dirty.

- Internal Audio/MIDI engines queue/time drift correction takes a
  brand new approach, specially adapted to rolling tempo/time-signature
  changes.

- MIDI monitor refresh-cycle slight internal optimization.

- Converted obsolete QMessageBox forms to standard buttons.

- Transport/Rewind and Fast-forward commands may now be set to double
-speed, by pressing the Shift or Ctrl modifiers while clicking their
  respective tool buttons.

- MIDI clip editor zoom ratios are now saved and preserved across
  sessions.

- Time-signature is now directly accessible from the main tempo
  spin-box which also reflects current tempo status.

- Time/frame spin-boxes now allow to step change each field
  individually, depending on the cursor beam position.

- Make sure that Transport/Follow playhead option is only effective
  when playback is actually rolling.

- Primordial attempt to include MIDI Song Position Pointer (SPP), Song
  Start, Stop and Continue sequencing support.

- A completely new time-scale infrastructure is now in place, with
  full support for session tempo and time-signature map; this long due
  feature is primarily accessible through the main menu, View/Tempo
  Map...; also by double-clicking on the the main window and MIDI clip
  editor time rulers and left-clicking on the main toolbar
  tempo/signature spin-box.

- Moving and resizing individual clips now cares for track proper
  ordering and overlapping changes, avoiding nasty out of sequence clips
  and other unpredictable effects.

- An expedite MIDI clip quantize command is now available from the
  main track view menu (Edit/Clip/Quantize), which simply applies the
  current snap-to-beat setting to a MIDI clip range selection.

- Fixed that hideous bug affecting overlapped audio clips when
  playhead gets moved backward, causing the playback of those audio
  clips in particular, go out of sync.

- Tracks are now limited to their minimum height, specially effective
  in face of vertical zooming.

- Zoom mode option introduced (on menu View/Zoom/Horizontal, Vertical,
  All).

- Tempo beat type is a new session property; however it is not yet
  user modifiable and currently disabled to default MIDI quarter note
(1/4).

- All open MIDI clip editor time-scales are now updated and corrected
  when the main session time base changes (tempo, time-signature,
  resolution, etc.)

- MIDI metronome fixed, preventing duplicate click events.

- MP3 audio file decoding was broken for way too long and falling
  short for every file with custom frames, ID3 tags and comments. Got
  shamefully fixed.

- Time signature denominator (ie. beat divisor) is now an accessible
  and effective session property.

- Attempt to retain original size (clip length) of all audio clips
  when changing the global session tempo and automatic time-stretching
  is not an option.


0.3.0  2008-12-25  The Fluffy Doll

- Almost complete rewrite of the plugin configuration and parameter
  initialization logic.

- MIDI bank/program selection is now taken into account on plugins
  initialization and replication.

- Fixed initial parameter values for native VST plugins.

- Track form plugin lists are now properly (re)initialized when track
  type changes.

- Generic plugin forms now have the option to show/hide the parameter
  widgets through the new "Params" button.

- New auto-monitor toggle option (menu Track/Auto Monitor): the
  current selected track is now set on monitor and MIDI channel
  omni-mode automagically, as a convenient workflow feature (kindly
  suggested by Holborn).

- MIDI clip editor Tools menu is not disabled anymore when there's no
  selection, drop-down menu items are instead.

- Make all recorded clips to honor either the punch-out or play-head
  accumulated position; resolve all pending MIDI sequence note events
  on record stop/close.

- Major silent move: audio plugins chain are now applied in a
  pre-fader/meter basis as is usually implied from the mixer strip
  layout ie. signal flows from the top to the bottom.

- All MIDI buses may now have plugins inserted so that  multi-timbral
  synth/sampler plugins get driven to their fullness.

- MIDI track plugin's dedicated audio output bus may now be effective,
  as it seems, good old master audio output bus was being used, no
  matter what.

- Paste-repeat command has been introduced, now allowing to replicate
  and concatenate the clipboard contents over the time-line, with a
  given repeat-count and optional period (see menu Edit/Paste Repeat...
  on the main and MIDI clip editor windows).

- Normalize tool on MIDI clip editor got rewritten from its previous
  brain-dead, useless and utterly wrong operation.

- All time offsets and lengths are now zero-bar/beat based when
  displayed in the BBT (bar.beat.ticks) format.

- MMC STEP gets adjusted to current snap-per-beat setting.

- Fixed broken initial buffering that was randomly crippling those
  audio clips that fit integrally in cached and while on playback.

- Fix initialization of multiple instances of DSSI plugins which
  implement run_multiple_synths (eg. fluidsynth-dssi), preventing an
  instant crash on activation.

- Exclude deprecated VST elements from compilation.

- Export tracks dialog has new punch in/out range option.

- Somehow realized that looping and punch-recording are two mutually
  exclusive states, at least until loop recording (ie. takes) gets real.

- Fixed crash on tempo change; affecting the WSOLA based
  time-stretching on all non-stereo audio clips.

- Incomplete audio peaks were being cached prematurely, fixed.

- Make way for paste/dropping items from the system clipboard over the
  main track view. Cut/Copy/Paste/Delete of file items have now this
  workaround fixed, wrt. Files widget keyboard shortcuts, respectively.

- Clip gain/volume propriety is now in place and reflected in audio
  clip waveform drawing in particular.

- A new hideous progress bar is now lurking in the main status line,
  as found convenient to display progress of the also new clip tools
  (normalize, export, etc.).

- Clip normalize tool is now available (Edit/Clip/Normalize).

- Audio and MIDI clip file export is now available as a tool (see
  Edit/Clip/Export...).

- Punch in/out (range) recording is now in experimental shape, with
  minimal settings and functionality, already accessible through the
  main menus, transport toolbars and visible on main tracks view and
  MIDI editors as magenta colored line markers.

- External MIDI control events for channel volume (7) and channel
  panning (10) are now handled properly through session tracks.

- Session file templates make its debut with new usability option, on
  whether new sessions are created based on existing template file (see
  View/Options.../Display/Session/New session template; nb. session
  templates are just regular session files but loaded and saved with no
  media content (no clips nor files).

- Grayed/disabled palette color group fix for dark color themes.

- Implicit attempt to flush all pending notes for some, if not most
  plugin instruments (eg. VSTi), on playback stop.

- Fait-divers: desktop menu file touched to openSUSE conventions.

- Internal refactoring alert: Session and Options instances are now
  being redesigned as singletons, preparing to get out of the way from
  the master GUI/MainForm instance.

- Clip drawing methods refactored so let the fade-in/out handles get
  seen with transparency over the clip graphics content.

- Reset and continue looping even still when continue past end
  transport option is not set and playback is rolling.


0.2.2  2008-10-05  The Flirty Ditz

- Slight optimization in audio and MIDI meters refresh rate.

- Another ancient bug has been squashed: MIDI events were being
  recorded even though recording wasn't rolling; spurious event times
  were being recorded due to an absent started queue.

- Major fix applied to audio track monitor metering, and most
  importantly to plugin processing, correcting tentatively all audio
  buffer offsetting and slicing due on loop turnarounds.

- Fixed a potential crash and/or simple record dismissal when changing
  properties of a track already armed for recording; prevent record
  engaged tracks from editing or removal.

- Lighten up the connections line and highlight colors, as seen to fit
  best on some darker background themes.

- Several icons refined with slight transparent shadowing.

- Send/reset all MIDI buses and track controllers (ie. volume and
  panning) only when main transport playback is started, avoiding
  the pouring on eg. loop, playhead or tempo changes.

- Pressing the Escape key also clears current selection in the main
  track-view and MIDI clip editor; resizing multiple events at once
  doesn't need help from Shift or Ctrl modifiers anymore.

- DSSI and VSTi plugins get all their default parameters values reset
  on MIDI program change.

- Several major fixes have been applied to the MIDI clip editor,
  regarding snap precision and correctness, most specially due on
  clips which weren't located on exact bar boundaries.

- Brand new usability feature introduced: mute, solo and monitor
  toggling may now be applied to all tracks in session at once, when
  issued with either the Shift or Ctrl keyboard modifiers, which will
  set or reverse respectively all other tracks state.

- Audio buses plugin chain may be also accessed and edited from the
  extended bus management dialog (View/Buses...).

- MIDI meter level default color is now set distinct from the old
  lime-green one as in audio level meters.

- MIDI clip editor is now a genuine top-level window, fixing all
  keyboard shortcut ambiguities with main application window.

- Mixer splitter panes are now collapsible and optionally hidden.

- Make MIDI instrument patch management a little more sane, as for
  preventing the accidental insertion of blank instrument names and
  automatic default bank/program selection in track properties.

- All connections are now based exclusively on the textual client and
  port names, effective in particular to match MIDI bus ports with
  disregard to their volatile numerical identification.

- MIDI file (SMF) header endianess fix (PPC users rejoyce:))

- Record armed tracks aren't muted for playback anymore, as this was a
  severe crippling nuisance regarding input monitoring and all mighty
  user experience after recording a simple take; for instance, as the
  bottom line goes, there's no need to un-arm a track from its record
-enabled state anymore, for just recorded material get heard on
  immediate playback; kick  on the jam!

- Playhead position overflow fixed on negative MMC STEP commands.

- Thumb-view width proportions now based on minimal slack session
  length instead of the auto-extending track-view contents width.

- Optimize audio clip drawing, most specially on zoomed-out levels.

- Bring the audio peak frames into some sort of cache, preventing
  recurrent peak frame buffer reallocation and trashing.


0.2.1  2008-08-30  The Fainty Diva

- Gradient eye-candy now featured for clips, tracks and mixer strips
  widget backgrounds, disabled on configure time (--disable-gradient).

- MIDI pitch-bend/wheel events are now captured/recorded properly; in
  fact, there was this ancient bug, now squashed, as all MIDI clips
  weren't being stored at all if there weren't a single note event
  captured.

- MIDI channel translation is finally in effect on monitored tracks,
  specially the ones set in omni-channel input mode.

- MIDI open files dialog gets a few more file filter types now.

- Playhead position is now shown, updated and can be also set on the
  main toolbar session thumb-view (Shift-click to set the playhead).

- The floating selection, as shown for a clipboard pasting operation,
  has been corrected regarding time scale (horizontal zoom) changes,
  while in the main track-view. Also fixed final position snapping
  precision.

- Current tempo and snap-per-beat setting now survive session cycling.

- DSSI plugins implementing run_multiple_synths (eg. fluidsynth-dssi)
  are now formally supported according to the DSSI spec (hopefully);
  note that previously one could only have one DSSI plugin instance
  loaded in session in any given time, otherwise a sudden crash was in
  sure demand when either  plugin got activated.

- Audio plugin outputs now overrides each other when the number of
  output ports does not match the number of mix-down audio channels
  and thus fixing a nasty crash bug in the process.

- All custom font sizes are now set relative to default global font.

- Changing loop points by dragging on the time rulers is now mapped as
  undoable/redoable commands as it ought to be ever since.

- Drop-span option (View/Options.../Drop multiple audio files into the
  same track) now takes into effect the current session snap-per-beat
  setting when concatenating multiple audio clips.

- All plugins get their default bank/program selected on insertion.

- Make record armed tracks muted for playback, a needed regression to
  let both audio and MIDI tracks behave consistently regarding input
  monitor switching through output.

- Fixed a pretty old and shameless bug regarding MIDI clip recording,
  in which cases the queue start time offset was not taken into account,
  with captured events being recorded with erratic long delays.

- Almost complete refactoring of the clumsy audio peak file classes,
  possibly making it even clumsier but straight nevertheless, with the
  noble and final aim to build it in-flight and draw the waveforms
  while recording is rolling.

- Recording clips get their initial name labels drawn while
  fade-in/out handles are dropped as found pretty useless while
  recording.

- Escape key now closes connections and mixer widgets as found usual.


0.2.0  2008-07-18  The Frolic Demoiselle

- MIDI clip filename revision logic is now introduced, thus avoiding
  the proliferation of several numbered SMF's on each edit/save; some
  lurking bugs were exposed in the MIDI clip externalization method but
  promptly squashed.

- Fixed a mouse release event glitch while in drag-and-drop items in
  the Files tree list widget.

- A dummy plugin type option has been devised, just to bear with some
  troubled behavior of the lovely JUCETICE plugins (View/Options.../
  Plugins/Experimental/Dummy VST plugin scan). Bad news are that all,
  yes all as in every native VST plugins, are indistinguishable from
  being just pure audio effects, either mono or stereo, whatever, and
  thus all being considered full-blown stereo VSTi instruments (which
  are the vast mainstream and rather interesting majority,
  nevertheless:).

- The plugin selection dialog (Add Plugin...) now features the option
  whether the selected plugins should be activated on insert.

- Mixer strip titles now have distinguishable type icons, either for
  audio or MIDI, and shown on all buses and track strips.

- Major optimization breakthrough: muted audio tracks aren't streamed
  any longer, saving precious CPU cycles from decoding, resampling,
  pitch-shifting, time-stretching, plugin effects, whatever.

- Incredible as it might be, audio/MIDI track record monitoring is now
  mixed (or merged) with rolling playback content, thus not as mutually
  exclusive between record and playback states anymore; also, track
  mute/solo states doesn't apply to recording material anymore.

- Main form timer slot gets corrected and now independent of current
  process buffer-size in regard to JACK transport synchronization.

- All file references in session state file are now stored as relative
  paths to main session directory.

- DSSI/VSTi plugin presets can now be explicitly recalled from file
  (ie. Open/load preset) through this new tool button whether visible
  while in the generic plugin form.

- Due to some trouble with newer Qt >= 4.4 applications regarding font
  size configuration, a new global user option is now available to the
  rescue: View/Options... /Display/Base font size (default is no-op).

- Logarithmic scale is now taken into effect by control parameter
  sliders, in the generic plugin editor dialog as provided by LADSPA
  and DSSI plugin types.

- MIDI track bank/program does not default to zero (PC#0) anymore.

- Second attempt for Qt4.4 build support, regarding the bundled atomic
  primitives, now corrected and way more seriously :).

- Long due DSSI/VSTi plugin host implementation has taken shape for
  MIDI instruments (eg. soft-synth plugins); DSSI reached its full host
  implementation and VSTi is already kicking as well.

- DSSI/VSTi plugin presets may now be stored to external XML files,
  which should include all parameter values and configuration data
  chunks, taken as proper state snapshot and subject for recall.

- Dedicated audio output bus option is now also accessible for all
  MIDI instrument plugins, either set globally as a default mode in
  View/Options.../Plugins/Instruments or in the plugin context menu for
  MIDI tracks, as an undoable command.

- Fixed a potential crash-exception due to freeing a null-pointer,
  raised on some ever stringent platforms and while adding tracks to
  empty sessions, which is the same to say this was crashing more than
  always:).

- Loop turn-around is now taken care of, as this has been found
  missing and causing noticeable gapping when un-muting or changing
  MIDI track events while in playback.

- An off-by-one bug was fixed while inside MIDI cursor backward seek
  method, which was missing all other events that have the same exact
  onset timing.

- Attempt to load Qt's own translation support and get rid of the ever
  warning startup message, unless built in debug mode. (transaction by
  Guido Scholz, while on qsynth-devel, thanks).

- Only one application instance is now allowed to be up and running,
  with immediate but graceful termination upon startup iif an already
  running instance is detected, which will see its main widget shown
  up automatically (Qt/X11 platform only).

- Clip fades have now a slight transparency.

- Avoid loop read-ahead on initial audio clip loading.

- Messages file logging makes its first long overdue appearance, with
  user configurable settings in View/Options.../Logging; options dialog
  was slightly rearranged and moved the Plugins section into a new tab
  page.

- Audio/MIDI drifting correction was missing its own correct and due
  (re)initialization whenever playback is (re)started; also, MIDI
  metering synchronization has been fixed once again.

- Fixed session cursor backward seeking, specially applicable when
  playback passes the end of overlapped clips.

- Fixed potential crash when opening bogus audio files.

- Time-stretch FIFO buffer implementation is now made generic, as
  template, fixing a destructor memory leak in the process.

- Include legacy headers, stdlib.h and string.h, where necessary to
  build with stricter gcc/g++ >= 4.3.


0.1.3  2008-05-02  The Frugal Damsel

- As one may find convenient sometimes, the global time display format
  (frames, time or BBT) may now be changed on the main transport time
  spin-box context menu.

- Left-clicking on the track list number column now toggles all track
  content clip selection.

- Prevent audio-buffer initialization mashups when editing short audio
  clips while playback is rolling and within clip region.

- Audio peak files gets a bit simplified, dropping the peak frame
  count from its header; peak waveform graphics are now rendered as
  straight lines when over the end of audio file.

- The drop-span option (View/Options.../Drop multiple audio files
  into the same track) now also applies when importing tracks (as in
  Track/Import Tracks/Audio...) to concatenate multiple audio clips
  into one and the same new track.

- Audio and MIDI meter level colors are now user configurable (as
  global configuration options, View/Options.../Display/Meters)

- First attempt for Qt4.4 build support, regarding the bundled atomic
  primitives, which have changed upstream as advertised (thanks to Paul
  Thomas, for spotting this one first time).

- Record monitor switch is now an accessible button option on all
  track mixer strips; for visual consistency, the old bus "thru" switch
  button has been renamed to "monitor".

- Force track-view position reset to origin on session close.

- Fixed segfault on inserting an external file into files widget.

- Mixer splitter sizes are now better saved/restored when closed.

- Track record monitoring is now a state option, being toggled from
  the Track/State/Monitor menu; applies both to audio end MIDI tracks:
  when set all input will be pass-through to the current assigned
  output bus, including track plug-ins chain.

- Session dialog gets split in its own tab components, between
  descriptive, time and view configuration ones.

- Drifting correction among audio and MIDI engines is now back, but
  avoided while recording or should it be while looping?

- Time-stretching percent value gets its semantics inverted, as
  thought consistent with ones general sense for relative stretching
  ie., lower to shrink and higher to make longer. this is a major
  up-side-down change and should affect all sessions saved with
  time-stretched audio clips.

- Slack space in main tracks and MIDI clip editor views are now
  proportional to viewport width, leaving enough room for drag and
  moving content past the current session length, specially at the lower
  zoom levels.

- Clip end time is now also shown on tool-tip.

- When armed for recording, MIDI tracks are now monitored and filtered
  through their own output bus, thus having the same behavior as audio
  tracks; this also implies that all record armed tracks won't playback
  their current content material when recording is engaged and rolling;
  track mute and solo states are now honored on record monitoring.

- Audio clip pitch-shifting makes its first appearance, with the
  optional help from Chris Cannam's RubberBand library.

- A new MIDI editor tool is available: note/pitch randomize.

- Avoid (re)setting the default session directory if a session cannot
  be open or loaded for some reason.

- Another nastiness bites the dust: a subtle but progressive drifting
  has been swept away from the audio buffer looping; zero buffer
  flushing is now also taken into account, which was the cause for
  serious drifting on time-stretched clips.

- A major digital audio processing bug was tamed: audio clip
  fade-in/outs are now linearly piece-wise applied, even at the clip
  edges, giving a much smoother rendering and thus mitigating the nasty
  click-and-pop artifacts that were in fact due to some early design
  optimization with a poor and sloppy implementation.


0.1.2  2008-03-23  The Frantic Dame

- Session length fixed (yet again) while extend recording; also
  improved follow-playhead switching while playback/recording.

- Whitespace sanitization gets leaner for all recorded filenames.

- Run-time SSE optimization detection has been improved while on
  configure; additionally, IEEE 32bit float specific optimizations have
  also sneaked in.

- SSE optimization is now featured over all audio monitoring, and most
  specially on audio bus buffering, lowering the CPU burden a bit while
  doing track and bus gain, pan, metering and mix-down.

- Fixed MIDI clip move into new track, preserving the original
  channel, bank and program whenever possible.

- Fixed session cursor seeking, specially regarding overlapped clips,
  once gain.

- The MIDI editor gets new menu access to current MIDI clip track (see
  File/Track/Inputs, Outputs, Properties); selection of MIDI events has
  also been improved, specially regarding overlapped note events.

- Clip split command enters the stage (see Edit/Clip/Split) about
  splitting the current (selected) clip at the current playhead position
  (red cursor line).

- Creating new clips from scratch is now finally permitted (see
  Edit/Clip/New...); additionally, the clip properties dialog is now
  also allowing for changing the filename (and track/channel as special
  to MIDI clips).

- Record armed tracks are now properly monitored and fed through their
  own output audio bus on mix-down, which includes plug-in effects
  processing.

- The files widget get alternating coloured rows.

- VST plug-in preset values are now being restored properly;
  individual parameter changes are now being queued for the also
  convenient undo/redo command pattern.

- Some audio clip buffer-sync tweaks have sneaked in, improving and
  fixing the rendering of full-overlapped, integrally cached and/or
  offset clips altogether.

- Stuffed one primordial shot on XInitThreads() at the main head, and
  let native VST plug-ins start behaving as they should, or not; this
  might be in fact problematic and dangerous for people who won't ever
  try the JUCE based plugins as from JUCETICE
  (http://www.anticore.org/jucetice), due to some broken locking
  mechanism in xcb; thanks anyway to mighty kRAkEn/gORe@JUCETICE for
  this precious hint and from who knows best.

- True deterministic session length update has due fixed.

- Track menu has new accessible actions: Track/Inputs - show current
  track input bus connections; Track/Outputs - show current track output
  bus connections; Track/State/Record - arm current track for recording;
  Track/State/Mute - mute current track; Track/State/Solo - solo current
  track; Track/Navigate/First - make current the first track;
  Track/Navigate/Previous - make current the previous track;
  Track/Navigate/Next - make current the next track; Track/Navigate/Last
- make current the last track; Track/Move/Top - move current track to
  top; Track/Move/Up - move current track up; Track/Move/Down - move
  current track down; Track/Move/Bottom - move current track to bottom;

- View menus have new accessible actions: View/Zoom/In - horizontal
  and vertical zoom-in (Ctrl +); View/Zoom/Out - horizontal and vertical
  zoom-out (Ctrl -); View/Zoom/Reset - reset both zoom levels to
  default; View/Snap - select current snap-per-beat setting;

- Plug-in forms don't auto-open on session reload anymore.

- Keyboard shortcuts icon item (Help/Shortcuts...) sneaks in.


0.1.1   2008-02-16  The Futile Duchess

- After some great user demand, keyboard shortcuts are finally
  configurable, as found provisionally under Help/Shortcuts..., for the
  main application menu and for the MIDI editor as well.

- Debian package gets SSE optimization disabled as default.

- At least some transport actions get to be non auto-repeatable when
  pressed for much too long, as Play and Record, avoiding the tumbling
  imposed from the keyboard.

- For the first time ever, jackd auto-start is now allowed (!).

- OSC service support through liblo gets optional at configure time,
  now leading the way to proper DSSI plug-in hosting.

- All plug-in widget controls count are now capped to one hundred.

- Plugin paths setup is now made available on the options dialog,
  overriding each of respective default settings, as implicit from the
  LADSPA_PATH, DSSI_PATH and VST_PATH environment variables (see
  View/Options.../Display/Plugin Paths).

- Clip fade-in/out lengths are now kept relative to tempo changes and
  also to clip offset and length changes (clip resizes).

- Automatic time-stretching for all audio clips when session tempo
  changes, may now be disabled/enabled as a global session option (see
  View/Options.../Audio/Playback/Automatic time-stretching).

- Double-clicking on an empty area (de)selects all clips on track.

- MIDI capture (record) quantization is now an option, possibly handy
  for some jerky performance musicians, as the one found in myself ;)
  (see View/Options.../MIDI/Capture/Quantize).

- The global options dialog (View/Options...) has seen its Display tab
  page being moved back and to the right.

- Major rewrite of the plug-in infrastructure, adding primordial
  support for DSSI and native VST plug-in flavors.

- Drag-and-drop of plug-in instances are now allowed intra- and
  inter-mixer strip chains, either on tracks or buses.

- Turning track record off while recording is rolling was leaving the
  session in a inconsistent recording status, now fixed.

- A random but instant crash upon audition/pre-listening player onset
  was hopefully fixed.


0.1.0   2008-01-05  The Frivolous Debutante.

- Audio clip time-stretching makes its debut, with code adapted and
  refactored from the SoundTouch library, under the (L)GPL umbrella.

- New "Options.../Audio/Playback/Quick seek time-stretching" global
  option, providing a quick seek mode (hierarchical search) while doing
  all audio buffer time-stretching.

- Changing session tempo will automatically apply the corresponding
  time-stretch percent factor to all in-place audio clips. Audio clip
  dialog also includes a new time-stretch property setting.

- Tempo changes are now affecting clip offsets correctly, keeping the
  clip offset constant in time units (ticks), as are clip start and
  length properties already.

- Mixer splitter sizes are now properly saved/restored when hidden.

- Extended multi-selection is now featured on the files widget; all
  drag and drop functionality has been almost completely rewritten.

- SSE optimization is now enabled where available (via configure).

- Options for having separate dedicated ports for the audition/pre-
  listening player output, audio metronome output, MIDI control
  input/output and MIDI metronome output, are now in place.

- A brand new subtle option sneaks in, affecting the drag-and-drop of
  the main track-view: View/Options.../Drop multiple audio files into
  the same track, whether to drop multiple external files into new or
  existing track as concatenated audio clips.

- The audio metronome makes its debut as an alternative to the MIDI
  existing one; parameters include bar and beat audio sample files,
  accessible from the View/Options.../Audio/Metronome dialog.

- Files widget action refactorization; the files context menu gets its
  due item icons and a new menu item for direct audio player
  accessibility.

- MIDI time resolution changes (ppqn, ticks per beat) now tries to
  keep all session MIDI clip times unchanged as far as possible.

- MIDI channel volume and panning control change events, CC#7 and
  CC#10 respectively, are now rendered unfiltered on playback.

- First rendition of the long due implementation of an audition or
  pre-listening audio player is now in place; the files window got
  this new play/stop control button on its lower-right corner.

- Actual instrument definition note (keys) and controller names are
  now in effect on the MIDI editor, whenever applicable.

- Fixed instrument bank selection method, "Bank MSB" (2), which was
  broken enough to never send the correct bank number.

- Mouse-wheel horizontal scrolling is now accessible on every view,
  while pressing a modifier key (Shift or Ctrl).

- New auto-backward transport option: when enabled the playhead will
  be reset backward automatically whenever transport stops playing.

- A suicide-crash has been fixed while invoking the bus dialog from
  the respective mixer bus strip context menu.

- Master (default) buses are always set to Duplex mode, being now an
  enforced update policy while on the Buses dialog.

- A stupid lockup bug (infinite loop) was spotted on the track bus
  assignment method and squashed (thanks, lexridge).

- New keyboard shortcuts for toggling the Connections tool (F8) and
  the mighty Mixer tool (F9) windows.

- Avoid showing a context menu while right-clicking on time rulers.

- Audio clip waveform drawing gets additional closing points.

- It is now possible to change the length/size of a clip by dragging
  its left or right edges, while in the main track-view. Shift/Ctrl+drag
  will also time-stretch to the resulting audio clip length.

- Another off-by-one mistake was corrected, which was causing audio
  clips to go out-of-sync on loop turnover boundary; also changed the
  loop turnaround strategy, now honoring already cached periods.

- A race-condition has been mitigated in the audio-buffer thread, that
  was exposed and lead to sudden application freezing upon changing some
  composite audio clip commands.

- Take absolute audio peak values only, making peak files a little bit
  shorter and hopefully faster to load and draw as waveforms.


0.0.9   2007-11-30  The Adolescence Prime

- Drag-and-dropping of MIDI files without specific track or channel,
  into existing tracks, is now rejected. The drop operation is now
  allowed on the track-view blank area only, meaning the same as the
  complete MIDI file import into session.

- Record actual MIDI clip length to last play-head position, instead
  of time of last event in the recorded sequence.

- Connections item lists gets properly sorted, as intended.

- Clear connection persistance once an explicit discconnection is
  issued on any of the (intrinsic) bus ports.

- MIDI output buses now get the panning slider to spit out some GM
  system master balance (sysex) messages, being now enabled.

- Mouse hovering on the clip fade-in/out handles, while in the main
  track-view, gets its long due cursor pointer feedback.

- Fixed a off-by-one boundary issue on MIDI clip event playback, which
  were enqueuing duplicated MIDI events on every read-ahead output
  thread processing cycle (1 sec).

- Transport menu and toolbar are now featured on the MIDI Editor.

- Use actual session name when asking to save changed session.

- Transport loop setting keyboard shortcuts swapped: Ctrl+L will set
  the loop immediately, and Shift+Ctrl+L will toggle on/off.

- Changing MIDI event duration may now affect MIDI clip duration.

- Alternate sharp-note color lines have returned to MIDI Editor
  canvas, as was the shadow color marking the end of MIDI clip.


0.0.8   2007-11-12  The Twelfth Tight

- Bus context menu is now accessible from respective mixer strip.

- Fixed a subtle crash-suicide issue when invoking the bus dialog with
  a double-click over the corresponding mixer bus strip; also fixed the
  sloppy ganguing mistake when changing mixer bus gain (volume) and
  panning values.

- MIDI Omni mode (sort of) makes its entrance as a new MIDI track
  property, meaning that is now finally possible for the capture of any
  unfiltered MIDI channel event, without regard to the current channel
  assignment, which still applies for playback purposes.

- Audio (pass-)through has been also implemented, now being a common
  and consistent property of both audio and MIDI buses, provided those
  are set in duplex mode (input and output).

- Re-touched follow-playhead and continue-past-end tool icons, again
  to be a bit softer and not so bright as to hurt someones eyes.


0.0.7   2007-10-31  The Eleventh Tower

- Suspend auto-follow-playhead while dragging or moving content over
  the main track and midi editor views; re-touched follow-playhead and
  new continue-past-end tool icons.

- Playback is now forced complete full-stop whenever play-head goes
  behind the current session length and/or loop-end and the newer
  "continue past end" option is enabled from transport menu.

- Tool/child windows position and size preservation fixed.

- MIDI (pass-)through has been finally implemented, after several kind
  requests, it applies as a property of duplex-mode MIDI buses; this new
  setting is configurable from the View/Buses... dialog; also from
  respective new input bus mixer-strip button; when enabled, implies all
  incoming MIDI events at the input bus will pass-through unchanged to
  the corresponding output bus, as found useful just for direct
  monitoring one's performance without the help of any extra circumvent
  or kludgy connections.

- Mouse cursor shape changes accordingly while hovering in header
  time-scale rulers, both in main track-view and MIDI editor.

- Track-view clipboard paste action has been refactored, with the user
  interface consistent with the same functionality featured on the MIDI
  editor: the clipboard selection being pasted now floats at the mouse
  pointer and can be moved around before placed into its final position,
  either with the mouse or keyboard arrow keys.

- A unitialized member variable bug affecting all MIDI clips has been
  discovered and squashed; this one has been lurking for quite some
  time and was causing wrong clip editing results, specially when
  tempo or meter differs between session and the MIDI file.

- Keyboard step-moving is now allowed while pasting in MIDI editor.

- Track-view clip selection can now be drag-moved into the void
  (bottom) view area creating brand new tracks automagically.

- Losing focus resets all current keyboard step-moves in progress,
  affecting the main track-view and all MIDI editor as well.

- As done before on the MIDI editor, the main track-view current
  selection may be step-wise moved using the keyboard arrow keys and
  the enter/insert keys for final placement; horizontal step movement
  is quantized according to current snap setting; vertical key-step
  movement is only allowed to selected clips belonging to one single
  and the same track.

- Immediate session loop setting, accessible from the main menu.

- Track properties dialog gets fixed again in its auto-size treat.

- Another audio-buffer thread bug was scrubbed off, which was causing
  spurious and audible garbage on certain loop workloads.


0.0.6   2007-10-09  The Tenth Commencement

- A bit more of precision is achieved over the metronome regular
  ticking and both the audio and MIDI monitor meters.

- A rudimentary MIDI metronome is now in place; parameters, like MIDI
  channel, bar and beat accent note, velocity and duration, are readily
  configurable from the main menu, View/Options... /MIDI/Metronome
  dialog.

- Track properties dialog now gets tightly auto-sized, depending
  whether its an audio or a MIDI track.

- MIDI clips are now auto-extendable when adding or moving events
  beyond the clip length and while in the MIDI Editor, of course.

- MIDI editor current selection can now be step-wise moved using the
  keyboard arrow keys and the enter/insert keys as for final placement;
  horizontal step movement is subordinated to current snap per beat
  setting, no less than unity; vertical step moves are obviously
  quantized to the next semitone.

- Get configure to try and detect the correct qmake location and
  insert it the search order, so let the qt4 tools take precedence when
--with-qt option is given and older qt3 ones coexist and are found
  located ahead in the PATH.

- Drifting correction on audio and MIDI engines was seriously infected
  in some kind of snafu conception, as evidence lead to even worse
  drifting being detected to much of great despair, specially after
  recording and/or bouncing audio tracks from MIDI sequenced material.
  Credit must certainly go to Christian Schoenebeck on splatting this
  sloppy one on the face.

- MIDI editing actions while playing now get immediate feedback; this
  was possible to some internal interface redesign of all MIDI editor
  accessory classes, making the MIDI clip now being the main editing
  target object instead of just the MIDI event sequence as it was
  previously.

- Simple as it could ever be, the build executive summary report is
  now given on configure.

- The internal decoded frame list for MPEG 1Audio Layer III (mp3)
  audio files (ie. via libmad) has been made one-time cached as global
  shared objects, benefitting from the fact that the list is always
  completely (re)built during the peak file computation, and thus
  speeding up all frame accurate access operations (seek) over this
  specific audio file format.

- More eye-candy is sneaking in the MIDI editor: there's new view
  options on the View menu: Note Color and Value Color, affecting note
  event colors according to pitch and/or velocity.

- New view option on the MIDI editor: on menu View/Note Duration
  switches whether events are shown proportional to their durations or
  as simple vertical candlesticks.

- New snap-per-beat divisors are now available (Beat/3, 6, 12, 24 and
48), giving support for triplets for the very first time (after a
  heads-up suggested  patch from Marko, thanks).


0.0.5   2007-09-08  The Ninth Hitch Nail

- MIDI edit tools (quantize, transpose, normalize, randomize, resize)
  are all functional and ready for experimentalism; gets in its own
  top-level menu and form with named preset store and recall
  functionality.

- Main form backward and rewind transport actions are now being
  immediately enabled when playing from the session (zero-time) start
  position.

- Audio and MIDI export sneaks in and in form and accessible from the
  main Track menu.

- MIDI track channel is now properly set on session (re)load; track
  background color changes was missing the alpha setting.

- The mix-down buffering was fixed again, now taking multi-track
  overlapping clips into consideration (was a lot more broken since
  the recent glitch-looping fix).

- Dirty MIDI clip editing control has been fixed but still somewhat
  hacky nevertheless.

- First attempt on solving a nasty MIDI editor bug, which was quietly
  and severely crippling MIDI files while saving offset edited clips.

- Session loop (re)setting is finally now an undoable command.

- Yet another insidious bug has been swept away from under the carpet:
  once again on audio looping, some astonishing old and crappy session
  cursor seek-backward statement was lurking to be laid off. Gone now,
  simply as it is, growing old on this :)

- A tremendous bug has been fixed: audio looping is now a little more
  glitch-free as the mix-down buffering was badly broken even since its
  primordial implementation. Rejoice.

- Minor improvements on track-view cursor updates and visual tracking
  while recording.

- MIDI editor windows get their keyboard accelerator/shortcuts back in
  business, whether opted as tools always on top or not.

- The infamous "Keep tool windows always on top" global option is now
  infecting the Connections, Mixer, Plugin and MIDI Editor window
  instances with no probable regrets. To be used with discretion, of
  course.

- Session update/initialization gets it clean on startup.

- Range selection action (Ctrl+R) is now back in business with the
  added bonus of being accessible from all MIDI editor instances too.

- Common edit-head and tail cursor positions are now under common
  control and display from all MIDI editor instances; the session
  loop-start/end points are now also shown on every time-line and share
  the same control behavior across all MIDI editor instances.


0.0.4   2007-07-19  The Eighth Wanderer

- Main toolbar tempo spin-box gets loose from keyboard change tracking
  (Qt >= 4.3); custom spin-box compilation fix for Qt 4.1.

- Illusive but nasty Connections/Patchbay item tooltip crash bug has
  been hopefully fixed (Qt >= 4.3); QComboBox::editTextChanged() signal
  replaces old QComboBox::textChanged().

- Combo-box setup history has been corrected on restore, which was
  discarding the very initial default (factory) contents.

- Make debian package build depend on libqt4-dev; win32 console flag
  is back to qmake project file.

- MIDI instrument selection (e.g. on track form) gets fixed and
  improved.

- Sorting method for the connections port list has been refactored;
  potential crash bug fix on connections sorting method.

- Messages class accessor methods constness fix.

- Got rid of some autoconf redundand thingies on configure; late
  debian changelog update.

- Desktop categories update: AudioVideo.

- README correction.


0.0.3   2007-06-23  The Seventh Draught

- Crash fix on the connections widget, was a matter of refactoring the
  refresh/clear slots.

- Help menu added to MIDI editor form (redirected and same to main
  form anyway).

- Clip properties form gets its proper sanity check, querying any
  existing clip editor whether its safe to apply the new settings.

- Mixer sliders get their long due valued correction, hopefully.

- Transport backward and play/stop are now made accessible from the
  MIDI editor widget, through their keyboard accelerator shortcuts
  (backspace and space, respectively).

- Transport actions (play, rec, rew and ffwd) are now kept stable on a
  single point, instead of being scattered all over the main form code;
  transport visual feedback might get affected, specially regarding the
  MMC processing.

- Application icon is now officially installed into
  ${prefix}/share/pixmaps.

- Spec file is now a bit more openSUSE compliant; just made RPM
  requirements as exigent as the new debian ones.

- Paste cursor is now properly preserved after leaving MIDI editor
  views.

- Amazingly why this was not spotted before, the main application
  logo-icon has been downscaled to the 32x32 pixel standard icon size.

- MIDI clip editor clipboard gets singleton status and is now shared
  on all MIDI editor instances. Similarly to the main track-view,
  Shift/Ctrl-left-clicking on the MIDI editor views sets the current
  session play-head position.

- A desktop entry file has been included on install, at last.

- Clips in main track-view get more info in the form of tooltips.

- Major rounding fix to time-scaling and most specially on all those
  internal MIDI I/O methods.

- Extended range selection from the time-ruler and key-list headers is
  now possible by click-and-drag the mouse pointer.

- Play-head cursor is now also displayed and/or set position on all
  open MIDI clip editors time line view. As in the main application
  form, a new local follow play-head option is also featured on the
  MIDI editor view menu and toolbar.

- All MIDI file save operations are now logged to main messages and
  files are added to the main files list view.

- Initial debianization.

- MIDI capture/record file format (SMF Format 0 or 1) is now an user
  option, introducing the new MIDI tab on the global View/Options
  dialog.

- A bad old-time session cursor glitch has been apparently fixed.

- Make sure the generic clip properties form is modal.

- Major rewrite and adaptation to the session time-scale properties,
  making its way for a brand new command instance: the session-tempo
  command.

- Changing the snap-per-beat combobox value on the main window toolbar
  does not make it as an undoable command anymore.

- Long due MIDI clip editor integration has come to reality.

- Major rewrite on the MIDI sequence file read/write methods, in
  preparation to the coming MIDI clip editor.

- Status-bar session length label now gets rightly updated, while
  extended recording, of course.

- Clip properties fade-in/out lengths, gets their old due constraints.

- Main transport time display is now an editable custom spin-box; the
  Tempo (BPM) spin-box has seen new colors (green on black).

- Transport time display format option adds the new choice of absolute
  frame number, alternative to previous time and BBT.

- The frame-time based spin-boxes, on the clip properties form, were
  replaced with a new custom one, allowing for alternate frame, time and
  BBT input/display formats.

- Time-scale helper class has been introduced.


0.0.2   2007-05-26  The Sixth Lord

- Audio/MIDI connections gets slightly refactored, contributing for
  whole robustness, specially in case of incidental engine shutdown.

- Mixer window gets a minimum default height bump.

- Clip fade-in/out type changes have been properly fixed.

- Complete refactoring of the command class pattern, making it now
  derived from QObject and not having a reference to the main form
  anymore.

- Inoperative context menu event handler has been removed from the
  track-view.

- MIDI sequence note-on event tracking now uses faster QHash class,
  instead of original QMap.

- Off-by-one bug fix on MIDI track write method, while parsing
  co-incident note-on/off events in the wrong order and thus leaving
  note events with an invalid (zero) duration; obviously affecting MIDI
  recording in very special circumstances.

- Minor and rather innocuous drop at this time in the MIDI event class
  structure: the flags member field.

- Port connections now get their lines correctly drawn; strangely
  enough, the connection lines were being painted only for the parent
  client items, probably since the Qt4 migration (aka. Halloween files).

- Early clip editing is in place (clip name, start, offset and length
  parameters, fade in/out length and type).

- Some menu item text capitalization.


0.0.1   2007-05-07  The Filthy Fifth

- Newer JACK 0.105.0 seems to bitch, probably correctly, about the
  return value of the process callback. Make it to bitch no more by
  ensuring the JACK client is always issuing the innocuous 0 (zero)
  return value.

- Important fixes have been issued, affecting MIDI recording: MIDI
  sequence zero-time event insertion; MIDI file pending note-off
  processing  on write-track method.

- Qt4 migration complete.


0.0.0   2006-10-31  The Halloween Files
