Documentation
User Manual
Complete reference for DrumStrum — setup, configuration, and all features.
What is DrumStrum?
DrumStrum is a MIDI processor that turns your drum pads into a melodic instrument. A chord source — keyboard, pad controller, or sequencer — defines the current harmony. Your drum pads then trigger individual notes from that chord in real time, like a guitarist's fretting hand and strumming hand working together.
Additional inputs — sustain and expression pedals, a transpose channel, chord expand CC — can all feed DrumStrum simultaneously. These are covered in the Configuration section.
DrumStrum lives in your Mac menu bar. It runs silently in the background, receiving MIDI from your controllers, transforming it, and routing the output to your DAW, synth, or any other MIDI destination. It creates its own virtual MIDI port called DrumStrum — just point your DAW at that port and you're connected.
Everything flows out through that one virtual port, but DrumStrum can populate many MIDI channels simultaneously — each carrying a different type of content for a different destination in your DAW or hardware rig. And the resulting channel's content is based on your real time playing, so mixed with suitable sounds, your playing is conducting an entire ensemble, orchestra, or soundscape!
Channel numbers above are examples — all assignments are configurable.
Requirements
- Mac: macOS 12 Monterey or later
- Windows: Windows 10 or later*
- MIDI controller: Any drum pad controller or keyboard that sends MIDI over USB
- DAW / synth: Any MIDI-capable software or hardware as a sound source
No extra drivers or virtual MIDI software required on Mac — DrumStrum creates its own virtual port automatically.
* Windows requires a free virtual MIDI port utility (such as loopMIDI) to create the virtual port DrumStrum uses for output.
Installation
- Download the
.dmgfrom the Download page. - Open the DMG and drag DrumStrum to your Applications folder.
- Launch DrumStrum. On first run, macOS may ask you to confirm opening an app from the internet — click Open.
- DrumStrum appears as a drum icon in your menu bar. Click it to open the configuration window.
First Launch
When you open the config window, you'll land on the Transformers tab. This is the main workspace where you define how your drum pads are mapped to musical actions.
DrumStrum needs two things to make music: a chord source and a strum source. The chord source is any MIDI device playing notes on the chord channel — typically a keyboard or sequencer. The strum source is your drum pad controller, configured as a Strummer transformer. In the Chord Entry card at the top of the Transformers tab, set the chord channel to match what your keyboard sends. Then create a Strummer transformer and set its MIDI In channel to match your drum pads.
The typical setup flow is:
- In the Chord Entry card, set Chord Channel to the channel your keyboard or chord controller sends on
- Click + Add Transformer, choose Strummer, and set its MIDI In channel to match your drum pad controller
- Assign pad actions (chord positions, bass, passthrough, etc.) to each pad
- In your DAW, create a MIDI track receiving from the DrumStrum virtual port
- Play a chord on your keyboard, hit your pads — DrumStrum routes transformed notes to your DAW in real time
MIDI Setup
DrumStrum automatically creates a virtual MIDI port named DrumStrum when it launches. There are two ways to wire it into your setup:
Via your DAW: Route MIDI to and from DrumStrum through your DAW's MIDI routing. Set a MIDI track's input to DrumStrum to receive transformed output, and configure your DAW to forward controller input to DrumStrum. This is the most flexible approach and works well with Ableton Live, Logic, and most other DAWs.
Direct connection: Connect your controllers (pads, keyboards, etc.) and hardware synths directly to DrumStrum without routing through a DAW. DrumStrum opens all available MIDI inputs automatically and can send output directly to a hardware synth selected as the output device on each transformer. Direct connections often result in lower latency and are covered in more detail later in this manual.
On Mac, no extra drivers or virtual MIDI software are required. If DrumStrum disappears from your DAW's port list after a sleep or controller reset, use Refresh MIDI in the Routing tab to reconnect.
Controller Notes
DrumStrum works with any MIDI controller. A note map tells DrumStrum what each pad on your controller does — which note number corresponds to which physical pad, and what label to show in the UI. Once a map exists, you can reuse it across any number of transformers and presets. Setting one up is a one-time activity per controller.
Built-in Maps
DrumStrum ships with maps for several common controllers and layouts so you may not need to build anything from scratch:
- GM Drums — the General MIDI standard drum note layout
- Ableton Core Drumrack — Ableton's default Drumrack note layout
- Roland V-Drums — Roland's standard e-drum note assignments
- MIDI Keyboard — a simple chromatic layout for triggering actions from a standard keyboard
- MuseKinetics BopPad — 12-zone layout for the Keith McMillen BopPad (see below)
More built-in maps will be added over time. Built-in maps can also be duplicated as a starting point for a custom map.
Mapping Your Own Controller
If you have an Alesis, Yamaha, Nord, Roland SPD, or any other kit not covered by a built-in map, you can create your own in a few minutes. It's a one-time setup, and the result is reusable forever.
- Go to the Maps tab and click + New Map. Give it a descriptive name (e.g. "Alesis Nitro" or "My Roland SPD").
- Add a row for each pad. Click MIDI Learn next to a row, then hit the pad on your controller — DrumStrum fills in the note number automatically. Then type a label: "Kick", "Snare", "Cymbal Bell", "My Left Midi Shoe" — whatever makes sense to you.
- Repeat for every pad you want to use. You don't have to map every pad at once — you can add rows later.
- Use the map in a Transformer. When you add a Strummer or Note Remap transformer, select your new map as the input map. Each labeled pad row then gets an action dropdown where you decide what that pad does: play a chord note, trigger a bass line, fire a looper action, or pass through unchanged.
The label you give a pad is purely for your own reference — it's how that pad appears in the transformer card. If your controller layout is unconventional (rotated, upside down, played sideways), just label things however they make sense from your playing position.
Output Maps — Targeting Devices with Unique Action Sets
Note maps aren't only for describing your input controllers. They're equally useful for describing a destination device that responds to MIDI notes in a non-standard way. If a module or synth has its own set of note-triggered actions, you can create an output map with human-readable labels for each of those actions — making it far easier to wire up from a transformer card.
A good example is the Eventide Misha, a Eurorack module that accepts MIDI notes to drive its internal sequencer and navigation. Each MIDI note triggers a specific Misha function: step up by one interval, step up by two, step down by one, and so on. By creating an output map with rows labeled +1, +2, +3, −1, −2, −3 and so on, the abstract note numbers disappear entirely — in any transformer you just assign a pad to "+2" and DrumStrum sends the right note. The map captures the device's vocabulary once, and every transformer that targets it speaks that language automatically.
This pattern applies to any device with a fixed note-to-action layout: hardware sequencers, Eurorack modules, and synths with note-mapped performance controls. Build the map once, and it becomes a reusable abstraction for that device across all your presets.
Sharing and Exporting Maps
Maps can be exported to a file and imported on another machine, making it easy to share a controller map with other DrumStrum users or back up your setup. Use the Export and Import buttons in the Routing tab. Shared maps are a great way to get a head start on a new controller — if someone in the community has already mapped your kit, you can import their map and skip the MIDI Learn step entirely.
BopPad
The Keith McMillen BopPad is a round pad with four physical zones. DrumStrum includes a dedicated zone decoder that expands those four zones into up to 12 logical zones, giving you significantly more expressive real estate from a single pad — useful for finger drumming, stick playing, or assigning a range of chord actions across the surface.
To use 12-zone decoding, your BopPad needs a specific MIDI configuration — a quick one-time setup in the BopPad editor. Email Bill for the settings; documentation for this step is in progress.
Transformers Tab
The Transformers tab is the heart of DrumStrum. A Transformer defines how one MIDI input channel is processed and where it goes. You can have multiple Transformers — one per controller, one per zone, or as many as your setup needs.
Creating a Transformer
Click + Add Transformer. Each Transformer card lets you:
- Set the MIDI In channel it listens on and the MIDI Out channel for transformed notes
- Choose a type (Strummer, Note Remap, CC Router, CC Strum, Chord to Range)
- Assign an action to each pad note number
- Set input and output device assignments per transformer
- Enable or disable the transformer with the toggle in the card header — useful for debugging or temporarily silencing a transformer without deleting it
Transformers can be reordered by dragging the handle on the left of each card. They are processed in order — earlier transformers run first.
Chord Entry Card
At the top of the Transformers tab is the pinned Chord Entry card. This controls how DrumStrum receives and handles the current chord:
- Chord Channel: The MIDI channel DrumStrum listens on for chord notes. Play your keyboard or chord controller on this channel.
- Transpose Channel: An optional channel for transposing the chord up or down by semitone. Notes on this channel shift the chord output by interval.
- Latch Mode: Controls when the chord updates. Momentary holds the chord only while you have keys down; Always On latches the chord the moment you play it and holds it until you play something new.
- Latch CC: Optionally assign a footpedal CC to activate latch on demand — press and hold to latch, release to unlatch (in Momentary mode).
- Chord Expand: Maps an incoming CC to add harmonic extensions above the chord (thirds, fifths, sevenths, ninths). Assign a knob or slider to control the expansion level in real time.
- Chord Passthrough: Optionally forwards the raw chord notes to another MIDI channel — useful for hearing the chord voicing on a synth while DrumStrum processes it.
- Root Detection: Analyzes the chord and sends the identified root note on a dedicated channel — useful for driving a bass synth automatically. Optionally also outputs the root as a CC value (pitch class 0–11) on a configurable channel and CC number — useful for driving CC-mapped parameters in your DAW or modular gear.
Routing Tab
The Routing tab shows your MIDI connections at a glance and contains global timing and utility settings.
The I/O overview at the top lists active input and output device assignments across all your transformers, so you can quickly verify your routing without opening each card.
Below that are global settings cards:
- Strum Timing: Set the millisecond delay between notes in an upstroke or downstroke, the gate duration for GATE mode notes, and the safety gate (maximum note length in EXPRESSIVE mode).
- Bass Timing: Set gate lengths for bass notes. Also sets the Phrase Timeout — the silence gap (ms) after which Walk Phrase bass modes reset to the root. Shorter values reset more aggressively on breaks; longer values let phrases continue across gaps in your playing.
The Danger Zone contains three actions:
- Panic: Sends All Notes Off (CC 123) on all channels — use when notes get stuck.
- Refresh MIDI: Cycles DrumStrum's virtual MIDI port and re-opens all physical ports. Use if a controller stops responding after a patch switch, firmware update, or USB reconnect.
- Reset to Defaults: Restores the factory configuration. This cannot be undone.
Dashboard Tab
The Dashboard provides a live overview of your MIDI routing. It shows which devices are connected as inputs and outputs, and how each transformer is wired between them. Use it to confirm your signal path before playing.
Trace Tab
The Trace tab is a live MIDI monitor. It shows every incoming MIDI message in real time — note ons, note offs, CC messages, aftertouch, and pressure — with timestamps and the source device name.
- Use the Filter dropdown to show only specific message types (Notes, CC, Aftertouch/Pressure) or a specific MIDI channel.
- Use the Pause button to freeze the trace for closer inspection.
- Use the Clear button to reset the log.
The Trace tab is especially useful for diagnosing channel mismatches, unexpected CC collisions, and verifying that your controllers are sending on the right channels.
Maps Tab
The Maps tab is where you create and manage note maps — named tables that translate incoming MIDI note numbers to labels and actions. Note maps are used by Strummer and Note Remap transformers to define what each pad does.
- Built-in maps include common drum kit layouts (GM Drums, Ableton Core Drumrack, and more). These can be used as-is or copied as a starting point for a custom map.
- Custom maps let you define your own note-to-label assignments for any controller layout.
- A map's role (Input, Output, or Both) determines whether it appears in the input map selector, the output map selector, or both, within a transformer card.
Transformer Types
Strummer
The core DrumStrum mode. Each pad is assigned a chord action — a role it plays within the current chord. When a pad is hit, DrumStrum looks up the current chord and fires the appropriate note. Pad 1 might play the root, Pad 2 the third, Pad 3 the fifth, and so on. The rhythm comes from you; the harmony comes from the chord.
See Pad Actions for the full list of available actions.
Note Remap
Remaps incoming MIDI notes to different output notes, independently of the current chord. Useful for translating between note layouts — for example, converting a GM drum map to an Ableton Core Drumrack layout, remapping one controller's note numbers to match another, or adapting your pads to a VST or hardware synth that responds to specific notes in a fixed layout.
Assign an input map to identify what your pads send, and an output map to define what note each pad should become.
CC Router
Routes incoming CC messages to one or more output channels, optionally remapping the CC number. Useful for routing sustain pedals, expression pedals, or any CC source to specific synths or DAW parameters.
Each rule in a CC Router transformer specifies:
- In Channel: The MIDI channel to listen on (0 = any channel)
- In CC / Out CC: The CC number to receive and the CC number to send (can be the same or different)
- Output Channels: A bitmask of channels to fan the CC out to — one incoming CC can drive multiple destinations simultaneously
- Toggle: When enabled, the CC acts as a toggle — each incoming message alternates between 0 and 127 on the output
CC Router transformers respect the input device assigned to the transformer card. Channel filtering is per-rule — set In Channel to 0 on a rule to match that CC on any channel from the assigned device.
CC Strum
Triggers a strum (a sequence of chord notes played in rapid succession) when a CC value crosses a threshold. Useful for ribbon controllers, expression pedals, or any continuous controller you want to use as a strum trigger rather than a note source.
Chord to Range
Normalizes chord notes into a specific octave range and passes them through. Unlike the Strummer, this type doesn't map pad hits to chord positions — it takes the raw chord and constrains it to a range you define, useful for feeding chord voicings to a specific part of a synth's keyboard range.
Presets Tab License required
Presets are named snapshots of your entire DrumStrum configuration — all transformers, chord entry settings, routing, and maps in one save.
- Save Preset: Saves the current state with a name and optional description.
- Load Preset: Instantly recalls a saved state, replacing the current configuration.
- Export / Import: Configuration can also be exported to a JSON file and imported on another machine via the Export / Import buttons in the Routing tab.
Presets are stored locally and persist across sessions.
Looper Tab License required
The Looper records and plays back DrumStrum MIDI output in real time. It supports overdubbing and a unique Frippertronics mode for evolving ambient textures.
Loop Modes
- Output: Records the transformed notes DrumStrum sends to your DAW.
- Input: Records chord changes so the loop replays harmonic movement even when you stop playing the keyboard.
- Both: Records output notes and chord changes simultaneously.
Frippertronics Decay
Inspired by Robert Fripp's tape loop technique. When Frippertronics is active, each pass through the loop reduces the velocity of recorded notes by a percentage you set (1–99). Lower values fade material faster, letting new overdubs emerge above the decaying texture. Set to 0 for a standard non-decaying loop.
Looper Controls
Looper actions are assigned as pad actions in your Transformer settings — see Looper Actions in the Pad Actions reference. You can assign them as the primary action on a dedicated pad, or use the double-tap trigger: define a note and a looper action in the Looper tab's trigger list, and two quick hits on that note will fire the looper action without interfering with its normal single-hit behavior.
Pad Actions Reference
In Strummer mode, each pad is assigned one of the following actions.
Chord Actions
| Action | Description |
|---|---|
| Chord Note 1 – 7 | Plays the Nth note of the current chord, sorted low to high. Chord 1 is the lowest note, Chord 2 the next, and so on. If the chord has fewer notes than the position selected, DrumStrum wraps to the nearest available note. |
| Play All | Fires all chord notes simultaneously at the pad's velocity — a full chord stab on one hit. |
| Upstroke All | Fires all chord notes low→high in rapid succession, with the strum delay between each note (set in Routing › Strum Timing). Mimics a guitar upstroke. |
| Downstroke All | Fires all chord notes high→low in rapid succession. Mimics a guitar downstroke. |
| Iterator Up | Advances a shared position counter upward through the chord on each hit, wrapping from the top back to the bottom. Multiple pads assigned Iterator Up/Down share the same counter, so they step through the chord together. |
| Iterator Down | Advances the shared counter downward through the chord, wrapping at the bottom. |
| Random | Plays a pseudo-random chord note, with no immediate repeat — guaranteed to pick a different note than the last hit. |
| Velocity Strum | Maps hit velocity to chord position: a hard hit plays the lowest chord note, a soft hit plays a higher note. The opposite of Bass: Velocity → Position — here velocity drives position within the chord range, not bass range. |
| Pass Through | Forwards the raw pad note to the output unchanged — bypasses chord processing entirely. Useful for pads you want to use as standard drum hits alongside chord-triggered pads. |
| Transpose Toggle | Switches the chord channel into transpose mode — notes on that channel shift the chord output by interval instead of replacing the chord. |
| Panic | Sends All Notes Off immediately from a pad hit. |
Bass Actions
| Action | Description |
|---|---|
| Bass: Root | Plays the detected root note of the chord, shifted down one or two octaves into bass range. |
| Bass: Root/Fifth | Alternates between root and fifth on each hit. The sounding note sustains until all chord keys are released (chord-gated), giving a natural legato bass feel. |
| Bass: Velocity → Position | Maps hit velocity to chord position: a hard hit plays the root (position 1), a soft hit plays a higher chord tone. Scales to the actual chord size. |
| Bass: Pedal | Sustains a bass note until all chord keys are released (chord-gated). A new hit cancels the previous note and plays the new one immediately. |
| Bass: Walk Diatonic Premium | Steps up through the chord tones diatonically with each hit, wrapping at the top. |
| Bass: Walk Chromatic Premium | Steps chromatically toward the next chord root by two semitones per hit, with wrap-around. |
| Bass: Walk Thirds – Diatonic Premium | Walks through chord tones skipping by diatonic thirds on each hit. |
| Bass: Walk Thirds – Chromatic Premium | Walks through chord tones skipping by chromatic thirds on each hit. |
| Bass: Walk Phrase – Diatonic Premium | Diatonic walk that resets to the root after a configurable silence gap (Phrase Timeout in Routing › Bass Timing). The phrase continues across chord changes within the window. |
| Bass: Walk Phrase – Chromatic Premium | Same as Walk Phrase Diatonic but using chromatic steps. Useful for chromatic approach lines that reset naturally after breaks. |
Looper Actions Premium
| Action | Description |
|---|---|
| Record Toggle | Starts recording if stopped; stops recording if active. |
| Stop | Stops playback and recording, leaving the loop intact. |
| Clear | Erases the current loop. |
| Undo | Removes the last overdub layer. |
| Transpose Toggle | Switches the looper into transpose mode — chord notes received while active transpose the loop playback rather than replacing the chord. |
| Frippertronics Toggle | Enables or disables Frippertronics velocity decay on the loop. |
Licensing
DrumStrum is free to download and use. Premium features (Presets and Looper) require a license.
To purchase: click Activate License… from any locked feature or from the menu bar icon menu. You'll be taken to a secure checkout. After purchase, you'll receive a license key by email.
To activate: open the Activate dialog, enter your license key, and click Activate. An internet connection is required for activation. A single license supports up to 5 machines.
Automatic Updates
DrumStrum checks for updates automatically once per day. When an update is available, you'll see a notification and can install it with one click.
To check manually: click the menu bar icon and choose Check for Updates…
Questions not answered here? Email us.