These are a feature of ClyphX Pro (MSG and PUSH MSG), which Stray documents in ExampleActions.py as being part of (Ableton's) ControlSurface script:
Additionally, there are a couple of other methods and attributes of UserActionsBase that
you should be aware of and that are demonstrated below:
(1) - self.song() - returns the current Live set object.
(2) - self.canonical_parent - returns the ControlSurface (parent) object that has loaded
the ClyphX_Pro library. Through this object, you can access two useful methods:
(a) - log_message(msg) - Writes a message to Live's Log.txt file.
(b) - show_message(msg) - Shows a message in Live's status bar.
The author actually recommends just using the API directly, and then links to the LOM:
I would not recommend the _Framework anyway, because it is an abstraction further from the API itself. To get going, simpler, less abstract calls to the API would be better.
However the LOM doesn't mention the show_message function and attempting to call it in the following ways fails:
These are a feature of ClyphX Pro (
MSG
andPUSH MSG
), which Stray documents inExampleActions.py
as being part of (Ableton's)ControlSurface
script:Decompiling parts of ClyphX Pro reveals that Stray imports this
from _Framework.ControlSurface
, and ControlSurface.py does indeed contain ashow_message
function.A quick search for "live MIDIRemoteScripts _Framework" leads to Ableton Forums - MIDI Remote Scripts. The discussion there recommends reverse-engineering others' scripts and links to Selected Track Control for Ableton Live which does make use of show_message, though without importing from
_Framework.ControlSurface
first.The author actually recommends just using the API directly, and then links to the LOM:
However the LOM doesn't mention the
show_message
function and attempting to call it in the following ways fails:deviceTrackObj.canonical_parent.show_message(...)
setObj.canonical_parent.show_message(...)