Thursday, 13 June 2013

Spatial Practice - Multitouch Audio Gestural Project: Final Thoughts


This has been my first attempt at building a performance tool, sourcing cheap parts makes the project accessible but very limited in its functionality in the end stages. The trial and error aspect of homebrew electronics requires patience, time and the ability to compromise on the intended outcome of the project.

Through the process I discovered many other methods for creating a multitouch surface, most of which are far more effective for the scope of the application I intended for it.

Gestural control is the direction I would like to explore, but with a more competent surface, many more channels and a much wider array of gestures to explore. 

The actual area of the surface that was able to recognize and track input ended up being less than a foot square, which severely cripples articulation. I put this down mostly to the poor resolution of the webcam (320x320)

Not only did it become cramped to make multitouch gestures, the camera had difficulty tracking when the shadow of both hands/arms and my head loomed over the surface. With such a small area to use, much smaller movements were required, which was also difficult for the slow framerate on the camera. Values would not change smoothly, the effect being jerky and latent - breaking immersion and working against the mapping assignments I had created specifically.

Thankfully, a higher quality webcam with a faster framerate and larger resolution and the IR lights I mentioned in the blog will be all that is require to attempt this again. With the Kinect fad I had not particularly been interested in gestural control, but in the context of a surface (specifically my studio desk) it is plainly the most logical way forward for any expressive project. Mice and keyboards are very inefficient for any meaningful expressive input.

Involving tactility in the creative process is vital. I look forward to exploring this further, especially in the context of multichannel audio.

Wednesday, 12 June 2013

Spatial Practice - Final Multitouch Audio Gestural Project

Now at the end of the technical exploration process I was ready to implement more articulate gestures into the project.

I wanted to retain a sense of improvisation, aleatoricism, spatiality and dramatic sonic transformation across small gestures on the surface. I also wanted all structure, rhythm and time qualities of the sound to be generated through gestural input. The surface was to be central, dictating all sonic possibilities through gestures - playing the surface along to rhythms generated from it, or externally, was not what I am aiming for. 

The concept of building the surface from parts instead of using a freely available touch device like a tablet or phone is to remove all association from the surface so as engaging with it is less encumbered with any preconceived notions of other purpose built technical applications. 

I personally find experimentation the most gratifying part of engaging with audio, especially when manipulating sound to the point where it creates its own reference. Sculpting sound using traditional composition methods is tedious, dull and antithetical to immediate engagement with sound. Building an environment to compose live with deliberate gestures that translate to compositional axioms are inherently limited to those axioms and therefore not exploratory and bound by context.

This project is an expression of my search to recontextualize and extend my ways to interact with audio by disassociating the process from the limitations explained above. Most contemporary digital mediums for manipulating audio are visual, referential, tempo based and linear. Popular node-based modular environments are not as linear, but still suffer from their inherent visual nature. I find the most engaging moments sonically are where the eyes stop receiving input, no longer listening, purely hearing - engaged and focused. 

To facilitate that experience the interface must be stripped of all meaning, the process be immediate and non-static. Interaction must have the sensation of oscillating between control and yielding to immersion. 

With this in mind, I kept the spatiality controls logical and intuitive - allowing the controls for timbrality,  pitch and tempo to be much less straightforward.

Spatiality Controls
Put simply,  a left gesture with the first finger will move the sound to the left speaker from both sources
a right gesture with the first finger will move the sound to the right speaker
an upward gesture with the same finger will move the sound away from the rear speaker
a downward gesture will move the sound toward the rear speaker.


Next, I made the second finger controls dramatic global (whole project) assignments, linking global tempo control and global clip pitch control / transpose to be assigned to the x and y position of the second finger input. 


The controls of both of these assignments were intended to span their entire range over the surface, giving full gestural control to the the most traditionally static, governing values of composition. 

The first 2 processes of most composers is to commit to a key and a tempo for their composition. 

I have questioned these two constraints in my compositional process since being made aware of them. Once I began adhering to these conventions, despite their fundamental advantages of assisting with crafting logical complementary harmonic and structural elements and providing a mathematical framework to create detailed, layered compositions that make sense to the human ear - I became increasingly dissatisfied with the process. The more you adhere to logical frameworks, the less you are expressing anything other than the scope of those frameworks, essentially joining the necessary dots until completion. I found my compositions to be nothing other than an alternative perspective of someone else's expression. 

