<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>naudio Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/naudio/Wiki/View.aspx?title=Home</link><description>naudio Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>https://naudio.codeplex.com/wikipage?version=59</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;NAudio Overview&lt;/h2&gt;NAudio is an open source .NET audio and MIDI library, containing dozens of useful audio related classes intended to speed development of audio related utilities in .NET. It has been in development since 2002 and has grown to include a wide variety of features. While some parts of the library are relatively new and incomplete, the more mature features have undergone extensive testing and can be quickly used to add audio capabilities to an existing .NET application. NAudio can be quickly added to your .NET application &lt;a href="https://nuget.org/packages/NAudio"&gt;using NuGet&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio demo project showing an MP3 file playing:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=naudio&amp;DownloadId=46923" alt="naudiodemo.png" title="naudiodemo.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio WPF Project showing waveform visualisation and spectrum analyser:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=naudio&amp;DownloadId=240418" alt="NAudioWPF.png" title="NAudioWPF.png" /&gt;
&lt;h2&gt;Latest News&lt;/h2&gt;For the latest news and more documentation on NAudio, visit &lt;a href="http://mark-dot-net.blogspot.com/search/label/NAudio"&gt;Mark Heath&amp;#39;s blog&lt;/a&gt;.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;26 Oct 2012&lt;/b&gt; NAudio 1.6 Released. Read the &lt;a href="http://mark-dot-net.blogspot.co.uk/2012/10/naudio-16-release-notes-10th.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;9 Sep 2012&lt;/b&gt; ASIO Recording Support added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;19 Dec 2011&lt;/b&gt; NAudio 1.5 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/12/naudio-15-released.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Apr 2011&lt;/b&gt; NAudio 1.4 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/04/naudio-14-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;15 Apr 2011&lt;/b&gt; NAudio demo now shows how to select output devices (for WaveOut, DirectSound, WASAPI and ASIO), and can play 8 bit, 16 bit, 24 bit, and 32 bit float WAV files. Fixed a longstanding ASIO issue.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;7 Nov 2010&lt;/b&gt; Major improvements to Mp3FileReader&lt;/li&gt;
&lt;li&gt;&lt;b&gt;10 Oct 2009&lt;/b&gt; Version 1.3 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2009/10/naudio-13-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Sep 2009&lt;/b&gt; We are getting close to feature complete for 1.3. Last chance to get in any feedback on the API&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 Aug 2009&lt;/b&gt; WPF Waveform drawing demo project including FFT added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;28 Feb 2009&lt;/b&gt; Lots of new stuff is being added and planned, so do check out the Source Code tab to have a sneak peak at what&amp;#39;s coming in 1.3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 June 2008&lt;/b&gt; Version 1.2 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2008/06/naudio-12-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;NAudio Features&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Play back audio using a variety of APIs
&lt;ul&gt;&lt;li&gt;WaveOut&lt;/li&gt;
&lt;li&gt;DirectSound&lt;/li&gt;
&lt;li&gt;ASIO&lt;/li&gt;
&lt;li&gt;WASAPI (Windows Vista and above)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Decompress audio from different Wave Formats
&lt;ul&gt;&lt;li&gt;MP3 decode using ACM or DMO codec&lt;/li&gt;
&lt;li&gt;AIFF&lt;/li&gt;
&lt;li&gt;G.711 mu-law and a-law&lt;/li&gt;
&lt;li&gt;ADPCM&lt;/li&gt;
&lt;li&gt;G.722&lt;/li&gt;
&lt;li&gt;Speex (using NSpeex)&lt;/li&gt;
&lt;li&gt;SF2 files&lt;/li&gt;
&lt;li&gt;Decode using any ACM codec installed on your computer&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Record audio using WaveIn, WASAPI or ASIO&lt;/li&gt;
&lt;li&gt;Read and Write standard .WAV files&lt;/li&gt;
&lt;li&gt;Mix and manipulate audio streams using a 32 bit floating mixing engine&lt;/li&gt;
&lt;li&gt;Extensive support for reading and writing MIDI files&lt;/li&gt;
&lt;li&gt;Full MIDI event model&lt;/li&gt;
&lt;li&gt;Basic support for Windows Mixer APIs&lt;/li&gt;
&lt;li&gt;A collection of useful Windows Forms Controls&lt;/li&gt;
&lt;li&gt;Some basic audio effects, including a compressor&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Projects Using NAudio&lt;/h2&gt;NAudio currently is used to support a number of audio related utilities, some of which may be moved to be hosted on CodePlex in the future. If you have used NAudio for a project, please get in touch so we can post it here.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/skypefx"&gt;Skype Voice Changer&lt;/a&gt; - Modify your voice with audio effects while talking on Skype&lt;/li&gt;
&lt;li&gt;&lt;a href="http://voicerecorder.codeplex.com"&gt;.NET Voice Recorder&lt;/a&gt; - Record your voice, save to MP3, and visualise the waveform using WPF. Now includes autotune&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilemapper"&gt;MIDI File Mapper&lt;/a&gt; - Utility for mapping MIDI drum files for use on other samplers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilesplitter"&gt;MIDI File Splitter&lt;/a&gt; - Split MIDI files up at their markers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpmod.codeplex.com/"&gt;SharpMod&lt;/a&gt; - managed port of MikMod, can play mod files in both WinForms and Silverlight&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nvorbis.codeplex.com/"&gt;NVorbis&lt;/a&gt; - Fully managed Vorbis decoder, with support for NAudio&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/practicesharp/"&gt;Practice#&lt;/a&gt; - Windows tool for practicing playing an instrument with playback music. &lt;b&gt;Includes FLAC playback support and an equaliser for NAudio.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wpfsvl.codeplex.com"&gt;WPF Sound Visualization Library&lt;/a&gt; - beautiful waveform and spectrum analyzer code written for WPF, comes with NAudio sample&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.teacheyteach.com/"&gt;Teachey Teach&lt;/a&gt; - utility to help English language conversation teachers generate feedback for students&lt;/li&gt;
&lt;li&gt;&lt;a href="http://breakthrusoftware.com/html/products/soundmgr/index.html"&gt;Sound Mill&lt;/a&gt; -  an audio player, list organizer and automation manager&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cybermental.com/bravura-studio/"&gt;Bravura Studio&lt;/a&gt; - a modular, extensible application and platform for creating and experimenting with music and audio.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sipsorcery.codeplex.com"&gt;SIPSorcery&lt;/a&gt; - .NET softphone framework&lt;/li&gt;
&lt;li&gt;&lt;a href="http://squiggle.codeplex.com/"&gt;Squiggle&lt;/a&gt; - A free open source LAN Messenger&lt;/li&gt;
&lt;li&gt;&lt;a href="http://helixtoolkit.codeplex.com/"&gt;Helix 3D toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/airphone-tv/"&gt;airphone-tv&lt;/a&gt; - A revival of axStream to implement control through the iPhone&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jamnet.codeplex.com/"&gt;JamNet&lt;/a&gt; - a Silverlight drum sample player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jinglejim.de/Startseite.aspx"&gt;Jingle Jim&lt;/a&gt; - Jingle Software (German language)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.winisoft.ch"&gt;All My Music&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ispyconnect.com/"&gt;iSpy&lt;/a&gt; - Open Source Camera Security Software&lt;/li&gt;
&lt;li&gt;&lt;a href="http://radiotuna.com/OnlineRadioPlayer/Intro"&gt;RadioTuna&lt;/a&gt; - Online internet radio player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.firetalknew.com"&gt;Fire Talk New&lt;/a&gt; - chat program&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.marcsapps.co.uk/"&gt;AVR Audio Guard&lt;/a&gt; - utility to fix a HDMI related issue&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;More Info&lt;/h2&gt;
For more information, please visit the &lt;a href="http://naudio.codeplex.com/documentation"&gt;NAudio Documentation Wiki&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Donate&lt;/h2&gt;NAudio is a free open source project that is developed in personal time. You can show your appreciation for NAudio and support future development by donating.&lt;br /&gt;&lt;a href="https&amp;#58;&amp;#47;&amp;#47;www.paypal.com&amp;#47;cgi-bin&amp;#47;webscr&amp;#63;cmd&amp;#61;_s-xclick&amp;#38;hosted_button_id&amp;#61;TE4B48U2PPEL6"&gt;&lt;img src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=naudio&amp;DownloadId=233829" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Thu, 23 May 2013 13:36:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130523013641P</guid></item><item><title>New Comment on "Convert a MP3 to WAV"</title><link>https://naudio.codeplex.com/wikipage?title=Convert a MP3 to WAV&amp;ANCHOR#C27449</link><description>I forgot to say that the MP3 is from mp3skyperecorder I am using 24 bit, at 16 kHz</description><author>jbrill3000</author><pubDate>Fri, 10 May 2013 21:38:29 GMT</pubDate><guid isPermaLink="false">New Comment on "Convert a MP3 to WAV" 20130510093829P</guid></item><item><title>New Comment on "Convert a MP3 to WAV"</title><link>https://naudio.codeplex.com/wikipage?title=Convert a MP3 to WAV&amp;ANCHOR#C27448</link><description>I am using this code to convert from MP3 to WAV but the original MP3 file is 55minutes and 4 secs and the wav file is 54 minutes  and 5 seconds. Is there a way to make the files come out to be the same length by time&amp;#63; It is critical that they be the same length for my application. Any ideas&amp;#63;</description><author>jbrill3000</author><pubDate>Fri, 10 May 2013 21:35:46 GMT</pubDate><guid isPermaLink="false">New Comment on "Convert a MP3 to WAV" 20130510093546P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://naudio.codeplex.com/documentation?version=30</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;The NAudio Documentation Wiki&lt;/h2&gt;
&lt;h3&gt;NAudio FAQ&lt;/h3&gt;
&lt;h4&gt;What is NAudio?&lt;/h4&gt;
&lt;p&gt;NAudio is an open source audio API for .NET written in C# by Mark Heath, with contributions from many other developers. It is intended to provide a comprehensive set of useful utility classes from which you can construct your own audio application.&lt;/p&gt;
&lt;h4&gt;Why NAudio?&lt;/h4&gt;
&lt;p&gt;NAudio was created because the Framework Class Library that shipped with .NET 1.0 had no support for playing audio. The System.Media namespace introduced in .NET 2.0 provided a small amount of support, and the MediaElement in WPF and Silverlight took that
 a bit further. The vision behind NAudio is to provide a comprehensive set of audio related classes allowing easy development of utilities that play or record audio, or manipulate audio files in some way.&lt;/p&gt;
&lt;h4&gt;Can I Use NAudio in my Project?&lt;/h4&gt;
&lt;p&gt;NAudio is licensed under the Microsoft Public License (Ms-PL) which means that you can use it in whatever project you like including commercial projects. Of course we would love it if you share any bug-fixes or enhancements you made to the original NAudio
 project files.&lt;/p&gt;
