PicoSynth: polyphonic wavetable synth on Raspberry Pi Pico 2
A 64-voice, 16-channel multi-timbral wavetable synthesizer for the RP2350 Pico 2 with I2S or USB audio.

Key Facts
- Chip: RP2350 (Pico 2)
- Voices: 64, 16-channel multi-timbral
- Audio: 16-bit stereo 48 kHz I2S or USB
- Status: work in progress
About This Project
PicoSynth is a work-in-progress polyphonic synthesizer for the Raspberry Pi Pico 2. It offers 64 voices, 16 MIDI channels, three DCOs per voice (two tunable plus a sub), a resonant state-variable filter, ADSR envelopes and LFOs, with 16-bit stereo audio at 48 kHz over I2S or USB. A rough General MIDI preset bank is included. Aimed at builders who want a serious synth engine on a $5 board.
Source & Attribution

Illustration
Parts Needed
- Raspberry Pi Pico 2 (RP2350; the RP2040 is no longer supported)
- I2S DAC, e.g. Pimoroni Pico Audio Pack (or none, if using USB audio)
- MIDI source (USB host or 5-pin serial MIDI circuit on UART1, pins 4/5)
- Computer with the Pico SDK toolchain
Steps
- 1
Pick your audio output
Leave CONFIG_AUDIO_USB at 0 in CMakeLists.txt for I2S output to the Pimoroni Audio Pack, or set it to 1 to make the Pico a USB audio device.
- 2
Wire MIDI (optional)
For serial MIDI, connect a standard opto-isolated MIDI input to UART1 on pins 4 and 5. USB MIDI needs no extra hardware.
- 3
Build
With the Pico SDK installed, run CMake and make. Presets are generated at build time, so you only need the SDK toolchain.
- 4
Flash
Hold BOOTSEL, plug in the Pico 2, and copy the UF2 onto it.
- 5
Play
Send MIDI notes and program changes from a keyboard or DAW. It's multi-timbral, so each MIDI channel can play a different patch.
- 6
Tips
It's still in progress, so expect changes. The utils folder has a clangd helper for code navigation.
Not included: 3D-printed case, wire, solder, USB cable
Related Projects


