NAudio 1.10 released with .NET Core 3 support
I'm pleased to announce that NAudio 1.10 is available on NuGet. This version doesn't contain too many features, but the most notable change is that it now adds support for .NET Core 3 (thanks to a contribution from jwosty). This allows access to ASIO, WaveIn
and WaveOut
in .NET Core 3.0 applications that are running on Windows.
Here are the key changes in this version:
- #574 Support ASIO and WaveIn/WaveOut in .NET Core 3.0
- #441 recognise MP3 Xing headers with 'Info' magic
- #584 Fixes to WasapiOut.GetPosition
- #515 Switched from Fake to Cake build script
Part of the impetus for releasing this version of NAudio was that I heard that a well-known speaker recently complained at a conference that this particular PR hadn't been accepted yet. I can understand his frustration, but I let me take a moment to share a few reasons why I sometimes take a long time to accept pull requests (and sometimes don't accept them at all):
- NAudio is just a spare time project, and I have many other commitments on my time. In practice this means that I only occasionally have time to work through the PR backlog.
- It's surprisingly common for PRs to contain bugs and often not even build. One thing that has really helped on this front is hooking up an Azure DevOps Pipeline to automatically build every PR. This gives me immediate visibility of whether a PR is ready for inspection or not. Unfortunately in this particular case, the PR didn't build on the CI server or on my local machine, and it required a few hours of experimenting to work out why.
- The nature of NAudio means that lots of functionality cannot meaningfully be tested with unit tests. I need to run on different operating systems, bit depths, and with different sound cards, and actually listen to the audio being produced to be confident that things are still working. That means I need time for manual testing before a new release.
- Whenever I accept a new feature into NAudio, end users expect me to support it. It's very rare for the original PR author to hang around providing help, and usually they don't create any documentation either. So I need to understand the code well enough to document and support the feature going forwards before completing the PR.
With that said, I am very grateful to everyone who has submitted PRs, bug reports, and answered questions on GitHub and Stack Overflow, and please accept my apologies if I have been slow to respond to your contribution or question.
Comments
Hello Heath.
SlopranoSorry if this isn't the right channel for this. I'm currently investigating on issue in a documentation program where when playbacking dictations it comes to a halt with the error "Cannot find device driver" and says it can't load volume and speed controls.
I'm trying to get hold of the developers of the program but learned the program is using Media.Sound.Mixer.NAudio.dll which led me to this webpage. I wondered if you would happen know if there are any device/driver combinations that doesn't work with naudio.dll or any other way to troubleshoot this.
Sorry again if this isn't the right place for this.
Sincerely,
Sloprano
I'm afraid I don't know what Media.Sound.Mixer.NAudio.dll is or uses. So you probably need to find who created that. In terms of what device driver you are using, a lot depends on what version of Windows you are running on
Mark HeathHi, I am trying to make a frontend app and i need to stream the audio output though WebRTC for real time, can i do this with NAudio?. Grate work and thnx!!
EddievI'm afraid that's not something I have any experience with - not sure what underlying protocol WebRTC uses, but you'd likely need another library to support that
Mark HeathHello Mark, thanks for the NAudio lib. It's great! Yesterday I discovered that the reception of sysex messages doesn't work. What could be the cause?
Uwethe NAudio midi in support is very basic I'm afraid - just receives "short messages" - I haven't had need to receive sysex so it's not available
Mark HeathHi Mark,
Vladimir GlushkovWith latest version of NAudio and NetCore 3.1 will the decoding features work under linux? I don't need any playback support, just the decoding from AAC into PCM and curious if it's possible with NAudio to support it on both platforms (windows/linux). Thanks!
I'm afraid most of NAudio's codecs come from Windows APIs (e.g. ACM or Media Foundation) so no, they won't work on Linux. You'd probably be best making a wrapper for libfaac
Mark HeathAloha Mark,
Jonathan HumphriesOur team uses NAudio to facilitate a production audio fingerprinting process. The product is gaining traction and we need to move to Kubernette/Docker Containers which means running on linux. We're debating between helping you with moving the project to cross platform compatible APIs vs rebuilding the entire audio fingerprinting code on a new base. Would you mind messaging me privately to discuss?
Mahalo,
Jonathan
naudio not supporting in .net 5
samCan we use blob url to convert wave stereo file to mono audio file??
sam