PreSonus StudioLive API

Posted

 

 

 

 

EDIT: 14th November 2020 - An updated version of this post can be found here

 

 

 

 


 GitHub: featherbear/presonus-studiolive-api/tree/e5b00cda55dd485223cf688c73b779a3d21843f4

I wanted to add functionality to the PreSonus StudioLive 16 Series III console. For example, to fade the level of a channel instead of instant (un)muting.
There is no MIDI interface for the console - so we would have to emulate the network messages sent from their UC Surface app.

Connection

The console listens on TCP 53000

KeepAlive packets are sent periodically every 1 second.

Packet

Each packet starts with 0x55 0x43 0x00 0x01
Followed by the length (short) (little-endian) of the payload
Followed by a message code (2 bytes)
Then some sort connection verification __ 0x00 __ 0x00

Message Codes

API Event NameASCIIByte Code
KeepAliveKA0x75 0x65
HelloUM0x85 0x77
JSONJM0x74 0x77
SettingPV0x80 0x86
Settings2PL0x80 0x76
FileResourceFR0x70 0x82
FileResource2FD0x70 0x68
UNKNOWN_REPLYBO0x66 0x79
CompressedUnknownCK0x67 0x75

Metering

Metering data is transmitted via UDP from the console, to a port requested by the client.

The metering data looks something like this:

0-34-56-77-1112-1516-1920…
headlengthcodeconnlevl???data

The length bytes don’t seem to match up with the size of the payload.
And I don’t know that bytes 16-19 refer to

Continue reading

Previously

More posts

Wyse CX0 C10LE

Second-hand thin clients!

Posted

Screen Protectors

An endless cycle of buying screen protectors

Posted