insert_envelope_point_at_beat
Add automation envelope points aligned to the beat grid in REAPER projects. Specify envelope by name or index, position by bar and beat, and set value and shape for precise audio parameter control.
Instructions
Insert an automation envelope point aligned to the project beat grid. Identify the envelope by name (e.g. 'Volume', 'Pan') or by 0-based envelope_index.
bar: 1-based measure number (bar 1 = project start)
beat: 1-based beat within the bar, may be fractional (e.g. 2.5 = beat 2 and a half). Beat units follow the time-signature denominator (e.g. quarter notes in 4/4, eighth notes in 6/8).
value: linear amplitude (Volume: 0.0=silence, 1.0=0 dB, 2.0=+6 dB max)
shape: 0=linear, 1=square, 2=slow start/end, 3=fast start, 4=fast end, 5=bezier Returns the resolved time in seconds alongside bar/beat for verification.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| track_index | Yes | ||
| bar | Yes | ||
| beat | Yes | ||
| value | Yes | ||
| envelope_index | No | ||
| envelope_name | No | ||
| shape | No | ||
| tension | No |
Implementation Reference
- src/reaper_mcp/server.py:1048-1075 (handler)The handler function for 'insert_envelope_point_at_beat' which validates the inputs and calls the adapter.
def insert_envelope_point_at_beat( track_index: int, bar: int, beat: float, value: float, envelope_index: int | None = None, envelope_name: str | None = None, shape: int = 0, tension: float = 0.0, ) -> dict[str, Any]: """ Insert an automation envelope point aligned to the project beat grid. Identify the envelope by name (e.g. 'Volume', 'Pan') or by 0-based envelope_index. - bar: 1-based measure number (bar 1 = project start) - beat: 1-based beat within the bar, may be fractional (e.g. 2.5 = beat 2 and a half). Beat units follow the time-signature denominator (e.g. quarter notes in 4/4, eighth notes in 6/8). - value: linear amplitude (Volume: 0.0=silence, 1.0=0 dB, 2.0=+6 dB max) - shape: 0=linear, 1=square, 2=slow start/end, 3=fast start, 4=fast end, 5=bezier Returns the resolved time in seconds alongside bar/beat for verification. """ try: return _wrap( adapter.insert_envelope_point_at_beat( track_index=track_index, envelope_index=envelope_index, envelope_name=envelope_name, bar=bar, beat=beat, - src/reaper_mcp/server.py:1047-1048 (registration)MCP tool registration decorator for 'insert_envelope_point_at_beat'.
@mcp.tool() def insert_envelope_point_at_beat( - Adapter method that forwards the request to the REAPER bridge client.
def insert_envelope_point_at_beat( self, track_index: int, bar: int, beat: float, value: float, envelope_index: int | None = None, envelope_name: str | None = None, shape: int = 0, tension: float = 0.0, ) -> dict[str, Any]: return self._client.call( "insert_envelope_point_at_beat", track_index=track_index, envelope_index=envelope_index, envelope_name=envelope_name, bar=bar, beat=beat, value=value, shape=shape, tension=tension, )