0 Comments Posted in:

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.

Want to get up to speed with the the fundamentals principles of digital audio and how to got about writing audio applications with NAudio? Be sure to check out my Pluralsight courses, Digital Audio Fundamentals, and Audio Programming with NAudio.
Vote on HN