Home

Awesome

Meebleeps / Wirehead Freaq FM Synth

Arduino Synth with Dual-voice 2-OP FM | Generative 2-track Polymetric Sequencer | Mozzi SDK

NOTE This code is an open-source prototype and is not compatible with the Wirehead Instruments version of Freaq FM hardware

An evolution of my first Mozzi synth build, this one features dual independent 2-operator FM voices paired with a 2-track generative sequencer.

Each voice has independent carrier & modulator waveforms, FM ratio, modulation envelope & LFO.

Both tracks share the a single pattern (inspired by the Intellijel Metropolix) and can be stacked in unison or have different polymetric step-counts. Track 1 can be offset 0-3 octaves above track 2 for separate bass & lead.

It started simple... but ended up cramming the 32K flash to the brim with features and wavetables, maxxing out the interface with obscure button combinations, and pushing the 16Mhz Arduino Nano to the edge! Upside is it makes lots of funky noises now!

Source Code: https://github.com/Meebleeps/MeeBleeps-Freaq-FM-Synth

Youtube Demo: https://www.youtube.com/watch?v=KD6IrcmMkoA

Youtube Channel: https://www.youtube.com/channel/UC4I1ExnOpH_GjNtm7ZdWeWA

Source released under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Copyright (C) 2022 Meebleeps


Important build-notes


Voices

Sequencer

Hardware

Pins

These are the defaults defined for the faceplate controls:

PinFunctionName in MutantFMSynth.ino
A0MutationANALOG_INPUT_MUTATION
A1WobbleANALOG_INPUT_LFO
A2PopulationANALOG_INPUT_STEPCOUNT
A3AttackANALOG_INPUT_MOD_ENVELOPE2
A4LifespanANALOG_INPUT_DECAY
A5DecayANALOG_INPUT_MOD_ENVELOPE1
A6RatioANALOG_INPUT_MOD_RATIO
A7DepthANALOG_INPUT_MOD_AMOUNT
D3StartBUTTON_INPUT_START
D4VoiceBUTTON_INPUT_VOICE
D5RecBUTTON_INPUT_REC
D6ScalesBUTTON_INPUT_SCALE
D10FuncBUTTON_INPUT_FUNC
D12TonicBUTTON_INPUT_TONIC

User Guide

Buttons

Rotary Inputs

Issues / Limitations

Compiling on the Arduino IDE

If you have issues with the compiled size not fitting in the Nano, this may be due to different compiler (I use VSCode & PlatformIO) or different bootloader in the Arduino (not sure which I have, but am compiling to Elegoo brand arduino nano).

Compiling in VSCode / PlatformIO

Thanks