Thursday, 27 March 2014

Critical Evaluation



At first I found it extremely hard to generate an idea for the project. After learning the basics of Max/MSP I was blinded by so many possible project ideas. Because of this I thought about creating something that was more personal to me. As I only started to get involved with music in recent years, I can remember and appreciate how much of a struggle it can be to create music that sounds reasonably good when you’re just starting. One of the main hurdles for me was my lack of knowledge concerning music theory. Therefore I decided to create a device to help individuals express themselves musically without needing any pre-existing skills. By limiting the user to a set key signature there is less room for error, enabling them to compose simple melodies without trouble. Coupled with a basic chord progression, this would be enough to inspire children and introduce them to the world of music.

My core aims were to create a pair of gloves that send pressure data from each finger to trigger notes in a specific key. Ideally the user should be able to control how sensitive the gloves are to pressure. I wanted at least three chords to be available for the user to trigger and finally the MIDI needed be to easily rout into any DAW.  These aims confirm the usability of the gloves but also ensure they are a suitable tool for any potential user. I was inspired by Imogen Heap’s glove project, which enables her to perform and change her music live on stage (Collins, 2014). However I wanted to move away from this concept as I feel there are already tools available to enhance musical performance and less to aid the composition process. Therefore, although being inspired by her glove interface, I decided to focus my gloves around composition rather than performance. One important aspect of the project, was selecting the right technologies and tools for the job. For example, after some research I found that piezoelectric sensors were the best choice for my main inputs due to being cheap, yet robust (Gautschi, 2002). Previous lectures also helped me identify the uses of an Arduino board and how I may be able to use it to relay the pressure data into Max. However after studying the Arduino Uno in the lecture, I noticed that it didn’t have ten analog inputs. This resulted in further research into different boards. I identified the ‘Leonardo’ as being the cheapest board with over ten analog ports, however as I was unsure how far my project would develop, I purchased the Arduino Mega as it has far more ports than necessary, allowing further developments in the future.

My first problem was my prototype. I was able to create a knock sensor fairly easily, but relaying pressure data into max was more difficult. After further research however, I found two possible Max templates that would read the analog inputs from my Arduino. ‘Maxuino’ was the first, but it didn’t seem to work and appeared to be glitchy. ‘Arduino2Max’ however managed to read six of my inputs. After altering the Arduino code, I was able to read all ten inputs and complete my prototype without any further problems. One of the main problems during the project was creating a way to control the sensitivity of the sensors. Initially I tried to use a basic ‘if’ statement to filter out the softer touches but I had used the wrong syntax. This resulted in the use of the ‘onebang’ object, which allowed only the first touch to be triggered. However this alone didn’t give the user full control of the sensitivity. Therefore I was forced to reevaluate my initial syntax until a working if statement had been created. Another problem I had was create selectable chords. Although I was able to create three preset chords, I was limited to one octave and therefore had to resort to using inversions. After refining my Max patch, I was able to solve this by creating a separate section that is one octave higher. Further research into the ‘gate’ and ‘umenu’ objects helped me to create a list of chords for the user to pick from.

There are several limitations to the gloves. For example there are only three chords available to the user, which is less appealing as four chords in a progression is more common.  The use is also limited to only one octave. This could be overcome by the addition of extra piezo sensors however. Complex chords are also not available to the user however this is less of a problem, as the target users are not experienced musically. Finally, when recording into a DAW, there is no way to change the note length without having to manually adjust them with a mouse. I did find a work around for this problem, as a sustain pedal can be used depending on the sound the user has chosen to play. Several of the limitations could easily be overcome if I were to create a whole new instrument instead of using a glove interface. However, as children and disabled individuals are the target audience, the gloves allow the user to create music using an interface they are already familiar with without having to worry about learning something completely new. This means the gloves may also be appropriate for users with visual impairment as the instrument is literally an extension of their own body. It is for these reasons I decided to stay with the glove interface, regardless of the limitations they present.

