A&H SQ5 remote start mAirlist

Dear all,

In our studio we are currently using a Allen & Heath SQ5, which is quite OK. The only issue is that while trying to remote start players in mAirlist via MIDI, it seems like the SQ5 is sending all values for all faders if any update on any of the faders.

Do anyone have any experience with the SQ5 in combination with mAirlist?

Thanks in advance!
Thomas

Sorry, we (mAirList) hav no experience with this hardware.
Maybe someone else of the community?

I don’t have any experiance either but even if SQ5 updates all faders if one is moved, it still should work with mAirlist. The only downside, you need to assign manually, you can’t use the Midi-Learn funktion of mAirlist.

Thanks guys for your response.
Using the Midi monitor, the information recieved is just too much for me to recognize what could represent which fader. Ill raise the question in A&H forums as well =)

Dear all, just found that the SQ is transmitting four messages pr. update.
Is it possible to remote control with MIDI based on two messages? I need to define if a channel (msg 2) has a new value(msg3), determine wether this value is greater than a defined value in the config.

My initial thoughts:
$channel = data 2 of message 2 (B0 62 00)
$value = data 2 of message 3 (B0 06 00)

if($channel = 00 && $value >= 11){
PLAYER 1-1 START
}

Please see below examples.

Example 1
01724AE8   1   2     B0    63    40    1  ---  CC: NRPN MSB            <- Mix 
01724AEA   1   2     B0    62    00    1  ---  CC: NRPN LSB            <- Channel
01724AEA   1   2     B0    06    1A    1  ---  CC: Data Entry MSB      <- Coarse Value
01724AEA   1   2     B0    26    72    1  ---  CC: Data Entry LSB      <- Fine Value
Channel 00 with a value of 1A 
-> Fader 1 all the way down?


Example 2
01725631   1   2     B0    63    40    1  ---  CC: NRPN MSB            <- Mix     
01725631   1   2     B0    62    00    1  ---  CC: NRPN LSB            <- Channel
01725631   1   2     B0    06    7F    1  ---  CC: Data Entry MSB      <- Coarse Value
01725632   1   2     B0    26    0A    1  ---  CC: Data Entry LSB      <- Fine Value
Channel 00 with a value of 7F, higher than hex 1A


Example 3
01735327   1   2     B0    63    40    1  ---  CC: NRPN MSB            <- Mix   
01735327   1   2     B0    62    02    1  ---  CC: NRPN LSB            <- Channel
01735327   1   2     B0    06    6C    1  ---  CC: Data Entry MSB      <- Coarse Value   
01735328   1   2     B0    26    6C    1  ---  CC: Data Entry LSB      <- Fine Value
Channel 02 with a value of 6C.
-> Fader 3?

Well according to the users guide, thers is only 1 CC value per fader.
https://www.allen-heath.com/media/SQ_ReferenceGuide_V1_3_0.pdf#page=79
As well as Note on/off events for some buttons.

The SQ uses NRPN control for most parameters, which is a series of 4 CC messages. The exception is Scene control which uses Bank & Program Change messages.

Ah support

Built-in MIDI remote can only process a single message at a time.

The only way I see is to use a background script with the OnMidiMessage hook that reassembles these NRPN packets…

Something like this:

var
 nrpnMSB, nrpnLSB, dataLSB, dataMSB: byte;

procedure ProcessNRPN(parameter, data: word);
begin
  // do actual work here
end;

procedure OnMidiMessage(Device: integer; Status, Data1, Data2: byte);
begin
  if Status = $B0 then begin
    if Data1 = $63 then 
      nrpnMSB := Data2
    else if Data1 = $62 then 
      nrpnLSB := Data2
    else if Data1 = $06 then
      dataMSB := Data2
    else if Data1 = $26 then begin
      dataLSB := Data2;
      ProcessNRPN(nrpnMSB shl 7 + nrpnLSB, dataMSB shl 7 + dataLSB);
    end;
  end;
end;

Note the use of global variables to cache the received bytes.

This is also a very “optimistic” script as it expects the sender to behave “well” and not send any messages outside the order. Also, according to Wikipedia, the data LSB byte is optional, something which is not covered by this code.

2 Likes

Thank you Torben! Will Try :slight_smile: