One of the criticisms I often get about NAudio is that the documentation isn’t good enough. And although I have written numerous tutorials and articles about it (as well as two Pluralsight courses), I do accept that there is a lot of scope for improvement.
So I decided in November to see if I could write a short article or tutorial a day and use it to form the basis for a new set of documentation, especially now that CodePlex (which was the old home for NAudio documentation) is being shut down.
I’ve implemented the documentation as markdown files in the GitHub repo, to make it as simple as possible to allow community contributions and improvements. I’ve just about managed to keep up with the goal of a document a day.
Hopefully I’ll be able to add to and expand on this list in the future, to make NAudio much more accessible to new beginners. I’m also planning to insist on contributors of new features adding a tutorial of their own to ensure the the documentation remains comprehensive going forwards.
Here’s the full list of new articles I’ve written this month:
- Playing an Audio File from a WinForms application
- Playing an Audio File from a Console application
- Playing Audio from a URL
- Choose an audio output device type
- Enumerate and select Output Devices
- Creating and configuring a WasapiOut device
- Handling playback stopped
- Understanding WaveStream, IWavePlayer and ISampleProvider
Working with Codecs
- Convert an MP3 to WAV
- Encode to MP3 and other formats using MediaFoundationEncoder
- Enumerate Media Foundation Transforms (MFTs)
- Enumerate ACM Codecs
Working with audio files
- Convert between mono and stereo
- Concatenating Audio
- Skip and Take Using OffsetSampleProvider
- Using RawSourceWaveStream
- Adjust the pitch of audio using SmbPitchShiftingSampleProvider