100%
asynchronous-spdif-mixer Alims view
Description

Imported from GitHub: DADDesign-Projects/Asynchronous-SPDIF-Mixer · commit 0a4008a · license MIT

Description

"Asynchronous SPDIF Mixer" synchronizes and mixes up to three asynchronous S/PDIF streams into a 48 kHz output. Running on an STM32H743 and developed in C++ with CubeIDE, it compensates for drift with interpolation. A custom KiCad-designed PCB hosts this real-time audio processing solution.

README

Asynchronous S/PDIF Mixer

"Asynchronous SPDIF Mixer" is a hardware and software project designed to synchronize and mix up to three asynchronous S/PDIF streams into a single 48 kHz output stream.
The system compensates for drift between sources and uses interpolation to ensure smooth and artifact-free audio transitions.
The project includes USB-MIDI control, allowing real-time mixing of the three audio channels via an external MIDI controller or any MIDI-compatible software.

The software, developed in C++ with CubeIDE, is optimized for real-time audio processing and runs on an STM32H743 microcontroller.
A custom electronic board, designed with KiCad, provides a dedicated hardware platform for this solution.

Image1 Image1 Image1

📋 New Evolutions

Recent updates to the project include:

  • 🔄 Enhanced Drift Compensation: A new algorithm has been implemented for compensating drifts in the input frequencies, ensuring more precise synchronization across streams.
  • 🎛️ Advanced Mixing Controls: Mixing between the three inputs can now be adjusted in real-time via MIDI over USB, complemented by a Python-based control panel for intuitive configuration. Mix settings are automatically saved and recalled as presets stored directly in flash memory for persistent, non-volatile access.

👤 Author

This project is developed by DAD Design.

📄 License

This project is licensed under the MIT License.

✨ Features

  • Synchronization of Asynchronous S/PDIF Streams: The project synchronizes three input audio streams, each potentially running at different sample rates ( 48kHz, 44.1kHz, 32kHz), into a unified output stream at 48kHz.
  • Clock Drift Compensation: Drift between the input streams is handled through periodic drift factor recalculation, ensuring the output remains smooth and synchronized.
  • 🎛️ Real-Time Mixing Controls: Adjustable mixing levels for the three inputs via any USB-MIDI interface. A Python control panel included as an example for easy configuration.
  • 💾 Preset Memorization: Mix settings are automatically saved and can be recalled as presets stored in flash memory for quick, persistent access.

🛠️ Hardware Platform

The KiCAD folder contains the schematics and PCB files for the project's hardware. These files were created using KiCAD version 9.0.

🔧 Development Environment

The project is developed and compiled using the CubeIDE environment provided by STMicroelectronics. CubeIDE is a fully integrated development environment (IDE) that supports STM32 microcontrollers and provides tools for debugging, flashing, and developing embedded systems.

Comments
Sign in to comment

No comments yet. Be the first to ask about this board.