&lt;h4&gt;Is .NET Performance Good Enough for Audio?&lt;/h4&gt;
&lt;p&gt;While .NET cannot compete with unmanaged languages for very low latency audio work, it still performs better than many people would expect. On a fairly modest PC, you can quite easily mix multiple WAV files together, including pass them through various effects
 and codecs, play back glitch free with a latency of around 50ms.&lt;/p&gt;
&lt;h4&gt;How can I get help?&lt;/h4&gt;
&lt;p&gt;There are three main ways to get help. If you have a specific question concerning how to use NAudio, then I recommend that you ask on
&lt;a href="http://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; and &lt;a href="http://stackoverflow.com/questions/tagged/naudio"&gt;
tag your question with naudio&lt;/a&gt;. This gives you the best chance of getting a quick answer. You can also ask a question on the
&lt;a href="http://naudio.codeplex.com/discussions"&gt;NAudio discussion forums&lt;/a&gt; here on CodePlex. I attempt to answer all questions, but since this is a spare time project, occasionally I get behind. Finally, I am occasionally able to offer paid support for situations
 where you need quick advice, bugfixes or new features. Use the contact feature of the Codeplex website to get in touch with
&lt;a href="http://www.codeplex.com/site/users/view/markheath"&gt;Mark Heath&lt;/a&gt; if you wish to pursue this option.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I submit a patch?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I welcome contributions to NAudio and have accepted many patches, but if you want your code to be included, please familiarise yourself with the following guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your submission must be your own work, and able to be released under the MS-PL license.
&lt;/li&gt;&lt;li&gt;You will need to make sure your code conforms to the layout and naming conventions used elsewhere in NAudio.
&lt;/li&gt;&lt;li&gt;Remember that there are many existing users of NAudio. A patch that changes the public interface is not likely to be accepted.
&lt;/li&gt;&lt;li&gt;Try to write &amp;quot;clean code&amp;quot; - avoid long functions and long classes. Try to add a new feature by creating a new class rather than putting loads of extra code inside an existing one.
&lt;/li&gt;&lt;li&gt;I don't usually accept contributions I can't test, so please write unit tests (using NUnit) if at all possible. If not, give a clear explanation of how your feature can be unit tested and provide test data if appropriate. Tell me what you did to test it
 yourself, including what operating systems and soundcards you used. &lt;/li&gt;&lt;li&gt;If you are adding a new feature, please consider writing a short tutorial on how to use it.
&lt;/li&gt;&lt;li&gt;Unless your patch is a small bugfix, I will code review it and give you feedback. You will need to be willing to make the recommended changes before it can be integrated into the main code.
&lt;/li&gt;&lt;li&gt;The easiest way to provide a patch is to create your own fork on Mercurial and issue a pull request. See
&lt;a href="http://tekpub.com/codeplex"&gt;this video&lt;/a&gt; if you are new to Mercurial. &lt;/li&gt;&lt;li&gt;Please also bear in mind that when you add a feature to NAudio, that feature will generate future support requests and bug reports. Are you willing to stick around on the forums and help out people using it?
&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;How do I...?&lt;/h4&gt;
&lt;p&gt;The best way to learn how to use NAudio is to download the source code and look at the two demo applications - NAudioDemo and NAudioWpfDemo. These demonstrate several of the key capabilities of the NAudio framework. They also have the advantage of being
 kept up to date, whilst some of the tutorials you will find on the internet refer to old versions of NAudio.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/naudio-audio-output-devices.html"&gt;Choose an audio output driver&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=MP3"&gt;Play an MP3 File&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/501521/How-to-convert-between-most-audio-formats-in-NET"&gt;Understand how to convert between any audio formats you have codecs for&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=Convert%20a%20MP3%20to%20WAV"&gt;Convert an MP3 to WAV&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=WAV"&gt;Play a WAV File&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/04/how-to-use-wavefilewriter.html"&gt;Use the WavFileWriter class&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/how-to-play-back-streaming-mp3-using.html"&gt;Play streaming MP3&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/10/looped-playback-in-net-with-naudio.html"&gt;Implement Looped Playback&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/09/trimming-wav-file-using-naudio.html"&gt;Trim a WAV File&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/10/playback-of-sine-wave-in-naudio.html"&gt;Play a Sine Wave&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2010/11/merging-mp3-files-with-naudio-in-c-and.html"&gt;Merge MP3 Files&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/how-to-convert-aiff-files-to-wav-using.html"&gt;Convert an AIFF file to WAV&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2012/01/handling-multi-channel-audio-in-naudio.html"&gt;Work with Multi-Channel Audio&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=Create%20an%20ID3v2%20Tag"&gt;Create an ID3v2 tag&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Getting Started with NAudio &amp;ndash; Downloading and Compiling&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download a copy of the NAudio source code (or a pre-compiled version but the newest available code is available in source form first).
&lt;br&gt;
&lt;a href="http://naudio.codeplex.com/SourceControl/list/changesets"&gt;http://naudio.codeplex.com/SourceControl/list/changesets&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;The default project is set to the NAudio class library. Class Library&amp;rsquo;s don&amp;rsquo;t have anything to look at when you press F5. If this is your first time with NAudio, set the start-up project as
&lt;strong&gt;NAudioDemo&lt;/strong&gt; and then hit F5. The NAudioDemo project shows the base functionality you can utilise through your own project.
&lt;/li&gt;&lt;li&gt;In the BIN directory for the built solution, you can find a copy of the NAudio library for using and referencing in your own project. Make sure that you grab a copy of the NAudio.XML file as well if your copying it over to your own projects directory, that
 way you will have the intellisense documentation for use in Visual Studio when working with the NAudio API.