As I one of my main aims is to make the gloves appropriate for any user, I began researching how the gloves may help the disabled or handicapped.  One of the main areas I explored was the effect of music on autistic individuals. Music can be used as a tool to “release them from their autistic chains” (Salter, 2013). This may suggest that my gloves project could be used to help autistic children express themselves and interact with others musically. Also it is suggested that autistic individuals are more responsive to simple musical phrases and melodies which are exactly what my gloves are designed to make (Kalas, 2012, pp. 430--452). Finally it can be argued that autistic children have a “strong and early preference for music and are able to understand simple and complex musical emotions” (Molnar-Szakacs and Heaton, 2012, pp. 318--324). Once again this supports the notion that the gloves may be a useful application to be used in music therapy. This also made me consider the possible uses for patients in hospital who cannot speak and how the gloves could be used to trigger statements or answers. Although this was not the main aim of the project, I feel that there are plenty of areas other than composition where the gloves may be of use.

One aspect of the project that I failed to mention in the presentation was the GUI (Graphical User Interface). This took many forms throughout the project as new functions kept being developed. It was imperative that all of the main options concerning the patch were available on the main interface. I have limited the colour scheme and kept the general design extremely simple. The use of dropdown menus makes all the parameters easily changeable and improves the overall usability of the gloves. Also clear labeling and separation of the main functions allows the user to find the parameter they want to change quickly and efficiently. Finally I feel that I improved the clarity of the GUI by creating spaces between the options. Spaces are very important when considering the overall clarity of a user GUI (Nielsen, 1997). Therefore I was sure to keep everything well spaced out.

In conclusion I feel that I have met all of the core aims that I made when first starting the project. I feel that this project is only the tip of the iceberg and the project could be expanded much further in many different ways. The project has helped build my understanding of Max/MSP and technology such as Arduino boards and basic electronics. I would have liked to look further into wireless technologies as I feel the wires are not aesthetically pleasing, however I am thrilled at the overall functionality of the gloves and genuinely feel like I have created a useable, efficient tool for any individual to enjoy. 






Bibliography


Collins, K. 2014. Imogen Heap's music-manipulating gloves on Kickstarter (Wired UK). [online] Available at: http://www.wired.co.uk/news/archive/2014-03/24/imogen-heap-glove-kickstarter.
Gautschi, G. 2002. Piezoelectric sensorics. Berlin: Springer.
Kalas, A. 2012. Joint attention responses of children with autism spectrum disorder to simple versus complex music. Journal of music therapy, 49 (4), pp. 430--452.
Molnar-Szakacs, I. and Heaton, P. 2012. Music: a unique window into the world of autism. Annals of the New York Academy of Sciences, 1252 (1), pp. 318--324.
Nielsen, J. 1997. The Difference Between Web Design and GUI Design. [online] Available at: http://www.nngroup.com/articles/the-difference-between-web-design-and-gui-design/.
Salter, J. 2013. 'Music releases autistic children from their chains' - Telegraph. [online] Available at: http://www.telegraph.co.uk/culture/music/10046513/Music-releases-autistic-children-from-their-chains.html.


Sunday, 16 March 2014

Using the Glove To Trigger Clips

The glove, although a compositional tool, can also be used in Ableton to trigger audio clips that the user has recorded, giving the user a chance to structure their song, or even perform it.


Thursday, 6 March 2014

Both Gloves (Test)


Obviously it doesn't always work, which this video shows. I was having issues wiring up the chord inputs but once resolved there were no further issues!

I then went on further to test the gloves with Ableton Live and VST instruments.


I used a sustain pedal to make sure the strings could be sustained.

Tuesday, 4 March 2014

First Glove Test



After wiring up the first hand, I wanted to make sure all of the sensors were working.

Saturday, 1 March 2014

Creating the Gloves


Firstly I had to make sure all of the soldered wires were covered with tape to make sure they were protected.


The next task was selecting what kind of glove to actually use. In the end the best way to create the gloves, seemed to be to stitch the cables along the back of each hand. To cover this, I used a similar pair of gloves over the top of the original pair, making them safe and secure.





I then cut holes in the outer glove, so that I could push the sensors through. Overall this makes the sensors more sensitive but also the glove feels much more sturdy. 





Friday, 28 February 2014

Preparing to make the Gloves

The whole project so far actually hasnt looked anything like 'gloves'. As the piezo discs came with small wires, I had to extend them. I have soldered extra wire so that each sensor can be used on a glove. This took a fair amount of time, and so I enlisted my brother and his girlfriend to help speed up the process.


