[ free / experimental / made for REAPER ]

ReaFlex is a vocal pitch editor for REAPER.

It analyzes a monophonic vocal, draws the detected notes as editable blocks, and lets you correct pitch without leaving your REAPER project.

You can move and reshape notes, snap them to a key or scale, adjust how hard the tuning pulls toward the centre, preserve vibrato, tune individual notes, and use the included experimental ReaFlex resynthesis engine.

This is an independent project and is still being developed. The resynth backend in particular is experimental, so expect the sound and controls to keep changing as the project improves.

ReaFlex Simple mode interface inside REAPER
simple mode — the everyday controls, with the note editor underneath

01 / ABOUT

What it does

ReaFlex is not a VST plug-in. The editor itself is a Lua ReaScript, while the custom pitch renderer is a JSFX that REAPER loads as take FX.

Detect & display notes

Analyze monophonic vocal audio into note blocks with detected pitch and pitch movement over time.

Edit the performance

Move notes, resize their boundaries, split or merge blocks, edit glide behaviour, and work on several selected notes at once.

Snap to a key

Select a root and scale. Changing either can immediately re-target the detected notes to pitches that belong to that key.

Choose how corrected it sounds

Perfect Tuning, Centre Pitch, Vibrato and Retune controls let you move between transparent correction and deliberately hard tuning.

Work overall or per-note

Start with one set of controls for the whole take, then switch to Per Note mode when one part of the performance needs different treatment.

Use the ReaFlex resynth

ReaFlex includes an experimental phase-coherent JSFX renderer with formant shaping and Phase Tightness controls. REAPER's native processing remains available as an alternative.

Best source material: a reasonably clean, monophonic vocal or other single-pitch source. ReaFlex is not intended to untangle chords or several simultaneous voices.

02 / DEMO

Quick demo

A short look at the workflow: original vocal → analysis → note edits → corrected playback.

A. original vocal B. analyze / select key C. edit notes D. corrected result

03 / INSTALLATION

Installing ReaFlex

ReaFlex has two parts: a .lua file that provides the editor and a .jsfx file that provides the custom resynthesis engine. Both need to be placed where REAPER can find them.

Before you start

  • REAPER must already be installed.
  • ReaFlex requires ReaImGui. The script checks for it at startup and will stop with a “ReaImGui is required” message if it is missing.
  • Download the latest ReaFlex release from GitHub Releases and extract the archive somewhere temporary.
  • File names may contain version numbers. That is normal; the important part is the file type and destination described below.
1

DEPENDENCY

Install ReaImGui through ReaPack

If you already run other ReaImGui scripts, you can skip this step. Otherwise, open REAPER and use ReaPack to install ReaImGui.

  1. Open Extensions → ReaPack → Browse packages…
  2. Search for ReaImGui.
  3. Select it, mark it for installation, then apply the changes.
  4. Restart REAPER if ReaPack asks you to.

If you do not have ReaPack yet, install ReaPack first, then return to this step.

ReaPack package browser showing ReaImGui
SCREENSHOT SLOT ReaPack → ReaImGui assets/screenshots/install-01-reaimGui.png
[ click image to enlarge ]
2

FIND THE RIGHT FOLDER

Open REAPER's resource path

Do not guess the application folders. REAPER can open the exact resource folder it is currently using.

  1. In REAPER, open the Options menu.
  2. Keep that folder open for the next two steps.

You should see folders such as Effects, Scripts, Data and others.

REAPER Options menu showing the resource path command
SCREENSHOT SLOT assets/screenshots/install-02-resource-path.png
[ click image to enlarge ]
3

RESYNTH ENGINE

Copy the JSFX into Effects/ReaFlex

Inside the resource path, open Effects. Create a folder named ReaFlex if it does not already exist.

Copy the ReaFlex .jsfx file into:

REAPER resource path/
└── Effects/
    └── ReaFlex/
        └── ReaFlex_Resynth_....jsfx

The exact renderer filename may change between releases. Use the .jsfx file included with the release you downloaded.

After copying it, restart REAPER or rescan the FX browser so the new JSFX is visible.

ReaFlex JSFX file inside the REAPER Effects ReaFlex folder
SCREENSHOT SLOT Effects/ReaFlex folder assets/screenshots/install-03-jsfx-folder.png
[ click image to enlarge ]
4

EDITOR SCRIPT

Copy and register the Lua script

A tidy place for the script is Scripts/ReaFlex inside the resource folder:

REAPER resource path/
└── Scripts/
    └── ReaFlex/
        └── ReaFlex_....lua

