djoslin
projects media contact
8-bit Synth





     I played a lot of games, especially as a kid. I was conditioned over time to enjoy the sound of old retro games. When I bought an Arduino, which is an 8-bit microcontroller, I decided to make a synthesizer as my first project.
     This project was my first experience as far as hardware goes, I had only dealt with software on computers previously. I had, and still have, a strong desire to understand how these extremely complex devices work. An arduino is essentially a miniture computer on a board with no operating system, and is therefore a great new way for me to play around with programming. I have been working on this synthesizer for months off and on, occasionally adding to it when I grow tired of other projects.
     This is actually the fourth version of this synthesizer, as I have rewritten it from scratch several times. It has also been encased in many different things: a cardboard box, the case of a digital clock, a hollowed-out spanish book, and for now I have settled on tupperware.
     Anyway, down to the current specifics. My synthesizer is running at 16 megahertz, and has a tiny 2 kilobytes of RAM. I've got the synthesizer playing up to 10 sounds, or 'voices' at once, while being able to store up to 24 in memory. This was a huge feat compared to my earlier prototypes which were unable to even run one voice at a consistent rate.
     Just like in standard synthesizers, I built envelopes that support attack, decay, sustain, and release. And I have low frequency oscillators, with support for many different waveforms.
     In order to control these envelopes and LFOs, and the oscillators (noises) themselves, I had to develop software on my PC. Basically, with more things able to control, and more numbers you that can be adjusted, many more unique sounds can be created. This software is able to adjust the pitch and volume of wave forms using a set number or using the envelopes / LFOs.
     In order to control these envelopes and LFOs, and the oscillators (noises) themselves, I had to develop software on my PC. Basically, with more things able to control, and more numbers you that can be adjusted, many more unique sounds can be created. This software is able to adjust the pitch and volume of wave forms using a set number or using the envelopes / LFOs.
     My software is also able to play MIDI files. And therefore I've spent way too much time playing tons of random video game music. It's really fun to open songs I've never heard and try to tune the instruments such a way to make the songs sound good again.
     After MIDI file support, the next logical step was MIDI input. It not only allows that, but by using a free program called LoopBe1, the synthesizer can be controlled using a program like FL Studio.
     I'm almost finished with this project as far as prototyping goes. The only thing I'd like to learn more about is hardware analog filtering. I have a low-pass filter built in, but I'd like to build a stronger one. It would be nice to have a couple filters that were controllable by the envelopes/LFOs/twisty knobs (potentiometers). During my experimentation, I seem to have built a distortion filter that is controllable by the twisty knob that is visible in the pictures. Since I was trying to build a stronger low-pass filter, the distortion was quite the surprise.
So how does it sound?



Keep in mind that the connections are not all soldered yet, and that each song was recorded at different times while the synth was evolving.

When it is playing through the speaker instead of the headphone jack, it is pretty damn loud thanks to the amplifier I soldered into it. And the tupperware container gives it a little reverb.
     So in conclusion, I'm pretty happy with where this is going. Once I clean up the sound a little with filtering, I think it will be pretty awesome. Who knows, maybe I'll be able to sell a couple if anyone is interested. If nothing else I can provide instructions and code in the future. I plan on updating this project, so stay tuned.



<< back to projects