Configuring Your Controller for YURS
The Yaeltex Universal Remote Script (YURS) is a powerful bridge that transforms your custom hardware into a native Ableton Live control surface. To unlock this deep integration, you must configure your controller in Kilowhat to send the precise MIDI messages that YURS is listening for. This process is governed by the official Yaeltex Ableton Live MIDI Chart.
This master guide will walk you through every aspect of the configuration, from editing the core Map.py file to understanding the detailed MIDI Chart and exploring advanced customizations.
Part 1: The Map.py File - Your Script's Command Center
At the heart of YURS is a file named Map.py. Think of this as the script's central settings panel. By editing this file, you tell the script which features you intend to use, which helps optimize the flow of data between your controller and Ableton Live, preventing unnecessary processing.
How to Edit Map.py:
- Navigate to Ableton Live's
MIDI Remote Scriptsfolder. Inside, find yourYaeltex_Universal_...folder. - Open the
Map.pyfile within that folder using a simple text editor (like Notepad on Windows or TextEdit on macOS). - CRITICAL: After making and saving any changes, you must close and restart Ableton Live for the new configuration to load.
Here are the key variables you can configure in Map.py:
-
SESSION_BOX_SIZE = (tracks, scenes) - What it does: Defines the size of the clip-launching grid (the "red box") you want to control.
- Why you'd change it: If your controller has an 8x4 grid of buttons for clip launching, set this to
(8, 4). This prevents the script from sending or receiving data for clips outside this defined area, optimizing performance. The maximum is (16, .
-
VU_METER_ENABLED = True / False - What it does: Enables or disables sending track VU meter data back to your controller's LEDs.
- Why you'd change it: This is a data-intensive feature. If you haven't designed your controller with encoders dedicated to VU metering, set this to
Falseto reduce data traffic and prevent potential overload. To use this, you must also set the encoder's function to "Vumeter CC" in Kilowhat.
-
NUM_SEND_CONTROLS = 0-8 - What it does: Sets the number of Send tracks (A-H) you want to be able to control.
- Why you'd change it: If you only use Sends A and B, set this to
2. If you use none, set it to0. This tailors the script to your specific mixing workflow.
- Device Control
-
SELECTED_STRIP_PARAMETER_CONTROLS_ENABLED = True / False: Set toTrueif you have a bank of knobs intended to control whatever device is currently selected in Ableton. -
TRACK_STRIP_PARAMETER_CONTROLS_ENABLED = True / False: Set toTrueif you have knobs dedicated to controlling devices on fixed tracks (e.g., a set of knobs that always control the filter on Track 1).
-
- Color Feedback Customization
- In the
YAELTEX Colorssection ofMap.py, you can edit the color values for feedback. For example,PlayOn = MonoColor(62)for light blue. To use this, your buttons/encoders in Kilowhat must have their "Feedback mode" set to "Value to Color."
- In the
Part 2: The MIDI Chart - Your Translation Dictionary
The Yaeltex Ableton Live MIDI Chart is the definitive reference for mapping your controller. It lists every function and the exact MIDI message required to control it. In Kilowhat, you will program each physical component to send the specific Message Type (Note or CC), Channel, and Identifier (Note/CC number) from this chart.
THE GOLDEN RULE: Every function you want to control must be assigned a unique MIDI message. Using the same message (e.g., Note 5, Channel 1) for two different functions in your Kilowhat setup will cause the script to fail or behave unpredictably.
Here is a detailed breakdown of key sections:
Mixer Controls
- Track Volume: Uses
CConChannel 1.CC 0controls Track 1,CC 1controls Track 2, ...,CC 15controls Track 16. - Track Pan: Uses
CConChannel 1.CC 16controls Track 1,CC 17controls Track 2, ...,CC 31controls Track 16. - Track Mute/Solo/Arm/Select: Use
NoteonChannel 1. The note number determines the function and track. - Mute: Notes
0-15for Tracks 1-16. - Solo: Notes
16-31for Tracks 1-16. - Arm: Notes
32-47for Tracks 1-16. - Select: Notes
48-63for Tracks 1-16.
- Mute: Notes
- Track Sends (A-H): Use
CConChannel 2. The CC number range determines both the Send and the Track. - Send A:
CCs 0-15for Tracks 1-16. - Send B:
CCs 16-31for Tracks 1-16. - ...and so on, up to Send H:
CCs 112-127for Tracks 1-16.
- Send A:
- Master & Cue Volume:
MASTER VOLUMEisCC 1, Ch 127.CUE VOLUMEisCC 1, Ch 126. - Crossfader:
CROSSFADERisCC 1, Ch 125.
Session & Transport Controls
- Clip Launcher: Uses
NoteonChannel 2. Notes0-127cover a full 16x8 grid. - Scene Launch: Uses
NoteonChannel 3. Notes16-23launch Scenes 1-8. - Stop All Clips:
Note 3, Ch 127. - Stop Track Clips: Uses
NoteonChannel 3. Notes0-15stop clips on Tracks 1-16. - Session Nav (Red Box): Uses
NoteonChannel 3.UPis Note 24,DOWNis 25,LEFTis 26,RIGHTis 27. - Transport: Uses
NoteonChannel 1-7.PLAYisNote 5, Ch 1,STOPisNote 5, Ch 2,RECisNote 5, Ch 3, etc.
Device Controls
- Selected Track Device On/Off: Uses
NoteonChannel 4. Notes64-71toggle Devices 1-8 on the selected track. - Selected Track Device Parameters: Uses
CConChannel 11.CCs 0-7control the first 8 parameters/macros of the selected device. - Fixed Track Device Parameters: This is for dedicating knobs to a specific track. Each track gets its own CC Channel.
- Track 1 Devices: Use
CConChannel 3. (CCs 0-7 for Device 1, 8-15 for Device 2, etc.) - Track 2 Devices: Use
CConChannel 4. - ...and so on, up to Track 8 Devices using
CConChannel 10.
- Track 1 Devices: Use
Part 3: Advanced Customization & Power User Tips
For those who want to bend the script to their will, you can directly edit the MIDI assignments in Map.py.
- Changing MIDI Channels: You can change the channel for a whole group of controls. To move all MUTE functions to MIDI Channel 5, find the line
MUTE_CHANNEL = 0and change it toMUTE_CHANNEL = 4. - Important: The script is 0-indexed. Channel 0 in the script = Channel 1 on your controller; Channel 4 = Channel 5, etc.
- Assigning Non-Consecutive Messages: If your layout requires non-standard mapping, you can define an explicit list. For example, to map four mutes to notes 0, 5, 10, and 15, you would set:
MUTE_NOTES = [0, 5, 10, 15]. - Using Multiple Controllers: YURS supports linking multiple controllers. You can copy the entire script folder, rename it (e.g.,
Yaeltex_Universal_alt2), and have a differentMap.pyfor each. This allows two controllers to work together seamlessly.
Part 4: Known Issues & Optimizations
- Potential MIDI Overload: In some cases, rapid actions like fast session scrolling can send a burst of MIDI messages that overwhelm the controller's input buffer.
- The Fix (Advanced): A fix involves implementing a global "throttling" mechanism in the script's
mono_button.pyfile. This adds a tiny, non-blocking delay (e.g., 10ms) between any two messages sent from the script, preventing the buffer from overflowing. This requires some Python knowledge but can resolve issues with unresponsiveness during intense use.
By carefully configuring your Map.py file, meticulously programming your controller in Kilowhat according to the MIDI Chart, and keeping the Golden Rule of "No Duplicate MIDI Messages" in mind, you can achieve an unparalleled level of custom control over Ableton Live.
Updated on: 26/06/2025
Thank you!
