> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vibrai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transport

> Control playback, tempo, and transport position.

Control playback, tempo, and transport position.

## Command line

### `transport get`

Show transport state

```bash theme={null}
vibrai transport get
```

### `transport set-tempo`

Set tempo in BPM

```bash theme={null}
vibrai transport set-tempo <bpm>
```

<ParamField path="bpm" required>
  Tempo in BPM
</ParamField>

### `transport play`

Start playback

```bash theme={null}
vibrai transport play
```

### `transport stop`

Stop playback

```bash theme={null}
vibrai transport stop
```

### `transport seek`

Seek transport to a beat position

```bash theme={null}
vibrai transport seek <position>
```

<ParamField path="position" required>
  Transport position: bar.beat notation (e.g. 2.1 = bar 2, beat 1) or raw beats (e.g. 16.0)
</ParamField>

## MCP tools

### `get_transport`

Get current transport state (tempo, time signature, position, playback flag).

```json theme={null}
{
  "tool": "get_transport",
  "arguments": {}
}
```

### `set_tempo`

Set the project tempo in BPM.

```json theme={null}
{
  "tool": "set_tempo",
  "arguments": {
    "bpm": "<Double>"
  }
}
```

<ParamField path="bpm" type="Double" required>
  Tempo in beats per minute (e.g. 120.0)
</ParamField>

### `play`

Start transport playback.

```json theme={null}
{
  "tool": "play",
  "arguments": {}
}
```

### `stop`

Stop transport playback.

```json theme={null}
{
  "tool": "stop",
  "arguments": {}
}
```

### `seek`

Move the transport playhead to the given position (0 = song start). Accepts bar.beat notation (e.g. "2.1" = bar 2, beat 1) or raw beats (e.g. "16" or "16.0"). Use before `play` to start from a specific bar, or while playing to jump to a new position; the playhead moves at the next audio buffer.

```json theme={null}
{
  "tool": "seek",
  "arguments": {
    "beats": "<String>"
  }
}
```

<ParamField path="beats" type="String" required>
  Transport position: bar.beat notation (e.g. "2.1" = bar 2, beat 1) or raw beats (e.g. "16" or "16.0")
</ParamField>
