Penfield Mood Suite: Signal Visualizer User Interface
| September 30th, 2011Whilst developing my audio visualizers i became increasingly interested in integrating various additional controls. This arose partly through the programming and experimentation as well as my experience when testing them in a live environment. Whilst experimenting with various drawn shapes, I found that it was possible to produce a variety of different visual representations by merely changing the darn shape from an ellipse to a rectangle, or even using more complex geometric patterns. By integrating a number of booleans into the code, with key coded ‘toggles’ to activate and deactivate them, I was able to switch various visuals on and off, allowing me to use multiple variations in the visuals utilising the same basic structure. This provided an additional degree of interactivity whilst also broadening the capabilities of the software.
In terms of the coding, the use of boolean controlled ‘if loops’ was not particularly problematic. What became increasingly difficult was finding a way of mapping the functions to a control interface. As I was using a laptop for development and performance and given my experience with ASCII coding in MaxMSP, i decided to use the integrated keyboard and touchpad largely for convenience. Although this was initially pretty good, as the number of functions increased, so too did the complexity of the control system. This was not such a problem for myself, but as I intended to display this software for public use and interaction, I, decided I needed to come up with a new, more convenient system for user interaction.
I looked around at a variety of different available control systems, looking for small, convenient, integrated systems. After a bit of browsing, I managed to find a USB calculator with an integrated touchpad. As I had initially mapped many of the functions to the numerical keys on my keyboard and the mouse location, a port wouldn’t be too difficult. However, closer inspection of the interface revealed a small flaw. It was a case of using either the mouse or the keypad, with a button being used to switch between the modes. Although not a massive problem, I did find that in tests users often needed reminding that they could use both functions.
Given the multimodal emphasis in my research, as well as the suggestions on multimodal interface design, I felt that I needed to provide a greater degree of choice for the user interface design. I looked at other products that could supplement or replace the key/touch pad. One item that caught my attention was a trackball and scroll ring. Although I have not used trackballs or scroll rings much in the past, the haptic/enactive nature of the piece suggested that it could be appropriate as an interface whilst still be similar to the widely used mouse. Although the trackball did not come with keys, I was able to map the scroll ring to scroll through the various visuals by developing on the Processing mouse wheel code by Rick Comanje
http://wiki.processing.org/w/Wheel_mouse
By using the data from the wheel to increase and reduce a variable integer, and assigning a number of loops to use the varying integer data to toggle visuals on and off, I was able to create an interface for the sketch that could be used to scroll throughout he various visual options. Here is the principle in pseudo-code. I decided to have a degree of overlap in the 12 functions as well, but the principle is similar:
You have 4 functions;
Scroll up/left returns -1, down/right returns +1;
variable int (x)
x = 0 + data from scroll
if x = 1{ boolean toggle function 1 = on
if x = 2{ boolean toggle function 1 = off, 2 = on
if x = 3{ boolean toggle function 2 = off, 3 = on
if x = 4{ boolean toggle function 3 = off, 4 = on
-back to the beginning/end
if x < 4{ x = x – x
x = 0
if x > 0{ x = x + 5
x = 4
Using these two interfaces, I have enabled users to choose how they will interact with the system, particularly whether they interact in a symbolic or enactive manner. As the two systems have similar responses (the touchpad offering more options for signal visualisation) the visualisation system can be operated almost fully (save for the initial signal input) from either of these two interfaces. With some modification to the keypad itself (covering the surface with a printed acetate sheet representing the different functions), my intention is to make the system even more intuitive. With additional control diagrams built into the installation, I believe that the control interface I have designed should be suitably interactive.

