featherbear / presonus-studiolive-api

Exploring the PreSonus network control protocol from a StudioLive Series III
https://featherbear.cc/presonus-studiolive-api/
46 stars 13 forks source link

Awesome Work & Questions #48

Open rltvty opened 11 months ago

rltvty commented 11 months ago

I just found this project, and wanted to say Thank You!

I've also been working on reverse engineering this API for quite some time. Besides my "StudioLive RM16 AI" I also have a bunch of StudioLive PA speakers that use the same basic protocol. Actually I first worked on reverse engineering the speakers and then found that the mixer speaks something similar.

This is my repo: https://github.com/rltvty/sl-room-control

I haven't worked on that project in quite some time now, but I restarted the work in a go-lang project I've started recently.

Your documentation on the protocol has been especially helpful. Thanks for this! I probably would have never figured out the zlib compressed json return after subscription initiation.

With the speakers, after the subscribe request is sent from the client, they return a payload of type ZM (not ZB), which I can successfully zlib decompress. However the compressed data seems to start at byte 18 (not 16).

As I learn more, I'll make some PRs on the Research part of your documentation.

Otherwise, are there any open issues that it would be helpful for me to investigate?

Thanks again for your work here!

bananu7 commented 11 months ago

@rltvty The compressed data in the ZM packet in the Revelator io24 is prepended by 4 bytes that look like size of something and two bytes of the zlib magic header. I was just working on that as well :) https://github.com/bananu7/ultimate_control