04 — Audio I/O
1. Requirement
Section titled “1. Requirement”- Full-duplex PCIe audio through the Tang Mega 138K Pro, presented to Linux
as standard ALSA PCM by an Auvra-owned driver (
17). - Initially 2 analog inputs and 4 analog outputs, each available at the instrument panel as balanced XLR and unbalanced jack line I/O. Connector wiring, level, impedance, protection and whether both outputs may be active together require an analog-front-end design; neither module alone proves it.
- Low measured round-trip and key-to-sound latency, stable at small buffers.
- The N100’s onboard ALC897 is unbalanced consumer audio and is not used.1
The N100DC-ITX has a PCIe 3.0 x4 slot with x2 electrical lanes. The exact negotiated width/speed with the Tang board is a bring-up measurement, not an assumption from the card’s x4 capability.1
2. Selected integrated path
Section titled “2. Selected integrated path”One Sure Electronics AA-AB41164 A2D-PCM1822 stereo ADC provides the first two inputs; two AA-AB41166 ASCM-D2A-PCM5122 stereo DAC boards provide four outputs. The ADC supports differential and single-ended input; the DAC is described with differential XLR and single-ended analog output.23 These are I²S converter modules, not a finished ALSA card. FPGA I²S/TDM, clock distribution, PCIe DMA, the kernel driver, analog-panel conditioning, power and fault recovery remain implementation work. The initial three boards do not populate the 16-in/16-out digital fabric capacity in doc 17.
Balanced XLR and unbalanced jack are separate product connections for both input and output. Do not hard-wire balanced and unbalanced outputs in parallel without verifying drive/load behaviour; do not connect phantom power to these line inputs. Sample rates, common clocking, digital voltage, analog levels, noise, thermal behaviour and full-duplex RTL are acceptance measurements.
3. External bench and fallback candidates
Section titled “3. External bench and fallback candidates”| Interface | Bus | Balanced out | Linux | RTL @ 48 kHz | ≈ Price | Notes |
|---|---|---|---|---|---|---|
| RME Babyface Pro FS | USB | 2× XLR (+2 phones) | Class-compliant (CC mode)4 | ~3.85 ms (good USB) – ~6 ms5 | $749 | Gold-standard Linux behaviour; compact. |
| RME HDSPe AIO Pro | PCIe | via breakout (XLR opt.) | Driver snd-hdspe (DKMS) — not snd-hdspm6 |
lowest (PCIe DMA) | ~$800 | Uses the PCIe slot; buy XLR breakout separately. |
| RME Fireface UCX II | USB | 8× balanced TRS | Class-compliant4 | ~3–6 ms | ~$1300 | Overkill on I/O; rackmount. |
| MOTU UltraLite mk5 | USB | 10× balanced TRS | Class-compliant7 | ~5–8 ms | $699.95 | Lots of balanced outs; mixer/DSP onboard. |
| MOTU M4 | USB | 4× balanced TRS | Class-compliant8 | ~8–12 ms (48 k); ~6.5 ms @ 96 k/645 | $279.95 | Best budget balanced pick. |
| Focusrite Scarlett (4th gen, large) | USB | balanced TRS | Large 4th-gen (18i16/18i20) need kernel ≥ 6.14 + fcp-server; small/3rd-gen use in-kernel scarlett29 |
~5–8 ms | $300–650 | More Linux moving parts than RME/MOTU. |
3.1 Bench recommendation
Section titled “3.1 Bench recommendation”flowchart TD
Q{"Priority?"}
Q -->|"Best all-round<br/>(balanced + Linux + latency)"| BF["RME Babyface Pro FS<br/>USB · class-compliant · 2× XLR"]
Q -->|"Absolute lowest latency<br/>& OK with DKMS"| HD["RME HDSPe AIO Pro<br/>PCIe · snd-hdspe"]
Q -->|"Tight budget"| M4["MOTU M4<br/>USB · 4× balanced TRS · $280"]
- Bench baseline: RME Babyface Pro FS (USB). Class-compliant on Linux, balanced XLR stereo out, and useful as the measured comparator for the FPGA card.45
- Budget: MOTU M4 (USB). Four balanced TRS outs, class-compliant, ~$280; accept higher Linux latency or run 96 kHz/64 frames for ~6.5 ms.85
- Lowest-latency / PCIe: RME HDSPe AIO Pro. PCIe DMA gives the tightest RTL and frees all USB ports, but requires the out-of-tree
snd-hdspeDKMS module (the in-treesnd-hdspmdoes not cover the AIO Pro — verified against kernel source) and a separately-purchased XLR breakout.6
Bench versus product: start software and latency testing on USB; the selected integrated target is the Tang PCIe card. Preserve the external device as a fallback until the FPGA path meets the measured gates in doc 17. The RME HDSPe is a comparison option, not an intermediate product commitment.
4. Integration notes
Section titled “4. Integration notes”- Reboot state (RME CC mode): in class-compliant mode some settings (mic gain, phantom power) reset on power-cycle. Add a small startup script to restore them.5
- USB port quality: for best USB RTL, give the interface its own controller/port; a discrete Renesas µPD720201 USB card measurably lowered RME RTL in testing — but that would consume the single PCIe slot, so only relevant if not using PCIe audio.5
- Balanced wiring into the panel: bring the XLR/TRS outs to panel-mount connectors on the S90 rear; keep analog runs away from the 19 V switching and the digital harness (
08). - Inputs: the integrated target requires two line-level inputs. Microphone preamps and phantom-power support are separate decisions, not implicit in an XLR socket.
Footnotes
Section titled “Footnotes”-
ASRock, “N100DC-ITX” specification (ALC897, PCIe x2, USB count). https://www.asrock.com/mb/Intel/N100DC-ITX/index.asp ↩ ↩2
-
Sure Electronics, “AA-AB41164 A2D-PCM1822” stereo ADC. https://store.sure-electronics.com/product/813 ↩
-
Sure Electronics, “AA-AB41166 ASCM-D2A-PCM5122” stereo DAC. https://store.sure-electronics.com/product/829 ↩
-
RME, “Babyface Pro FS” — Class Compliant mode, 2× XLR balanced + 2 phones. https://rme-audio.de/babyface-pro-fs.html ↩ ↩2 ↩3
-
RTL figures and CC-mode/USB-port notes per research synthesis (RME ~3.85–6 ms; MOTU M4 ~8–12 ms @ 48 k, ~6.5 ms @ 96 k/64). See
references.md. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 -
snd-hdspeout-of-tree driver for RME HDSPe AIO/AIO Pro (the in-treesnd-hdspmdoes not cover the AIO Pro). Original: PhilippeBekaert/snd-hdspe; actively maintained fork: Schroedingers-Cat/snd-hdspe. https://github.com/PhilippeBekaert/snd-hdspe ↩ ↩2 -
MOTU, “UltraLite-mk5” — 10 balanced TRS line outs, USB class-compliant, $699.95. https://motu.com/en-us/products/gen5/ultralite-mk5/specs/ ↩
-
MOTU, “M4” — 4 balanced TRS outs, class-compliant, $279.95. https://motu.com/en-us/products/m-series/m4/ ↩ ↩2
-
Large Focusrite Scarlett 4th-gen models require kernel ≥ 6.14 (in-tree FCP driver) plus the
fcp-serveruserspace daemon; smaller/3rd-gen use the in-kernelscarlett2driver. https://github.com/geoffreybennett/fcp-support ↩