&lt;/li&gt;&lt;/ol&gt;
&lt;div id="_mcePaste" style="left:-10000px; top:342px; width:1px; height:1px; overflow:hidden"&gt;
http://stackoverflow.com/&lt;/div&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Thu, 14 Mar 2013 14:26:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20130314022622P</guid></item><item><title>New Comment on "WAV"</title><link>http://naudio.codeplex.com/wikipage?title=WAV&amp;ANCHOR#C26801</link><description>This worked for me to play a wav file&amp;#58;&amp;#10;&amp;#10;using NAudio.Wave&amp;#59;&amp;#10;.....&amp;#10;            var soundFile &amp;#61; &amp;#34;Something.wav&amp;#34;&amp;#59;&amp;#10;           using &amp;#40;var wfr &amp;#61; new WaveFileReader&amp;#40;soundFile&amp;#41;&amp;#41;&amp;#10;            using &amp;#40;WaveChannel32 wc &amp;#61; new WaveChannel32&amp;#40;wfr&amp;#41; &amp;#123;PadWithZeroes &amp;#61; false&amp;#125;&amp;#41;&amp;#10;            using &amp;#40;var audioOutput &amp;#61; new DirectSoundOut&amp;#40;&amp;#41;&amp;#41;            &amp;#10;            &amp;#123;&amp;#10;                audioOutput.Init&amp;#40;wc&amp;#41;&amp;#59;&amp;#10;                &amp;#10;                audioOutput.Play&amp;#40;&amp;#41;&amp;#59;&amp;#10;                &amp;#10;                while &amp;#40;audioOutput.PlaybackState &amp;#33;&amp;#61; PlaybackState.Stopped&amp;#41;&amp;#10;                &amp;#123;                    &amp;#10;                    Thread.Sleep&amp;#40;20&amp;#41;&amp;#59;&amp;#10;                &amp;#125;&amp;#10;                &amp;#10;                audioOutput.Stop&amp;#40;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;&amp;#10;&amp;#10;&amp;#10;In this case, the PlaybackStopped event was raised, but I guess it&amp;#39;s not good to count on that.&amp;#10;&amp;#10;This would work when running as a service on Windows 7.</description><author>wtheronjones</author><pubDate>Thu, 07 Mar 2013 20:16:39 GMT</pubDate><guid isPermaLink="false">New Comment on "WAV" 20130307081639P</guid></item><item><title>New Comment on "WAV"</title><link>http://naudio.codeplex.com/wikipage?title=WAV&amp;ANCHOR#C26754</link><description>Could someone be a lamb and post a sample&amp;#63;  I need to play a WAV file from a Windows Service on Windows 7 and this is supposed to be the solution to my problems.</description><author>wtheronjones</author><pubDate>Sat, 02 Mar 2013 01:32:48 GMT</pubDate><guid isPermaLink="false">New Comment on "WAV" 20130302013248A</guid></item><item><title>Updated Wiki: Home</title><link>https://naudio.codeplex.com/wikipage?version=58</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;NAudio Overview&lt;/h2&gt;NAudio is an open source .NET audio and MIDI library, containing dozens of useful audio related classes intended to speed development of audio related utilities in .NET. It has been in development since 2002 and has grown to include a wide variety of features. While some parts of the library are relatively new and incomplete, the more mature features have undergone extensive testing and can be quickly used to add audio capabilities to an existing .NET application. NAudio can be quickly added to your .NET application &lt;a href="https://nuget.org/packages/NAudio"&gt;using NuGet&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio demo project showing an MP3 file playing:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=46923" alt="naudiodemo.png" title="naudiodemo.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio WPF Project showing waveform visualisation and spectrum analyser:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=240418" alt="NAudioWPF.png" title="NAudioWPF.png" /&gt;
&lt;h2&gt;Latest News&lt;/h2&gt;For the latest news and more documentation on NAudio, visit &lt;a href="http://mark-dot-net.blogspot.com/search/label/NAudio"&gt;Mark Heath&amp;#39;s blog&lt;/a&gt;.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;26 Oct 2012&lt;/b&gt; NAudio 1.6 Released. Read the &lt;a href="http://mark-dot-net.blogspot.co.uk/2012/10/naudio-16-release-notes-10th.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;9 Sep 2012&lt;/b&gt; ASIO Recording Support added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;19 Dec 2011&lt;/b&gt; NAudio 1.5 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/12/naudio-15-released.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Apr 2011&lt;/b&gt; NAudio 1.4 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/04/naudio-14-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;15 Apr 2011&lt;/b&gt; NAudio demo now shows how to select output devices (for WaveOut, DirectSound, WASAPI and ASIO), and can play 8 bit, 16 bit, 24 bit, and 32 bit float WAV files. Fixed a longstanding ASIO issue.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;7 Nov 2010&lt;/b&gt; Major improvements to Mp3FileReader&lt;/li&gt;
&lt;li&gt;&lt;b&gt;10 Oct 2009&lt;/b&gt; Version 1.3 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2009/10/naudio-13-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Sep 2009&lt;/b&gt; We are getting close to feature complete for 1.3. Last chance to get in any feedback on the API&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 Aug 2009&lt;/b&gt; WPF Waveform drawing demo project including FFT added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;28 Feb 2009&lt;/b&gt; Lots of new stuff is being added and planned, so do check out the Source Code tab to have a sneak peak at what&amp;#39;s coming in 1.3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 June 2008&lt;/b&gt; Version 1.2 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2008/06/naudio-12-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;NAudio Features&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Play back audio using a variety of APIs
&lt;ul&gt;&lt;li&gt;WaveOut&lt;/li&gt;
&lt;li&gt;DirectSound&lt;/li&gt;
&lt;li&gt;ASIO&lt;/li&gt;
&lt;li&gt;WASAPI (Windows Vista and above)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Decompress audio from different Wave Formats
&lt;ul&gt;&lt;li&gt;MP3 decode using ACM or DMO codec&lt;/li&gt;
&lt;li&gt;AIFF&lt;/li&gt;
&lt;li&gt;G.711 mu-law and a-law&lt;/li&gt;
&lt;li&gt;ADPCM&lt;/li&gt;
&lt;li&gt;G.722&lt;/li&gt;
&lt;li&gt;Speex (using NSpeex)&lt;/li&gt;
&lt;li&gt;SF2 files&lt;/li&gt;
&lt;li&gt;Decode using any ACM codec installed on your computer&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Record audio using WaveIn, WASAPI or ASIO&lt;/li&gt;
&lt;li&gt;Read and Write standard .WAV files&lt;/li&gt;
&lt;li&gt;Mix and manipulate audio streams using a 32 bit floating mixing engine&lt;/li&gt;
&lt;li&gt;Extensive support for reading and writing MIDI files&lt;/li&gt;
&lt;li&gt;Full MIDI event model&lt;/li&gt;
&lt;li&gt;Basic support for Windows Mixer APIs&lt;/li&gt;
&lt;li&gt;A collection of useful Windows Forms Controls&lt;/li&gt;
&lt;li&gt;Some basic audio effects, including a compressor&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Projects Using NAudio&lt;/h2&gt;NAudio currently is used to support a number of audio related utilities, some of which may be moved to be hosted on CodePlex in the future. If you have used NAudio for a project, please get in touch so we can post it here.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/skypefx"&gt;Skype Voice Changer&lt;/a&gt; - Modify your voice with audio effects while talking on Skype&lt;/li&gt;
&lt;li&gt;&lt;a href="http://voicerecorder.codeplex.com"&gt;.NET Voice Recorder&lt;/a&gt; - Record your voice, save to MP3, and visualise the waveform using WPF. Now includes autotune&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilemapper"&gt;MIDI File Mapper&lt;/a&gt; - Utility for mapping MIDI drum files for use on other samplers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilesplitter"&gt;MIDI File Splitter&lt;/a&gt; - Split MIDI files up at their markers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpmod.codeplex.com/"&gt;SharpMod&lt;/a&gt; - managed port of MikMod, can play mod files in both WinForms and Silverlight&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nvorbis.codeplex.com/"&gt;NVorbis&lt;/a&gt; - Fully managed Vorbis decoder, with support for NAudio&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/practicesharp/"&gt;Practice#&lt;/a&gt; - Windows tool for practicing playing an instrument with playback music. &lt;b&gt;Includes FLAC playback support and an equaliser for NAudio.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wpfsvl.codeplex.com"&gt;WPF Sound Visualization Library&lt;/a&gt; - beautiful waveform and spectrum analyzer code written for WPF, comes with NAudio sample&lt;/li&gt;
&lt;li&gt;&lt;a href="http://breakthrusoftware.com/html/products/soundmgr/index.html"&gt;Sound Mill&lt;/a&gt; -  an audio player, list organizer and automation manager&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cybermental.com/bravura-studio/"&gt;Bravura Studio&lt;/a&gt; - a modular, extensible application and platform for creating and experimenting with music and audio.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sipsorcery.codeplex.com"&gt;SIPSorcery&lt;/a&gt; - .NET softphone framework&lt;/li&gt;
&lt;li&gt;&lt;a href="http://squiggle.codeplex.com/"&gt;Squiggle&lt;/a&gt; - A free open source LAN Messenger&lt;/li&gt;
&lt;li&gt;&lt;a href="http://helixtoolkit.codeplex.com/"&gt;Helix 3D toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/airphone-tv/"&gt;airphone-tv&lt;/a&gt; - A revival of axStream to implement control through the iPhone&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jamnet.codeplex.com/"&gt;JamNet&lt;/a&gt; - a Silverlight drum sample player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jinglejim.de/Startseite.aspx"&gt;Jingle Jim&lt;/a&gt; - Jingle Software (German language)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.winisoft.ch"&gt;All My Music&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ispyconnect.com/"&gt;iSpy&lt;/a&gt; - Open Source Camera Security Software&lt;/li&gt;
&lt;li&gt;&lt;a href="http://radiotuna.com/OnlineRadioPlayer/Intro"&gt;RadioTuna&lt;/a&gt; - Online internet radio player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.firetalknew.com"&gt;Fire Talk New&lt;/a&gt; - chat program&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.marcsapps.co.uk/"&gt;AVR Audio Guard&lt;/a&gt; - utility to fix a HDMI related issue&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;More Info&lt;/h2&gt;
For more information, please visit the &lt;a href="http://naudio.codeplex.com/documentation"&gt;NAudio Documentation Wiki&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Donate&lt;/h2&gt;NAudio is a free open source project that is developed in personal time. You can show your appreciation for NAudio and support future development by donating.&lt;br /&gt;&lt;a href="https&amp;#58;&amp;#47;&amp;#47;www.paypal.com&amp;#47;cgi-bin&amp;#47;webscr&amp;#63;cmd&amp;#61;_s-xclick&amp;#38;hosted_button_id&amp;#61;TE4B48U2PPEL6"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=233829" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Tue, 26 Feb 2013 11:03:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130226110302A</guid></item><item><title>Updated Wiki: Home</title><link>http://naudio.codeplex.com/wikipage?version=57</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;NAudio Overview&lt;/h2&gt;NAudio is an open source .NET audio and MIDI library, containing dozens of useful audio related classes intended to speed development of audio related utilities in .NET. It has been in development since 2002 and has grown to include a wide variety of features. While some parts of the library are relatively new and incomplete, the more mature features have undergone extensive testing and can be quickly used to add audio capabilities to an existing .NET application. NAudio can be quickly added to your .NET application &lt;a href="https://nuget.org/packages/NAudio"&gt;using NuGet&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio demo project showing an MP3 file playing:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=46923" alt="naudiodemo.png" title="naudiodemo.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio WPF Project showing waveform visualisation and spectrum analyser:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=240418" alt="NAudioWPF.png" title="NAudioWPF.png" /&gt;
&lt;h2&gt;Latest News&lt;/h2&gt;For the latest news and more documentation on NAudio, visit &lt;a href="http://mark-dot-net.blogspot.com/search/label/NAudio"&gt;Mark Heath&amp;#39;s blog&lt;/a&gt;.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;26 Oct 2012&lt;/b&gt; NAudio 1.6 Released. Read the &lt;a href="http://mark-dot-net.blogspot.co.uk/2012/10/naudio-16-release-notes-10th.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;9 Sep 2012&lt;/b&gt; ASIO Recording Support added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;19 Dec 2011&lt;/b&gt; NAudio 1.5 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/12/naudio-15-released.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Apr 2011&lt;/b&gt; NAudio 1.4 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/04/naudio-14-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;15 Apr 2011&lt;/b&gt; NAudio demo now shows how to select output devices (for WaveOut, DirectSound, WASAPI and ASIO), and can play 8 bit, 16 bit, 24 bit, and 32 bit float WAV files. Fixed a longstanding ASIO issue.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;7 Nov 2010&lt;/b&gt; Major improvements to Mp3FileReader&lt;/li&gt;
&lt;li&gt;&lt;b&gt;10 Oct 2009&lt;/b&gt; Version 1.3 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2009/10/naudio-13-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Sep 2009&lt;/b&gt; We are getting close to feature complete for 1.3. Last chance to get in any feedback on the API&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 Aug 2009&lt;/b&gt; WPF Waveform drawing demo project including FFT added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;28 Feb 2009&lt;/b&gt; Lots of new stuff is being added and planned, so do check out the Source Code tab to have a sneak peak at what&amp;#39;s coming in 1.3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 June 2008&lt;/b&gt; Version 1.2 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2008/06/naudio-12-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;NAudio Features&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Play back audio using a variety of APIs
&lt;ul&gt;&lt;li&gt;WaveOut&lt;/li&gt;
&lt;li&gt;DirectSound&lt;/li&gt;
&lt;li&gt;ASIO&lt;/li&gt;
&lt;li&gt;WASAPI (Windows Vista and above)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Decompress audio from different Wave Formats
&lt;ul&gt;&lt;li&gt;MP3 decode using ACM or DMO codec&lt;/li&gt;
&lt;li&gt;AIFF&lt;/li&gt;
&lt;li&gt;G.711 mu-law and a-law&lt;/li&gt;
&lt;li&gt;ADPCM&lt;/li&gt;
&lt;li&gt;G.722&lt;/li&gt;
&lt;li&gt;Speex (using NSpeex)&lt;/li&gt;
&lt;li&gt;SF2 files&lt;/li&gt;
&lt;li&gt;Decode using any ACM codec installed on your computer&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Record audio using WaveIn, WASAPI or ASIO&lt;/li&gt;
&lt;li&gt;Read and Write standard .WAV files&lt;/li&gt;
&lt;li&gt;Mix and manipulate audio streams using a 32 bit floating mixing engine&lt;/li&gt;
&lt;li&gt;Extensive support for reading and writing MIDI files&lt;/li&gt;
&lt;li&gt;Full MIDI event model&lt;/li&gt;
&lt;li&gt;Basic support for Windows Mixer APIs&lt;/li&gt;
&lt;li&gt;A collection of useful Windows Forms Controls&lt;/li&gt;
&lt;li&gt;Some basic audio effects, including a compressor&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Projects Using NAudio&lt;/h2&gt;NAudio currently is used to support a number of audio related utilities, some of which may be moved to be hosted on CodePlex in the future. If you have used NAudio for a project, please get in touch so we can post it here.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/skypefx"&gt;Skype Voice Changer&lt;/a&gt; - Modify your voice with audio effects while talking on Skype&lt;/li&gt;
&lt;li&gt;&lt;a href="http://voicerecorder.codeplex.com"&gt;.NET Voice Recorder&lt;/a&gt; - Record your voice, save to MP3, and visualise the waveform using WPF. Now includes autotune&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilemapper"&gt;MIDI File Mapper&lt;/a&gt; - Utility for mapping MIDI drum files for use on other samplers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilesplitter"&gt;MIDI File Splitter&lt;/a&gt; - Split MIDI files up at their markers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpmod.codeplex.com/"&gt;SharpMod&lt;/a&gt; - managed port of MikMod, can play mod files in both WinForms and Silverlight&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nvorbis.codeplex.com/"&gt;NVorbis&lt;/a&gt; - Fully managed Vorbis decoder, with support for NAudio&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/practicesharp/"&gt;Practice#&lt;/a&gt; - Windows tool for practicing playing an instrument with playback music. &lt;b&gt;Includes FLAC playback support and an equaliser for NAudio.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wpfsvl.codeplex.com"&gt;WPF Sound Visualization Library&lt;/a&gt; - beautiful waveform and spectrum analyzer code written for WPF, comes with NAudio sample&lt;/li&gt;
&lt;li&gt;&lt;a href="http://breakthrusoftware.com/html/products/soundmgr/index.html"&gt;Sound Mill&lt;/a&gt; -  an audio player, list organizer and automation manager&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sipsorcery.codeplex.com"&gt;SIPSorcery&lt;/a&gt; - .NET softphone framework&lt;/li&gt;
&lt;li&gt;&lt;a href="http://squiggle.codeplex.com/"&gt;Squiggle&lt;/a&gt; - A free open source LAN Messenger&lt;/li&gt;
&lt;li&gt;&lt;a href="http://helixtoolkit.codeplex.com/"&gt;Helix 3D toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/airphone-tv/"&gt;airphone-tv&lt;/a&gt; - A revival of axStream to implement control through the iPhone&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jamnet.codeplex.com/"&gt;JamNet&lt;/a&gt; - a Silverlight drum sample player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jinglejim.de/Startseite.aspx"&gt;Jingle Jim&lt;/a&gt; - Jingle Software (German language)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.winisoft.ch"&gt;All My Music&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ispyconnect.com/"&gt;iSpy&lt;/a&gt; - Open Source Camera Security Software&lt;/li&gt;
&lt;li&gt;&lt;a href="http://radiotuna.com/OnlineRadioPlayer/Intro"&gt;RadioTuna&lt;/a&gt; - Online internet radio player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.firetalknew.com"&gt;Fire Talk New&lt;/a&gt; - chat program&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.marcsapps.co.uk/"&gt;AVR Audio Guard&lt;/a&gt; - utility to fix a HDMI related issue&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;More Info&lt;/h2&gt;
For more information, please visit the &lt;a href="http://naudio.codeplex.com/documentation"&gt;NAudio Documentation Wiki&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Donate&lt;/h2&gt;NAudio is a free open source project that is developed in personal time. You can show your appreciation for NAudio and support future development by donating.&lt;br /&gt;&lt;a href="https&amp;#58;&amp;#47;&amp;#47;www.paypal.com&amp;#47;cgi-bin&amp;#47;webscr&amp;#63;cmd&amp;#61;_s-xclick&amp;#38;hosted_button_id&amp;#61;TE4B48U2PPEL6"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=233829" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Mon, 25 Feb 2013 10:09:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130225100923A</guid></item><item><title>New Comment on "WAV"</title><link>http://naudio.codeplex.com/wikipage?title=WAV&amp;ANCHOR#C26528</link><description>So... is this page going to be updated ever&amp;#63;</description><author>jjxtra</author><pubDate>Wed, 13 Feb 2013 01:35:02 GMT</pubDate><guid isPermaLink="false">New Comment on "WAV" 20130213013502A</guid></item><item><title>New Comment on "MP3"</title><link>http://naudio.codeplex.com/wikipage?title=MP3&amp;ANCHOR#C26452</link><description>How to convert an wav file to mp3 using Naudio or can we able to convert the wave file to mp3 using Naudio. . .</description><author>ggsmartboy</author><pubDate>Thu, 07 Feb 2013 05:21:47 GMT</pubDate><guid isPermaLink="false">New Comment on "MP3" 20130207052147A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://naudio.codeplex.com/documentation?version=29</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;The NAudio Documentation Wiki&lt;/h2&gt;
&lt;h3&gt;NAudio FAQ&lt;/h3&gt;
&lt;h4&gt;What is NAudio?&lt;/h4&gt;
&lt;p&gt;NAudio is an open source audio API for .NET written in C# by Mark Heath, with contributions from many other developers. It is intended to provide a comprehensive set of useful utility classes from which you can construct your own audio application.&lt;/p&gt;
&lt;h4&gt;Why NAudio?&lt;/h4&gt;
&lt;p&gt;NAudio was created because the Framework Class Library that shipped with .NET 1.0 had no support for playing audio. The System.Media namespace introduced in .NET 2.0 provided a small amount of support, and the MediaElement in WPF and Silverlight took that
 a bit further. The vision behind NAudio is to provide a comprehensive set of audio related classes allowing easy development of utilities that play or record audio, or manipulate audio files in some way.&lt;/p&gt;
