Monday, April 25, 2016

Final Documentation



Project Overview - MIDI Gloves
What I have created are a set of gloves that allow a user to compose, produce, and record music with future age gloves. With the gloves you can map any type of instrument sound to your fingers and record and loop grooves and melodies in real time. You can be the drummer, the pianist, the guitarist and the bassist with these gloves. You can record backgrounds and melodies and piece together sections of music to create a full song just through the use of the gloves. You even have the capability of adding and altering audio effects like frequency, volume, pitch, panning, by just bending your fingers. They are truly the musicians best friend.

How do they work?
They are composed of 15 sensors, 8 buttons, 2 circuit boards, and an LCD screen. On each fingertip there is a force sensitive resistor (FSR) also known as a pressure sensor. These pressure sensors register touches and taps and in response triggers notes. Each pressure sensor also sends a certain pitch as well as a volume at which the note should be played. This volume is based off the speed at which the finger is tapped and results in a much more organic and natural sounding music.

On the back of the index and middle fingers of each hand there are two flex sensors that, when bent, send certain values from 0-127 to control variable effects like volume, frequency, and panning. Each sensor is open to be used for any purpose and can be mapped to any trigger in Ableton, even triggering sound clips and audio samples.

On the side of each index finger there are four buttons that each correspond to different controls within the program. There is navigation control within the program by sending up and down signals allowing the user to toggle between different sounds. There is also an undo button, a stop/start button, and up octave and down octave buttons allowing the user to change the finger note values while playing.

Attached to the board is an LCD screen that acts as an interface between the gloves, the user, and the program, insuring the user is aware of what is being sent through the gloves to the program. The LCD allows you to program the gloves to any scale in any key. (Major, Minor, Blues, Pentatonic). In the future the user will also be able to program any finger to any note.

To power it all I have 4 coin cell batteries and a 3.3V power source from the computer. I used two coin cell batteries to power the LCD screen and a single coin cell for each hand to send enough power to each sensor. For each hand battery, I designed and 3D printed a battery holder that sandwiches the battery with a positive and negative lead. You can see a picture of these holders below.

Finally there is really one circuit board that controls it all and processes the information, the Teensy 3.2. Before this project I knew nothing about the Teensy but after working on this, the Teensy has proved to be an amazing piece of hardware capable of amazing things. Through the Teensy I am able to send Serial, Keyboard, and MIDI signals all at the same time. It has proved to be more than capable of handling dozens of analog inputs and digital outputs and processing all extremely fast.
Attached to the Teensy I have a MUX Breakout Board that expands the Teensys analog and digital pins so that I can receive the triggers from the left hand.
All this works together to create a fully function electronic musical instrument that is versatile, portable, and easy to use for musicians and non-musicians alike.

Physical Appeal:
One of the hardest and most daunting challenges of this project has been making the gloves look nice while keeping functionality. I tried many different solutions to this such as sewing fabric over the wires, covering the wires with a fabric sheet, covering the fingers with cut off glove fingers, and even fitting a second glove over the main glove. In the end all of these methods seemed to make the glove much more restrictive and much less comfortable to wear. So I concluded to not cover the wires and deal with the physical appeal after testing and further iterations. However, to make the gloves more eye-catching I decided to add a laser engraved triangle of acrylic with an LED to light up the design. BMP of design below.

Components Used:
1x Teensy 3.2
1x Analog MUX Breakout Board
11x Force Sensitive Resistors
4x Flex Resistors
8x Switches/Buttons
1x LCD Screen 16x2
4x Coin Cell Batteries
2x 3D Printed Single Coin Cell Holder
1x Double Coin Cell Holder
1x 3D Printed LCD Case
1x Pair of Gloves
1x Wrist Brace
1x Laser Engraved Acrylic
1x 3D Printed Acrylic holder
1x Blue LED
Arduino IDE
USB_Keyboard Library
and much more....

Circuit Diagram

 
Usage Graphic


Code:
https://drive.google.com/open?id=0B8O3izVcHJBzdHh2Zm9VaTViX0U

Below are images of the final, fully functional prototype












More process photos below...

Further Functionality



Now that the glove's basic functionality is working well I wanted to add some more buttons and switches to add more minor functionality during the music making process.

I have added 4 buttons on each index finger to allow for navigation in Ableton, undo, stop, start, and octave change

Sunday, April 24, 2016

Left Hand Glove




One of the largest challenges so far has been duplicating the wiring and functionality of the glove over to the left hand to give me a whole 10 note range.

There are three methods that I found to accomplish this task.

1. Duplicate same wiring on second glove and attach second USB to computer, essentially making the left hand a second, separate, midi controller.

2. Duplicate the wiring on the second glove and use some sort of communication (Serial, I2C, etc) to make the gloves communicate with each other.

3. Duplicate the wiring on the second glove and use a MUX Breakout Board to expand the analog pins to the other hand.

I decided not to pursue option 1 on the basis that I wanted it to function as a single midi controller and I wanted to be able to control both gloves with the use of just 1 board.

I originally tried to pursue option 2 because I had a second Teensy board and thought it might be the best way of making the boards communicate. 
After hours of fidling and trying both I2C and Serial communication I decided this method wouldn't work for what I was trying to do. I needed extreme precision in value recall from the slave glove so that I could assign different values to different controls. This method didn't work because I found there to be significant error in the serial communication between the boards. Also, using a second Teensy board significantly raises the production cost of the glove sets.

I finally decided to go with Option 3 and use a MUX Breakout Board. After getting my board and spending a few hours to test it, it turned out to be extremely accurate and the perfect tool for my purposes. 

 

https://www.sparkfun.com/products/9056

I assigned each pin to different FSRs and Flex resistors and used the sent values to trigger midi through the single Teensy board on the right hand.

This method seems to work extremely well and has been quite successful.

Below is an image of the left hand with the MUX Breakout and full wiring.

Updated Glove Pictures

Pictures of Updated Glove

Wiring has been transferred over to a new glove with a more modern design and has been redone to create a more robust, cleaner, and reliable circuit.


LCD has been attached to a wrist brace and I have modeled and 3D printed an LCD case to improve
the look and overall feel of the product.



Curcuit Diagram

Wiring Diagram for the glove

Tuesday, April 5, 2016

Project Timeline

Timeline




04/05/16 Attach sensors and RGB LED on second glove
04/06/16 Print Battery Holder and wire to battery and glue sensors on glove
04/07/16 Write code to get serial communication fully working
04/08/16 Test to make sure everything is working
04/09/16 Clean up wires
04/10/16 Make cover over top to hide wiring on glove and wrist
04/11/16 Create Logo Design
04/12/16 Laser Cut and attach 2 acrylic pieces with Logo
04/13/16 Take good pictures and videos
04/14/16 Work on song/film performance
04/15/16 Work on song/film performance
04/16/16 Work on song/film performance
04/17/16 Work on song/film performance
04/18/16 Work on song/film performance
04/19/16 Work on song/film performance
04/20/16 Work on song/film performance
04/21/16 create poster
04/22/16 Touchups
04/23/16 Touchups
04/24/16 Create Media
04/25/16 Create Media
04/26/16 Create Media
04/27/16 EXPO