Introduction: The SENSONIZER, a DIY Synthesizer

About: I am student NMCT at Howest Kortrijk.

This is the sensonizer, the synthesizer based on sensors.

In a nutshell

It's basically a synthesizer keyboard, but instead of piano keys and knobs, sliders and buttons to control it. I used pressure and position sensors to replace the piano keys, and a gyroscope to replace the sliders.

It's a school project for my second semester NMCT,

I wont go into detail on the code that I wrote, you can find more information on this github repository:

https://github.com/RobbeBrandse/Project1

How to use it First

Plug in a speaker and a headphone, and wait for it to start up.
That's all you have to do! Just touch the strip and you can start jamming music right away!

If you tilt the device while playing it'll add an modulation effect.

The default sound is a piano, if you don't want to hear a piano, you can type in the IP-adress on the LCD into your browser. This will take you to a website where you can change the instrument and some basic controls.

When you register and login to your account, it'll keep track of when you play and display it for you.

Step 1: Bill of Materials

The total cost of the project for me was 147,81 €. I did have to ship some components from America, so the cost may vary depending on where you live.

Used parts

  • Raspberry pi 3
  • Arduino Leonardo
  • Breadbords (for testing)
  • Pcb for final layout of the components
  • Lots of wires (breadbord friendly)
  • MPU-9250 Breakout (gyroscope)
  • Pressure sensor
  • Position sensor
  • 16x2 LCD
  • 1m x 1m x 90mm plywood

Used tools

  • Lazer cutter
  • Sandpaper / sander
  • Drill
  • Milling machine

For a more detailed overview of the parts and where to buy them, I made a pdf.
(the pages are meant to be held next to each other)

Step 2: The Housing

For the housing of the electronics I used 9mm thick plywood.

I let the laser cutter do most of the heavy lifting for me, the shapes where already perfect and even made some holes where the screws would go.

I cut out a space in the back, so it's possible to reach raspberry pi and plug in the power cable and a speaker or headphone.

I used a milling machine to get the depth of the wood right, so that the LCD would sit level in the wood.

I also cut out a space at the top, so the wires from the sensors could get inside the housing. And I later covered up that space so you can't see inside the housing.

After laser cutting the wood I only had to use some sandpaper to remove the burned edges from the laser. Predrill the holes and sink them in. After that all that’s left is screwing all the pieces together, I used a drill for this.

I also cut out a space at the top, so the wires from the sensors could get inside the housing. And I later covered up that space so you can't see inside the housing.

After everything was done I added the logo and a bit of visual flair to make it clear which note you are playing.

I also made a cardboard box, so I could safely transport it without having to worry to much about damaging it. I include the schematic for this too.

Step 3: Fritzing

First I build a breadboard version of the circuit to make sure everything works properly. After making sure everything works properly I used a pcb and soldered pins to it to I could easily connect and disconnect wires if needed. I was able to connect everything with just tin an avoid using jumper cables.

Don’t let the amount of cables confuse you, I had to add a lot of extenders so I could properly open it up.

I used an micro usb cable to connect the left corner usb port of the raspberry pi, but you cant see that in the schematics.

Afterwards i added some ducktape to the joints to make sure they wouldn't disconnect.

Step 4: Normalised Database

I made a database to store user data. And keep track when a user was playing.

I hashed the users passwords using md5 hash, so their accounts are protected.

In order for the database to track the playtime of a user they have to log in via the website first.

Originally I planned on making it possible for users to make their own effect settings and recordings, but I didn’t end up having enough time for those features (that’s why thery are grey).

Step 5: Writing the Code

To write the code i used these programs:

  • Pycharm: to program the back-end in python
  • Visual Studio Code: to program the front-end in HTML, CSS an Javascript
  • Arduino IDE: to write the Arduino code
  • MySQL Workbench: to make the database

I wont go into detail here on how I wrote the code, you can find that information on my Github repository i made for this project: https://github.com/RobbeBrandse/Project1.