next up previous contents index
Next: Pulse trains via wavetable Up: Pulse trains Previous: Pulse trains   Contents   Index

Pulse trains via waveshaping

When we use waveshaping the shape of the formant is determined by a modulation term

\begin{displaymath}
{m_a}[n] = f (a \cos(\omega n))
\end{displaymath}

For small values of the index $a$, the modulation term varies only slightly from the constant value $f(0)$, so most of the energy is concentrated at DC. As $a$ increases, the energy spreads out among progressively higher harmonics of the fundamental $\omega $. Depending on the function $f$, this spread may be orderly or disorderly. An orderly spread may be desirable and then again may not, depending on whether our goal is a predictable spectrum or a wide range of different (and perhaps hard-to-predict) spectra.

The waveshaping function $f(x) = {e^x}$, analyzed on Page [*], gives well-behaved, simple and predictable results. After normalizing suitably, we got the spectra shown in Figure 5.13. A slight rewriting of the waveshaping modulator for this choice of $f$ (and taking the renormalization into account) gives:

\begin{displaymath}
{m_a}[n] = {e^{a \cdot (\cos(\omega n) - 1))}}
\end{displaymath}


\begin{displaymath}
= e ^ {
{ -\left [
b \sin {\omega \over 2}
\right ] }
^2
}
\end{displaymath}

where ${b^2}=2a$ so that $b$ is proportional to the bandwidth. This can be rewritten as

\begin{displaymath}
{m_a}[n] = g ( b \sin {\omega \over 2} n )
\end{displaymath}

with

\begin{displaymath}
g(x) = e ^ {- x ^ 2}
\end{displaymath}

Except for a missing normalization factor, this is a Gaussian distribution, sometimes called a ``bell curve". The amplitudes of the harmonics are given by Bessel ``I" type functions.

Another fine choice is the (again unnormalized) Cauchy distribution:

\begin{displaymath}
h(x) = {1\over{1 + {x^2}}}
\end{displaymath}

which gives rise to a spectrum of exponentially falling harmonics:

\begin{displaymath}
h(b \sin({\omega \over 2} n)) =
G \cdot \left (
{1\over 2...
...H \cos(\omega n) + {H^2} \cos(2 \omega n)
+ \cdots
\right )
\end{displaymath}

where $G$ and $H$ are functions of the index $b$ (explicit formulas are given in [Puc95a]).

In both this and the Gaussian case above, the bandwidth (counted in peaks, i.e., units of $\omega $) is roughly proportional to the index $b$, and the amplitude of the DC term (the apex of the spectrum) is roughly proportional to $1/(1+b)$ . For either waveshaping function ($g$ or $h$), if $b$ is larger than about 2, the waveshape of ${m_a}(\omega n)$ is approximately a (forward or backward) scan of the transfer function, so the resulting waveform looks like pulses whose widths decrease as the specified bandwidth increases.


next up previous contents index
Next: Pulse trains via wavetable Up: Pulse trains Previous: Pulse trains   Contents   Index
Miller Puckette 2006-12-30