Skip to content

LowEnd Native Audio v0.2.7

Choose a tag to compare

@Gomtanga Gomtanga released this 19 Jun 06:22
· 10 commits to main since this release
3e74bcf

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 ResamplingOutputConditioningEngine between 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 kernels
  • DeltaSigmaDSDModulator: 1st/2nd-order error-feedback delta-sigma with an overload guard
  • DoPacker: DoP (DSD-over-PCM) v1.0 packing with 0x05/0xFA markers and stereo interleave
  • OutputConditioningDeviceCapability: 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; RateMatchBench standalone 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 원칙을 유지합니다.