Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER for Live Use

Thread Tools Display Modes
Old 01-03-2023, 03:11 PM   #1
Human being with feelings
wholehalf's Avatar
Join Date: Nov 2015
Location: Athens, Greece
Posts: 58
Default midiLooper and ReaLearn for live MIDI clip launching with the Akai APC key 25

I was having fun with midiLooper and ReaLearn so I decided to upload an example project, so that anyone who is interested can start playing without wasting time to set up the plugins. Enjoy!

Get the example project here

Plugins you will need for this project

1) Helgoboss Realearn (installable via Reapack) Website: https://www.helgoboss.org/projects/realearn/
2) midiLooper, from the reboot of the legendary pizMidi plugins by sleiner (https://github.com/sleiner) Download the plugin collection from the builds section: https://github.com/sleiner/pizmidi/a...uns/3372937075, extract and copy into your VST folder. These builds expire after a while, so if the previous link no longer works the newer builds should be available here: https://github.com/sleiner/pizmidi/a...lows/build.yml
3) input_quantize - download the following two files and copy into the 'Effects' subfolder in REAPER's resource path (you can find this by clicking on 'Options' in REAPER's menu and then selecting 'show REAPER resource path in explorer/finder...'
file 1: https://raw.githubusercontent.com/Ia..._quantize.jsfx
file 2: https://raw.githubusercontent.com/Ia...y-lib.jsfx-inc
For anyone interested the full repo where these JSFX come from, it is at https://github.com/IanHalbwachs/gianniMIDI

How the project is set up
This example project has five instances of midiLooper, each on a separate track each of which sends MIDI to a different track containing a virtual instrument. The powerful and flexible ReaLearn by Helgoboss is used to control the parameters of the midiLooper instances with an Akai APC key 25. I set up this controller because I currently own it, but midiLooper's paramaters could be mapped to any MIDI controller using ReaLearn.

Although midiLooper can launch clips when it receives MIDI notes, I chose to control its parameters with ReaLearn because it allows visual feedback by lighting the LEDs on the Akai APC key 25, so we can see which loops are playing/recording. This example project is set up so that clip playback, stop and recording always starts at the beginning of the following bar. This is achieved using the 'input_quantize' JSFX. midiLooper does have a 'wait for next bar' option for clip playback, however this option doesn't affect clip recording, making it difficult to sync recorded loops with the rest of the arrangement. As a workaround I used the 'input_quantize' JSFX plugin before the instance of ReaLearn which controls the midiLoopers.

When 'input_quantize' is active, it only allows the MIDI notes we send to control ReaLearn to pass at the beginning of the next bar, thus forcing our loop to start recording at the start of the bar, keeping our loops in sync. This workaround forced me to use two instances of ReaLearn, one placed after 'input_quantize' which handles play/stop and record/play and one placed on another track to handle master play/stop and the conditional activation of mappings, all fuctions which shouldn't be delayed until the next bar.


Loop Playback

Each of the first five columns on the 8x5 button matrix on the APC is mapped to separate instance of midiLooper, controlling Play/Stop for clips 1-5 (of a total of 16 available clips.) Press a button to begin playback at the start of the next bar. In this example project, the project has to be playing back in order for clips to launch, because PPQ mode is selected for 'Host Sync Mode' on midiLooper. If 'sample' is selected for 'Host Sync Mode', the project doesn't have to be playing back.

Loop Recording

If the round button below a column is pressed (lights up red), the buttons on that column become record/play. Press a button and recording will begin at the start of the next bar. Press the same button again to stop recording and start playback. Recording only needs to be stopped if 'Record Length' is set to 'Manual'. Record length can also be set to a number of bars, and recording will automatically stop after the set number of bars has passed.


When the 'rec arm' button in pressed, the button matrix no longer controls the playback and recording of loops and the bottom row of buttons on the 8x5 matrix now controls the 'thru' parameter on the midiLooper. If 'thru' is enabled for an instance, we are able to monitor what we are playing live on our MIDI keyboard. This is useful if we want to record a loop, or if we want to play one of our virtual instruments live. (the 'monitor' option also has to be enabled for this to work).

Track Volumes

In the example project, the track volume control for the five tracks with the virtual instruments is mapped to the first five rotary knobs on the APC key 25.

Loading a Clip into a Loop Slot

Click the 'Load' button next to the top left of the piano roll in midiLooper to open a file chooser menu where a MIDI file can be selected. MIDI files can also be dragged and dropped from REAPER's media explorer or the file explorer (windows) or finder (macos). Dragging and dropping doesn't work in Linux.

Drawing a MIDI pattern into the piano roll

Left click on 'Loop Area' above the piano roll to set the loop start position and right click to set the end position.
Left doubleclick on the piano roll inserts a note.
Right singleclick on a note erases it.
Left click+drag on a note moves it
Shift + left click+drag moves a note freely if snap to grid is enabled.
Alt+Left Click+drag right or left increases or decreases note length.
Alt+Left Click+drag up or down increases or decreases note velocity.

More info on midiLooper here: https://thepiz.org/plugins/?p=midiLooper
wholehalf is offline   Reply With Quote
Old 03-19-2023, 05:59 PM   #2
Human being with feelings
Join Date: Feb 2020
Posts: 9
Default Downloads

Can't seem to download the midilooper plugin. Also, the jsfx files only download the code.
clarksil is offline   Reply With Quote
Old 03-20-2023, 12:00 AM   #3
Human being with feelings
wholehalf's Avatar
Join Date: Nov 2015
Location: Athens, Greece
Posts: 58

Originally Posted by clarksil View Post
Can't seem to download the midilooper plugin. Also, the jsfx files only download the code.
I just realized that Github won't let you download files from the links I provided without having signed in first, so you have to sign up with them and then sign in. This is the link with the latest builds: https://github.com/sleiner/pizmidi/a...uns/4089754152

For the jsfx you 'save as' from your browser, or you can select all the text and copy into a text editor and save the file from there. Don't forget to save to reaper's 'effects subfolder' (from reaper's options menu click 'show REAPER resource path in explorer/finder...')
wholehalf is offline   Reply With Quote
Old Today, 06:20 AM   #4
Human being with feelings
Join Date: Feb 2021
Posts: 7

Great initiative!!
Going to try this very soon and let you know my findings.
Doflow 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 02:52 PM.

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