Close
0%
0%

Moon Germs

A one-handed portable synthesizer from the future

Similar projects worth following
A fun, pocket-sized synthesizer that uses an IR proximity sensor to modulate frequency. Using a combination of buttons and triggers, the device can produce several different waveforms and effects. An 8x8 LED matrix shows useful and colorful information while in use. I wanted to explore digital synthesis using the Teensy Audio shield and experiment with a unique way of interacting with a synthesizer with minimal buttons/knobs, all while designing a device with an interesting and retro form factor. Check out some demo videos here: https://youtu.be/qyO1_fC_Kus and https://youtu.be/aUcpQy3lOxo

Please see my Github page for full documentation and details of the project:https://github.com/friedpies/moon-germs

Moon Germs

A hand-held, battery powered digital synthesizer based on the Teensy 3.2 and Audio Shield by www.pjrc.com

Updates 10/21/18

After making it into the semi-finals for the 2018 Hackaday challenge, I thought it would be fun to add some fun new features before submitting this project to the finals. In the past couple of days I've built a desktop app using Processing that connects to the device and allows you to update parameters in real time. I restructured the synth engine to include a LowPass filter and LFO. It was a pretty ambitious goal for me and I still have a lot of bugs to work out, but I have an MVP that works pretty well and looks pretty awesome too. See below for details about the app.

About the Device

A fun, pocket-sized synthesizer that uses an IR proximity sensor to modulate frequency. Using a combination of buttons and triggers, the device can produce several different waveforms and effects. An 8x8 LED matrix shows useful and colorful information while in use. Currently finishing up Rev 1.0

I wanted to explore digital synthesis using the Teensy Audio shield and experiment with a unique way of interacting with a synthesizer with minimal buttons/knobs, all while designing a device with an interesting and cyberpunk-y form factor. Although I'm a lifelong musician, I never really explored synthesis before and thought this would be a great way to dive in. This has been an awesome learning experience and has gotten me hooked! I'm excited to keep this up.


Traditional synthesizers can be intimidating to approach with all of their knobs, sliders and weird nomenclature, and difficult for a beginner to understand. This project aims to provide a fun and addicting way to mess around with a couple different waveforms and explore creative and strange musical ideas. With only 4 buttons, and 2 analog inputs, interacting with the Moon Germs synthesizer and creating sound is really simple. Simply press down the "play" button and move your hand around relative to the IR sensor. Cycle through various waveforms with button 2, and switch octaves with buttons 3 & 4. For a "fatter" sound, apply force to the trigger to detune oscillator 2. The 8x8 display shows what type of waveform you're hearing, and dynamically speeds up or slows down with pitch.

When you're ready to take a deeper dive into the behind-the-scenes of synthesis, connect the device to the desktop app to adjust and tweak various parameters in a non-intimidating environment. Once connected, the app auto-loads the device's stored parameters according to their bank number. In addition to waveform selection, the adjustable parameters include oscillator volumes, detune amount, filter On/Off, cutoff, resonance, LFO on/off, rate, and amount. Additionally there is a trigger assignment option which allows the trigger to dynamic adjust parameters in real-time outside of the app. Currently, parameter adjustments will be saved on the device after disconnect, but will reset after a power cycle.

The entire design was made using open/free software and can be rebuilt with accessible tools and open electronics modules (see BOM).


Video Demos

Submission Video

Demo 1

Demo 2


Usage

The Moon Germs' synthesis engine is shown in the photo below. Pressing down button 1 activates the oscillators while their frequency is determined by the IR sensor. Button 2 cycles through 4 waveforms (saw, square, reverse saw, and triangle). Buttons 3 & 4 shift octaves up & down respectively. The spring loaded trigger applies a detune to oscillator 2. In standalone mode (not connected to the app), the filter and LFO are turned OFF for simplicity.

Desktop App

Connecting the device to the desktop app allows the user to adjust various parameters...

Read more »

moon-germs-master.zip

Zip file of entire GitHub repository as of 10/22/18. Contains all MCAD, ECAD, and code as well as readmes, build instructions, etc.

Zip Archive - 32.37 MB - 10/22/2018 at 08:41

Download

