Hand Joystick Instrument
Picture of Hand Joystick Instrument
Project Overview
This project focused on creating an innovative electronic musical instrument designed to make music creation more expressive and intuitive. The instrument features a joystick equipped with force-sensitive resistors (FSRs) that let users play notes and control parameters like pitch and filter settings through natural, physical movements. Paired with a MIDI keyboard, it recognizes chords in real time and maps them to the FSRs, making it easy to explore dynamic and creative sounds. With Max and Reason handling advanced sound processing, along with a custom ergonomic design, this instrument offers both functionality and a polished, enjoyable playing experience.
Introduction
My group consisted of me, Jacob Galuten, Caleb Brenner, and Rubio Castagna-Torres
The project involved designing an electronic musical instrument that combines circuit components, Arduino IDE, Max, and Reason. Using a joystick with force-sensitive resistors (FSRs), the instrument allows for note playback and control over musical parameters such as pitch and filter settings. When paired with a MIDI keyboard, it interprets input to play notes, adding depth and expression to performances.
Construction and Circuitry
Figure 1: Circuit Schematic and Wiring of FSR
The FSRs were wired following the configurations shown in Figure 1. Due to the limited number of GND and 5V pins on the Arduino, all FSRs were connected to the power and ground rails of an ElectroCookie PCB Board, enabling additional connections to GND and 5V. Figure 2 displays the final soldered circuit on the PCB board.
Figure 2: Final Circuit Soldered Onto PCB Board
The joystick included three pins for each potentiometer. The middle pin of each potentiometer was connected to an analog pin on the Arduino board, enabling continuous data reading. The outer pins were soldered to the 5V and GND rails on the ElectroCookie PCB Board. Once all six pins were soldered, the joystick generated outputs corresponding to the stick's position.
A laser cutter was used to create the instrument's yellow housing, resulting in a polished and professional appearance while enclosing all wiring. Custom 3D-printed keys and a palm rest were designed to match the natural shape of a hand, ensuring a seamless and ergonomic user experience.
The FSRs were strategically positioned so that pressing a key would make contact with the FSR, triggering a "note on" signal. This setup is illustrated in Figure 3 below.
Figure 3: FSR Placement on Instrument
Max and Reason
The core functionality within Max processes a MIDI keyboard's "note on" signals as inputs and analyzes them to identify the chord being played. If the notes on the keyboard can correspond to multiple chords, the system defaults to the most commonly used chord. For instance, if only a C is played, the Max patch interprets it as a C major chord by default. The first five notes of the identified chord are then mapped to the five FSRs, enabling the instrument to play five distinct notes.
The Max patch also integrates joystick readings, mapping the x-axis to pitch bend and the y-axis to the mod wheel. This setup allows for extended note range and dynamic control over parameters like filter frequency and resonance. Additional logic was implemented to adjust the "well sizes," altering how joystick parameters affect sound by modifying the ranges of these changes. A reset button was included to restore the sound to its default state, as the instrument remains active once a chord is played. JavaScript was used alongside Max to handle more complex logic and enhance functionality.
Multiple Reason patches were utilized to produce distinct sounds by adjusting various settings and parameters. Each patch included a dedicated channel for every FSR, enabling independent control of individual notes. The joystick's functionality remained consistent across all channels, simultaneously modifying the pitch and mod wheel settings for a cohesive effect.
Additional Pictures
Additional Pictures of Instrument Construction