fromCONCENTRATE

research blog of artist John O'Shea

Simple Twisting Interface

As outlined in previous posts I have developed a Mk 1 hardware element of a ’simple twisting interface’ based on the intuitive and inventive action familiar to anyone who has ever experienced, what is technically known as,  a cassette tape fuck-up.

I presented a working prototype for my internal assessment at Culture Lab on the 9th of December 2009, where I used the device in conjunction with an arduino board which was relaying the analog information to MAXmsp in order to trigger and control sample audio files.

Thoughts on interface:

Aspects of the Mk 1 hardware are not ideal.  The prototype device is not using a truly ‘continuous’ potentiometer (if such a thing were to exist) – it is using a standard potentiometer which has been butchered and hacked to go all of the way round. The problem is that this leaves a gap in the turn (the resistive element inside is ‘c’ shaped rather than a continuous ‘o’) and as a result of trying to work with this, the principles of code for the current Max patch are heavily compromised.

The demo MAX patch is very buggy and only worked intermittently during the presentation – it is clear that it needs much more rigorous development.

  • For a Mk 2 it would be highly desirable to find a better solution than the modified potentiometer for sending ‘full twist’ analogue data to arduino.
  • A new MAX patch could then be developed which uses ‘clean’ change in acceleration data rather than periodically polling for difference in values  (which is the clumbsy way the demo ‘worked’)

Thoughts on concept:

During the presentation I was asked ‘why exactly THIS twist?’ and ‘why THIS outcome?’

The action of twisting a pen or pencil in the reel of a cassette tape is something that the majority of the adult population will at some time have done – regardless of technological confidence.  The ‘twisting action’ is the result of some kind of inate human inventiveness which arises in an attempt to fix the tape.

I had begun working with this simple twist because the action is very satisfying, and I wanted to see what kinds of things could be done with the resulting data output that might have some kind of ‘intuitive’ relevance to the cultural associations of the object and so, conceptually speaking ‘feedback’ or echo…

This approach relates to aspects of our recent theoretical study where we considered J. J. Gibson’s ‘Theory of Affordances’ (1977. pp 67-82) in the context of designing for interaction.  Early in the article Gibson, talking about the origin of his theory quotes from ‘Principles of Gestalt Psychology’ (1935, Koffka.)

Each thing says what it is…

…the handle “wants to be grasped” and things “tell us what to do with them

Later though, in a footnote, Gibson warns about making naive assumptions about the simple consequences of our interaction:

THINGS THAT LOOK LIKE WHAT THEY ARE

If the affordances of a thing are perceived correctly, we say that it looks like what it is.  But we must, of course, learn to see what things really are – for example, that the innocent-looking leaf is really a nettle or that the helpful-sounding politician is really a demagogue.  And this can be very difficult.

Strategy:

It is very interesting to work simply from this one ‘action’ and to try and see how much ‘resolution’ there is within it.  In order to make a successful Mk 2 ’simple twisting interface’ I will take the following steps:

  1. use bourns continuous potentiometer to make MAX patch work ‘properly’ for demonstration.  This potentiometer allows 10 full turns (based on an internal spiral) so this will allow full development of the patch – key is that I understand how to calibrate MAX and control samples using the device.
  2. Make MAX patch work with Rotary Encoder (Encoder to Arduino – how? then Arduino to MAX – filter prior to debugged patch?)
  3. Make processing piece using rotary encoder - Arduino to Processing-
  4. Do something interesting!

Finally

What might be  interesting outcomes if this were to be a kind of instrument for triggering music tracks, for instance, rather than a mere demonstration of principle? (and art object?)

It might be interesting if:

  • initial turning ie. too slow, too fast, speeding up corresponded to audible experience (akin to ’scrubbing’ the playhead)
  • turning at a consistent speed for a set period (eg. 5 seconds) allowed the track to take over and play itself
  • twisting fast toggled thru available tracks (in this way, more than one track could be played at a time and tracks could be cued using the scrubbing action.)

Making – Strategy

Prototype intuitive interface / proof of concept / instrument – successful?

Plan

Original drawing identified basic principle:

  1. Twist pencil in tape reel
  2. This action twists potentiometer
  3. potentiometer relays DATA
  4. Arduino board receives ANALOG data in 0 –> 5V
  5. Arduino script translates ANALOG voltage to DIGITAL serial data
  6. Serial data transfered via USB lead into MAXmsp patch
  7. MAXmsp patch interprets data allowing user to triggers samples

proto - type

Although I considered different configurations (eg. geering) the simplest approach for this test was to directly engage the modified ‘continuous’ potentiometer with the pen lid through the cassette reel.

potentiometer to tape

AND this just felt really ‘RIGHT’!

When building the MAX patch I attempted to identify 3 ‘triggers’ that I wanted to isolate from the user input data:

  • twisting
  • not twisting
  • twisting fast

ConditionalI basically attempted to identify these 3 triggers using the METRO object to periodically (every 1 sec and every 200 milliseconds) read data coming into MAXmsp and then, using conditional statements eg. pictured, compare the previous two values to identify the rate of change.

I am aware that this is in no way the most sophisticated way of using MAX to interpret this rate-of-change / acceleration data but, this was the fastest way for me to prototype this and get a result with my fledgling knowledge of MAX.

Working on this piece has totally re-affirmed this statement:

simpler interface = more complex interaction

It is fascinating how much data is contained within such a simple single twisting action and there are really huge ramifications for my future ‘user interface’ work if I can develop my skills at using code and software to interpret and translate this data.

Download my ‘Echoes’ MAX patch here.

- PLEASE COMMENT! -

Analog to Digital

Cheap potentiometer only does part of a turn – need ‘continuous’ turn to realise piece.
Went shopping for continuous potentiometer – consumer approach – but was informed that such components don’t tend to be stocked – insufficient demand.

Assumption – scarcity means that ‘continuous potentiometer’ requires ’special’ technical facility.

Jamie – probably just something in there stopping it going all the way round…

take apart

Take apart – discovery – OBVIOUS! – ‘afraid to look under the hood’

Now – Arduino needs to communicate with MAX over SERIAL port – Short answer – NOT WORKING!

OSC_Dirty_Hack

Joey provides workaround in shape ov OpenFrameworks application (have the feeling I’ll be using O.F. a lot more…)

del.icio.us