XTA Crossover Control

At the bottom of this document is the spec, from XTA, for the serial protocol that the DP22[46] use. Unfortunately, it's a little incomplete.

Firstly, when a command says that the channel number is `not used' then you don't even send it. Secondly, the crossover requires a straight serial cable (not null-modem) and the baud etc is set via the menu control on the front. The default seems to be 38400, 8N1.

Command 60 returns a frame in the same format as the command format given below except that the first byte is 0xa8. The channel byte isn't sent and the data consists of 8 bytes of level - one for each channel (1 to 6, A and B).

Update:

XTA Application Note # 108

Retrieving mute status from a DP224 / DP226 via RS232/485

Units: DP224, DP226

Using command 50 to upload data from units.

Structure: [Hd][CntH][CntL]

Hd = f0h (No Acknowledge)
CntL = 8 (message length-1) CntH = 0
dev = 98 (DP226), 96 (DP224)
unit =  1 to 32
format = 0
cmd = 50
chan = 0
check=Checksum = sum of all bytes AND 7fh

DP226 returns 235 bytes with Mute status in byte number 42

DP224 returns 169 bytes with Mute status in byte number 32

Mute Status Byte [00fedcba]
       Bit (a) = Output 1 mute Status (1=Mute, 0=Unmute)
       Bit (b) = Output 2 mute Status (1=Mute, 0=Unmute)
       Etc.

Example Commands:
Upload Data from DP224 with unit ID 1
       [f0][00][08][60][01][00][32][00][0d]

Upload Data from DP226 with unit ID 5
       [f0][00][08][62][05][00][32][00][13]

The following is XTA's own protocol documentation...

DP226 & DP224 Remote Protocol

31st January 2000

Introduction

Both the DP226 and DP224 can be remotely controlled via the MIDI, RS232 or RS485 interfaces. The MIDI interface is an input only connection and can therefore not return any information from the units. The RS232 and RS485 interfaces allow full bi-directional control. Although only the RS485 interface allows multiple units to be controlled simultaneously, it is possible to communicate with a single device via the MIDI or RS232 interfaces and get this unit to relay all commands to its RS485 interface from which the other units may be connected.

Note: f0h refers to hexadecimal notation (f0h=240)

There are two different message structures one for MIDI that uses the system exclusive command and one for RS232 and RS485.

MIDI Structure [SYSEX][7fh][1bh][35h]<device><unit><format><cmd><chan><data>.................[E0X]

RS232/485 structure [Head][CntH][CntL]<device><unit><format><cmd><chan><data>.................[Chk]

Cmd

 

Data bytes

Chan

1

Delay

3

1-8, 7=A

2

Gain

2

1-8, 7=A

3

Mute

2

Not Used

4

Configuration

3

Not Used

5

Display

41 max

Not Used

6

HPF

2

1-6

7

LPF

2

1-6

8-23

PEQ section 1-16

4

1-8, 7=A

24

Limiter

2

1-6

25

Phase

1

Not Used

26

Store This Input

77

Not Used

27

Recall Memory

1

Not Used

28

Name Memory

17

Not Used

29

Lock Units

21

Not Used

30

Erase Memory

1

Not Used

31

Store This Output

215

Not Used

32

System Mute

1

Not Used

33

Automatic Limiters

1

Not Used

34

Reset Input Eq.

1

Not Used

60

Request Meter Data

0

Not Used

Data Formats

 

[1] Delay

= 3 bytes (0000xxxx), (0yyyyyyy), (0zzzzzzz)

Delay in 2.6uS steps = 18bit word = 000000xx,xxyyyyyy, yzzzzzzz.

 

e.g. Set Output 3 of Unit ID 2 a DP226 to 2.5 milliseconds

MIDI =[f0h] [7fh] [1bh] [35h] [62h] [02h] [00h] [01h] [03h] [00h] [07h] [40h] [f7h]

RS =[f0h] [00h] [0bh] [62h] [02h] [00h] [01h] [03h] [00h] [07h] [40h] [2ah]

 

 

[2] Gain

= 2 bytes (0xxxxxxx), (0yyyyyyy) 14bit word=00xxxxxx.xyyyyyyy.

(0-550) = Attenuation in 0.1dB steps. (Below +15.0dB)

 

e.g. Set Input B of Unit ID 4 a DP224 to +1.8dB.

MIDI =[f0h] [7fh] [1bh] [35h] [60h] [04h] [00h] [02h] [08h] [01h] [04h] [f7h]

RS =[f0h] [00h] [0ah] [60h] [04h] [00h] [02h] [08h] [01h] [04h] [6dh]

 

[3] Mute

= 2 bytes (00fedcba), (000000hg)

a = Output 1 b=2 etc., g = Input A, h=Input B [0 = Norm,1 = Mute].

 

e.g. Mute Output 5 of all DP226s.

MIDI =[f0h] [7fh] [1bh] [35h] [62h] [00h] [00h] [03h] [10h] [00h] [f7h]

RS =[f0h] [00h] [09h] [62h] [00h] [00h] [03h] [10h] [00h] [6eh]

[4] Configuration

= 3 bytes (0cbbaaaa),(0000gfed),(0iiioooo)

Configuration = 0000aaaa (0-15) Subformat = 000000bb (0-3)

PrePost = c, 16Peq = d, Abswap = e, AutoLim = f, System Mute = g.

InGangMap = iii, OutGangMap= oooo;

 

[5] Display

= Displays a (ascii) message on unit screen (note: terminate with a zero)

 

[6] Highpass Filter

= 2 Bytes (0yyyyyyy),(00ww0zzz)

Freq = (0000000w,wyyyyyyy). (0-511) see frequency table.

Type = (00000zzz) (0-6) (0=12dB Bessel, 1=12dB Butterworth,

2=18dB Bessel, 3=18dB Butterworth,

4=24dB Bessel, 5=24dB Butterworth

6=24dB Linkwitz-Riley).

 

e.g. Set Output 1s highpass filter of Unit ID 5 a DP224 to 1kHz, 24dB Butterworth.

MIDI =[f0h] [7fh] [1bh] [35h] [60h] [05h] [00h] [06h] [01h] [7ch] [15h] [f7h]

RS =[f0h] [00h] [0ah] [60h] [05h] [00h] [06h] [01h] [7ch] [15h] [77h]

 

[7] Lowpass Filter

= 2 Bytes (0yyyyyyy),(00ww0zzz)

see Highpass filter

 

[8-23] PEQ sections

= 4 bytes (0wwwwwww),(000bxxyy),(0zzzzzzz),(0qqqqqqq)

Parametric sections are in a logical order.

Q=0qqqqqqq (0-127) see Q table.

Freq = 0000000y,yzzzzzzz (0-511) see frequency table.

Gain =0000000x,xwwwwwww (0 - 405) see filter gain table.

Bypass = b (0=normal, 1=bypassed)

 

e.g. Set PEQ 3 of Output 3 on Unit ID 5 a DP226 to 1k89Hz, +2.8dB Q 4.0

MIDI =[f0h] [7fh] [1bh] [35h] [62h] [05h] [00h] [0ah] [03h] [7ah] [02h] [1dh] [3ch] [f7h]

RS =[f0h] [00h] [0ch] [62h] [05h] [00h] [0ah] [03h] [7ah] [02h] [1dh] [3ch] [45h]

 


[24] Limiter

= 2 Bytes (00wwwwww),(0yyyyyzz)

Level = (00wwwwww) (0-63) dBs below 22dB

Attack = (000yyyyy) (0-20) see attack table

Release = (000000zz) (0-3) see release table

 

e.g. Set Limiter of Output 4 on Unit ID 1 a DP226 to +16dB, 4mS Attack 32mS Release

MIDI =[f0h] [7fh] [1bh] [35h] [62h] [01h] [00h] [18h] [04h] [08h] [21h] [f7h]

RS =[f0h] [00h] [0ah] [62h] [01h] [00h] [18h] [04h] [08h] [21h] [22h]

 

[25] Phase

= 1 byte (00fedcba)

a = Output 1, b=2 etc., (0 = Norm,1=Invert.)

 

e.g. Invert Phase on Outputs 1,2 and3 Unit ID 3 a DP224.

MIDI =[f0h] [7fh] [1bh] [35h] [60h] [03h] [00h] [19h] [07h] [f7h]

RS =[f0h] [00h] [08h] [60h] [03h] [00h] [19h] [07h] [7bh]

 

 

[26] Store this A (complete Input data)

= 77 bytes

locn(0-40)[1], mute+In16[1], gains[4], delays[6], gangmap[1], InPeq[64]*.

Locn 0=Current else Memory.

*= (arrange all peq's(8) for Input A then B)

 

[27] Recall Memory

= 1 byte (0yyyyyyy)

Memory = yyyyyyy (1-40)= Input Memories only 1-40

(65-73)= Input & Output Memories 1-9.

(97-105)=Output Memories Only 1-9.

e.g. Recall Input Memory # 12 to all DP226s

MIDI =[f0h] [7fh] [1bh] [35h] [62h] [00h] [00h] [1ah] [0ch] [f7h]

RS =[f0h] [00h] [08h] [62h] [00h] [00h] [1ah] [0ch] [1fh]

 

Note: To Globally recall a memory without regard for unit type or ID number, it is possible to use the MIDI Program change Command. This is acceptable via the MIDI or RS interfaces.

Format = [coh] [nnh]

e.g. Recall Input Memory # 15 to all connected devices

MIDI =[c0h] [0fh]

RS =[c0h] [0fh]

 

[28] Name Memory

= 17 Bytes (1st = Memory number as above) remainder = name

 

[30] Erase Memory

= 1 byte (0yyyyyyy)

Memory = yyyyyyy (1-40)= Input Memories only 1-40 {0=All Input Memories}.

(65-73)= Input & Output Memories 1-9 {64=All Memories}.

(97-105)=Output Memories Only 1-9 {96=All Output Memories}.

 

[31] Store this B (complete Output data)

= 215 bytes

locn(0-40)[1] ,config[2] ,gangmap[1], gains[12], delay[18], mute[1], phase[1] , Output filters+Lims[156]+Lock

Locn 0=Current else Memory.

*= (Arrange Hpf, Lpf, Peq(5),Lim for Out 1 then 2 etc.)

 

[32] System Mute

= 1 Byte (000000xy)

System Mute = x, Temp Mute=y .

 

[33] Automatic Time Constants (Limiters)

= 1 Byte

0=Manual Time Constants, 1=Automatic.

 

[34] Reset Input Parametrics

= 1 Byte

0= Input A only, 1= Inputs A & B.

 

 

Frequency table (12-409)

The frequency steps are 1/36 of an octave based at 7.8125 Hz.

To calculate frequency from the table value x: 7.8125 * 2(x/36)

i.e. 252=1kHz.

The Parametrics have a range of 48 - 408. (19.7Hz - 20k2Hz)

The HPF has a range of 12 - 396. ( < 10Hz (effectively bypassed) 16kHz).

The LPF has a range of 78 409. (35Hz 22kHz (effectively bypassed)).

 

Q table (0-102)

There are 101 Q values from 128 to 0.40.

To calculate the Q from the table value x : 0.25 * 2((108-x)/12)

i.e. 60= a Q of 4.0;

Note: a Q of 101 = Low shelf and a Q of 102 =High shelf.

 

Filter gain table (0 - 405)

For the values 0 to 400 these are 0.1dB steps below +15dB

i.e. 0=+15dB, 20=+13dB, 150=0dB, 400= -25dB.

Value 401= -26dB, 402= -27dB. 405= -30dB.

 

Attack table (0 - 20)

To calculate the Attack time from the table value x : 0.25 * 2(x/2)

i.e. 7=2.83mS.

 

Release table (0 - 3)

0= Attack x 4, 1= Attack x 8, 2= Attack x 16, 3= Attack x 32, 4= Attack x 2.

Site Map
/Root
     AlternateThe Weird and Wonderful
          BacklinksWhat are backlinks
          John GilmoreWhat's Wrong with Copy Protection
     ArchivesBlog Archives
          OneArchive 1
          TwoArchive 2
          ThreeArchive 3
          FourArchive 4
          FiveArchive 5
          SixArchive 6
          SevenArchive 7
          EightArchive 8
          NineArchive 9
          TenArchive 10
          ElevenArchive 11
          TwelveArchive 12
          ThirteenArchive 13
          FourteenArchive 14
          FifteenArchive 15
          SixteenArchive 16
          SeventeenArchive 17
          EighteenArchive 18
          NineteenArchive 19
          Twenty Archive 20
          Twenty OneArchive 21
          Twenty TwoArchive 22
          Twenty ThreeArchive 23
          Twenty FourArchive 24
          Twenty FiveArchive 25
          Twenty SixArchive 26
          Twenty SevenArchive 27
          Twenty EightArchive 28
          Twenty NineArchive 29
          Thirty Archive 30
     PhotosPoor People Caught on Film
          Jack and the Beanstalk Jack and the Beanstalk
          RIP ScanResults of a Stage Scan Fire
          YosemiteYosemite National Park
     ProjectsIncomplete things from the lab
          Seagull's BaneLinux Automounter
          bttrackdBitTorrent Tracker
          CAPTCHACAPTCHA CGI script
          ConservConsole Serving
          DeerparkUsing Tor with Firefox/1.1 (Deerpark)
          DNSFixFixing DNS
          XoversXTA Crossover Control
          IAFSArchive Org Storage
          JBIG2JBIG2 Encoder
          VerifyPGP Key Verifier
          MaxFlowMaximal Flow in Python
          PyBloomBloom Filters in Python
          pyGnuTLSPython wrapping of GnuTLS
          SxmapApache SuEXEC Map
          HellardUnion Server Notes
     RecordingsFree recordings
          ICSM ChoirSt Paul's Church
     SchoolAncient School Stuff
     WritingsWho knows
          Cap SystemsCapability Systems
          IntroIntroduction to me
          SupremaJMC2 Group Project
          MP LettersLetters I've written to my MP
          SoundSound With Dramsoc
          SyncThreadingThe wonders of user-land threads