[ANN] jdrummer, An EZDrummer FOSS alternative

I have always wanted a FOSS alternative to EZDrummer3 so I made one that runs natively on Linux(as well as Windows) . It is called jdrummer. It uses soundfonts for Drumkits, has a groove composer similar to MTPowerDrumkit, and the main functionality I was looking for: matching audio clips to drum grooves similar to Ezdrummer’s bandmate feature. . It also gives you the option to load your own drumkits using sf2 soundfonts and your own custom MIDI drum grooves (see repo readme)

It is still in a very rudimentary state. I know it’s missing a lot like a nice GUI, the ability to mix individual drum instruments and do multi out but that is planned in the future. It could probably use more kits, but you can also add more soundfonts.

Here are some known issues:

  • Cannot drag grooves directly into the DAW, need to be dragged from the composer bar ( same goes on the Match section)
    -Drag and Drop not currently working in Bitwig 5.3 flatpak (there is an Export MIDI button that will highlight the actual temporary MIDI file on the disk, alternatively the Linux version also comes with a standalone version)
    -When trying to load it into Qtractor, it crashes

Here is the repo: GitHub - jmantra/jdrummer: An open source drum plugin that acts as an alternative to EZDrummer3

11 Likes

Thank you for spending the time to bring a FOSS solution for this universal need. Especially for the Linux world.

A quick video demo would get this project a thousand times more visibility. :wink:

2 Likes

This is a great Foss alternative. I have just started experimenting with it but it is very intuitive on how it is layed out. i have used most of the other drumming programs- both foss and lots of commercial so i think i can compare it to my past experience. Thank you and appreciative for your great work on jdrummer. I will try using it on next project.

btw what kind of drum midi mapping does this use?
is there a map we can reference?
also is there a way to create a custom wave drumkit?

It uses standard General MIDI (GM) drum mapping, so it’s compatible with any GM drum MIDI files. The 16 visible pads cover the most common kit pieces (kick=36, snare=38, hi-hats=42/44/46, toms=41-48, cymbals=49/51, etc.).

As far as a MIDI map reference, this is something that can definitely be added to the Readme file, in the meantime you can find the mappings in this file: jdrummer/Source/Components/DrumPadGrid.cpp at main · jmantra/jdrummer · GitHub

  static const std::vector<PadInfo> infos = {
        // Bottom row (lower sounds)
        { 36, "Kick",      kickColour },
        { 38, "Snare",     snareColour },
        { 40, "Snare 2",   snareColour.darker(0.1f) },
        { 41, "Lo Tom",    tomColour },
        { 43, "Mid Tom",   tomColour.brighter(0.1f) },
        { 45, "Hi Tom",    tomColour.brighter(0.2f) },
        { 47, "Mid Tom 2", tomColour.brighter(0.15f) },
        { 48, "Hi Tom 2",  tomColour.brighter(0.25f) },
        
        // Top row (higher sounds)
        { 42, "HH Closed", hihatColour },
        { 44, "HH Pedal",  hihatColour.darker(0.1f) },
        { 46, "HH Open",   hihatColour.brighter(0.1f) },
        { 49, "Crash",     cymbalColour },
        { 51, "Ride",      cymbalColour.darker(0.1f) },
        { 53, "Ride Bell", cymbalColour.brighter(0.1f) },
        { 39, "Clap",      percColour },
        { 37, "Rim",       percColour.darker(0.1f) }
    };
    
    return infos;
}

As far as creating drumkits, right now you have the ability to add your soundfonts the plugin can use.GitHub - jmantra/jdrummer: An open source drum plugin that is inspired by commercial plugins such as EZDrummer3 and the Logic Pro/GarageBand Drummer

I may be adding a GUI where people can add their own their own drumkit pieces in a later release (possibly as a separate utility)

To use soundfonts from another source I deleted the soundfont folder and created a symlink to the source.
ln -s /path/to/soundfonts ~/.vst3/jdrummer.vst3/Contents/Resources/soundfonts

1 Like

Path could also be a configuration option in a future release. Same goes for the midi files —

1 Like

I am happy to announce I have a released a new version of jdrummer (Version 1.5) which includes some bug fixes and suggestions from users:

Release notes below:
New Features/Issues Fixed:

  1. Added Mac AU and VST3 support.
  2. Added ability to drag Grooves straight from the Groove Browser rather than just the composer bar on both the Groove Browser tab and the Match tab. (Per Issue 5 )
  3. Added ability to choose alternative tempo candidates (if available). Also allow user to input their own custom tempo. (Per comment on Bedroom Producers post Justin Ehrlichman releases JDrummer, a FREE and open-source percussion instrument for Windows and Linux - Bedroom Producers Blog )
  4. Added Pan and Mute functionality per Issue 2, but currently backwards see Issue 10
  5. Added multi out support per issue 6
  6. Added a build for older versions of Debian and Ubuntu (Bookworm and 22.04) per Issue 1 File name is jdrummer_VST3_old.Debian.zip
  7. Added additional soundfonts/drumkits from AVL Drumkits and Hydrogen Drumkits
  8. Removed erroneous files from Linux VST3 per Loading...
  9. Removed junk characters from Preview and Stop buttons on Groove Browser per Loading...
  10. Fixed threading issue on Match tab that was slowing down Ardour.
  11. Fixed MIDI files so when dragging and dropping in GarageBand they only appear on one track.
  12. Previewed MIDI files are synced with the tempo of the DAW.

I have also added a youtube overview of the plugin: https://youtu.be/mbGQnUJ8rxg?si=hK-KIA25WcOQam0x

Release page here: Release Release 1.5 · jmantra/jdrummer · GitHub

3 Likes

Nice plugin. It has a few issues I’ve noticed.

Opening and closing the GUI a few times takes down Ardour completely. The second thing I noticed is the panning is reversed. Minor fix for sure.

With a little more development, this will probably be my goto for creating drum tracks.

The panning issue is an issue I noticed when creating the youtube video for it: Panning backwards · Issue #10 · jmantra/jdrummer · GitHub

As far as opening and closing the plugin GUI crashing Ardour that is new one. I am going to see if I can reproduce it.

This is what was left in the console after it crashed:

The program 'ardour-8.12.0' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 991 error_code 3 request_code 15 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

What OS or Linux distro are you using?

Fedora 42 Linux with latest updates. Mate Desktop.

I am having a lot of difficulty reproducing this behavior. I am on Fedora 43 Plasma, but I have system tuned using this script: linux-audio-setup-scripts/fedora/43/install-audio.sh at main · tuxaudio/linux-audio-setup-scripts · GitHub

I just downloaded Fedora 42 MATE, let me see if I can reproduce it on there without the audio setup script.

1 Like

checking out the video overview right now. When ver 9 comes out, this will be one of the helping tools to be given review. Been wanting a tool like this! Everyone wants one :wink: