Decent-Sampler Drums MCP Server

by dandeliongold
Verified

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Schema

Prompts

Interactive templates invoked by user choice

NameDescription
advanced_preset_guidelinesGuidelines for structuring complex Decent Sampler preset files including support for buses, round robin, velocity layers, etc.
simple_preset_guidelinesGuidelines for structuring simple Decent Sampler preset files.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
configure_drum_controls

Configure global pitch and envelope controls for each drum type.

This tool will:

  • Add per-drum pitch controls with customizable ranges
  • Configure ADSR envelope settings for natural decay control
  • Generate proper XML structure for global drum controls

Error Handling:

  • Validates pitch range values (min/max must be valid numbers)
  • Ensures envelope times are positive values
  • Verifies curve values are within -100 to 100 range
  • Returns detailed error messages for invalid configurations

Success Response: Returns XML structure containing:

  • Global controls for each drum type
  • MIDI CC mappings for real-time control
  • Properly formatted parameter bindings
configure_round_robin

Configure round robin sample playback for a set of samples.

This tool will:

  • Validate sequence positions
  • Verify sample files exist
  • Generate proper XML structure for round robin playback

Error Handling:

  • Checks if sample files exist at specified paths
  • Validates sequence positions are unique and sequential
  • Ensures mode is one of: round_robin, random, true_random, always
  • Returns specific error messages for missing files or invalid sequences

Success Response: Returns XML structure with:

  • Configured playback mode
  • Sample sequence assignments
  • Proper group organization for round robin playback
analyze_wav_samples

Analyze WAV files to detect common issues in drum kit samples.

This tool checks for:

  • Non-standard WAV headers that may cause playback issues
  • Metadata inconsistencies that could affect multi-mic setups
  • Sample rate and bit depth compatibility
  • Channel configuration issues
  • File size and format validation

Error Handling:

  • Reports detailed header format issues
  • Identifies metadata inconsistencies between related samples
  • Flags potential playback compatibility problems
  • Returns specific error messages for each issue type

Success Response: Returns detailed analysis including:

  • WAV header information
  • Sample metadata
  • Potential compatibility issues
  • Recommendations for fixes

IMPORTANT: Always use absolute paths (e.g., 'C:/Users/username/Documents/Samples/kick.wav') rather than relative paths.

configure_mic_routing

Configure multi-mic routing with MIDI controls for drum samples.

This tool will:

  • Set up individual volume controls for each mic position (close, OH L/R, room L/R)
  • Route each mic to its own auxiliary output for DAW mixing
  • Configure MIDI CC mappings for mic volumes
  • Generate proper XML structure for DecentSampler

Error Handling:

  • Validates mic position assignments
  • Checks for duplicate MIDI CC assignments
  • Ensures valid output routing targets
  • Verifies bus indices are unique and valid
  • Returns specific errors for routing conflicts

Success Response: Returns XML structure containing:

  • Configured mic bus routing
  • Volume control mappings
  • MIDI CC assignments
  • Complete routing matrix for all samples
generate_drum_groups

Generate DecentSampler <groups> XML for drum kits.

This tool supports two configuration types:

BasicDrumKitConfig:

  • For simple presets with minimal features
  • No UI controls, effects, or routing
  • Only supports basic sample mapping and optional velocity layers
  • Recommended for straightforward drum kits

AdvancedDrumKitConfig:

  • For complex setups combining multiple features
  • Supports UI controls, effects, and routing
  • Integrates with other tools (configure_drum_controls, configure_mic_routing, etc.)
  • Use when you need advanced features like round robin or multi-mic setups

Best Practices:

  • IMPORTANT: Always use absolute paths (e.g., 'C:/Users/username/Documents/Samples/kick.wav')
  • Group all samples for a drum piece into a single group
  • When using multiple mic positions, include them all in the same group
  • Use velocity layers within a group to control dynamics

Error Handling:

  • Validates all sample paths exist
  • Checks for valid MIDI note numbers
  • Ensures velocity layers don't overlap
  • Verifies muting group configurations
  • Returns specific errors for any invalid settings

Example Configurations:

  1. Basic Configuration (simple drum kit): { "globalSettings": { "velocityLayers": [ { "low": 1, "high": 42, "name": "soft" }, { "low": 43, "high": 85, "name": "medium" }, { "low": 86, "high": 127, "name": "hard" } ] }, "drumPieces": [{ "name": "Kick", "rootNote": 36, "samples": [ {"path": "C:/Samples/Kick_Soft.wav"}, {"path": "C:/Samples/Kick_Medium.wav"}, {"path": "C:/Samples/Kick_Hard.wav"} ] }] }
  2. Advanced Configuration (multi-mic kit with controls): { "globalSettings": { "velocityLayers": [ { "low": 1, "high": 127, "name": "full" } ], "drumControls": { "kick": { "pitch": { "default": 0, "min": -12, "max": 12 }, "envelope": { "attack": 0.001, "decay": 0.5, "sustain": 0, "release": 0.1 } } }, "micBuses": [ { "name": "Close Mic", "outputTarget": "MAIN_OUTPUT", "volume": { "default": 0, "midiCC": 20 } } ] }, "drumPieces": [{ "name": "Kick", "rootNote": 36, "samples": [ { "path": "C:/Samples/Kick_Close.wav", "micConfig": { "position": "close", "busIndex": 0 } } ], "muting": { "tags": ["kick"], "silencedByTags": [] } }] }

Success Response: Returns complete XML structure with:

  • Organized sample groups
  • Velocity layer mappings
  • Muting group configurations
  • All sample references and settings
  • Advanced features when using AdvancedDrumKitConfig