Center for New Music and Audio Technologies

next up previous
Next: Computing the Sine Function Up: FPGAs for Sound Synthesis Previous: FPGAs for Sound Synthesis

Introduction

In 1906, Thaddeus Cahill demonstrated a new instrument - the Telharmonium, the first and largest sound synthesizer ever developed [1]. Powered by electricity, but without the benefit of electronic amplification, the smoothly rotating tone generators of the Telharmonium emitted synthetic tones purer than nature - sinusoidal waves in the precise integer ratios of just intonation. Moved by the spectacle of this demonstration, the elderly American author Mark Twain (1835-1910) wrote: ``Every time I see or hear a new wonder like this I have to postpone my death right off. I couldn't possibly leave this world until I have heard it again and again!'' [2]. Many efforts on developing and improving sound synthesis followed with a greater or lesser degree of success. The invention of the stored program electronic digital computer in the 1940s finally opened the way for the present era of sound synthesis and since the first experiments of Max V. Mathews in 1957, multiple techniques of sound synthesis have been invented.

One of the most successful methods of sound synthesis is based on the summing of time-varying sinusoids, also known as additive synthesis. This method is described using the following equation:

$\displaystyle y\left(t\right)=\sum_{i=0}^{N} A_i\left(t\right)\cos\left(2\pi f_i \left(t\right)t+\theta_i\left(t\right)\right).$ (1.1)

The structural reconstruction can be carried out either in the time domain (see Figure 1.1) or the frequency domain.

Figure 1.1: Time-domain additive synthesis
\begin{figure}
\centerline {\epsfig{figure=addsynthesis.eps,width=120mm}}\end{figure}

In either case the sinusoids are additively accumulated to create the output [3]. Theoretically any sound can be reproduced by proper control of the sinusoids over time. However, all the control parameters plus the sinusoidal function themselves must be calculated at the sampling rate - a quite demanding task even for todays CPUs. The load on the CPU can be reduced significantly by separating the control and synthesis tasks, and assigning the task of computing the sinusoids to a co-processor, such as an FPGA. The following sections describe how to compute sinusoids and how to control the sinusoids attributes in such a device.
next up previous
Next: Computing the Sine Function Up: FPGAs for Sound Synthesis Previous: FPGAs for Sound Synthesis
Home
Norbert Lindlbauer
2000-01-19