create_midi_item
Create a MIDI item on a specified track in REAPER DAW. Set the start position and length in beats to add MIDI data for composition and arrangement.
Instructions
Create a MIDI item on a track.
Args:
track_number: Track number (1-based)
position: Start position in beats
length: Length in beats (default: 4 = 1 bar in 4/4)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| track_number | Yes | ||
| position | No | ||
| length | No |
Implementation Reference
- scythe_mcp/server/main.py:229-247 (handler)The main handler function for the 'create_midi_item' MCP tool. It is decorated with @mcp.tool(), defining the tool schema via its parameters and docstring. Calls ReaperBridge.insert_midi_item to perform the action.@mcp.tool() def create_midi_item( ctx: Context, track_number: int, position: float = 0.0, length: float = 4.0 ) -> str: """ Create a MIDI item on a track. Args: track_number: Track number (1-based) position: Start position in beats length: Length in beats (default: 4 = 1 bar in 4/4) """ bridge = get_bridge() result = bridge.insert_midi_item(track_number - 1, position, length) return result.get("message", "MIDI item created")
- Supporting method in ReaperBridge class that handles the insertion of a MIDI item by writing a JSON command file for execution by a Lua script in REAPER.def insert_midi_item(self, track_index: int, position: float, length: float) -> Dict[str, Any]: """Insert MIDI item via file command.""" self._write_command("insert_midi_item", { "track_index": track_index, "position": position, "length": length }) response = self._read_response() if response: return response return {"success": True, "message": "MIDI item command sent"}