PreSonus StudioLive API (2019)
Perhaps around three years ago, I started a project to reverse engineer PreSonus' StudioLive API Protocol (which to my correction is called UCNET; but purposefully kept as the former for sentimental value). Having absolutely zero documentation available on the internet, I dived deep into a rabbit hole of reverse engineering a proprietary network protocol - not knowing how data payloads were structured, nor any of the connection errata (protocol, handshake, etc…).
With other things in life like university, work, and the fact that I only had access to a StudioLive console for a day or two each month - it meant that progress was going to be very slow. I did however manage to obtain good progress, figuring out rudimentary ways to parse packet data, communicate with the console, and even getting so far as receiving channel metering data.
But eventually, without constant access to a console and general “in over my head”-ness, I left the project stale
PreSonus StudioLive API - Again (2020)
A year later, I noticed that some people had actually been requesting for some sort of API integration to their own PreSonus StudioLive III consoles! Oh - my project could come in handy then! With COVID-19 seemingly easing off (oh how we were wrong), I was able to get access to my console again, and resume my reverse engineering efforts. I ported my experimental client to TypeScript so that it could also interface with open source Bitfocus Companion application, which extends the functionality of a Streamdeck. It works, but the API specifications were inconsistent and difficult to use.
PreSonus StudioLive API - Again - Again (2022)
In late 2021, I purchased a StudioLive 16R rackmount mixer that will eventually find its home in a portable livestreaming rig - but whilst the parts were being shipped (COVID-19 strikes again with impacts on delivery logistics), I took the opportunity to take more time to look at the protocol. After a breakthrough in the packet structure for one of the message types, I was able to able to properly implement a bunch of core features that previously blocked development (i.e. Mute toggle and volume control!). With those features FINALLY implemented 🥳 I’m happy to announce the release of (the still alpha, but stable) API v1.0.5!
GitHub: featherbear/presonus-studiolive-api/releases/tag/v1.0.5
I’m currently in the process of updating the website documentation, as it’s currently looking quite barren and ugly.
EDIT: And now it’s ready! Have a look here: featherbear.cc/presonus-studiolive-api
I’ve also updated my integration for the Bitfocus Companion - whilst it’s not published yet, you can manually add it to your development instance of Companion :)
PreSonus StudioLive API - Again - Again - Again (Late 2022)
I’ve finished my year-long thesis! So with some breathing time, I’ve made some more crucial improvements!
You can view the progress update posts with the link cards below :)