﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="http://mycompany.com/mynamespace"><channel><title>Alvas.Net</title><link>http://www.alvas.net/</link><description>Alvas.Net News</description><language>en-us</language><item><title>How to save audio to mp3 on Silverlight 4.</title><link>http://www.alvas.net/alvas.audio,articles.aspx#how-to-save-audio-to-mp3-on-silverlight</link><description>
As you know Silverlight 4 supports access to the microphone. Besides it can call COM objects on the client side. 
&lt;br/&gt;&lt;br/&gt;
To save the audio in mp3 format we need: 

&lt;ol type="I"&gt;
&lt;li&gt; Make the COM object wrapper, which allows us to invoke the necessary Alvas.Audio functionality. 
&lt;ol&gt;
&lt;li&gt; Create AlvasCom project as ClassLibrary. 

&lt;li&gt; In AssemblyInfo.cs change the line 
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;p style="margin: 0px;"&gt;
[assembly: ComVisible(&lt;span style="color: blue;"&gt;false&lt;/span&gt;)]&lt;/p&gt;
&lt;/div&gt;
to 
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;p style="margin: 0px;"&gt;
[assembly: ComVisible(&lt;span style="color: blue;"&gt;true&lt;/span&gt;)]&lt;/p&gt;
&lt;/div&gt;

&lt;li&gt; Add a reference to Alvas.Audio.dll 

&lt;li&gt; Add Alvas.Audio-wrapper interface and its implementation. See the code below. 
&lt;div class="code"&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;pre style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;namespace&lt;/span&gt; AlvasCom&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;{&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: #2b91af;"&gt;Guid&lt;/span&gt;(&lt;span style="color: #a31515;"&gt;"50B29476-F2C0-4445-B0E1-7D4023453EBD"&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;interface&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;IAudioHost&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Close();&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WriteData(&lt;span style="color: blue;"&gt;short&lt;/span&gt; channels, &lt;span style="color: blue;"&gt;short&lt;/span&gt; bitsPerSample, &lt;span style="color: blue;"&gt;int&lt;/span&gt; samplesPerSec, &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[] sampleData);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: #2b91af;"&gt;ClassInterface&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;ClassInterfaceType&lt;/span&gt;.None)]&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;span style="color: #2b91af;"&gt;Guid&lt;/span&gt;(&lt;span style="color: #a31515;"&gt;"1EA86BAE-420F-4309-BF06-23730718BF5E"&lt;/span&gt;)]&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;AudioHost&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;IAudioHost&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af;"&gt;Mp3Writer&lt;/span&gt; mw;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; AudioHost()&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; dir = &lt;span style="color: #2b91af;"&gt;Environment&lt;/span&gt;.GetFolderPath(&lt;span style="color: #2b91af;"&gt;Environment&lt;/span&gt;.&lt;span style="color: #2b91af;"&gt;SpecialFolder&lt;/span&gt;.MyMusic);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; fileName = &lt;span style="color: #2b91af;"&gt;Path&lt;/span&gt;.ChangeExtension(&lt;span style="color: #2b91af;"&gt;Path&lt;/span&gt;.GetFileName(&lt;span style="color: #2b91af;"&gt;Path&lt;/span&gt;.GetTempFileName()), &lt;span style="color: #a31515;"&gt;".mp3"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; path = &lt;span style="color: #2b91af;"&gt;Path&lt;/span&gt;.Combine(dir, fileName);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;global&lt;/span&gt;::System.Windows.Forms.&lt;span style="color: #2b91af;"&gt;MessageBox&lt;/span&gt;.Show(path);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mw = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Mp3Writer&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;File&lt;/span&gt;.Create(path));&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WriteData(&lt;span style="color: blue;"&gt;short&lt;/span&gt; channels, &lt;span style="color: blue;"&gt;short&lt;/span&gt; bitsPerSample, &lt;span style="color: blue;"&gt;int&lt;/span&gt; samplesPerSec, &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[] sampleData)&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af;"&gt;IntPtr&lt;/span&gt; sampleFormat = &lt;span style="color: #2b91af;"&gt;AudioCompressionManager&lt;/span&gt;.GetPcmFormat(channels, bitsPerSample, samplesPerSec);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af;"&gt;IntPtr&lt;/span&gt; format = &lt;span style="color: #2b91af;"&gt;AudioCompressionManager&lt;/span&gt;.GetCompatibleFormat(sampleFormat, &lt;span style="color: #2b91af;"&gt;AudioCompressionManager&lt;/span&gt;.MpegLayer3FormatTag);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[] data = &lt;span style="color: #2b91af;"&gt;AudioCompressionManager&lt;/span&gt;.Convert(sampleFormat, format, sampleData, &lt;span style="color: blue;"&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mw.WriteData(data);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Close()&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mw.Close();&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;li&gt; Sign the assembly with the snk file. 

&lt;li&gt; Register in GAC AlvasCom.dll and Alvas.Audio.dll using gacutil. 

&lt;li&gt; Register the COM object using regasm.
&lt;/ol&gt;
&lt;br/&gt;
&lt;i&gt;You can find AlvasCom.bat  in the "SilverlightAudio\AlvasCom\bin\Debug\" folder to register these libraries.&lt;/i&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;li&gt; Make the Silverlight application with microphone support.
&lt;ol&gt;
&lt;li&gt; Create SilverlightAudio project as SilverlightApplication.

&lt;li&gt; To call a COM object, we need elevated privileges and run it out of browser. Add to OutOfBrowserSettings.xml 

&lt;pre&gt;&lt;font style="font: 10pt Fixedsys; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font style="font: 10pt Fixedsys; color: #800080; "&gt;&amp;lt;OutOfBrowserSettings.SecuritySettings&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SecuritySettings&amp;nbsp;&lt;/font&gt;&lt;font style="font: 10pt Fixedsys; color: #FF0000; "&gt;ElevatedPermissions&lt;/font&gt;&lt;font style="font: 10pt Fixedsys; color: #3A6EA5; "&gt;=&amp;quot;Required&amp;quot;&amp;nbsp;&lt;/font&gt;&lt;font style="font: 10pt Fixedsys; color: #800080; "&gt;/&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;lt;/OutOfBrowserSettings.SecuritySettings&amp;gt;&lt;/font&gt;&lt;/pre&gt;

&lt;li&gt; Writing code call using the "dynamic" type
&lt;div class="code"&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;pre style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;namespace&lt;/span&gt; SilverlightAudio&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;{&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; MyAudioSync : AudioSink&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;dynamic&lt;/span&gt; ah;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; AudioFormat audioFormat;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; OnCaptureStarted()&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ah = ComAutomationFactory.CreateObject(&lt;span style="color: #a31515;"&gt;"AlvasCom.AudioHost"&lt;/span&gt;);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; OnCaptureStopped()&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ah.Close();&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; OnFormatChange(AudioFormat audioFormat)&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;this&lt;/span&gt;.audioFormat = audioFormat;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; OnSamples(&lt;span style="color: blue;"&gt;long&lt;/span&gt; sampleTime, &lt;span style="color: blue;"&gt;long&lt;/span&gt; sampleDuration, &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[] sampleData)&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ah.WriteData((&lt;span style="color: blue;"&gt;short&lt;/span&gt;)audioFormat.Channels, (&lt;span style="color: blue;"&gt;short&lt;/span&gt;)audioFormat.BitsPerSample, audioFormat.SamplesPerSecond, sampleData);&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;pre style="margin: 0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;li&gt; Compile and run the application. 

&lt;li&gt; Enjoy. 
&lt;/ol&gt;
&lt;/ol&gt;

&lt;i&gt;The source code and precompiled examples are here. (&lt;a href="http://alvas.net/Download/Samples/SilverlightAudio.zip"&gt;SilverlightAudio.zip&lt;/a&gt;)&lt;/i&gt;
&lt;br/&gt;&lt;br/&gt;
How can we extend this example? Come immediately to mind 
&lt;ol&gt;
&lt;li&gt;Save mp3 file on the server. 
&lt;li&gt;Make voice chat, but it is better to use gsm instead of mp3 encoding. How to do it - leave it in the form of homework. Hint &lt;a href="http://alvas.net/alvas.audio,tips.aspx#tip60"&gt;#tip60&lt;/a&gt; :)
&lt;li&gt;And what can you propose? 
&lt;/ol&gt;

P.S. If you have any problems - please &lt;a href="mailto: alvas@alvas.net?Subject=SL4+Alvas.Audio"&gt;write us&lt;/a&gt;.
&lt;br/&gt;

&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2falvas.net%2falvas.audio%2carticles.aspx%23how-to-save-audio-to-mp3-on-silverlight"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2falvas.net%2falvas.audio%2carticles.aspx%23how-to-save-audio-to-mp3-on-silverlight" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;

&lt;a rev="vote-for" href="http://dotnetshoutout.com/How-to-save-audio-to-mp3-on-Silverlight-4"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Falvas.net%2Falvas.audio%2Carticles.aspx%23how-to-save-audio-to-mp3-on-silverlight" style="border:0px"/&gt;&lt;/a&gt;</description><pubDate>Sun, 28 Feb 2010 00:00:00 GMT</pubDate></item><item><title>ID3 tags for Wave files.</title><link>http://www.alvas.net/alvas.audio,articles.aspx#id3-tags-for-wave-files</link><description>
ID3 (Identify a MP3) is metadata container most often used for MP3 audio files. ID3 signature contains information about the title track, album, artist name, etc. about the file to be stored in the file itself. Please see &lt;a class=help target=_blank title='ID3' href="http://en.wikipedia.org/wiki/ID3"&gt;ID3&lt;/a&gt;.
&lt;br/&gt;
Wave files can also store metadata similar ID3.
&lt;br/&gt;&lt;br/&gt;
The code below shows how to add, delete, and read metadata from the Wav files.

&lt;div class="code"&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WaveTag()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; fileName = &lt;span style="color: maroon;"&gt;"in.wav"&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;WaveReadWriter&lt;/span&gt; wrw = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;WaveReadWriter&lt;/span&gt;(&lt;span style="color: teal;"&gt;File&lt;/span&gt;.Open(fileName, &lt;span style="color: teal;"&gt;FileMode&lt;/span&gt;.Open, &lt;span style="color: teal;"&gt;FileAccess&lt;/span&gt;.ReadWrite));&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//removes INFO tags from audio stream &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wrw.WriteInfoTag(&lt;span style="color: blue;"&gt;null&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//writes INFO tags into audio stream &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;WaveInfo&lt;/span&gt;, &lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;gt; tag = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;WaveInfo&lt;/span&gt;, &lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;gt;();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag[&lt;span style="color: teal;"&gt;WaveInfo&lt;/span&gt;.Comments] = &lt;span style="color: maroon;"&gt;"Comments..."&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wrw.WriteInfoTag(tag);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wrw.Close();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//reads INFO tags from audio stream&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;WaveReader&lt;/span&gt; wr = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;WaveReader&lt;/span&gt;(&lt;span style="color: teal;"&gt;File&lt;/span&gt;.OpenRead(fileName));&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;WaveInfo&lt;/span&gt;, &lt;span style="color: blue;"&gt;string&lt;/span&gt;&amp;gt; dir = wr.ReadInfoTag();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wr.Close();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (dir.Count &amp;gt; 0)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color: blue;"&gt;string&lt;/span&gt; val &lt;span style="color: blue;"&gt;in&lt;/span&gt; dir.Values)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(val);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

In addition, we show how to do the same for mp3 files with ID3 Tag V1.0

&lt;div class="code"&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Mp3Tag()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; fileName = &lt;span style="color: maroon;"&gt;"in.mp3"&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Mp3ReadWriter&lt;/span&gt; mrw = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;Mp3ReadWriter&lt;/span&gt;(&lt;span style="color: teal;"&gt;File&lt;/span&gt;.Open(fileName, &lt;span style="color: teal;"&gt;FileMode&lt;/span&gt;.Open, &lt;span style="color: teal;"&gt;FileAccess&lt;/span&gt;.ReadWrite));&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//removes ID3v1 tags from audio stream &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mrw.WriteID3v1Tag(&lt;span style="color: blue;"&gt;null&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//writes ID3v1 tags into audio stream &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;ID3v1&lt;/span&gt; tag = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ID3v1&lt;/span&gt;();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag.Comment = &lt;span style="color: maroon;"&gt;"Comment..."&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mrw.WriteID3v1Tag(tag);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mrw.Close();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: green;"&gt;//reads ID3v1 tags from audio stream &lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Mp3Reader&lt;/span&gt; mr = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;Mp3Reader&lt;/span&gt;(&lt;span style="color: teal;"&gt;File&lt;/span&gt;.OpenRead(fileName));&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;ID3v1&lt;/span&gt; id3v1 = mr.ReadID3v1Tag();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mr.Close();&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (id3v1 != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(id3v1.Comment);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

</description><pubDate>Mon, 15 Feb 2010 00:00:00 GMT</pubDate></item><item><title>What is ACM driver?</title><link>http://www.alvas.net/alvas.audio,articles.aspx#what-is-acm-driver</link><description>
Audio Compression Manager (ACM) is the Windows multimedia framework that manages audio codecs. Codec is a computer program that compresses/decompresses digital audio data according to a given audio file format or streaming audio format.
&lt;br/&gt;ACM driver is dynamic-link library (DLL) which contains audio codecs for different audio formats. 
&lt;br/&gt;ACM drivers can be recognized by their filename extension ".acm". For more details please see &lt;a class=help target=_blank title='Audio Compression Manager' href="http://en.wikipedia.org/wiki/Audio_Compression_Manager"&gt;Audio Compression Manager&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
The code below can be used to list ACM codecs installed on your computer and see audio formats for specified codec.

&lt;div class="code"&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WhatIsAcmDriver()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color: teal;"&gt;DriverDetails&lt;/span&gt; dd &lt;span style="color: blue;"&gt;in&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.GetDriverList())&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"# # #"&lt;/span&gt;);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"Driver: {0}"&lt;/span&gt;, dd.LongName);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color: teal;"&gt;FormatTagDetails&lt;/span&gt; ftd &lt;span style="color: blue;"&gt;in&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.GetFormatTagList(dd.Driver))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"FormatTag: {0}"&lt;/span&gt;, ftd.FormatTagName);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color: teal;"&gt;FormatDetails&lt;/span&gt; fd &lt;span style="color: blue;"&gt;in&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.GetFormatList(ftd.FormatTag, dd.Driver))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"Format: {0}"&lt;/span&gt;, fd.FormatName);&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

Output for "Microsoft GSM 6.10 Audio CODEC" (for example) driver see below
&lt;pre&gt;
# # #
Driver: Microsoft GSM 6.10 Audio CODEC
FormatTag: GSM 6.10
Format: 8,000 kHz; Mono
Format: 11,025 kHz; Mono
Format: 22,050 kHz; Mono
Format: 44,100 kHz; Mono
FormatTag: PCM
Format: 8,000 kHz; 8 Bit; Mono
Format: 8,000 kHz; 16 Bit; Mono
Format: 11,025 kHz; 8 Bit; Mono
Format: 11,025 kHz; 16 Bit; Mono
Format: 22,050 kHz; 8 Bit; Mono
Format: 22,050 kHz; 16 Bit; Mono
Format: 44,100 kHz; 8 Bit; Mono
Format: 44,100 kHz; 16 Bit; Mono
# # #
&lt;/pre&gt;
</description><pubDate>Mon, 15 Feb 2010 00:00:00 GMT</pubDate></item><item><title>How can be one audio file mixed to another?</title><link>http://www.alvas.net/alvas.audio,articles.aspx#how-can-be-mixed-one-audio-file-to</link><description>
&lt;b&gt;Question:&lt;/b&gt; I have multiple audio tracks with nothing but music.
&lt;br/&gt;I have multiple recorded voice tracks no longer than 2-3 seconds each.
&lt;br/&gt;What I would like to do is 'overlay' a voice track onto an audio
track at a specified time and output the results to a single file.
&lt;br/&gt;E.g. Audio track is 2 minutes long, and I would like to insert
the voice track at 23 seconds as well 1m 05 seconds and at 1m 40 seconds.
&lt;br/&gt;Can Alvas.Audio accomplish this sort of task for me??
&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Answer:&lt;/b&gt; See the code below

&lt;div class="code"&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;Imports&lt;/span&gt; System.IO&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;Imports&lt;/span&gt; Alvas.Audio&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;Public&lt;/span&gt; &lt;span style="color: blue;"&gt;Class&lt;/span&gt; Form1&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Private&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; Button1_Click(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.Object, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; e &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color: blue;"&gt;Handles&lt;/span&gt; Button1.Click&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MixMany(&lt;span style="color: maroon;"&gt;"c:\audio\files\"&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Private&lt;/span&gt; &lt;span style="color: blue;"&gt;Shared&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; Debug(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; name &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; wf &lt;span style="color: blue;"&gt;As&lt;/span&gt; WaveFormat)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; format &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Variable: [{0}], FormatTag: {1}, Channels: {2}, SamplesPerSec: {3}, BitsPerSample: {4}, BlockAlign: {5}, AvgBytesPerSec: {6}"&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(format, name, wf.wFormatTag, wf.nChannels, wf.nSamplesPerSec, wf.wBitsPerSample, wf.nBlockAlign, wf.nAvgBytesPerSec)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Private&lt;/span&gt; &lt;span style="color: blue;"&gt;Shared&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; MixMany(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; dir &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; format1 &lt;span style="color: blue;"&gt;As&lt;/span&gt; IntPtr&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; data1 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Byte&lt;/span&gt;()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ReadData(dir + &lt;span style="color: maroon;"&gt;"The Friendship Song.mp3"&lt;/span&gt;, format1, data1)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; format2 &lt;span style="color: blue;"&gt;As&lt;/span&gt; IntPtr&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; data2 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Byte&lt;/span&gt;()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ReadData(dir + &lt;span style="color: maroon;"&gt;"Kailin 1.mp3"&lt;/span&gt;, format2, data2)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; wf1 &lt;span style="color: blue;"&gt;As&lt;/span&gt; WaveFormat = AudioCompressionManager.GetWaveFormat(format1)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Debug(&lt;span style="color: maroon;"&gt;"wf1"&lt;/span&gt;, wf1)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; wf2 &lt;span style="color: blue;"&gt;As&lt;/span&gt; WaveFormat = AudioCompressionManager.GetWaveFormat(format2)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Debug(&lt;span style="color: maroon;"&gt;"wf1"&lt;/span&gt;, wf2)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;If&lt;/span&gt; &lt;span style="color: blue;"&gt;Not&lt;/span&gt; wf1.Equals(wf2) &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; data2 = AudioCompressionManager.Convert(format2, format1, data2, &lt;span style="color: blue;"&gt;False&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; data &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Byte&lt;/span&gt;() = AudioCompressionManager.MixMany(format1, data1, data2, wf1.nSamplesPerSec * 27.1, wf1.nSamplesPerSec * 83.28)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; formatMp3 &lt;span style="color: blue;"&gt;As&lt;/span&gt; IntPtr = AudioCompressionManager.GetCompatibleFormat(format1, AudioCompressionManager.MpegLayer3FormatTag)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Debug(&lt;span style="color: maroon;"&gt;"wfMp3"&lt;/span&gt;, AudioCompressionManager.GetWaveFormat(formatMp3))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; dataMp3 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Byte&lt;/span&gt;() = AudioCompressionManager.Convert(format1, formatMp3, data, &lt;span style="color: blue;"&gt;False&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; mw &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt; Mp3Writer(File.Create(dir + &lt;span style="color: maroon;"&gt;"Test002.mp3"&lt;/span&gt;))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mw.WriteData(dataMp3)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; mw.Close()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; MsgBox(&lt;span style="color: maroon;"&gt;"Done!"&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Private&lt;/span&gt; &lt;span style="color: blue;"&gt;Shared&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; ReadData(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; fileName &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByRef&lt;/span&gt; format1 &lt;span style="color: blue;"&gt;As&lt;/span&gt; IntPtr, &lt;span style="color: blue;"&gt;ByRef&lt;/span&gt; data1 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Byte&lt;/span&gt;())&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; dr1 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt; Mp3Reader(File.OpenRead(fileName))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; format1 = dr1.ReadFormat()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; data1 = dr1.ReadData()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; dr1.Close()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; format1Pcm &lt;span style="color: blue;"&gt;As&lt;/span&gt; IntPtr = AudioCompressionManager.GetCompatibleFormat(format1, AudioCompressionManager.PcmFormatTag)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; data1Pcm() &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Byte&lt;/span&gt; = AudioCompressionManager.Convert(format1, format1Pcm, data1, &lt;span style="color: blue;"&gt;False&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; format1 = format1Pcm&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; data1 = data1Pcm&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;
&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Class&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

</description><pubDate>Mon, 15 Feb 2010 00:00:00 GMT</pubDate></item><item><title>2010-02-01 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; Writes ID3 tag version 1 from MPEG Layer3 streams.
&lt;li&gt; Writes INFO metadata(similar mp3 tags) from Wave streams.
&lt;li&gt; Checks audio signal silence.
&lt;/ol&gt;
</description><pubDate>Mon, 1 Feb 2010 00:00:00 GMT</pubDate></item><item><title>What is compressed audio format?</title><link>http://www.alvas.net/alvas.audio,articles.aspx#what-is-compressed-audio-format</link><description>
&lt;div&gt;
Audio compression is a kind of data compression developed to reduce the transmission bandwidth of digital sound streams
and the size of audio files. Audio compression algorithms are applied in computer software as audio codecs. The compromise
between a little reduced sound quality and transmission or size is outweighed by the last for most practical audio apps in which
users may not feel the loss in playback rendition quality.
&lt;/div&gt;
&lt;div&gt;
For instance, one compact disk (CD) contains about one hour of uncompressed (&lt;a href="#what-is-pcm-format"&gt;PCM&lt;/a&gt;) high quality music, 
less than 2 hours of music compressed without loss in playback, or 7 hours of music compressed in the MP3 format at medium bit rates.
&lt;/div&gt;
&lt;br/&gt;
&lt;div&gt;
Lets analyse compressed audio format, for instance, "GSM 6.10". This format is applied to compress the mobile operators speaking on cellular.
GSM is applied for over 3 billion people in more than 212 countries and territories.
&lt;/div&gt;
&lt;br/&gt;
&lt;div&gt;
&lt;strong&gt;AudioCompressionManager.GetWaveFormat&lt;/strong&gt; can analyse the audio format inside.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;FormatTag&lt;/strong&gt; = 49 is "GSM 6.10" format.
&lt;li&gt;&lt;strong&gt;Channels&lt;/strong&gt; = 1 is single-channel.
&lt;li&gt;&lt;strong&gt;SamplesPerSec&lt;/strong&gt; = quantity of digitized values per second (or sampling): 8000 Hz, 11025 Hz, 22050 Hz, 44100 Hz.
&lt;li&gt;&lt;strong&gt;BitsPerSample&lt;/strong&gt; = 0, unimportant for this format.
&lt;li&gt;&lt;strong&gt;BlockAlign&lt;/strong&gt; = 65. The size of the compressed block (in bytes).
&lt;li&gt;&lt;strong&gt;AvgBytesPerSec&lt;/strong&gt; is byterate(Bitrate equal byterate * 8) = 1625. For "GSM 6.10 22050 Hz; Mono".
&lt;/ul&gt;
You can use the code below to look through "GSM 6.10" audio format in more detail.
&lt;/div&gt;

&lt;div class=code&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WhatIsCompressedAudioFormat()&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color: teal;"&gt;FormatDetails&lt;/span&gt; fd &lt;span style="color: blue;"&gt;in&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.GetFormatList(&lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.Gsm610FormatTag, &lt;span style="color: blue;"&gt;true&lt;/span&gt;))&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;WaveFormat&lt;/span&gt; wf = &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.GetWaveFormat(fd.FormatHandle);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; format = &lt;span style="color: maroon;"&gt;"Format: [{0}], FormatTag: {1}, Channels: {2}, SamplesPerSec: {3}, BitsPerSample: {4}, BlockAlign: {5}, AvgBytesPerSec: {6}"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(format, fd, wf.wFormatTag, wf.nChannels, wf.nSamplesPerSec, wf.wBitsPerSample, wf.nBlockAlign, wf.nAvgBytesPerSec);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
</description><pubDate>Thu, 7 Jan 2010 00:00:00 GMT</pubDate></item><item><title>What is a PCM format?</title><link>http://www.alvas.net/alvas.audio,articles.aspx#what-is-pcm-format</link><description>
&lt;div&gt;PCM (Pulse-code modulation) is an uncompressed audio format. 
We get the Wav file, that maintains (holds) the PCM data.
See how to do &lt;a href="#what-is-wave-file"&gt;What is a Wav-file?&lt;/a&gt; 
Method &lt;b&gt;AudioCompressionManager.GetWaveFormat&lt;/b&gt; helps investigate  the audio format. &lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;FormatTag &lt;/b&gt;= 1 is PCM. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Channels&lt;/b&gt; = for single-channel (mono), two-channel (stereo), 8 for 7.1 Surround Sound (left, right, center, left surround, 
right surround, left rear, right rear positions. 7.1 systems also have 1 channel for low frequency effects (LFE) which is usually sent to a subwoofer). &lt;/li&gt;
&lt;li&gt;&lt;b&gt;SamplesPerSec&lt;/b&gt; = digitized quantity values per second (or sampling). Could be anything, but the standard values: 8000 Hz, 11025 Hz, 
12000 Hz, 16000 Hz, 22050 Hz, 24000 Hz, 32000 Hz, 44100 Hz, 48000 Hz. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;BitsPerSample&lt;/b&gt; - most common uses 8 bits (1 byte) and 16 bits (2 bytes). Rarely 24 bits (3 bytes), 32 bits (4 bytes) and 64 bits (4 bytes). 
If we consider the 16 bit as a basic, then 8 bits can be considered as a compressed format. It has two times less size, 
but the variants of values can be only 2&lt;sup&gt;8&lt;/sup&gt; = 256 instead of 2&lt;sup&gt;16&lt;/sup&gt; = 65536 for 16 bits. That's why, 8 bits sound quality will be 
significantly lower than 16 bits. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;BlockAlign&lt;/b&gt; = Channels * BitsPerSample / 8. Where 8 is the quantity of bits per byte.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AvgBytesPerSec&lt;/b&gt; (bitrate) = Channels * SamplesPerSec * BitsPerSample / 8.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;You can use the code below to analyze PCM audio format in more particularly.&lt;/div&gt;
&lt;div class=code&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WhatIsPcmFormat(&lt;span style="color: blue;"&gt;string&lt;/span&gt; fileName)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;WaveReader&lt;/span&gt; wr = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;WaveReader&lt;/span&gt;(&lt;span style="color: teal;"&gt;File&lt;/span&gt;.OpenRead(fileName));&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;IntPtr&lt;/span&gt; format = wr.ReadFormat();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wr.Close();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;WaveFormat&lt;/span&gt; wf = &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.GetWaveFormat(format);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (wf.wFormatTag == &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.PcmFormatTag)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;int&lt;/span&gt; bitsPerByte = 8;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"Channels: {0}, SamplesPerSec: {1}, BitsPerSample: {2}, BlockAlignIsEqual: {3}, BytesPerSecIsEqual: {4}"&lt;/span&gt;, wf.nChannels, wf.nSamplesPerSec, wf.wBitsPerSample, (wf.nChannels * wf.wBitsPerSample) / bitsPerByte == wf.nBlockAlign, (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)(wf.nChannels * wf.nSamplesPerSec * wf.wBitsPerSample) / bitsPerByte == wf.nAvgBytesPerSec);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
</description><pubDate>Wed, 30 Dec 2009 00:00:00 GMT</pubDate></item><item><title>What is a Wav-file?</title><link>http://www.alvas.net/alvas.audio,articles.aspx#what-is-wave-file</link><description>
&lt;div&gt;WAVE (WAV) is a container format for recording the digitized audio stream. Under Windows, this format is often 
applied as a wrapper for uncompressed audio (PCM). But, you can put sound in WAV container compressed perhaps in any codec. &lt;/div&gt;
&lt;div&gt;In that way your WAV-file can maintain data in various audio formats, such as the CCITT A-Law, CCITT u-Law, ADPCM, Speex, GSM 6.10, MPEG Layer-3 (mp3), Ogg Vorbis and others.&lt;/div&gt;
&lt;div&gt;You can use the code below to investigate audio-format data recorded in your WAV-file.&lt;/div&gt;
&lt;div class=code&gt;
&lt;div style="font-family: Courier New; font-size: 10pt; color: black; background: white;"&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; WhatIsWavFile(&lt;span style="color: blue;"&gt;string&lt;/span&gt; fileName)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;WaveReader&lt;/span&gt; wr = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;WaveReader&lt;/span&gt;(&lt;span style="color: teal;"&gt;File&lt;/span&gt;.OpenRead(fileName));&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;IntPtr&lt;/span&gt; format = wr.ReadFormat();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; wr.Close();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;WaveFormat&lt;/span&gt; wf = &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.GetWaveFormat(format);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;string&lt;/span&gt; tag = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;switch&lt;/span&gt; (wf.wFormatTag)&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.PcmFormatTag :&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = &lt;span style="color: maroon;"&gt;"PCM"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.ALawFormatTag :&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = &lt;span style="color: maroon;"&gt;"A-Law"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.MuLawFormatTag :&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = &lt;span style="color: maroon;"&gt;"Mu-Law"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.Gsm610FormatTag :&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = &lt;span style="color: maroon;"&gt;"GSM 6.10"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.ImaAdpcmFormatTag :&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = &lt;span style="color: maroon;"&gt;"IMA ADPCM"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.AdpcmFormatTag :&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = &lt;span style="color: maroon;"&gt;"Microsoft ADPCM"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: teal;"&gt;AudioCompressionManager&lt;/span&gt;.MpegLayer3FormatTag :&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = &lt;span style="color: maroon;"&gt;"ISO/MPEG Layer3"&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;default&lt;/span&gt;:&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tag = wf.wFormatTag.ToString();&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: teal;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: maroon;"&gt;"File '{0}' contains '{1}' data"&lt;/span&gt;, fileName, tag);&lt;/p&gt;&lt;p style="margin: 0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
</description><pubDate>Tue, 29 Dec 2009 00:00:00 GMT</pubDate></item><item><title>2009-11-04 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; Reads ID3 tag version 1 from MPEG Layer3 streams.
&lt;li&gt; Reads INFO metadata(similar mp3 tags) from Wave streams.
&lt;li&gt; Gets the format list for specified format tag and driver.
&lt;li&gt; Player class can plays Wave file data from array.
&lt;/ol&gt;
</description><pubDate>Wed, 4 Nov 2009 00:00:00 GMT</pubDate></item><item><title>2009-03-19 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:

DsReader class for playback any audio files and decode theirs to PCM using DirectShow filters. Standard supports
&lt;ul&gt;
 &lt;li&gt; MP3 Format Sound: .mp3
 &lt;li&gt; Windows Media Audio: .wma
 &lt;li&gt; AIFF (.aif .aifc .aiff)
 &lt;li&gt; AU (.au .snd)
 &lt;li&gt; MIDI (.mid .midi .rmi)
 &lt;li&gt; Windows Media Video: .wmv
 &lt;li&gt; Advanced Systems Format: .asf
 &lt;li&gt; Motion Picture Experts Group: .mpeg
 &lt;li&gt; Audio-Video Interleaved: .avi
 &lt;li&gt; WAV: wav
&lt;/ul&gt;

Use &lt;a href=http://en.wikipedia.org/wiki/K-Lite_Codec_Pack&gt;http://en.wikipedia.org/wiki/K-Lite_Codec_Pack&lt;/a&gt; 
or &lt;a href=http://en.wikipedia.org/wiki/Ffdshow&gt;http://en.wikipedia.org/wiki/Ffdshow&lt;/a&gt; to expand the list of supported formats to

&lt;ul&gt;
 &lt;li&gt; Matroska (.mka)
 &lt;li&gt; MPEG (.mpa .mp2 .m1a .m2a)
 &lt;li&gt; MPEG4 (.m4a .aac)
 &lt;li&gt; Musepack (.mpc)
 &lt;li&gt; RealMedia (.rm .rmvb .ra .ram)
 &lt;li&gt; 3GP (.3gp .3gpp .3g2 .3gp2)
 &lt;li&gt; FLAC (.flac)
 &lt;li&gt; Ogg Vorbis (.ogg)
 &lt;li&gt; WavPack (.wv)
 &lt;li&gt; Monkey's Audio (.ape)
 &lt;li&gt; True Audio (.tta)
 &lt;li&gt; Apple Lossless Audio Codec (.alac)
 &lt;li&gt; AMR (.amr)
 &lt;li&gt; Trackers (.xm .s3m .it .mod .umx)
 &lt;li&gt; and much more...
&lt;/ul&gt;

&lt;div align=right&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2falvas.net%2falvas.audio%2cnews.aspx%3f68"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2falvas.net%2falvas.audio%2cnews.aspx%3f68" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;

&lt;a rev="vote-for" href="http://dotnetshoutout.com/AlvasAudio-version-68-has-been-published"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Falvas.net%2Falvas.audio%2Cnews.aspx%3F68" style="border:0px"/&gt;&lt;/a&gt;
&lt;/div&gt;
</description><pubDate>Thu, 19 Mar 2009 00:00:00 GMT</pubDate></item><item><title>2009-03-15 - Alvas.Controls</title><link>http://www.alvas.net/alvas.controls.aspx</link><description>
Alvas.Controls now can be used in any of your projects for free. Sources still cost money.
</description><pubDate>Sun, 15 Mar 2009 00:00:00 GMT</pubDate></item><item><title>2009-03-04 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio for .Net code name "Helena" 65b1 beta has been released.&lt;br&gt;
&lt;br&gt;New features:

DsReader class for playback any audio files and decode theirs to PCM using DirectShow filters. Standard supports
&lt;ul&gt;
 &lt;li&gt; MP3 Format Sound: .mp3
 &lt;li&gt; Windows Media Audio: .wma
 &lt;li&gt; AIFF (.aif .aifc .aiff)
 &lt;li&gt; AU (.au .snd)
 &lt;li&gt; MIDI (.mid .midi .rmi)
 &lt;li&gt; Windows Media Video: .wmv
 &lt;li&gt; Advanced Systems Format: .asf
 &lt;li&gt; Motion Picture Experts Group: .mpeg
 &lt;li&gt; Audio-Video Interleaved: .avi
 &lt;li&gt; WAV: wav
&lt;/ul&gt;

Use &lt;a href=http://en.wikipedia.org/wiki/K-Lite_Codec_Pack&gt;http://en.wikipedia.org/wiki/K-Lite_Codec_Pack&lt;/a&gt; 
or &lt;a href=http://en.wikipedia.org/wiki/Ffdshow&gt;http://en.wikipedia.org/wiki/Ffdshow&lt;/a&gt; to expand the list of supported formats to

&lt;ul&gt;
 &lt;li&gt; Matroska (.mka)
 &lt;li&gt; MPEG (.mpa .mp2 .m1a .m2a)
 &lt;li&gt; MPEG4 (.m4a .aac)
 &lt;li&gt; Musepack (.mpc)
 &lt;li&gt; RealMedia (.rm .rmvb .ra .ram)
 &lt;li&gt; 3GP (.3gp .3gpp .3g2 .3gp2)
 &lt;li&gt; FLAC (.flac)
 &lt;li&gt; Ogg Vorbis (.ogg)
 &lt;li&gt; WavPack (.wv)
 &lt;li&gt; Monkey's Audio (.ape)
 &lt;li&gt; True Audio (.tta)
 &lt;li&gt; Apple Lossless Audio Codec (.alac)
 &lt;li&gt; AMR (.amr)
 &lt;li&gt; Trackers (.xm .s3m .it .mod .umx)
 &lt;li&gt; and much more...
&lt;/ul&gt;

Direct link: &lt;a href=http://alvas.net/Download/Alvas.Audio.65b1.zip&gt;http://alvas.net/Download/Alvas.Audio.65b1.zip&lt;/a&gt; 

&lt;div align=right&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2falvas.net%2falvas.audio%2cnews.aspx%3f65b1"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2falvas.net%2falvas.audio%2cnews.aspx%3f65b1" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;

&lt;a rev="vote-for" href="http://dotnetshoutout.com/AlvasAudio-for-Net-code-name-Helena-65b1-beta-has-been-released"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Falvas.net%2Falvas.audio%2Cnews.aspx%3F65b1" style="border:0px"/&gt;&lt;/a&gt;
&lt;/div&gt;
</description><pubDate>Wed, 4 Mar 2009 00:00:00 GMT</pubDate></item><item><title>2009-02-03 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; RecordPlayer class for recording and playback.
&lt;li&gt; WaveReadWriter, Mp3ReadWriter, RawReadWriter and IAudioReadWriter classes to read/write data from/to the audio stream.
&lt;li&gt; MergeStereo methods for merging 2 audio mono into one stereo.
&lt;li&gt; Doesn't use unsafe code.
&lt;/ol&gt;
</description><pubDate>Tue, 3 Feb 2009 00:00:00 GMT</pubDate></item><item><title>2009-01-24 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Due to high demand Alvas.Audio lifetime license with free updates for all of the following releases appeared.&lt;br&gt;

For more details please see &lt;a href=alvas.audio,orders.aspx&gt;order page&lt;/a&gt;.
</description><pubDate>Sat, 24 Jan 2009 00:00:00 GMT</pubDate></item><item><title>2009-01-23 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio for .Net code name "Anna" 61b1 beta has been released.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; Dictophone class with record/play, forward/backward possibility.
&lt;li&gt; AudioCompressionManager.MergeStereo methods for merges 2 mono streams to one stereo.
&lt;li&gt; Much more.
&lt;/ol&gt;

Direct link: &lt;a href=http://alvas.net/Download/Alvas.Audio.61b1.zip&gt;http://alvas.net/Download/Alvas.Audio.61b1.zip&lt;/a&gt; 
&lt;div align=right&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2falvas.net%2falvas.audio%2cnews.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2falvas.net%2falvas.audio%2cnews.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;
&lt;/div&gt;
</description><pubDate>Fri, 23 Jan 2009 00:00:00 GMT</pubDate></item><item><title>2009-01-05 - Alvas.Labels</title><link>http://www.alvas.net/alvas.labels.aspx</link><description>
Alvas.Labels now can be used in any of your projects for free. Sources still cost money.
</description><pubDate>Mon, 5 Jan 2009 00:00:00 GMT</pubDate></item><item><title>2008-12-04 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; Added support for recording and playback in WAV format with 32 bits floating point format (WAVE_FORMAT_IEEE_FLOAT).
&lt;li&gt; Added support for recording and playback in WAV format with 24 and 32 bits PCM format with more than two channels.
&lt;li&gt; Can use PlayerEx and RecorderEx in the console applications and Windows Services.
&lt;/ol&gt;
</description><pubDate>Thu, 4 Dec 2008 00:00:00 GMT</pubDate></item><item><title>2008-12-02 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Enter coupon alvas-audio-2009 and get 35% discount on Alvas.Audio or Alvas.Suite!
Valid till 1 January 2009.
</description><pubDate>Tue, 2 Dec 2008 00:00:00 GMT</pubDate></item><item><title>2008-07-12 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New classes were added:
&lt;ol type="square"&gt;
&lt;li&gt; AcmConverter class converts audio data from one format to another.
&lt;li&gt; AudioReader/AudioWriter are base classes for stream audio readers/writers.
&lt;li&gt; Mp3Reader/Mp3Writer are classes for reading/writing audio data from/to MP3 streams.
&lt;li&gt; AviReader is a class for reading audio data from Avi streams.
&lt;li&gt; RawReader/RawWriter are classes for reading/writing audio data from/to headerless streams. Slinear, Gsm, A-law, mu-law etc.
&lt;/ol&gt;
</description><pubDate>Fri, 11 Jul 2008 23:00:00 GMT</pubDate></item><item><title>2008-03-31 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; Convert audio wave stream to mp3 stream
&lt;li&gt; Convert Dialogic .vox (adpcm) stream to Mp3 stream
&lt;li&gt; Insert and mix audio data into main audio data with specified offset multiple times
&lt;li&gt; Split stereo audio stream to two mono streams
&lt;li&gt; Reverse audio wave stream
&lt;li&gt; Create audio format for MPEG Layer3 audio data
&lt;li&gt; Sign library with &lt;a class=help href='http://en.wikipedia.org/wiki/Strong_name' target=_blank title='Strong name'&gt;&lt;strong&gt;strong name&lt;/strong&gt;&lt;/a&gt;. 
Now audio library can be added to &lt;a class=help href='http://en.wikipedia.org/wiki/Global_assembly_cache' target=_blank title='Global assembly cache'&gt;&lt;strong&gt;GAC&lt;/strong&gt;&lt;/a&gt;
&lt;/ol&gt;
</description><pubDate>Sun, 30 Mar 2008 23:00:00 GMT</pubDate></item><item><title>2007-12-01 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Enter coupon alvas-audio-2008 and get 25% discount on Alvas.Audio!
Valid till 31 December 2007.
</description><pubDate>Sat, 1 Dec 2007 00:00:00 GMT</pubDate></item><item><title>2007-11-26 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; Change the speed of audio data
&lt;li&gt; Join several pieces of audio in a single
&lt;li&gt; Cut a piece of the audio stream
&lt;li&gt; Insert a piece in the audio stream
&lt;li&gt; Remove a piece of the audio stream
&lt;li&gt; Create audio format from the byte array
&lt;/ol&gt;
</description><pubDate>Mon, 26 Nov 2007 00:00:00 GMT</pubDate></item><item><title>2007-06-06 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New features:
&lt;ol type="square"&gt;
&lt;li&gt; &lt;strong&gt;encode and decode Dialogic .vox (adpcm) format data&lt;/strong&gt;;
&lt;li&gt; play, record and convert RAW headerless format (SLINEAR etc);
&lt;li&gt; change source line volume for recording;
&lt;li&gt; change different volume for stereo mixer line;
&lt;li&gt; change volume for PlayerEx.
&lt;/ol&gt;
</description><pubDate>Tue, 5 Jun 2007 23:00:00 GMT</pubDate></item><item><title>2007-01-18 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
&lt;br&gt;New! &lt;strong&gt;Mixer controls set up:&lt;/strong&gt;
&lt;ol type="square"&gt;
&lt;li&gt; select source line for recording;
&lt;li&gt; change source line volume for recording;
&lt;li&gt; additional controls adjustment. For example, "Mic Boost";
&lt;li&gt; change master volume for playback;
&lt;li&gt; playback muting.
&lt;/ol&gt;
</description><pubDate>Thu, 18 Jan 2007 00:00:00 GMT</pubDate></item><item><title>2006-11-09 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
Some new features were added:
&lt;ol type="square"&gt;
&lt;li&gt;Now PlayerEx can play mixed audio data. 
&lt;li&gt;PlayerEx can detect that playing process is complete.
&lt;/ol&gt;
Also some bugs were fixed.
</description><pubDate>Thu, 9 Nov 2006 00:00:00 GMT</pubDate></item><item><title>2006-10-09 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
Some new features were added:
&lt;ol type="square"&gt;
&lt;li&gt;To get the format list for specified WaveFormat. 
&lt;li&gt;To get audio stream duration in milliseconds. 
&lt;li&gt;To change Wave stream to MP3 stream if Wave stream contains 'MPEG Layer 3' data 
&lt;li&gt;To show the dialog box that enables the user to select the waveform-audio format. 
&lt;li&gt;To get the WaveFormat for specified format handle. 
&lt;li&gt;To get the format for the conversion from the specified format and specified format tag. 
&lt;li&gt;To get the format list for the conversion from the specified format. 
&lt;/ol&gt;
</description><pubDate>Sun, 8 Oct 2006 23:00:00 GMT</pubDate></item><item><title>2006-09-18 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published.&lt;br&gt;
New Features
&lt;ol type="square"&gt;
&lt;li&gt;Record audio data:
&lt;ol type="disc"&gt;
&lt;li&gt; pause and resume recording;
&lt;li&gt; get the current sound position;
&lt;/ol&gt;
&lt;li&gt;Play audio data:
&lt;ol type="disc"&gt;
&lt;li&gt; play uncompressed audio data (PCM);
&lt;li&gt; play compressed audio data: IMA ADPCM, Microsoft ADPCM, CCITT A-Law, CCITT u-Law, GSM 6.10, MPEG Layer-3 (mp3) and others;
&lt;li&gt; play data from the stream (file stream, memory stream);
&lt;li&gt; pause and resume playing;
&lt;li&gt; get the current sound position;
&lt;li&gt; play data from any player installed in the system (multiple sound cards).
&lt;/ol&gt;
&lt;li&gt;Convert the audio data from one to another audio format.
&lt;li&gt;View the level of the input sound signal.
&lt;/ol&gt;
</description><pubDate>Sun, 17 Sep 2006 23:00:00 GMT</pubDate></item><item><title>2006-07-02 - Alvas.FileControls</title><link>http://www.alvas.net/alvas.filecontrols.aspx</link><description>
New version &lt;STRONG&gt;Alvas.FileControls:&lt;/STRONG&gt; has been 
published. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;New samples&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;for c# and vb.net developers.
&lt;/UL&gt;
</description><pubDate>Sat, 1 Jul 2006 23:00:00 GMT</pubDate></item><item><title>2006-01-07 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version allow sound recording in PCM, IMA ADPCM, Microsoft ADPCM, CCITT A-Law, CCITT u-Law, GSM 6.10, MPEG Layer-3 (mp3) and other wave file format.
</description><pubDate>Sat, 7 Jan 2006 00:00:00 GMT</pubDate></item><item><title>2006-01-07 - Alvas.FileControls</title><link>http://www.alvas.net/alvas.filecontrols.aspx</link><description>
New version &lt;STRONG&gt;Alvas.FileControls:&lt;/STRONG&gt; has been 
published. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;New components&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;CDBurner is a component for burning writable CD.
&lt;/UL&gt;
</description><pubDate>Sat, 7 Jan 2006 00:00:00 GMT</pubDate></item><item><title>2005-03-27 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Audio new version has been published. Some bug-fixes and improvements.
</description><pubDate>Sun, 27 Mar 2005 00:00:00 GMT</pubDate></item><item><title>2005-01-05 - Alvas.FileControls</title><link>http://www.alvas.net/alvas.filecontrols.aspx</link><description>
New version &lt;STRONG&gt;Alvas.FileControls:&lt;/STRONG&gt; has been 
published. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;New components&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;FileOperation - copies, moves, renames, or deletes a file system object.
&lt;/UL&gt;
</description><pubDate>Wed, 5 Jan 2005 00:00:00 GMT</pubDate></item><item><title>2004-06-03 - Alvas.FileControls</title><link>http://www.alvas.net/alvas.filecontrols.aspx</link><description>
New version &lt;STRONG&gt;Alvas.FileControls:&lt;/STRONG&gt; has been 
published. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;New components&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;DiskInfo - Shows information about the disk.
&lt;LI&gt;DragFile - allows specified control drag'n'drop files from Windows Explorer.
&lt;LI&gt;FileFind - allows finding files entire disk.
&lt;LI&gt;PathInfo - Shows information about the path.
&lt;/UL&gt;
</description><pubDate>Wed, 2 Jun 2004 23:00:00 GMT</pubDate></item><item><title>2004-05-17 - Alvas.Suite</title><link>http://www.alvas.net/alvas.suite.aspx</link><description>
Now Alvas.Suite - components set, which includes: 
&lt;UL&gt;
&lt;LI&gt;Alvas.FileControls 
&lt;LI&gt;Alvas.ShapeForms 
&lt;LI&gt;Alvas.Controls 
&lt;LI&gt;Alvas.Scriptor 
&lt;LI&gt;Alvas.Labels 
&lt;LI&gt;and Alvas.Audio 
&lt;/UL&gt;
</description><pubDate>Sun, 16 May 2004 23:00:00 GMT</pubDate></item><item><title>2004-04-04 - Alvas.Audio</title><link>http://www.alvas.net/alvas.audio.aspx</link><description>
Alvas.Net is happy to announce a new product for .Net:&lt;BR&gt;
&lt;strong&gt;Alvas.Audio&lt;/strong&gt; - components collection that allows Your applications 
to play and record sound. 
</description><pubDate>Sat, 3 Apr 2004 23:00:00 GMT</pubDate></item><item><title>2003-12-01 - Alvas.Suite</title><link>http://www.alvas.net/alvas.suite.aspx</link><description>
Alvas.Net is glad to introduce Alvas.Suite
- components set, which includes: 
&lt;UL&gt;
&lt;LI&gt;Alvas.FileControls 
&lt;LI&gt;Alvas.ShapeForms 
&lt;LI&gt;Alvas.Controls 
&lt;LI&gt;Alvas.Scriptor 
&lt;LI&gt;Alvas.Labels 
&lt;/UL&gt;
</description><pubDate>Mon, 1 Dec 2003 00:00:00 GMT</pubDate></item><item><title>2003-11-24 - Alvas.Scriptor</title><link>http://www.alvas.net/alvas.scriptor.aspx</link><description>
Alvas.Net is glad to introduce Alvas.Scriptor
- components set, which adds scripting possibility to Your applications. It 
allows creating adaptable applications with easy changeable logic and 
interface.&lt;BR&gt;Components can be used in Windows.Forms, ASP.NET and 
Webservices.&lt;BR&gt;Scripts can be written in all main .Net programming languages: 
c#, VB.Net, JScipt.Net, J#. Scripts code can be divided to some modules. Scripts 
code can be storaged in memory, files, database etc.&lt;BR&gt;You can define Your own 
classes, create objects and assign event handlers.
</description><pubDate>Mon, 24 Nov 2003 00:00:00 GMT</pubDate></item><item><title>2003-11-18 - Alvas.FileControls</title><link>http://www.alvas.net/alvas.filecontrols.aspx</link><description>
New version &lt;STRONG&gt;Alvas.FileControls:&lt;/STRONG&gt; has been 
published. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;New features and improvements&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;ExplorerListView.FileExecuted event to allow execute files or not by double 
click. 
&lt;LI&gt;ExplorerListView.Mask property for limits which files are displayed in the 
file list view. 
&lt;LI&gt;FilterComboBox.ExplorerList property to links the filter combo box to an 
explorer list view control. 
&lt;/UL&gt;
</description><pubDate>Tue, 18 Nov 2003 00:00:00 GMT</pubDate></item><item><title>2003-11-17 - Alvas.ShapeForms</title><link>http://www.alvas.net/alvas.shapeforms.aspx</link><description>
New version Alvas.ShapeForms has been published. Some 
bug-fixes and improvements.
</description><pubDate>Mon, 17 Nov 2003 00:00:00 GMT</pubDate></item><item><title>2003-05-19 - Alvas.Controls</title><link>http://www.alvas.net/alvas.controls.aspx</link><description>
Alvas.Net is happy to announce a new product for 
.Net:&lt;BR&gt;&lt;strong&gt;Alvas.Controls&lt;/strong&gt; - collection that allows developers to create 
high quality professional applications with cool design.
</description><pubDate>Sun, 18 May 2003 23:00:00 GMT</pubDate></item></channel></rss>