How to fix a broken MIDI remote script

by John Carney last updated Jun 20, 2018
How to fix a broken midi remote script

Contents

It can be extremely frustrating if you create a script and it doesn't work, so it's important to know how you can figure out what the problem is and possibly fix it.

To get started, here's some things you can quickly check:

Duplicate Mapping Errors

The first thing you should be aware of is that assigning multiple mappings to the same physical input/MIDI messages will brake the script.
Check that you haven't done this, you can filter the mapping list in Remotify to specific cc values in order to make this process quicker.

filtering midi mappings

Although we've now put checks in place to prevent you making this mistake, older scripts could be suffering from this problem.

Note: Midi controls on separate midi channels are fine.
Controls set to different 'modes' are also ok.

A duplicated script folder

It's important that the script folder you install into Ableton Live has the exact same name as the script files contained within it.
Before you unzip your folder, make sure you don't already have a folder with the exact same name in the place you're unzipping to.
If you do it will rename the newly unzipped script folder by adding a number to the end. This will cause the script to not show up in Live's list of control surfaces.

renamed midi remote script

Is it a problem with this script or something else?

When you select a Remotify script in the midi preferences menu of Ableton, you'll see a message appear at the bottom of the Ableton application which includes the words 'script made in remotify'.
If you don't see this message then that indicates there's a problem with the initialisation of the script.
If you do see this message and Ableton is responding to your controls, this suggests that the problem lays elsewhere (possibly with your midi controller or Ableton configuration).

connection message

Debugging your MIDI remote script using the log.txt file

If you're still having problems with your script, you can see if any error messages are being output to the log.txt file.

1. First I’d recommend you close Ableton Live. Then open the the log.txt file in a text editor, delete its contents and save it. This will ensure you're not seeing old errors which may not be related to your current setup.
2. Open Live again, select your MIDI remote script as a control surface, then switch back to the log.txt file and run a search in it for the words RemoteScriptError. If one of your MIDI remote scripts is causing an error it will be output alongside this phrase.
3. When an error occurs, you will see multiple lines relating to the same issue. The name of the the script which is causing an error will be detailed on one of these lines. It will also name related Ableton framework files which are affected, don't be fooled into thinking the error is in one of these as framework files usually don't have errors.

Where is my Ableton Live log.txt file located?

You will find the log.txt file in one of these locations, depending on your operating system. If you have used dfferent versions of Ableton Live (even minor updates), you will have multiple folders in there, make sure you open the log.txt for the correct version you're currently using.



Windows XP
\Documents and Settings\[username]\Application Data\Ableton\Live x.x.x\Preferences\Log.txt

Windows Vista, Windows 7, Windows 8
\Users\[username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\Log.txt

Mac OS X
/Users/[username]/Library/Preferences/Ableton/Live x.x.x/Log.txt

Common Errors found in the log.txt file

Here are a collection of Errors, that are often the cause of a broken MIDI remote scripts and how they can be fixed.

AssertionError: Registry key (177, 1) registered twice. Check Midi

Reason for this error When two or more controls have been set to the exact same MIDI Messages (channel, type, value) and are grouped in the same mode. This error doesn't give you details of which mapping is duplicated so you unfortunately have to manually check them yourself.
How to fix import your script back into the Remotify App and check for duplicated MIDI messages.
Example 21993 ms. RemoteScriptError: AssertionError
21993 ms. RemoteScriptError: :
21993 ms. RemoteScriptError: Registry key (177, 1) registered twice. Check Midi

IndexError: Index out of range

Reason for this error When your MIDI remote script is trying to use a control on a specific track or device number but your Ableton Live project doesn't have amount many tracks or devices on a track. i.e. your script is trying to use the volume on track 9 but your project currently only has 6 tracks. We have released a number updates designed to prevent this error from occurring so it shouldn't be as common these days.
How to fix A quick fix would be to add enough tracks/devices to your project to prevent the error or remove the control causing the error if you don't need it. Please contact us if you do see an 'Index out of range' error and include the log.txt error.
The first line in the following example error tells us that the script is expecting to find a specific device number (2) on the selected track but is throwing an error as the selected track doesn't contain that many devices.
Example 25129 ms. RemoteScriptError: self.song().view.select_device(self.song().view.selected_track.devices[2])
25129 ms. RemoteScriptError: IndexError
25129 ms. RemoteScriptError: :
25129 ms. RemoteScriptError: Index out of range
25129 ms. RemoteScriptError:

AttributeError

Reason for this error The code generated by Remotify is either 1. malformed/requires a fix out our end 2. the code is adding an attribute which isn't available in the version of Ableton Live that you're using.
How to fix Please contact us including the error in your log.txt file. We also recommend you to update to the latest minor version of Ableton Live.
In the following example, a Session box is being added but the version of Ableton Live that's attempting to run it doesn't have the '_enable_skinning' attribute available. This wan't included in the Ableton Live until version 9.1.3.
Example 73294 ms. RemoteScriptError: AttributeError
73294 ms. RemoteScriptError: :
73295 ms. RemoteScriptError: 'SessionComponent' object has no attribute '_enable_skinning'

If you're still stuck, feel free to contact us with your findings and we'll do our best to help you resolve it.

"If you’re new to scripting in Ableton, this tool is a must.

It will not only save you a massive headache, but also allows you to learn how it works as you go since Remotify also gives you an uncompiled “.py” version of the files so you can have a look at the code.

This app will make basic mapping tasks a breeze."

Matias,
DJ Techtools

"Controllers are great! But sometimes you wish to customize a few knobs.
Before Remotify, you had to be a programmer to create an Ableton script.
Today, us mere mortals can go online to Remotify and use their dead simple, drag and drop script creator.

It literally takes a few seconds to have custom control of Ableton!
In the time it took you to read this, you could have created your own custom Ableton Script for that controller sitting in front of you!"

Antonio Sage,
Certified Ableton Instructor & Creative Director at AudiOutlaw

"Thanks again. It is working great! I'm running 2x DS1s to extend control over 16 channels and your Remotify app has enabled me to tailor the functionality and workflow in a way that I couldn't achieve otherwise. Thank you!"

Jap_

"Thank you so much for your support! It's nice to see how active you are and willing to help out customers on an individual basis. Can't wait to see how this project will evolve with all those exciting possibilities coming up. It has already evolved a lot since a few weeks ago when I discovered Remotify."

Oneiroi

Ready to get started?

Create your own perfect Midi Controller integration for Ableton

Become a Pro Now