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

Reply
 
Thread Tools Display Modes
Old 01-03-2023, 03:11 PM   #1
wholehalf
Human being with feelings
 
wholehalf's Avatar
 
Join Date: Nov 2015
Location: Athens, Greece
Posts: 68
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
https://stash.reaper.fm/46023/MidiLo...01%20-%20B.RPP

Plugins you will need for this project

1) Helgoboss Realearn (installable via Reapack) Website: https://www.helgoboss.org/projects/realearn/
2) midiLooper.
For Linux VSTs - from the reboot of the legendary pizMidi plugins by sleiner (https://liv.nl.tab.digital/s/P7mrmm7Dm3ACPrS) I have uploaded the Linux versions to a nextcloud fileshare temporarily as sleiner's builds on github expired.
For Windows VSTs - download the latest 'pizjuce' zip file from https://code.google.com/archive/p/pizmidi/downloads
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.

Usage

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.

Monitoring

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

Last edited by wholehalf; 09-30-2023 at 01:13 AM. Reason: Updated midilooper links
wholehalf is offline   Reply With Quote
Old 03-19-2023, 05:59 PM   #2
clarksil
Human being with feelings
 
Join Date: Feb 2020
Posts: 14
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
wholehalf
Human being with feelings
 
wholehalf's Avatar
 
Join Date: Nov 2015
Location: Athens, Greece
Posts: 68
Default

Quote:
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 05-31-2023, 06:20 AM   #4
Doflow
Human being with feelings
 
Join Date: Feb 2021
Posts: 9
Default

Great initiative!!
Going to try this very soon and let you know my findings.
Thanks!
Doflow is offline   Reply With Quote
Old 06-01-2023, 12:01 PM   #5
Doflow
Human being with feelings
 
Join Date: Feb 2021
Posts: 9
Default

Tried and works like a charm. Great job...
It's a nice alternative for Playtime 1 from HelgoBoss which has some graphic glitches since v6.54. Hopefully he will soon continue to develop Playtime 2.
Although Playtime also supports audiofiles this setup is great for midi file jamming!

You use the Live Input Quantize (GianniMIDI) for quantizing incoming notes, but I found that MidiLooper also has an option to wait for the next bar to play/start quantized. This makes the use of the JSFX obsolete (for me...).
Doflow is offline   Reply With Quote
Old 06-01-2023, 03:43 PM   #6
wholehalf
Human being with feelings
 
wholehalf's Avatar
 
Join Date: Nov 2015
Location: Athens, Greece
Posts: 68
Default

Quote:
Originally Posted by Doflow View Post
Tried and works like a charm. Great job...
It's a nice alternative for Playtime 1 from HelgoBoss which has some graphic glitches since v6.54. Hopefully he will soon continue to develop Playtime 2.
Although Playtime also supports audiofiles this setup is great for midi file jamming!

You use the Live Input Quantize (GianniMIDI) for quantizing incoming notes, but I found that MidiLooper also has an option to wait for the next bar to play/start quantized. This makes the use of the JSFX obsolete (for me...).
Hey thanks for taking a look at my little project! I put it together to tide me over until Playtime 2 come out, which will also work on Linux!

For audio files, Reaper's Super 8 works quite well, you can drag n drop files from the media explorer into its slots, or ctrl+alt+click n drag media items from the arrange area.

I used the 'input quantize' jsfx as a workaround because i couldn't get midilooper to wait for the next bar to start recording (it worked fine for playback), even with 'wait for next bar' selected. Does it work for you?
wholehalf is offline   Reply With Quote
Old 06-02-2023, 08:27 AM   #7
TonE
Human being with feelings
 
Join Date: Feb 2009
Location: Reaper HAS send control via midi !!!
Posts: 4,031
Default

Why not using clip engine instead of midilooper? Thanks for sharing, did not test anything yet, however.
TonE is offline   Reply With Quote
Old 06-04-2023, 10:21 AM   #8
Doflow
Human being with feelings
 
Join Date: Feb 2021
Posts: 9
Default

Hi, The Clip Engine is not yet ready to use as a replacement for it lacks a user interface, has a lot of setting that can only be altered by exporting and importing Lua code and doesn't support drag & drop to name a few disadvantages.

The midilooper solution is really great (and indeed needs the quantize jsfx if you want to quantize the recording start time).

Thanks again for the example project!
Doflow is offline   Reply With Quote
Old 07-07-2023, 04:14 PM   #9
manymanyhaha
Human being with feelings
 
Join Date: Jul 2009
Posts: 13
Default

Quote:
Originally Posted by wholehalf View Post
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
Would love to see if this iteration of PizMidi Midi Looper doesn't crash but Github says these packages are expired. How do we find them?
manymanyhaha is offline   Reply With Quote
Old 07-07-2023, 11:03 PM   #10
wholehalf
Human being with feelings
 
wholehalf's Avatar
 
Join Date: Nov 2015
Location: Athens, Greece
Posts: 68
Default

Quote:
Originally Posted by manymanyhaha View Post
Would love to see if this iteration of PizMidi Midi Looper doesn't crash but Github says these packages are expired. How do we find them?
Hey try this link:

https://github.com/sleiner/pizmidi/a...uns/4768983772

You need to be signed in to your github account for the downloads to work.
wholehalf is offline   Reply With Quote
Old 07-08-2023, 02:22 PM   #11
manymanyhaha
Human being with feelings
 
Join Date: Jul 2009
Posts: 13
Default

Quote:
Originally Posted by wholehalf View Post
Hey try this link:

https://github.com/sleiner/pizmidi/a...uns/4768983772

You need to be signed in to your github account for the downloads to work.
Perfect. Early on with testing but this may just be the midi looper I've been looking for, thank you!
manymanyhaha is offline   Reply With Quote
Old 08-01-2023, 03:56 PM   #12
AndreiMir
Human being with feelings
 
Join Date: Mar 2022
Posts: 48
Default

Quote:
Originally Posted by wholehalf View Post
Hey try this link:

https://github.com/sleiner/pizmidi/a...uns/4768983772

You need to be signed in to your github account for the downloads to work.
There is no download from there now, are there working links?
AndreiMir is offline   Reply With Quote
Old 08-08-2023, 03:16 PM   #13
SatoriStudios
Human being with feelings
 
Join Date: Apr 2023
Posts: 1
Default

Does midiLooper accept midi CC messages? I'm trying to record bends and other info and it's not taking.

I took a look at the learnable parameter and i'm seeing MasterRec, MasterPlay, MasterRecCC, MasterPlayCC, and HostAutomation. When toggling MasterPlayCC or HostAutomation it's still not recording midi CC.

Any advise? Anyone experienced this before?

Thanks!
SatoriStudios is offline   Reply With Quote
Old 09-30-2023, 01:18 AM   #14
wholehalf
Human being with feelings
 
wholehalf's Avatar
 
Join Date: Nov 2015
Location: Athens, Greece
Posts: 68
Default

Quote:
Originally Posted by AndreiMir View Post
There is no download from there now, are there working links?
I uploaded the linux versions to a nextcloud share and I am linking to the old windows versions from google code which work fine in windows.

Linux (sleiner reboot) - https://liv.nl.tab.digital/s/P7mrmm7Dm3ACPrS
Windows (original versions) - https://code.google.com/archive/p/pizmidi/downloads
wholehalf is offline   Reply With Quote
Reply

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 04:50 AM.


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