drop old file
This commit is contained in:
parent
8a3abafd84
commit
fc99d0ff43
34
DESIGN.md
34
DESIGN.md
@ -1,34 +0,0 @@
|
|||||||
# Stupid Synth Design Document
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
Stupid Synth is a minimalist, 4-voice polyphonic synthesizer designed for the RP2040. It prioritizes zero external component count (other than the sound transducer itself) and code simplicity.
|
|
||||||
|
|
||||||
## Hardware Design
|
|
||||||
* **MCU**: Raspberry Pi Pico (RP2040).
|
|
||||||
* **Audio Output**:
|
|
||||||
* **Method**: High-speed PWM (Pulse Width Modulation).
|
|
||||||
* **Pin**: GP28.
|
|
||||||
* **Circuit**: Connect a piezo buzzer directly between GP28 and GND, or a speaker/headphones in series with a 220Ω resistor.
|
|
||||||
* **Input**: USB Serial Console (no physical buttons/pots required).
|
|
||||||
|
|
||||||
## Software Architecture
|
|
||||||
### Audio Engine
|
|
||||||
* **Carrier Frequency**: ~490 kHz (125MHz sys clock / 255 wrap). This pushes PWM noise far above human hearing, minimizing the need for an analog filter.
|
|
||||||
* **Sample Rate**: 22,050 Hz.
|
|
||||||
* **Bit Depth**: 8-bit.
|
|
||||||
|
|
||||||
### Synthesis Engine
|
|
||||||
* **Waveform**: Sawtooth (generated via simple phase accumulation).
|
|
||||||
* **Polyphony**: 4 simultaneous voices.
|
|
||||||
* **Envelope**: Simple Decay (percussive/plucked sound).
|
|
||||||
* **Mixing**: Tanh saturation (soft clipping) to prevent digital distortion when voices sum.
|
|
||||||
|
|
||||||
### Interface
|
|
||||||
* **Control**: Keyboard characters sent via Serial Monitor trigger notes.
|
|
||||||
* Keys: `a`, `s`, `d`, `f`, `g`, `h`, `j`, `k` (Scale C4 - C5).
|
|
||||||
|
|
||||||
## Execution Plan
|
|
||||||
1. Configure RP2040 Hardware PWM on GP28.
|
|
||||||
2. Setup a repeating timer interrupt at 22.05kHz.
|
|
||||||
3. Implement the mixing loop and voice management in the interrupt handler.
|
|
||||||
4. Process Serial input in the main loop.
|
|
||||||
Loading…
Reference in New Issue
Block a user