set_track_pan
Adjust audio track panning in REAPER by specifying track number and pan position from left to right.
Instructions
Set track pan position.
Args:
track_number: Track number (1-based)
pan: Pan position (-1.0 = full left, 0.0 = center, 1.0 = full right)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| pan | Yes |
Implementation Reference
- scythe_mcp/server/main.py:148-160 (handler)MCP tool handler and registration for 'set_track_pan'. Includes docstring schema (args: track_number int, pan float), clamps pan value, calls ReaperBridge.set_track_pan, returns success/error message.@mcp.tool() def set_track_pan(ctx: Context, track_number: int, pan: float) -> str: """ Set track pan position. Args: track_number: Track number (1-based) pan: Pan position (-1.0 = full left, 0.0 = center, 1.0 = full right) """ bridge = get_bridge() if bridge.set_track_pan(track_number - 1, max(-1.0, min(1.0, pan))): return f"Track {track_number} pan set to {pan}" return "Error: OSC command failed"
- Core implementation in ReaperBridge class: sends OSC message /track/{track_index+1}/pan with pan value to REAPER.def set_track_pan(self, track_index: int, pan: float) -> bool: """Set track pan (-1.0 to 1.0).""" return self.send_osc(f"/track/{track_index + 1}/pan", float(pan))
- scythe_mcp/server/main.py:148-160 (registration)Tool registration via @mcp.tool() decorator on the handler function.@mcp.tool() def set_track_pan(ctx: Context, track_number: int, pan: float) -> str: """ Set track pan position. Args: track_number: Track number (1-based) pan: Pan position (-1.0 = full left, 0.0 = center, 1.0 = full right) """ bridge = get_bridge() if bridge.set_track_pan(track_number - 1, max(-1.0, min(1.0, pan))): return f"Track {track_number} pan set to {pan}" return "Error: OSC command failed"