Comments 9
Очень интересное решение!
А с сетевым трафиком I2S не приходилось работать? С широковещательным пакетом, в полном дуплексе и просто передача звука по tcp ip? От 1 к 1 и от 1 к многим.
Очень интересное решение!
Спасибо.
А с сетевым трафиком I2S не приходилось работать?
Будучи студентом в 2015 году писал прошивку для софт процессора MicroBlaze, который был сконфигурирован на основе Xilinx FPGA Spartan 6, где происходила передача радарных данных по UDP через LwIP на скорости 470 MBit/s.
Это нужно для разработки сонаров.
Для аудиопроцессора же!
Кроссовер, задержки и прочие обработчики...
Интересно, можно NAM A2 запустить? Но там, вроде как, M7 нужен...
Что такое кроссовер в контексте звуковой обработки?
набор взаимосвязанных фильтров для выделения полос для последующего раздельного усиления и отправки в АС, дабы не терять мощь в пассивных элементах, но главное - гибко настраивать не меня компонентов
а это вообще бесконечный класс задач по вычислительной сложности....(IMHO)
Комната: незваный гость
Тоже интересный проект - https://github.com/WeebLabs/DSPi
USB Audio Interface: Plug-and-play under macOS, Windows, Linux, and iOS. Supports 16-bit and 24-bit PCM input at 44.1, 48, and 96 kHz.
24-bit S/PDIF or I2S Outputs: Up to four independent stereo output slots (8 channels on RP2350, 4 channels on RP2040). Each slot can be switched at runtime between S/PDIF and I2S, enabling direct connection to any standard DAC. I2S slots share a common BCK/LRCLK and can optionally produce a 128×/256× master clock.
Per-Channel Preamp: Independent gain control for each USB input channel (L/R), applied as PASS 1 of the DSP pipeline before any other processing.
Matrix Mixer: Route either or both USB input channels to any output with independent gain and phase invert per crosspoint. 2x9 on RP2350, 2x5 on RP2040.
Parametric Equalization: Up to 10 PEQ bands per channel with 6 filter types. 110 total filter bands on RP2350, 70 on RP2040. RP2350 uses a hybrid SVF/biquad architecture for superior low-frequency accuracy.
Volume Leveller: RMS-based, stereo-linked, soft-knee upward compressor that lifts quieter content toward a target level without ever amplifying loud passages. Optional 10 ms lookahead, configurable speed and max-gain ceiling, with a -6 dBFS gain-reduction safety limiter.
Loudness Compensation: Volume-dependent EQ based on the ISO 226:2003 equal-loudness contour standard. Automatically boosts bass and treble at low listening levels to maintain perceived tonal balance.
Headphone Crossfeed: BS2B-based crossfeed with interaural time delay (ITD) reduces unnatural stereo separation for headphone listening. Three classic presets plus fully custom parameters.
Master Volume: Device-side output ceiling (-128 to 0 dB, with a true-mute sentinel) applied at the very end of the signal chain, independent of USB host volume and DSP processing. Two persistence modes: stored independently of presets (default — survives reboots, unaffected by preset switching) or saved/restored as part of each preset.
Per-Output Gain & Mute: Independent gain and mute controls for each output channel.
Time Alignment: Per-output delay (up to 85ms) for speaker/subwoofer alignment with automatic latency compensation between S/PDIF/I2S and PDM output paths.
Subwoofer Output: Dedicated mono PDM output channel with a high-performance 2nd-order delta-sigma modulator, enabling direct subwoofer output without the need for a second DAC.
Dual-Core DSP: EQ processing is split across both cores on both platforms for maximum throughput when multiple outputs are active.
Configurable Output Pins: All output GPIO pins (including I2S BCK/MCK) can be reassigned at runtime to suit custom PCB layouts, no reflashing required.
10-Slot Preset System: Save, load, and manage up to 10 complete DSP configurations with user-defined names. Includes per-channel naming, configurable startup slot, and bulk parameter transfer for fast state synchronization.
Diagnostics: Per-channel peak/clip metering, USB PHY error counters (CRC, bit-stuff, timeout, overflow, sequence), buffer fill statistics, S/PDIF DMA starvation counters per output slot, and CPU load reporting per core.
Firmware Update via USB: A vendor command reboots the device into the UF2 bootloader, allowing the host app to push new firmware without a physical BOOTSEL press.
Не STM32 конечно, а на Raspberry Pi Pico or Pico 2 (RP2040/RP2350)
А здесь идет активное обсуждение фич - https://www.audiosciencereview.com/forum/index.php?threads/introducing-dspi-a-powerful-user-friendly-and-open-source-dsp-for-less-than-a-cup-of-coffee.69343/
Обработка звука в реальном времени (или Full Duplex I2S на STM32)