NAudio v1.7.0 Release Notes

Release Date: 2013-10-29 // over 10 years ago
  • πŸš€ Release announcement

    • 🏁 MediaFoundationReader allows you to play any audio files that Media Foundation can play, which on Windows 7 and above means playback of AAC, MP3, WMA, as well as playing the audio from video files.
    • 🏁 MediaFoundationEncoder allows you to easily encode audio using any Media Foundation Encoders installed on your machine. The WPF Demo application shows this in action, allowing you to encode AAC, MP3 and WMA files in Windows 8.
    • MediaFoundationTransform is a low-level class designed to be inherited from, allowing you to get direct access to Media Foundation Transforms if that’s what you need.
    • MediaFoundationResampler direct access to the Media Foundation Resampler MFT as an IWaveProvider, with the capability to set the quality level.
    • NAudio is now built against .NET 3.5. This allows us to make use of language features such as extension methods, LINQ and Action/Func parameters.
    • πŸ‘€ You can enumerate Media Foundation Transforms to see what’s installed. The WPF Demo Application shows how to do this.
    • πŸ‘€ WasapiCapture supports exclusive mode, and a new WASAPI capture demo has been added to the WPF demo application, allowing you to experiment more easily to see what capture formats your soundcard will support.
    • A new ToSampleProvider extension method on IWaveProvider now makes it trivially easy to to convert any PCM WaveProvider to an ISampleProvider. There is also another extension method allowing an ISampleProvider to be passed directly into any IWavePlayer implementation without the need for converting back to an IWaveProvider first.
    • πŸ‘ WaveFileWriter supports creating a 16 bit WAV file directly from an ISampleProvider with the new CreateWaveFile16static method.
    • IWavePosition interface implemented by several IWavePlayer classes allows greater accuracy of determining exact position of playback. Contribution courtesy of ioctlLR
    • AIFF File Writer (courtesy of Gaiwa)
    • βž• Added the ability to add a local ACM driver allowing you to use ACM codecs without installing them. Use AcmDriver.AddLocalDriver
    • ReadFullyproperty allows you to create never-ending MixingSampleProvider, for use when dynamically adding and removing inputs.
    • WasapiOut now allows setting the playback volume directly on the MMDevice.
    • πŸ‘Œ Support for sending MIDI Sysex messages, thanks to Marcel Schot
    • A new BiQuadFilterfor easy creation of various filter types including high pass, low pass etc
    • A new EnvelopeGeneratorclass for creating ADSR envelopes based on a blog post from Nigel Redmon.
    • πŸ›  Lots of bugfixes (see the commit history for more details). Some highlights include…
      • Fixed a long-standing issue with MP3FileReader incorrectly interpreting some metadata as an MP3 frame then throwing an exception saying the sample rate has changed.
      • WaveFileReader.TryReadFloat works in stereo files
      • Fixed possible memory exception with large buffer sizes for WaveInBuffer and WaveOutBuffer
    • Various code cleanups including removal of use of ApplicationException, and removal of all classes marked as obsolete.
    • πŸš€ Preview Release of WinRT support.The NAudio nuget package now includes a WinRT version of NAudio for Windows 8 store apps. This currently supports basic recording and playback. This should still very much be thought of as a preview release. There are still several parts of NAudio (in particular several of the file readers and writers) that are not accessible, and we may need to replace the MFT Resampler used by WASAPI with a fully managed one, as it might mean that Windows Store certification testing fails.
      • Use WasapiOutRT for playback
      • Use WasapiCaptureRTfor record (thanks to Kassoul for some performance enhancement suggestions)
      • There is a demo application in the NAudio source code showing record and playback