Drumgizmo Roadmap

Version ending with an even number are stability/bugfix releases (except 0). Versions ending with an odd number are feature releases that are potentially unstable.

Version 0.9.21

Feature release
Not yet a target release date.

  • Update drumkits to newest features:
    • DRSKit (deva)
    • CrocellKit (Eamonn)
    • MuldjordKit (muldjord)
    • Aasimonster (unassigned)
    • ShittyKit (unassigned)
  • BUGS:
    • Don't clear midi events after jack processing - see jackmidi.cc:125 (corrados)
    • Make sure to make blocking AudioFile reads when rendering - see drumgizmo.cc:364. (deva)
    • Investigate/fix weird midi echo issue.
    • Investigate/fix weird "same velocity" issue.
    • Fix assert/crash bug in spline calculation
    • Fix “silence” issue when running with weird samplerate.
    • Re-visit the way midi file tempo is handled on the command-line.
    • Fix hanging issue. (deva)
    • Fix embedded UI vertical offset in Studio One on macOS. (veticus/deva)
    • Fix broken keyboard input in Studio One on macOS. (veticus/deva)
    • Fix pixel offset when using the mouse in the UI (especially visible in Ardour). (deva)
    • Fix crashes and weird rendering issues with >=suil-0.8.3. (deva)
    • FileBrowser being non-interactive in Reaper on Win10. (See IRC) (unassigned)
    • FileBrowser showing just a white surface in Reaper on Win10. (See IRC at 20:07:51) (unassigned)
    • Directed chokes not working with voice limit set very low IRC (unassigned)

Version 0.9.x

Bugfix release
Not yet a target release date.

  • Validate normalized sample gain correction. Should be similar to sfz/linuxsampler. (deva)
  • Make proposal for multi-core processing. (deva)
  • Add ALSA raw MIDI support: 1 2 3 4 5 (deva)
  • UI overhaul. (pixelwiz)
  • Set up torrents for drumkit downloads: irc. (unassigned)
  • Plugins:
    • Compile and release LV2 for Windows. (unassigned)
    • Show played notes in clicky kit. (chaot4)
    • Display last played MIDI note (chaot4)
    • Add LV2 port-group support to be able to name the outputs according to the drumkit channel names. (unassigned)
    • Add MIDI learn feature. (chaot4)
    • Add functionality to save/export learned MIDI map to midimap file. (chaot4)
    • Add sample pitch modifier (chaot4)
    • Add per instrument volume control. (chaot4)
  • Add default drumkit and midimap to UI. (chaot4)
  • Make file browser a more pleasant experience (explore using native file browser on all platforms: lv2 and vst have mechanisms to ask the host for a file browser: lv2). (chaot4)
  • Other:
    • Create pd external. (deva)
    • Improve dgreftest to use xml as input including files, seed as well as config as xml like the plugins. (unassigned)
      • Make test suite of mid/wav/xml files exercising all kit features. (unassigned)
    • Add “two output channels mode” which should be super convenient for e-drum kits (chaot4)
    • Dynamically set volume modifier based on velocity: https://linuxmusicians.com/viewtopic.php?f=57&t=20248
    • Store the range of samples used to calculate the power.
    • Strip dead code in binaries. (deva)
    • Compile with dynamic libraries removed/hidden to force static linking. (deva)
  • other:
    • Add Linux VST build instructions. (chaot4)
    • Add midi CC to control engine settings at runtime. See http://nickfever.com/music/midi-cc-list for reference. See irc log 20:39 (unassigned)
      • Make midi CC event for resetting random seed. (unassigned)
    • Parse beginning of xml files in order to determine if they are a drumkit. Hide if not. Extend drumkit parser with some function that determines if current file is of proper format (eg. for drumgizmo format root node is drumkit). (suhr)
    • If you have named jack output channels in your jack drumgizmo client using jack metadata to suggest a port sorting order for e.g. QJackCtl is now possible (ask nils)
  • Low priority:
    • Disable timing humanizer in the UI if not supported by the host (LV2). (unassigned)
    • Check for real time hazards in the inner loop using stoat. (unassigned)
      • Placeholder: Fix found real time hazards.
    • Add escaping of special characters in values (and keys?) in ConfigFile parser. (unassigned)
  • Add (dynamic) language change feature to the UI.
  • Metadata:
    • Make preliminary GUI drafts on how to implement the metadata into the interface (muldjord)
  • Design drumkit logos, and add them to the drumkits. (muldjord)
  • Add drumkit logo in the inline display. (chaot4)


