Dave Sharples made this awesome new instrument for his senior design project at University of Pennsylvania. Check out his blog for more details!
The Joytone is more or less finished! We didn’t manage to finish writing the GUI for the screen, but we’ll chalk that up to a future project. For now we have polyphony, smooth timbre control, even an intelligent pitch bend. The pitch bend ranges from -2 semitones to +2 semitones, and dynamically figures out what the corresponding distance in Hertz should be based on what note you’re playing (this even works over several notes, with a different interpolation for each one).
There are more details about the core concept behind this project in the first post on the blog, but I’ll quickly summarize it here. We wanted to invent an entirely new electronic musical instrument, and there were two things we wanted to focus on in the design of the interface. The first is that we wanted to improve upon the physical design of musical instruments. Most acoustic instruments are designed around physical phenomena that make sound rather than convenience for the user (violins are smaller than cellos because shorter strings make higher notes). This instrument uses a hexagonally isomorphic layout, which means that the notes are distributed on a hexagonal grid, and they all have the same physical size and shape. They also have the same musical relationships to each other – if you move to the right by one thumbstick, that corresponds to going up a perfect fourth musically, and this is true no matter where you start on the grid. This means that musical structures like a major chord or a minor scale are always the same shape, no matter which note you start on, which is pretty rad. The second thing we wanted to focus on was making the instrument really expressive. Lots of synthesizers only measure how hard you strike the key and other timbre controls are available on knobs that you have to remove your hands from the keyboard to use. We’re using little thumbsticks, which give you two dimensions of analog control in a familiar physical interface…
…The thumbsticks are connected to an array of multiplexers that feed the signals into 8 analog input pins on the Cypress PSoC 4. The PSoC then uses an internal analog multiplexer to feed the signals into the onboard ADC, then communicates the data via SPI to the Raspberry Pi. A python script running on the Pi processes the data and communicates with the synthesis program, Pure Data via OSC. Our goal was to also have color data sent to an Arduino Micro to control the RGB LEDs, but we didn’t get that component working.
Each Friday is PiDay here at Adafruit! Be sure to check out our posts, tutorials and new Raspberry Pi related products. Adafruit has the largest and best selection of Raspberry Pi accessories and all the code & tutorials to get you up and running in no time!