&lt;h4&gt;Can I Use NAudio in my Project?&lt;/h4&gt;
&lt;p&gt;NAudio is licensed under the Microsoft Public License (Ms-PL) which means that you can use it in whatever project you like including commercial projects. Of course we would love it if you share any bug-fixes or enhancements you made to the original NAudio
 project files.&lt;/p&gt;
&lt;h4&gt;Is .NET Performance Good Enough for Audio?&lt;/h4&gt;
&lt;p&gt;While .NET cannot compete with unmanaged languages for very low latency audio work, it still performs better than many people would expect. On a fairly modest PC, you can quite easily mix multiple WAV files together, including pass them through various effects
 and codecs, play back glitch free with a latency of around 50ms.&lt;/p&gt;
&lt;h4&gt;How can I get help?&lt;/h4&gt;
&lt;p&gt;There are three main ways to get help. If you have a specific question concerning how to use NAudio, then I recommend that you ask on
&lt;a href="http://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; and &lt;a href="http://stackoverflow.com/questions/tagged/naudio"&gt;
tag your question with naudio&lt;/a&gt;. This gives you the best chance of getting a quick answer. You can also ask a question on the
&lt;a href="http://naudio.codeplex.com/discussions"&gt;NAudio discussion forums&lt;/a&gt; here on CodePlex. I attempt to answer all questions, but since this is a spare time project, occasionally I get behind. Finally, I am occasionally able to offer paid support for situations
 where you need quick advice, bugfixes or new features. Use the contact feature of the Codeplex website to get in touch with
&lt;a href="http://www.codeplex.com/site/users/view/markheath"&gt;Mark Heath&lt;/a&gt; if you wish to pursue this option.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I submit a patch?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I welcome contributions to NAudio and have accepted many patches, but if you want your code to be included, please familiarise yourself with the following guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your submission must be your own work, and able to be released under the MS-PL license.
&lt;/li&gt;&lt;li&gt;You will need to make sure your code conforms to the layout and naming conventions used elsewhere in NAudio.
&lt;/li&gt;&lt;li&gt;Remember that there are many existing users of NAudio. A patch that changes the public interface is not likely to be accepted.
&lt;/li&gt;&lt;li&gt;Try to write &amp;quot;clean code&amp;quot; - avoid long functions and long classes. Try to add a new feature by creating a new class rather than putting loads of extra code inside an existing one.
&lt;/li&gt;&lt;li&gt;I don't usually accept contributions I can't test, so please write unit tests (using NUnit) if at all possible. If not, give a clear explanation of how your feature can be unit tested and provide test data if appropriate. Tell me what you did to test it
 yourself, including what operating systems and soundcards you used. &lt;/li&gt;&lt;li&gt;If you are adding a new feature, please consider writing a short tutorial on how to use it.
&lt;/li&gt;&lt;li&gt;Unless your patch is a small bugfix, I will code review it and give you feedback. You will need to be willing to make the recommended changes before it can be integrated into the main code.
&lt;/li&gt;&lt;li&gt;The easiest way to provide a patch is to create your own fork on Mercurial and issue a pull request. See
&lt;a href="http://tekpub.com/codeplex"&gt;this video&lt;/a&gt; if you are new to Mercurial. &lt;/li&gt;&lt;li&gt;Please also bear in mind that when you add a feature to NAudio, that feature will generate future support requests and bug reports. Are you willing to stick around on the forums and help out people using it?
&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;How do I...?&lt;/h4&gt;
&lt;p&gt;The best way to learn how to use NAudio is to download the source code and look at the two demo applications - NAudioDemo and NAudioWpfDemo. These demonstrate several of the key capabilities of the NAudio framework. They also have the advantage of being
 kept up to date, whilst some of the tutorials you will find on the internet refer to old versions of NAudio.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/naudio-audio-output-devices.html"&gt;Choose an audio output driver&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=MP3"&gt;Play an MP3 File&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/Articles/501521/How-to-convert-between-most-audio-formats-in-NET"&gt;Understand how to convert between any audio formats you have codecs for&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=Convert%20a%20MP3%20to%20WAV"&gt;Convert an MP3 to WAV&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=WAV"&gt;Play a WAV File&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/04/how-to-use-wavefilewriter.html"&gt;Use the WavFileWriter class&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/how-to-play-back-streaming-mp3-using.html"&gt;Play streaming MP3&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/10/looped-playback-in-net-with-naudio.html"&gt;Implement Looped Playback&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/09/trimming-wav-file-using-naudio.html"&gt;Trim a WAV File&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/10/playback-of-sine-wave-in-naudio.html"&gt;Play a Sine Wave&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2010/11/merging-mp3-files-with-naudio-in-c-and.html"&gt;Merge MP3 Files&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/how-to-convert-aiff-files-to-wav-using.html"&gt;Convert an AIFF file to WAV&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2012/01/handling-multi-channel-audio-in-naudio.html"&gt;Work with Multi-Channel Audio&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=Create%20an%20ID3v2%20Tag"&gt;Create an ID3v2 tag&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Getting Started with NAudio &amp;ndash; Downloading and Compiling&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download a copy of the NAudio source code (or a pre-compiled version but the newest available code is available in source form first).
