Decent-Sampler Drums MCP Server

by dandeliongold
Verified

generate_drum_groups

Generate DecentSampler <groups> XML for drum kits.

Best Practices:

  • Group all samples for a drum piece (e.g., all kick mics) into a single group to prevent voice conflicts
  • Each sample should have start/end markers to prevent looping issues
    • Use the analyze_wav_samples tool to get accurate sample lengths: analyze_wav_samples(["Kick_Close_Soft.wav"]) -> {"sampleLength": 60645} Then use start="0" end="60645" in your sample definition
  • When using multiple mic positions (e.g., Close, OH, Room), include them all in the same group
  • Use velocity layers within a group to control dynamics

Example Structure: { "drumPieces": [{ "name": "Kick", "rootNote": 36, "samples": [ // All mic positions for soft velocity {"path": "Kick_Close_Soft.wav", "start": 0, "end": 60645}, // Length from analyze_wav_samples {"path": "Kick_OH_L_Soft.wav", "start": 0, "end": 60000}, {"path": "Kick_OH_R_Soft.wav", "start": 0, "end": 60000}, // All mic positions for medium velocity {"path": "Kick_Close_Medium.wav", "start": 0, "end": 70162}, // Length from analyze_wav_samples ... ] }] }

Workflow:

  1. First use analyze_wav_samples to get accurate lengths for all your WAV files
  2. Use those lengths to set the end markers in your drum pieces configuration
  3. Pass the complete configuration to generate_drum_groups to create the XML

Input Schema

NameRequiredDescriptionDefault
drumPiecesYes
globalSettingsYes

Input Schema (JSON Schema)

{ "properties": { "drumPieces": { "items": { "properties": { "muting": { "properties": { "silencedByTags": { "items": { "type": "string" }, "type": "array" }, "tags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "tags", "silencedByTags" ], "type": "object" }, "name": { "type": "string" }, "rootNote": { "type": "number" }, "samples": { "items": { "properties": { "path": { "type": "string" }, "volume": { "type": "string" } }, "required": [ "path" ], "type": "object" }, "type": "array" } }, "required": [ "name", "rootNote", "samples" ], "type": "object" }, "type": "array" }, "globalSettings": { "properties": { "ampVelTrack": { "type": "number" }, "trigger": { "enum": [ "attack", "release", "first", "legato" ], "type": "string" }, "velocityLayers": { "items": { "properties": { "high": { "type": "number" }, "low": { "type": "number" }, "name": { "type": "string" } }, "required": [ "low", "high", "name" ], "type": "object" }, "type": "array" }, "volume": { "type": "string" } }, "required": [ "velocityLayers" ], "type": "object" } }, "required": [ "globalSettings", "drumPieces" ], "type": "object" }

You must be authenticated.

Other Tools