[linux-audio-dev] Rectifier algorithm and Exponential FM question

Frank Barknecht fbar at footils.org
Tue May 6 06:16:01 UTC 2003

nickt hat gesagt: // nickt wrote:

> Sorry if this is the wrong list. I have never found a list with people
> who can help me with these kind of questions.

Check out the code archive on musicdsp.org.

> I am trying to figure out how a rectifier works in code. I have created
> something like it using tanh() distribution ( which will turn a sine
> wave into a sort-of-square wave). I can also achieve it with hard
> clipping/saturation. In the same sense I'd also like to know how a
> smooth operation works as well. I can not find any source code or
> explanations to help me figure out the algorithm yet.

Musicdsp has several examples and you also could take a look at
Steve's plugins. There are several ways to rectify a signal. The
hardest way is doing convolution with a matching impulse response. The
easiest way seems to be waveshaping: There you use a lookup table that
multiplies your input signal with values that smoothly approach 0 when
your signal approaches 1.

> My other question is how are exponential signals generated? I want to
> experiment with exponential FM. My only understanding of Exp. Fm is that
> it sweeps half down and full up ( at 440hz, it would sweep 220hz down
> and 880 hz up). I haven't much of an idea how this is achieved. How do I
> convert a sine wave into an exponential signal for Exp FM?

I don't quite understand this. To sweep the frequency, you just apply
a function on the frequency input. Simplified like
  out = sin(exp(freq))

 Frank Barknecht                               _ ______footils.org__

More information about the Linux-audio-dev mailing list