&lt;br&gt;
&lt;a href="http://naudio.codeplex.com/SourceControl/list/changesets"&gt;http://naudio.codeplex.com/SourceControl/list/changesets&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;The default project is set to the NAudio class library. Class Library&amp;rsquo;s don&amp;rsquo;t have anything to look at when you press F5. If this is your first time with NAudio, set the start-up project as
&lt;strong&gt;NAudioDemo&lt;/strong&gt; and then hit F5. The NAudioDemo project shows the base functionality you can utilise through your own project.
&lt;/li&gt;&lt;li&gt;In the BIN directory for the built solution, you can find a copy of the NAudio library for using and referencing in your own project. Make sure that you grab a copy of the NAudio.XML file as well if your copying it over to your own projects directory, that
 way you will have the intellisense documentation for use in Visual Studio when working with the NAudio API.
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Additional Tutorials from OpenSebJ's blog &lt;/strong&gt;(n.b. these are for NAudio 1.3)&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/02/introduction-to-using-naudio.html"&gt;Tutorial 1: Introduction to Using NAudio&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/02/naudio-tutorial-2-mixing-multiple-wave.html"&gt;Tutorial 2: Mixing Multiple Wave Files Together in Real Time&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/03/naudio-tutorial-3-sample-properties.html"&gt;Tutorial 3 - Sample Properties&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/03/naudio-tutorial-4-sample-reversing.html"&gt;Tutorial 4 - Sample Reversing&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html"&gt;Tutorial 5 - Recording Audio&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/08/naudio-tutorial-6-midi-interfacing_27.html"&gt;Tutorial 6 - MIDI Interfacing&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;div id="_mcePaste" style="left:-10000px; top:342px; width:1px; height:1px; overflow:hidden"&gt;
http://stackoverflow.com/&lt;/div&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Thu, 03 Jan 2013 11:49:25 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20130103114925A</guid></item><item><title>Updated Wiki: Convert a MP3 to WAV</title><link>http://naudio.codeplex.com/wikipage?title=Convert a MP3 to WAV&amp;version=13</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;MP3&lt;/h1&gt;
&lt;h2&gt;Convert an MP3 to WAV&lt;/h2&gt;
&lt;p&gt;1) Add the using references for NAudio to your project:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;using &lt;/span&gt;NAudio;
&lt;span style="color:blue"&gt;using &lt;/span&gt;NAudio.Wave;&lt;/pre&gt;
&lt;p&gt;2) Assuming that you are going to find the location of a MP3 and save the WAV file to the same location:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;public static void &lt;/span&gt;Mp3ToWav(&lt;span style="color:blue"&gt;string &lt;/span&gt;mp3File, &lt;span style="color:blue"&gt;string &lt;/span&gt;outputFile)
{
    &lt;span style="color:blue"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Mp3FileReader &lt;/span&gt;reader = &lt;span style="color:blue"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af"&gt;Mp3FileReader&lt;/span&gt;(mp3File))
    {
        &lt;span style="color:#2b91af"&gt;WaveFileWriter&lt;/span&gt;.CreateWaveFile(outputFile, reader);
    }
}&lt;/pre&gt;
&lt;p&gt;3) You now have a WAV file in the directory of your MP3.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;The complete sample program:&lt;/h2&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;using &lt;/span&gt;System;
&lt;span style="color:blue"&gt;using &lt;/span&gt;System.Collections.Generic;
&lt;span style="color:blue"&gt;using &lt;/span&gt;System.ComponentModel;
&lt;span style="color:blue"&gt;using &lt;/span&gt;System.Data;
&lt;span style="color:blue"&gt;using &lt;/span&gt;System.Drawing;
&lt;span style="color:blue"&gt;using &lt;/span&gt;System.Linq;
&lt;span style="color:blue"&gt;using &lt;/span&gt;System.Text;
&lt;span style="color:blue"&gt;using &lt;/span&gt;System.Windows.Forms;

&lt;span style="color:blue"&gt;using &lt;/span&gt;NAudio;
&lt;span style="color:blue"&gt;using &lt;/span&gt;NAudio.Wave;

