Quantcast
Channel: NAudio
Viewing all 5831 articles
Browse latest View live

New Post: Microphone boost and volume with NAudio

$
0
0

yes, that's right. You could use a Pcm16BitToSampleProvider to get to IEEE float, then use a VolumeSampleProvider to modify the volume, before finally using a SampleToWaveprovider16 to clip and go back to 16 bit

Mark


New Post: WaveOut FFT spectrum

$
0
0

Ok, so if I try to compile with .NET Framework 3.5 I get various errors listed:

Fehler  1   "System.Windows.Controls.Canvas" enthält keine Definition für "CacheMode", und es konnte keine Erweiterungsmethode "CacheMode" gefunden werden, die ein erstes Argument vom Typ "System.Windows.Controls.Canvas" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) C:\Users\Freefall\Desktop\WFPSVL\WPFSVL\Source\WPFSoundVisualizationLibrary\WaveForm Timeline\WaveformTimeline.cs   714 28  WPFSoundVisualizationLib
Fehler  2   Der Typ- oder Namespacename "BitmapCache" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)  C:\Users\Freefall\Desktop\WFPSVL\WPFSVL\Source\WPFSoundVisualizationLibrary\WaveForm Timeline\WaveformTimeline.cs   714 44  WPFSoundVisualizationLib
Fehler  3   Der Typ- oder Namespacename "BitmapCache" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)  C:\Users\Freefall\Desktop\WFPSVL\WPFSVL\Source\WPFSoundVisualizationLibrary\WaveForm Timeline\WaveformTimeline.cs   920 13  WPFSoundVisualizationLib
Fehler  4   Der Typ- oder Namespacename "BitmapCache" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)  C:\Users\Freefall\Desktop\WFPSVL\WPFSVL\Source\WPFSoundVisualizationLibrary\WaveForm Timeline\WaveformTimeline.cs   920 42  WPFSoundVisualizationLib
Fehler  5   "System.Windows.Controls.Canvas" enthält keine Definition für "CacheMode", und es konnte keine Erweiterungsmethode "CacheMode" gefunden werden, die ein erstes Argument vom Typ "System.Windows.Controls.Canvas" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?) C:\Users\Freefall\Desktop\WFPSVL\WPFSVL\Source\WPFSoundVisualizationLibrary\WaveForm Timeline\WaveformTimeline.cs   920 69  WPFSoundVisualizationLib

It seems that "CacheMode" is not a member of "System.Windows.Controls.Canvas". I don´t need to reference that taglib-sharp.dll, right? Any suggestions?

New Post: WaveOut FFT spectrum

$
0
0

it's a new property in .NET 4 to help optimise drawing. Just delete any lines of code that set it.

New Post: WaveOut FFT spectrum

$
0
0

Ok good. All errors resolved an I compiled with .Net Framework 3.5. SO far so good. But the example project still shows "some" error messages:

Fehler  1   Der Name "InitializeComponent" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   19  13  Sample_NAudio
Fehler  2   Der Name "StopButton" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   24  51  Sample_NAudio
Fehler  3   Der Name "PlayButton" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   25  51  Sample_NAudio
Fehler  4   Der Name "PauseButton" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   26  52  Sample_NAudio
Fehler  5   Der Name "repeatStartTimeEdit" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   27  58  Sample_NAudio
Fehler  6   Der Name "repeatStopTimeEdit" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   28  56  Sample_NAudio
Fehler  7   Der Name "spectrumAnalyzer" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   30  13  Sample_NAudio
Fehler  8   Der Name "waveformTimeline" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   31  13  Sample_NAudio
Fehler  9   Der Name "albumArtPanel" ist im aktuellen Kontext nicht vorhanden.  C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   57  37  Sample_NAudio
Fehler  10  Der Name "albumArtPanel" ist im aktuellen Kontext nicht vorhanden.  C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   61  37  Sample_NAudio
Fehler  11  Der Name "albumArtPanel" ist im aktuellen Kontext nicht vorhanden.  C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   70  29  Sample_NAudio
Fehler  12  Der Name "albumArtPanel" ist im aktuellen Kontext nicht vorhanden.  C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   75  25  Sample_NAudio
Fehler  13  Der Name "clockDisplay" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   79  21  Sample_NAudio
Fehler  14  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   114 13  Sample_NAudio
Fehler  15  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   115 13  Sample_NAudio
Fehler  16  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   116 13  Sample_NAudio
Fehler  17  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   117 13  Sample_NAudio
Fehler  18  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   118 13  Sample_NAudio
Fehler  19  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   119 13  Sample_NAudio
Fehler  20  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   126 13  Sample_NAudio
Fehler  21  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   127 13  Sample_NAudio
Fehler  22  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   128 13  Sample_NAudio
Fehler  23  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   129 13  Sample_NAudio
Fehler  24  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   130 13  Sample_NAudio
Fehler  25  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   131 13  Sample_NAudio
Fehler  26  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   140 13  Sample_NAudio
Fehler  27  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   141 13  Sample_NAudio
Fehler  28  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   142 13  Sample_NAudio
Fehler  29  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   143 13  Sample_NAudio
Fehler  30  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   144 13  Sample_NAudio
Fehler  31  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   145 13  Sample_NAudio
Fehler  32  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   154 13  Sample_NAudio
Fehler  33  Der Name "DefaultThemeMenuItem" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   155 13  Sample_NAudio
Fehler  34  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   156 13  Sample_NAudio
Fehler  35  Der Name "ExpressionDarkMenuItem" ist im aktuellen Kontext nicht vorhanden. C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   157 13  Sample_NAudio
Fehler  36  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   158 13  Sample_NAudio
Fehler  37  Der Name "ExpressionLightMenuItem" ist im aktuellen Kontext nicht vorhanden.    C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   159 13  Sample_NAudio
Fehler  38  Der Name "FileText" ist im aktuellen Kontext nicht vorhanden.   C:\Users\Freefall\Desktop\Source\Sample_NAudio\MainWindow.xaml.cs   188 17  Sample_NAudio