Monday, 24 February 2014

Interface

As the functionality of the gloves increases, I have had to recreate the GUI. I thought my initial GUI was very ugly and I think this is because I was limiting myself to creating it from shapes and colours in Max.

The new interface uses the fpic object in max to load an image that I have created in Photoshop. I have then moved the drop down boxes and other input information to fit the GUI template that I have made.


Original:

New:




Thursday, 20 February 2014

Selectable Chords

Finally after examining the patch I found and some help files, I was able to identify the umenu and gate objects as a possible way to create selectable chords. This allows the user to select whatever chord they want in the scale, adding to the customisability of the gloves and overall functionality.



I have also created a higher octave so that the chords do not have to be inverted. This makes the overall sound of the chords, much cleaner and more recognisable.

Tuesday, 11 February 2014

Basic Chord Structure

I have managed to create chords by copying the scale patch and triggering multiple messages with a single bang. Although this allows polyphony, there is still no way to change the actual chord structure at this time as I have been unable to find a way to do this efficiently.



Thursday, 6 February 2014

If Statement

As I failed to use the correct syntax before, I have revisited the 'if' object and found a way to make it work, using an integer box.


This now allows the user to filter out soft nudges and touches that they do not want to trigger notes.

Wednesday, 22 January 2014

Connecting All Sensors

I've found a problem after connecting all of the sensors. The 'Arduino2Max' template only allows for the use of 6 analog inputs. Therefore I've had to go into the Arduino code and see what needed to be changed.


Initially the code read only inputs 0 to 5. By changing this to 0 to 9, I should be able to receive the Arduino mega's first 10 analog inputs.

Finally the other issue I've dealt with was the renaming of some objects in the max patch.


I have changed the names first 10 inputs to ensure they are linked properly in my main patch. Once I had done this, there were no further problems in receiving the desired inputs.

Saturday, 18 January 2014

A Temporary Solution

As in the previous post, the video shows that the notes are playing far too fast because very change in pressure is creating a bang that is triggering the midi over and over. Therefore I've found the max object 'onebang' which only lets the first bang through when another bang is triggered.

Therefore I've set up a metro (linked to the 'on / off' toggle) that will produce a bang once every second. This means that the same note can only be triggered once per second. This creates a limitation, such as trills wont be possible and other similar techniques, but as this is a tool for 'non musicians' I don't think this restriction is that problematic.

I will need to look over the possible uses of > and < to perhaps create a threshold for all inputs. This would definitely be more effective than the use of  metro and onebang objects.




Wednesday, 15 January 2014

Sensors to MIDI to DAW


Although I only have 4 inputs at this time, I thought I would try and rewire the midi into my DAW to see how it sounds. As suspected the sound isn't quite right. There is no delay after a note is triggered. This results in the note being played over and over in a short space of time when the desired result is just one note to be played once. I'll have to find the best way to build this into my patch.

Friday, 10 January 2014

Sensitivity

The problem I have found initially with the sensors, is that they tend to pick up the slightest vibration and therefore often trigger unwanted notes. For this to be a useful tool, the sensitivity of the sensors is going to need to be decreased so that its clear when the user wants a note to be triggered. There is probably a better way to do this than the way I have done, however for the time being I have used an 'if' function to create a threshold.

I've noticed that a gentle knock by accident will cause less than 100 units. Therefore I've used the if function:

"  if $i1 > 100 then $i1==1 else $i1==0  "

This basically creates an 'on or off' switch for the signal, similar to the use of a digital pin. However the advantage of using the analog pins is that I am able to easily create this threshold, and change it. Ideally however I would like the threshold to be an integer box so I could change it easily and on the fly if necessary. However to achieve this I may need to rethink the structure of my initial patch. For now functionality is the priority rather than efficiency.


EDIT:

Actually, the I thought this made a difference but the second time I loaded the patch it didnt seem to do anything. having said that, I know now that I definitely need to find a way to control the sensitivity of the inputs. The more immediate problem however is making all the inputs work, as the standard Arduino2Max template only allows for 6 analog inputs, when I need 10. Therefore I will need to edit the Arduino code in order to read the extra inputs.