The NAudioDemo code shows how to select a specific DirectSoundOut device. You'd need to enumerate the output devices into a list, and then you can index that by output device number.
↧
New Post: How can I select the output device with NAudio
↧
New Post: Question about wav files
The MixingSampleProvider is my recommended way of doing mixing. In the WPF demo app, there is an example of a drum machine showing how you might go about mixing together multiple simultaneous sounds.
↧
↧
New Post: MixingSampleProvider to Mix and Output Two Buffers
There are various SampleToWaveProvider classes in NAudio to allow you to pass your sample provider into DirectSoundOut. In the next version of NAudio, I intend for all WaveOut devices to accept a SampleProvider directly to make this a bit less confusiing
↧
New Post: Visual Studio 2010 crashes loading project using Naudio.dll - heap corruption
I wrote a simple project in C# using Naudio.dll. It seems to work fine, but Visual Studio crashes very often when loading the project. Event viewer says
Application: VCSExpress.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund eines internen Fehlers in der .NET-Laufzeit beendet. bei IP 7922380C (79140000) mit Exitcode 80131506.
(Process has been terminated due to internal error in .NET runtime at IP 7922380C). Exitcode was 80131506.
Target Runtime is 4.0. I'm using NAudio v1.6
Re-opening the project and opening all source files manually solves the problem.
The exit code tells that there seems to be a sort of heap corruption. What can I do to solve this issue?
Greetz
kmt
Application: VCSExpress.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund eines internen Fehlers in der .NET-Laufzeit beendet. bei IP 7922380C (79140000) mit Exitcode 80131506.
(Process has been terminated due to internal error in .NET runtime at IP 7922380C). Exitcode was 80131506.
Target Runtime is 4.0. I'm using NAudio v1.6
Re-opening the project and opening all source files manually solves the problem.
The exit code tells that there seems to be a sort of heap corruption. What can I do to solve this issue?
Greetz
kmt
↧
New Post: Visual Studio 2010 crashes loading project using Naudio.dll - heap corruption
I have no idea what might be causing Visual Studio to crash when you load a project. Why do you think that NAudio is the cause of the problem?
↧
↧
New Post: MixingSampleProvider to Mix and Output Two Buffers
Ok that being stated, I'm trying to get a proof of concept before I expend much more time on development. Trying to write to Left and Right channels of DirectSoundOut stream, however, only one frequency (that of double sine) comes out both channels. Any way I can write two separate sinewaves to buffer?
public override int Read(byte[] buffer, int offset, int count)
{
int samples = count / 2;
int samplesPerWave = (int)(44100 / this.frequency * 2);
int counter = 0;
if (toneOutput == 0)//for sine wave tone generation
{
for (int i = 0; i < samples; i+=2)
{
//sine wave
double sine = amplitude * Math.Sin(Math.PI * 2 * frequency * time);
double sine2 = amplitude * Math.Sin(Math.PI * 2 * (frequency*2) * time);
time += 1.0 / 44100;
short truncated = (short)Math.Round(sine * (Math.Pow(2, 15) - 1));
short truncated2 = (short)Math.Round(sine2 * (Math.Pow(2, 15) - 1));
buffer[i * 2] = (byte)(truncated & 0x00ff);
buffer[i * 2 + 1] = (byte)((truncated & 0xff00) >> 8);
buffer[(i+1) * 2] = (byte)(truncated2 & 0x00ff);
buffer[(i+1) * 2 + 1] = (byte)((truncated2 & 0xff00) >> 8);
↧
New Post: Visual Studio 2010 crashes loading project using Naudio.dll - heap corruption
Well, loading the NAudio.dll is the only (call it) "unusual thing" the project does at startup. And - especially thought on heap corruption in
connection with managed and unmanaged code - the rest of the project is plain standard C# without any specialities. I have in mind
that heap corruption might occur in connection with managed and unmanaged code?!?
BTW, interesting point: when You reload the project, VS excludes several files from loading and only loads them if you need them. When You reload
the project, it crashes when You try to open Form1.cs as first file. But when You've opened other files before (i.e. Program.cs or Form1.resx), it
won't crash... funny behaviour... Perhaps Naudio.dll needs some time to load?!?
I will give it a cross-check and delete the reference to NAudio.dll and see if VS is still crashing when loading the project.
I can do this tomorrow when I'm back in the office. So I'll try and post the results here.
Regards
kmt
connection with managed and unmanaged code - the rest of the project is plain standard C# without any specialities. I have in mind
that heap corruption might occur in connection with managed and unmanaged code?!?
BTW, interesting point: when You reload the project, VS excludes several files from loading and only loads them if you need them. When You reload
the project, it crashes when You try to open Form1.cs as first file. But when You've opened other files before (i.e. Program.cs or Form1.resx), it
won't crash... funny behaviour... Perhaps Naudio.dll needs some time to load?!?
I will give it a cross-check and delete the reference to NAudio.dll and see if VS is still crashing when loading the project.
I can do this tomorrow when I'm back in the office. So I'll try and post the results here.
Regards
kmt
↧
New Post: MixingSampleProvider to Mix and Output Two Buffers
Pretty sure I found my answer in the WaveStream class. Simply override
public override WaveFormat WaveFormat
public override WaveFormat WaveFormat
{
get { return new WaveFormat(44100, 16, __2__); }
}
setting channels arg to 2↧
New Post: how to extract frequency from audio samples?
hello
I use this code to extract audio samples from mic... I want the frequency of each sample ... Must I use FFT or something like it , Or just there is simple way from Naudio to do it?
I use this code to extract audio samples from mic... I want the frequency of each sample ... Must I use FFT or something like it , Or just there is simple way from Naudio to do it?
private void Window_Loaded(object sender, RoutedEventArgs e)
{
int waveInDevices = WaveIn.DeviceCount;
for (int waveInDevice = 0; waveInDevice < waveInDevices; waveInDevice++)
{
WaveInCapabilities deviceInfo = WaveIn.GetCapabilities(waveInDevice);
this.Title+=string.Format("Device {0}: {1}, {2} channels",
waveInDevice, deviceInfo.ProductName, deviceInfo.Channels);
}
WaveIn waveIn = new WaveIn();
waveIn.DeviceNumber = 0;
waveIn.DataAvailable += waveIn_DataAvailable;
int sampleRate = 8000; // 8 kHz
int channels = 1; // mono
waveIn.WaveFormat = new WaveFormat(sampleRate, channels);
waveIn.StartRecording();
}
void waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
for (int index = 0; index < e.BytesRecorded; index += 2)
{
short sample = (short)((e.Buffer[index + 1] << 8) |
e.Buffer[index + 0]);
float sample32 = sample / 32768f;
ProcessSample(sample32);
}
}
void ProcessSample(float x)
{
label1.Content = x.ToString() + " ";
progressBar1.Value = (x + 1) * 50;
}
thank you :)↧
↧
New Post: Visual Studio 2010 crashes loading project using Naudio.dll - heap corruption
VS shouldn't run any NAudio code on project load, except possibly if the Designer has some NAudio components on it. Is this the case?
↧
New Post: how to extract frequency from audio samples?
Yes, FFT is a very good way of getting frequency information. There are other approaches, particularly if your incoming signal has a single tone (e.g. you are making a guitar tuner). Look at the demo code that comes with NAudio to see FFT in action to draw a spectrum analyzer with NAudio.
Mark
Mark
↧
New Post: how to extract frequency from audio samples?
I thank you very much..that was helpfull
↧
New Post: Detecting Audio Level of a Stream, but not from device
Ok, I see what you're talking about. The demo does have both examples. However, I have been testing with code form the demo and cannot seem to get both examples combined. I need to stream a mp3, monitor volume level, and be able to adjust the volume too.
I found this snipit and it seems to work. But I can't integrate it into my test class. I'm confused as to how to use the SampleProviders.
......................................................................................................
var player = new NAudio.Wave.WaveOut();
var file = new NAudio.Wave.AudioFileReader(@"D:\Media\World's Largest Flash Mob - Audio.mp3");
var meter = new NAudio.Wave.SampleProviders.MeteringSampleProvider(file);
meter.StreamVolume += (s, e) => Console.WriteLine("{0} - {1}", e.MaxSampleValues[0], e.MaxSampleValues[1]);
player.Init(new NAudio.Wave.SampleProviders.SampleToWaveProvider(meter));
var form = new Form();
form.Load += (s, e) => player.Play();
form.FormClosed += (s, e) => player.Dispose();
form.ShowDialog();
......................................................................................................
Also, here is my test class that I'm working on for proof of concept. I would like to be able to create the class, adjust volume, and monitor the output/sample levels. Here is how I'm calling the class to test it.
......................................................................................................
using (TestStream _Stream = new TestStream(@"http://radio.reaper.fm/stream/"))
{
......................................................................................................
Here is my test class with the basics
......................................................................................................
public class TestStream : IDisposable
{
......................................................................................................
If you or anyone reading this thread has any input or help, I would be appreciate it. If there is a better way to achieve my three goals, I would love some feedback.
Thanks in Advance
I found this snipit and it seems to work. But I can't integrate it into my test class. I'm confused as to how to use the SampleProviders.
......................................................................................................
var player = new NAudio.Wave.WaveOut();
var file = new NAudio.Wave.AudioFileReader(@"D:\Media\World's Largest Flash Mob - Audio.mp3");
var meter = new NAudio.Wave.SampleProviders.MeteringSampleProvider(file);
meter.StreamVolume += (s, e) => Console.WriteLine("{0} - {1}", e.MaxSampleValues[0], e.MaxSampleValues[1]);
player.Init(new NAudio.Wave.SampleProviders.SampleToWaveProvider(meter));
var form = new Form();
form.Load += (s, e) => player.Play();
form.FormClosed += (s, e) => player.Dispose();
form.ShowDialog();
......................................................................................................
Also, here is my test class that I'm working on for proof of concept. I would like to be able to create the class, adjust volume, and monitor the output/sample levels. Here is how I'm calling the class to test it.
......................................................................................................
using (TestStream _Stream = new TestStream(@"http://radio.reaper.fm/stream/"))
{
_Stream.Play();
System.Threading.Thread.Sleep(2000);
_Stream.SetVolume(0.5f); // Decrease Volume
System.Threading.Thread.Sleep(2000);
_Stream.SetVolume(1.5f); // Over Increase Volume
System.Threading.Thread.Sleep(2000);
_Stream.SetVolume(1); // Set Back To Normal
System.Threading.Thread.Sleep(30000);
_Stream.Stop();
System.Threading.Thread.Sleep(1000);
}......................................................................................................
Here is my test class with the basics
......................................................................................................
public class TestStream : IDisposable
{
private System.Threading.Thread _StreamThread;
private System.IO.Stream _Stream = new System.IO.MemoryStream();
private NAudio.Wave.WaveStream _WaveStream;
private NAudio.Wave.WaveOut _WaveOut;
private const long _ChunkSize = 16384; // Testing (64k=65536, 32k=32768 16k=16384)
public void Dispose()
{
if (_WaveOut.PlaybackState != NAudio.Wave.PlaybackState.Stopped)
{
this.Stop();
}
_WaveStream.Close();
_WaveStream.Dispose();
_WaveOut.Dispose();
_Stream.Close();
_Stream.Dispose();
_StreamThread.Abort();
_StreamThread.Join();
System.Diagnostics.Debug.WriteLine("=> Disposed");
}
public TestStream(string UriString)
{
_StreamThread = new System.Threading.Thread(delegate(object o)
{
System.Net.WebResponse response = System.Net.WebRequest.Create(UriString).GetResponse();
using (var stream = response.GetResponseStream())
{
byte[] buffer = new byte[_ChunkSize];
int read;
while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
{
var pos = _Stream.Position;
_Stream.Position = _Stream.Length;
_Stream.Write(buffer, 0, read);
_Stream.Position = pos;
}
}
});
_StreamThread.Start();
System.Diagnostics.Debug.WriteLine("=> Initialized");
}
public void Play()
{
if (_Stream.Length < _ChunkSize * 5) // What increment should this be?
{
System.Diagnostics.Debug.WriteLine("=> Buffering");
while (_Stream.Length < _ChunkSize * 5)
{ // Pre-buffering some data to allow NAudio to start playing
System.Threading.Thread.Sleep(1000);
}
}
_Stream.Position = 0;
_WaveStream = new NAudio.Wave.BlockAlignReductionStream(NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(_Stream)));
_WaveOut = new NAudio.Wave.WaveOut(NAudio.Wave.WaveCallbackInfo.FunctionCallback());
_WaveOut.Init(_WaveStream);
_WaveOut.Play();
System.Diagnostics.Debug.WriteLine("=> Playing");
}
public void Stop()
{
_WaveOut.Stop();
System.Diagnostics.Debug.WriteLine("=> Stopped");
}
public void SetVolume(float Volume)
{
// Adjust Volume for this stream
}
private void WriteVolumeMeterValues(object sender, NAudio.Wave.SampleProviders.StreamVolumeEventArgs e)
{
System.Diagnostics.Debug.WriteLine(String.Format("VolumeMeter: {0} <==> {1}", e.MaxSampleValues[0], e.MaxSampleValues[1]));
}
}......................................................................................................
If you or anyone reading this thread has any input or help, I would be appreciate it. If there is a better way to achieve my three goals, I would love some feedback.
Thanks in Advance
↧
↧
New Post: Data format when capturing in IEEE float WaveFormat
hi,
I am capturing soung from the microphone and willing to have it sampled as IEEE float
I think the right way to do it is, isn't it ?
I am capturing soung from the microphone and willing to have it sampled as IEEE float
I think the right way to do it is, isn't it ?
waveIn = new WaveIn();
waveIn.DataAvailable += waveIn_DataAvailable;
int sampleRate = 44100; // 44,1 kHz
int channels = 2; // stereo
waveIn.WaveFormat = WaveFormat.CreateIeeeFloatWaveFormat(sampleRate, channels);
What makes me confused is that I was expecting to receive a float array in the callback void waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
audioBuffer = e.Buffer;
}
And I get a cast exception. It seems that e.Buffer is a Byte array... So how to move from this byte array to a float array ?↧
New Post: Data format when capturing in IEEE float WaveFormat
yes, this is a frustrating thing about designing APIs in C# as you can't just cast a byte array to a float array.
You can either loop through using BitConverter.ToSingle on every four bytes, or you can use Buffer.BlockCopy to copy the entire e.Buffer into a float array. Finally if you are comfortable with unsafe code you can use pointers and loop through in C/C++ style.
You can either loop through using BitConverter.ToSingle on every four bytes, or you can use Buffer.BlockCopy to copy the entire e.Buffer into a float array. Finally if you are comfortable with unsafe code you can use pointers and loop through in C/C++ style.
↧
New Post: Visual Studio 2010 crashes loading project using Naudio.dll - heap corruption
Hi! Sorry, took me a couple of days to test it. Mark, I guess You're right. I re-coded the whole project in VB2008 and it works like a charm. So I have to check
what's up with my VS C# installation.
Another strange thing I was wondering about is:
If i import two consecutive RAW files in Audacity, I get a gap of one sample between the two files.
On the other hand, if I merge the two files together (by some external command), everything is fine. Perhaps a problem in audacity?!?
Regards
kmt
what's up with my VS C# installation.
Another strange thing I was wondering about is:
- i record audio stream from my sound card via ASIO
- ASIO buffer size is 512
- i use two alternating buffers (array of type Single) in the Software to cache the samples
-
every time a buffer is full i switch over to the other buffer and try to flush (async) the first buffer to disk (binarywriter with RAW data, no wave writer!)
If i import two consecutive RAW files in Audacity, I get a gap of one sample between the two files.
On the other hand, if I merge the two files together (by some external command), everything is fine. Perhaps a problem in audacity?!?
Regards
kmt
↧
New Post: InvalidOperationException on playing some MP3 files
Hi, I have this issue with a large number of my audio files (about 50% of them). How would I make my program check for this issue before I try to run the sound file?
↧
↧
New Post: InvalidOperationException on playing some MP3 files
Half your files? What are you making them with? Are you able to link to an example that doesn't play in NAudio? I have a collection of problem MP3 files, but most of them are now working
↧
New Post: Need help reviewing code for a stream player. Can't get a few features integrated.
Ok, this is a comment from a previous post of mine. I'm trying to create a simple class that does these three things, stream an mp3 stream, monitor volume level (detect silence), and have the ability to adjust the volume. I found that the demo does display how to does each of these tasks. It's just that they seem to be using different objects and that have nothing to do with each other. Like using the SampleProviders with streams. Here is a sample of how to output the volume levels, I just can't get it to work with what I have been testing with so far.
......................................................................................................
var player = new NAudio.Wave.WaveOut();
var file = new NAudio.Wave.AudioFileReader(@"D:\Media\World's Largest Flash Mob - Audio.mp3");
var meter = new NAudio.Wave.SampleProviders.MeteringSampleProvider(file);
meter.StreamVolume += (s, e) => Console.WriteLine("{0} - {1}", e.MaxSampleValues[0], e.MaxSampleValues[1]);
player.Init(new NAudio.Wave.SampleProviders.SampleToWaveProvider(meter));
var form = new Form();
form.Load += (s, e) => player.Play();
form.FormClosed += (s, e) => player.Dispose();
form.ShowDialog();
......................................................................................................
Here is what I'm working with for my proof of concept. I would like to be able to create the class, start the stream, adjust volume (if need), and monitor the output/sample levels (detect silence).
......................................................................................................
using (TestStream _Stream = new TestStream(@"http://radio.reaper.fm/stream/")) { _Stream.Play(); System.Threading.Thread.Sleep(2000); _Stream.SetVolume(0.5f); // Decrease Volume
System.Threading.Thread.Sleep(2000);
_Stream.SetVolume(1.5f); // Over Increase Volume
System.Threading.Thread.Sleep(2000);
_Stream.SetVolume(1); // Set Back To Normal
System.Threading.Thread.Sleep(30000);
_Stream.Stop();
System.Threading.Thread.Sleep(1000);
}
......................................................................................................
Here is my test class with the basics
......................................................................................................
public class TestStream : IDisposable
{
private System.Threading.Thread _StreamThread;
private System.IO.Stream _Stream = new System.IO.MemoryStream();
private NAudio.Wave.WaveStream _WaveStream;
private NAudio.Wave.WaveOut _WaveOut;
private const long _ChunkSize = 16384; // Testing (64k=65536, 32k=32768 16k=16384)
public void Dispose()
{
public TestStream(string UriString)
{
public void Play()
{
public void Stop()
{
public void SetVolume(float Volume)
{
private void WriteVolumeMeterValues(object sender, NAudio.Wave.SampleProviders.StreamVolumeEventArgs e)
{
}
......................................................................................................
If anyone reading this thread has any input or help, I would be appreciate it. If there is a better way to achieve my goals, I would love some feedback or suggestions.
Thanks in Advance
......................................................................................................
var player = new NAudio.Wave.WaveOut();
var file = new NAudio.Wave.AudioFileReader(@"D:\Media\World's Largest Flash Mob - Audio.mp3");
var meter = new NAudio.Wave.SampleProviders.MeteringSampleProvider(file);
meter.StreamVolume += (s, e) => Console.WriteLine("{0} - {1}", e.MaxSampleValues[0], e.MaxSampleValues[1]);
player.Init(new NAudio.Wave.SampleProviders.SampleToWaveProvider(meter));
var form = new Form();
form.Load += (s, e) => player.Play();
form.FormClosed += (s, e) => player.Dispose();
form.ShowDialog();
......................................................................................................
Here is what I'm working with for my proof of concept. I would like to be able to create the class, start the stream, adjust volume (if need), and monitor the output/sample levels (detect silence).
......................................................................................................
using (TestStream _Stream = new TestStream(@"http://radio.reaper.fm/stream/")) { _Stream.Play(); System.Threading.Thread.Sleep(2000); _Stream.SetVolume(0.5f); // Decrease Volume
System.Threading.Thread.Sleep(2000);
_Stream.SetVolume(1.5f); // Over Increase Volume
System.Threading.Thread.Sleep(2000);
_Stream.SetVolume(1); // Set Back To Normal
System.Threading.Thread.Sleep(30000);
_Stream.Stop();
System.Threading.Thread.Sleep(1000);
}
......................................................................................................
Here is my test class with the basics
......................................................................................................
public class TestStream : IDisposable
{
private System.Threading.Thread _StreamThread;
private System.IO.Stream _Stream = new System.IO.MemoryStream();
private NAudio.Wave.WaveStream _WaveStream;
private NAudio.Wave.WaveOut _WaveOut;
private const long _ChunkSize = 16384; // Testing (64k=65536, 32k=32768 16k=16384)
public void Dispose()
{
if (_WaveOut.PlaybackState != NAudio.Wave.PlaybackState.Stopped)
{
this.Stop();
}
_WaveStream.Close();
_WaveStream.Dispose();
_WaveOut.Dispose();
_Stream.Close();
_Stream.Dispose();
_StreamThread.Abort();
_StreamThread.Join();
System.Diagnostics.Debug.WriteLine("=> Disposed");
}public TestStream(string UriString)
{
_StreamThread = new System.Threading.Thread(delegate(object o)
{
System.Net.WebResponse response = System.Net.WebRequest.Create(UriString).GetResponse();
using (var stream = response.GetResponseStream())
{
byte[] buffer = new byte[_ChunkSize];
int read;
while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
{
var pos = _Stream.Position;
_Stream.Position = _Stream.Length;
_Stream.Write(buffer, 0, read);
_Stream.Position = pos;
}
}
});
_StreamThread.Start();
System.Diagnostics.Debug.WriteLine("=> Initialized");
}public void Play()
{
if (_Stream.Length < _ChunkSize * 5) // What increment should this be?
{
System.Diagnostics.Debug.WriteLine("=> Buffering");
while (_Stream.Length < _ChunkSize * 5)
{ // Pre-buffering some data to allow NAudio to start playing
System.Threading.Thread.Sleep(1000);
}
}
_Stream.Position = 0;
_WaveStream = new NAudio.Wave.BlockAlignReductionStream(NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(new NAudio.Wave.Mp3FileReader(_Stream)));
_WaveOut = new NAudio.Wave.WaveOut(NAudio.Wave.WaveCallbackInfo.FunctionCallback());
_WaveOut.Init(_WaveStream);
_WaveOut.Play();
System.Diagnostics.Debug.WriteLine("=> Playing");
}public void Stop()
{
_WaveOut.Stop();
System.Diagnostics.Debug.WriteLine("=> Stopped");
}public void SetVolume(float Volume)
{
// Adjust Volume for this stream
}private void WriteVolumeMeterValues(object sender, NAudio.Wave.SampleProviders.StreamVolumeEventArgs e)
{
System.Diagnostics.Debug.WriteLine(String.Format("VolumeMeter: {0} <==> {1}", e.MaxSampleValues[0], e.MaxSampleValues[1]));
}}
......................................................................................................
If anyone reading this thread has any input or help, I would be appreciate it. If there is a better way to achieve my goals, I would love some feedback or suggestions.
Thanks in Advance
↧
New Post: Concatenate mp3 files
Hi, I just need to be able to concatenate several mp3 files into one. I used NAudio (64 bit version) in my local machine and works great. However on our Windows 2008 Server 64 Bits, I get error:
NAudio.MmException: NoDriver calling acmFormatSuggest at NAudio.MmException.Try(MmResult result, String function) in F:\MT2LMiddleTier\Mp3Merge\Mp3MergeSolution\NAudio\n
audio_88aa8c87b30f\NAudio\Wave\MmeInterop\MmException.cs:line 39 at NAudio.Wave.Compression.AcmStream.SuggestPcmFormat(WaveFormat compressedFormat) in F:\MT2LMiddleTier\Mp3Merge\Mp3Me
rgeSolution\NAudio\naudio_88aa8c87b30f\NAudio\Wave\Compression\AcmStream.cs:line 104
Given that I only need to concatenate the sound files, is there a small modification to the NAudio code that will let it run on Windows Server?
or, has someone tweaked Windows Server 2008 to be able to use NAudio? I have complete control of my server, so I can modify the registry or whatever.
Thanks!!
NAudio.MmException: NoDriver calling acmFormatSuggest at NAudio.MmException.Try(MmResult result, String function) in F:\MT2LMiddleTier\Mp3Merge\Mp3MergeSolution\NAudio\n
audio_88aa8c87b30f\NAudio\Wave\MmeInterop\MmException.cs:line 39 at NAudio.Wave.Compression.AcmStream.SuggestPcmFormat(WaveFormat compressedFormat) in F:\MT2LMiddleTier\Mp3Merge\Mp3Me
rgeSolution\NAudio\naudio_88aa8c87b30f\NAudio\Wave\Compression\AcmStream.cs:line 104
Given that I only need to concatenate the sound files, is there a small modification to the NAudio code that will let it run on Windows Server?
or, has someone tweaked Windows Server 2008 to be able to use NAudio? I have complete control of my server, so I can modify the registry or whatever.
Thanks!!
↧