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

  • Eagle -> Fusion 360 + More

    Kenneth Marut02/06/2019 at 23:46 0 comments

    I was pretty happy with how my last PCB prototype turned out and was able to test out the hardware with much success. Rather than stick with that design, I decided to rethink the layout and hardware interface and have started on another revision of the board (because it's fun I guess?)

    I've been focusing a lot more on the mechanical aspects of the PCB this time and have been experimenting with some clever ways of mounting switches/pots etc to the board itself. I've been making a point to assign 3D packages in Eagle and pushing them to Fusion 360 to sanity check as I go, which has been a really interesting workflow that I've been happy with. I've been a Fusion 360 user for a while now, and have been super impressed with the Eagle integration.

    I also thought I'd take a shot at moving away from using the Teensy 3.2 dev board and placing the MCU directly. As I'm not an EE by training, this is pretty ambitious for me and a pretty fun learning experience. Here's a screenshot of the board so far. Still have a lot to do, and will probably be iterating on this for a bit until I'm happy with component placement. 

    -K

  • So far so good

    Kenneth Marut01/24/2019 at 01:39 0 comments

    First prototype of the PCB with components reflowed in my Toast-R. So far so good!

  • Puttin' a PCB together

    Kenneth Marut01/10/2019 at 20:59 0 comments

    I finally finished up designing a board with all components (minus the Teensy 3.2) built in. Just sent it out to OSHpark for manufacture. This isn't the final shape I'm going for and I expect there to be a couple issues with this board, but hoping for the best!

  • Back into it

    Kenneth Marut12/13/2018 at 22:00 0 comments

    It's been a little while and I've been staying pretty busy. For anyone who's interested in this project, I'm getting started on a V2. I'll be moving away from using modules and putting everything onto a single board. I'll also be doing some mechanical redesign and rethinking some of the UI. Had some pretty cool ideas over the past couple of months on making this thing really cool!

    Stay tuned!

  • 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. 


View all 18 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

Nathan Stanley 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