By making these two values wildly maleable, the surface interface becomes a tool of subversion for these principles, theoretically allowing far more sonic possibilities than any systemic approach.

These global values being gesturally controlled allowed the various warp mode settings of each clip to be key in the articulation of sound, as each setting responds to global pitch and tempo changes differently.


Texture mode in particular is very responsive to dramatic changes in pitch and tempo, especially when used with percussive samples, which the sample choice I used for this source (a loop I had created generatively with a stochastic rhythm based drum sampler)



Re-Pitch mode is very responsive to changes in tempo, ignoring any clip transposition, raising and lowering the pitch based on the global tempo value. This allowed each source to be effected by the same changes in global values in independent ways, making their articulations divergent while still being bound by the same gesture.

I settled on two clips on each of these settings to function as source inputs, with their spatiality controls being mirrored on each channel, so that as one moved across to the opposing channel the other would do the opposite - but I found this to keep both sources isolated from each other which removed immersion. I changed the spatiality controls to those explained above to rectify this, making the sound feel more cohesive.

Using clip settings in this way to sculpt sound is essentially Granular synthesis as these warp modes are just grain envelopes. With granular synthesis being the basis of articulation, for the next gestural element I used an instance of Ableton's Grain Delay on each channel as a means to transform the sound further - each Grain Delay having pitch and time controls to contort the sound and the delay aspect being able to disrupt any rhythmic linearity that may emerge from the basic global controls, or the absence of gestural movement.


Feedback essentially became the volume control of the unrestrained emergent rhythms and repetitions, making this value gestural allows these emergent rhythms to become the focus of the sound, then eclipsing all other sounds as it reaches its full value. This gives the sensation of having the sound repel you sonically as you push it to its limit, the balance of this tension perpetuating your engagement with it.

I imposed some limitations on the Delay Times, shorter times making the articulations more clear and definitive, silence being just as integral in the articulation of gestural movement as the sounds themselves. Shorter delay times allows the sound stage to clear and settle at a much more responsive rate. I assigned the delay time controls of each Grain Delay to the x position of the first finger on the first source channel, and the y position of the first finger of the second source channel so that both were linked to the same gesture in opposing planes.

Both Dry/Wet values were assigned to the same y position gesture, though in opposition - so that as one rose the other would fall. This linked the 2 grain delay effects to the same gesture, crossfading between allowing each channel to be fully processed by the grain delay or to bypass it. Linking these to the same gesture places the effect over both sources on a continuum and helps to makes the gesture more clear and meaningful despite the chaos being generated, making the user feel more engaged with the interface.

The pitch controls of both Grain Delays were similarly assigned to the same gesture, though instead of opposing the values across one plane, I opposed the planes, so that pitch control here would not feel like a linear continuum from left to right or up to down, instead encouraging diagonal gestures as there would be a clearer link to from sound to gesture in diagonal movements with this mapping choice.

I also accentuated the spatial controls by further assigning panning on the source channels to the same gesture that routes audio to each stereo speaker.

At this point I was satisfied that the gestures were meaningful, engaging and powerful enough to trigger dramatic articulations while creating an immersive and reactionary sound stage that could be pushed spatially through intuitive yet obfuscated controls.

Though I had spent the process of trialling these assignments, checking the gestures were tied to controls in the software visually - and having abandoned projecting on to the surface for now, this mapping was designed to have no visual component, so as to be as conducive to the ideals I explained above.

The sounds and rhythms generated were sufficiently abstracted to also complement this motive.




  



Spatial Practice - Ableton MIDI Mapping Limitation Workaround

(Selecting the item you want to assign, then moving the MIDI controller - 
linking the item with that MIDI CC/Note or other MIDI command)

This is a frustrating limitation for touch devices, as X/Y controls activate almost entirely in unison, 
"x position" (assigned here to MIDI Control Change value 33) and
"y position" (assigned here to MIDI Control Change value 34)


And Ableton was defaulting all MIDI assignments to CC 34 (y plane) 
when attempting to assign any gestures to either the x or y plane.