&lt;span style="color:blue"&gt;namespace &lt;/span&gt;ConvertMP3toWAV
{
    &lt;span style="color:blue"&gt;public partial class &lt;/span&gt;&lt;span style="color:#2b91af"&gt;Form1 &lt;/span&gt;: &lt;span style="color:#2b91af"&gt;Form
    &lt;/span&gt;{
        &lt;span style="color:blue"&gt;public &lt;/span&gt;Form1()
        {
            InitializeComponent();
        }

        &lt;span style="color:blue"&gt;private void &lt;/span&gt;cmbOpen_Click(&lt;span style="color:blue"&gt;object &lt;/span&gt;sender, &lt;span style="color:#2b91af"&gt;EventArgs &lt;/span&gt;e)
        {
            &lt;span style="color:#2b91af"&gt;OpenFileDialog &lt;/span&gt;openFileDialog = &lt;span style="color:blue"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af"&gt;OpenFileDialog&lt;/span&gt;();
            openFileDialog.Filter = &lt;span style="color:#a31515"&gt;&amp;quot;MP3 Files (*.mp3)|*.mp3|All Files (*.*)|*.*&amp;quot;&lt;/span&gt;;
            openFileDialog.FilterIndex = 1;
            &lt;span style="color:blue"&gt;if &lt;/span&gt;(openFileDialog.ShowDialog() == &lt;span style="color:#2b91af"&gt;DialogResult&lt;/span&gt;.OK)
            {
                txtLocation.Text = openFileDialog.FileName;
            }
        }

        &lt;span style="color:blue"&gt;private void &lt;/span&gt;cmbConvert_Click(&lt;span style="color:blue"&gt;object &lt;/span&gt;sender, &lt;span style="color:#2b91af"&gt;EventArgs &lt;/span&gt;e)
        {
            &lt;span style="color:blue"&gt;string &lt;/span&gt;outputFileName = txtLocation.Text;
            outputFileName = outputFileName.Substring(0, txtLocation.TextLength - 3) &amp;#43; &lt;span style="color:#a31515"&gt;&amp;quot;wav&amp;quot;&lt;/span&gt;;
            Mp3ToWav(txtLocation.Text, outputFileName);
        }

        &lt;span style="color:blue"&gt;public static void &lt;/span&gt;Mp3ToWav(&lt;span style="color:blue"&gt;string &lt;/span&gt;mp3File, &lt;span style="color:blue"&gt;string &lt;/span&gt;outputFile)
        {
            &lt;span style="color:blue"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af"&gt;Mp3FileReader &lt;/span&gt;reader = &lt;span style="color:blue"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af"&gt;Mp3FileReader&lt;/span&gt;(mp3File))
            {
                &lt;span style="color:#2b91af"&gt;WaveFileWriter&lt;/span&gt;.CreateWaveFile(outputFile, reader);
            }
        }
    }
}&lt;/pre&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Thu, 03 Jan 2013 11:47:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Convert a MP3 to WAV 20130103114748A</guid></item><item><title>New Comment on "Convert a MP3 to WAV"</title><link>http://naudio.codeplex.com/wikipage?title=Convert a MP3 to WAV&amp;ANCHOR#C25910</link><description>&amp;#64;D1mex&amp;#58; This is a partial class of a WinForms form.  It is assumed that you have a form that contains a Label called txtLocation, a Button called cmbOpen and Button called cmbConvert.  The Click events of those buttons are linked to cmbOpen_Click and cmbConvert_Click respectively.</description><author>slygamer</author><pubDate>Thu, 13 Dec 2012 13:34:23 GMT</pubDate><guid isPermaLink="false">New Comment on "Convert a MP3 to WAV" 20121213013423P</guid></item><item><title>New Comment on "MP3"</title><link>http://naudio.codeplex.com/wikipage?title=MP3&amp;ANCHOR#C25868</link><description>Hi Mark, what do you think about this MatrixBus Implementation&amp;#63; I don&amp;#39;t know if I got all the locks right...&amp;#10;public class BusMatrixWaveProvider &amp;#58; IWaveProvider&amp;#10;    &amp;#123;&amp;#10;        private readonly IList&amp;#60;IWaveProvider&amp;#62; inputs&amp;#59;&amp;#10;        private readonly WaveFormat waveFormat&amp;#59;&amp;#10;        private readonly int outputChannelCount&amp;#59;&amp;#10;        private int inputChannelCount&amp;#59;&amp;#10;        private readonly int bytesPerSample&amp;#59;&amp;#10;&amp;#10;        private float&amp;#91;&amp;#93; volumes&amp;#59;&amp;#10;&amp;#10;        public float GetVolume&amp;#40;int inputIndex, int outputIndex&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            if &amp;#40;inputIndex &amp;#60; 0 &amp;#124;&amp;#124; inputIndex &amp;#62;&amp;#61; InputChannelCount&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;Invalid input channel&amp;#34;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;            if &amp;#40;outputIndex &amp;#60; 0 &amp;#124;&amp;#124; outputIndex &amp;#62;&amp;#61; OutputChannelCount&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;Invalid output channel&amp;#34;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;            lock &amp;#40;volumes&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                int index &amp;#61; inputIndex &amp;#43; &amp;#40;outputIndex &amp;#42; inputChannelCount&amp;#41;&amp;#59;&amp;#10;                return volumes&amp;#91;index&amp;#93;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        public void SetVolume&amp;#40;int inputIndex, int outputIndex, float value&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            if &amp;#40;inputIndex &amp;#60; 0 &amp;#124;&amp;#124; inputIndex &amp;#62;&amp;#61; InputChannelCount&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;Invalid input channel&amp;#34;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;            if &amp;#40;outputIndex &amp;#60; 0 &amp;#124;&amp;#124; outputIndex &amp;#62;&amp;#61; OutputChannelCount&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;Invalid output channel&amp;#34;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;            lock &amp;#40;volumes&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                int index &amp;#61; inputIndex &amp;#43; &amp;#40;outputIndex &amp;#42; inputChannelCount&amp;#41;&amp;#59;&amp;#10;                volumes&amp;#91;index&amp;#93; &amp;#61; value&amp;#59;&amp;#10;            &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        public void AddInput&amp;#40;IWaveProvider waveProvider&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            lock &amp;#40;volumes&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                &amp;#47;&amp;#47;inputChannelCount &amp;#43;&amp;#61; 1&amp;#59;&amp;#10;                inputChannelCount &amp;#43;&amp;#61; waveProvider.WaveFormat.Channels&amp;#59;&amp;#10;&amp;#10;                lock &amp;#40;inputs&amp;#41;&amp;#10;                &amp;#123;&amp;#10;                    this.inputs.Add&amp;#40;waveProvider&amp;#41;&amp;#59;&amp;#10;                    Array.Resize&amp;#60;float&amp;#62;&amp;#40;ref volumes, outputChannelCount &amp;#42; inputChannelCount&amp;#41;&amp;#59;&amp;#10;                &amp;#125;&amp;#10;            &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        public void RemoveInput&amp;#40;IWaveProvider waveProvider&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            int index &amp;#61; inputs.IndexOf&amp;#40;waveProvider&amp;#41;&amp;#59;&amp;#10;&amp;#10;            if &amp;#40;index &amp;#61;&amp;#61; -1&amp;#41;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;input was not found in this mixer&amp;#34;&amp;#41;&amp;#59;&amp;#10;&amp;#10;            lock &amp;#40;volumes&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                &amp;#47;&amp;#47;inputChannelCount -&amp;#61; 1&amp;#59;&amp;#10;                int inputChannels &amp;#61; waveProvider.WaveFormat.Channels&amp;#59;&amp;#10;&amp;#10;                inputChannelCount -&amp;#61; inputChannels&amp;#59;&amp;#10;&amp;#10;                lock &amp;#40;inputs&amp;#41;&amp;#10;                &amp;#123;&amp;#10;                    inputs.Remove&amp;#40;waveProvider&amp;#41;&amp;#59;&amp;#10;&amp;#10;                    int offset &amp;#61; 0&amp;#59;&amp;#10;                    for &amp;#40;int i &amp;#61; index&amp;#59; i &amp;#60; volumes.Length&amp;#59; i &amp;#43;&amp;#61; &amp;#40;inputChannelCount &amp;#43; inputChannels&amp;#41;&amp;#41;&amp;#10;                    &amp;#123;&amp;#10;                        Array.Copy&amp;#40;volumes, i &amp;#43; inputChannels, volumes, i - offset, inputChannelCount&amp;#41;&amp;#59;&amp;#10;                        offset &amp;#43;&amp;#61; inputChannels&amp;#59;&amp;#10;                    &amp;#125;&amp;#10;&amp;#10;                    Array.Resize&amp;#60;float&amp;#62;&amp;#40;ref volumes, outputChannelCount &amp;#42; inputChannelCount&amp;#41;&amp;#59;&amp;#10;                &amp;#125;&amp;#10;            &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        public void RemoveInput&amp;#40;int index&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            if &amp;#40;index &amp;#62; inputs.Count-1 &amp;#124;&amp;#124; index &amp;#60; 0&amp;#41;&amp;#10;                throw new ArgumentOutOfRangeException&amp;#40;&amp;#34;index was not found in this bus&amp;#34;&amp;#41;&amp;#59;&amp;#10;&amp;#10;            RemoveInput&amp;#40;inputs&amp;#91;index&amp;#93;&amp;#41;&amp;#59;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;summary&amp;#62;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; Creates a mixing wave provider, allowing mixing of input channels to different&amp;#10;        &amp;#47;&amp;#47;&amp;#47; output channels&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;&amp;#47;summary&amp;#62;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;param name&amp;#61;&amp;#34;numberOfOutputChannels&amp;#34;&amp;#62;Desired number of output channels.&amp;#60;&amp;#47;param&amp;#62;&amp;#10;        public BusMatrixWaveProvider&amp;#40;int numberOfOutputChannels&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            this.outputChannelCount &amp;#61; numberOfOutputChannels&amp;#59;&amp;#10;            if &amp;#40;numberOfOutputChannels &amp;#60; 1&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;You must provide at least one output&amp;#34;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;summary&amp;#62;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; Creates a mixing wave provider, allowing mixing of input channels to different&amp;#10;        &amp;#47;&amp;#47;&amp;#47; output channels&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;&amp;#47;summary&amp;#62;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;param name&amp;#61;&amp;#34;inputs&amp;#34;&amp;#62;Input wave providers. Must all be of the same format, but can have any number of channels&amp;#60;&amp;#47;param&amp;#62;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;param name&amp;#61;&amp;#34;numberOfOutputChannels&amp;#34;&amp;#62;Desired number of output channels.&amp;#60;&amp;#47;param&amp;#62;&amp;#10;        public BusMatrixWaveProvider&amp;#40;IEnumerable&amp;#60;IWaveProvider&amp;#62; inputs, int numberOfOutputChannels&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            this.inputs &amp;#61; new List&amp;#60;IWaveProvider&amp;#62;&amp;#40;inputs&amp;#41;&amp;#59;&amp;#10;            this.outputChannelCount &amp;#61; numberOfOutputChannels&amp;#59;&amp;#10;&amp;#10;            if &amp;#40;this.inputs.Count &amp;#61;&amp;#61; 0&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;You must provide at least one input&amp;#34;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;            if &amp;#40;numberOfOutputChannels &amp;#60; 1&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                throw new ArgumentException&amp;#40;&amp;#34;You must provide at least one output&amp;#34;&amp;#41;&amp;#59;&amp;#10;            &amp;#125;&amp;#10;            foreach &amp;#40;var input in this.inputs&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                if &amp;#40;this.waveFormat &amp;#61;&amp;#61; null&amp;#41;&amp;#10;                &amp;#123;&amp;#10;                    if &amp;#40;input.WaveFormat.Encoding &amp;#61;&amp;#61; WaveFormatEncoding.Pcm&amp;#41;&amp;#10;                    &amp;#123;&amp;#10;                        this.waveFormat &amp;#61; new WaveFormat&amp;#40;input.WaveFormat.SampleRate, input.WaveFormat.BitsPerSample, numberOfOutputChannels&amp;#41;&amp;#59;&amp;#10;                    &amp;#125;&amp;#10;                    else if &amp;#40;input.WaveFormat.Encoding &amp;#61;&amp;#61; WaveFormatEncoding.IeeeFloat&amp;#41;&amp;#10;                    &amp;#123;&amp;#10;                        this.waveFormat &amp;#61; WaveFormat.CreateIeeeFloatWaveFormat&amp;#40;input.WaveFormat.SampleRate, numberOfOutputChannels&amp;#41;&amp;#59;&amp;#10;                    &amp;#125;&amp;#10;                    else&amp;#10;                    &amp;#123;&amp;#10;                        throw new ArgumentException&amp;#40;&amp;#34;Only PCM and 32 bit float are supported&amp;#34;&amp;#41;&amp;#59;&amp;#10;                    &amp;#125;&amp;#10;                &amp;#125;&amp;#10;                else&amp;#10;                &amp;#123;&amp;#10;                    if &amp;#40;input.WaveFormat.BitsPerSample &amp;#33;&amp;#61; this.waveFormat.BitsPerSample&amp;#41;&amp;#10;                    &amp;#123;&amp;#10;                        throw new ArgumentException&amp;#40;&amp;#34;All inputs must have the same bit depth&amp;#34;&amp;#41;&amp;#59;&amp;#10;                    &amp;#125;&amp;#10;                    if &amp;#40;input.WaveFormat.SampleRate &amp;#33;&amp;#61; this.waveFormat.SampleRate&amp;#41;&amp;#10;                    &amp;#123;&amp;#10;                        throw new ArgumentException&amp;#40;&amp;#34;All inputs must have the same sample rate&amp;#34;&amp;#41;&amp;#59;&amp;#10;                    &amp;#125;&amp;#10;                &amp;#125;&amp;#10;                inputChannelCount &amp;#43;&amp;#61; input.WaveFormat.Channels&amp;#59;&amp;#10;            &amp;#125;&amp;#10;            this.bytesPerSample &amp;#61; this.waveFormat.BitsPerSample &amp;#47; 8&amp;#59;&amp;#10;&amp;#10;            this.volumes &amp;#61; new float&amp;#91;this.inputChannelCount &amp;#42; this.outputChannelCount&amp;#93;&amp;#59;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        private byte&amp;#91;&amp;#93; inputBuffer&amp;#59;&amp;#10;&amp;#10;        public int Read&amp;#40;byte&amp;#91;&amp;#93; buffer, int offset, int count&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            &amp;#47;&amp;#47;byte&amp;#91;&amp;#93; tempbuffer &amp;#61; new byte&amp;#91;count&amp;#93;&amp;#59;&amp;#10;            Array.Clear&amp;#40;buffer, offset, count&amp;#41;&amp;#59;&amp;#10;&amp;#10;            int outputBytesPerFrame &amp;#61; bytesPerSample &amp;#42; outputChannelCount&amp;#59;&amp;#10;            int sampleFramesRequested &amp;#61; count &amp;#47; outputBytesPerFrame&amp;#59;&amp;#10;            int sampleFramesRead &amp;#61; 0&amp;#59;&amp;#10;&amp;#10;            lock &amp;#40;volumes&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                &amp;#47;&amp;#47; now we must read from all inputs, even if we don&amp;#39;t need their data, so they stay in sync&amp;#10;                for &amp;#40;int inputIndex &amp;#61; 0&amp;#59; inputIndex &amp;#60; inputChannelCount&amp;#59; inputIndex&amp;#43;&amp;#43;&amp;#41;&amp;#10;                &amp;#123;&amp;#10;                    int inputBytesPerFrame &amp;#61; bytesPerSample&amp;#59;&amp;#10;                    int bytesRequired &amp;#61; sampleFramesRequested &amp;#42; inputBytesPerFrame&amp;#59;&amp;#10;                    this.inputBuffer &amp;#61; BufferHelpers.Ensure&amp;#40;this.inputBuffer, bytesRequired&amp;#41;&amp;#59;&amp;#10;&amp;#10;                    lock &amp;#40;inputs&amp;#41;&amp;#10;                    &amp;#123;&amp;#10;                        int bytesRead &amp;#61; inputs&amp;#91;inputIndex&amp;#93;.Read&amp;#40;inputBuffer, 0, bytesRequired&amp;#41;&amp;#59;&amp;#10;                        sampleFramesRead &amp;#61; Math.Max&amp;#40;sampleFramesRead, bytesRead &amp;#47; inputBytesPerFrame&amp;#41;&amp;#59;&amp;#10;&amp;#10;                        Sum32BitAudio&amp;#40;buffer, inputBuffer, bytesRead, inputBytesPerFrame, inputIndex, outputChannelCount, volumes&amp;#41;&amp;#59;&amp;#10;                    &amp;#125;&amp;#10;                &amp;#125;&amp;#10;            &amp;#125;&amp;#10;            return sampleFramesRead &amp;#42; outputBytesPerFrame&amp;#59;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;summary&amp;#62;&amp;#10;        &amp;#47;&amp;#47;&amp;#47; Actually performs the mixing&amp;#10;        &amp;#47;&amp;#47;&amp;#47; &amp;#60;&amp;#47;summary&amp;#62;&amp;#10;        private static unsafe void Sum32BitAudio&amp;#40;&amp;#10;            byte&amp;#91;&amp;#93; destBuffer,&amp;#10;            byte&amp;#91;&amp;#93; sourceBuffer,&amp;#10;            int bytesRead,&amp;#10;            int inputBytesPerFrame,&amp;#10;            int inputIndex,&amp;#10;            int outputChannelCount,&amp;#10;            float&amp;#91;&amp;#93; volumes&amp;#41;&amp;#10;        &amp;#123;&amp;#10;            fixed &amp;#40;byte&amp;#42; pDestBuffer &amp;#61; &amp;#38;destBuffer&amp;#91;0&amp;#93;, pSourceBuffer &amp;#61; &amp;#38;sourceBuffer&amp;#91;0&amp;#93;&amp;#41;&amp;#10;            &amp;#123;&amp;#10;                fixed &amp;#40;float&amp;#42; volume &amp;#61; &amp;#38;volumes&amp;#91;inputIndex&amp;#93;&amp;#41;&amp;#10;                &amp;#123;&amp;#10;                    float&amp;#42; pfDestBuffer &amp;#61; &amp;#40;float&amp;#42;&amp;#41;pDestBuffer&amp;#59;&amp;#10;                    float&amp;#42; pfReadBuffer &amp;#61; &amp;#40;float&amp;#42;&amp;#41;pSourceBuffer&amp;#59;&amp;#10;                    int samplesRead &amp;#61; bytesRead &amp;#47; inputBytesPerFrame&amp;#59;&amp;#10;                    for &amp;#40;int n &amp;#61; 0&amp;#59; n &amp;#60; samplesRead&amp;#59; n&amp;#43;&amp;#43;&amp;#41;&amp;#10;                    &amp;#123;&amp;#10;                        for &amp;#40;int nOutput &amp;#61; 0&amp;#59; nOutput &amp;#60; outputChannelCount&amp;#59; nOutput&amp;#43;&amp;#43;&amp;#41;&amp;#10;                        &amp;#123;&amp;#10;                            &amp;#47;&amp;#47;pfDestBuffer&amp;#91;&amp;#40;n &amp;#42; outputChannelCount&amp;#41; &amp;#43; nOutput&amp;#93; &amp;#43;&amp;#61; &amp;#40;pfReadBuffer&amp;#91;n&amp;#93;&amp;#41;&amp;#59;&amp;#10;                            pfDestBuffer&amp;#91;n &amp;#43; nOutput&amp;#93; &amp;#43;&amp;#61; &amp;#40;pfReadBuffer&amp;#91;n&amp;#93; &amp;#42; volume&amp;#91;outputChannelCount &amp;#42; nOutput&amp;#93;&amp;#41;&amp;#59;&amp;#10;                        &amp;#125;&amp;#10;                    &amp;#125;&amp;#10;                &amp;#125;&amp;#10;            &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        public WaveFormat WaveFormat&amp;#10;        &amp;#123;&amp;#10;            get &amp;#123; return waveFormat&amp;#59; &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        public int InputChannelCount&amp;#10;        &amp;#123;&amp;#10;            get &amp;#123; return inputChannelCount&amp;#59; &amp;#125;&amp;#10;        &amp;#125;&amp;#10;&amp;#10;        public int OutputChannelCount&amp;#10;        &amp;#123;&amp;#10;            get &amp;#123; return outputChannelCount&amp;#59; &amp;#125;&amp;#10;        &amp;#125;&amp;#10;    &amp;#125;</description><author>simon_mb</author><pubDate>Mon, 10 Dec 2012 23:22:23 GMT</pubDate><guid isPermaLink="false">New Comment on "MP3" 20121210112223P</guid></item><item><title>New Comment on "Convert a MP3 to WAV"</title><link>http://naudio.codeplex.com/wikipage?title=Convert a MP3 to WAV&amp;ANCHOR#C25688</link><description>&amp;#34;txtLocation&amp;#34;  not in the present context&amp;#63;</description><author>D1mex</author><pubDate>Sat, 24 Nov 2012 06:37:33 GMT</pubDate><guid isPermaLink="false">New Comment on "Convert a MP3 to WAV" 20121124063733A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://naudio.codeplex.com/documentation?version=28</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;The NAudio Documentation Wiki&lt;/h2&gt;
&lt;h3&gt;NAudio FAQ&lt;/h3&gt;
&lt;h4&gt;What is NAudio?&lt;/h4&gt;
&lt;p&gt;NAudio is an open source audio API for .NET written in C# by Mark Heath, with contributions from many other developers. It is intended to provide a comprehensive set of useful utility classes from which you can construct your own audio application.&lt;/p&gt;
&lt;h4&gt;Why NAudio?&lt;/h4&gt;
&lt;p&gt;NAudio was created because the Framework Class Library that shipped with .NET 1.0 had no support for playing audio. The System.Media namespace introduced in .NET 2.0 provided a small amount of support, and the MediaElement in WPF and Silverlight took that
 a bit further. The vision behind NAudio is to provide a comprehensive set of audio related classes allowing easy development of utilities that play or record audio, or manipulate audio files in some way.&lt;/p&gt;