Major Features

  • Add UI option for the cli -u. (unassigned)
    • Add “Export” and “Import” buttons and functionality to the UI. (unassigned)
    • [placeholder] Add cli module options tabs to the UI. (unassigned)
  • Make “alternatives” feature that makes it possible to swap (ie. use the same midi notes) for example a snaredrum without reloading the entire drumkit. (unassigned)
  • Make hihat openness matrix control port. Look up samples in a two dimensional array rather than a one dimensional depending on velocity and openness instead of just velocity. This could also be used for “off-axis” on a snare or similar and could potentially be use with more-than-2 dimensions.
  • Wayland UI support
  • Add Windows WASAPI support.
  • Add Windows DirectSound support.
  • Make full utf-8 support in the font renderer (using freetype?) (unassigned)
  • Make LV2 plugin compile on OS X. (unassigned)
  • Make AU plugin for OS X. (unassigned)
  • Make AAX plugin for OS X. (unassigned)
  • Add DXi support on Windows DXi. (unassigned)
  • Add DSSI support.
  • Make engine parameters controllable through native LV2 and VST handles (auto generated GUIs) thereby enabling automation. (unassigned)
  • Change drumkit/midimap via MIDI messages (see this log)
  • Instrument preview (i.e., clickable image of the loaded drumkit)
  • Show visual drumkit preview and drumkit information on selecting a drumkit file in the file browser
  • Audio preview of drumkit in file browser

