Use Live API
Hi remotify,
I wonder if it is possible to use the full Live API within Remotify, or can we only use a subsection of it (maybe we can only use what has been added so fare)?
I found this
https://nsuspray.github.io/Live_API_Doc/11.0.0.xml#Live-Browser
I’m trying to list my User folders from Lives browser with this code
myUser_folders = self.application().browser.user_folders
my_sub_item_1 = myUser_folders.children[0]
But I’m getting this error message
> ‘BrowserItemVector’ object has no attribute ‘children’
I’m not sure if the syntax is correct or if something else is preventing it from working.
If it’s available in the Live Object Model, you can use it even if its not listed in a Reaction menu.
It sounds like adding .children[0] is not the correct syntax.
Hi JohnC,
Thanks for getting back to me!
So I have this code in a reaction, and it works (It lists all my User Folders in Ableton, and its contents).
self.user_folders = self.application().browser.user_folders
for folder_index, user_folder in enumerate(self.user_folders):
self.log_message(“user_folder [index:” + str(folder_index) + “] [name:” + user_folder.name + “]”)for index, browser_item in enumerate(user_folder.children):
self.log_message(“browser_item [index:” + str(index) + “][name:” + browser_item.name + “][is_folder:” + str(browser_item.is_folder) + “][is_loadable:” + str(browser_item.is_loadable) + “][is_selected:” + str(browser_item.is_selected) + “]”)
This is a section of the generated output in the log (Folder and file names in bold)
2025-05-31T17:56:52.275757: info: Python: INFO:_Framework.ControlSurface:275 – LOG: (css_remove_neon) user_folder [index:0] [name:LiveDJ]
2025-05-31T17:56:52.275831: info: RemoteScriptMessage: (css_remove_neon) user_folder [index:0] [name:LiveDJ]
2025-05-31T17:56:52.395226: info: Python: INFO:_Framework.ControlSurface:395 – LOG: (css_remove_neon) browser_item [index:5][name:8B_126_Donna Summer – I Feel Love_PN.als][is_folder:False][is_loadable:True][is_selected:False]
2025-05-31T17:56:52.395250: info: RemoteScriptMessage: (css_remove_neon) browser_item [index:5][name:8B_126_Donna Summer – I Feel Love_PN.als][is_folder:False][is_loadable:True][is_selected:False]
Now that I have folder and file names I would like to be able to load the Clip Pack e.g “8B_126_Donna Summer – I Feel Love_PN.als” into Session View and I have found this API
load_item() #Method
load_item( (Browser)arg1, (BrowserItem)arg2) → None
Loads the provided browser item.
Location of Live API
https://nsuspray.github.io/Live_API_Doc/11.0.0.xml#Live-Browser
As I’m not sure how to apply this API (I have tried and failed to construct) I wonder if you have some insight or some suggestions how to use the API I would appreciate it!
Joachim
I had some help here…
Unfortunately it would appear that one can’t load Clip Packs (.als) this way, but it works for devices, clip_slots, samples, .wav file etc.
I have User Folders (added in Ableton) ‘LiveDJ’, ‘Songs’ etc. where I have some .wav files.
So if the code example from previous post is use, it generates something like this in the log (I have removed a lot of log text and cleaned it up a bit).
LOG: (Reloop) user_folder [index:0] [name:LiveDJ]
info: RemoteScriptMessage: (Reloop) user_folder [index:0] [name:LiveDJ]<Content of folder ‘LiveDJ’ with index:0>
LOG: (Reloop) user_folder [index:1] [name:Songs]
info: RemoteScriptMessage: (Reloop) user_folder [index:1] [name:Songs]LOG: (Reloop) browser_item [index:0][name:Diana Ross – I’m Coming Out.wav][is_folder:False] [is_loadable:True][is_selected:False]
info: RemoteScriptMessage: (Reloop) browser_item [index:0][name:Diana Ross – I’m Coming Out.wav] [is_folder:False][is_loadable:True][is_selected:False]LOG: (Reloop) browser_item [index:1][name:Kygo – Higher Love.wav][is_folder:False][is_loadable:True][is_selected:False]
info: RemoteScriptMessage: (Reloop) browser_item [index:1][name:Kygo – Higher Love.wav][is_folder:False][is_loadable:True][is_selected:False]
This is the API to use ‘self.application().browser.load_item(browser_item)’
So to load ‘Diana Ross – I’m Coming Out.wav’ from folder ‘Songs’ use this code (e.g. placed in a Remotify Reaction)
# Where in Ableton’s browser is the file locate
my_sample = self.application().browser.user_folders[1].children[0]# Where to place it, track 1 clip slot 3
self.song().view.highlighted_clip_slot = self.song().tracks[0].clip_slots[2]# Load the .wav file into selected slot
self.application().browser.load_item(my_sample)
Edit. Noticed that I forgot the last line of code (the one that actually copies the .wav file into the selected clip slot)
Edit 2. Added export of 2 pads Reactions in order to make it easier to try to replicate this.
PS
It would be nice if Remotify could get some kind of wiki where users could upload examples and write short descriptions etc.
I tried to edit my previous post and add an Remotify export but it would not take so I’ll try with a new post.
Sign up
User registration is currently not allowed.
Awesome mate, thanks alot for sharing your findings on this!