&lt;h4&gt;Can I Use NAudio in my Project?&lt;/h4&gt;
&lt;p&gt;NAudio is licensed under the Microsoft Public License (Ms-PL) which means that you can use it in whatever project you like including commercial projects. Of course we would love it if you share any bug-fixes or enhancements you made to the original NAudio
 project files.&lt;/p&gt;
&lt;h4&gt;Is .NET Performance Good Enough for Audio?&lt;/h4&gt;
&lt;p&gt;While .NET cannot compete with unmanaged languages for very low latency audio work, it still performs better than many people would expect. On a fairly modest PC, you can quite easily mix multiple WAV files together, including pass them through various effects
 and codecs, play back glitch free with a latency of around 50ms.&lt;/p&gt;
&lt;h4&gt;How can I get help?&lt;/h4&gt;
&lt;p&gt;There are three main ways to get help. If you have a specific question concerning how to use NAudio, then I recommend that you ask on
&lt;a href="http://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt; and &lt;a href="http://stackoverflow.com/questions/tagged/naudio"&gt;
tag your question with naudio&lt;/a&gt;. This gives you the best chance of getting a quick answer. You can also ask a question on the
&lt;a href="http://naudio.codeplex.com/discussions"&gt;NAudio discussion forums&lt;/a&gt; here on CodePlex. I attempt to answer all questions, but since this is a spare time project, occasionally I get behind. Finally, I am occasionally able to offer paid support for situations
 where you need quick advice, bugfixes or new features. Use the contact feature of the Codeplex website to get in touch with
&lt;a href="http://www.codeplex.com/site/users/view/markheath"&gt;Mark Heath&lt;/a&gt; if you wish to pursue this option.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I submit a patch?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I welcome contributions to NAudio and have accepted many patches, but if you want your code to be included, please familiarise yourself with the following guidelines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your submission must be your own work, and able to be released under the MS-PL license.
&lt;/li&gt;&lt;li&gt;You will need to make sure your code conforms to the layout and naming conventions used elsewhere in NAudio.
&lt;/li&gt;&lt;li&gt;Remember that there are many existing users of NAudio. A patch that changes the public interface is not likely to be accepted.
&lt;/li&gt;&lt;li&gt;Try to write &amp;quot;clean code&amp;quot; - avoid long functions and long classes. Try to add a new feature by creating a new class rather than putting loads of extra code inside an existing one.
&lt;/li&gt;&lt;li&gt;I don't usually accept contributions I can't test, so please write unit tests (using NUnit) if at all possible. If not, give a clear explanation of how your feature can be unit tested and provide test data if appropriate. Tell me what you did to test it
 yourself, including what operating systems and soundcards you used. &lt;/li&gt;&lt;li&gt;If you are adding a new feature, please consider writing a short tutorial on how to use it.
&lt;/li&gt;&lt;li&gt;Unless your patch is a small bugfix, I will code review it and give you feedback. You will need to be willing to make the recommended changes before it can be integrated into the main code.
&lt;/li&gt;&lt;li&gt;The easiest way to provide a patch is to create your own fork on Mercurial and issue a pull request. See
&lt;a href="http://tekpub.com/codeplex"&gt;this video&lt;/a&gt; if you are new to Mercurial. &lt;/li&gt;&lt;li&gt;Please also bear in mind that when you add a feature to NAudio, that feature will generate future support requests and bug reports. Are you willing to stick around on the forums and help out people using it?
&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;How do I...?&lt;/h4&gt;
&lt;p&gt;The best way to learn how to use NAudio is to download the source code and look at the two demo applications - NAudioDemo and NAudioWpfDemo. These demonstrate several of the key capabilities of the NAudio framework. They also have the advantage of being
 kept up to date, whilst some of the tutorials you will find on the internet refer to old versions of NAudio.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/naudio-audio-output-devices.html"&gt;Choose an audio output driver&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=MP3"&gt;Play an MP3 File&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=Convert%20a%20MP3%20to%20WAV"&gt;Convert an MP3 to WAV&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=WAV"&gt;Play a WAV File&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/04/how-to-use-wavefilewriter.html"&gt;Use the WavFileWriter class&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/how-to-play-back-streaming-mp3-using.html"&gt;Play streaming MP3&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/10/looped-playback-in-net-with-naudio.html"&gt;Implement Looped Playback&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/09/trimming-wav-file-using-naudio.html"&gt;Trim a WAV File&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2009/10/playback-of-sine-wave-in-naudio.html"&gt;Play a Sine Wave&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2010/11/merging-mp3-files-with-naudio-in-c-and.html"&gt;Merge MP3 Files&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2011/05/how-to-convert-aiff-files-to-wav-using.html"&gt;Convert an AIFF file to WAV&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://mark-dot-net.blogspot.com/2012/01/handling-multi-channel-audio-in-naudio.html"&gt;Work with Multi-Channel Audio&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://naudio.codeplex.com/wikipage?title=Create%20an%20ID3v2%20Tag"&gt;Create an ID3v2 tag&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Getting Started with NAudio &amp;ndash; Downloading and Compiling&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Download a copy of the NAudio source code (or a pre-compiled version but the newest available code is available in source form first).
