Have anything to say?
Go to the article discussion page.
- Devsound.se - Publisher
- STG - Developer
- BoomLinde - Keyboard Kruncher
- Pakir - Tone Twister
- Salkinitzor - Filter Fighter
For Malmö SyltJam 2011 I wanted to do a demo of how fast you can make a simple synth using an Arduino, a MIDI shield and some very simple external electronics.
But when buying components I found some interesting components and the project turned from a 20-minute demo to a 3-day project with short scattered sound demos instead.
First day - design, second day - electronics, third day - coding, fourth day - fun.
I like building things and am good friends with electronics, programming and all things digital. I am however NOT a musician, I suck at most things analog and I haven't a clue as to how filters work or what is needed to produce a nice versatile sound, so...
...take this project for what it is - a cheap abomination by a musical illiterate :)
I started with an Arduino Uno and a MIDI Shield and strapped on a shift register to run a R-2R resistor ladder followed by a MAX261 - very simple, very quick and easy to reproduce.
The (possibly latest) Arduino sketch is available here:
- Up to 16 polyphonies (used as 4poly supersaw)
- Super saw with variable spread
- Dual 2nd order LB,BP,AP,HP,N programmable resonant filters with variable Q
- Volume envelope shaping
- Filter shaping and key tracking (soon, confirmed possible - not implemented)
- Pitch bend
- All parameters programmable via MIDI
What does it sound like?
We did record some videos during early on, so check back for the later additions such as envelopes and shaping.
Schematic, theory of operation
- Take one cup of Arduino Uno
- Strap on one tablespoon of MIDI Shield
- Mix all schematic ingredients
- Connect with wires to MIDI Shield, pin numbers on schematic
- Infuse with code
The 74HC595 is a shift register. It allows the Arduino to output 8-bits of data using only 3 pins.
These 8-bits of data are fed into a R-2R resistor ladder. I know, it looks weird. Reason: used what they had at Electrokit so it certainly can be built differently. See wikipedia on R-2R ladders
The ladder acts as a very lo-fi digital to analog converter (DAC) and provides the basic waveform that is fed into the filter.
The MAX261 is a filter. I know nothing about filters. Heck, I can't even understand much of the datasheet. Anyways, it has two filter stages. The output from each stage is selected by a mechanical 3-way rotary switch and the output of the first filter (after the switch) is fed into the second filter
The CLKA and CLKB inputs are fed a frequency from the Arduino using Timer0 and Timer2. The rest of the wires are used to write data to the internal memory of the filter. This allows the arduino to set 4 different operating modes for each of the two filters and also a Q-value (resonance?) and a frequency modifier (F0) register. This value in conjunction with the CLK frequency generates the center frequency. What this frequency is differs between modes.
Finally the output of the second filter is hooked up to a 3.5mm tele jack for audio out.
That's about it. The rest is up to software and the musician.