Then register it with REAPER:

  1. Open Actions → Show action list…
  2. Click ReaScript: Load…
  3. Select the ReaFlex .lua file you just copied.
  4. ReaFlex now appears in the Action List and can be assigned to a keyboard shortcut, toolbar button or menu like any other REAPER action.
REAPER Action List with the Load ReaScript button
SCREENSHOT SLOT Action List → Load ReaScript assets/screenshots/install-04-load-reascript.png
[ click image to enlarge ]
5

FIRST RUN

Run ReaFlex on a vocal item

  1. Put a monophonic vocal recording on a REAPER track.
  2. Click the media item so it is selected.
  3. Run the ReaFlex action.
  4. In ReaFlex, run Analyze Transients to build the note blocks.
  5. Choose the song's Key and Scale.
  6. Play the project and start adjusting the note blocks or controls.

ReaFlex starts with its custom resynth backend selected in current builds. If the JSFX was not installed correctly, check the troubleshooting section below.

ReaFlex open on a selected vocal with analyzed notes
SCREENSHOT SLOT First successful analysis assets/screenshots/install-05-first-run.png
[ click image to enlarge ]

A quick check that everything is installed correctly

ReaFlex opens without the “ReaImGui is required” error.

The backend selector can use ReaFlex Resynth.

Analyze Transients creates note blocks when a suitable audio item is selected.

Changing key/scale or dragging a note causes an audible pitch change.

Troubleshooting

What you see What to check
ReaImGui is required. Install or update ReaImGui through ReaPack, then restart REAPER.
ReaFlex Resynth cannot be found Confirm the .jsfx file is inside the active REAPER resource path at Effects/ReaFlex/, then restart/rescan REAPER.
No note blocks appear Make sure an audio item is selected, the source is reasonably monophonic, and run Analyze Transients again.
The script is not in the Action List Use Actions → Show action list → ReaScript: Load… and select the ReaFlex .lua file.

04 / USING REAFLEX

A normal editing pass

01

Analyze

Select the vocal item and analyze it to create the note blocks.

02

Set the musical context

Choose a root and scale. ReaFlex will use that information when snapping notes.

03

Listen before editing too much

The current defaults aim for strong centre tuning while retaining a little pitch movement. Use Listen on Click if you want to audition notes quickly.

04

Move the obvious mistakes

Drag note blocks to the intended pitch. Split or merge blocks where the automatic note boundaries do not match the phrase.

05

Use Per Note mode for exceptions

Leave the overall settings alone when they work for most of the take; use Per Note mode for the few notes that need different behaviour.

06

Apply when you are happy

Use Apply Take to render the result to a new take while keeping the original workflow inside REAPER.

ReaFlex Advanced mode
SCREENSHOT SLOT Advanced mode / annotated controls assets/screenshots/advanced-mode.png

05 / INTERFACE

Simple when possible, detailed when needed

ReaFlex Simple mode
SCREENSHOT SLOT Simple mode assets/screenshots/simple-mode.png
Simple mode: tuning strength, centre pitch, vibrato, retune, key, scale, essential resynth controls and tools.
ReaFlex Per Note mode
SCREENSHOT SLOT Per Note mode assets/screenshots/per-note.png
Per Note mode: select one or several blocks and give those notes their own tuning behaviour.

06 / FAQ

Questions

Is ReaFlex free?

Yes. The project is available from its public GitHub repository.

What kind of audio is it for?

ReaFlex is mainly aimed at monophonic vocal material: one clearly identifiable sung pitch at a time.

Is ReaFlex a plug-in?

Not in the usual VST/AU sense. The interface is a Lua ReaScript and the custom renderer is a JSFX loaded by REAPER.

What is the ReaFlex Resynth?

It is the project's experimental custom pitch-rendering backend. It uses a phase-coherent spectral approach and exposes controls such as Phase Tightness and formant character.

Why are there Simple and Advanced modes?

Most edits only need a few controls. Simple mode keeps those visible; Advanced mode exposes the less common DSP, formant and navigation settings.

Can I use REAPER's native pitch processing instead?

Yes. ReaFlex includes a native REAPER processing path as an alternative to the experimental resynth backend.

07 / DOWNLOAD

Try it, break it, report what goes wrong.

ReaFlex is still evolving. Bug reports, awkward vocal examples and useful feedback are genuinely helpful.

Contact me via haunt@ghostfleshstudio.com

08 / SUPPORT

If ReaFlex is useful to you

Donations are optional. Using it, testing it and reporting useful bugs also helps the project.