Digital Synthesizer Hardware Design
Summary
In this section, the focus will be on hardware design specifically on digital musical synthesizer.
Overview
Digital synthesizer consists of the components below (each item is linked to the detail page).
- VCO (Voltage Controlled Oscillator)
- VCA (Voltage Controlled Amplifier)
- VCF (Voltage Controlled Filter)
- EG (Envelop Generator)
- LFO (Low Frequency Oscillator)
Some component’s name start from “VC”, and these are from “analog” synthesizer. For example, when the note is played, the frequency of the note must be controlled. This is done by input voltage in analog synthesizer. In digital synthesizer, those modules are not controlled by voltage, but input value comes from master controller.
VCO generates the actual sound. This module takes “frequency” input, and generates various waves. Usually, VCO generates those wave types below;
- Square wave
- Saw wave
- Triangle wave
- Sine wave
- Pulses
In this design, only top 3 wave types from the list will be supported, since those 3 can be easily generated (Wave form is shown in figure 2). When humans play string instruments, a technique called “vibrato” is used to make the sound nicer, and the frequency of the note vibrates slightly. To simulate this, LFO is used. LFO generates low frequency wave, and this will shake the original frequency input of the VCO slightly.
VCA controls the amplitude of the note. But this is not just volume, or velocity of the note. Volume changes time to time according to the envelope input. Figure 3 shows the output from EG (Envelope Generator).
For example, if the instrument is like piano, the volume rises sharply, but it drops fast, and it is like a pulse. Opposite would be string instruments. Volume rises slowly, but it continues being loud until it stops. Also, the sound remains after player stops the note.
This is simulated by EG (Envelope Generator). There are 4 parameters to control the envelope;
- Attack time
- Decay time
- Sustain level
- Release time
Attack time is a parameter to control the time from the start of the note signal, to when volume of the note peaks.
Decay time is the time from when volume peaks, to when volume sustains. For example, if the instrument is like trumpet, volume rises sharply, and it drops a bit from the peak immediately, then the volume becomes stable until the note stops.
Sustain level controls the stable volume after the peak. As I mentioned, when the trumpet is played, and after the peak, volume sustains until the note stops. Sustain level controls this. Instruments like piano, sustain level is low. Instruments like strings, wind instruments, sustain level is high. For brass instruments, sustain level is in between.
Lastly, release time controls the drop speed of the volume after note is stopped. Usually, sound does not disappear immediately after note is stopped. Release time simulates that.
Basically, if synthesizer has VCO, VCA and EG, it can generate various sounds. Also, by using EG, synthesizer can simulate the instruments in real world. In this design, VCF and LFO won’t be implemented (Originally, I was planning to implement, but FPGA area did not allow that).
Poly-phonic tone generation
Basically, synthesizer consists of VCO, VCA and EG, and it can generate “a note”. In real world, humans play chords, which means that, 3 or 4 notes can be played at a time with one instrument. Also, in a concert, there are various instruments played together. To simulate this, multiple synthesizer units will be implemented in one module, and mixer will mix up all the sounds at the end. Figure 1 shows the entire synthesizer module diagram.
This is the overview of the entire synthesizer module. Details of the design of each module (VCO, VCA, EG and mixer) will be explained in later sections.