Ableton released a new version of Live today, version 9.13. Some of you unwittingly already have it due to the wonderful “autoupdate” feature of Live 9. Many of you that use non-Ableton-endorsed remote scripts (like mine) are wishing right now that you had known that it was possible to turn this wonderful autoupdate functionality off in Live’s preferences…..
I found out last week, just as I was finishing up work on the hex mod for Codec, that there were some problems with our scripts in the new beta build of Live, which was the release candidate that would become their official release today. My first reaction was, hrmphhh. Whatever. Then I looked a little deeper. And then I started to get uncontrollably depressed. They’d done it again….screwed everything up. Before I’d even properly recovered from the last major release. C’mon, guys, really???
Besides changing a bunch of arbitrary things that really didn’t need to be touched (which are easily fixed, but irritating all the same, and basically makes it impossible to have cohesive scripts that work in more than a single subrelease of Live), they “fixed” a bug that had been present since the introduction of Live 9, even back in the prelease betas.
That bug, which caused Live’s Python engine to completely disconnect and reload all it’s Python scripts every time one was inserted or removed, had actually been the cause of much elation on my part when Live 9 was first released. Why? Why am I so excited about a bug? Well, basically, because it fixed another problem that Ableton or Cycling had never taken the time to address: there is no implementation for a way to be notified in m4l that a Python script has been added or removed from Live’s preferences. It’s kind of a big deal: if I load an m4l patch in Live, and that patch is expected to connect to a particular control surface script, but the script isn’t currently loaded in Live’s prefs, then it can’t connect. But since there’s no way for us to bump the patch when a change has been made to Live’s prefs, the only way we can ever connect is to have the patch sit there and poll the LOM over and over until one finally appears. This is very undesirable, epecially considering it would be VERY doable to implement something on their end to deal with this. ControlSurface.connect_script_instances() is called every time Live’s preferences change, so there’s already hook in place….it’s just never been implemented.
Another irritating coincidence of the “bugfix” was that my Debugger was no longer capable of invoking a complete reload() of all the Python modules in a running instance of Live, which means that every time I edit a script I have to completely restart Live in order to check the change. This, of course, means development time is greatly increased (as well as my blood pressure, I’m afraid).
Bottom line: instead of finishing up all the mods for the ALREADY COMPLETED 9.12 scripts this week, I had to back up and completely rewrite my connection routines for mods, make a bunch of bugfixes for general Python incompatibilities, and rewrite my Debug script from scratch. Happily, I’m pretty much done with that at this point….but I thought I’d mention it…since…its….taking….so….freaking….long.
Back on track, maybe we’ll git’r’dun this weekend. Thanks for your support 😉