Minor Features

  • Template the Knob class so it can represent different numeric types (TheMarlboroMan)
  • Add user control for the variance of the sample selection function
  • Include or automatically generate midnam files for users who do not enjoy the lv2 extension which automatically changes the note names.
  • Little cute drumkit in inline display where the drums light up when corresponding note is played.
  • Enable unit-tests on (at least) win64 (deva has a patch…)
    • Make DrumkitCreator cross-platform:
      • mkdtemp not recognized on windows.
      • remove temp folder on windows.
  • Remove .la files - take three (deva)
  • Make our own wav header parser for the MemChecker kit size calculation. (chaot4)
  • Investigate stuttering generally in Reaper. (unassigned)
  • Fix win32 window size when embedded.
  • Re-enable (and fix) partial rendering in win32.
  • Store streamer settings as system defaults in plugingui.ini for use with new plugin instances. (unassigned)
  • Make FileBrowser allways-on-top of parent window. (unassigned)
  • Make FileBrowser open near parent window. (unassigned)
  • Make sure we return handle to the newly created window in VST. (deva)
  • Add samplerate (and other info) to the drumkit pages. (unassigned)
  • Option for async_load (-a) has wrong number of channels. (meka)
  • Remove or fix async load in CLI. (unsassigned)
  • Make lv2 unittest run without needing “make install”. (unassigned)
  • Reduce compile time by using more forward declarations. (unassigned)
  • Print help when drumgizmo CLI interface is called without arguments. (unassigned)
  • Make jack output module use getBuffer to re-use the internal jack buffer internally in the engine. (unassigned)
  • Make it possible to connect lambdas (or just functions) to Notifiers. (unassigned)
  • Evaluate the benefits of “chunk interleaving” in the kit wav files instead of channel interleaving as we use today (make speed comparison tests). (unassigned)
  • Add connect methods to Listener base class instead of the current C macro. (unassigned)
  • Refactoring on PowerList (midifile-refactor branch) (cglocke)
  • Make midimap load only happen through setting settings.midimap_file in MidifileInputEngine.
  • Create new Engine class and move all audio-inner-loop code there to better indicate where we can use blocking calls/locks and where we can't. (deva)
  • Make unit tests run on OSX.
  • Use common bin-version for plugins (VST: setUniqueID() and LV2: ttl:microVersion and ttl:minorVersion)
  • Remove instrument name from instrument files, since it is used by the drumkit to map through midimap. (unassigned)
  • cli client tasks:
    • BUG: Make midi file reader playback speed use actual samplerate. (unassigned)
    • Make rendering progress in cli client when rendering midi file to wav. (suhr)
    • Make player position output in cli client (suhr)
    • Make it possible to set engine configuration parameters (humanizer, etc…) in cli client. (unassigned)
  • Cli modules not compiled in shouldn't be in the help text or man page. (unassigned)
  • Make cli HowTo. (muldjord)
  • Discuss the option of dynamically loading fewer velocity layers as an extra feature to reach a smaller memory footprint when loading a kit (suggested by user “magda”, ask muldjord for more info). (unassigned)
  • Add microtuning as an instrument parameter - irc chat about the topic. (unassigned)
  • Somehow make runtime detection for sse optimizations. (unassigned)
  • Lock memory to prevent page faults: POSIX: mlock()/munlock(), Windows: VirtualLock()/VirtualUnlock()
  • Run sord_validate as part of unit test. (unassigned)
  • Add PUGL GUI backend. (Hvad/hvordan? En stor opgave, udskyd) (suhr)
  • Add list of previously selected drumkits. (Fjern, se ovenfor)(suhr)
  • Think gui-configuration window (Udskyd)
    • Initial state of the plugin should be configurable through some kind og global configuration. (muldjord,suhr,deva)
    • When first loading a kit, the initial path should be a “drum kit path”.
    • Initial settings for humanizer and relating values should be configurable.
    • Store history of drumkits.
  • Choose loaded instruments in GUI
  • Update README file
  • Present downloadable drumkits to the user through the UI. (unassigned)
  • 'git:/ /' support for annonymous pull. (unassigned)
  • Add keyboard shortcuts to UI (Escape → filebrowser, tab → jump to next element) (unassigned)
  • Merge features from edrummer feature list into “Unspecified future release” taskllist. (iliverez)
  • ENGINE: When recieving midi input, make it possible to restrict it to a certain midi channel (0-16?). As reported by “swbeeton” on irc on 22may2014. Ardour can output to only one midi channel so it is possible to have both a keyboard and an electronic drumkit connected on the same midi interface. But since DrumGizmo recieves input on all channels, it also reacts to the midi keyboard input.
  • Look at Aubio for beat onset detection. (unassigned)
  • Add bypass button in the GUI reflected in the DAW lv2. It should disable the engine entirely not just mute the outputs. (unassigned)
  • Split up GUI engine code and plugin GUI implementation. (unassigned)
  • Make support for SFZ (archive.org) (original, broken link) format, either directly or as a converter (look at calfbox). sfizz libsfz. (suhr)
  • Display if OSS is enabled by default based on host OS. (meka)

Completed Features/Roadmap

Version 0.9.20

Bugfix release
Released September 8th 2022

  • Make configure fail if nls is enabled but gettext tools not found. (deva)
  • Make rcgen compile and work on windows again through autotools. (deva)
  • Run and fix unit-tests on windows. (deva)
  • Add voice-limit parameters to cli (corrados)
  • Add ALSA MIDI seq support (corrados)
  • Add support for triggering multiple instruments with one note. (deva)
  • Record and measure real cymbal choke-time and use this value instead of the current 68ms. (deva)
  • BUGS:
    • Fix compilation with gcc-11 (deva)
    • Fix cli crash when using async-load (deva/corrados)
    • Fix crash when loading Crocell kit in ardour (stack allocation issue) - see Ardour bug report. (deva)
    • Fix ALSA output frame size change. (corrados)
    • Fix OSX AudioCacheFileTest unit-test. (non-error: was really an out-of-disc-space error on the build-agent) (deva)
    • Improve macOS rendering speed. (deva/veticus)
    • Fix after-touch chokes regression error. (deva)
    • Make aftertouch choke if velocities > 0 instead of == 0 as this seem to be the vdrum vendor concensus. (deva)
    • Fix compilation issue when compiling without nls enabled. (deva)
    • Fix crash when pressing play while loading a drumkit. See IRC (deva/chaot4)
    • Fix crash when loading a drum-kit that has more channels than the engine is compiled with. (deva)
    • Reduce UI window height to fit on “small” displays (deva)