List of MIDI Mapping assignments in Final Submission Project before Workaround
As you can see, there are no values assigned to MIDI CC 33

This may be due to the TUIO value for "y position" (1) comes after the "x position" value (0),
but at this stage it isn't relevant, as the simplest solution is to manually reassign MIDI CC's intended for assignment to 33 manually - I was surprised to discover that Ableton does not allow the CC value to be edited in the mapping browser.

Luckily I found a workaround.

Which I implemented into the project, see below:



Tuesday, 11 June 2013

Spatial Practice - Multichannel X/Y Midi Assignment




Moving back toward the goal of Multichannel audio control through the touch interface, I placed the reclaimed sub/speaker + tupperware amplifier tower behind me, with my studio monitors acting as left and right stereo as usual. 

Stereo pair:
L = Return A (Soundcard Lineout 1)
R = Return B (Soundcard Lineout 2)


Rear Channel
Return C (Soundcard Output 3/4)


I opted to run with only one extra channel for simplicity. After experimenting with a few routing options, I settled on traditional Send/Return routing for flexibility and simplicity - routing each channel independently.


Ableton Routing Setup
In this image the signal from Source channel is being sent to the
Left speaker and Rear speaker at full volume
Whilst the Right Speaker has no signal sent to it

I then moved onto assigning these sends to the surface via MIDI after altering the OSC routing setup to CC values again.





Left + Right Channel sends are both controlled by left/right gestures on the surface with the first finger.
Values are assigned so that as volume rises on one side of the front stereo pair, the other falls.

The second finger's left/right gestural movements control the volume of the Rear channel.