And I recognized that there are no userforms and toolbox elements existing in the example. I think the example was not completely provided ....

New Post: WaveOut FFT spectrum

$
0
0

Or are the xaml files the winforms? I´m confused :S I´m a VB programmer...

New Post: WaveIn.Device not giving proper result if audio service is stopped

$
0
0

Thanks for your valuable reply,

Yes sir,
i checked code and i found that WaveIn internally using waveInGetNumDevs function to retrieve audio device count.

but sir do we have any other way to get proper count and device list even if audio service stopped or running ?

Thanks.

New Post: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

$
0
0

generally Why system throws access violation error ?

New Post: Obtaining Audio Device GUIDs

$
0
0

Hi All,
I'm trying to get the GUID for the system audio devices. The best NAudio API I could find is...


MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
MMDeviceCollection devEnum = DevEnum.EnumerateAudioEndPoints(DataFlow.All, DeviceState.Active);
 
 foreach (var item in devEnum)
 {
      string devId = item.ID;
 } 

So devId is in this format
{0.0.1.00000000}.{6864ba9c-b9a7-45cd-80d8-ee334575590c}
ie. Two bracketed strings separated by a dot {4-tuple-number}.{GUID}

Questions,
1) Can I depend on the format always being returned in this format so I can reliably parse it? On all OS versions (XP/vista/7/8)?
2) What is the meaning for the 4 digits in the 4-tuple number?


Note: I am a newbie to NAudio. Hats off to the developers!! You guys are Awesome!!
Is there an API guide for NAudio?


New Post: Obtaining Audio Device GUIDs

$
0
0

hi, this part of NAudio is really a fairly thin wrapper around the Windows Core Audio APIs, so the documentation you really want is MSDN. The ID property returns the value of the IMMDevice.GetId method which returns an Endpoint ID string.

New Post: Obtaining Audio Device GUIDs

$
0
0

Thanks Mark. I appreciate the reply.

I looked at those MSDN API pages (pretty gorpy explanations) but thanks for the link.

What I need to do is to determine which audio devices are "Speakers". Because the MMDeviceCollection includes both speakers and microphones. The device FriendlyName prefixes with the word "Speakers" but I assume that is dependent on the uses language -- it might say "Altavoz" in Spain instead of "Speakers".

I wonder if the 4-Tuple indicate speakers? In my computer devices, speakers have this tuple {0.0.0.00000000} and Microphones and the Mixer have {0.0.1.00000000}

I couldn't find any description of that 4-Tuple in the MSDN documentation.

MMDeviceCollection for my computer

Name=Speakers (Realtek High Definition Audio) DevId={0.0.0.00000000}.{73d4795c-5a20-4a6d-80ef-6b86e31ea1f1}; 

Name=Speakers (2- C-Media USB Audio Device   ) DevId={0.0.0.00000000}.{e2e6b090-3cc4-49d2-a2fb-a5d345c68f1e}; 

Name=Microphone (2- C-Media USB Audio Device   ) DevId={0.0.1.00000000}.{0fcb87d4-1a64-4afa-ace9-9444e61b3baf}; 

