Background
In this second assignment, you are going to rewrite the top-level architecture of a synthesizer to be able to generate proper sound. However, before getting started with the code, you should know a little bit about sound synthesis.
Before the creation of synthesizers, all the music that you could hear had previously been recorded using instruments and was optionally stored in some medium such as vinyl records. After its invention, the synthesizer allowed producers to create sounds from scratch, no instrument was needed. As with the first computer, the first synthesizer was analog and extremely bulky. It was created by Robert Moog in 1965 and contains all the elements present in the one you are going to use. Composer Wendy Carlos popularized the synthesizer a couple of years later with her album Switched-on Bach and this video that showcase its use (this is arguably the most influential music production video).
Figure 1: The Moog Synthesizer
In short, a music synthesizer is a device that can generate sound by electronic means. Furthermore, it can be used to control and modify the generated sound.
The synthesizer that you are using has the basic building block that can be found in any commercial synthesizer:
- 2 oscillators with the four classic waveform types (sine, square, triangle, and sawtooth)
- A low-pass filter
- Low-frequency oscillators
- Amplitude modulation envelopes (not yet implemented)
- Additional effects (not yet implemented)
If you want to read more about each building block, you can check this introductory guide.