Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Renoise

FreeNot checked

MCP server for controlling Renoise via OSC. Lets Claude compose music by writing patterns, triggering notes, and controlling playback.

GitHubEmbed

About

MCP server for controlling Renoise via OSC. Lets Claude compose music by writing patterns, triggering notes, and controlling playback.

README

MCP server for controlling Renoise via OSC. Lets Claude compose music by writing patterns, triggering notes, and controlling playback.

Requirements

  • Renoise (demo or full version)
  • Python 3.11+
  • uv (recommended) or pip

Installation

cd osc-mcp
uv sync

Or with pip:

pip install -e .

Renoise Setup

  1. Open Renoise
  2. Go to Edit > Preferences > OSC
  3. Enable OSC server
  4. Set protocol to UDP
  5. Set port to 8000 (or configure via environment variable)

Claude Code Configuration

Add to your ~/.claude.json or Claude Desktop MCP settings:

{
  "mcpServers": {
    "renoise": {
      "command": "uv",
      "args": ["--directory", "/path/to/osc-mcp", "run", "renoise-mcp"],
      "env": {
        "RENOISE_HOST": "127.0.0.1",
        "RENOISE_PORT": "8000"
      }
    }
  }
}

Tools

Transport

  • play() - Start playback
  • stop() - Stop playback
  • panic() - Stop all sounds immediately
  • set_bpm(bpm) - Set tempo (20-999)
  • set_lpb(lpb) - Set lines per beat

Note Operations

  • trigger_note(instrument, note, velocity, track) - Play a note (real-time, not recorded)
  • stop_note(instrument, note, track) - Stop a triggered note
  • set_note(pattern, track, line, note, instrument, volume, column) - Write note to pattern
  • set_effect(pattern, track, line, effect, value, column) - Write effect command

Track Control

  • mute_track(track, muted) - Mute/unmute track
  • solo_track(track, soloed) - Solo/unsolo track
  • set_track_volume(track, volume) - Set track volume (0-1)

Pattern Operations

  • clear_pattern(pattern) - Clear all data from pattern
  • set_pattern_length(pattern, lines) - Set pattern length (1-512)
  • jump_to_pattern(position) - Jump to sequence position
  • schedule_pattern(position) - Schedule next pattern

High-Level Composition

  • generate_breakbeat(pattern, track, style, lines, bpm, instrument, intensity, variation, add_chops) - Generate a breakbeat pattern
  • generate_bass_pattern(pattern, track, root_note, scale, lines, instrument, density) - Generate a bassline
  • add_drum_fill(pattern, track, start_line, length, instrument, intensity) - Add a drum fill

Power Tool

  • evaluate_lua(code) - Execute arbitrary Lua code in Renoise

Usage Examples

Basic: Set up a 174 BPM dnb track

set_bpm(174)
set_lpb(4)
set_pattern_length(0, 64)

Generate an amen-style break

generate_breakbeat(
    pattern=0,
    track=0,
    style="amen",
    bpm=174,
    intensity=0.8,
    variation=0.3
)

Generate a bassline

generate_bass_pattern(
    pattern=0,
    track=1,
    root_note=36,  # C2
    scale="minor_pentatonic",
    density=0.6
)

Manual note placement

# Kick on beat 1
set_note(pattern=0, track=0, line=0, note=36, instrument=0)

# Snare on beat 2
set_note(pattern=0, track=0, line=4, note=38, instrument=0)

# Add sample offset effect
set_effect(pattern=0, track=0, line=8, effect="09", value=64)

Direct Lua for advanced operations

evaluate_lua("""
    local song = renoise.song()
    song:pattern(1):track(1):line(1):note_column(1).note_value = 48
""")

Break Styles

  • amen - Classic amen break pattern with ghost notes
  • two_step - Syncopated two-step dnb pattern
  • think - Think break style with characteristic syncopation
  • straight - Four-on-floor influenced pattern

Scales

  • minor - Natural minor
  • minor_pentatonic - Minor pentatonic (great for dnb bass)
  • dorian - Dorian mode
  • phrygian - Phrygian mode (dark, Middle Eastern feel)
  • major - Major scale

Effect Commands Reference

Common Renoise effect commands:

  • 09xx - Sample offset (xx = position, 00-FF)
  • 0Rxy - Retrigger (x = volume change, y = speed)
  • 0Qxx - Delay note by xx ticks
  • 0Dxx - Pitch slide down
  • 0Uxx - Pitch slide up
  • 0Bxx - Play sample backwards
  • 0Yxx - Probability (xx% chance to play)

Architecture

Claude Code
    │
    │ MCP Protocol
    ▼
renoise-mcp server (Python)
    │
    │ OSC (UDP)
    ▼
Renoise

The server translates MCP tool calls into OSC messages that Renoise understands. Complex operations use the /renoise/evaluate endpoint to run Lua code directly in Renoise.

Development

# Install dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

# Format/lint
uv run ruff check --fix
uv run ruff format

License

MIT

from github.com/zakhap/renoise-mcp

Install Renoise in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install renoise-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add renoise-mcp -- uvx --from git+https://github.com/zakhap/renoise-mcp renoise-mcp

FAQ

Is Renoise MCP free?

Yes, Renoise MCP is free — one-click install via Unyly at no cost.

Does Renoise need an API key?

No, Renoise runs without API keys or environment variables.

Is Renoise hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Renoise in Claude Desktop, Claude Code or Cursor?

Open Renoise on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Renoise with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All media MCPs