Version 0.9.15
==============
Release date: August 12th 2018
Contributors: deva, chaot4, suhr, trebmuh

Resampler has been refactored.
It now depends strictly on zita-resampler and is no longer optional.

Bugfixes:
 - Fix latency reporting in VST.
 - Fix timing humanizer stops normal cymbal samples too early.
 - Samples are cut off when looping.
 - LV2: Don't export any symbols except the plugin entry point to avoid clashes with the DAW or other plugins.
 - VST: Don't export any symbols except the plugin entry point to avoid clashes with the DAW or other plugins.
 - Report latency from resampling.
 - Fix LV2 Buffer overflow.
 - Add message to execution of CLI without arguments that mentions that the GUI is only supported in the plugins.
 - Update French translation of manpage.
 - Fix crash or noise when changing jack buffersize while running.
 - Stuttering when resampling is active.

Version 0.9.15
==============
Release date: July 24th 2018
Contributors: deva, chaot4, meka, suhr, Muldjord, cglocke, Roman Garifullin, James Cowgill

New engine features:
 - New humanized timing feature.
 - Master bleed control.
 - Remove memory warning.
 - Replaced cppunit with new dgunit header-only test framework.

New CLI features:
 - OSS midi input support.
 - Finish and integrate getoptpp as a submodule.

UI:
 - Double click knobs to reset them to their default value.
 - Ignore spacebar key in UI (used by DAW and toggled the buttons).
 - Add cute little image in the inline display.

Bugfixes:
 - Fix X11 BadValue crash bug.
 - Fix black render when opened as LV2 on Ardour and FreeBSD.
 - Fix UI crash on underflow in resize()
 - Fix valgrind errors of GUI.
 - Fix crash if CLI is invoked without input and/or output engine. (deva)
 - Fix out of bounds drawing of frame (chaot4)

Version 0.9.14
==============
Note: LAC2017 release
Release date: May 14th 2017
Contributors: deva, chaot4, Muldjord, meka, Hans Petter Selasky
Special extra thanks with a cherry on top: Robin Gareus

Features:
 - Introduced new resampler module in ui

Bugfixes:
 - CLI
   - CLI exits right away, doesn't do anything
   - Make ''-i midifile -I midimap=~/...'' recognize the home directory. Replace "~" by the home directory in ./drumgizmo/input/midifile.cc
   - Properly get/set OSS buffers
   - Add ---no-resampling option

 - Engine
   - Fix midi note on/off mask
   - Streamer BUG: If there is a cache miss on one of the audiofiles (1 channel) in a sample that one sample will get delayed compared to the others
   - Streamer BUG: When nodata buffer is being reallocated we need to make sure that the old buffer is not being used by one of the cache ids
   - Resampler BUG: Fix corruption/crash when enabling/disabling resampler at run-time
   - Update Window build environment to a more recent mingw64
   - Remove obsolete old mingw32 thread hacks
   - Introduce clear signal, showing if we had an underrun because of diskstreaming
   - Fix crash on with low preload size
   - Initial status of drumkit is "Error" on first opening the plugin

 - UI
   - Scroll-wheel on tab buttons should iterate through the tabs
   - Refactor TextEdit. (use vector in preprocessing etc.)
   - Fix "unexpected easter egg"
   - Fix high CPU load of plugingui when shown in a host (All platforms/DAWs)
   - Return handle to the newly created window in ''PluginLV2::uiInstantiate'' in the ''widget'' pointer
   - Add bypass button for the resampler
   - Fix redraw on changing desktops

 - General
   - Don't put .a and .la files in lv2 folder on install

Version 0.9.13
==============
Release date: April 23rd 2017
Contributors: deva, chaot4, Muldjord, meka

Highlighted changes / fixes:
 - New ui
 - Diskstreaming
 - OSS support

