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

  1. 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.
  2. Finds an IEM StereoEncoder on each track and reads its current azimuth and elevation.
  3. Asks for an optional direction, such as "lift the pads in the chorus".
  4. Sends metadata only to POST /v1/plans with your key. Audio, file paths and the project name are never sent; the session id is a random id stored inside the project.
  5. Prints the three alternatives, their movements, effect ideas and anything that could not be applied, in the ReaScript console.
  6. Asks which alternative to apply, then refuses if the project changed since the request or the plan is more than 10 minutes old.
  7. Writes azimuth and elevation envelope points for each bound StereoEncoder inside one undo step.

Requirements

ItemVersion
REAPER6 or later
curl7.55 or later on the PATH (included with Windows 10 and later and with macOS)
IEM Plug-in SuiteStereoEncoder on each track you want to move
Gravity Feed keyFrom the console

Install

  1. Download Spatial9_GravityFeed_IEM.lua.
  2. In REAPER, open Actions > Show action list > New action > Load ReaScript and pick the file.
  3. Insert IEM StereoEncoder on the tracks you want to move.
  4. Select those tracks (and any others for context), set a time selection over a section and run the action.
  5. 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:

StepExpected
Set azimuth automation to 0 degreesSound straight ahead
Set azimuth to +90 degreesSound hard left
Set elevation to +45 degreesSound 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

MessageFix
curl did not runInstall curl or add it to the PATH
HTTP 401Create a new key in the console
HTTP 422 with field listA track or section broke a rule; the field path says which
HTTP 429Wait a second and run again; the free plan allows 1 plan per second with bursts of 5
The project changed after the plan was requestedRun 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".

Go deeper on the blog