Introduction: MIDI Sound Palette

About: Musician, Educator, Music Tech Nerd!

This project started as a "Stone Soup" instrument that was designed around all of the extra sensors, switches, and other parts lying in my parts bin. The instrument is based around the MIDI_Controller.h Library and the TouchSense capabilities that the Teensy 3.2 board offers.

Here is a list of what I used:

Teensy 3.2 - Link

(5) 10k rotary potentiometers - Link

(2) 10k sliding potentiometers - Link

(5) LED Pushbuttons - Link

10k Rotary Softpot Touch potentiometer - Link

10k 200mm Softpot Touch Potentiometer - Link

(2) Push Buttons - Link

(3) Piezo Drum Senors - Link

(6) 5v Lasers - Link

(6) Photoresistors - Link

Resistors (10K)

Copper Tape

Soldering Tools

Step 1: Design

Any design software can be used if you are more comfortable with another application. I like AI so I use it.
I've included the PDF to my design but if you have different parts in your bin then use the dimensions for those!

Get artsy with it. I included a little sound wave of the introduction to one of my favorite pieces of music!

Set it up for your local Laser Printer: I use 1px for raster and 0.1px for vector.

Step 2: Laser Cut

I used some 3mm MDF board for this because I love the fidelity that cutting and engraving on MDF offers. The entire piece is 18"x24" which fits nicely in the Epilog Helix in my makerspace.

Note: The bottom piece is the same dimensions as the top but without any cutouts.

Step 3: Wiring (Part A)

I hope you find soldering and wiring relaxing because there is a bit of it for this project. I have split the tasks into three separate parts because I suggest soldering the pins you'll need on the back side of the Teensy before it gets too crowded to maneuver. Fritzing doesn't have the Teensy 3.2 or the reverse side of the Teensy boards so I apologize for the lack of documentation for that. If you need a primer on button & potentiometer wiring you might like to view some of the tutorials on the Arduino website.

The TouchSense Pins are labeled in the documentation supplied by PJRC and the code tells you which pins to connect them to. I am in love with the TouchSense pins: just run a single wire from the copper tape to the pins on the Teensy.

I also wired up the LED buttons at this time to the Vin output (5v) and GND.

This project did well with a lot of testing along the way, so be sure to test and troubleshoot often!

Step 4: Wiring (Part B)

In this step I wired the potentiometers to the analog pins and push buttons to the digital pins.

*check the .ino file for pin mapping*

The pots get 5v from the Vin pin, and connect the all the ground terminals together in (hopefully) a more graceful way than I did.

You might want to use a Midi Monitor to check and see if you wired the pots the correct way as I wired them backwards and they read high-low instead of low-high.

With any luck you'll have your potentiometers twisting and sliding ready to adjust whatever you map them to!

The buttons are simple! One terminal wires to the input pin and the ground get connected to the mess of ground wires (if you wire it like I did) gathering into a nest.

The Touch potentiometers need a 10k pulldown resistor! For more information on this check out the diagram here!

Step 5: Wiring (Part C)

Laser Time!

Test the Laser & photoresistor circuit before installing them. I got the kinks out doing a Laserharp project.


I got fed up with not having any soldering room and used a perfboard to pre-wire up the resistor circuit and then plopped it into place.

Once they are wired, use some hot glue to secure them into the hole you drilled out. It doesn't matter too much if they are perfectly placed because we will hide them with he printed 3-D box later. Leave enough wire sticking out so that you can bend them when you have the lasers focused.

Wire up the lasers to the Vin(5v) wires you used for the LED buttons and potentiometers.

Be careful not to short out the lasers, the diodes are fragile(Cheap lasers, who knew!). Don't let the 5v and GND cross.

Almost there!
Pop the lasers out through to the top and, while the power is on, hot glue them into place while aiming them in the direction of their corresponding photoresistor.

Once they are all sending MIDI data glue up the box halves (I cut mine down a bit) secure them over the lasers and resistors(This is done to keep it looking clean and because the photoresistors like to be isolated from any ambient light!).

Step 6: Drum Sensors

I had gotten some experience working with these drum sensors in two separate projects here, and here. For this project I found that I needed a lower value resistor in order for it to respond to my finger tap instead of a mallet. I ended up getting good use out of some 470K Ohm resistors instead of the 1M Ohm resistors a used previously. Test it out to see what works for you before you solder it all up.

These sensors don't connect to the GND. Use the Redwire for Vin(5v) and the Black wire connects to the corresponding digital input pin on the Teensy.

Step 7: Code

Each module on the board is set to a different MIDI channel so in your DAW you can assign the lasers to one instrument and the LED buttons to another! I encourage you to fiddle around with it to make it suit your needs.
When you are assigning the buttons use the format listed in the code and you will be good to go.

Step 8: Finishing Touches

Add you own touch!
I took inspiration from a painters palette for the physical design so I went a sep further and channeled my inner Jackson Pollock to put some colors on the MDF. Enjoy the time lapse!

Step 9: Jam!

I use Ableton for my MIDI stuff, any DAW would work in some capacity. Play it by yourself, or with friends! Thanks for reading through!

Epilog X Contest

Participated in the
Epilog X Contest