LowEnd Native Audio v0.2.7
LowEnd Native Audio v0.2.7 adds an independent output-conditioning layer alongside the existing tonal DSP, plus the spatial/rate-match refinements. The real-time audio callback stays allocation-free and lock-free throughout.
Highlights
Output-conditioning engine (new, experimental infrastructure)
- Adds an independent
ResamplingOutputConditioningEnginebetween the tonal DSP and the output device PCMResampler: integer (2x/4x/8x) polyphase FIR upsampler with rate-independent coefficients pre-built at init, per-phase DC normalization, and vDSP + scalar-loop kernelsDeltaSigmaDSDModulator: 1st/2nd-order error-feedback delta-sigma with an overload guardDoPacker: DoP (DSD-over-PCM) v1.0 packing with 0x05/0xFA markers and stereo interleaveOutputConditioningDeviceCapability: probes the DAC for DoP carrier rates (176.4 / 352.8 / 705.6 kHz) and a 24/32-bit carrier- Live output stays bypass-only this iteration; PCM oversampling and DSD/DoP are offline/testable paths. Device-format switching for live oversampling/DSD is deferred to a later release.
- Parameters cross to the audio thread through the existing lock-free SPSC control queue
Offline verification suite (--self-test)
- Image-rejection FFT: in-band stopband floor short ≥ 50 dB, long ≥ 70 dB (measured short ~78 dB, long ~103 dB)
- DC unity-gain, passband preservation, impulse response, block-boundary continuity (2/4/8x)
- vDSP vs direct kernel equivalence, DSD stability (DC / full-scale / silence / clipped, overload guard verified to fire), DoP marker/interleave checks, capability gating
- vDSP-vs-direct resampler benchmark (vDSP ~110x faster)
Spatial & Rate Match
- Default spatial off; per-model slider values persisted
- Automatic DAC Rate Match: polling optimization + listener-deadlock fix;
RateMatchBenchstandalone benchmark - "전문가 모드" renamed to "자세히 보기"; Auto Rate Match decoupled from it
UI
- Korean localization of labels and status strings
- Fixed spatial audio not applying in the Clean model
- New "출력 컨디셔닝" page with experimental DSD/DoP and device-capability gating (disabled with PCM-fallback notice on unsupported DACs)
Real-time safety
The live render path (handleInput → applyPendingControlEvents → processAndPush* → processLive) performs no allocation, lock, dispatch, logging, coefficient generation, or device-format change. processLive is a verified identity bypass.
한국어 요약
- 톤 DSP와 분리된 독립 출력 컨디셔닝 엔진(PCM polyphase 업샘플러, delta-sigma DSD, DoP 패커, DAC capability 조회)을 추가했습니다.
- 실시간 출력은 이번 버전에서 안전한 Bypass 기본값으로만 동작하며, PCM 오버샘플링과 DSD/DoP는 offline에서 검증된 실험 경로입니다.
--self-test에 image rejection FFT(단/장필터 각각 ≥50/≥70 dB), DC unity, 커널 동등성, DSD 안정성, DoP 패킹, capability 게이팅 등 정량 검증을 추가했습니다.- 공간 음향 기본 off + 모델별 슬라이더 영속화, 자동 Rate Match 안정화, UI 한글화, Clean 모드 공간 음향 수정, "출력 컨디셔닝" 페이지를 추가했습니다.
- 오디오 콜백은 zero-allocation/no-lock 원칙을 유지합니다.