
The ArduinoSynth is my first attempt at microcontroller programming( and pretty much any coding at all beyond a little html). It took me a bit to get started but it's turning out to be a fun way to learn the language.
So far it's a 12-note monophonic synth with transposition selection via one 10K pot. I'm using a gutted toy keyboard for the switches and a simple low pass filter to smooth the output a bit. Here's the schematic:

Features I'd like to add:
- Another octave (maybe add a transpose switch on each of the next octave, then they can share pins with the first)
- Last note hit priority
- Portamento (note-slide)
- Real sine wave out (no external filter, please)
- Polyphony (I had it working badly, need better math)
- any real keyboard feature in existence(or not) attack, decay, waveform, vibrato, etc.
Source can be found here.
Audio sample here
Sample with no LPF here

Just wanted to let you know that I caught this project on the MAKE blog last week and I'm very interested to see how it goes. I'm looking forward to building it myself once I have time to hunt down a cast-off keyboard or buy a handful of momentary switches. Keep up the good work!
I have my arduino only 2 weeks now and have to learn coding from scratch.
I get loads of ideas that will take ages to imnplement, you may want to cooperate? I just saw your sketch.
Here's your oscillator:
for (i=0; i<= cycles; i++){ // play note for t ms
digitalWrite(speakerOut, HIGH);
delayMicroseconds(hperiod);
digitalWrite(speakerOut, LOW);
delayMicroseconds(hperiod - 1);
On the fly PWM implementation idea: Declare PulsWidth parameter
Shorten the HIGH period , lengthen the LOW period by (PulsWidth)
Have PulsWidth read from analogPin
Make PulsWidth LFO from "Fading" sketch: http://www.arduino.cc/en/Tutorial/Fading
Well, I have some pretty clear ideas on drawing waveforms into an array with analogIn , and reading them as a sample. Maybe I'll post them at adruino.cc . Probably.
I hope you're still into arduino....
your crazy well focused, learn more maths and phyisics about OP AMPS, FILTERS, ETC, use the same filter but adding a op amp in "voltage folower" configuration, i t s nescesary to amplify a good signal and not draw a messy signal from arduino currents
Вступительные экзамены 2009