SoundFlow v1.3.0 #98
Replies: 1 comment 3 replies
-
|
This release has fixed some NativeAot warnings related to device management. However, there are a few more warnings remaining related to composition persistence. These warnings (IL2026) are flagging potential runtime failures if we enable application trimming or Ahead-of-Time (AOT) compilation. The root issue is that we are using the reflection-based overloads of I noticed these NativeAot issues just minutes before releasing. Both fixes could have been merged, but doing so would introduce additional public APIs. This means anyone publishing with NativeAOT would need to manually use these APIs on every single external component, modifier, or analyzer they write. But my philosophy remains: minimize what the developer needs to do and automate everything the library can handle. To do this properly--without creating extra developer work--I need to create a dedicated Source Generator package to automatically discover and handle these requirements. Because of this necessary work, I decided to postpone the full fix for a later release. Another point that I am worried about is NativeAOT compatibility with Reflection. The new MIDI mapping system heavily depends on Reflection to control the mapped components/modifiers' properties and methods at runtime. Since I've never personally used NativeAOT and only noticed this compatibility challenge minutes before release (thanks to a report in the discussions), I haven't done any testing beyond basic playback on a NativeAOT-enabled project. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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
📢 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)AudioEnginenow supportsICodecFactoryregistration, allowing dynamic addition of format support.SoundFlow.Codecs.FFMpeg.AssetDataProviderandStreamDataProvidernow probe streams to determine the correct codec automatically based on file headers.🎹 MIDI & Synthesis (
SoundFlow.Midi&SoundFlow.Synthesis)SoundFlow.Midi.PortMidi.SoundFontBank.ArpeggiatorModifier(Up, Down, Random patterns).HarmonizerModifier(Chord generation).RandomizerModifier(Velocity/Pitch randomization).VelocityModifier(Curves and scaling).TransposeModifier.📝 Metadata API (
SoundFlow.Metadata)SoundMetadataReaderandSoundMetadataWriterclasses.🎛️ Core & Audio Processing
CompositionEditor,CompositionRecorder(MIDI recording), andCompositionRenderer.MidiTrackandMidiSegmentalongside existing Audio tracks.[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
MathHelperandChannelMixerto leverage hardware intrinsics for faster mixing and FFT operations.Console.WriteLinecalls with a centralizedSoundFlow.Utils.Logclass. Subscribe toLog.OnLogto redirect internal engine logs to your own logging framework.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
Updated Packages
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
This discussion was created from the release SoundFlow v1.3.0.
Beta Was this translation helpful? Give feedback.
All reactions