Introduction: Designing and Building an Synthesizer With Meeblip and Arduino, Added Videos!
Grand Prize in the
DIY Soundhack Contest
Second Prize in the
First Prize in the
Battery Powered Contest
The previous iteration of this Instructable did not feature any sound or video of the actual synth, which is quite essential to see if you want to build something! Other changes include some reworked text, in an effort to make the project more clear for anyone trying to build it.
I've entered this Instructable in a few contests, so if you like it, please vote for me by pressing the 'vote' button on the upper right corner!
A great video where Stefany June plays the instrument and I talk about it for a bit.
A quick video of a jam I did together with Roel playing electric guitar
A quick video of a jam I did with the synthesizer in Jasper's electronic setup
This instructable shows how I made my prototype and describes how you could make your own. It won't go into super-deep detail, but if want to build it and you need some clarification or help with the code, please don't hesitate to contact me!
More details can be found in the report I wrote.
This document and all included research and illustrations, are covered by a Creative Commons Attribution-ShareAlike 3.0 Unported License. The hardware designs, schematics and code are provided under GPL v3. This means that you can rebuild and improve on this project as you wish, just let me an Meeblip know!
If you want to know more about me, check me out at http://www.arvidjense.com
Step 1: Concept and Design
So, synthesizers are pretty cool instruments, making the sounds for the most of the music I listen to right now. Yet they are quite limited in where and how they can be used. For instance, I can play my guitar at home, but I could take it to the park or to a friend for a quick jam-session. Not so simple for a synth: I'd have to plug it out of my studio setup, take a midi keyboard or laptop and just hope the place where I'm going has the right connections to plug in again.*
Another point where I feel synthesizers are performing worse than traditional instruments, is in their connection to the user. Where I can feel the vibrations of my guitar resonating through my hands and body, the sound of a synthesizer comes from a speaker a few meters away from me. Similar on the control interface; A guitar is quite clear in the fact that if you pluck a string,a sound comes out. But for a synthesizer you will have to learn the function of dozens of knobs which often have several layers of functionality.
On the other hand the palette of different sounds coming from a synthesizer is bigger than that of most traditional instruments. Also the possibilities for programming the notes allow for things not possible on traditional instruments. So why choose one or the other? I wanted to create a synthesizer which has the flexibility and direct connection of a traditional instrument.
As I've done this project for Meeblip, one thing was certain, I would use a Meeblip Micro as the sonic centerpiece. Other than that, everything was still open. Would it become a drumbox or rather a guitar-like synth? After looking at a lot of different synthesizers, reading up on synthesizer design literature and sketching lot of variations, I came up with something.
After making a lot of prototypes of all the individual pieces (interface, electronics, sequencer etc) I finally found the 'final form' which is made in the next steps. All functions are directly accessible through the knobs and switches on the interface The internal speaker allows the instrument itself to vibrate, which, especially when you place the instrument in your lap, help you feel what your playing. The instrument is controlled through a circular sequencers, in which you set the notes form a range of -12 to +12 semitones from a center note set by the base knob.
My design is meant to address the issues I have with synthesizers in a few ways. Most obvious is the fact that it runs on battery power and includes a decent hifi amplifier and speaker, allowing it to be used anywhere. By using prettily grained wood, the instrument looks a lot more delicate than if I'd used plastic. This also references its appearance more towards acoustic instruments, which are usually made of wood. Last thing I did is make the interface as direct as possible. It didn't need to be intuitive, (who makes great music on a guitar the first time (s)he picks it up) but it does need to be reliable and consistent, so you can really learn the instrument. (Please discuss whether or not you feel like these points are valid!)
*Companies like Korg and Casio did make portable synthesizers running on batteries and including a speaker, but these are, at least to me, seen more as toys than as serious musical instruments; Their plastic encasing doesn't really place it in the same line as for instance an acoustic guitar or a Moog. While the small portable synths often sound great amplified, their raw sound is nearly always weak and I've never seen them used in a song.
Step 2: Materials, Tools and Budget
Things to buy:
Price (total) Item
€ 50,00 1 x Meeblip Micro
€ 20,00 1 x Arduino Leonardonote: most other Arduinos could do, but would need some modifications in the code
€ 10,00 1 x Cheap USB speakers note: these are all really similar, I got mine at Saturn
€ 15,00 1 x 250x500x2mm model airplane beech plywood note: my laser-cutting files will only work for 2mm wood, but they could be modified if needed
€ 30,00 1 x 30minutes of laser-cutting note: this could be free if you have a fablab near you or it could be hugely more expensive if you have to rely on an online laser-cutting service
€ 18,00 18 x Potentiometers (10K)
€ 18,00 18 x Knobs
€ 3,90 6 x Rocker switches
€ 4,00 2 x Arcade buttons modified, by taking out the locking mechanism
€ 0,40 8 x LEDs (5mm yellow)
€ 10,00 1 x Protoboard
€ 0,30 3 x IC mounts
€ 0,10 2 x Resistor (10k)
€ 0,10 2 x Capacitor (10nF)
€ 0,50 1 x Headers male (about 30 bits)
€ 0,50 1 x Headers female (about 30 bits)
€ 2,00 2 x Multiplexers (4051)
€ 0,50 1 x Hex inverting Schmitt trigger (40106)
€ 1,00 1 x 2aa battery holder
€ 3,00 1 x USB step up converter
€ 1,00 1 x Rubber band (X shape)
€ 4,00 1 x Assorted Wires
€ 2,00 4 x Rubber feet
€ 8,00 2 x AA batteries (rechargable)
€ 202,30 Total
note: these prices are approximations, you might be able to get some parts cheaper or more expensive, but the ballpark cost will be about €200,-
Tools and consumables:
Step 3: Encasing
First step is to make the enclosure. My woodworking skills aren't that great, but my computer modelling skills are ok, so I chose to laser-cut it. As I couldn't find any laser-cutting facilities with a powerful machine, I didn't have much choice in wood; it had have a thickness of under 2mm. Most types of wood are quite weak and flexible at that thickness, so I had quite a search finding the right wood. I finally settled to a beech plywood for model airplanes of 'F1' quality.
The cutting files can be found in "Meeblip lasercut 2mm hairlines part1 [Converted].pdf" and "Meeblip lasercut 2mm hairlines part2 [Converted].pdf".
Before cutting the files, you should do some tests on the wood to determine the right intensity and speed. This is very important on the lettering, as a line too thin will be illegible from a distance, while too thick of a line will make the lines flow over. I used the same settings for the lines and letters, but for a next version I would increase the intensity on the lines, to make them a bit more pronounced. The pdf files show the cut lines in red, while the engraved lines are black
After everything is cut and engraved, it is time for assembly. Just put all the pieces, except for the front panel, together. Put some high strength (wood or instant) glue in the seams. (Be careful that you don't smudge the wood or leave large blobs of glue hanging on the outside.) Tie this together with some rubber bands and leave it overnight.
With the encasing glued, its time for some finishing. First, be sure there is no grease on the wood, if there is, remove it with any degreaser. Now, use some fine grit (>P150) to sand the wooden panels with the grain. Clean it again after this is finished and let it dry. Now you can put any number of layers of light stain on, I did only one. This protects the enclosure from accumulating dirt later on.
Step 4: Electronics
Getting the electronics right in this project is by far the most difficult task in this project. If you can make a PCB, go for it, as it will save a lot of time fixing minor errors. Otherwise, use a stripboard, as you won't need any special tools. You can follow the wiring as shown in the Fritzing file found in "Acoustic Meeblip Scheme.zip".
You should be very careful to do everything right the first time, as fixing mistakes is really time consuming. Often when I try to fix one broken wire, the process makes some other wires snap, causing me to spend an hour on what should've been a five minute repair. (I cursed a lot, and swore never to use stripboards again, so be warned!)
Things to note here are how I use two AA batteries with an step-up converter instead of a 9V battery. This is an advantage on multiple levels, AA batteries are cheaper and more common than 9V block and they also provide a a longer operating time on the right voltage.
Another things is the use of the Inverting Schmitt Trigger. This, in combination with the resistor and capacitor, causes the Manual buttons to avoid bouncing and causing a note to be triggered double. (This is complemented by a pieces of debouncing code on the Arduino.) Check out this page for more information.
Step 5: Firmware
Now all the wiring is done, we can go on with the code. The scheme shows how all the parts interact with each other. What we can see is that the Arduino does all the sequencing and note generation, while all the actual sound synthesis is left to the Meeblip.
The Arduino code is not very complex. It has two modes of operation, automatic and manual. The automatic mode works when the 'run' switch is flipped. Now it will walk through all the sequencer steps on an interval set by the 'tempo' knob. On each step it will set the multiplexers to the right knob and LED, of which the value will be translated in a MIDI note, which in turn is send to the Meeblip through Serial1. (Note: on other Arduinos than Leonardo, this might just be changed to Serial). The manual mode works similar, but works instantly (interrupts the processor), with the right button walking clockwise and the left button walking counter-clockwise.
(There is also a secret function where the position of the 'base' knob on startup will choose whether the sequencer uses a chromatic, diatonic or blues scale.)
The arduino code can be found in "Meeblip_Project0_4.zip". This can be uploaded as usual to the Arduino, but you will have a start-up time of a few seconds. I didn't want this, so I made an Arduino as ISP with another Arduino and used that to upload the code. Now the instrument starts instantly.
Some code was changed on the Meeblip as well. Most notably the bindings of the knobs, but it also checks the state of all the knobs on start-up and removes the use of midi CC. This causes that the value a knob is set to, is always the setting which you can hear. Using Arduino ISP and avrdude, I uploaded the firmware with the following command:
avrdude -P COM5 -b 19200 -c avrisp -p m32 -B 5 -U flash:w:meeblip-micro.hex -U lfuse:w:0xBF:m -U hfuse:w:0xD9:m -U eeprom:w:meeblip.eep
(More info on this can be found here)
Both micro.hex and micro.eep can be found in "Acoustic meeblip micro firmware.zip".
Step 6: Conclusion
As seen in the videos, I've been jamming with it a lot in the last months, and its a really fun instrument. It has a few issues (such as that it's hard to find the key your fellow musicians are playing in) but its really awesome to see how involved people get in playing it. There seems to come a sort of dialogue between instrument and musician which is really fun to hear and watch.
Most thanks to Peter Kirn and James Grahame of Create Digital Music and Meeblip for having me do this project! You guys rock!
If you've enjoyed this Instructable, please vote for me by pressing the 'vote' button on the upper right corner!
As I feel like this is just a first iteration on a completely new type of instrument, I've made a little to-do list. Things I would like to do for a next prototype:
* Use a PCB istead of a stripboard
* Easy battery access
* Open/Close system
* Make the push buttons dynamic sensitive (velocity or pressure)
* Add audio+midi out and midi (sync) in
* Higher quality amp+speaker
* Better ledgible interface lettering
* Battery level indication
* Integrate the Meeblip and Arduino on the PCB
* Make it solar/hand powered
* Make it waterproof
* Etc etc.
If anyone wants to collaborate on more instruments in this philosophy (portable drumcomputer anyone?) please don't hesitate to contact me!
We have a be nice policy.
Please be positive and constructive.