Spatial9 Gravity Feed: your musical ideas, in motion
Short answer: Gravity Feed is Spatial9’s API that turns DAW session metadata into placement, movement and effect plans for spatial plugins. One query returns a full multi-track plan for up to 128 beats. The free plan allows 1 query per second with bursts up to 5; higher rates are available from sales.
Gravity Feed is a musical-intelligence feed for DAWs and plugins. Your DAW or plugin sends metadata about the session (tempo map, sections, track roles, current positions and locks) and Gravity Feed returns three alternative plans with 3D placements, beat-timed motion curves, effect ideas and plugin-ready parameter patches. No audio is uploaded.
API base: https://spatial9.ai/api/gravity-feed/v1. Requests are metadata only; no audio is uploaded.
Workflows
- Place: Get a starting 3D position for every track, based on its role, the genre and your intent. Anchored tracks such as lead vocals stay put.
- Move: Get beat-timed motion curves (rise, sweep, circle, fly over and more) that land on section boundaries instead of drifting at random.
- Shape: Get effect ideas in plain words, such as “shorter decay, more pre-delay to keep the vocal clear”, tied to a track and a reason.
- Explain: Every placement and movement carries a one-line musical reason, so you can judge it before you apply it.
- Compare: Each query returns three alternatives (restrained, expressive and cinematic) to audition side by side.
- Commit: Apply a plan as live parameter changes or as automation, only if the session has not changed since you asked. Undo stays in your DAW.
How it works
- Describe the session: Your DAW, script or plugin collects tempo, the selected beats, sections, track roles, current positions, locks and which spatial plugin sits on each track.
- Send one query: POST the metadata to /v1/plans with your key. No audio is sent; the request is under 64 KB.
- Gravity plans: The model chooses musical actions only. Deterministic code then checks locks, ranges and plugin limits and computes every coordinate and curve point.
- Review three alternatives: Restrained, expressive and cinematic plans arrive with reasons, effect ideas and a list of anything your setup cannot apply.
- Apply safely: Your adapter writes the parameters or automation if the session revision still matches and the plan has not expired. Playback then costs no more queries.
What your DAW or plugin sends
- session: A pseudonymous session id, a revision number that rises on every edit, the tempo map, the selected beats and optional section markers.
- tracks: Up to 32 tracks with an id, a role (and who said so: you, the host or a model), current position, anchors and locked parameters.
- targets: The spatial plugin on each track: its Gravity Profile and whether your adapter can write live values, automation, or neither.
- intent: Optional producer direction in plain words, up to 500 characters, such as “open the chorus upward without moving the vocal”.
- privacy: Always metadata_only with audio_uploaded false. Requests that claim to contain audio are rejected.
What Gravity Feed returns
- alternatives: Restrained, expressive and cinematic plans, each with a scene, motions, effect suggestions, actions and unsupported actions.
- scene: Each track’s position in degrees and normalized distance, whether it changed, and why.
- motions: Shape, start and end beat, intensity and up to 65 points, each with beat, seconds, azimuth, elevation and distance.
- actions: Exact parameter values or curves for each plugin profile, with OSC addresses where the plugin documents them.
- unsupported_actions: Everything your setup cannot apply, such as distance on a plugin without a distance control, stated instead of silently dropped.
- preconditions: The session id, revision and input hash the plan was made for. Adapters must refuse to apply a plan to a changed session.
- expires_at: Plans are valid for 10 minutes.
What QPS means
QPS means queries per second: how many planning requests your account can send each second. One query is one call to /v1/plans. One query can plan 32 tracks over 128 beats (32 bars of 4/4). Playing that plan back in your DAW costs nothing more, because the curves run locally.
1 query per second sustained, with bursts of up to 5 back-to-back queries. The limit is per account and shared by every key, REST, MCP and A2A. No monthly cap for now.
Above the limit you receive HTTP 429 with a Retry-After header telling you how many seconds to wait. Nothing is charged and nothing is lost.
Need more than 1 QPS, for example a plugin shipped to many users or a batch tool? Contact sales for a higher limit. Email contact@spatial9.ai.
Product family
- Gravity Feed (Live): The cloud planning API. Session metadata in, placement, movement and effect plans out.
- Gravity Connect (Live): REST, MCP and A2A connections to the same service, with one shared limit per account.
- Gravity Profiles (Live): Versioned descriptions of each plugin’s controls, so a plan becomes exact parameter values.
- Gravity Link (Planned): A local companion that talks OSC to plugins and holds your key, so plugins never call the cloud directly.
- Gravity Capture (Planned): A plugin you drop on any track to read tempo and transport and write the returned automation, in any DAW.
Ways to connect
- REST API (Live): Any language that can make an HTTPS request. POST /v1/plans with X-API-Key: s9gf_...
- MCP tool (Live): AI assistants and coding agents call gravity_feed_plan on the Spatial9 MCP server. Connect at spatial9.ai/connect, then ask for a plan.
- A2A skill (Live): Other agents hand over a session and get the plan back as a completed task. Skill gravity_feed_plan on the Spatial9 A2A agent.
- REAPER script (Prototype): A Lua script reads the REAPER session, asks for a plan and writes IEM StereoEncoder automation inside one undo step. Download from the docs. Not yet tested in REAPER.
- Gravity Link companion (Planned): A local app that holds your key and speaks OSC to plugins, so nothing in the plugin needs internet access. In design.
- Gravity Capture plugin (Planned): A VST3, AU and AAX plugin that brings Gravity Feed to DAWs without scripting. In design. Needs a native build.
DAW support
- REAPER (Prototype): ReaScript (Lua) reads tempo, regions and FX, and writes envelopes. Prototype script available.
- Ableton Live (Documented route): Max for Live device or a Remote Script reads the set and writes clip or arrangement automation.
- Bitwig Studio (Documented route): Controller API (JavaScript or Java) reads transport and tracks and sets remote-control parameters.
- FL Studio (Documented route): Python MIDI scripting reads tempo and mixer tracks; plugin parameters are set live. Automation writing is limited.
- Cubase (Documented route): MIDI Remote API (JavaScript) maps parameters; record the returned values with automation write.
- Nuendo (Documented route): Same MIDI Remote route as Cubase; the ADM authoring tools are separate from Gravity Feed.
- Pro Tools (Documented route): Pro Tools Scripting SDK (PTSL) for session data; parameter writing needs a plugin-side route such as Gravity Capture.
- Logic Pro (Documented route): No public automation scripting and Audio Units only, so no IEM. Use MIDI on the IAC bus to an AU spatial plugin, or the planned Gravity Capture plugin.
- Studio One / Fender Studio Pro (Documented route): Control Link MIDI mapping or OSC to a VST3 encoder such as IEM StereoEncoder, recorded as automation.
- Reason (Documented route): Plugin-side route through VST3 plugins in the rack; no session scripting.
- Cakewalk Sonar (Documented route): Plugin-side route through VST3 plugins; record live parameter changes as automation.
- GarageBand (Documented route): Audio Unit plugin-side route only; very limited automation. Best for listening to plans, not committing them.
Plugin support
- IEM StereoEncoder / MultiEncoder (Documented route): Documented OSC (for example /StereoEncoder/azimuth). Profile iem_stereoencoder_candidate_v1. Used by the REAPER prototype.
- ICST AmbiEncoder (Documented route): Documented index-based XYZ OSC. Profile icst_ambiencoder_candidate_v1; axis orientation still needs a fixture test.
- FLUX:: SPAT Revolution (Documented route): Documented OSC control of source position. No Gravity Profile yet.
- L-Acoustics L-ISA (Documented route): Documented OSC for object pan, width, elevation and distance in the L-ISA Controller. No Gravity Profile yet.
- SpatGRIS (Documented route): Receives source positions over OSC. No Gravity Profile yet.
- SPARTA (Documented route): Host automation of encoder parameters. No Gravity Profile yet.
- Surge XT (Documented route): Built-in OSC for synth parameters; useful for the synth effect ideas. No Gravity Profile yet.
- FabFilter Pro-Q 4 / Pro-R 2 (Documented route): Host automation only. Effect ideas are applied by hand or by your adapter.
- u-he Diva (Documented route): Host automation only.
- Soundtoys (Documented route): Host automation only.
- dearVR (Sennheiser) (Legacy): Discontinued product line. Host automation may still work; no profile is planned.
Questions
What is Gravity Feed?
Gravity Feed is a musical-intelligence feed for DAWs and plugins. Your DAW or plugin sends metadata about the session (tempo map, sections, track roles, current positions and locks) and Gravity Feed returns three alternative plans with 3D placements, beat-timed motion curves, effect ideas and plugin-ready parameter patches. No audio is uploaded.
Does Gravity Feed upload my audio?
No. Requests are metadata only and must declare audio_uploaded false. Spatial9 stores a hash of the request, counts, timings and the returned plan, not the request body.
What does 1 QPS mean?
QPS means queries per second: how many planning requests your account can send each second. One query is one call to /v1/plans. One query can plan 32 tracks over 128 beats (32 bars of 4/4). Playing that plan back in your DAW costs nothing more, because the curves run locally. 1 query per second sustained, with bursts of up to 5 back-to-back queries. The limit is per account and shared by every key, REST, MCP and A2A. No monthly cap for now.
What happens if I go over the limit?
Above the limit you receive HTTP 429 with a Retry-After header telling you how many seconds to wait. Nothing is charged and nothing is lost. Need more than 1 QPS, for example a plugin shipped to many users or a batch tool? Contact sales for a higher limit.
Which DAWs work with Gravity Feed today?
Any tool that can make an HTTPS request can call the API. A REAPER script is available as a prototype. Other DAWs have documented routes (scripting, OSC or plugin automation) that are described per DAW in the docs, but no other adapter is certified yet.
Which plugins can apply a plan directly?
IEM StereoEncoder and ICST AmbiEncoder have Gravity Profiles with their documented OSC addresses. Their coordinate conversion has not been verified in a real session yet, so each action says conversion_verified false.
Does the AI write the numbers?
No. The model picks musical actions such as “slowly lift the pad in the chorus”. Deterministic code checks locks, ranges and plugin limits and calculates every coordinate and curve point, so the same choice always gives the same numbers.
Can I use it from ChatGPT, Claude or another agent?
Yes. The same service is the gravity_feed_plan tool on the Spatial9 MCP server and the gravity_feed_plan skill on the Spatial9 A2A agent. All of them share your account’s limit.
How do I get more than 1 QPS?
Email contact@spatial9.ai with your use case and expected traffic.
Learn more
Last updated .