How do I compute a sine wave

X

Xanax

Hi all,
I need to produce a sine wave and use the WaveOut APi to sound it on my
sound card.
I also need to compute Fast Fourier Transform to modify the Sine wave.

Any ideas on where to start or get some info on this??
Cheers,
Xanax.
 
G

Gianni Mariani

Xanax said:
Hi all,
I need to produce a sine wave and use the WaveOut APi to sound it on my
sound card.
I also need to compute Fast Fourier Transform to modify the Sine wave.

Any ideas on where to start or get some info on this??

This NG is about the C++ language.

You'll need to look elsewhere for help on FFT's and sound API's.
 
B

Bruce

In comp.lang.c++
Gianni Mariani said:
This NG is about the C++ language.

So why don't you give him an example in C++?
#include <iostream>
#include <math.h>

using namespace std;

const double DegreesPerWave = 360.0;
const double Pi = 3.1415926535897932384626433832795;

class SineWave
{
public:
SineWave(){Amplitude = 2.0; Resolution = 256; Wave = new double[256];};
SineWave(double Amp, int Res){Amplitude = Amp; Resolution = Res; Wave =
new double[Res]; };
~SineWave(){delete Wave;};

void MakeSinWave();
void DumpSinWave();
double Deg2Rad( double x) {return x * Pi/180.0;};

private:
double Amplitude;
int Resolution;
double *Wave;
};


int main(int argc, char **argv)
{
SineWave s;

s.MakeSinWave();
s.DumpSinWave();
return 0;
}

void SineWave::MakeSinWave()
{
double cnt = 0.0, step = DegreesPerWave / Resolution;

for ( int i = 0; i < Resolution; i++, cnt += step)
{
Wave = Amplitude * sin(Deg2Rad(cnt));
}

}

void SineWave::DumpSinWave()
{
for ( int i = 0; i < Resolution; i++)
{
cout << Wave << endl;
}
}
 
J

Jerry Coffin

Hi all,
I need to produce a sine wave and use the WaveOut APi to sound it on my
sound card.

std::sin would be the obvious way.
I also need to compute Fast Fourier Transform to modify the Sine wave.

If you're starting with a sine wave, the result of an FFT is a foregone
conclusion -- a sine wave is a pure fundamental, so you basically get a
spike to 100% at the fundamental, and above that you'll get a tiny bit
of "noise" that's basically just an artifact of the sampling.

If you want to add overtones, you don't need to apply an FFT to a sine
wave to start with -- you can just put in the overtones you want, and
then do an inverse FFT to get your waveform.
 
X

Xanax

Thanks all that's great!!
Jerry Coffin said:
std::sin would be the obvious way.


If you're starting with a sine wave, the result of an FFT is a foregone
conclusion -- a sine wave is a pure fundamental, so you basically get a
spike to 100% at the fundamental, and above that you'll get a tiny bit
of "noise" that's basically just an artifact of the sampling.

If you want to add overtones, you don't need to apply an FFT to a sine
wave to start with -- you can just put in the overtones you want, and
then do an inverse FFT to get your waveform.

--
Later,
Jerry.

The universe is a figment of its own imagination.
 
A

Ashish

Xanax said:
Hi all,
I need to produce a sine wave and use the WaveOut APi to sound it on my
sound card.
I also need to compute Fast Fourier Transform to modify the Sine wave.

Any ideas on where to start or get some info on this??
Cheers,
Xanax.

Ask this question in a mathematics newsgroup (Sorry, I am too lazy to look
up newsgroup names for you)
 
A

Ashish

Jerry Coffin said:
std::sin would be the obvious way.


If you're starting with a sine wave, the result of an FFT is a foregone
conclusion -- a sine wave is a pure fundamental, so you basically get a
spike to 100% at the fundamental, and above that you'll get a tiny bit
of "noise" that's basically just an artifact of the sampling.

If you want to add overtones, you don't need to apply an FFT to a sine
wave to start with -- you can just put in the overtones you want, and
then do an inverse FFT to get your waveform.

Dont confuse the newbie.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top