API & MCP
Everything a person can do on Focus Room Playlist Renderer, a program or AI agent can do with the same inputs and get the identical result.
HTTP API
POST https://focusroomplaylistrender.usefulweb.app/api/v1/calculate– run Focus Room Playlist RendererGET https://focusroomplaylistrender.usefulweb.app/api/v1/tool– inputs, output schema, examples- OpenAPI 3.1: /openapi.json · /openapi.yaml
- Errors:
application/problem+json;422includes per-fielderrors.
Focus Room Playlist Renderer
Renders a playlist of generated ambience scenes — Focus Room presets such as brown noise, light rain or a surf-like swell, and the generated Soundscape Atlas worlds — one after another with equal-power crossfades, then runs the master effects: low cut, high cut, an 8-band graphic EQ, room reverb, stereo width, volume and a gentle soft limiter. Paste scene lines or a whole Focus Room (JSON or share link). The result is a 16-bit stereo WAV file with a timeline of the scenes and the EQ curve; the Focus Room app uses the same renderer, so both give identical files.
| Field | Type | Default | Description |
|---|---|---|---|
items | textarea | "brown-noise 20\nrainy-study-room 20\npink-rain 20" | Scenes (one per line: scene id and seconds). Generated scenes: brown-noise, pink-rain, surf-like-swell, fireside, forest-stream, night-wind, rainy-study-room, submarine, medieval-tavern, spacecraft-hum, cavern-drips, coffee-shop-murmur. Write "brown-noise 30" or "fireside 2 min". Used when no room is pasted below. |
project | textarea | — | Focus Room (JSON or share link, optional). Paste a .focusroom.json file or a Focus Room share link to render its playlist (shuffle order included) with its master effects. Scenes with Wikimedia Commons recordings cannot be rendered on the server. |
secondsPerItem | number | 20 | Seconds per scene. Length of each scene of a pasted room (a room’s scenes usually last many minutes), and of scene lines without their own length. |
crossfade | number | 6 | Crossfade. Equal-power crossfade between scenes (at most half a scene). A pasted room uses its own crossfade. |
fx | select (flat, warm, bright, far-away, small-room) | "flat" | Master effects preset. A pasted room uses its own master effects. |
sampleRate | select (44100, 48000, 22050) | "44100" | Sample rate |
Example request
Three study scenes, 20 seconds each, warm sound
curl -X POST https://focusroomplaylistrender.usefulweb.app/api/v1/calculate -H 'content-type: application/json' -d '{"items":"brown-noise 20\nrainy-study-room 20\npink-rain 20","secondsPerItem":20,"crossfade":6,"fx":"warm","sampleRate":"44100"}'
Every result contains
inputs (normalised, defaults applied), summary, result (validated against the published schema), units, assumptions, sources, warnings, computedAt and links.
MCP (Model Context Protocol)
- Streamable HTTP endpoint:
https://focusroomplaylistrender.usefulweb.app/mcp– protocol revisions 2026-07-28 (stateless) and 2025-11-25 / 2025-06-18 / 2025-03-26 (initialize handshake). - Tools:
focusroom_playlist_render - Local stdio connector:
node src/mcp-stdio.ts --tool=focusroom-playlist-render
{
"mcpServers": {
"focusroom-playlist-render": { "type": "http", "url": "https://focusroomplaylistrender.usefulweb.app/mcp" }
}
}