Parameters not showing up
Hi there,
First off, this library is awesome 🔥
I have it up-and-running with Ableton 11. I'm able to scan the set, etc. But for some reason, when I examine the devices on a track, the parameters list is always empty. I can't get it to show params for any device I try. Any ideas why this would be? Are there restrictions on the kinds of devices / params that can be read?
Any pointers would be greatly appreciated 🙏
hi @sophiaas! small world 🪐 I came here to report the exact same thing.
yeah... this device parameter thing has huge potential for workflow, sound exploration, and A/V synchronization.
same here. i was able to get the track and device names but set.tracks[N].devices[M].parameters returns an empty list...
same here. i was able to get the track and device names but set.tracks[N].devices[M].parameters returns an empty list...
iWebster28's commit f441c1c worked for me. Thanks!
Thanks for the comments/suggestions, and apologies @sophiaas for the slow response - due to work commitments, I am only able to work on some projects in a somewhat bursty cadence...
I've now merged @iWebster28's fix, and will also do some iteration on this shortly so that parameters can be scanned more efficiently. As @TylerMclaughlin says, there is massive potential in exploring parameter spaces via this kind of interface!
I've just pushed some updates to AbletonOSC and pylive that enable lightning fast scanning of device parameters, with an example script that randomises the parameters of devices within your set - really fun for generative param exploration. If anyone has a change to test it, I'd appreciate it!
You'll need:
- the latest git commit of AbletonOSC
- the latest git commit of pylive (not the pypi version)
The example is here. At the moment, it randomises every parameter of every device, which is a bit extreme but useful for testing. I'll perhaps add some command-line flags to let you be more selective...
If it does or doesn't work for you, let me know what system you're on (macOS/Windows and the Live version). Thanks!
This looks like a great lib ! I have tested the device parameters example, it works great with the default scan mode (file), but if we use the network scan mode it returns 0 parameters.
set = Set(scan=False)
set.scan(mode="network")
Thanks @sahbic. You're absolutely right... this refactor disabled scanning device parameters when network mode is used, which was unintentional. The reason it doesn't happen by default is because it typically takes a whole bunch of extra queries to scan parameters, which slows the process down.
If you want to do this, you can replace set.scan(mode="network") with set._scan_network(scan_device_parameters=True).
I'll look at adding an additional arg to scan() to expose this.