C# Application: Sample Audio from Audio Output -> FFT Algorithm -> Visualize
I am a novice audio programmer and I use FFT for the first time. I want to sample audio from my audio output. After that I want to compute this data with a FFT algorithm. I am using Naudio.dll
.
Requirements for sampling:
- Sample from audio output
- The sample frequency must be adjustable on the GUI
- The buffer size must be adjustable on the GUI
- The amplitude values must be raw (no logarithmic filter/no sqrt() filter...)
How can I solve this problem? Which dll to use?
I tried to use NAudio's sample aggregator. But I don't know how.
Thanks in advance
public class SampleAggregator : ISampleProvider
{
public event EventHandler<MaxSampleEventArgs> MaximumCalculated;
private float maxValue;
private float minValue;
public int NotificationCount { get; set; }
int count;
public event EventHandler<FftEventArgs> FftCalculated;
public bool PerformFFT { get; set; }
private readonly Complex fftBuffer;
private readonly FftEventArgs fftArgs;
private int fftPos;
private readonly int fftLength;
private readonly int m;
private readonly ISampleProvider source;
private readonly int channels;
public SampleAggregator(ISampleProvider source, int fftLength = 1024)
{
channels = source.WaveFormat.Channels;
if (!IsPowerOfTwo(fftLength))
{
throw new ArgumentException("FFT Length must be a power of two");
}
m = (int)Math.Log(fftLength, 2.0);
this.fftLength = fftLength;
fftBuffer = new Complex[fftLength];
fftArgs = new FftEventArgs(fftBuffer);
this.source = source;
}
static bool IsPowerOfTwo(int x)
{
return (x & (x - 1)) == 0;
}
public void Reset()
{
count = 0;
maxValue = minValue = 0;
}
private void Add(float value)
{
if (PerformFFT && FftCalculated != null)
{
fftBuffer[fftPos].X = (float)(value * FastFourierTransform.HammingWindow(fftPos, fftLength));
fftBuffer[fftPos].Y = 0;
fftPos++;
if (fftPos >= fftBuffer.Length)
{
fftPos = 0;
// 1024 = 2^10
FastFourierTransform.FFT(true, m, fftBuffer);
FftCalculated(this, fftArgs);
}
}
maxValue = Math.Max(maxValue, value);
minValue = Math.Min(minValue, value);
count++;
if (count >= NotificationCount && NotificationCount > 0)
{
MaximumCalculated?.Invoke(this, new MaxSampleEventArgs(minValue, maxValue));
Reset();
}
}
public WaveFormat WaveFormat => source.WaveFormat;
public int Read(float buffer, int offset, int count)
{
var samplesRead = source.Read(buffer, offset, count);
for (int n = 0; n < samplesRead; n+=channels)
{
Add(buffer[n+offset]);
}
return samplesRead;
}
}
public class MaxSampleEventArgs : EventArgs
{
[DebuggerStepThrough]
public MaxSampleEventArgs(float minValue, float maxValue)
{
MaxSample = maxValue;
MinSample = minValue;
}
public float MaxSample { get; private set; }
public float MinSample { get; private set; }
}
public class FftEventArgs : EventArgs
{
[DebuggerStepThrough]
public FftEventArgs(Complex result)
{
Result = result;
}
public Complex Result { get; private set; }
}
c# forms audio naudio spectrum
add a comment |
I am a novice audio programmer and I use FFT for the first time. I want to sample audio from my audio output. After that I want to compute this data with a FFT algorithm. I am using Naudio.dll
.
Requirements for sampling:
- Sample from audio output
- The sample frequency must be adjustable on the GUI
- The buffer size must be adjustable on the GUI
- The amplitude values must be raw (no logarithmic filter/no sqrt() filter...)
How can I solve this problem? Which dll to use?
I tried to use NAudio's sample aggregator. But I don't know how.
Thanks in advance
public class SampleAggregator : ISampleProvider
{
public event EventHandler<MaxSampleEventArgs> MaximumCalculated;
private float maxValue;
private float minValue;
public int NotificationCount { get; set; }
int count;
public event EventHandler<FftEventArgs> FftCalculated;
public bool PerformFFT { get; set; }
private readonly Complex fftBuffer;
private readonly FftEventArgs fftArgs;
private int fftPos;
private readonly int fftLength;
private readonly int m;
private readonly ISampleProvider source;
private readonly int channels;
public SampleAggregator(ISampleProvider source, int fftLength = 1024)
{
channels = source.WaveFormat.Channels;
if (!IsPowerOfTwo(fftLength))
{
throw new ArgumentException("FFT Length must be a power of two");
}
m = (int)Math.Log(fftLength, 2.0);
this.fftLength = fftLength;
fftBuffer = new Complex[fftLength];
fftArgs = new FftEventArgs(fftBuffer);
this.source = source;
}
static bool IsPowerOfTwo(int x)
{
return (x & (x - 1)) == 0;
}
public void Reset()
{
count = 0;
maxValue = minValue = 0;
}
private void Add(float value)
{
if (PerformFFT && FftCalculated != null)
{
fftBuffer[fftPos].X = (float)(value * FastFourierTransform.HammingWindow(fftPos, fftLength));
fftBuffer[fftPos].Y = 0;
fftPos++;
if (fftPos >= fftBuffer.Length)
{
fftPos = 0;
// 1024 = 2^10
FastFourierTransform.FFT(true, m, fftBuffer);
FftCalculated(this, fftArgs);
}
}
maxValue = Math.Max(maxValue, value);
minValue = Math.Min(minValue, value);
count++;
if (count >= NotificationCount && NotificationCount > 0)
{
MaximumCalculated?.Invoke(this, new MaxSampleEventArgs(minValue, maxValue));
Reset();
}
}
public WaveFormat WaveFormat => source.WaveFormat;
public int Read(float buffer, int offset, int count)
{
var samplesRead = source.Read(buffer, offset, count);
for (int n = 0; n < samplesRead; n+=channels)
{
Add(buffer[n+offset]);
}
return samplesRead;
}
}
public class MaxSampleEventArgs : EventArgs
{
[DebuggerStepThrough]
public MaxSampleEventArgs(float minValue, float maxValue)
{
MaxSample = maxValue;
MinSample = minValue;
}
public float MaxSample { get; private set; }
public float MinSample { get; private set; }
}
public class FftEventArgs : EventArgs
{
[DebuggerStepThrough]
public FftEventArgs(Complex result)
{
Result = result;
}
public Complex Result { get; private set; }
}
c# forms audio naudio spectrum
add a comment |
I am a novice audio programmer and I use FFT for the first time. I want to sample audio from my audio output. After that I want to compute this data with a FFT algorithm. I am using Naudio.dll
.
Requirements for sampling:
- Sample from audio output
- The sample frequency must be adjustable on the GUI
- The buffer size must be adjustable on the GUI
- The amplitude values must be raw (no logarithmic filter/no sqrt() filter...)
How can I solve this problem? Which dll to use?
I tried to use NAudio's sample aggregator. But I don't know how.
Thanks in advance
public class SampleAggregator : ISampleProvider
{
public event EventHandler<MaxSampleEventArgs> MaximumCalculated;
private float maxValue;
private float minValue;
public int NotificationCount { get; set; }
int count;
public event EventHandler<FftEventArgs> FftCalculated;
public bool PerformFFT { get; set; }
private readonly Complex fftBuffer;
private readonly FftEventArgs fftArgs;
private int fftPos;
private readonly int fftLength;
private readonly int m;
private readonly ISampleProvider source;
private readonly int channels;
public SampleAggregator(ISampleProvider source, int fftLength = 1024)
{
channels = source.WaveFormat.Channels;
if (!IsPowerOfTwo(fftLength))
{
throw new ArgumentException("FFT Length must be a power of two");
}
m = (int)Math.Log(fftLength, 2.0);
this.fftLength = fftLength;
fftBuffer = new Complex[fftLength];
fftArgs = new FftEventArgs(fftBuffer);
this.source = source;
}
static bool IsPowerOfTwo(int x)
{
return (x & (x - 1)) == 0;
}
public void Reset()
{
count = 0;
maxValue = minValue = 0;
}
private void Add(float value)
{
if (PerformFFT && FftCalculated != null)
{
fftBuffer[fftPos].X = (float)(value * FastFourierTransform.HammingWindow(fftPos, fftLength));
fftBuffer[fftPos].Y = 0;
fftPos++;
if (fftPos >= fftBuffer.Length)
{
fftPos = 0;
// 1024 = 2^10
FastFourierTransform.FFT(true, m, fftBuffer);
FftCalculated(this, fftArgs);
}
}
maxValue = Math.Max(maxValue, value);
minValue = Math.Min(minValue, value);
count++;
if (count >= NotificationCount && NotificationCount > 0)
{
MaximumCalculated?.Invoke(this, new MaxSampleEventArgs(minValue, maxValue));
Reset();
}
}
public WaveFormat WaveFormat => source.WaveFormat;
public int Read(float buffer, int offset, int count)
{
var samplesRead = source.Read(buffer, offset, count);
for (int n = 0; n < samplesRead; n+=channels)
{
Add(buffer[n+offset]);
}
return samplesRead;
}
}
public class MaxSampleEventArgs : EventArgs
{
[DebuggerStepThrough]
public MaxSampleEventArgs(float minValue, float maxValue)
{
MaxSample = maxValue;
MinSample = minValue;
}
public float MaxSample { get; private set; }
public float MinSample { get; private set; }
}
public class FftEventArgs : EventArgs
{
[DebuggerStepThrough]
public FftEventArgs(Complex result)
{
Result = result;
}
public Complex Result { get; private set; }
}
c# forms audio naudio spectrum
I am a novice audio programmer and I use FFT for the first time. I want to sample audio from my audio output. After that I want to compute this data with a FFT algorithm. I am using Naudio.dll
.
Requirements for sampling:
- Sample from audio output
- The sample frequency must be adjustable on the GUI
- The buffer size must be adjustable on the GUI
- The amplitude values must be raw (no logarithmic filter/no sqrt() filter...)
How can I solve this problem? Which dll to use?
I tried to use NAudio's sample aggregator. But I don't know how.
Thanks in advance
public class SampleAggregator : ISampleProvider
{
public event EventHandler<MaxSampleEventArgs> MaximumCalculated;
private float maxValue;
private float minValue;
public int NotificationCount { get; set; }
int count;
public event EventHandler<FftEventArgs> FftCalculated;
public bool PerformFFT { get; set; }
private readonly Complex fftBuffer;
private readonly FftEventArgs fftArgs;
private int fftPos;
private readonly int fftLength;
private readonly int m;
private readonly ISampleProvider source;
private readonly int channels;
public SampleAggregator(ISampleProvider source, int fftLength = 1024)
{
channels = source.WaveFormat.Channels;
if (!IsPowerOfTwo(fftLength))
{
throw new ArgumentException("FFT Length must be a power of two");
}
m = (int)Math.Log(fftLength, 2.0);
this.fftLength = fftLength;
fftBuffer = new Complex[fftLength];
fftArgs = new FftEventArgs(fftBuffer);
this.source = source;
}
static bool IsPowerOfTwo(int x)
{
return (x & (x - 1)) == 0;
}
public void Reset()
{
count = 0;
maxValue = minValue = 0;
}
private void Add(float value)
{
if (PerformFFT && FftCalculated != null)
{
fftBuffer[fftPos].X = (float)(value * FastFourierTransform.HammingWindow(fftPos, fftLength));
fftBuffer[fftPos].Y = 0;
fftPos++;
if (fftPos >= fftBuffer.Length)
{
fftPos = 0;
// 1024 = 2^10
FastFourierTransform.FFT(true, m, fftBuffer);
FftCalculated(this, fftArgs);
}
}
maxValue = Math.Max(maxValue, value);
minValue = Math.Min(minValue, value);
count++;
if (count >= NotificationCount && NotificationCount > 0)
{
MaximumCalculated?.Invoke(this, new MaxSampleEventArgs(minValue, maxValue));
Reset();
}
}
public WaveFormat WaveFormat => source.WaveFormat;
public int Read(float buffer, int offset, int count)
{
var samplesRead = source.Read(buffer, offset, count);
for (int n = 0; n < samplesRead; n+=channels)
{
Add(buffer[n+offset]);
}
return samplesRead;
}
}
public class MaxSampleEventArgs : EventArgs
{
[DebuggerStepThrough]
public MaxSampleEventArgs(float minValue, float maxValue)
{
MaxSample = maxValue;
MinSample = minValue;
}
public float MaxSample { get; private set; }
public float MinSample { get; private set; }
}
public class FftEventArgs : EventArgs
{
[DebuggerStepThrough]
public FftEventArgs(Complex result)
{
Result = result;
}
public Complex Result { get; private set; }
}
c# forms audio naudio spectrum
c# forms audio naudio spectrum
edited Jan 1 at 21:42
marc_s
579k12911181264
579k12911181264
asked Jan 1 at 20:10
En1gm 4AEn1gm 4A
11
11
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The NAudio github repository contains the NAudioWpfDemo
project which also includes an implementation of a spectrum analyzer. I try to explain the most important parts below. I paste the relevant code in this answer but you need to take a look at the original source code to understand it completely.
The demo project uses the WPF Polyline
element (see SpectrumAnalyser.xaml) to visualize the FFT data.
<UserControl x:Class="NAudioWpfDemo.SpectrumAnalyser">
<Canvas Background="Black">
<Polyline x:Name="polyline1" Stroke="Yellow" StrokeThickness="1"/>
</Canvas>
</UserControl>
In SpectrumAnalyser.xaml.cs you find the code which updates the Polyline
element. The method Update(Complex fftResults)
receives the FFT data and then loops over all the data points in the FFT data (fftResults
array) ...
for (int n = 0; n < fftResults.Length / 2; n+= binsPerPoint)
{
// averaging out bins
double yPos = 0;
for (int b = 0; b < binsPerPoint; b++)
{
yPos += GetYPosLog(fftResults[n+b]);
}
AddResult(n / binsPerPoint, yPos / binsPerPoint);
}
... to call GetYPosLog(Complex c)
to calculate the dB value of each FFT data point ...
double intensityDB = 10 * Math.Log10(Math.Sqrt(c.X * c.X + c.Y * c.Y));
... and to add the converted data point to the polyline1
element in the method AddResult(int index, double power)
Point p = new Point(CalculateXPos(index), power);
polyline1.Points.Add(p);
Thanks for your answer. What about github.com/tjscience/audion.cscore looks promising to me but i dont know how to use it as well .. :-/
– En1gm 4A
Jan 2 at 15:05
Yes you could use that, too. The readme contains example code for a spectrum analyzer. Try to get that code running and then change it so that it fits your requirements. If you are stuck, post a new question with your specific problem.
– Marius
Jan 2 at 23:32
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53998592%2fc-sharp-application-sample-audio-from-audio-output-fft-algorithm-visualiz%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The NAudio github repository contains the NAudioWpfDemo
project which also includes an implementation of a spectrum analyzer. I try to explain the most important parts below. I paste the relevant code in this answer but you need to take a look at the original source code to understand it completely.
The demo project uses the WPF Polyline
element (see SpectrumAnalyser.xaml) to visualize the FFT data.
<UserControl x:Class="NAudioWpfDemo.SpectrumAnalyser">
<Canvas Background="Black">
<Polyline x:Name="polyline1" Stroke="Yellow" StrokeThickness="1"/>
</Canvas>
</UserControl>
In SpectrumAnalyser.xaml.cs you find the code which updates the Polyline
element. The method Update(Complex fftResults)
receives the FFT data and then loops over all the data points in the FFT data (fftResults
array) ...
for (int n = 0; n < fftResults.Length / 2; n+= binsPerPoint)
{
// averaging out bins
double yPos = 0;
for (int b = 0; b < binsPerPoint; b++)
{
yPos += GetYPosLog(fftResults[n+b]);
}
AddResult(n / binsPerPoint, yPos / binsPerPoint);
}
... to call GetYPosLog(Complex c)
to calculate the dB value of each FFT data point ...
double intensityDB = 10 * Math.Log10(Math.Sqrt(c.X * c.X + c.Y * c.Y));
... and to add the converted data point to the polyline1
element in the method AddResult(int index, double power)
Point p = new Point(CalculateXPos(index), power);
polyline1.Points.Add(p);
Thanks for your answer. What about github.com/tjscience/audion.cscore looks promising to me but i dont know how to use it as well .. :-/
– En1gm 4A
Jan 2 at 15:05
Yes you could use that, too. The readme contains example code for a spectrum analyzer. Try to get that code running and then change it so that it fits your requirements. If you are stuck, post a new question with your specific problem.
– Marius
Jan 2 at 23:32
add a comment |
The NAudio github repository contains the NAudioWpfDemo
project which also includes an implementation of a spectrum analyzer. I try to explain the most important parts below. I paste the relevant code in this answer but you need to take a look at the original source code to understand it completely.
The demo project uses the WPF Polyline
element (see SpectrumAnalyser.xaml) to visualize the FFT data.
<UserControl x:Class="NAudioWpfDemo.SpectrumAnalyser">
<Canvas Background="Black">
<Polyline x:Name="polyline1" Stroke="Yellow" StrokeThickness="1"/>
</Canvas>
</UserControl>
In SpectrumAnalyser.xaml.cs you find the code which updates the Polyline
element. The method Update(Complex fftResults)
receives the FFT data and then loops over all the data points in the FFT data (fftResults
array) ...
for (int n = 0; n < fftResults.Length / 2; n+= binsPerPoint)
{
// averaging out bins
double yPos = 0;
for (int b = 0; b < binsPerPoint; b++)
{
yPos += GetYPosLog(fftResults[n+b]);
}
AddResult(n / binsPerPoint, yPos / binsPerPoint);
}
... to call GetYPosLog(Complex c)
to calculate the dB value of each FFT data point ...
double intensityDB = 10 * Math.Log10(Math.Sqrt(c.X * c.X + c.Y * c.Y));
... and to add the converted data point to the polyline1
element in the method AddResult(int index, double power)
Point p = new Point(CalculateXPos(index), power);
polyline1.Points.Add(p);
Thanks for your answer. What about github.com/tjscience/audion.cscore looks promising to me but i dont know how to use it as well .. :-/
– En1gm 4A
Jan 2 at 15:05
Yes you could use that, too. The readme contains example code for a spectrum analyzer. Try to get that code running and then change it so that it fits your requirements. If you are stuck, post a new question with your specific problem.
– Marius
Jan 2 at 23:32
add a comment |
The NAudio github repository contains the NAudioWpfDemo
project which also includes an implementation of a spectrum analyzer. I try to explain the most important parts below. I paste the relevant code in this answer but you need to take a look at the original source code to understand it completely.
The demo project uses the WPF Polyline
element (see SpectrumAnalyser.xaml) to visualize the FFT data.
<UserControl x:Class="NAudioWpfDemo.SpectrumAnalyser">
<Canvas Background="Black">
<Polyline x:Name="polyline1" Stroke="Yellow" StrokeThickness="1"/>
</Canvas>
</UserControl>
In SpectrumAnalyser.xaml.cs you find the code which updates the Polyline
element. The method Update(Complex fftResults)
receives the FFT data and then loops over all the data points in the FFT data (fftResults
array) ...
for (int n = 0; n < fftResults.Length / 2; n+= binsPerPoint)
{
// averaging out bins
double yPos = 0;
for (int b = 0; b < binsPerPoint; b++)
{
yPos += GetYPosLog(fftResults[n+b]);
}
AddResult(n / binsPerPoint, yPos / binsPerPoint);
}
... to call GetYPosLog(Complex c)
to calculate the dB value of each FFT data point ...
double intensityDB = 10 * Math.Log10(Math.Sqrt(c.X * c.X + c.Y * c.Y));
... and to add the converted data point to the polyline1
element in the method AddResult(int index, double power)
Point p = new Point(CalculateXPos(index), power);
polyline1.Points.Add(p);
The NAudio github repository contains the NAudioWpfDemo
project which also includes an implementation of a spectrum analyzer. I try to explain the most important parts below. I paste the relevant code in this answer but you need to take a look at the original source code to understand it completely.
The demo project uses the WPF Polyline
element (see SpectrumAnalyser.xaml) to visualize the FFT data.
<UserControl x:Class="NAudioWpfDemo.SpectrumAnalyser">
<Canvas Background="Black">
<Polyline x:Name="polyline1" Stroke="Yellow" StrokeThickness="1"/>
</Canvas>
</UserControl>
In SpectrumAnalyser.xaml.cs you find the code which updates the Polyline
element. The method Update(Complex fftResults)
receives the FFT data and then loops over all the data points in the FFT data (fftResults
array) ...
for (int n = 0; n < fftResults.Length / 2; n+= binsPerPoint)
{
// averaging out bins
double yPos = 0;
for (int b = 0; b < binsPerPoint; b++)
{
yPos += GetYPosLog(fftResults[n+b]);
}
AddResult(n / binsPerPoint, yPos / binsPerPoint);
}
... to call GetYPosLog(Complex c)
to calculate the dB value of each FFT data point ...
double intensityDB = 10 * Math.Log10(Math.Sqrt(c.X * c.X + c.Y * c.Y));
... and to add the converted data point to the polyline1
element in the method AddResult(int index, double power)
Point p = new Point(CalculateXPos(index), power);
polyline1.Points.Add(p);
answered Jan 2 at 8:14
MariusMarius
659111
659111
Thanks for your answer. What about github.com/tjscience/audion.cscore looks promising to me but i dont know how to use it as well .. :-/
– En1gm 4A
Jan 2 at 15:05
Yes you could use that, too. The readme contains example code for a spectrum analyzer. Try to get that code running and then change it so that it fits your requirements. If you are stuck, post a new question with your specific problem.
– Marius
Jan 2 at 23:32
add a comment |
Thanks for your answer. What about github.com/tjscience/audion.cscore looks promising to me but i dont know how to use it as well .. :-/
– En1gm 4A
Jan 2 at 15:05
Yes you could use that, too. The readme contains example code for a spectrum analyzer. Try to get that code running and then change it so that it fits your requirements. If you are stuck, post a new question with your specific problem.
– Marius
Jan 2 at 23:32
Thanks for your answer. What about github.com/tjscience/audion.cscore looks promising to me but i dont know how to use it as well .. :-/
– En1gm 4A
Jan 2 at 15:05
Thanks for your answer. What about github.com/tjscience/audion.cscore looks promising to me but i dont know how to use it as well .. :-/
– En1gm 4A
Jan 2 at 15:05
Yes you could use that, too. The readme contains example code for a spectrum analyzer. Try to get that code running and then change it so that it fits your requirements. If you are stuck, post a new question with your specific problem.
– Marius
Jan 2 at 23:32
Yes you could use that, too. The readme contains example code for a spectrum analyzer. Try to get that code running and then change it so that it fits your requirements. If you are stuck, post a new question with your specific problem.
– Marius
Jan 2 at 23:32
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53998592%2fc-sharp-application-sample-audio-from-audio-output-fft-algorithm-visualiz%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown