Capabilities Question: Control Surface State Storage in Live Set?
Hi there --
Awesome project!
I am looking into porting a M4L device I've made into a control surface script. One important capability that I would need would be some way to store state into the Live Set, and recall that state when opening. The use case is a control surface that can map its physical controls to some assignable item in the Live Set, e.g. assigning a physical button to selecting a device in the Live Set.
Is this something that is just in the Python control surface API? Or are there any clever hacks that people use?
Thank you :)
If it is working in M4L, what's your purpose in porting it?
On Thu, Mar 20, 2025 at 1:29 PM Zack Steinkamp @.***> wrote:
Hi there --
Awesome project!
I am looking into porting a M4L device I've made into a control surface script. One important capability that I would need would be some way to store state into the Live Set, and recall that state when opening. The use case is a control surface that can map its physical controls to some assignable item in the Live Set, e.g. assigning a physical button to selecting a device in the Live Set.
Is this something that is just in the Python control surface API? Or are there any clever hacks that people use?
Thank you :)
— Reply to this email directly, view it on GitHub https://github.com/ideoforms/AbletonOSC/issues/154, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHK2W65ZHJX74W3KOJJKPL2VL3F7AVCNFSM6AAAAABZOBQAAWVHI2DSMVQWIX3LMV43ASLTON2WKOZSHEZTMMJZGM4TQMY . You are receiving this because you are subscribed to this thread.Message ID: @.***> [image: zsteinkamp]zsteinkamp created an issue (ideoforms/AbletonOSC#154) https://github.com/ideoforms/AbletonOSC/issues/154
Hi there --
Awesome project!
I am looking into porting a M4L device I've made into a control surface script. One important capability that I would need would be some way to store state into the Live Set, and recall that state when opening. The use case is a control surface that can map its physical controls to some assignable item in the Live Set, e.g. assigning a physical button to selecting a device in the Live Set.
Is this something that is just in the Python control surface API? Or are there any clever hacks that people use?
Thank you :)
— Reply to this email directly, view it on GitHub https://github.com/ideoforms/AbletonOSC/issues/154, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHK2W65ZHJX74W3KOJJKPL2VL3F7AVCNFSM6AAAAABZOBQAAWVHI2DSMVQWIX3LMV43ASLTON2WKOZSHEZTMMJZGM4TQMY . You are receiving this because you are subscribed to this thread.Message ID: @.***>
To avoid the step of adding it to each project.
Makes sense.
Just from my experience, I'm not sure it will be worth the effort. I'd guess that it would take at least four hours to get things setup and tested (and even that is a super aggressive estimate if I'm doing it).
I'm not questioning your coding skills. It is just that the control surface logic is, at best, poorly documented.
Unless it is going into hundreds of projects, I'm not sure you'd get the return in terms of saved time.
That said, you would learn the control surface implementation.
On Thu, Mar 20, 2025 at 5:09 PM Zack Steinkamp @.***> wrote:
To avoid the step of adding it to each project.
— Reply to this email directly, view it on GitHub https://github.com/ideoforms/AbletonOSC/issues/154#issuecomment-2741665513, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHK2W4HMW4ZGTUWTATJELT2VMVA5AVCNFSM6AAAAABZOBQAAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDONBRGY3DKNJRGM . You are receiving this because you commented.Message ID: @.***> [image: zsteinkamp]zsteinkamp left a comment (ideoforms/AbletonOSC#154) https://github.com/ideoforms/AbletonOSC/issues/154#issuecomment-2741665513
To avoid the step of adding it to each project.
— Reply to this email directly, view it on GitHub https://github.com/ideoforms/AbletonOSC/issues/154#issuecomment-2741665513, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHK2W4HMW4ZGTUWTATJELT2VMVA5AVCNFSM6AAAAABZOBQAAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDONBRGY3DKNJRGM . You are receiving this because you commented.Message ID: @.***>
Thanks for the info.
As for the original question -- is there a facility in Live for the control surface to store and retrieve state from the Live Set?
If I understand the question, it is the same as M4L. The Live Object Model is available to the control surfaces. The syntax is a little different, but the structures and interaction patterns are consistent.
On Thu, Mar 20, 2025 at 5:19 PM Zack Steinkamp @.***> wrote:
Thanks for the info.
As for the original question -- is there a facility in Live for the control surface to store and retrieve state from the Live Set?
— Reply to this email directly, view it on GitHub https://github.com/ideoforms/AbletonOSC/issues/154#issuecomment-2741683182, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHK2W5HSUQDRWLYVI63B332VMWFVAVCNFSM6AAAAABZOBQAAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDONBRGY4DGMJYGI . You are receiving this because you commented.Message ID: @.***> [image: zsteinkamp]zsteinkamp left a comment (ideoforms/AbletonOSC#154) https://github.com/ideoforms/AbletonOSC/issues/154#issuecomment-2741683182
Thanks for the info.
As for the original question -- is there a facility in Live for the control surface to store and retrieve state from the Live Set?
— Reply to this email directly, view it on GitHub https://github.com/ideoforms/AbletonOSC/issues/154#issuecomment-2741683182, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHK2W5HSUQDRWLYVI63B332VMWFVAVCNFSM6AAAAABZOBQAAWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDONBRGY4DGMJYGI . You are receiving this because you commented.Message ID: @.***>
To put some context to my question ... Let's take the assignable device-selector button in the control surface.
The user has mapped a button to select or bring focus to a given device. This mapping is stored as the 'path' (in the Live Object Model sense) to the device, and is updated if the device is moved in the set.
In the M4L device, I can use a hidden [live.text] object to store that path. Since it is a parameter in a device, its value is saved with the Live Set and recalled when the Set is loaded in the future. The M4L device treats this as its internal state storage.
So my question is if you know if there exists a mechanism for a control surface script to store and reacall its own internal state in a Live Set. If so, that would allow for the use case above, where the control surface is customized for each Live Set that it is in, and the desire is for that customization to be recalled with each Live Set.
I don't know of any way to achieve this, I'm sorry to say. Closing as not strictly relevant to the project. Thanks!