Name=Microphone (Realtek High Definition Audio) DevId={0.0.1.00000000}.{43b789c5-e9e7-4912-8a23-79e28f66966e}; 

Name=Stereo Mix (Realtek High Definition Audio) DevId={0.0.1.00000000}.{6864ba9c-b9a7-45cd-80d8-ee334575590c}; 

New Post: Playback capture MMDevice to an specific render device

$
0
0

Hi

I tested the BufferedWaveProvider and worked like a charm, but I facing a strange issue: now I hear the stream in 2 different output devices (speakers and headphones (headphones is my default playback device).

Any recommendation to really switch the monitoring device rather than just duplicate it?

Regards

JLuis

New Post: Device Name Truncation with WaveOut.GetCapabilities

$
0
0

I'm having a bit of a problem distinguishing device names due to the string truncation. I need to support XP users so I'm limited to WaveOut.GetCapabilities.

This might be a possible fix to the problem for the NAudio source.

It appears that the device name length is determined in the WaveOutCapabilities.cs file.
located in the source at ...\NAudio\Wave\MmeInterop\WaveOutCapabilities.cs
line 48 private const int MaxProductNameLength = 32;

I wonder if changing that value (say triple it = 96) will eliminate most of the device name truncation issues?

Then testing this simple code to see if the returned device names are longer.

for (int deviceId = 0; deviceId < deviceCount; deviceId++)
            {
                var capabilities = WaveOut.GetCapabilities(deviceId);
                string name = capabilities.ProductName;
            }

Sorry that I can't test this myself or I would. The NAudio solution source code won't build for me with VS2010-- lots of missing namespaces.

New Post: Device Name Truncation with WaveOut.GetCapabilities

$
0
0

unfortunately, this is a limitation of the WaveOut APIs themselves. 32 is the value of MAXPNAMELEN as used by WAVEOUTCAPS. Changing this value in NAudio will not get you a longer product name. There is only one workaround I know of and it involves using DirectSound. I'd imagine there might be a way of searching in the registry too.

New Post: Device Name Truncation with WaveOut.GetCapabilities

$
0
0

Ok, Thanks Mark.
The Ghost of Bill Gates strikes again. Who knew a device name would ever exceed a massive 32 bytes of memory? ;-)

I'll make do with a 32 character name. I'm trying to get away from DirectSound.

New Post: Detect digital silence in a wave file

$
0
0

Hi,

my today's questions is how to detect digital silence (without noise, pure digital silence) in a (large) wave file and split it into pieces.

As an example (--- means digital silence):

Input wave: ----ABCDEFG------HIJKLMN----OPQR---
Output wave files:
1: ABCDEFG
2: HIJKLMN
3: OPQR

Thank you very much for your great work!


New Post: Mic input to effectStream Output

$
0
0

Thank you for answer. But I can't understand about to modify EffectStream to simply require an IWaveProvider. Please show me how to modify this. Thank you very much.

New Post: Can't make spectrum to work - VB 2010

$
0
0

I'm following the AudioPlaybackPanel.cs code and convert it to VB 2010 but just can't make the Spectrum to work. I mean, the PreVolumeMeter never fires

I can play, pause, stop, move the position with a slider, read the position.. just can't make the Spectrum to work

Ths is the code I use:

Dim waveOutDevice As IWavePlayer
Dim mp3Reader As Mp3FileReader
Dim inputStream As WaveChannel32
Dim WithEvents waveChannel As SampleChannel

Dim archivo As String

' ----------

waveOutDevice = New WaveOut()
mp3Reader = New Mp3FileReader(archivo)
inputStream = New WaveChannel32(mp3Reader)

waveChannel = New SampleChannel(mp3Reader, True)

waveOutDevice.Init(inputStream)
waveOutDevice.Play()

' the event

Private Sub waveChannel_PreVolumeMeter(ByVal sender As Object, ByVal e As NAudio.Wave.SampleProviders.StreamVolumeEventArgs) Handles waveChannel.PreVolumeMeter
        WaveformPainter1.AddMax(e.MaxSampleValues(0))
        WaveformPainter2.AddMax(e.MaxSampleValues(1))
End Sub

New Post: Why No MP3 License?

$
0
0

Windows comes with an MP3 decoder, which you are licensed to use already.

Mark

New Post: Triming A wav file

$
0
0

you can look at the WaveFileFormat's AverageBytesPerSecond value, and use that to calculate the offsets needed. That's what I do in the blog post. Your xPos1 does not take this into account at all.

Mark

New Post: Can't make spectrum to work - VB 2010

$
0
0

you are not using the SampleChannel at all. You are playing from the WaveChannel32. You need to pick one or the other.

Viewing all 5831 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>