&lt;br&gt;
&lt;a href="http://naudio.codeplex.com/SourceControl/list/changesets"&gt;http://naudio.codeplex.com/SourceControl/list/changesets&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;The default project is set to the NAudio class library. Class Library&amp;rsquo;s don&amp;rsquo;t have anything to look at when you press F5. If this is your first time with NAudio, set the start-up project as
&lt;strong&gt;NAudioDemo&lt;/strong&gt; and then hit F5. The NAudioDemo project shows the base functionality you can utilise through your own project.
&lt;/li&gt;&lt;li&gt;In the BIN directory for the built solution, you can find a copy of the NAudio library for using and referencing in your own project. Make sure that you grab a copy of the NAudio.XML file as well if your copying it over to your own projects directory, that
 way you will have the intellisense documentation for use in Visual Studio when working with the NAudio API.
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Additional Tutorials from OpenSebJ's blog &lt;/strong&gt;(n.b. these are for NAudio 1.3)&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/02/introduction-to-using-naudio.html"&gt;Tutorial 1: Introduction to Using NAudio&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/02/naudio-tutorial-2-mixing-multiple-wave.html"&gt;Tutorial 2: Mixing Multiple Wave Files Together in Real Time&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/03/naudio-tutorial-3-sample-properties.html"&gt;Tutorial 3 - Sample Properties&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/03/naudio-tutorial-4-sample-reversing.html"&gt;Tutorial 4 - Sample Reversing&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/04/naudio-tutorial-5-recording-audio.html"&gt;Tutorial 5 - Recording Audio&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href="http://opensebj.blogspot.com/2009/08/naudio-tutorial-6-midi-interfacing_27.html"&gt;Tutorial 6 - MIDI Interfacing&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;div id="_mcePaste" style="left:-10000px; top:342px; width:1px; height:1px; overflow:hidden"&gt;
http://stackoverflow.com/&lt;/div&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Sat, 10 Nov 2012 07:53:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20121110075321A</guid></item><item><title>Updated Wiki: Home</title><link>http://naudio.codeplex.com/wikipage?version=56</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;NAudio Overview&lt;/h2&gt;NAudio is an open source .NET audio and MIDI library, containing dozens of useful audio related classes intended to speed development of audio related utilities in .NET. It has been in development since 2002 and has grown to include a wide variety of features. While some parts of the library are relatively new and incomplete, the more mature features have undergone extensive testing and can be quickly used to add audio capabilities to an existing .NET application. NAudio can be quickly added to your .NET application &lt;a href="https://nuget.org/packages/NAudio"&gt;using NuGet&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio demo project showing an MP3 file playing:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=46923" alt="naudiodemo.png" title="naudiodemo.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;NAudio WPF Project showing waveform visualisation and spectrum analyser:&lt;/i&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=240418" alt="NAudioWPF.png" title="NAudioWPF.png" /&gt;
&lt;h2&gt;Latest News&lt;/h2&gt;For the latest news and more documentation on NAudio, visit &lt;a href="http://mark-dot-net.blogspot.com/search/label/NAudio"&gt;Mark Heath&amp;#39;s blog&lt;/a&gt;.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;26 Oct 2012&lt;/b&gt; NAudio 1.6 Released. Read the &lt;a href="http://mark-dot-net.blogspot.co.uk/2012/10/naudio-16-release-notes-10th.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;9 Sep 2012&lt;/b&gt; ASIO Recording Support added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;19 Dec 2011&lt;/b&gt; NAudio 1.5 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/12/naudio-15-released.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Apr 2011&lt;/b&gt; NAudio 1.4 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2011/04/naudio-14-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;15 Apr 2011&lt;/b&gt; NAudio demo now shows how to select output devices (for WaveOut, DirectSound, WASAPI and ASIO), and can play 8 bit, 16 bit, 24 bit, and 32 bit float WAV files. Fixed a longstanding ASIO issue.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;7 Nov 2010&lt;/b&gt; Major improvements to Mp3FileReader&lt;/li&gt;
&lt;li&gt;&lt;b&gt;10 Oct 2009&lt;/b&gt; Version 1.3 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2009/10/naudio-13-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;20 Sep 2009&lt;/b&gt; We are getting close to feature complete for 1.3. Last chance to get in any feedback on the API&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 Aug 2009&lt;/b&gt; WPF Waveform drawing demo project including FFT added&lt;/li&gt;
&lt;li&gt;&lt;b&gt;28 Feb 2009&lt;/b&gt; Lots of new stuff is being added and planned, so do check out the Source Code tab to have a sneak peak at what&amp;#39;s coming in 1.3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;26 June 2008&lt;/b&gt; Version 1.2 Released. Read the &lt;a href="http://mark-dot-net.blogspot.com/2008/06/naudio-12-release-notes.html"&gt;release notes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;NAudio Features&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Play back audio using a variety of APIs
&lt;ul&gt;&lt;li&gt;WaveOut&lt;/li&gt;
&lt;li&gt;DirectSound&lt;/li&gt;
&lt;li&gt;ASIO&lt;/li&gt;
&lt;li&gt;WASAPI (Windows Vista and above)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Decompress audio from different Wave Formats
&lt;ul&gt;&lt;li&gt;MP3 decode using ACM or DMO codec&lt;/li&gt;
&lt;li&gt;AIFF&lt;/li&gt;
&lt;li&gt;G.711 mu-law and a-law&lt;/li&gt;
&lt;li&gt;ADPCM&lt;/li&gt;
&lt;li&gt;G.722&lt;/li&gt;
&lt;li&gt;Speex (using NSpeex)&lt;/li&gt;
&lt;li&gt;SF2 files&lt;/li&gt;
&lt;li&gt;Decode using any ACM codec installed on your computer&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Record audio using WaveIn, WASAPI or ASIO&lt;/li&gt;
&lt;li&gt;Read and Write standard .WAV files&lt;/li&gt;
&lt;li&gt;Mix and manipulate audio streams using a 32 bit floating mixing engine&lt;/li&gt;
&lt;li&gt;Extensive support for reading and writing MIDI files&lt;/li&gt;
&lt;li&gt;Full MIDI event model&lt;/li&gt;
&lt;li&gt;Basic support for Windows Mixer APIs&lt;/li&gt;
&lt;li&gt;A collection of useful Windows Forms Controls&lt;/li&gt;
&lt;li&gt;Some basic audio effects, including a compressor&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Projects Using NAudio&lt;/h2&gt;NAudio currently is used to support a number of audio related utilities, some of which may be moved to be hosted on CodePlex in the future. If you have used NAudio for a project, please get in touch so we can post it here.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeplex.com/skypefx"&gt;Skype Voice Changer&lt;/a&gt; - Modify your voice with audio effects while talking on Skype&lt;/li&gt;
&lt;li&gt;&lt;a href="http://voicerecorder.codeplex.com"&gt;.NET Voice Recorder&lt;/a&gt; - Record your voice, save to MP3, and visualise the waveform using WPF. Now includes autotune&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilemapper"&gt;MIDI File Mapper&lt;/a&gt; - Utility for mapping MIDI drum files for use on other samplers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/midifilesplitter"&gt;MIDI File Splitter&lt;/a&gt; - Split MIDI files up at their markers&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpmod.codeplex.com/"&gt;SharpMod&lt;/a&gt; - managed port of MikMod, can play mod files in both WinForms and Silverlight&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nvorbis.codeplex.com/"&gt;NVorbis&lt;/a&gt; - Fully managed Vorbis decoder, with support for NAudio&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/practicesharp/"&gt;Practice#&lt;/a&gt; - Windows tool for practicing playing an instrument with playback music. &lt;b&gt;Includes FLAC playback support and an equaliser for NAudio.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wpfsvl.codeplex.com"&gt;WPF Sound Visualization Library&lt;/a&gt; - beautiful waveform and spectrum analyzer code written for WPF, comes with NAudio sample&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sipsorcery.codeplex.com"&gt;SIPSorcery&lt;/a&gt; - .NET softphone framework&lt;/li&gt;
&lt;li&gt;&lt;a href="http://squiggle.codeplex.com/"&gt;Squiggle&lt;/a&gt; - A free open source LAN Messenger&lt;/li&gt;
&lt;li&gt;&lt;a href="http://helixtoolkit.codeplex.com/"&gt;Helix 3D toolkit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/airphone-tv/"&gt;airphone-tv&lt;/a&gt; - A revival of axStream to implement control through the iPhone&lt;/li&gt;
&lt;li&gt;&lt;a href="http://jamnet.codeplex.com/"&gt;JamNet&lt;/a&gt; - a Silverlight drum sample player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.jinglejim.de/Startseite.aspx"&gt;Jingle Jim&lt;/a&gt; - Jingle Software (German language)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.winisoft.ch"&gt;All My Music&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ispyconnect.com/"&gt;iSpy&lt;/a&gt; - Open Source Camera Security Software&lt;/li&gt;
&lt;li&gt;&lt;a href="http://radiotuna.com/OnlineRadioPlayer/Intro"&gt;RadioTuna&lt;/a&gt; - Online internet radio player&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.firetalknew.com"&gt;Fire Talk New&lt;/a&gt; - chat program&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.marcsapps.co.uk/"&gt;AVR Audio Guard&lt;/a&gt; - utility to fix a HDMI related issue&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;More Info&lt;/h2&gt;
For more information, please visit the &lt;a href="http://naudio.codeplex.com/documentation"&gt;NAudio Documentation Wiki&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Donate&lt;/h2&gt;NAudio is a free open source project that is developed in personal time. You can show your appreciation for NAudio and support future development by donating.&lt;br /&gt;&lt;a href="https&amp;#58;&amp;#47;&amp;#47;www.paypal.com&amp;#47;cgi-bin&amp;#47;webscr&amp;#63;cmd&amp;#61;_s-xclick&amp;#38;hosted_button_id&amp;#61;TE4B48U2PPEL6"&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=naudio&amp;DownloadId=233829" alt="Donate" title="Donate" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>markheath</author><pubDate>Sat, 27 Oct 2012 07:33:30 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121027073330A</guid></item><item><title>New Comment on "Create an ID3v2 Tag"</title><link>http://naudio.codeplex.com/wikipage?title=Create an ID3v2 Tag&amp;ANCHOR#C25103</link><description>Hi, markheat, I like to read, you have an example&amp;#63;&amp;#10;&amp;#10;Thanks</description><author>FabioSilva</author><pubDate>Thu, 27 Sep 2012 00:20:24 GMT</pubDate><guid isPermaLink="false">New Comment on "Create an ID3v2 Tag" 20120927122024A</guid></item><item><title>New Comment on "MP3"</title><link>http://naudio.codeplex.com/wikipage?title=MP3&amp;ANCHOR#C25052</link><description>To answer my own question&amp;#58; MP3, WMA, and AIFF are possible&amp;#59; no sign of M4A.&amp;#10;Here is my version of CreateInputStream&amp;#58;&amp;#10;    Private Function CreateInputStream&amp;#40;ByRef fileName As String&amp;#41; As WaveStream&amp;#10;        Dim inputStream As WaveChannel32&amp;#10;        Dim fReader As WaveStream&amp;#10;        If fileName.EndsWith&amp;#40;&amp;#34;.aiff&amp;#34;&amp;#41; Then&amp;#10;            fReader &amp;#61; New AiffFileReader&amp;#40;fileName&amp;#41;&amp;#10;        ElseIf fileName.EndsWith&amp;#40;&amp;#34;.mp3&amp;#34;&amp;#41; Then&amp;#10;            fReader &amp;#61; New Mp3FileReader&amp;#40;fileName&amp;#41;&amp;#10;        ElseIf fileName.EndsWith&amp;#40;&amp;#34;.wma&amp;#34;&amp;#41; Then&amp;#10;            fReader &amp;#61; New WMAFileReader&amp;#40;fileName&amp;#41;&amp;#10;        Else&amp;#10;            Throw New InvalidOperationException&amp;#40;&amp;#34;Invalid file extension&amp;#34;&amp;#41;&amp;#10;        End If&amp;#10;        inputStream &amp;#61; New WaveChannel32&amp;#40;fReader&amp;#41;&amp;#10;        Return inputStream&amp;#10;    End Function</description><author>eejake52</author><pubDate>Thu, 20 Sep 2012 20:35:25 GMT</pubDate><guid isPermaLink="false">New Comment on "MP3" 20120920083525P</guid></item><item><title>New Comment on "MP3"</title><link>http://naudio.codeplex.com/wikipage?title=MP3&amp;ANCHOR#C25051</link><description>I created a player using VB.NET. It was very easy to follow your example.&amp;#10;It only plays MP3 files. What other file types are supported&amp;#47;allowed&amp;#63; I am hoping for M4A and AIFF&amp;#59; WMA would be nice but not essential.</description><author>eejake52</author><pubDate>Thu, 20 Sep 2012 19:28:28 GMT</pubDate><guid isPermaLink="false">New Comment on "MP3" 20120920072828P</guid></item></channel></rss>