Playback Control

Play, pause, stop, loop, and seek audio. Control individual players, carts, or everything at once.

🌐 Web UI

Transport Controls

Each player and cart has transport buttons:

  • ▶ Play — Start playback
  • ⏸ Pause — Pause at current position
  • ⏹ Stop — Stop and reset to beginning
  • 🔁 Loop — Toggle loop mode

Seeking

Click on the waveform or progress bar to seek to that position.

Master Controls

The toolbar has global controls:

  • Stop All — Panic button, stops everything
  • Pause All — Pause all playing audio
  • Master Volume — Global output level

⌨️ CLI

Play Audio

# Play by file path
bpsoundscape play --file "thunder.wav"

# Play from library
bpsoundscape play --id lib_abc123

Player Controls

bpsoundscape player pause --id player_1
bpsoundscape player stop --id player_1
bpsoundscape player seek --id player_1 --position 30.5

Stop All

bpsoundscape stopall

Loop Mode

bpsoundscape player loop --id player_1 --enabled true

🔌 HTTP API

Endpoints

MethodEndpointDescription
POST/api/v1/playPlay audio file
POST/api/v1/players/:id/playResume player
POST/api/v1/players/:id/pausePause player
POST/api/v1/players/:id/stopStop player
POST/api/v1/players/:id/seekSeek to position
POST/api/v1/stopallStop all playback

Play Audio File

curl -X POST http://localhost:8513/api/v1/play \
  -H "Content-Type: application/json" \
  -d '{"fileId": "lib_abc123", "loop": false}'

Seek

curl -X POST http://localhost:8513/api/v1/players/player_1/seek \
  -H "Content-Type: application/json" \
  -d '{"position": 30.5}'

Stop All

curl -X POST http://localhost:8513/api/v1/stopall

📡 OSC

Player Control

AddressArgsDescription
/bpsoundscape/player/{id}/playnonePlay/resume
/bpsoundscape/player/{id}/pausenonePause
/bpsoundscape/player/{id}/stopnoneStop
/bpsoundscape/player/{id}/seekfloatSeek to seconds
/bpsoundscape/player/{id}/loopint (0/1)Loop mode
/bpsoundscape/stopallnoneStop all

Examples

# Play player 1
oscsend localhost 8514 /bpsoundscape/player/1/play

# Seek to 30 seconds
oscsend localhost 8514 /bpsoundscape/player/1/seek f 30.0

# Enable loop
oscsend localhost 8514 /bpsoundscape/player/1/loop i 1

# Stop all (panic)
oscsend localhost 8514 /bpsoundscape/stopall

QLab Example

Destination: [BPSoundscape IP]:8514

Play:      /bpsoundscape/player/1/play
Stop:      /bpsoundscape/player/1/stop
Stop All:  /bpsoundscape/stopall