RefaceCPLiveControl is an Ableton Live Control Surface script for the Yamaha Reface CP keyboard.
- Automatic device parameter mapping
- Lock devices for automation
- Device parameter morphing and randomization
- Clip/Scene triggering using MIDI keys
- MIDI note key filtering using Live's scale
- Note repeat
- Track control mode
- Transport actions and more using MIDI keys
See full details in the manual.
-
Manually create a folder called
Remote Scripts
within your User Library if it does not already exist. The default User Library locations are:- Windows:
\Users\[username]\Documents\Ableton\User Library
- Mac:
Macintosh HD/Users/[username]/Music/Ableton/User Library
- Windows:
-
Place the remote script folder called
RefaceCP
(the folder you found this README.md in) into theRemote Scripts
from previous step.
This can also be done automatically with the provided make install
command.
- Select the
Reface CP
control surface script in Live'sLink, Tempo & MIDI
settings.
For more help, see Installing third-party remote scripts from Ableton.
Sadly, the Reface CP does not send any MIDI CC for the Volume and Octave faders. It's also a pity that the Type knob is not an endless encoder. This limits the possibilities of what could be achieved when used as a controller but I hope this still brings a new dimension to your great Reface CP.
Control surface scripting in Ableton Live can be very powerful but I found some limitations that I wish are added in the future. For instance:
-
Being able to define a mapping of MIDI notes so a particular MIDI note key is processed in Live's input as another MIDI note. That'd be a better way to implement a scale mode for a keyboard where notes outside a given scale would be mapped to another note in that scale. Muting those notes (by capturing their events in the script) is the only way I've been able to do this.
-
Integrated MIDI effect chain. Similarly to how the
note_repeat
works, it would be awesome to have access to standard MIDI effects like velocity, note repeat, arpeggiator, etc so they could be configured from the script and the chain's output sent to Live to record the notes directly. This feature actually would solve the need for the previous point by just having access to a scale device.
In case your Reface CP does not produce any sound after using the script you can restore it to factory defaults by holding down the right-most C-key on the keyboard while pressing the Power (Standby/On) switch. This could happen in case of application crash or if the device is disconnected before closing Live. To avoid this, make sure Live application is closed before turning off the Reface. The script will restore the settings (like the speaker output) automatically when closing.
This script has been developed and tested while using Live 12. I cannot guarantee that it works correctly in previous versions.
If you'd like to contribute by adding a feature or fixing a bug, please submit a github issue.
If you’d like to support this project or other hundreds of ideas you can bring the drinks using the button below:
You can also just star this project if you find it useful. This might serve as a quick feedback and encourage me to add more features.
This is a collection of resources that I found useful while researching on this project. I'm collecting them here both as a documentation source and acknowledgement.
- LOM - The Live Object Model: Official Live Object Model Documentation
- Live API version 11.0.0: Unofficial Live API documentation generated by the "API_MakeDoc" MIDI Remote Script. https://structure-void.com
- Live API version 12.1.0: Unofficial Live API documentation updated to version 12.1.0.
- ableton-control-surface-toolkit: Repository for decompiled Ableton Python APIs and Control Surface definitions
- AbletonLive12_MIDIRemoteScripts: Unofficial repository for Ableton Live 12.0.1 MIDI Remote Scripts Python Sources by Julien Bayle / Structure Void
- _Framework: An Introduction to the Ableton Framework Classes by Hanz Petrov
- Ableton Script Documentation: Technical Documentation of the Ableton Live Remote Script for the Electra One (Jaap-Henk Hoepman)