This page defines the additive synthesizer component for Project 1.
Organ synthesis is very closely related to additive synthesis, using combinations of sinusoids to make a sound, but with some specializations, particularly in the choice of harmonics and some sound modifications. For this component you are required to simulate the sound of a Hammond B3 Organ. Wikipedia has a very nice article on additive synthesis as well. I've added some additional detail at the bottom of the page.
Tonewheels are the sound generators in a Hammond B3 organ. They are really just a way to generate sine waves.
The drawbars indicate what harmonics are to be added to the note a key produces. Note that the harmonics for a B3 are not integer multiples of a given frequency, you'll have to figure out the relationship between them online.
A Leslie speaker is a rotating speaker that changes the sound of the organ to make it more lively. An article on the Leslie speaker can be found on Wikipedia.
Polyphony simply means playing more than one note at a time. When you strum a guitar, you are playing six notes at a time. Polyphony means being able to start and stop more than one note at the same time.
How an instrument starts the sound and sustains it varies, but usually has a volume characteristic to it. An example, a violin may slowly start the sound of a note or quickly start it for different songs. This is called an "attack". Many instruments have a rapid decay after the attack, then sustain at another level, only to gradually decay at the end. In all cases for a wavetable synthesis component you will need to be able to fade the sound at the end over several milliseconds to avoid a "pop". The Envelope for an organ is very easy, since there's a short attack and a short decay and nothing else.
Wikipedia has a good article on ADSR envelopes and we will discuss them in class.
Vibrato is a musical effect where the frequency of the note is varied repeatedly up and down. It's a common effect in both voice and instruments. Wikipedia has a nice page on vibrato. Note that on a Hammond B3 organ, all the vibrato changes all notes at the same time.
The B3 has a switch that enables a short click when a note starts called "percussion". This click consists of a very short (a few milliseconds) presentation of a note 2 or 3 times the frequency of the actual note.
50 points of the grade will be an individual grade assigned to this component.
The points will be based on the following rubric. You must achieve all elements of each level to earn the available points:
| 10 - Tonewheels 20 - Drawbars 20 - Envelope generation 30 - Polyphony 40 - Vibrato 50 - Leslie speaker |
A tonewheel is how a Hammond organ generates it's sound. It's a metal wheel
with magnets on it that spins. A small coil near it picks up the changing
magnetic field from the wheel making what is effectively a sine wave. Think of a
tonewheel as a sine-wave generator. There's a whole bunch of them in a
Hammond Organ, many more than there are keys.
When you press a key, the sound from 9 tonewheels (read this as 9 sine waves)
are added together. The amount of each component (amplitude) s determined by the
drawbar. When the drawbar is set to zero, the component is not included
(amplitude of zero). IfI pull the 16' bar only, I will get just one sine
wave. If it also pull the 4' bar, I'll get two sine waves, a fundamental and a
harmonic at 4x the frequency. The multiples for the drawbars are:
| 16' | 1x |
| 5 1/3' 3x | 3x |
| 8' 2x | 2x |
| 4' 4x | 4x |
| 2 2/3' 6x | 6x |
| 2' 8x | 8x |
| 1 3/5' 10x | 10x |
| 1 1/3' 12x | 12x |
| 1' 16x | 16x |
Because the drawbar settings range from 0 to 8, they use a number like 88 5324 588 to represent a drawbar setting. The numbers represent the amplitude. Suppose we have the following drawbar setting: 80 5020 000 and press the key C4. The fundamental frequency for C4 is 261.626 (from notes.h). We will be added sine waves of frequencies: 261.626 (1X), 523.252 (2x), and 1569.756 (6x).
The amplitude is determined by the drawbar setting. When the drawbar is pulled completely out, we get the maximum amplitude for that sine wave. Each number less decreases the amplitude by 3db except for 0, which turns the waveform off. So, the amplitude for a drawbar setting of 7 would be -3dB. You might want to look up the definition of decibel to determine what that means (it's a simple equation; we're talking about the equivalent of voltages here, not power). For my example, I would multiply the 1X frequency by 1, the 2x frequency by 0.354, and the 6x frequency by 0.126.
This generates the tones. A Hammond organ gets vibrato by simply varying the speed it spins the tonewheels. This changes the way vibrato will sound because it changes every frequency by a percentage, not a fixed frequency. So, 1000Hz changed by 1% would be a plus or minus variation of 10Hz, while the same vibrato setting for 3000Hz would be a plus or minus variation of 30Hz.
You don't divide drawbar numbers. When the drawbar is at 8, we have maximum
amplitude. Then the drawbar is at 7, we have -3dB amplitude, which is 0.708.
When the drawbar is at 6, we have -6dB amplitude. For each step down, you
decrease the amplitude by 3dB. So, drawbar 1 is -21dB.
The equation for decibels is dB = 20log(R1/R2), which log is base 10. In this
case, R2 is the maximum amplitude possible. We'll call that 1, since we consider
this no change in gain. R1 is the amplitude. Where I got 0.354 for a drawbar
setting of 5 is this: Drawbar setting of 5 is 3 less than 8. 3 times -3 = -9dB.
-9 = 20log(0.354/1).