Skip to main content
Glama

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

TableJSON Schema
NameRequiredDescriptionDefault
track_indexYes
barYes
beatYes
valueYes
envelope_indexNo
envelope_nameNo
shapeNo
tensionNo

Implementation Reference

  • 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,
  • 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,
        )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danielkinahan/ReaMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server