All changes / fixes:
 - Fixed rcgen compilation with BSD make
 - Made ui and engine compile as internal libs instead of compiling all sources in each component
 - Implemented settings for controlling diskstreaming
 - Complete gui makeover
 - Made changes to UI to incorporate diskstreaming controls
   - Now generates resources at compile-time
   - Made window resize flicker-free on X11
   - Fixed missing redraw on resize event on X11
   - Now uses XShmImage for rendering on X11
   - Refactored event system on X11 and Win32
   - Now supports size and position changes in the same event on X11
   - New rendering system based on ''dirty'' flag
   - Added "partial rendering" support in rendering system
   - Fixed double click
   - Scroll-wheel inside textareas now works
 - Made diskstreaming controls work in the engine
   - Made DrumKitLoader use disk streaming settings
   - Fixed crash or channel overload on stop/start command or loop due to invalid pointer returned to the engine from the diskstreamer
   - Made AudioCache use configurable fixed size chunks
   - Stores memory limit and chunk size in config as ints instead of floats
 - Made cli support for disk cache controls
   - ''-s'' and ''-S'' enables diskstreaming and set its parameters
   - Updated man page
   - Changed onsite info for cli
   - Added FreeBSD OSS audio output support
   - Added buffer size control for OSS audio output module
 - Fixed the dgreftest for aasimonster2
 - Added dependency check for rcgen so resource_data.cc is regenerated whenever one of the resource png files change


Version 0.9.12
==============
Release date: January 18th 2017
Contributors: deva, chaot4, Muldjord, meka
 - Fix semaphore EINT assertion in MusE
 - Fix atomic link check - always link with atomic
 - Draw boxes instead of nothing when trying to render characters not in the
   font map
 - Extend character map to include full latin1 character set
 - Added full support for FreeBSD
 - Fix missing "mouse-up" events when runnnig lv2 plugin on linux in a JUCE
   based host (Helio or Tracktion)
 - Added missing ttl as per: https://github.com/falkTX/Carla/issues/412
 - Algorithmically generate the test .wav files to be able to run the tests
   also with the tarball
 - Add --lv2dir parameter to configure

Version 0.9.11
==============
Release date: October 29th 2016
Contributors: deva, cglocke, chaot4, Jin^Eld
 - Unicode crash bug fixed
 - lv2 inline display
 - Fixed problems when running more than one instance of DrumGizmo plugin in
   the same host

Special thanks to 'Maxim Alexandrovich (Ljutingr)' for helping debugging the
unicode problem.

Version 0.9.10
==============
Release date: March 30th 2016
Contributors: deva, suhr
 - Fix the 'no sound from plugin when resampler active' bug.
 - Fix the 'freeze on tempo change' bug.
 - Fix backspace in lineedits.

Version 0.9.9
=============
Release date: March 24th 2016
Contributors: cglocke, chaot4, deva, muldjord, suhr, viccuad

Highlighted changes / fixes:
 - Switch to LGPLv3
 - Linux VST
 - Embedded UI
 - Prepped for diskstreaming (but not yet implemented in UI)
 - Load of bug fixes

All changes / fixes:
 - Remove unused libraries
 - Headers are currently a mix and gpl2 and gpl3. Should be fixed

 - UI refactor
   - Move textedit widget to refactor branch
   - Move autolayout to refactor branch
   - Use new notifier and refactor to new code guidelines:
     - LineEdit fixes:
       - Follow marker
       - Scroll with long line and cursor in beginning of line
   - Update Linux build agents so they support C++11

 - Refactor CLI
   - Rewrite all modules to be compiled directly into the binary
   - Modernise all cli files

 - Add diskstreaming feature with infinite buffer size:
   - Test on windows
   - Make sure on-the-fly framesize change is working
   - Set pre-cache size to "infinite"
   - Make std::mutex work with mingw
   - Make unit tests:
     - AudioCacheIDManager
     - AudioCacheFile
     - AudioCacheEventHandler
     - AudioCache
   - Design and implement AudioCache
   - Use AudioCache in inner-loop
   - Get framesize dynamically from output engine
   - Handle snd files with refcounter
   - Collapse events from same file and position into single multichannel event
   - Make sure free-wheel-mode works in jack, lv2 and vst

 - Add referenced drumkit/midi files feature
 - Remove version number from man page

 - Make benchmark performance comparisons with the "old" engine
 - Add a valgrind test script
 - Fix some problems reported by valgrind

 - Add memory check to warn the user if the drumkit about to be loaded cannot fit into memory

 - LV2/VST: Make UI event handling based on idle/run calls from the plugin host instead of in a thread
 - Port "The Aasimonster" to new velocity format

