Go Back   Cockos Incorporated Forums > REAPER Forums > MIDI Hardware, Control Surfaces, and OSC

Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old 06-11-2016, 03:34 PM   #1
Human being with feelings
helgoboss's Avatar
Join Date: Aug 2010
Location: Germany
Posts: 2,338
Default Announcing ReaLearn: Sophisticated MIDI/MCU/OSC learn for REAPER

A lot has happened since the initial release of ReaLearn. Since v1.10.0, the latest version can always be found on GitHub.


Dear REAPER users,

lately I've been working on another little REAPER plug-in called ReaLearn. Its purpose is to improve REAPER's MIDI learn capabilities. It's free. You can download it here: http://www.helgoboss.org/projects/realearn/

Right now it's still in beta stage. Any crash or bug report is appreciated.


As silent film accompanist working with keyboards and VST instruments mainly, I want to be able to quickly map MIDI controls to FX parameters. REAPER has this capability but I've always found it too limited for my use cases. Even with the new MIDI link feature added to the mix, I found there were many things left to be desired (I think MIDI link is tailored to other purposes).

Of course, in REAPER there's always a way: With a little bit of JS preprocessing and MidiToReaControlPath, most things turn out to be possible at the end. But it's fiddly to set up.

That's why I wrote ReaLearn. It's a REAPER-only VSTi plug-in (like Playtime). You load it exactly like other VSTi's - although I recommend to load it into the input FX chain instead of the normal one.

Here's a screenshot:

Some basic wording before I introduce the features:
  • Source = MIDI controller element (fader, encoder, note velocity, etc.)
  • Target = Controlled parameter (FX parameter, action etc.)
  • Mode = Absolute, relative or toggle mode (along with its settings)
  • Mapping = Source + Target + Mode

  • You can use REAPER's built-in MIDI routing capabilities to route MIDI events to ReaLearn. That's for example useful if you want different mappings depending on the song you are currently playing.
  • You can preprocess incoming MIDI events before they are routed to the target.
  • If you put ReaLearn into the normal FX chain (not the input FX chain), you can also route MIDI items on the track itself to ReaLearn. (I prefer not to do that and instead write automation in latch mode while recording already - track envelopes are much easier to edit and have a higher resolution than MIDI CC.)
  • You can group mappings and activate/deactivate them group-wise simply by instantiating multiple ReaLearn instances and enabling/disabling them as desired in the FX chain window.
  • You can save a bunch of commonly used mappings as preset and reuse it.
  • You can map to actions on a per-project basis (vs. only globally). So you don't need to pollute your global action mappings just for the needs of one project.
  • You can map to track volume
  • You can map to track send volume
  • You can "squeeze" the target values into a specific range
  • You can use buttons for increasing/decreasing values (use a switch-like source combined with a relative mode)
  • You can map multiple controllers to one parameter (e.g. necessary for the previous feature)
  • You can react to just a sub range of a control. For example, you can use one knob for multiple parameters depending on the knob position
  • In relative mode, you can let the parameter values rotate
  • You can reverse the direction
  • ReaLearn tries to guess the character of MIDI CCs when learning them (character = rotary encoder, switch or fader etc.)
  • ReaLearn automatically detects and chooses useful modes (if enabled)

Technically, some of those things were possible already before by using a mix of Jeffos' MidiToReaControlPath and (JS) MIDI plugins. But it's a workflow killer because you would need to map one MIDI message to another one before actually mapping it to a parameter. Plus, MidiToReaControlPath forwards to the global control path which can lead to unintended side effects with existing global action mappings (I had that quite often already ... it's messy).

Following features are not part of ReaLearn yet:
  • 14bit CCs (except pitch wheel)
  • Soft takeover

For the developers among you: I'm planning to release the source code of ReaLearn later this year.


Last edited by helgoboss; 01-04-2022 at 05:40 AM. Reason: Change title to point out that ReaLearn also does MCU
helgoboss is online now   Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -7. The time now is 11:50 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.