V1.2.0 #73
LSXPrime
announced in
Announcements
V1.2.0
#73
Replies: 2 comments 2 replies
-
|
Wow, awesome! this is a delightful moment. Thank you so much for accomplishing this! |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
Can the new version obtain PCM data for each frame? Currently, the data type obtained through the callback method is span. I don't quite understand how to handle this data. It would be simpler if byte[] was returned, just like NAudio used in my other Winform project, which callback byte data for each frame based on parameters such as sampling rate. THANK YOU VERY MUCH! |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
SoundFlow v1.2.0 Release Notes: The Multi-Device Evolution
We are thrilled to announce SoundFlow v1.2.0, a landmark release that introduces a major architectural refactoring designed to fundamentally enhance how you interact with audio devices. This version moves away from a singleton-based model to a device-centric, instance-based architecture, enabling true multi-device input and output. You can now manage and switch between multiple playback and capture devices simultaneously and independently, opening up a world of new possibilities for complex audio applications.
This release not only revolutionizes device management but also integrates several new features, performance improvements, and critical bug fixes, building on the stable foundation of recent patches.
🚀 Key Highlights of v1.2.0
VoiceIsolationEffect: An experimental audio modifier for isolating human speech frequencies.✨ New Features & Architectural Changes
AudioEngine.InstanceandMixer.Masterhave been removed. The new design introduces explicitAudioPlaybackDevice,AudioCaptureDevice, andFullDuplexDeviceabstractions.MasterMixer, allowing for isolated control and parallel operations.SoundComponent,ISoundDataProvider,SoundModifier, andAudioAnalyzerderivatives) now receiveAudioEngineandAudioFormatcontext directly via their constructors.Engine.SwitchDevice()API allows for seamless hot-swapping of active audio devices without losing state. Components, event subscribers, and other configurations are preserved during the switch.VoiceIsolationEffect(Experimental):MultiEnginesSample Project:🔧 Improvements & Bug Fixes (Integrated from v1.1.2 and more)
This release incorporates and builds upon the critical fixes and optimizations previously introduced in SoundFlow v1.1.2, ensuring that v1.2.0 provides the most stable and performant experience.
NetworkDataProviderhas been refactored to use a chunked streaming and decoding model. This resolves excessive memory usage, drastically reducing memory consumption for long audio files (e.g., from ~1GB down to ~20MB for a 15-minute audio file).MathHelperfor Scalar, SSE, and AVX paths to ensure consistent behavior across different CPU architectures. SIMD paths are now toggleable via static properties for easier debugging.🚨 Breaking Changes: Action Required!
This release introduces a fundamental architectural change that affects the entire public API of SoundFlow. Please review the following changes carefully:
AudioEngine.InstanceRemoved: The global singletonAudioEngine.Instancehas been removed. You must now explicitly instantiate anAudioEngine(e.g.,new MiniAudioEngine()).Mixer.Master. You must now first initialize a device (e.g.,engine.InitializePlaybackDevice(...)) and then add components to that specific device'sMasterMixer.SoundComponent,ISoundDataProvider,SoundModifier, andAudioAnalyzerderivatives have changed. They now require anAudioEngineand/orAudioFormatinstance to be passed in.AudioEngine.OnAudioProcessedEvent Removed: The globalAudioEngine.OnAudioProcessedevent is no longer available. Events for processed audio are now tied to specific devices (e.g.,AudioCaptureDevice.OnAudioProcessed).SwitchDeviceAPI Overhaul: The previousSwitchDeviceAPI is replaced with new, more explicit methods on theAudioEngineinstance that return a new device object.We highly recommend reviewing the fully updated documentation website, which now reflects all v1.2.0 changes: https://lsxprime.github.io/soundflow-docs/, and exploring the new
MultiEnginessample project to adapt your existing code to the new architecture.This release marks a significant milestone for SoundFlow, providing unprecedented flexibility, robustness, and scalability for your audio applications. We are excited to see what you build with these new capabilities!
As always, we welcome your feedback and contributions. Thank you for being a part of the SoundFlow community.
This discussion was created from the release V1.2.0.
Beta Was this translation helpful? Give feedback.
All reactions