1 |
Protocol details for MOTU "mark 3" devices, obtained in the first instance |
---|
2 |
using an 828 Mk 3. |
---|
3 |
|
---|
4 |
Version: 20100517-1 |
---|
5 |
Author: Jonathan Woithe |
---|
6 |
|
---|
7 |
|
---|
8 |
Audio data streaming packets |
---|
9 |
---------------------------- |
---|
10 |
|
---|
11 |
It appears the streaming packets in the "mark 3" devices use a very similar |
---|
12 |
protocol to the earlier interfaces. Each iso packet begins with a 64-bit |
---|
13 |
CIP header. Following this are N data blocks, where N varies according to |
---|
14 |
the sample rate selected (8 for 1x, 16 for 2x, 32 for 4x). Each data block |
---|
15 |
comprises a 32-bit SPH field (consisting of a standard SPH timestamp), 48 |
---|
16 |
bits of control/MIDI data and then the audio data itself. The audio data is |
---|
17 |
sent as packed big-endian signed integer data, as for the earlier |
---|
18 |
interfaces. |
---|
19 |
|
---|
20 |
At 1x rates, the maximum packet size sent to the MOTU is 0x328 (808) bytes: |
---|
21 |
8 bytes CIP header |
---|
22 |
8 data blocks |
---|
23 |
Each data block contains: |
---|
24 |
4 bytes SPH timestamp |
---|
25 |
6 bytes control/MIDI data |
---|
26 |
90 bytes of audio data (30 channels) |
---|
27 |
The audio data is ordered as follows: phones, analog 1-8, main out, SPDIF, |
---|
28 |
ADAT1 1-8, ADAT2 1-8. |
---|
29 |
|
---|
30 |
At 1x rates the MOTU sends 0x388 (904) bytes per packet, providing space |
---|
31 |
for 34 audio channels (order to be investigated): mic/guitar 1-2, analog |
---|
32 |
1-8, return 1-2, reverb 1-2, SPDIF, Unknown 1-2, ADAT1 1-8, ADAT2 1-8. |
---|
33 |
|
---|
34 |
At 2x rates, packets sent to the MOTU have a maximum size of 0x4c8 (1224) |
---|
35 |
bytes while those sent by the MOTU are 0x0588 (1416) bytes. 16 blocks are |
---|
36 |
send in each packet. 22 channels sent to the MOTU (order to be confirmed): |
---|
37 |
phones, analog 1-8, main out, SPDIF, ADAT1 1-4, ADAT2 1-4. There is space |
---|
38 |
for 26 channels sent from the MOTU (order to be investigated): analog 1-8, |
---|
39 |
mic/guitar 1-2, SPDIF, return 1-2, reverb 1-2?, ADAT1 1-4, ADAT2 1-4, |
---|
40 |
unknown 1-2. |
---|
41 |
|
---|
42 |
At 4x rates 0x0508 (1288) bytes are sent to the MOTU and 0x0688 (1672) are |
---|
43 |
sent from the MOTU. For sending to the MOTU there are 32 blocks with room |
---|
44 |
for 10 audio channels: unknown 1-2, analog 1-8. The MOTU sends 14 audio |
---|
45 |
channels (order to be investigated): analog 1-8, mic/guitar 1-2, return 1-2, |
---|
46 |
unknown 1-2. |
---|
47 |
|
---|
48 |
The following matrix represents the current best guess as to the layout of |
---|
49 |
the audio channels in the iso data. Offset refers to the number of bytes |
---|
50 |
from the start of the data block. "?" signifies that the channel assignment |
---|
51 |
is yet to be confirmed and/or is positioned as a result of educated |
---|
52 |
guesswork. |
---|
53 |
|
---|
54 |
Offset 1x Rates 2x Rates 4x Rates |
---|
55 |
Playback Capture Playback Capture Playback Capture |
---|
56 |
------------------------------------------------------------------------- |
---|
57 |
10 Phones-L Mic-1? Phones-L Mic-1? Unknown-1 Mic-1? |
---|
58 |
13 Phones-R Mic-2? Phones-R Mic-2? Unknown-2 Mic-2? |
---|
59 |
16 Analog 1 Analog 1 Analog 1 Analog 1 Analog 1 Analog 1 |
---|
60 |
19 Analog 2 Analog 2 Analog 2 Analog 2 Analog 2 Analog 2 |
---|
61 |
22 Analog 3 Analog 3 Analog 3 Analog 3 Analog 3 Analog 3 |
---|
62 |
25 Analog 4 Analog 4 Analog 4 Analog 4 Analog 4 Analog 4 |
---|
63 |
28 Analog 5 Analog 5 Analog 5 Analog 5 Analog 5 Analog 5 |
---|
64 |
31 Analog 6 Analog 6 Analog 6 Analog 6 Analog 6 Analog 6 |
---|
65 |
34 Analog 7 Analog 7 Analog 7 Analog 7 Analog 7 Analog 7 |
---|
66 |
37 Analog 8 Analog 8 Analog 8 Analog 8 Analog 8 Analog 8 |
---|
67 |
40 MainOut-L Return-1? MainOut-L Return-1? Return-1? |
---|
68 |
43 MainOut-R Return-2? MainOut-R Return-2? Return-2? |
---|
69 |
46 SPDIF-1 SPDIF-1? SPDIF-1? SPDIF-1? Unknown-1 |
---|
70 |
49 SPDIF-2 SPDIF-2? SPDIF-2? SPDIF-2? Unknown-2 |
---|
71 |
52 ADAT1-1 Reverb-1? ADAT1-1? Reverb-1? |
---|
72 |
55 ADAT1-2 Reverb-2? ADAT1-2? Reverb-2? |
---|
73 |
58 ADAT1-3 Unknown-1? ADAT1-3? ADAT1-1? |
---|
74 |
61 ADAT1-4 Unknown-2? ADAT1-4? ADAT1-2? |
---|
75 |
64 ADAT1-5 ADAT1-1? ADAT2-1? ADAT1-3? |
---|
76 |
67 ADAT1-6 ADAT1-2? ADAT2-2? ADAT1-4? |
---|
77 |
70 ADAT1-7 ADAT1-3? ADAT2-3? ADAT2-1? |
---|
78 |
73 ADAT1-8 ADAT1-4? ADAT2-4? ADAT2-2? |
---|
79 |
76 ADAT2-1 ADAT1-5? ADAT2-3? |
---|
80 |
79 ADAT2-2 ADAT1-6? ADAT2-4? |
---|
81 |
82 ADAT2-3 ADAT1-7? Unknown-1? |
---|
82 |
85 ADAT2-4 ADAT1-8? Unknown-2? |
---|
83 |
88 ADAT2-5 ADAT2-1? |
---|
84 |
91 ADAT2-6 ADAT2-2? |
---|
85 |
94 ADAT2-7 ADAT2-3? |
---|
86 |
97 ADAT2-8 ADAT2-4? |
---|
87 |
100 ADAT2-5? |
---|
88 |
103 ADAT2-6? |
---|
89 |
106 ADAT2-7? |
---|
90 |
109 ADAT2-8? |
---|
91 |
------------------------------------------------------------------------ |
---|
92 |
#ch 30 34 22 26 10 14 |
---|
93 |
|
---|
94 |
When an optical port is configured in Toslink mode, the two Toslink channels |
---|
95 |
take the place of that port's 8 ADAT channels in the data stream. That is, |
---|
96 |
ADAT-x 1-8 are removed and in their place Toslink-A 1-2 are added. So in |
---|
97 |
the case of 1x playback, the Toslink channels appear at offset 52, with |
---|
98 |
ADAT-B's channels commencing at offset 58 (the total packet size in this |
---|
99 |
case being 0x02c8 bytes). |
---|
100 |
|
---|
101 |
Unlike previous MOTU generations, the Toslink outputs in the Mark 3 devices |
---|
102 |
are present as channels in their own right - they do not mirror the SPDIF |
---|
103 |
channel. |
---|
104 |
|
---|
105 |
|
---|
106 |
Device control |
---|
107 |
-------------- |
---|
108 |
|
---|
109 |
Optical port modes |
---|
110 |
|
---|
111 |
The modes of the two optical ports can be controlled independently. The |
---|
112 |
primary mechanism for this is via a quadlet write to register |
---|
113 |
0xfffff0000c94. |
---|
114 |
|
---|
115 |
Bit 22: optical port B output mode (0=ADAT, 1=Toslink) |
---|
116 |
Bit 20: optical port B input mode (0=ADAT, 1=Toslink) |
---|
117 |
Bit 18: optical port A output mode (0=ADAT, 1=Toslink) |
---|
118 |
Bit 16: optical port A input mode (0=ADAT, 1=Toslink) |
---|
119 |
Bit 9: optical port B output enabled (0=disabled, 1=enabled) |
---|
120 |
Bit 8: optical port A output enabled (0=disabled, 1=enabled) |
---|
121 |
Bit 1: optical port B input enabled (0=disabled, 1=enabled) |
---|
122 |
Bit 0: optical port A input enabled (0=disabled, 1=enabled) |
---|
123 |
|
---|
124 |
Other areas of the driver also appear to refresh the device status with |
---|
125 |
writes to other registers at the time the optical mode is updated: |
---|
126 |
0xfffff0000c04 |
---|
127 |
0xfffff0000c60 - 0xfffff0000c6c (ASCII name of clock source) |
---|
128 |
0xfffff0000c94 |
---|
129 |
0xfffff0000b14 |
---|
130 |
0xfffff0000b38 |
---|
131 |
0xfffff0000b3c |
---|
132 |
0xfffff0000b04 |
---|
133 |
0xfffff0000b08 |
---|
134 |
0xfffff0000b38 |
---|
135 |
0xfffff0000b3c |
---|
136 |
0xfffff0000b1c |
---|
137 |
It is not known whether these additional writes are necessary. |
---|
138 |
|
---|
139 |
|
---|
140 |
Clock source control and sample rate |
---|
141 |
|
---|
142 |
The clock source is set with a quadlet write to bits 0, 1, 3 and 4 of |
---|
143 |
register 0xfffff0000b14. Values for bits 4-3-1-0: |
---|
144 |
0-0-0-0 = internal |
---|
145 |
0-0-1-0 = SMTPE |
---|
146 |
0-0-0-1 = Word clock |
---|
147 |
1-0-0-0 = SPDIF |
---|
148 |
1-1-0-0 = ADAT port A / Toslink-A (depending on current optical port mode) |
---|
149 |
1-1-0-1 = ADAT port B / Toslink-B (depending on current optical port mode) |
---|
150 |
|
---|
151 |
The sample rate is selected using bits 10-8 of register 0xfffff0000b14: |
---|
152 |
0x0 = 44.1 kHz |
---|
153 |
0x1 = 48 kHz |
---|
154 |
0x2 = 88.2 kHz |
---|
155 |
0x3 = 96 kHz |
---|
156 |
0x4 = 176.4 kHz |
---|
157 |
0x5 = 192 kHz |
---|
158 |
|
---|
159 |
Bits 25 and 24 of register 0xfffff0000b14 are used in connection with |
---|
160 |
streaming control (see separate section). All other bits not mentioned |
---|
161 |
are set to zero. |
---|
162 |
|
---|
163 |
Writes to other registers (as for ADAT modes) accompany the setting of |
---|
164 |
register 0xfffff0000b14. |
---|
165 |
|
---|
166 |
|
---|
167 |
MainOut/Phones assign |
---|
168 |
|
---|
169 |
Register 0xfffff0000c04 controls the MainOut assign via bits 7-4: |
---|
170 |
0x0 = MainOut |
---|
171 |
0x1 = Ana 1-2 |
---|
172 |
0x2 = Ana 3-4 |
---|
173 |
0x3 = Ana 5-6 |
---|
174 |
0x4 = Ana 7-8 |
---|
175 |
0x5 = SPDIF |
---|
176 |
0x6 = Phones |
---|
177 |
0x7 = ADAT-A 1-2 (or Toslink if ADAT-A optical out mode is Toslink) |
---|
178 |
0x8 = ADAT-A 3-4 |
---|
179 |
0x9 = ADAT-A 5-6 |
---|
180 |
0xa = ADAT-A 7-8 |
---|
181 |
0xb = ADAT-B 1-2 (or Toslink if ADAT-B optical out mode is Toslink) |
---|
182 |
0xc = ADAT-B 3-4 |
---|
183 |
0xd = ADAT-B 5-6 |
---|
184 |
0xe = ADAT-B 7-8 |
---|
185 |
|
---|
186 |
Bits 3-0 of register 0xfffff0000c04 control the Phones assign. The meaning |
---|
187 |
of the bit combinations is as per the MainOut assign case. |
---|
188 |
|
---|
189 |
Bits 11-8 of register 0xfffff0000c04 control the "Return" assign. Again, |
---|
190 |
the meaning of the bit combinations is as per the MainOut assign case. |
---|
191 |
|
---|
192 |
All other bits in register 0xfffff0000c04 appear to be zero at present. |
---|
193 |
|
---|
194 |
|
---|
195 |
Streaming control |
---|
196 |
|
---|
197 |
Bits 31 to 16 of register 0xfffff0000b00 control the streaming channels |
---|
198 |
in the same way as for earlier MOTU devices. |
---|
199 |
|
---|
200 |
To start streaming: |
---|
201 |
- a value of 0x00000002 is written to register 0xfffff0000b10. |
---|
202 |
- bit 24 of register 0xfffff0000b14 is set to 1 (other bits are set to |
---|
203 |
their current values) |
---|
204 |
- a bunch of other registers are written to which, given experience with |
---|
205 |
earlier MOTU interfaces, are not strictly required |
---|
206 |
- register 0xfffff0000c04 is polled. A result of 0x00000111 requires |
---|
207 |
another poll. Polling stops when the value is 0x00000303. |
---|
208 |
- register 0xfffff0000b14 is read. |
---|
209 |
- bits 24 and 25 in register 0xfffff0000b14 are set (other bits remain |
---|
210 |
unchanged) |
---|
211 |
- another bunch of (possibly inconsequential) registers is written to. |
---|
212 |
- register 0xfffff0000b14 is read again. |
---|
213 |
- writes to the same collection of registers again. |
---|
214 |
|
---|
215 |
To stop streaming: |
---|
216 |
- bit 25 of register 0xfffff0000b14 is cleared (other bits remain |
---|
217 |
unchanged; this includes leaving bit 24 set to 1) |
---|
218 |
- register 0xfffff0000b00 is used to stop streaming in the same way as for |
---|
219 |
earlier MOTU interfaces |
---|
220 |
- write to other registers of potentially little value |
---|
221 |
- register 0xfffff0000b14 has bit 24 cleared (all other bits remain |
---|
222 |
unchanged, so bits 25 and 24 are both zero) |
---|
223 |
- immediately, register 0xfffff0000b14 has bit 24 set (all other bits |
---|
224 |
remain unchanged). |
---|
225 |
- other registers are read again. |
---|
226 |
|
---|
227 |
It appears based on this that the streaming control of the Mark3 MOTU |
---|
228 |
devices is the same as for previous generations. |
---|
229 |
|
---|
230 |
|
---|
231 |
CuemixFX control |
---|
232 |
---------------- |
---|
233 |
|
---|
234 |
Control of the CuemixFX system is via writes starting at register |
---|
235 |
0xffff00010000. Either 1, 2 or 3 quadlets are written depending on what is |
---|
236 |
being done. Each packet includes a serial number which is incremented after |
---|
237 |
sending each control packet. The same serial number counter is used |
---|
238 |
regardless of the type of control packet being sent. |
---|
239 |
|
---|
240 |
|
---|
241 |
CuemixFX heartbeats |
---|
242 |
------------------- |
---|
243 |
|
---|
244 |
The MOTU periodically sends a heartbeat packet back to the PC. This is sent |
---|
245 |
to address 0x000300000000 and consists of a single quadlet length write |
---|
246 |
block request of the following form: |
---|
247 |
|
---|
248 |
00 aa 00 00 |
---|
249 |
|
---|
250 |
"aa" is the serial number ranging from 0x00 to 0xff. |
---|
251 |
|
---|
252 |
It appears that heartbeat packets are sometimes sent to the MOTU. These take |
---|
253 |
the form of single-quadlet writes to the CuemixFX address. The quadlet |
---|
254 |
takes the following form: |
---|
255 |
|
---|
256 |
02 aa 00 00 |
---|
257 |
|
---|
258 |
"aa" is the serial number of the packet ranging from 0x00 to 0xff. |
---|
259 |
|
---|
260 |
It's not yet certain what purpose these packets serve and whether they are |
---|
261 |
in fact necessary. It is also not yet known whether the MOTU or the PC |
---|
262 |
initiates the process (that is, which one sends a packet with a given serial |
---|
263 |
number first). |
---|
264 |
|
---|
265 |
|
---|
266 |
Pedal events |
---|
267 |
------------ |
---|
268 |
|
---|
269 |
When a pedal event occurs the MOTU sends a quadlet write request to address |
---|
270 |
0x000300000000 on the PC. The format of the quadlet is as follows. |
---|
271 |
|
---|
272 |
bb 00 00 c2 |
---|
273 |
|
---|
274 |
"bb" is 0 for a "pedal up" event and 1 for a "pedal down" event. The pedal |
---|
275 |
is "down" when the pedal switch is closed. |
---|
276 |
|
---|
277 |
|
---|
278 |
CuemixFX variable controls |
---|
279 |
-------------------------- |
---|
280 |
|
---|
281 |
The control of continuously variable controls (for example, faders, pan |
---|
282 |
controls) is by way of 3-quadlet writes to the CuemixFX register. The |
---|
283 |
format of these writes is as follows: |
---|
284 |
|
---|
285 |
02 aa 66 bb - cc dd ee v1 - v2 v3 v4 00 |
---|
286 |
|
---|
287 |
where: |
---|
288 |
aa = packet serial number as previously described |
---|
289 |
bb = the bus/channel number (0x00 = mix bus 1, mic 1) |
---|
290 |
cc-dd-ee = the key of the control being changed |
---|
291 |
v1-v4 = the value being written. v1 is the most-significant byte. The |
---|
292 |
value appears to be a 32-bit float. That is, v1..v4 is a big |
---|
293 |
endian 32-bit float. |
---|
294 |
|
---|
295 |
Keys presently identified are as follows. |
---|
296 |
|
---|
297 |
00-01-02 = Bus reverb send (0-0x3f800000) |
---|
298 |
00-0c-01 = Input reverb send (0 ("-inf") to 0x3f800000 ("0 dB")). bb is |
---|
299 |
the zero-based input channel index for this key. |
---|
300 |
01-01-02 = Bus reverb return (0-0x3f800000) |
---|
301 |
02-00-01 = Input trim control (mic inputs: 0 ("+0 dB") - 0x42540000 ("+53 |
---|
302 |
dB"); line inputs: 0xc2c00000 ("-96") - 0x41b00000 ("+22")). |
---|
303 |
For this key, bb is the zero-based channel index. |
---|
304 |
02-00-02 = Bus master fader |
---|
305 |
02-mm-02 = Channel pan. mm is the standard channel index. Values range |
---|
306 |
from 0xbf800000 (L) to 0x3f800000 (R). |
---|
307 |
03-mm-02 = Channel fader. mm is the channel index starting at 0x02 for |
---|
308 |
the first channel (on the 828-mk3 this is mic 1). Values range |
---|
309 |
from 0 (-inf) to 0x3f800000 (0 dB). |
---|
310 |
05-mm-02 = Channel balance (active only for stereo paired channels). |
---|
311 |
Values are from 0xbf800000 ("-1") to 0x3f800000 ("1"). |
---|
312 |
06-mm-02 = Channel width (active only for MS-paired channels). Values are |
---|
313 |
from 0 ("0") to 0x3f800000 ("1"). |
---|
314 |
07-00-00 = Focus select. v4 = 0x01 for channel select, 0x03 for bus |
---|
315 |
select. For channel select one is focusing the actual input, |
---|
316 |
not the channel in the current bus. Therefore the bus select |
---|
317 |
byte (bb) is always zero for this key. v1 = 0x00 (mic 1 or 2), |
---|
318 |
0x01 (ana 1 or 2) and so forth for channel pairs. Bus focus |
---|
319 |
focuses the output assigned to the bus, not the bus itself. v1 |
---|
320 |
in this case is 0x00 for Main, 0x01 for Analog 1-2 and so |
---|
321 |
forth. Again the bus select byte is always zero. |
---|
322 |
v2 and v3 are always zero. |
---|
323 |
|
---|
324 |
Channel EQ controls: |
---|
325 |
02-yy-01 = Input EQ frequency. Value range 0x41a00001 (20 Hz) to |
---|
326 |
0x469c4004 (20 kHz) |
---|
327 |
03-yy-01 = Input EQ gain. Value range 0xc1a00000 (-20 dB) to 0x41a00000 |
---|
328 |
(+20 dB) |
---|
329 |
04-yy-01 = Input EQ Q. Value range 0x3c23d70a (0.01) to 0x40400000 (3.00) |
---|
330 |
02-yy-03 = Output EQ frequency. Value range 0x41a00001 (20 Hz) to |
---|
331 |
0x469c4004 (20 kHz) |
---|
332 |
03-yy-03 = Output EQ gain. Value range 0xc1a00000 (-20 dB) to 0x41a00000 |
---|
333 |
(+20 dB) |
---|
334 |
04-yy-03 = Output EQ Q. Value range 0x3c23d70a (0.01) to 0x40400000 (3.00) |
---|
335 |
The EQ number ("yy" in this table) is as follows: |
---|
336 |
02 = EQ F |
---|
337 |
03 = EQ A |
---|
338 |
04 = EQ C |
---|
339 |
05 = EQ D |
---|
340 |
06 = EQ E |
---|
341 |
07 = EQ B |
---|
342 |
80 = EQ G |
---|
343 |
|
---|
344 |
Input channel dynamics controls: |
---|
345 |
01-0a-01 = compressor threshold. Value range 0xc2400000 (-48 dB) to |
---|
346 |
0x00000000 (0 dB). |
---|
347 |
02-0a-01 = compressor ratio. Value range 0x3f800000 (1.0:1) to |
---|
348 |
0x41200000 (10.0:1). |
---|
349 |
03-0a-01 = compressor attack. Value range 0x41200000 (10 ms) to |
---|
350 |
0x42c80000 (100 ms) |
---|
351 |
04-0a-01 = compressor release. Value range 0x41200000 (10 ms) to |
---|
352 |
0x44fa0000 (2 s) |
---|
353 |
05-0a-01 = compressor trim. Value range 0xc0c00000 (-6 dB) to |
---|
354 |
0x00000000 (0 dB) |
---|
355 |
02-0b-01 = leveler makeup gain. Value range 0x00000000 to 0x42c80000. |
---|
356 |
03-0b-01 = leveler gain reduction. Value range 0x00000000 to 0x42c80000. |
---|
357 |
|
---|
358 |
Output channel dynamics controls: |
---|
359 |
01-09-03 = compressor threshold. Value range 0xc2400000 (-48 dB) to |
---|
360 |
0x00000000 (0 dB). |
---|
361 |
02-09-03 = compressor ratio. Value range 0x3f800000 (1.0:1) to |
---|
362 |
0x41200000 (10.0:1). |
---|
363 |
03-09-03 = compressor attack. Value range 0x41200000 (10 ms) to |
---|
364 |
0x42c80000 (100 ms) |
---|
365 |
04-09-03 = compressor release. Value range 0x41200000 (10 ms) to |
---|
366 |
0x44fa0000 (2 s) |
---|
367 |
05-09-03 = compressor trim. Value range 0xc0c00000 (-6 dB) to |
---|
368 |
0x00000000 (0 dB) |
---|
369 |
02-0a-03 = leveler makeup gain. Value range 0x00000000 to 0x42c80000. |
---|
370 |
03-0a-03 = leveler gain reduction. Value range 0x00000000 to 0x42c80000. |
---|
371 |
|
---|
372 |
Channel index values (mm in the above tables) are as follows on the 828 Mk3. |
---|
373 |
|
---|
374 |
0x02 = mic 1 |
---|
375 |
0x03 = mic 2 |
---|
376 |
0x04 - 0x0b = analog 1-8 |
---|
377 |
0x0c - 0x0d = SPDIF 1 and 2 |
---|
378 |
0x0e - 0x15 = ADAT A 1-8 |
---|
379 |
0x16 - 0x1c = ADAT B 1-8 |
---|
380 |
|
---|
381 |
If a channel pair is flagged as a stereo pair then only the first control |
---|
382 |
register is written to. |
---|
383 |
|
---|
384 |
Reverb parameters: |
---|
385 |
02-00-04 = predelay. 0x00000000 (0 ms) to 0x42c80000 (100 ms). |
---|
386 |
03-00-04 = shelf filter frequency. 0x447a0000 (1 kHz) to 0x469c4000 (20 |
---|
387 |
kHz). |
---|
388 |
04-00-04 = shelf filter cut. 0xc2200000 (-40 dB) to 0x00000000 (0 dB). |
---|
389 |
05-00-04 = reverb time. 0x42c80000 (100 ms) to 0x476a6000 (60 sec). |
---|
390 |
06-00-04 = reverb design: low time. 0x00000000 (0%) to 0x42c80000 (100%). |
---|
391 |
07-00-04 = reverb design: mid time. 0x00000000 (0%) to 0x42c80000 (100%). |
---|
392 |
08-00-04 = reverb design: high time. 0x00000000 (0%) to 0x42c80000 |
---|
393 |
(100%). |
---|
394 |
09-00-04 = reverb design: crossover low. 0x42c80000 (100 Hz) to |
---|
395 |
0x469c4004 (20 kHz). |
---|
396 |
0a-00-04 = reverb design: crossover high. 0x447a0000 (1 kHz) to |
---|
397 |
0x469c4004 (20 kHz). |
---|
398 |
0b-00-04 = reverb design: width. 0xbf800000 (-100%) to 0x3f800000 |
---|
399 |
(+100%). |
---|
400 |
0d-00-04 = early reflections size. 0x42480000 (50%) to 0x43c64000 (400%). |
---|
401 |
0e-00-04 = early reflections level. 0x00000000 (-inf) to 0x3f800000 (0 |
---|
402 |
dB). |
---|
403 |
|
---|
404 |
|
---|
405 |
CuemixFX switches |
---|
406 |
----------------- |
---|
407 |
|
---|
408 |
Switches and discrete controls in CuemixFX are controlled through a |
---|
409 |
2-quadlet write to the CuemixFX register. The format of this is |
---|
410 |
|
---|
411 |
02 aa 69 v1 - bb k1 k2 k3 |
---|
412 |
|
---|
413 |
where: |
---|
414 |
aa = packet serial number |
---|
415 |
bb = bus/channel index (0x00 = mix bus 1 or mic 1, depending on the control) |
---|
416 |
v1 = the value of the switch / discrete control |
---|
417 |
k1-k2-k3 = the key of the control being set |
---|
418 |
|
---|
419 |
Depending on the control, the channel number being set is communicated |
---|
420 |
either as part of the key (for controls which operate on a per-mixbus basis) |
---|
421 |
or in the "bb" field of the packet (for controls which operate on a |
---|
422 |
per-input/output basis. |
---|
423 |
|
---|
424 |
The keys appear to be rather structured. The value of k3 appears to |
---|
425 |
indicate what kind of object the key applies to: |
---|
426 |
|
---|
427 |
00 = global resource (eg: talkback) |
---|
428 |
01 = input channel (corresponding to a physical device input) |
---|
429 |
02 = a channel in a bus mix |
---|
430 |
03 = output channel (corresponding to a physical device output) |
---|
431 |
04 = global configuration |
---|
432 |
|
---|
433 |
Keys presently identified: |
---|
434 |
00-00-01 = Input channel phase. Value is 0x00 (normal), 0x01 (invert) |
---|
435 |
bb is the input channel index (0 is mic 1). When two adjacent |
---|
436 |
channels are paired the phase of each can still be independently |
---|
437 |
controlled. FIXME: also under the 00-cc-01 entry. |
---|
438 |
00-00-02 = bus output assignment. Values are: |
---|
439 |
0xff = disabled |
---|
440 |
0x00 = main L-R |
---|
441 |
0x01-0x04 = Analog 1-2 though 7-8 |
---|
442 |
0x05 = SPDIF 1-2 |
---|
443 |
0x06 = Phones L-R |
---|
444 |
0x07-0x0a = ADAT A 1-2 through 7-8 |
---|
445 |
0x0b-0x0e = ADAT B 1-2 through 7-8 |
---|
446 |
00-03-00 = talkback channel select. The value is the 0-based channel index |
---|
447 |
of the talkback channel. |
---|
448 |
00-cc-01 = input channel EQ/dynamics switches. Value is 0x00 (off) or 0x01 |
---|
449 |
(on). cc values identified to date: |
---|
450 |
00 = phase (0x00 normal, 0x01 invert) |
---|
451 |
02 = EQ F enable |
---|
452 |
03 = EQ A enable |
---|
453 |
04 = EQ C enable |
---|
454 |
05 = EQ D enable |
---|
455 |
06 = EQ E enable |
---|
456 |
07 = EQ B enable |
---|
457 |
08 = EQ G enable |
---|
458 |
0a = Compressor enable |
---|
459 |
0b = Leveler enable |
---|
460 |
FIXME: work out some way to identify the EQs. |
---|
461 |
00-cc-03 = output channel EQ/dynamics switches. Value is 0x00 (off) or |
---|
462 |
0x01 (on). cc values identified to date: |
---|
463 |
01 = EQ F enable |
---|
464 |
02 = EQ A enable |
---|
465 |
03 = EQ C enable |
---|
466 |
04 = EQ D enable |
---|
467 |
05 = EQ E enable |
---|
468 |
06 = EQ B enable |
---|
469 |
07 = EQ G enable |
---|
470 |
09 = Compressor enable |
---|
471 |
0a = Leveler enable |
---|
472 |
00-04-00 = talkback listen channel select. The value is the 0-based |
---|
473 |
channel index of the talkback listen channel. |
---|
474 |
00-mm-02 = mix channel mute. mm is the channel index as for other keys. |
---|
475 |
Value is 0x00 (off) or 0x01 (on). |
---|
476 |
00-01-02 = bus mute. Values are 0x00 (off), 0x01 (on). |
---|
477 |
00-0c-03 = output channel monitor enable (0x00=off, 0x01=on) |
---|
478 |
01-00-01 = input channel mono/stereo mode. Value is 0x00 (mono), 0x01 |
---|
479 |
(stereo). bb (bus select byte) is always zero for this key |
---|
480 |
since this acts globally on the input. |
---|
481 |
01-00-04 = Reverb split point. Value is 0x00 for "mixes", 0x01 for |
---|
482 |
"outputs". |
---|
483 |
01-mm-02 = mix channel solo. mm is as for the mute control. Value is |
---|
484 |
0x00 (off) or 0x01 (on). |
---|
485 |
01-0a-03 = output channel leveler mode (0x00=compress, 0x01=limit) |
---|
486 |
01-0c-03 = output channel talkback talk (0x00=off, 0x01=on) |
---|
487 |
02-0c-03 = output channel talkback listen (0x00=off, 0x01=on) |
---|
488 |
03-00-01 = input channel swap L and R. Value is 0x00 (no swap), 0x01 |
---|
489 |
(swap). bb is the input channel index. |
---|
490 |
04-00-01 = input channel stereo mode. Value is 0x00 for normal stereo, |
---|
491 |
0x01 for MS. Relevant only if input channel is in stereo mode |
---|
492 |
(and thus part of a stereo pair). |
---|
493 |
06-00-01 = input channel Vlimit on (mic channels only). Values are 0x00 |
---|
494 |
(off), 0x01 (on). |
---|
495 |
06-0a-01 = input channel compressor mode (0x00=peak, 0x01=RMS) |
---|
496 |
06-0b-01 = input channel leveler mode (0x00=compress, 0x01=limit) |
---|
497 |
06-09-03 = output channel compressor mode (0x00=peak, 0x01=RMS) |
---|
498 |
07-00-01 = input channel Vlimit lookahead (mic channels only). Values are |
---|
499 |
0x00 (off), 0x01 (on). |
---|
500 |
08-00-01 = input channel soft clip (mic channels only). Values are 0x00 |
---|
501 |
(off), 0x01 (on). |
---|
502 |
0c-00-04 = Reverb early reflections model. Value is 0x00-0x04 for "Room |
---|
503 |
A" through to "Room E". bb is zero. |
---|