Version 0.9.19 (LAC 2020 version)

Feature release
Released November 22nd 2020.

  • Per instrument voice count controls. (TheMarlboroMan)
  • Translation support - embedded gettext. (deva/trebmuh)
    • French Translation of the plugin GUI (trebmuh)
  • Make sure DrumKit.clear() also clears metadata. (deva)
  • OSX:
    • Make OSX bundle with VST (See DPF / ask falktx)
      • See /Users/drumgizmo/jenkins/release-test
      • See /Users/drumgizmo/jenkins/falktxscript/drumgizmo.vst
    • Fix rendering on HiDPI (retina) display. (deva)
    • Fix LV2/OSX ui corruption on resize in Ardour. (deva)
    • Fix VST/OSX ui mouse offset issue in Ardour. (deva)
  • Plugins:
    • Add default midi map to drumkits which is then automatically loaded when drumkit file is loaded. (chaot4)
    • Add resampler quality knob to the UI. (deva)
    • Add default drumkit to config file, no UI for now. (chaot4)
    • Add “Velocity translation” module in ui for the following functionality: (chaot4/deva)
      • Velocity curvature adjustment (up/down)
      • Velocity floor adjustment
      • Velocity ceiling adjustment
      • The point of all of these is to adjust any given drumkit to match the expected sound output from a midi drum loop you might have acquired elsewhere. The drumkits differ in where the hits are placed and as such an internal adjustment might be needed for the midi to sound as expected when played through any particular kit.
    • Velocity curves (but with new design and in GUI and CLI) (chaot4)
  • GUI:
    • Vastly improve rendering speed. (deva)
    • Fix click-map alignment on top of kit image when window is smaller than the image. (deva)
  • Other:
    • Add DGValidator support for clickmaps. (deva)
    • Refactor configfile.cc/h (chaot4)
    • Change config directory on Windows from .drumgizmo to DrumGizmo (chaot4)
    • Compile zita-resampler as a submodule (deva)
    • VST Makefile, add -Wno-c++11-narrowing (deva)
    • Add missing nativewindow_cocoa.mm to distfiles. (deva)
  • BUGS:
    • Note-on with velocity 0 should be ignored. (chaot4)
    • Default drumkit not being stored correctly on Windows. (chaot4)
    • Fix LV2_Descriptor and LV2UI_Descriptor compilation errors with the most recent LV2 headers. (deva)
    • Fix assert(events.empty()) in jackmidi.cc line 113. (deva)


Hotfix release
Released October 23rd 2019.

  • BUGS:
    • FileBrowser oddly disappears in Reaper on Win10. (See IRC at 19:41:40 and IRC) (deva)

Version 0.9.18

Bugfix release
Released October 15th 2019.

  • BUGS:
    • Fix crash when running LV2 from jalv.select and resizing.(see IRC at 21:51:40) not reproducible (chaot4)
    • Fix potential mutex race. not reproducible(chaot4)
    • Fix loading of drumkits not reporting errors as text (including dgvalidator). (see IRC at 23:26:29) (deva)
    • Fix spelling errors in UI. (chaot4)
    • Fix crash on Windows when file-browser is open and plugin window is closed (see IRC log). (deva)
    • Fix GUI not showing in Reaper under Windows on first opening it. (deva)
  • Sample selection algorithm improvements:
    • Check new sample selection algorithm on crashextra in crocellkit. Very few samples result in large spread in chosen samples with the same input velocity. See irc. (chaot4)
    • Scale values for sample selection to [0,1] for input via CLI. (chaot4)
  • OSX:
    • Set LV2 ui type according to implementation (ie ui:CocoaUI on OSX) (deva)
  • other:
    • Add all velocity humanizer CLI options, not just stddev. (chaot4)
    • Disable stddev when velocity humanizer is turned off. (chaot4)
    • Make file-browser always on top. (deva)
    • Introduce sample normalization option to the engine and xml. (chaot4/deva)

Version 0.9.17

Feature release
Released July 15th 2019.

  • Cocoa UI support for OSX:
    • Make rendering of pixelbuffer work. (deva)
    • Make mouse move and click events work. (deva)
    • Make window resizing work. (deva)
    • Implement setFixedSize. (deva)
    • Support keyboard input events. (deva)
    • Detect double click. (deva)
    • Support window embedding. (deva)
    • Fix rendering of pixelbuffer on Mojave OSX. (deva)
    • Fix rendering of emdedded window on Mojave OSX. (deva)
  • Add new improved sample selection algorithm - irc (chaot4)
    • Add tooltip descriptions for the humanizer knobs. (chaot4)
    • Add controls to cli. (chaot4/deva)
  • Write documentation on the new XML format. (deva)
  • Metadata:
    • Review XML structure XML format wiki page (deva/muldjord)
    • Create new drumkit parser. (suhr/deva)
    • Create new instrument parser. (suhr/deva)
    • Get rid of eXpat dependency. Use PugiXML instead. (suhr/deva)
    • Make unit tests for the drumkit/instrument parsers. (suhr/deva)
  • Plugins:
    • Make clicky-kit functionality. (chaot4)
    • Add midnam LV2 support to plugin based on the names from the instrument files. (rgareus/deva)
    • Fix out of bounds drawing of frame (chaot4)
    • Add 'set as default' path button in file browser. (deva)
    • Add midi aftertouch choke events. (deva)
    • Add tool-tips to frames. (deva)
  • CLI:
    • Add support midi aftertouch chokes for all midi input engines (midifile, jackmidi and ossmidi). (deva)
    • Add dgvalidator commandline tool for validating drumkits. (deva)
  • Other:
    • Add version to config xml. (deva)
    • Add md5 hashes to drumkit downloads. (deva)
    • Generate lv2 manifest/ttl from the code contents of the plugingizmo implmentation. (deva)
    • Make channel-count controllable through configure. (deva)
  • BUGS:
    • Fix potential division by zero in rampdown. (deva)
    • Fix broken disk stream size limit in plugin config. (deva)
    • Fix config file parsing with empty values. (deva)
    • Fix creation of config dir if it doesn't exist when config file is about to be written (deva)

Version 0.9.16

