Connecting Tech Pros Worldwide Forums | Help | Site Map

How do I compute a sine wave

Xanax
Guest
 
Posts: n/a
#1: Jul 19 '05
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.



Gianni Mariani
Guest
 
Posts: n/a
#2: Jul 19 '05

re: How do I compute a sine wave


Xanax wrote:[color=blue]
> 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??[/color]

This NG is about the C++ language.

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


Bruce
Guest
 
Posts: n/a
#3: Jul 19 '05

re: How do I compute a sine wave


In comp.lang.c++
Gianni Mariani <gi2nospam@mariani.ws> wrote:
[color=blue]
>Xanax wrote:[color=green]
>> 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??[/color]
>
>This NG is about the C++ language.[/color]

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[i] = Amplitude * sin(Deg2Rad(cnt));
}

}

void SineWave::DumpSinWave()
{
for ( int i = 0; i < Resolution; i++)
{
cout << Wave[i] << endl;
}
}
Jerry Coffin
Guest
 
Posts: n/a
#4: Jul 19 '05

re: How do I compute a sine wave


In article <jECfb.150$1Q3.760@news.indigo.ie>, jo@fo.mo says...[color=blue]
> Hi all,
> I need to produce a sine wave and use the WaveOut APi to sound it on my
> sound card.[/color]

std::sin would be the obvious way.
[color=blue]
> I also need to compute Fast Fourier Transform to modify the Sine wave.[/color]

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.
Xanax
Guest
 
Posts: n/a
#5: Jul 19 '05

re: How do I compute a sine wave


Thanks all that's great!!
"Jerry Coffin" <jcoffin@taeus.com> wrote in message
news:MPG.19e9569167fc7214989b4b@news.clspco.adelph ia.net...[color=blue]
> In article <jECfb.150$1Q3.760@news.indigo.ie>, jo@fo.mo says...[color=green]
> > Hi all,
> > I need to produce a sine wave and use the WaveOut APi to sound it on my
> > sound card.[/color]
>
> std::sin would be the obvious way.
>[color=green]
> > I also need to compute Fast Fourier Transform to modify the Sine wave.[/color]
>
> 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.[/color]


Ashish
Guest
 
Posts: n/a
#6: Jul 19 '05

re: How do I compute a sine wave



"Xanax" <jo@fo.mo> wrote in message news:jECfb.150$1Q3.760@news.indigo.ie...[color=blue]
> 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.
>
>[/color]

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


Ashish
Guest
 
Posts: n/a
#7: Jul 19 '05

re: How do I compute a sine wave



"Jerry Coffin" <jcoffin@taeus.com> wrote in message
news:MPG.19e9569167fc7214989b4b@news.clspco.adelph ia.net...[color=blue]
> In article <jECfb.150$1Q3.760@news.indigo.ie>, jo@fo.mo says...[color=green]
> > Hi all,
> > I need to produce a sine wave and use the WaveOut APi to sound it on my
> > sound card.[/color]
>
> std::sin would be the obvious way.
>[color=green]
> > I also need to compute Fast Fourier Transform to modify the Sine wave.[/color]
>
> 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.
>[/color]

Dont confuse the newbie.


Closed Thread