音乐控制协议服务器

通过OSC控制Renoise的音乐创作工具,支持模式编写、音符触发和播放控制。

  • by zakhap
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 zakhap/renoise-mcp

使用说明

雷诺伊斯·麦克普

MCP服务器,用于通过OSC控制Renoise。让克劳德通过编写模式、触发音符和控制播放来创作音乐。

需求

  • 装修 (演示版或完整版)
  • Python 3.11+
  • 紫外线 (推荐)或pip

安装

cd osc-mcp
uv sync

或者使用pip:

pip install -e .

重新装修设置

  1. 开放式装修
  2. 首选 Edit > Preferences > OSC
  3. 启用OSC服务器
  4. 将协议设置为UDP
  5. 将端口设置为8000(或通过环境变量配置)

Claude代码配置

添加到您的 ~/.claude.json 或克劳德桌面MCP设置:

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

工具

运输

  • play() -开始播放
  • stop() -停止播放
  • panic() -立即停止所有声音
  • set_bpm(bpm) -设定节奏(20-999)
  • set_lpb(lpb) -按节拍设置线条

注释操作

  • trigger_note(instrument, note, velocity, track) -播放音符(实时,不录制)
  • stop_note(instrument, note, track) -停止已触发的笔记
  • set_note(pattern, track, line, note, instrument, volume, column) -为图案写注释
  • set_effect(pattern, track, line, effect, value, column) -写入效果命令

轨道控制

  • mute_track(track, muted) -将曲目静音/取消静音
  • solo_track(track, soloed) -独奏/非独奏曲目
  • set_track_volume(track, volume) -设定轨道容量(0-1)

模式操作

  • clear_pattern(pattern) -清除图案中的所有数据
  • set_pattern_length(pattern, lines) -设置图案长度(1-512)
  • jump_to_pattern(position) -跳转到序列位置
  • schedule_pattern(position) -安排下一个模式

高级组成

  • generate_breakbeat(pattern, track, style, lines, bpm, instrument, intensity, variation, add_chops) -生成节拍模式
  • generate_bass_pattern(pattern, track, root_note, scale, lines, instrument, density) -生成基线
  • add_drum_fill(pattern, track, start_line, length, instrument, intensity) -添加滚筒填料

电动工具

  • evaluate_lua(code) -在Renoise中执行任意Lua代码

使用示例

基本:设置174 BPM dnb跟踪

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

生成amen样式的断点

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

生成基线

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

手动放置钞票

# 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)

直接Lua进行高级操作

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

打断样式

  • amen -经典阿门破口图案,带鬼音
  • two_step -切分两步dnb模式
  • think -以独特的切分音思考断裂风格
  • straight -地板上的四个图案

鳞片

  • minor -自然未成年人
  • minor_pentatonic -小调五声音阶(非常适合dnb低音)
  • dorian -多利安模式
  • phrygian -弗里吉亚模式(黑暗,中东风格)
  • major -主要规模

效果命令参考

常见的重噪效果命令:

  • 09xx -样本偏移量(xx=位置,00-FF)
  • 0Rxy -重新装配器(x=体积变化,y=速度)
  • 0Qxx -xx分的延迟说明
  • 0Dxx -俯仰向下滑动
  • 0Uxx -俯仰向上滑动
  • 0Bxx -反向播放示例
  • 0Yxx -概率(xx%游戏机会)

建筑学

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

服务器将MCP工具调用转换为Renoise能够理解的OSC消息。复杂的操作使用 /renoise/evaluate 端点直接在Renoise中运行Lua代码。

发展

# Install dev dependencies
uv sync --extra dev

# Run tests
uv run pytest

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

许可证

麻省理工学院