HollyJ-250A

From CCRMA Wiki
Revision as of 14:19, 3 December 2014 by Hollymj (Talk | contribs) (Music 250A Final Project: Flex Effect)

Jump to: navigation, search

Music 250A Final Project: Flex Effects, a glove skeleton

The Flex Effects glove skeleton, built out of elastic headbands and flex sensors, is designed to allow a singer to easily and immediately apply a few effects to their voice, when routed to a specific Max/MSP patch.


The first working product was designed to fit over the back of the left hand (one band runs over the palm/knuckles, and the 4 finger bands run over the backs of your index to pinky fingers). Flex sensors are sewn into the four finger bands, leaving the thumb free to facilitate improved independent movement of all the fingers (i.e. holding down the pinky when wanting to only apply the ring finger's effect). The flex sensors are connected to long connectors which plug into an Arduino UNO, and data is then sent from the Arduino into the Max/MSP effects patch.


With this combination of hardware and software, the flexing of each finger allows easy control of effects processing on vocal input: Index - reverb, middle - vocoder, ring - echo, pinky - pitch shifting. When fingers are curled close, minimal to no effect is applied, and when they are extended, more or different versions of the effect are applied. For example, the pinky flex data has three distinct ranges to control (1) no effect (2) pitch shift down and octave (3) pitch shift up an octave. On the other hand, reverb is always "on" because the index finger flex data, after scaled, directly controls the reverberation decay time in milliseconds.

Schedule

11/10 - 11/15 - tested full 4 sensor setup with arduino board (not with gloves); got read-ins from all sensors to Max; tested two types of fabric tubes to attach sensors to fingers - neither was ideal; found elastic bands to use instead; soldered sensors to long connectors (and soldered male pins on the ends of the connectors); received the neoprene/stretch fabric resistance sensor kits.

Sunday 11/16 - sewed elastic bands - 1 to fit over hand, others to fit over the top of the index finger, two to attach these pieces together down the length of the hand; the flex sensor will go between the two elastic pieces running down the length of the index finger (but want to test velcro closure on the open side)

Monday 11/17 - optimize location of bend sensor by evaluating inputs to Max vs. position; sew elastic parts for second finger attachment; implement at least two basic effects working with the inputs to Max; delve in to at least one of the three neoprene/fabric kits

Tuesday 11/18, Wednesday 11/19 - Continue with effects development (test with singing) ; Continue with fabric kits, try to successfully get resistance change readings from the Monday kit that was started.

Thursday 11/20 - Should have 3 effects minimum functioning well with the elastic band/flex sensor setup; Practice singing and using effects

Friday 11/21 - Wednesday 11/26 - optimize effects and elastic/flex sensor setup to final product; during this optimization, finish up testing the fabric kits and possibly include them in the final product optimization (but leave at least one finger to function with the elastic band/flex sensor setup); practice singing with effect application (prepare something short for presentation)

Wednesday 11/26 - An optimized glove skeleton should be done, ready for presentation.

Saturday 11/29, Sunday 11/30 - Practice using the glove for dress rehearsal and presentation

Monday 12/1 - Dress Rehearsal

Wednesday 12/3 - Final Presentation

Thursday 12/4 - 10am - Noon: Clean-up and Documentation Session

Images

elastic w/ flex sensor, bent:

IndexFlexTest.png TapedInSensor.png

elastic w/ flex sensor, straight:

IndexFlexSensor.png

elastic setup testing round 1 - index finger:

ElasticTest.png IndexElasticTesting.png

soldered sensors w/ long connectors:

Sensors-Connectors.png

new sketches:

SkeletonSketches.png

two types of tubes, bend test:

TubeBendTest.png

felt tube - too bulky:

FeltTube.png

knit glove tube w/ sensor:

Tube1Sensor.png

flex connections diagram:

ConnectionsSetup.png

modified concept:

GloveSketch2.png

original:

GloveSketch1.png

Examples - Gloves Projects

1. The “DIY Arduino Data Gloves” – from How to Get What You Want http://www.kobakant.at/DIY/?p=4639

--a. Showcases a great design, and a video demonstrates nice functionality (data feedback of hand movement) to control a range of processes.

--b. The Gloves Project page (http://theglovesproject.com/category/diy/) has full the instructions on how this glove is made. Includes materials, tools, pattern, sewing instructions, soldering instructions, … , calibrating, programming, going wired or wireless, and integration with software.

--c. Love the look of these gloves. The bend sensor connection area looks well protected (ends are covered with neoprene squares). The palm is open (no material), so glove does not get hot, I presume. Good design element, since I was considering a skeleton of a glove for this reason. --d. TWO sensors can actually be used for each finger, to register each knuckle bending. I will probably just start with one for each finger and see how the results are.


2. The StretchSense stretch sensors can measure flexible body movement, such as that of the hand, and are equipped with wireless technology. www.stretchsense.com

--a. Demonstration of hand with visualization app at 2:20 in this video: http://youtu.be/7uh0UWPEur4

--b. While a great demonstration, very very expensive sensors for what I will be doing ($850 USD for a starter evaluation kit)

--c. The DESIGN, however, is more along the lines of the skeleton glove I thought about. End segments of each finger can be placed into holders, and glove can stretch over back of hand.


3. Controlling a humanoid hand, which mimic a user’s hand movement in a glove (and which can grasp objects) http://www.contrib.andrew.cmu.edu/~msakmar/

--a. One flex sensor attached to each finger, and one across the palm

--b. Interesting problem to be aware of: “readings from the flex sensors would change dramatically from each use.” Believed to be from…"heat built up during testing and from wearing the glove for extended periods of time…We worked around this problem by calibrating the flex sensors every time we restarted the arduino and robotic hand setup."

--c. "Our second problem, which is partially related to the first, was correctly mapping the analog readings from the flex sensors to the servos. The issue was that the range of the flex sensors was too small; the analog read-in of the arduino has 1024 degrees of resolution, but the flex sensors would only differ from 550 to 750. We accounted for this by using the map function in arduino and by calibrating repeatedly. Calibration consisted of wearing the glove and running the arduino with code that read in and printed out each flex sensor value. We recorded the minimums and maxes of each flex sensor and used those values as input for the map function."

--d. Duct Tape doing good things: “Our fourth problem was attaching the flex sensors to the glove. We initially had a glove that allowed the flex sensors to move in between slits that we made in the glove. Our observation was that this resulted in readings that were too similar (the value range between straight and bent was too small). Thus, we went down the opposite path and fixed the flex sensors to all parts of the glove using duct tape. This made our glove more stiff, but resulted in better flex sensor readings”


4. Piano gloves – Buttons on end of fingers, but can look to for other design possibilities. http://vimeo.com/7992026

--a. I really wanted to include these gloves because of the design of the gloves along the finger tips. It looks a little uncomfortable, to be honest, however…It is an interesting thought to provide not skeleton rings of a glove, but just a 'bed' for each finger to rest in, with a strap over it (or whole lower half of a glove with straps over each finger). Design would be a little tricker with this idea since it would put the all of the connections in the palm of the hand…But maybe this could wrap around to the wrist of the hand afterward.


5. Wireless Control of a Robotic Hand with a Glove (using the LilyPad) http://www.instructables.com/id/Wireless-Controlled-Robotic-Hand/step2/Making-the-glove/

--a. Nice instructable, noting good suggestions…fairly short (five pages: from materials and glove setup to programs setup)

--b. The use of a pre-existing glove and normal connectors rather than conductive thread actually looks pretty nice. I would still want to protect my connections more (i.e. cover the LilyPad connections with cloth maybe, and likewise for the flex sensor connections).

--c. Note that the flex sensors are held in place once at the top of the glove, and later by glue (I think - based on picture; it's not in the instructions). Might want to stabilize the flex sensor at least twice along the finger, because of the feedback given by the #3 listed project (which, by the way, may have drawn from this instruct able? Though the design turned out differently).

--d. See this project for notes on LilyPad use (and wireless help if wanted).

--e. There's also this one to see: http://www.instructables.com/id/Arduino-Wireless-Animatronic-Hand/)

Minimal Viable Product - To Do List

--Get one effect working seamlessly, attached to index finger.

1. Develop max patch for a reverb, echo, or pitch shift effect in real time (get max patch working well on laptop)

2. Route input from one flex sensor on the arduino board to the Max patch (like in lab)

3. Figure out how the values should map to the main effect parameter in the patch.

4. Extend flex sensor from arduino board using long connectors, and attach sensor to finger, such that hand can be moved more freely.

Final Deadline - What-I-want-to-get-done List

--Get one functional glove working, with at least three effects (applied to real time mic input). (just expand from minimal viable product list)

--Top effects list at the moment: reverb, pitch shift (down), echoes.

--The glove's effects should lend themselves well to recreational solo singing and group jams.

--Would be fine having glove or glove skeleton structured with duct tape, since it can easily be changed. (I would prefer to have the functionality better than the design, rather than vice versa).

What-Would-Be-Nice-to-Have List

--Four or Five well working effects (each corresponding to a different finger; may leave out thumb for comfort reasons).

--Comfortable design (for the user)

--Cool aesthetic look - sewn if possible, with only partial coverage (open palm). The following DIY gloves are the ones I most like the design of (still) http://www.kobakant.at/DIY/?p=4639

--Wireless functionality (although not totally desired).

Materials Needed

At a minimum:

--4 Flex sensors.

--4 resistors.

--Normal connectors (for arduino board prototyping).

--Long connectors for minimal viable product.

--Electrical tape.

--Solder.

--Duct tape.

--Glove(s).


More:

--Arduino micro perhaps? Or Lilypad?

--extra fabric (pretty small amounts), thread, needle...//sewing machine at the PRL

--Wireless components: receiver, transmitter, shields? What is best--XBee, bluetooth…maybe the RF Link transmitters? It says they work for simple one way communication are are small.

Steps to Achieve the Minimal Viable Product

Pretty much everything from my earlier list:

1. Develop max patch for a reverb, echo, or pitch shift effect in real time (get max patch working well on laptop)

2. Route input from one flex sensor on the arduino board to the Max patch (like in lab)

3. Figure out how the values should map to the main effect parameter in the patch.

4. Extend flex sensor from arduino board using long connectors, and attach sensor to finger, such that hand can be moved more freely.

--improve the design on 4 if I have extra time; that is, extra time I have if I finish one effect/finger correspondence and adding any other effects will be too long of a process.

Comments

--Target in on a genre that the effects would gel well with.