Decent-Sampler Drums MCP Server
by dandeliongold
Verified
# Input Schemas
This document details the TypeScript interfaces and parameter descriptions for all tool configurations.
See the [Workflows Documentation](workflows.md) for practical examples of how these schemas are used.
## configure_drum_controls
Configuration schema for drum control parameters including pitch and envelope settings.
```typescript
{
drumControls: {
[drumName: string]: {
pitch?: {
default: number, // Default pitch in semitones (0 = no change)
min?: number, // Optional: Minimum pitch adjustment (e.g. -12)
max?: number // Optional: Maximum pitch adjustment (e.g. +12)
},
envelope: {
attack: number, // Attack time in seconds
decay: number, // Decay time in seconds
sustain: number, // Sustain level (0-1)
release: number, // Release time in seconds
attackCurve?: number, // Optional: -100 to 100 (-100 = logarithmic)
decayCurve?: number, // Optional: -100 to 100 (100 = exponential)
releaseCurve?: number // Optional: -100 to 100 (100 = exponential)
}
}
}
}
```
### Parameter Details
#### Pitch Control
- `default`: Base pitch adjustment in semitones
- `min`: Lower bound for pitch adjustment range
- `max`: Upper bound for pitch adjustment range
#### Envelope Settings
- `attack`: Time from note-on to peak amplitude
- `decay`: Time from peak to sustain level
- `sustain`: Held amplitude level (0-1)
- `release`: Time from note-off to silence
- `*Curve`: Shape of the envelope segment (-100 to 100)
## configure_mic_routing
Configuration schema for multi-microphone routing and control setup.
```typescript
{
micBuses: [{
name: string, // Display name (e.g., 'Close Mic', 'OH L')
outputTarget: string, // Output routing (e.g., 'AUX_STEREO_OUTPUT_1')
volume?: {
default: number, // Default volume in dB
min?: number, // Optional: Minimum volume in dB (e.g., -96)
max?: number, // Optional: Maximum volume in dB (e.g., 12)
midiCC?: number // Optional: MIDI CC number for volume control
}
}],
drumPieces: [{
name: string,
rootNote: number,
samples: [{
path: string,
micConfig: {
position: "close" | "overheadLeft" | "overheadRight" | "roomLeft" | "roomRight",
busIndex: number,
volume?: number
}
}]
}]
}
```
### Parameter Details
#### Mic Bus Configuration
- `name`: Human-readable identifier for the mic channel
- `outputTarget`: Routing destination for the mic signal
- `volume`: Volume control parameters including MIDI mapping
#### Drum Piece Configuration
- `name`: Identifier for the drum piece
- `rootNote`: MIDI note number for triggering
- `samples`: Array of sample configurations
- `micConfig`: Microphone routing and settings
## configure_round_robin
Configuration schema for round robin playback setup.
```typescript
{
directory: string, // Absolute path to samples directory
mode: "round_robin" | "random" | "true_random" | "always",
length: number, // Number of round robin variations
samples: [{
path: string, // Path to sample (relative to directory)
seqPosition: number // Position in sequence (1 to length)
}]
}
```
### Parameter Details
- `directory`: Base path containing all samples
- `mode`: Playback behavior selection
- `length`: Total number of variations
- `samples`: Array of sample definitions with sequence positions
## generate_drum_groups
Configuration schema for drum group generation.
```typescript
{
globalSettings: {
velocityLayers?: { // Optional velocity layer definitions
low: number, // Lower velocity bound
high: number, // Upper velocity bound
name: string // Layer identifier
}[] // Omit for natural velocity response
},
drumPieces: {
name: string, // Name of the drum piece
rootNote: number, // MIDI note number
samples: {
path: string, // Path to sample file
volume?: string // Optional per-sample volume
}[],
muting?: { // Optional muting group configuration
tags: string[], // Tags for this group
silencedByTags: string[] // Tags that silence this group
}
}[]
}
```
### Parameter Details
#### Global Settings
- `velocityLayers`: Optional velocity mapping configuration
* `low`: Minimum velocity value
* `high`: Maximum velocity value
* `name`: Layer identifier
#### Drum Pieces
- `name`: Identifier for the drum piece
- `rootNote`: MIDI trigger note
- `samples`: Sample file configurations
- `muting`: Optional muting group setup
## analyze_wav_samples
Configuration schema for WAV file analysis.
```typescript
{
paths: string[] // Array of absolute paths to WAV files
}
```
### Parameter Details
- `paths`: Array of file paths to analyze
* Must be absolute paths
* Example: `['C:/Users/username/Documents/Samples/kick.wav']`