Splitscreen vid edited poorly,  audio is not a solid sync
[video editing isn't my forté]

Monday, 10 June 2013

Spatial Practice - Melodic Gestural Movements

I then mapped the X plane to the tuning control of Operator, ableton's native synth across 2 octaves.

The furthest leftmost value of the surface being 24 semitones apart from the furthest rightmost value. I also assigned the filter to open more on the higher notes and close on the lower notes to accentuate the gestural movements a little more to make the results more apparent.




This allowed a rudimentary keyboard effect from the surface, you can hear the latency (time delay) of the webcamera processing the image and sending it to CCV, then to Osculator then finally to Ableton as midi control change values.




Most of this latency is attributed to the placement and speed of capture by the camera. CCV reads this as about 4 frames per second (about 20fps short of animation speed) which leads to jerky/choppy articulations of any gestural movement (the changes are not produced smoothly)


This latency even more pronounced in my next experiment, instead of using gestural movements for Control Change values (using the surface to move a digital "knob") I assigned Midi Note values to each  new "blog" ID number, so that: 

one finger down triggers the note C1 being played 
two fingers down trigger to C1 & C2 being played
three fingers down triggers to C1, C2 & C3
four fingers down triggers C1, C2, C3 & C4 all being played


This allows polyphony, and tested the multitouch aspect of the surface. The gaps between my placement of fingers and the note being played is the latency explained above.

The initial note was too low to be picked up by my camera's mic (bass frequencies)


Spatial Practice - Controller Assignment Panning Test Using EM Transducer

Using the transducers I received, I sent signal into ableton:




Then assigned panning controls to the X plane across the surface.



As the gesture moves left, the panning control moves from the right stereo channel to the left.

See below for details:














Pan Left                                                                                                       Pan Right





Spatial Practice - Multichannel Audio

My main objective in using the surface was for multichannel audio. I had found a hifi sub in hard rubbish, so had saved it for a project that would incorporate more than 2 channels.


The powerlead was cut. I braided and soldered the end of a "figure 8" IEC lead to it and used electrical tape to insulate the connections.








 It worked!

2001, a space(tial practice) odyssey.
[Audio in the clip is being produced by the speakers + sub]

Sunday, 9 June 2013

Spatial Practice - Research: IR Illumination Methods

After trawling the NUI forums I discovered the best, cheapest method for providing enough infrared light is via Infrared LED Illuminators, specifically ones used for Nightvision/Security cameras.



4 of these placed evenly above the surface should allow the projection surface to be receptive enough to use in the absence of room light/lamps.

http://dx.com/p/ir-48-led-infrared-illumination-light-for-night-vision-dc-12v-500ma-15235


Pending the arrival of this order I will now have to abandon any attempts at visual feedback on the surface, which wont affect its functionality.

Spatial Practice - Webcam IR Mod Troubleshoot

Thinking that perhaps the portion of the old 35mm negative used to make the IR filter may be not as effective as a piece of unprocessed film, I once again took apart the webcam, replacing the old filter with the new one.



I reassembled it and plugged it in, the display showing its sensitivity to all light far more diminished, rather than just light below the IR spectrum. 

Being basically unusable in this state I disassembled it a third time and reassembled it with the first filter I'd made once again.

Grumble grumble, debugging is frustrating.

Saturday, 8 June 2013

Spatial Practice - Visual Feedback: Troubleshooting

Had success with projecting the laptop screen onto the same surface that I was tracking touch movements. I was ready to move on to calibrating the surface when I encountered issues with providing enough backlight from the lamps to create the necessary solid shadows on the surface while keeping it dark enough to see the projected image. see below.










After scouring online for many hours I was unable to find a solution, so I mailed the creator of this particular design in the hope of discovering a solution to the issue.


Hey Seth,

I'm getting into MT surfaces and discovering your site has been invaluable, many thanks!

I'm building the MT Biggie and have had success so far in using CCV, tracking blobs and sending them via Osculator to ableton live. However the lighting required to achieve good results has made the projection surface far too illuminated to actually see the projection! I'm stuck as to how to achieve a balance of both solid backlighting and a dark enough projection surface to effectively throw onto.

I'm currently waiting for my registration on the forums to be approved so I thought I'd shoot you a quick message here if you're able to offer any ideas? 

Thanks again!
Jay

Spatial Practice - Multitouch Assignment via OSC

First experiment, using the surface to control the mouse pointer.


Open Sound Control (OSC) is a content format for messaging among computers, sound synthesizers, and other multimedia devices that are optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC's advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.

Spatial Practice - Signal Test

Initial test worked.

By using a mirror to aim the webcam's view up toward the acrylic sheet and illuminating it with incandescent light (containing the infrared spectrum) I was able to pick up movement in the CCV application and route that to Osculator, ready to be mapped to MIDI in Ableton.








Spatial Practice - Webcam Modification

Picked up a Logitech QuickCam from Gumtree for a fiver.


After hours of trial, error & websearching finally came across a solution for using old USB cameras with OSX. 


I can get it to display via Macam in HackTVCarbon and Skype which will do for now.


I dismantled the webcam, following these instructions for altering the lens to only accept infrared input.







Thursday, 6 June 2013

Spatial Practice - Research: Front Diffused Illumination

The simplest option appears to be FDI, as it does not require an IR light.


Front Diffused Illumination:
In Front DI, infrared light is shined at the screen from above the touch surface. A diffuser is placed on top (preferred) or on bottom of the touch surface.  When a finger or object touches the surface, a shadow is created under the object and seen by an infrared camera below the surface. This method is what the MTmini uses, but without the need for infrared light (since there is no visual display to remove). The MTbiggie also uses this technique. An image is displayed by using a projector connected to a computer pointed towards the projection material.

from: http://sethsandler.com/multitouch/frontdi/


The model I will be attempting is known as the "MTBiggie" which is a larger (biggie) size multitouch (MT) surface that allows visual feedback via projection.


PARTS LIST

  • 2 chairs (or anything to prop up the acrylic)
  • Piece of clear, flat sturdy material (ie. glass, acrylic, plexiglas)
  • Projection material (ie. printer paper, tracing paper, rosco projection material, etc)
  • Infrared webcam/camera
  • Computer (dual core recommended, but not required)
  • Projector
  • Mirror






Spatial Practice - Parts Acquisition Acrylic Piece

50cm Piece of Acrylic donated.






Sunday, 2 June 2013

Spatial Practice - Research: Multitouch Techniques

Upon further research there appears to be several different approaches to creating a Multitouch Surface.

Other than Optical (which is the approach I will be taking) there are Capacitive, Resistive, Acoustic and others.

The most popular optical techniques are as listed below: