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.
-
-
-
Add CC to NoteOn conversion, controlled through midimap file.
(dingodoppelt)
-
-
-
Make hihat-pedal openness control.
(corrados)
-
-
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)
-
-
-
-
-
Re-visit the way midi file tempo
is handled on the command-line.
-
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)
-
OSX:
Create
.dmgs for OSX deployment.
(deva)
Make OSX bundle with LV2 (See
DPF / ask falktx)
-
Add support for high-res displays on non-OSX platforms
(unassigned)
Add support for opening links in external browser
(unassigned)
Add support for setting mouse cursor.
(unassigned)
Add selection by mouse and keyboard (shift+arrows) in lineedit.
(unassigned)
Add support for clipboard.
(unassigned)
Stretch drumkit image.
(deva/chaot4)
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)
CLI:
Add CoreAudio output support.
(deva)
Add CoreAudio midi input support.
(unassigned)
-
-
Switch to
Midifile instead of (or also) libsmf (suggested by Chris Share - cpsmusic).
(unassigned)
Per instrument voice count controls to cli.
(unassigned)
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)
-
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)
-
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)
Backlog
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 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:
-
Make our own wav header parser for the MemChecker kit size calculation.
(chaot4)
-
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)
-
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)
-
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)
-
Display if
OSS is enabled by default based on host
OS.
(meka)
Completed Features/Roadmap
Version 0.9.20
Version 0.9.19 (LAC 2020 version)
Version 0.9.18.1
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.
OSX:
Set LV2 ui type according to implementation (ie ui:CocoaUI on OSX) (deva)
Version 0.9.17
Version 0.9.16
Version 0.9.15
Version 0.9.14 (LAC 2017 version)
May 14th 2017
Bugfix release
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
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)
-
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).
-
-
Version 0.9.11
October 29th 2016
Engine refactoring release.
Version 0.9.10
Version 0.9.9
Version 0.9.8.1
Hotfix release
Fix nasty resampling buffer offset bug (deva)
Version 0.9.8
Version 0.9.7
Version 0.9.6
Version 0.9.5 (LAC2014 version)
Version 0.9.4
Bugfix release
Released March 5th 2014.
Version 0.9.3
Old stuff