This plugin and command line tool helps you remap MIDI drum tracks across popular drum sample libraries.
Simply insert it in your FX chain, tweak the parameters and you're done.
Trademark and copyright notice: These are 3rd party libraries. This project and it's authors are not associated with the respective companies nor are endorsed by them.
- Addictive Drums 2
- EzDrummer 2
- EzDrummer 3
- SSD 5
- Superior Drummer 3
- Ugritone Drums
- Getgood Drums - One Kit Wonder: Architects
You can embed your own mappings into the plugin/tool; instructions are given below.
- Download the archive per your operating system from the releases page.
- Extract the archive to some directory. It will contain 3 files/folders:
drum-mapper
(drum-mapper.exe
on windows): This is the command line tool. You can move it anywhere you'd like.Drum Mapper.vst3
: This is a directory and it's meant to be treated as a whole per VST3 specification. Move this directory into somewhere in your VST plugin path.Drum Mapper.clap
: This is a File on Linux and Windows, a directory on MacOS. Move it whole into your Clap plugin path.
- Rescan your plugins on your DAW. The plugins will appear under the vendor "Insomnia".
Requirements:
- An up to date rust toolchain.
To build, you can run the build script on Linux/MacOS:
./build.sh --release
Or manually type:
cargo run -q --bin bundler -- bundle drum-mapper --release
The plugins will be written to target/bundled
.
- If you don't care about the plugin's GUI, you can simply disable it, reducing the executable size down to 30%. To disable the GUI:
./build.sh --release --no-default-features
- Or, manually:
cargo run -q --bin bundler -- bundle drum-mapper --no-default-features
- If you don't intend to distribute the produced plugins to other machines, you can possibly get a little performance boost by specifying the target cpu as
native
, which can be done by running- (Bash, Zsh and similar shells):
RUSTFLAGS=-Ctarget-cpu=native ./build.sh --release
- Powershell:
$env:RUSTFLAGS = "-Ctarget-cpu=native"; cargo run -q --bin bundler -- bundle drum-mapper --release
- (Bash, Zsh and similar shells):
Run:
cargo build --release --bin drum-mapper
The tool will be built into target/release/drum-mapper
; on Windows, it will have a .exe
extension as well.
- Insert it into a track with MIDI input. The plugin's author is
Insomnia
and the name isDrum Mapper
. - Select the library to map from (this is the source). The parameter is called
from
. - Select a library to map to. The parameter is called
to
. - By default, only channel 10 (counting from 1) will be mapped (this is the drum channel on General MIDI). You can select a different channel or
all
to map all channels. The parameter is calledchannel
. - The notes the plugin receives will be remapped. Every event except for Note On, note Off and Aftertouch are passed-through.
You can add your own mappings or remove any default mapping!
The files in the drums
folder in the project's root with the .txt
extension will be parsed as mappings.
The file name without the extension is used as the name of the library in the plugin and the CLI tool.
The format of the files is simple:
- Each line contains a mapping.
- Each mapping consists of
gm_note -> library_note
. Wheregm_note
is the note in General MIDI andlibrary_note
is the mapping of that note to the library. - Empty Lines and lines starting with
#
are ignored. - Lines not matching above are errors.
Do you use an external converter and want to integrate it into the plugin? Follow these steps.
- First build the CLI tool as described above.
- Generate a dummy MIDI file:
drum-mapper template -o dummy.mid
- Convert the generated
dummy.mid
with your external converter of choice. - Assuming the converted file is called
converted.mid
, run:drum-mapper generate converted.mid -o "Foo Drums.txt"
- If the converter didn't add noise to the file, the above command should finish without any message.
- Now, copy the generated "Foo Drums.txt" into the project's
drums
directory and follow the steps to build the plugin as described above. Your custom mapping will be integrated into the plugin!
The CLI tool has a command that lets you remap MIDI files from the command line.
The usage is:
drum-mapper remap --from <library> --to <library> --out remapped.mid ./foo.mid
It has more options, for example using a mapping file instead of embedded libraries for from/to. Run drum-mapper remap --help
to see them all.