Skip to content

Drums & Modular

12 tools for the Playfield drum machine and the Modular system.

Playfield / Drum Machine (5)

Tool Description
copy_playfield_sample Copy a Playfield drum pad sample to a new index slot
create_playfield_sample Add a drum pad to a Playfield drum machine
list_playfield_samples List all drum pads (samples) on a Playfield
reset_playfield_params Reset all parameters of a Playfield drum sample to defaults
set_playfield_sample_enabled Enable/disable a drum pad on a Playfield

Creating a drum machine

# Create a Playfield instrument
result = await server.mcp_opendaw_create_synth_track(name="Drums")
au_index = result["unit_index"]

# Replace the default instrument with Playfield
await server.mcp_opendaw_replace_instrument(
    unit_index=au_index, instrument_type="Playfield"
)

# Add drum pads
await server.mcp_opendaw_create_playfield_sample(
    unit_index=au_index, sample_index=0, name="Kick"
)
await server.mcp_opendaw_create_playfield_sample(
    unit_index=au_index, sample_index=1, name="Snare"
)

Orchestration shortcut

Use create_drum_pattern for a full beat in one call:

# x = hit, o = accent, . = rest, X = ghost
await server.mcp_opendaw_create_drum_pattern(
    pattern="x...x...x...x...|o.......o.....o.|..x...x...x...x.",
    unit_index=0
)
# Lanes: kick | snare | hihat
# Returns: {"total_notes": 10, "lanes": ["kick", "snare", "hihat"]}

Modular System (7)

Tool Description
add_modular_module Add a module to a Modular device
connect_modular_modules Connect two modules (create a patch cable)
list_modular_connections List all connections (patch cables) in a Modular device
list_modular_devices List all Modular audio effect devices in the project
list_modular_modules List all modules in a Modular device
remove_modular_module Remove a module from a Modular device
set_modular_module_param Set a parameter on a module in a Modular device

Modular workflow

# Add a Modular effect to an AU
await server.mcp_opendaw_add_effect(unit_index=0, effect_type="Modular")

# Add modules
await server.mcp_opendaw_add_modular_module(
    unit_index=0, effect_index=0, module_type="Oscillator"
)
await server.mcp_opendaw_add_modular_module(
    unit_index=0, effect_index=0, module_type="Filter"
)

# Connect them: Oscillator output → Filter input
await server.mcp_opendaw_connect_modular_modules(
    unit_index=0, effect_index=0,
    source_module=0, source_port="output",
    dest_module=1, dest_port="input"
)

# Set filter cutoff
await server.mcp_opendaw_set_modular_module_param(
    unit_index=0, effect_index=0,
    module_index=1, param="cutoff", value=0.7
)

Piano Mode (6)

Tool Description
get_piano_mode Get piano roll view settings
set_piano_keyboard Set the piano roll keyboard type
set_piano_note_labels Toggle note labels (C, C#, D) in the piano roll
set_piano_note_scale Set the piano roll note scale (vertical zoom)
set_piano_time_range Set the piano roll time range (horizontal width in quarters)
set_transpose Set global transpose for piano roll view (does not affect audio)

NeuralAmp (2)

Tool Description
get_neuralamp_model Get the NeuralAmp (Tone3000) model JSON
set_neuralamp_model Load a NAM/Tone3000 model JSON into a NeuralAmp effect