Bugfix release
Released August 12th 2018.

  • Fix latency reporting to Reaper irc log 19:19. (deva/chaot4)
  • Timing humanizer stops normal cymbal samples too early:irc log 9:50 (chaot4)
  • Samples are cut off when looping in Reaper irc log 7:24 (deva)
  • LV2: Don't export any symbols except the plugin entry point to avoid clashes with the DAW or other plugins. (use -fvisibility=hidden etc.) (deva/chaot4)
  • VST: Don't export any symbols except the plugin entry point to avoid clashes with the DAW or other plugins. (use -fvisibility=hidden etc.) (deva)
  • Infinite loop bug. (chaot4, couldn't reproduce)
  • Remove remaining 44k1Hz references in the code. (deva)
  • Report latency from resampling. (deva/suhr) (unassigned)
  • Fix LV2 Buffer overflow (deva/suhr)
  • Add message to execution of CLI without arguments that mentions that the GUI is only supported in the plugins (chaot4)
  • Update French translation of manpage. (trebmuh)
  • Fix crash or noise when changing jack buffersize while running. (chaot4)
  • Refactor resampler - now depends strictly on zita-resampler and is no longer optional. (deva)
  • Stuttering when resampling is active: https://linuxmusicians.com/viewtopic.php?f=57&t=17334&p=83388#p83388 (unassigned)

Version 0.9.15

Feature release
Released July 24th 2018.

  • Make humanized timing feature:
    • Add humanized timing feature to DrumGizmo engine. (deva)
    • Add latency reporting to LV2 frontend. (deva)
    • Add latency reporting to VSTi frontend. (deva)
    • Add UI controls. (muldjord/deva)
    • Add visualizer showing current drift and velocity dampening. (muldjord/deva)
    • Add to CLI. (deva)
  • Master bleed control (one slider; mark master channel(s) in xml)
    • Adapt drumkits (muldjord)
    • Design UI (muldjord)
    • Adapt parser (deva)
    • Adapt settings (chaot4)
    • Store settings (chaot4)
    • Adapt UI (chaot4)
      • Grey out slider if no 'main' attributes exist. (chaot4/muldjord)
    • Adapt engine (deva)
    • Add to CLI (suhr)
  • CLI:
    • Finish and integrate getoptpp as a submodule. (meka/cglocke)
    • Add OSS MIDI input support. (meka)
  • BUGS:
    • Fix X11 BadValue crash bug. (deva)
    • Fix black render when opened as LV2 on Ardour and FreeBSD. (offending commit: ca78dfa7e2) (meka)
    • Make sure we don't underflow in resize(…) (deva)
    • Fix valgrind errors of GUI. (chaot4)
    • Fix crash if CLI is invoked without input and/or output engine. (deva)
  • Plugins:
    • Add cute little image in the inline display. (chaot4)
    • Fix out of bounds drawing of frame (chaot4)
    • Reset knob values on double-click. (chaot4)
    • Ignore spacebar key in UI (used by DAW and toggled the buttons). (chaot4)
  • Other:
    • User 'nilshi' reports getting a ram warning when loading DRSKit even though he has a 8 GB 64bit system and has more than enough ram free when loading the kit. (The kit is ~4GB)
    • Already fixed:<unclechu> i can't build drumgizmo. configure exit with this error: ./configure: line 15605: syntax error near unexpected token `1.9.6' ./configure: line 15605: ` AM_PATH_CPPUNIT(1.9.6)'- libccpunit installed with version: 1.12.0 (chaot4)

Version 0.9.14 (LAC 2017 version)

May 14th 2017
Bugfix release

  • CLI:
    • CLI exists right away, doesn't do anything. (meka)
    • Make -i midifile -I midimap=~/… recognize the home directory. Replace “~” by the home directory in ./drumgizmo/input/midifile.cc. See this article. (meka)
    • Properly get/set OSS buffers. (meka)
    • Add —no-resampling option. (meka)
  • Engine:
    • Fix midi note on/off mask. (patch by Hans Petter Selasky)
    • 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. (deva)
    • 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. (deva)
    • Resampler BUG: Fix corruption/crash when enabling/disabling resampler at run-time. (deva)
    • Update Window build environment to a more recent mingw64. (deva)
    • Remove obsolete old mingw32 thread hacks. (deva)
    • Introduce clear signal, showing if we had an underrun because of diskstreaming. (deva)
    • Fix crash on with low preload size. (deva)
    • Can't fix; Bug in Reaper Investigate stuttering when the midi editor is open in Reaper.
    • Initial status of drumkit is “Error” on first opening the plugin. (chaot4)
  • UI:
    • Scroll-wheel on tab buttons should iterate through the tabs. (deva)
    • Refactor TextEdit. (use vector in preprocessing etc.) (chaot4)
    • Fix “unexpected easter egg”. (chaot)
    • Fix high CPU load of plugingui when shown in a host (All platforms/DAWs). (deva)
    • Thanks to Robin Gareus for greatly helping us to fix this bug: Return handle to the newly created window in PluginLV2::uiInstantiate in the widget pointer. (chaot4)
    • Add bypass button for the resampler. (chaot4)
    • Fix redraw on changing desktops. (deva)
  • General:
    • Don't put .a and .la files in lv2 folder on install. (deva)
    • Can't fix: Fix install error when there are spaces in the directory path. (deva)

Version 0.9.13

Feature release: Diskstreaming and new UI Released April 23th 2017.

  • Fix rcgen compilation with BSD make (which is not GNU make). (deva)
  • Make ui and engine compile as internal libs instead of compiling all sources in each component. (deva)
  • Implement settings for controlling diskstreaming: settings analysis. (deva, chaot)
  • Design new UI (with tabs like this) to incorporate diskstreaming controls. (muldjord)
  • Make changes to UI to incorporate diskstreaming controls. (chaot)
    • Generate resources at compile-time and remove resources_data.cc from the repo. (deva)
    • Make window resize flicker-free on X11. (deva)
    • Fix missing redraw on resize event on X11. (chaot)
    • Use XShmImage for rendering on X11. (deva)
    • Refactor Event system on X11 and Win32. (deva)
    • Support size and position changes in the same event on X11. (deva)
    • New rendering system based on dirty flag. (deva)
    • Add “partial rendering” support in rendering system. (deva)
    • Fix double click (deva)
    • Scroll-wheel inside textareas doens't work. (chaot4)
  • Make diskstreaming controls work in the engine. (deva)
    • Make preliminary test ui. (deva)
    • Make DrumKitLoader use disk streaming settings. (deva)
    • Fix crash or channel overload on stop/start command or loop due to invalid pointer returned to the engine from the diskstreamer. (deva)
    • Make AudioCache use configurable fixed size chunks. (deva)
    • Store memory limit and chunk size in config as ints instead of floats. (deva)
  • Make cli support for disk cache controls. (meka)
    • -s and -S to enable diskstreaming and set it's parameters. (meka)
    • Update man page. (meka)
    • Change onsite info for cli. (meka)
  • Add OSS support
    • Add FreeBSD OSS audio output support. (meka)
    • Add buffer size control for OSS audio output module. (meka)
  • Fix the dgreftest for aasimonster2. (chaot)
  • Add dependency check for rcgen so resource_data.cc is regenerated whenever one of the resource png files change. (deva)

Version 0.9.12

January 18th 2017
Bugfix release

  • Fix semaphore EINT assertion in MusE (deva).
  • Fix atomic link check - always link with atomic (deva).
  • Draw boxes instead of nothing when trying to render characters not in the font map. (Muldjord).
  • Extend character map to include full latin1 character set. (Muldjord).
  • Fix FreeBSD issues: (meka/deva/chaot).
    • Fix unit tests:
      • test_lv2.test1 (deva)
      • MemCheckerTest.small_drumkit (deva)
      • MemCheckerTest.check_free_ram (deva)
      • SemaphoreTest.timeoutTest (NOTE: Threshold simply increased in test due to worse timeout precision on FreeBSD!)
      • RandomTest.rangeTest (chaot)
    • Fix –with-debug (-Wl,-undefined,error not supported with clang) (deva)
  • BUG: Windows VST sometimes renders a very large value which makes Reaper mute the channel (reported by napcode) - related to: http://tracker.ardour.org/view.php?id=7026
  • Algorithmically generate the test .wav files to be able to run the tests also with the tarball (chaot).
  • Fix missing “mouse-up” events when runnnig lv2 plugin on linux in a JUCE based host (Helio or Tracktion) (chaot).
  • Add missing ttl as per: https://github.com/falkTX/Carla/issues/412 (deva)
  • Add –lv2dir parameter to configure (See http://lv2plug.in/pages/filesystem-hierarchy-standard.html) (deva)

Version 0.9.11

October 29th 2016 Engine refactoring release.

  • Fix VST gui crash when mouse pointer enters DG window. (deva)
  • Add inline plugin display for LV2 (Ardour only for now) (deva)
  • Fix crash when browsing folders with unicode folder/file names. - thanks to Maxim Alexandrovich (Ljutingr) for finding and debugging it.(deva)
  • XML Parser refactoring. (chaot4)
  • Settings refactoring (including ui↔engine communication) (deva, cglocke)
  • Fix problems when running more than one instance of DrumGizmo plugin in the same host (deva)
  • Re-enable cli test input module. (suhr)
  • Engine const ref refactoring. (cglocke)
  • Suppress subdir-objects autotools warning. (deva)
  • Move loader code to DrumKitLoader thread. (deva)
  • Correctly report vendor in VST plugin. (chaot4)
  • Add LFS support (reported by viccuad). (deva)
  • Add texture atlas support. (deva)
  • Move all configuration code out of DrumGizmo class into its own class. Refactor API accordingly. (chaot4)
  • Use lodepng from git submodule instead of directly embedding the source in the DG tree. (chaot4)
  • Separate audio rendering code from input filtering/event generation. (chaot4)
  • Clear samplebuffer even if no kit has been loaded (reported by rgareus). (deva)
  • Make sure we support latencies > 0 in all output engines. (deva)
  • Make sure we support running in free-wheel mode in all input/output engines. (chaot4)
  • Make sure we abide the samplerate in all input/output engines. (deva)
  • Check if -lrt and -latomic is needed before adding them to LDADD (deva)
  • Preliminary OSX support:
    • Set up build system for OSX (suhr, deva)
    • Implement memcheck for OSX. (chaot4)
    • Implement semaphore timed wait for OSX. (deva)

Version 0.9.10

March 30th 2016

  • Fix the 'no sound from plugin when resampler active' bug. (deva)
  • Fix the 'freeze on tempo change' bug. (deva)
  • Backspace deleting characters in lineedit (filedialog) doesn't erase characters graphically. (suhr)
  • Add GPG signatures of the release packages - both binaries and tar-balls (reported by viccuad). (deva)

Version 0.9.9

March 24th 2016

  • Switch to LGPLv3 (chaot)
  • Remove unused libraries (see unused lib report from Víctor Cuadrado Juan (viccuad) )
  • Headers are currently a mix and gpl2 and gpl3. Should be fixed.
  • UI refactor
    • Move textedit widget to refactor branch. (deva)
    • Move autolayout to refactor branch. (deva)
    • Use new notifier and refactor to new code guidelines: (deva + suhr)
      • LineEdit fixes: (deva)
        • Follow marker. (deva)
        • Scroll with long line and cursor in beginning of line. (deva)
    • Update Linux build agents so they support C++11 (deva)
  • Refactor CLI
    • Rewrite all modules to be compiled directly into the binary. (glocke)
    • Modernise all cli files. (glocke)
  • Add diskstreaming feature with infinite buffer size:
    • Test on windows. (muldjord)
    • Make sure on-the-fly framesize change is working. (deva)
    • Set pre-cache size to “infinite”. (deva)
    • Make std::mutex work with mingw. (deva)
    • Make unit tests:
      • AudioCacheIDManager (deva)
      • AudioCacheFile (deva)
      • AudioCacheEventHandler (deva)
      • AudioCache (deva)
    • Design and implement AudioCache. (suhr)
    • Use AudioCache in inner-loop. (deva)
    • Get framesize dynamically from output engine. (deva)
    • Handle snd files with refcounter. (deva)
    • Collapse events from same file and position into single multichannel event. (deva)
    • Make sure free-wheel-mode works in jack, lv2 and vst. (deva)
  • Add referenced drumkit/midi files feature. (deva)
  • Remove version number from man page. (muldjord)
  • Make benchmark performance comparisons with the “old” engine. (chaot4)
  • Add a valgrind test script. (chaot4)
  • Fix some problems reported by valgrind. (chaot4)
  • Add memory check to warn the user if the drumkit about to be loaded cannot fit into memory. (chaot)
  • LV2/VST: Make UI event handling based on idle/run calls from the plugin host instead of in a thread. (deva)
  • Port “The Aasimonster” to new velocity format. (chaot)


Hotfix release

  • Fix nasty resampling buffer offset bug (deva)

Version 0.9.8

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

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)
  • Rember 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

September 9th 2014

  • Editor in 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)
  • Editor:
    • Fix player gain reporter. (suhr)
  • GUI:
    • Use LodePng for gfx. (deva)

Version 0.9.5 (LAC2014 version)

Feature release
Released April 27th 2014.

  • Add stroke power attribute to drumkit xml format. (suhr)
  • Editor rewamp editor_rewamp. (muldjord,suhr,deva)
    • Implement presets for slider and lineedit values. (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

Bugfix release
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)
  • 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 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 superclass.(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)

Old stuff

roadmap/features_roadmap.txt · Last modified: 2023/08/15 20:32 by deva
Trace: features_roadmap
GNU Free Documentation License 1.3
Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0