View all 21 components

  • Transferred all docs over to Hackaday Page

    Kenneth Marut10/22/2018 at 21:03 0 comments

    Just merged most of the full writeup detail from Github to the Hackaday project page. Hopefully this doesn't make the page too cluttered!

  • Pheww

    Kenneth Marut10/22/2018 at 09:43 0 comments

    Finished up all documentation and the submission video. It's been a great sprint over these past couple days trying to bring this project to a good spot. I had a lot of fun, but now I should probably sleep. Best of luck to everyone in the finals!

  • Workin' hard

    Kenneth Marut10/22/2018 at 07:09 0 comments

    Hey everyone!

    With the deadline being tomorrow for the Hackaday Prize Finals, I've been putting the final touches on my submission. Over the past couple days, I've buckled down and cranked out a cool desktop app that I'm happy with. I developed it using Processing 3, which I've grown very fond of. The app connects to the device over USB and allows you to adjust and tweak the preset sounds stored in the 4 banks. It also opens up the ability to play with the low pass filter and LFO, which are disabled in standalone mode. The app affects the device in real-time, so you can hear the sound adjustments immediately. I'll be uploading a video showing how it works in a little bit.

    Although I could've just created a bare-bones UI, I decided to put quite a bit of time and effort into the aesthetics. I really wanted to compliment the cyber-punkyness of the device and give the whole system a coherent theme. I also seriously needed a break from coding every now and then. I'm pretty happy with my pixelated loading screen (which was definitely inspired by Teenage Engineering's website), also shoutout to my cousin Justin for the translation.

    That being said, the app still needs some work and is far from perfect. I have a long list of to-dos and cleanup which I'll hopefully get to soon. I'm still lacking a permanent parameter saving feature as the device currently looses all changes on reset (I was thinking of using the built-in SD slot on the audio shield for this). I also want to spend some time rethinking the animations on the 8x8 display. I would really like them to be more dynamic and to be more reactive to everything that's going on. I've had some ideas, but 64 pixels isn't all that much to work with (I guess that's what makes it fun though).

  • Finalist!

    Kenneth Marut10/17/2018 at 14:37 0 comments

    Super excited to have made it through to the finals! I'm really proud and honored, thanks to the judges for liking my work!

    With that being said, the deadline for the finalist submissions is less than a week away, but I'm going to see if I can work in a couple more interesting features before then. As I've been thinking more and more about this project, I've really started to get a better feel for what this instrument does best. I've realized that as a monophonic, drone-y noise machine, this synthesizer sounds best in the lower registers. The de-tune feature really fattens up the sound and really reminds me of this track from the Blade Runner soundtrack. In the next couple days I'm going to see what I can do to widen the preset sounds even more and make them more dynamic. I'm also going to decrease the range of the instrument so that it focuses more in the lower range. 

    I'm going to take a shot at building a simple desktop app to build your own custom sounds with minimal knobs/sliders. I want the entire experience of using the device to be straightforward and easy to use, but still very dynamic and fun!

     We'll see how far I get...

  • Finishing up

    Kenneth Marut10/07/2018 at 17:30 0 comments

    I'm currently in the final stages of completing the assembly and am now working on some documentation so I can submit this thing before tomorrow! I'm pretty happy with the results so far, and will be messing around with it all afternoon in an attempt to create something musical. I've updated the project's github page with a ton of information, photos, and files (https://github.com/friedpies/moon-germs), and will be uploading some more detailed photos and videos later today.

    The final model!

    The whole assembly

    Thoughts and Ideas:

    As I've been finishing up this version, I've had a couple thoughts and ideas about where to go from here. Although the device is fun to play with and easy to use, its current feature set is a little bit limited (which is okay). I am exploring the idea of creating a simple desktop app which can interface with the device over USB to allow deeper exploration into sound creation. The app would provide the user with a simple GUI with some knobs and sliders, and a way to preview and save sounds. The GUI could also have a graphical representation of the 8x8 matrix to allow the user to "draw" their own images to be associated with each sound. The saved sounds and 8x8 image would be then stored on the device. Below is a quick concept sketch of the app:

  • PCBs and more testing

    Kenneth Marut10/04/2018 at 19:33 0 comments

    The PCB breakouts for the Teensy finally arrived and I proceeded to hook everything up, so far so good! Currently working on some of clean up and finalizing the code for the first prototype. 


  • More printing + coding

    Kenneth Marut09/25/2018 at 21:37 0 comments

    After a bit of fiddling around with my Wanhao D7 resin printer, I've finally settled on some enclosure prints that I'm happy with. Printing with resin has its own set of challenges that can be tricky to work through, especially with larger parts. There's a good bit of post-processing involved once the parts come off the machine (removing supports, UV curing, sanding, drilling) and it can be a pain.

    In the meantime I've also been working pretty hard on writing code for the Teensy. It's been pretty interesting playing with the audio shield and I'm happy with the results so far. The basic synth I've designed has 2 main oscillators, a filter and an envelope (these are configurable via code, so I can easily change it up later on if I want to). I've mapped the IR sensor to the oscillators' frequency and also added functionality for octave shifting and a low-pass filter that can be adjusted with the linear pot trigger. I've also been manually drawing out frame-by-frame dynamic animations for the 8x8 dot matrix display, and they're looking pretty cool so far!

    I'll be traveling for the next couple of days for a wedding so I'm trying to get as much as possible done before that. Hopefully when I get home my PCB's will be waiting for me in the mailbox!

    Fitting the components in place:

    Company:

    Synth block diagram (subject to change):

  • Resin Printing

    Kenneth Marut09/22/2018 at 16:08 0 comments

    Meanwhile...

  • Finishing up enclosure design and moving on to some coding

    Kenneth Marut09/19/2018 at 23:03 0 comments

    I've been trying to finish up the housing over the past 2 days. I think I'm pretty close to being done. Currently printing out a couple quick prototypes on my FDM machine to test fit everything and if everything looks good I'll send it to the resin printer.

    I've started laying out the Arduino code and have been playing with a couple of the audio shield's features. I'm not entirely set on what I want each button to do, but hopefully after a bit of messing around it'll start to become a little more obvious.

    In the meantime, check out some renderings I did of the enclosure:

  • 1-Day PCB design, hope it works...

    Kenneth Marut09/17/2018 at 15:48 0 comments

    I was able to knock out the schematic and layout for the PCB last night and this morning. I used the Fusion 360 + Eagle integration to generate a pretty cool board outline and was able to seamlessly work between the two CAD programs. Routing the board was a little tricky, but ultimately not that bad. I sent off the Gerber files to Seeed for manufacturing (I had a $1 coupon for 3 PCBs, making the total cost $18 including shipping, incredibly cheap!). Let's see how fast they can turn this around.

    The "triple stack" of PCBs

View all 14 project logs

  • 1
    Gather Parts:
    • Obtain all off-the-shelf hardware listed above
    • 3D print all plastic components, 0.1mm to 0.15mm resolution for FDM printers with a 30% infill should be fine, 0.03mm - 0.05mm for resin printers
    • Cut display cover using 0.06" clear acrylic with a laser or die-cutter (optional)
    • Breakout board can be manufactured with PCB manufacturer of your choice (I use seeedstudio)
  • 2
    Assemble/Solder Electronics:
    • Solder Teensy 3.2 and audio shield using headers with Teensy ON TOP of audio shield, then solder Teensy+Audio shield to breakout board, clip headers with flush cutters: 
    • Assemble all electronics modules according to their documentation, DO NOT attach any headers. (Visit product links for assembly instructions)
    • Solder all electronic components to breakout board according to the image below, refer to silkscreen for details: 
  • 3
    Upload Firmware to Teensy 3.2
    • Install Arduino IDE from www.arduino.cc
    • Install Teensy loader software from https://www.pjrc.com/teensy/loader.html
    • Download and open Moon Germs firmware with Arduino IDE
    • Install necessary Arduino libraries listed at the top of the moonGerms.ino file
    • Connect Teensy board to computer with a micro-USB cable and upload moonGerms.ino, the 8x8 display should flash with a bootup Animation if the upload was successful

View all 6 instructions

Enjoy this project?

Share

Discussions

freezedream wrote 09/20/2018 at 04:03 point

Looks very cool! I'm keen to hear what kind of sounds it will make.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates