Since 1996 the world is (from a musical perspective) a better place since Roland produced the JP-8000 synthesizer. Most of it is irrelevant but one waveform it produces is worth spending words on: the supersaw.
The supersaw is, according to wikipedia, 7 sawtooth oscillators played slightly detuned concurrently. Every dance-song since then used it. ALL OF THEM.
As a fan I wanted to create music with it. I have keyboard-lessons and learned the famous Dutch song "farmer, there's a chicken in the water"; I would love to play that with a supersaw! Unfortunately the Ronald-device is out of budged by several orders of magnitude.
One day while cleaning my mancave I stumbled on a box with 10 AVR AtMega 168 in it. Then it dawned to me: I can create a supersaw with that! I remembered that I made a synthesizer years ago with 2 arduinos, I can of course repeat that.
So I sat down and started soldering. After 6 Arduinos I had enough of it and finished it up with a ready-made MIDI-shield and an opamp. Half an hour of writing software (and cursing at the arduino ide) it was done!
I had great hopes for the result, unfortunately it sounds quite mediocre: mediocresaw.mp3 (some random notes played) - probably (possibly?) caused by not using 7 oscillators. Well, good enough for me.
pictures or it didn't happen
Screenshot of oscilloscope showing the note 'f6' being played:
how does it work
The Arduino Uno with the MIDI-shield talks MIDI to my keyboard. The UNO filters out the MIDI-notes from the stream and calculates the frequency of them. Then that frequency and 'velocity' is transmitted via I2C to the 6 slave-arduinos. Each of the slaves produces sound by running PWM on 2 pins. With some resistor-magic, these is combined into 1 sound. Of course one needs an opamp voltage-follower to fix-up the impedance.
The software can be downloaded from this link. It contains software for the Arduino Uno master and the 6 slaves.
I've created a sample schematic: mediocresaw.pdf (not complete! just to give you an idea how it should look like).