Project in progress
Lo-Fi Arduino Nano Synth Modules

Lo-Fi Arduino Nano Synth Modules © GPL3+

Arduino-based digital hardware synthesizer modules. Goal was to design something to be cheap and super easy to build. First iteration.

  • 7,969 views
  • 40 comments
  • 16 respects

Components and supplies

About this project

I love noise. A lot. In pursuit of deeply textured noise machines, I've been tinkering around with lo-fi digital synthesis for a little while now (https://github.com/scraptured/Arduino-Synthesizers). Unfortunately, most of them are, well, limited. Most of my attempts have either hit the deeply textured noise goal but at the cost of all musicality, or are capable of only the merest beeps, boops, and warbles. MCUs only have so many clock cycles and pins to play around with, and they get used up super quickly when designing little noise machines. Which is where modular comes in.

Like any good lover of noise and aspiring maker of machines that make it, I think modular synthesizers are radical. They are also prohibitively expensive. I'm a stay-at-home dad with very (very) little disposable income so something that costs $300 and doesn't even make any noise until I've also purchased a handful of other $300 things isn't really an option. On the flip side, the DIY modular systems I come across, while extremely cool and inspirational, always seem more complicated than necessary by avoiding MCUs: requiring a dozen or so different ICs and (sometimes) nontrivial peripheral circuitry. So, I wanted to make a system that was suuuuuuper simple, requiring just a handful of the same parts in each module and ridiculously basic peripheral circuits.

Et voila!

Okay, so still just beeps, boops, and warbles. In its defense, only three of the eight modules are currently prototyped, and one of them is being badly mismanaged in this video (it's the envelope generator; I'm using it to modulate the VCOs' frequencies). While only these three modules have prototypes at the moment, all eight have been tested on breadboard circuits and the first iterations are done. I'm moving on for a little while to different projects so I decided to get this up here before I forgot -- like I usually do.

All together, the tested modules include the following:

  • square wave generator
  • envelope generator
  • VCO with VCA
  • LFO
  • attenuverter with offset
  • sample- or track-and-hold
  • quantizer
  • sequencer with two modes (step and Euclidean).

Hopefully someone out there will find these useful and/or inspirational for their own project. And in a few months time I'll probably have the second iteration up here.

-----------------------------------

NOTES:

  • To get the VCO to play properly you'll need the Mozzi library by Tim Barrass (https://sensorium.github.io/Mozzi/) and you'll have to set it to Hi-Fi mode. To do so, open the mozzi_config header file and uncomment this line #define AUDIO_MODE HIFI and then comment out whichever other one was set.
  • To get the sequencer to work you'll need three libraries: the Adafruit_NeoPixel library (https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-installation), Paul Stoffregan's Encoder library (https://github.com/PaulStoffregen/Encoder), and version 1.4.2 of the AceButton library (apparently the newer version pops errors at the moment).
  • The passive low-pass filter circuits on the PWM outputs are the wrong version in the schematics. They should use a 1K resistor and a 0.1uF capacitor. The ones in the schematic won't attenuate the PWM frequencies that the current code uses so are basically useless.
  • The VCO uses a half-sine wavetable that I made myself so the code throws an error. You can either replace that wavetable for another one that comes standard with Mozzi, or you can add the half-sine wavetable to the Mozzi library "tables" folder. It can be downloaded at my github here: https://github.com/scraptured/DIY_modular_Arduino/tree/master/mozzi_dual_mode_VCO_with_VCA

Code

Arduino files for easy upload
Here they are! All are .ino and can be uploaded to an Arduino nano using the Arduino IDE. Obviously, if multiple versions exist, choose the one with the highest number -- the others cannot be trusted. =) Also, if you encounter any bugs or oddities or inconsistencies feel free to let me know!

Schematics

Attenuverter
Attenuverter w07yeyzwds
Janky Sequencer
Janky sequencer klftnohvjz
Dual Mode Sequencer
Dual mode sequencer hthnhgfk9z
Envelope Generator
Envelope generator uwpj0lmwmt
Quantizer
Quantizer e1qxpzp2vs
Square Wave Generator
Square wave generator qb6fvpt3cp

Comments

Similar projects you might like

PhaseMod Drone Synth (w/ Arduino Nano & Mozzi)

Project showcase by Daniel Sinderson

  • 4,214 views
  • 6 comments
  • 16 respects

Let's Build an SN76489 USB MIDI Synth With Arduino Nano

Project tutorial by tyrkelko

  • 7,011 views
  • 1 comment
  • 8 respects

Arduino MIDI Poly Synth - MiniSy (Musical Instrument)

Project in progress by CesarSound

  • 7,079 views
  • 6 comments
  • 18 respects

Arduino Nano as CP/M-Compatible Computer

Project in progress by Alexey

  • 25,449 views
  • 26 comments
  • 40 respects

Laser Measurements Controlled by Arduino Nano

Project in progress by Ingo Lohs

  • 8,023 views
  • 3 comments
  • 6 respects
Add projectSign up / Login