Home

Awesome

macrosynth

Demo coming soon™!

overview of the macrosynth
A synth for the Adafruit MacroPad RP2040 using TodBot's Synthplug for audio out.
A headphone amplifier may be required to use headphones, and a portable battery can avoid the annoying hum when powering the macropad from a computer.

Components:

A large part of the complicated timing and clock/BPM sync was adapted from @todbot's drum machine project (linked above)

Usage

A very basic 2x osc synth (at the moment), the top keys select the various menus displayed on the screen on the left, with the bottom 8 keys playing the notes root5 -> root6

Main

1.0 (Main page 1)

Selected by default

Mono-legato is achieved by attaching a linear LFO (ie, y=x) to the pitch-bend of a note to bend it to the new note:

This function works even when intermediate notes are released:

In short, when a key is released, it will bend to the most recently played, still-held note.

Completely broken in the sequencer. I suspect it has something to do with how the note_off function is handled
TODO: Fix this

1.1 (Main page 2)

turns off all active notes (panic button)

Synth options

editing the detune or voicing requires the note to be retriggered, but the wave type and filter can be adjusted while the note is being held

2.0 (Synth page 1)

2.1 (Synth page 2)

Same as above, but for OSC B. Level is 0 by default

2.2 (Synth page 3)

Sequencer

3.0 (Seq page 1)

Sequencer BPM is 120. I can't believe I forgot to add a option to change this (editable in the code tho).
TODO: add bpm option to seq menu

Pressing the sequencer key once enters the step sequencer mode. Scroll the encoder to select the step to edit (the current step is highlighted).

As mentioned above, a note of differing octaves can occur on the same beat, just without the visual feedback.

TODO: Add options to change different notes' synth options independently (use the orange button to cycle through presets?)

Pressing the encoder to the ">Del" option clears the current step, sweep through the steps to clear all

3.1 (Seq page 2)

Press the sequencer key again to play the sequence, turn the encoder on this screen to expand the steps (doubles the current steps), with different colours to signify where you are in 2 bar loop (Pink -> Blue -> Yellow -> White)
TODO: 8 steps = 0.5 Bar is kinda weird, maybe allow user to change how long each step is?

While the sequencer is playing, you can leave the sequencer page and it will continue playing, allowing you to change the synth options as the sequence plays