Expand description
Protocol specific to Focusrite Saffire Pro 24 DSP.
The module includes structure, enumeration, and trait and its implementation for protocol defined by Focusrite for Saffire Pro 24 DSP.
§Diagram of internal signal flow for Saffire Pro 24 DSP.
I note that optical input interface is available exclusively for ADAT input and S/PDIF input.
XLR input 1 ------+---------+
Phone input 1-----+ |
|
XLR input 2 ------+---------+
Phone input 2 ----+ |
+------------------> analog-input-1/2
Phone input 3/4 -------------------------------> analog-input-3/4
Phone input 5/6 -------------------------------> analog-input-5/6
Coaxial input 1/2 -----------------------------> spdif-input-1/2
Optical input --------------or-----------------> spdif-input-3/4
+------------------> adat-input-1..8
++=============++
analog-input-1/2 ------> || 46 x 46 || ----> analog-output-1/2
analog-input-3/4 ------> || router || ----> analog-output-3/4
analog-input-5/6 ------> || up to || ----> analog-output-5/6
spdif-input-1/2 -------> || 128 entries || ----> spdif-output-1/2
spdif-input-3/4 -------> || ||
adat-input-1/2 --------> || ||
adat-input-3/4 --------> || ||
adat-input-5/6 --------> || ||
adat-input-7/8 --------> || ||
|| ||
stream-input-1/2 ------> || || ----> stream-output-1/2
stream-input-3/4 ------> || || ----> stream-output-3/4
stream-input-5/6 ------> || || ----> stream-output-5/6
stream-input-7/8 ------> || || ----> stream-output-7/8
|| || ----> stream-output-9/10
|| || ----> stream-output-11/12
|| || ----> stream-output-13/14
|| || ----> stream-output-15/16
|| ||
mixer-output-1/2 ------> || || ----> mixer-input-1/2
mixer-output-3/4 ------> || || ----> mixer-input-3/4
mixer-output-5/6 ------> || || ----> mixer-input-5/6
mixer-output-7/8 ------> || || ----> mixer-input-7/8
mixer-output-9/10 -----> || || ----> mixer-input-9/10
mixer-output-11/12 ----> || || ----> mixer-input-11/12
mixer-output-13/14 ----> || || ----> mixer-input-13/14
mixer-output-15/16 ----> || || ----> mixer-input-15/16
|| || ----> mixer-input-17/18
|| ||
ch-strip-output-1/2 ---> || || ----> ch-strip-input-1/2
reverb-output-1/2 -----> || || ----> reverb-input-1/2
++=============++
++=============++
mixer-input-1/2 -------> || || ----> mixer-output-1/2
mixer-input-3/4 -------> || || ----> mixer-output-3/4
mixer-input-5/6 -------> || || ----> mixer-output-5/6
mixer-input-7/8 -------> || mixer || ----> mixer-output-7/8
mixer-input-9/10 ------> || || ----> mixer-output-9/10
mixer-input-11/12 -----> || 18 x 16 || ----> mixer-output-10/12
mixer-input-13/14 -----> || || ----> mixer-output-12/14
mixer-input-15/16 -----> || || ----> mixer-output-14/16
mixer-input-17/18 -----> || ||
++=============++
++=============++
|| || ----> Phone output 1/2
|| ||
analog-output-1/2 -----> || output || --+-> Phone output 3/4
analog-output-3/4 -----> || || +-> Headphone output 1/2
analog-output-5/6 -----> || group ||
|| || --+-> Phone output 5/6
|| || +-> Headphone output 3/4
++=============++
++=============++
|| equalizer ||
ch-strip-input-1/2 ----> || & || ----> ch-strip-output-1/2
|| compressor ||
++=============++
++=============++
reverb-input-1/2 ------> || reverb || ----> reverb-output-1/2
++=============++
§Data layout in TCAT application section for DSP effect
The offset of TCAT application section is 0x6dd4. Any change by write transaction is firstly effective when software message is written to 0x5ec.
§Data Layout for DSP effect
- 0x000: DSP enable/disable (sw msg: 0x1c)
- 0x008: flags for channel strip effects (sw msg: 0x05)
- 0x00000001: ch 0 equalizer enable
- 0x00010000: ch 1 equalizer enable
- 0x00000002: ch 0 compressor enable
- 0x00020000: ch 1 compressor enable
- 0x00000004: ch 0 equalizer after compressor
- 0x00040000: ch 1 equalizer after compressor
| blk 0 | blk 2 | blk 4 | blk 6 | count | purpose | sw msg |
|---|---|---|---|---|---|---|
| 0x120 | 0x230 | 0x340 | 0x450 | 6 quads | ch 0 comp | 0x06 |
| 0x138 | 0x248 | 0x358 | 0x468 | 2 quads | ch 0/ch 1 eq output | 0z09 |
| 0x140 | 0x250 | 0x360 | 0x470 | 5 quads | ch 0 eq low freq filter | 0x0c |
| 0x154 | 0x264 | 0x374 | 0x484 | 5 quads | ch 0 eq low-middle freq filter | 0x0f |
| 0x168 | 0x278 | 0x388 | 0x498 | 5 quads | ch 0 eq high-middle freq filter | 0x12 |
| 0x17c | 0x28c | 0x39c | 0x4ac | 5 quads | ch 0 eq high freq filter | 0x15 |
| 0x190 | 0x2a0 | 0x3b0 | 0x4c0 | 6 quads | ch 0 reverb | 0x1a |
| blk 1 | blk 3 | blk 5 | blk 7 | count | purpose | sw msg |
|---|---|---|---|---|---|---|
| 0x1a8 | 0x2b8 | 0x3c8 | 0x4d8 | 6 quads | ch 1 comp | 0x07 |
| 0x1c0 | 0x2d0 | 0x3e0 | 0x4f0 | 2 quads | ch 0/ch 1 eq output | 0x0a |
| 0x1c8 | 0x2d8 | 0x3e8 | 0x4f8 | 5 quads | ch 1 eq low freq filter | 0x0d |
| 0x1dc | 0x2ec | 0x3fc | 0x50c | 5 quads | ch 1 eq low-middle freq filter | 0x10 |
| 0x1f0 | 0x300 | 0x410 | 0x520 | 5 quads | ch 1 eq high-middle freq filter | 0x13 |
| 0x204 | 0x314 | 0x424 | 0x534 | 5 quads | ch 1 eq high freq filter | 0x16 |
| 0x218 | 0x328 | 0x438 | 0x548 | 6 quads | ch 1 reverb | 0x1a |
§Compressor coefficients (6 quadlets)
Actually change to block 2 is effective.
| quad | purpose | min value | max value | min repr | max repr |
|---|---|---|---|---|---|
| 0 | unknown | 0x3f800000 | 0x3f800000 | - | - |
| 1 | output volume | 0x00000000 | 0x42800000 | -36.0 dB | +36.0 dB |
| 2 | threshold | 0xbfa00000 | 0x00000000 | -80.0 dB | 0.0 dB |
| 3 | ratio | 0x3d000000 | 0x3f000000 | 1.1:1 | inf:1 |
| 4 | attack | 0xbf800000 | 0xbf700000 | 2ms | 100ms |
| 5 | release | 0x3f700000 | 0x3f800000 | 100ms | 3s |
§Equalizer output coefficients (2 quadlets)
Actually change to block 2 is effective.
| quad | purpose | min value | max value | min repr | max repr |
|---|---|---|---|---|---|
| 0 | left volume | 0x00000000 | 0x3f800000 | -36.0 dB | +36.0 dB |
| 1 | right volume | 0x00000000 | 0x3f800000 | -36.0 dB | +36.0 dB |
§Equalizer coefficients (5 quadlets)
Actually change to block 2 is effective.
| quad | purpose | min value | max value | min repr | max repr |
|---|---|---|---|---|---|
| 0 | unknown | - | - | - | - |
| 1 | unknown | - | - | - | - |
| 2 | unknown | - | - | - | - |
| 3 | unknown | - | - | - | - |
| 4 | unknown | - | - | - | - |
§Reverb coefficients (6 quadlets)
Actually change to block 3 is effective.
| quad | purpose | min value | max value | min repr | max repr |
|---|---|---|---|---|---|
| 0 | room size | 0x00000000 | 0x3f800000 | 0 % | 100 % |
| 1 | air | 0x00000000 | 0x3f800000 | 100 % | 0 % |
| 2 | enabled | 0x00000000 | 0x3f800000 | false | true |
| 3 | disabled | 0x00000000 | 0x3f800000 | false | true |
| 4 | pre filter value | 0x00000000 | 0x3f800000 | 5.0 | 0.0 |
| 5 | pre filter sign | 0x00000000 | 0x3f800000 | negative | positive |
Structs§
- SPro24
DspProtocol - Protocol implementation specific to Saffire Pro 24 DSP.
- Spro24
DspCompressor State - State of compressor effect.
- Spro24
DspEffect General Params - General parameters of DSP effects.
- Spro24
DspEqualizer Frequency Band State - Coefficients per frequency band.
- Spro24
DspEqualizer State - State of equalizer effect.
- Spro24
DspReverb State - State of reverb effect.