Development Roadmap
Development follows four phases, each validating a critical assumption before the next phase adds complexity.
Phase 1 — Single Voice Proof of Concept
Section titled “Phase 1 — Single Voice Proof of Concept”Goal: Validate that the CY8C29466’s switched-capacitor fabric can produce musically useful self-oscillation, and characterize the clock noise floor.
| Task | Detail |
|---|---|
| PSoC Designer setup | Install toolchain, verify programmer connectivity, build a basic blink project |
| Bandpass self-oscillation | Configure a biquad bandpass filter at high Q, verify it oscillates at the target frequency |
| Relaxation oscillator | Configure integrator + comparator as a relaxation oscillator, measure waveform shape |
| Pitch tracking | Sweep the SC clock ratio, measure output frequency, characterize linearity |
| Clock noise measurement | Spectrum analyzer capture of output, identify clock leakage products |
| Output filtering | Design and test a reconstruction lowpass filter for the SC output |
| ESP32 I2C control | Basic I2C communication: ESP32 sends a cutoff frequency, PSoC updates its SC clock |
| MIDI note-on | End-to-end: USB MIDI note-on → ESP32 → I2C → PSoC analog output |
Hardware: One CY8C29466 on a breakout/dev board, one ESP32-S3 DevKitC, bench power supply, oscilloscope.
Exit criteria: A single voice that responds to MIDI notes with a clean analog tone and characterized noise floor.
Phase 2 — 4-Voice Prototype
Section titled “Phase 2 — 4-Voice Prototype”Goal: Prove that polyphonic voice allocation over I2C works at musical speed, and that multiple SC voices can coexist on a shared bus without interference.
| Task | Detail |
|---|---|
| 4-chip I2C bus | Four CY8C29466 chips with unique addresses on a shared I2C bus |
| Voice allocation | Round-robin and lowest-available allocation in ESP32 firmware |
| ADSR envelopes | Per-voice envelope generation at ~1kHz update rate |
| Polyphonic playback | Play 4-note chords from a MIDI keyboard, verify all voices respond independently |
| Bus timing | Measure I2C transaction timing under load — can all 4 voices update within 5ms? |
| Audio mixing | Sum 4 voice outputs through a simple op-amp mixer, evaluate crosstalk |
| PSoC firmware standardization | Single firmware image for all voice chips, address set by jumper or boot config |
Hardware: Four CY8C29466 breakout boards, ESP32-S3, TCA9548A mux (for evaluation, may not be needed at 4 voices), op-amp summing mixer.
Exit criteria: 4-voice polyphonic operation from a standard MIDI keyboard with clean voice allocation and no audible bus contention artifacts.
Phase 3 — 16-Voice System
Section titled “Phase 3 — 16-Voice System”Goal: Full MPE-capable polyphonic synthesizer with modulation routing and a designed audio output stage.
| Task | Detail |
|---|---|
| 16-voice I2C bus | Two 8-voice bus segments via TCA9548A |
| MPE voice allocation | Per-channel voice assignment, zone-aware allocation, voice stealing |
| Modulation routing | LFO → filter cutoff, velocity → VCA + cutoff, aftertouch → resonance, CC74 slide → oscillation mode |
| Mid-note reconfiguration | Topology switching under envelope or CC control, validate glitch-free transitions |
| Per-voice character | Different oscillation modes running simultaneously across the voice pool |
| Audio output stage | Designed output board: per-voice outs (for Eurorack/modular use) + stereo mix bus |
| Panel UI | Parameter display, patch selection, basic editing interface |
| Preset storage | Patch memory in ESP32 NVS or SD card |
Hardware: Custom voice board PCB (4 CY8C29466 per board, 4 boards), ESP32-S3, output stage PCB, front panel.
Exit criteria: A playable 16-voice MPE synthesizer with preset storage and a finished audio output stage.
Phase 4 — Expansion and Polish
Section titled “Phase 4 — Expansion and Polish”Goal: Production form factor, expansion architecture, and Funmaker 555 integration.
| Task | Detail |
|---|---|
| Expansion connectors | Hardware headers for additional voice boards (beyond 16 voices) |
| Funmaker 555 integration | TOS divider input, shared Leslie routing, ESP-to-ESP communication |
| Form factor | Standalone desktop enclosure or rack-mount; 555-compatible mounting option |
| MIDI 2.0 investigation | Evaluate MIDI 2.0 property exchange for richer controller communication |
| Documentation and schematics | Complete build documentation for reproducibility |
Exit criteria: A finished instrument with a defined form factor and documented build process.