SoundFlow v1.3.0
Release Notes - SoundFlow v1.3.0
1480 Hours of Development - 1480 Hours of Goodbye.
That is the effort poured into this release. Version 1.3.0 is not just an update; it is a complete transformation of the library from a playback engine into a comprehensive creative audio framework.
This release introduces a pluggable codec architecture (FFmpeg), a complete MIDI sequencing and routing engine, a polyphonic synthesizer with SoundFont support, and a comprehensive metadata reading/writing API.
🌟 Key Highlights
- FFmpeg Codecs: Native support for decoding and encoding major formats (MP3, AAC, OGG, Opus, FLAC, ALAC) via a new pluggable extension.
- MIDI & Synthesis: A complete MIDI I/O backend, a built-in polyphonic Synthesizer, and SoundFont (.sf2) playback capability.
- Advanced Metadata: Read and write metadata tags (ID3v2, Vorbis Comments, MP4 Atoms) across all supported formats.
- MIDI Mapping: A reflection-based system to bind MIDI controllers to any audio parameter (Volume, Cutoff, etc.) in real-time.
📢 An Update, and a Very Long Goodbye
So, this update is finally out. It took 1480 hours of actual work to get here, a true labor of love (at the current moment, I am sure I am just a shut-in nerd). Hope you enjoy it, because... things are about to get interesting...
And now, for the main event: I have a mandatory engagement coming up. I’m heading off for a little vacation known as forced military service. This "vacation" lasts either 1 year (if the cosmos smiles upon me), or 3 years (which is, well, my actual suicide trigger).
The best part? No internet-enabled phone, no computer access. Total blackout.
So, this is almost certainly the last update you’ll see for a very long time. I might manage to squeeze one final push out before my mandatory long goodbye, but don't count on it.
I did the best I could with the time I had left. Enjoy it.
And to everyone who starred SoundFlow and actually used it - thank you. Seriously. Maybe someday I'll be that legendary unpaid open-source developer who finally breaks the entire modern infrastructure, too.
Oh, and Check out my other project, LSXPrime/ProseFlow. It's a system-wide, privacy-focused Copilot that's actually helpful, and I’m sure it will be a great assist to some of you.
🚀 New Features
🎧 Codecs & Formats (SoundFlow.Codecs.FFMpeg)
- Pluggable Architecture:
AudioEnginenow supportsICodecFactoryregistration, allowing dynamic addition of format support. - New Extension: Introduced
SoundFlow.Codecs.FFMpeg.- Decoders: MP3, AAC, OGG Vorbis, Opus, FLAC, ALAC, AC3, WAV, AIFF, and more.
- Encoders: Write audio streams to MP3, AAC/M4A, FLAC, and WAV.
- Automatic Format Detection:
AssetDataProviderandStreamDataProvidernow probe streams to determine the correct codec automatically based on file headers.
🎹 MIDI & Synthesis (SoundFlow.Midi & SoundFlow.Synthesis)
- PortMidi Backend: Cross-platform MIDI I/O support via
SoundFlow.Midi.PortMidi. - MidiManager: A central hub for routing MIDI messages between physical devices and internal components.
- Synthesizer Component:
- Multi-timbral, polyphonic synthesis engine.
- Support for SoundFonts (.sf2) via
SoundFontBank. - MPE (MIDI Polyphonic Expression) support for per-note pitch bend, pressure, and timbre.
- Built-in ADSR envelopes, LFOs, and Filter modulation.
- MIDI Modifiers: Real-time MIDI effects including:
ArpeggiatorModifier(Up, Down, Random patterns).HarmonizerModifier(Chord generation).RandomizerModifier(Velocity/Pitch randomization).VelocityModifier(Curves and scaling).TransposeModifier.
📝 Metadata API (SoundFlow.Metadata)
- Unified Reader/Writer: Static
SoundMetadataReaderandSoundMetadataWriterclasses. - Format Support:
- MP3: ID3v1 and ID3v2.3/2.4 reading and writing.
- FLAC/OGG: Vorbis Comments and embedded pictures.
- MP4/M4A: iTunes-style metadata atoms (moov/udta/ilst).
- WAV/AIFF: RIFF INFO chunks and ID3 chunks.
- Cue Sheets: Support for parsing embedded Cue Sheets in FLAC and WAV.
🎛️ Core & Audio Processing
- Composition Overhaul:
- Split responsibilities into
CompositionEditor,CompositionRecorder(MIDI recording), andCompositionRenderer. - Added
MidiTrackandMidiSegmentalongside existing Audio tracks. - Project serialization now saves MIDI data, mappings, and tempo maps.
- Split responsibilities into
- ChannelMixer: New SIMD-accelerated (AVX/SSE) utility for efficient Mono/Stereo/Surround upmixing and downmixing.
- ResamplerModifier: Real-time variable speed/pitch resampling effect.
- MIDI Mapping: Use
[ControllableParameter]attribute on properties to expose them to the newMidiMappingManager. Bind physical knobs to software parameters with Linear or Logarithmic scaling.
📚 Learning Resources & Samples
The documentation website has been fully updated to reflect the v1.3.0 API changes and new features.
We have also added three new sample projects to help you get started with the new capabilities:
SoundFlow.Samples.Midi.BasicSequencing: Demonstrates how to programmatically create MIDI tracks, notes, and playback via the Synthesizer.SoundFlow.Samples.Midi.PropertyMapping: Shows how to map external MIDI controllers to software parameters (like Filter Cutoff) using theMidiMappingManager.SoundFlow.Samples.Midi.SynthesisModifiers: Illustrates how to use the Arpeggiator and Harmonizer modifiers to generate complex performances from simple input.
🛠 Improvements
- SIMD Math: Updated
MathHelperandChannelMixerto leverage hardware intrinsics for faster mixing and FFT operations. - Logging: Replaced
Console.WriteLinecalls with a centralizedSoundFlow.Utils.Logclass. Subscribe toLog.OnLogto redirect internal engine logs to your own logging framework. - Native Builds: Completely restructured the native C/C++ layer with dedicated CMake projects for
miniaudio,portmidi, andffmpeg-codec, including automated NuGet packaging via.targets.
📦 New & Updated NuGet Packages
All SoundFlow packages have been updated to version 1.3.0 and are available for download. This release introduces two major extensions required to unlock the new MIDI and Codec capabilities.
New Packages
- SoundFlow.Codecs.FFMpeg
- Adds support for decoding and encoding MP3, AAC, OGG, Opus, FLAC, ALAC, and more.
- SoundFlow.Midi.PortMidi
- Provides the cross-platform backend for MIDI I/O, device management, and synchronization.
Updated Packages
- SoundFlow (Core Library)
- SoundFlow.Extensions.WebRtc.Apm (Echo Cancellation & Noise Suppression)
⚠️ Breaking Changes
Version 1.3.0 introduces significant structural changes. If you are migrating from v1.2.x, please check the detailed migration guide:
https://lsxprime.github.io/soundflow-docs/#/docs/1.3.0/migration-guide