- Austin Bohlmann
- Ethan Christie
- Adam Mack
- Andre Ponsot
- Noah Rediker
A synthesizer with the following specifications:
- Thirteen note buttons to play an entire octave from C to C
- A note range from C2 to C7
- Two octave buttons to raise or lower the octave being played
- One button to change the shape of the wave between off, triangle, sawtooth, and square modes
- One button to goof-off.
- Clock speed of 10MHz
- Supply Voltage of 3.3V
Input: GPIO [0:12] keyboard (C, C#, D ... A#, B, C), [13] mode key, [14:15] octave change (down, up), [16] goof-off
Output: GPIO [33] PWM
To properly output audio, the synthesizer utilizes an audio amplifier as shown below. It requires 12V supply and uses an LM386 (shown as LM393 in diagram) op amp integrated circuit to amplify the analog wave output of the synthesizer device.
Top level Diagram:
Sound Driver RTL. This section creates and outputs the sound wave based on which button is being pressed.
Clock Divider RTL Diagram, supplying a 4Hz signal to the RNG block and a 49kHz signal to the wave shaper.
Pulse Width Modulator, controlling the output based on the calculations performed by the wave shaper.
Oscillator, which counts from 1 to the divisor value given from the lookup table.
Wave Shaper Module Diagram. This module uses a sequential divider to divide the oscillator's output by the lookup frequency of the note played, then performs combinational logic to output a wave.
Sequential Divider Diagram as a submodule of the wave shaper.
Random Number Generator Module, which is applied to the goof-off button.
Linear Feedback Shift Register (LFSR) as part of the RNG module.
Input Modules, which outputs the correct frequency to play based on the note pressed, normal or goof-off mode, and the selected octave.
Keypad Encoder Module:
Wavetype State Diagram to determine which wave shape the device outputs.
Octave State Diagram to determine what octaves the keyboard corresponds to.
Pending
Peace and love to hall from the Silly Synthesizer Specialists <3