DRUMGIZMO(1)

πŸ“¦
version 0.9.20 Β· 2 versions
  • 0.9.20 Β· arch rolling, debian bookworm, debian trixie, nixos 26.05, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 0.9.19 Β· ubuntu jammy
, in arch rolling, debian bookworm, debian trixie, nixos 26.05, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– DRUMGIZMO πŸ’–

okay bestie, sit down, hydrate, because we're about to talk about drumgizmo β€” the drum application, from the DRUMGIZMO(1) manual, and it's literally so good. i'm gonna walk you through the whole thing, every single flag, no skips, no cap. πŸ₯βœ¨


✨ NAME ✨

drumgizmo β€” drum application. that's it, that's the whole name section, she's concise and she knows it πŸ’…


🌈 SYNOPSIS 🌈

drumgizmo [OPTIONS] <FILE>

that's the whole vibe. options, then a file. periodt.


πŸ¦‹ DESCRIPTION πŸ¦‹

DrumGizmo is an open source cross-platform drum plugin and stand-alone application. She's comparable to several commercial drum plugin products, and honestly? she holds her own. πŸ‘‘

DrumGizmo uses an open drumkit file format, which means the community can go off and create their own drumkits β€” no gatekeeping, we love that for us. She's got multichannel output, so you can mix it just the way you would a real drumkit. main character mixing energy fr fr.

The optional built-in humanizer analyzes the midi notes and adjusts velocities on-the-fly, which is giving "drummer with feelings" and i'm obsessed.

So what can this client be? Multiple things, she contains multitudes:

  • A stand-alone midi renderer, generating .wav files β€” 1 for each channel πŸŽ€
  • A software sampler for an electronic drumkit
  • And yes, there are also plugin versions available πŸ’…

πŸ’… OPTIONS πŸ’…

here's the whole menu, bestie, every single one, we do not skip a single item in this house:

  • -a, --async_load β€” Load kit in the background. go do your thing while the kit loads, we're multitasking ✨
  • -b, --bleed β€” Set and enable master bleed.
  • -i, --inputengine {dummy|test|jackmidi|midifile} β€” Use said event input engine.
  • -I, --inputparms parmlist β€” Set input engine parameters. okay so each engine has its own lil settings, here they are:
    • jackmidi:
      • midimap=<midimapfile>
    • midifile:
      • file=<midifile>
      • speed=<tempo> (default 1.0)
      • track=<miditrack> (default -1, all tracks)
      • midimap=<midimapfile>
      • loop=<true|false>
    • ossmidi:
      • midimap=<midimapfile>
      • dev=<device> (default '/dev/midi')
    • test:
      • p=<hit_propability> (default 0.1)
      • instr=<instrument> (default -1, random instrument)
      • len=<seconds> (default -1, forever)
    • dummy: β€” nothing here, it's the chill one, it needs no params 🧚
  • -o, --outputengine {dummy|alsa|jackaudio|wavfile|oss} β€” Use said audio output engine.
  • -O, --outputparms parmlist β€” Set output engine parameters. same deal, per-engine settings:
    • alsa:
      • dev=<device> (default 'default')
      • frames=<frames> (default 32)
      • srate=<samplerate> (default 44100)
    • wavfile:
      • file=<filename> (default 'output')
      • srate=<samplerate> (default 44100)
    • oss:
      • dev=<device> (default /dev/dsp)
      • srate=<samplerate> (default 44100)
      • max_fragments=<fragments> (default 4)
      • fragment_size=<size> (default 8)

More info on max_fragments and fragment_size on http://manuals.opensound.com/developer/SNDCTL_DSP_SETFRAGMENT.html β€” go read it if you're curious, i'm not gonna pretend i memorized that url, i'm just telling you where it lives πŸ’œ

  • jackaudio: β€” no extra params listed
  • dummy: β€” also no extra params listed, equally unbothered πŸ“
  • -e, --endpos β€” Number of samples to process, (default -1: infinite).
  • -r, --no-resampling β€” Disable resampling.
  • -s, --streaming β€” Enable diskstreaming.
  • -S, --strimingparms parmlist β€” Parameters for controlling the streaming buffers.
    • limit=<size> (Limit the amount of preloaded drumkit data to the size)
  • -t, --timing-humanizer β€” Enable moving of notes in time.
⚠️ Note: adds latency to the output so do not use this with a real-time midi drumkit. i'm being so serious rn, don't do it 😭
  • -T, --timing-humanizerparms parmlist β€” Timing humanizer options.
    • laidback=<val> (Move notes ahead or behind in time in ms [+/-100].)
    • tightness=<val> (Control the tightness of the drummer. [0,1].)
    • regain=<val> (Control how fast the drummer catches up the timing. [0,1])
  • -t, --velocity-humanizer β€” Enables adapting input velocities to make it sound more realistic. (yes, this page really does list -t twice β€” i don't make the rules, i just report them faithfully πŸ™ˆ)
  • -T, --velocity-humanizerparms parmlist β€” Velocity humanizer options.
    • attack=<val> (How quickly the velocity gets reduced when playing fast notes. Lower values result in faster velocity reduction. [0,1])
    • release=<val> (How quickly the drummer regains the velocity when there are spaces between the notes. Lower values result in faster regain. [0,1])
    • stddev=<val> (The standard-deviation for the velocity humanizer. Higher value makes it more likely that a sample further away from the input velocity will be played. [0,4.5])
  • -l, --voice-limit β€” Enable voice limit.
  • -L, --voice-limitparms parmlist β€” Voice limit options.
    • max=<val> (Maximum number of voices for each instrument before old samples are ramped down. [1,30])
    • rampdown=<val> (Time it takes for an old sample to completely fall silent. [0.01,2.0])
  • -p, --parameters parmlist β€” Parameters for the sample selection algorithm.
    • close=<val> (The importance given to choosing a sample close to the actual velocity value (after humanization) [0,1])
    • diverse=<val> (The importance given to choosing samples which haven't been played recently [0,1])
    • random=<val> (The amount of randomness added [0,1])
  • -v, --version β€” Print drumgizmo version and exit.
  • -h, --help β€” Print command line help and exit.
  • drumkitfile β€” Load the drumkitfile.

πŸŽ€ EXAMPLES πŸŽ€

okay here's the part where it all clicks, let's see her in action:

Render midifile to wav files:

drumgizmo -i midifile -I file=file.mid,midimap=midimap.xml -o wavfile -O file=prefix drumkit.xml

Receive midi from Jack and send audio output to speakers:

drumgizmo -i jackmidi -I midimap=midimap.xml -o jackaudio drumkit.xml

look at that. clean. iconic. ate and left no crumbs πŸ”₯


πŸ’€ BUGS πŸ’€

Report bugs to http://www.drumgizmo.org/wiki/doku.php?id=bugs. found a bug? tell the devs, don't suffer in silence bestie, that's what the wiki is for 🫢


🌸 ADDITIONAL INFORMATION 🌸

For further information, visit the website http://www.drumgizmo.org. go forth, get your drum knowledge up, i believe in you ✨


and that's the whole page, bestie!! πŸ’– this one came from the drumgizmo manual page, dated 21 July 2018, and that's your source and your date right there β€” consider it a lil signed, sealed, timestamped love letter from the DrumGizmo crew. now go make some beats, you absolute legend. πŸ‘‘πŸ₯βœ¨