Release date: October 15th 2019
Contributors: chaot4, meka, deva
This release is primarily a bugfix release but a few new features also
managed to sneak in.
- Sample selection algorithm now behaves a lot better when using a small
- Error reporting has been drastically improved when loading drum-kits.
- Sample normalization option has been added.
Also some bug fixes, mainly for the UI.
For a more in depth description of the changes and fixes, see the
changelog for 0.9.18:
Release date: July 15th 2019
Contributors: deva, chaot4, suhr, trebmuh
In this release we tried to jam in as many of our planned changes to the
xml as possible. There are still a few more to go but this release has
brought us a large step closer to our feature-complete xml format. Quite a
few other major features has also found their way into this release, which
will be much more visible (and audible) to the users.
- Improved sample selection algorithm.
- Clicky-kit feature.
- Midnam support.
- Directed choke functionality.
- Drumkit metadata support.
- Experimental Cocoa UI support for MacOSX.
Also some bug fixes and a lot of code refactoring (replaced eXpat with
pugixml for one).
For a detailed description of all the new shiny features, including
audio samples and lots of screenshots, see the changelog for 0.9.17:
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.
- 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.
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.
- 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.
- 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)
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
- Introduced new resampler module in ui
- 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
- 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
- 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
- Don't put .a and .la files in lv2 folder on install
Release date: April 23rd 2017
Contributors: deva, chaot4, Muldjord, meka
Highlighted changes / fixes:
- New ui
- 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
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
- 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
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
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.
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:
- 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
Released March 16th 2015
- Fixed bug where resampling resulted in sample skewing over the output channels
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)
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
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)
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)
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.
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)
* On/off switch
* 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
- Make basic drumkit editor.