DIY Arduino String Synth With Analogue Filter
***Updates at bottom of page - Easy to read Schematics etc****
Just like the Arduino Drum Machine, this is another build based on the amazing work of Jan Ostman, who is generous enough to share the code over on his website;
***Old website***
***New Website***
The suggested $3 dollar donation is quite simply amazing value for money, so if you use this, don't forget to tip!
On top of Jan's work, I've added a 12db filter with resonance (based on this design) to add a bit more sound sculpting to the synth. Filters are a massive part of synthesis to me (mainly because I can't play but can quite happily turn knob) and an analogue filter really adds to the warmth 'wobble' of the synth.
The filter has a separate on/off switch and bypass switch. Looking back it would've been better to build that into one switch, and also to move the output further to the right. Ahhh the power of hindsight.
I wanted the synth to look very Minimoog-ish or Prophet 5-ish, which I think I achieved, but building the case was by far and away the hardest part of the build (due to my own inexperience/stupidity).
Total build time was spread over 3 months and probably took about 20 hours (most of that time was spent staring at nothing trying to think what to do next). If I were to make it again I think I could get it down to about ten hours, if luck was on my side.
Here's a quick video of it in action;
Parts
The total cost of parts came to about €60, with most of that going on the MIDITECH midi keyboard. I used a cheap Chinese Arduino Nano clone to keep the cost down (around €2), then a few pots and resistors etc again from China. Also high quality plywood from Modulor for €2.90 (I think it was 6.5cmx250x500). The perspex was also from Modulor. Obviously if you don't already own wood stain and glue etc your cost will be significantly higher. For the panels I used my banggood laser engraver, which I think adds massively to the look of the synth. If you don't have one of these you could use a label printer.
Electronics
Jan's website documents the build process pretty well, so go check there for schematics etc. I did manage to draw up the wiring diagram which may save somebody a bit of time when hooking up the keys (find it somewhere below).
I started by taking apart the MIDITECH and unplugging the ribbon cables;
You won't need this part any longer so remove it to save some space;
I soldered the Arduino Nano to some perfboard to make it easier to handle (and to screw down to the chassis later on).
Eventually I figured out what went where and soldered it all down and covered the connectors with heat-shrink. You'll probably save a bit of time if you use this;
That's the majority of the synth finished! From the nano's output I added a bypass switch and then the 12db filter. I forgot to take any pictures of that though until it was already attached - sorry! But it all fitted onto another small perf-board;
The Case
I started by cutting some cheap board and securing the key-bed onto it. This gave me an idea of the final size of the synth to which I based my design around. I kept the bottom plastic of the MIDITECH (always capitals!) keyboard because it would secure down easier (using it's screw holes) and also because it would probably be a pain to try and re-construct it any other way. I also added some 'feet' at this point.
Feet...
With bottom panel size known, I sketched out the rest of the case...
The side panels;
All the parts have been cut here (the other bit of perspex with the dials on was temporary just to make sure it was still working);
Notice the pencil with my name written on it. That's mine it is.
Then using my old friend Ponal Wood glue I started sticking everything together (including fingers, clothes and everything else);
Then it was time to design the front panel and the laser engrave it onto perspex. The smell was awful (and toxic)... I stayed in the room long enough to feel faint. I did sleep well that night though.
Running a test on card;
Burn!
After it was engraved I filled it in with white acrylic paint;
Once this has dried you can now put it all together. For extra security I also used some hot glue to do this (and it's not fallen apart yet)
I added screws to secure the perspex panel but can't find a picture of that. But I'm sure you can imagine what it looks like.
Conclusion
I've been learning C for a while, but it's a massive mountain to climb. From here though I've bought the following book;
When I eventually get around to reading it, it should give me a better idea of what's going on in the code, then I'd like to attempt a version 2 using maybe an Arduino Due and add some more controls.
Thanks!
****UPDATE****
SIMPLIFIED SCHEMATICS
Below is a simplified schematic for the string synth... Sorry it's not the best quality I'll try and take a better picture later, but hopefully this should be of help those of you new to schematics that want to try and build this synth.
The connections where it says 'goes to keyboard', you can see elsewhere in this blog for another detailed diagram of where and how these can be wired up to the keys. As for the potentiometers, I *think* I've drawn them the correct way (if you make this and the pots are working the opposite as you'd expect, swap around the ground and 5v connections on each pot). If the drawing is incorrect, let me know and I'll re-do it. Even if this version is wrong, nothing will break & it'll still work OK (just the pots will work in reverse).
You can see where the pots 5volt and ground connections need to go in the diagram, I didn't join them in the picture because the wires would start overlapping and become confusing. It's pretty obvious what to do though.
Also drawn is the audio out headphone socket, with the positive voltage/audio signal coming from the output D11, which then goes through the resister/capacitor (which acts as a filter to reduce some of the noise from the Arduino). The other side of the audio goes to the ground signal. If you don't know how to wire up a audio jack, maybe google 'audio jack pin-out' or 'audio socket wiring diagram'.
If you plan on adding the analogue filter, you'd leave off the audio jack and have the previously mention positive wire go into the input of the filter. You'll have to learn to read the schematic for that I'm afraid, as I couldn't really simplify it without it becoming more complicated than a normal schematic. Give me a shout if you get stuck though.
Good luck!
P.S
I'll draw a simplified schematic for the Arduino drum machine soon.
...And if you were struggling to figure out how to wire up the Pots for the filter, I've drawn out a simple picture showing how (I've had to do this whilst away traveling, so it's partly drawn from memory but I'm pretty certain it's correct)...
Obviously the drawing only shows how the pots are wired and not the full schematic. Go look at the proper schematic for the rest of the plans, but this will give you a good idea of how to wire up the pots.
Powering the filter from a 9v Battery will give it it a bit more 'oomph', so if you'd like to do that, the below illustration will give you an idea. Further, should you want an LED indicator showing if the filter is switched on or not, see the chequered box;
I only had SPDT switches available when I built the synth, so that's why there's separate switches for both the on/off & bypass, but you could easily just use one 2PDT to save space. You could even add an audio in jack at the start of the filter to process other audio.
Good luck!
Good luck!
***UPDATE Arduino Drum Machine****
Simplified Schematic
Ok, so this 'simplified' schematic might not actually make things any simpler! But some people have asked for it, so maybe it'll help clear somethings up a little bit - especially how to wire up the audio output and pots/switches. This was drawn from memory so I hope it's correct - give me a shout if not and I'll update (the pots might work in reverse, but they'll still work). I'd also urge you to look at the schematic on Jan Ostman's website for more help;https://janostman.wordpress.com/the-o2-source-code/
Thanks!