QL Series SCP commands

Hi all. Our museum has recently purchased a QL console for its studio spaces. I am programming a Medialon control system for our various venues and I’m hoping to get the QL added with basic channel control. For those unfamiliar, Medialon is a show/building control software. In any case, I came across the streamdeck companion module on github and it led me here. Is anyone familiar with the network based command protocol for the QL? Unfortunately, I do not have access to the console right now as I’m working from home, but I was hoping to get some clarification on the protocol so I can start making a driver for it for testing. I have looked around online and haven’t found anything definitive. If anyone has any experience with the QL and its network commands and can provide some documentation or examples, I would really appreciate any assistance you can provide. Thanks

Sure - what do you need?

I plan to do channel volume control, channel volume level status monitoring, mute/unmute on channels. Maybe console power monitoring, if possible. I want it to be basic for those less tech savvy folks that will be using it. I don’t know the full extent of it yet, but I imagine it being simple like this. Appreciate the quick response. Thanks

Never heard of Medialon, but I looked at the website.

Yamaha has me under an NDA for the SCP protocol ATM, so I can’t just send you the docs (even though I don’t know what’s really proprietary about it)

But, more importantly, can you create custom commands in Medialon?
How are your device control programming skills?

I understand. In Medialon, I add the device, set it as TCP client, input its IP address and port. I add command strings (with a carriage return) I want in a list and add them to the project that way. Alternatively, you can test commands by just sending the command with a generic “send frame” option and monitor frame responses from the device to see if it’s working. In Medialon, my device control programming is pretty good, but outside of that I’m not great. I usually just research the protocol and build the device in Medialon that way and incorporate it into my project.

Well, you should then be able to figure out what you need from my code on the GitHub page.
The port is 49280 and all the SCP commands are listed in “CL5 SCP Parameters-1.txt

It’s all text-based, much like OSC, so if you’ve done any OSC or Text-based comms in the past, it should be fairly easy.

Like I say, I can’t send you the docs, but if you contact Yamaha pro audio customer service, they’ll probably just send them to you if you tell them why you need them.

Give it a try and let me know if you have any questions. Good luck!

Thanks. I called their support today and the guy was really not much help, unfortunately. In looking at the command:

“MIXER:Current/StIn/Fader/Level” 16 1 -32768 1000 -32768

What are the values towards the end? Do they indicate channel number, level, min/max of the fader?

Command/X/Y/Minimum Val/Maximum Val/Default Val

X is the number of X parameters available, Y is the number of Y parameters available.

In the case of your example, there are 16 Stereo Input faders, Y=1 so there is no 2nd parameter.
-32768 is the minimum fader value, 1000 is the maximum, and -32768 is the default value.
In this case the values are in db x 100.
1000 = +10db. -3000 = -30db. -32768 is actually -infinity.

The Y value is used for commands that have 2 sets of parameters, like:

"MIXER:Current/InCh/ToMix/Level" 72 24 -32768 1000 -32768

72 channels, 24 mixes e.g.:

"MIXER:Current/InCh/ToMix/Level" 45 16 0" 0x0A

“Set channel 45 to 0db in Mix 16”

Thanks again. I hope to give it a try this week. I also put in an email with Yamaha about obtaining the protocol docs, so we’ll see…

I assume you’re in the USA?
https://usa.yamaha.com/support/contacts/audio_visual/index.html

Try the chat or phone #.

I talked to someone that was a lot more helpful. Apparently the person that is responsible for distributing the commands is no longer with the company, so they’ll get back when they figure out that distribution process. In the mean time, he pointed me to python scripts for the TF series on their website.

I was able to try the commands today and they work great through Medialon. Does the SCP protocol support Get commands for status polling?

1 Like

Yes, replace “Set” with “Get”, and just send X Y with no value.
Console will respond “OK Set…” with the value.

Console also sends “Notify Set…” if you change a setting on the console.
If you send it a “Set” command, it responds with “OK Set…”

1 Like

Awesome I’ll give it a shot now that I can from home. Thanks for all your help on this!

This has been working great so far, but I have a question about recalling scenes. Is there a way to query with a get command to see the current board scene? I have the scene commands working and get notified on the change that occurs on the console, but haven’t had any luck sending a command to monitor scene statuses. Any idea if this is possible? I think I’m just missing something with the command syntax.

sscurrent_ex MIXER:Lib/Scene

Resonds:

OK sscurrent_ex MIXER:Lib/Scene n modified

or

OK sscurrent_ex MIXER:Lib/Scene n unmodified

where n is the current scene #.

Great. I sent sscurrent_ex MIXER:Lib/Scene!0D!0A and it returned OK sscurrent_ex MIXER:Lib/Scene 0 modified

I think that’s what I needed.
THANKS!

I don’t think you need anything after sscurrent_ex but I could be wrong.

It wasn’t working for me without that.

You’re right. I hadn’t looked at it in a while.

sscurrent_ex MIXER:Lib/Scene

is the command.