Gravity Feed for REAPER (prototype)
Install and run the prototype REAPER script that writes IEM StereoEncoder automation from a plan.
This guide connects REAPER to Gravity Feed with a Lua script that plans the selected tracks and writes azimuth and elevation automation to IEM StereoEncoder. Status: prototype, not yet tested in REAPER. Save your project before running it, and read the script before you trust it.
What the script does
- Reads the time selection (or 32 beats from the edit cursor, capped at 128), the tempo markers, the regions inside the window and up to 32 selected tracks.
- Finds an IEM StereoEncoder on each track and reads its current azimuth and elevation.
- Asks for an optional direction, such as "lift the pads in the chorus".
- Sends metadata only to
POST /v1/planswith your key. Audio, file paths and the project name are never sent; the session id is a random id stored inside the project. - Prints the three alternatives, their movements, effect ideas and anything that could not be applied, in the ReaScript console.
- Asks which alternative to apply, then refuses if the project changed since the request or the plan is more than 10 minutes old.
- Writes azimuth and elevation envelope points for each bound StereoEncoder inside one undo step.
Requirements
| Item | Version |
|---|---|
| REAPER | 6 or later |
| curl | 7.55 or later on the PATH (included with Windows 10 and later and with macOS) |
| IEM Plug-in Suite | StereoEncoder on each track you want to move |
| Gravity Feed key | From the console |
Install
- Download Spatial9_GravityFeed_IEM.lua.
- In REAPER, open Actions > Show action list > New action > Load ReaScript and pick the file.
- Insert IEM StereoEncoder on the tracks you want to move.
- Select those tracks (and any others for context), set a time selection over a section and run the action.
- On first run, paste your
s9gf_key. It is stored in REAPER's extension state on this computer. If the key is rejected, the script forgets it and asks again next time.
Check the direction first
The IEM profile's conversion has not been verified in a real session, so run this fixture test once:
| Step | Expected |
|---|---|
| Set azimuth automation to 0 degrees | Sound straight ahead |
| Set azimuth to +90 degrees | Sound hard left |
| Set elevation to +45 degrees | Sound raised |
If a direction is reversed, do not use the script's output; report it to Spatial9 so the profile can be corrected.
Known limits
- Only IEM StereoEncoder is written. Other plugins appear in the plan as suggestions.
- Distance is not written; StereoEncoder has no distance control in this profile.
- Effect ideas are printed, never applied.
- The script blocks REAPER while it waits for the answer, usually a few seconds.
- It writes points with linear shape and replaces existing points in the planned range.
Troubleshooting
| Message | Fix |
|---|---|
| curl did not run | Install curl or add it to the PATH |
| HTTP 401 | Create a new key in the console |
| HTTP 422 with field list | A track or section broke a rule; the field path says which |
| HTTP 429 | Wait a second and run again; the free plan allows 1 plan per second with bursts of 5 |
| The project changed after the plan was requested | Run the script again without editing in between |
FAQ
Does the script upload my audio?
No. It sends tempo, beats, region labels, track names and encoder positions only.
Can I undo a plan?
Yes. The whole plan is written in one undo step called "Gravity Feed: apply ... plan".