Version 0.9.8.1-hotfix
======================
Released March 16th 2015
 - Fixed bug where resampling resulted in sample skewing over the output channels

Version 0.9.8
=============
Released February 22nd 2015
 - Fix deprecated autoconf/automake macros. (Nils Tonnätt)
 - Update LV2 plugin to use new URID extension (http://lv2plug.in/ns/ext/urid/). (deva)
 - Fix state store so it does not store terminating zero in config xml. (deva)
 - "No sound" bug in resampler code. See: http://drumgizmo.org/irc-logs/drumgizmo.log.11Jan2015
 - Make cli wait for drumkit to finish loading before starting the engine. (Jin^eLD)
 - Make cli TYPE_STOP event wait until active events is empty. (deva)
 - Add basic man page. (Nils Tonnätt)
 - Reflect input/output parms in cli help text. (suhr)
 - Reflect input/output parms in cli man page. (muldjord)
 - Make resampler depend directly on zita-resampler and make libsamplerate an active opt-in. (suhr)
 - Include test directory in dist. (suhr)
 - Don't AC_SUBST zita libs and cflags if not used/detected by configure. (suhr)
 - Make all use of atof and sprintf("%f") locale independent. (deva)
 - Fix crash after rendering midi file to wav files via DG cli. (deva)
 - Remove wavfile.la in output dir. (deva)
 - Replace obsolete cli -p argument (preload) with -a (async-load) argument. (deva)

Version 0.9.7
=============
Released December 7th 2014
 - Resampling on channel output to match system. (in 'resample' branch) (deva)
   - Zita on windows, configure lib detection
   - Add missing resampler unit test files.
   - Make resample work on VST.
 - Fix LV2 UI crash on open. (deva)
 - Global config file. (suhr)
 - Remember last browse path. (suhr)
 - Don't show hidden folder in file browser. (suhr)
 - Lineedit follow marker. (suhr)
   - LineEdit, scroll when in end on line and arrow right typed.
   - Remove printf and uncommented code

Version 0.9.6
=============
Released September 9th 2014
 - Editor split out into own project. (deva,suhr)
 - Integrate VST build into autotools. (deva)
 - Make 64bit VST binary. (deva)
 - Accept loading the same kit twice. (deva)
 - Reduce probability of playing the same sample twice in a row. (deva)
 - Normalise velocity range (was 0 to hardest sample, now is weakest sample to hardest sample). (deva)
 - Make sure loading a new kit after another works properly. (muldjord)

Version 0.9.5
=============
Released April 27th 2014
 - Editor changes:
   - Add stroke power attribute to drumkit xml format. (suhr)
   - Realtime update of waveform view when dragging fadeout slider. (deva)
   - Export energy levels to .xml file. (deva)
   - Clicking hit circles in velocity view selects corresponding in waveform view. (deva)
   - After selecting a hit by clicking a circle, allow direct deletion using "delete" kbd key. (deva)
   - Make hits in velocity view dragable. (deva)
   - Marked selection (ie. its values) is shown as lineedits in "edit" tab, changable by-value. (deva)
   - Enable multichannel export both for .wav and for .xml. (deva)
   - Turn volume slider into actual mixer fader instead of sample multiplier. (suhr)
   - Create filebrowser for selecting export path. (suhr)
   - Create main config file for saving and loading current values. (suhr)
   - Make player use fadein/out while playing (controllable through checkbox somewhere?) (deva)
 - Make engine use version number in order to select velocity algorithms and remove --with-experimental configure parameter. (deva)
 - Use Atom lv2 midi events. (suhr)
 - Make jack backend work on all buffer sizes. (deva)

Version 0.9.4
==============
Released March 5th 2014
 - Add multichannel sample support. (John Hammen)
 - Write README, ChangeLog and AUTHORS files. (deva)
 - Delete old partially broken unit test system. (deva)
 - Fix double click on toggle button to not leave the button in its middle state. (deva)
 - Make plugin gui window fixed in size. (deva)
 - Fix lineedit mouseclick to the right of the text, which should position text cursor to the right of the text. (unassigned)
 - Handle sse optimisation toggling in configure.in. (suhr)
 - Fix memory leak in Image class (png structure currently not free'd). (deva)
 - Improve FileBrowser functionality. (suhr)
 -   If filename lineedit is empty and the other one is not, use the non/empty lineedit path initially when opening filebrowser. (deva)
 -   Make it possible to type a path and have the browser switch accordingly. (suhr)
 -   Sort list by directories first and files next. (suhr)
 -   Filter out non-drumkit files. (suhr)
 -   Identify folders by appending '/' to their names. (suhr)
 -   Remove double '\\' after drive letter in filebrowser on Windows. (suhr)
 -   Test new filebrowser on Windows. (suhr)
 -   Handle directory that can not be opened. (suhr)
 -   Scrollbar is drawed wrong when few elements in list. (deva)
 - Refactor GUI::EventHandler. (deva)
 - Make Carla store plugin setting. (deva)
 - Make it work in QTractor. (deva)
 - Add jackaudio output module. (deva)
 - Support multiple samplerates by resampling at load-time (feature request from Cédric 'SxDx'). (deva)
 - Modernise autoconf. (deva)
 - Add new unit test system. (deva)
 - Find and fix LV2 midi velocities magically disappearing. (suhr) We can't reproduce this. Please contact us if you have this problem.

Version 0.9.3
==============
Released on May 7th 2013, ie. LAC 2013 version
 - Make filebrowser use strings instead of chdir. (suhr)
 - Set "Creator" in the LV2 config. (deva)
 - Prevent mouse button up events from propagating after a double click if the window if closed. (deva)
 - libpng error handling (especially ubuntu libpng version mismatch vs. ardour, 12.49 vs. 1.6). (deva)
 - Optimise GUI rendering so that it doesn't feel sluggish to work with. (deva)
 - Fix bug, where the plugin starts using 100% cpu even with no notes playing. (deva)
 - Make midifile load send load status to GUI. (deva)
 - Make DrumKitLoader stop loading on plugin deletion and if a new drumkit is being loaded. (deva)
 - Make listview scrollbar knob work. (deva)
 - Make "give me all parameter value" message with engine respons for GUI initialisation. (deva)
 - Make humaniser parameters value set/get work using messages. (deva)
 - Create GUI::ProgressBar class for use in load feedback. (deva)
 - Implement engine -> GUI signaling mechanism (for load status, etc). (deva)
 - Implement GUI -> engine signaling mechanism (reload drumkit, read parameter, etc). (deva)
 - Make layout engine classes (Painter::Box/Painter::Bar). (deva)
 - Refactor GUI::Font. (deva)
 - Design and render as png-pixmaps new fonts. (muldjord)
 - Design new layout widgets. (muldjord)
   * Pushbutton
   * Knob
   * On/off switch
   * Lineedit
   * Combobox
   * Item view with scrollbars
 - Implement new layout as a new layout engine. (deva)
 - Create PNG loader. (deva)
 - Make GUI::Image class able to use libpng 1.2. (nemo)
 - Create RC handler (embed PNG images and fonts directly in the binary). (deva)
 - Make 'instrument group' feature that can stop an open hihat, when a closed hihat is played. (deva)
 - Check for x11 lib and headers in configure. (deva)

Version 0.9.2 and older (prehistoric)
=====================================
Released on March 25th 2013.
 - Make autotools project.
 - Make event interface.
 - Make midi-node -> sample mapping.
 - Make drumkit xml file format spec.
 - Make xml reader/parser.
 - Make alternative audio backends work
   * ALSA (output)
   * ALSA Midi (input)
   * Jack (output)
   * JackMidi (input)
   * SndFile (output)
   * Midifile (input)
 - Make Win32 port.
 - Make plugin-able
   * LV2
   * VST
 - Make basic drumkit editor.