In Formed is an interactive digital system that makes the user, if even for a second, focus on information instead of representation.
produced by: Luke Demarest
“The purpose of abstracting is not to be vague, but to create a new semantic level in which one can be absolutely precise.”
- E.W. Dijkstra, The Humble Programmer 1972
Physical Computing is an art/design-specific term that describes and contextualizes the more-broad electrical engineering practice of assembling interactive digital systems that translate and process analog signals. When thinking about analog signals and electrical engineering practices in the Physical Computing context, we usually think of our systems through the lens of what, in a material sense, our specific transducers translate. This choice of lens might be as a result of approaching digital systems from a path of visual-based thinking practices.
- An interactive digital system with a piezo buzzer translates sound to/from electrical energy.
- An interactive digital system with a photocell and/or a LED translates light to/from electrical energy.
- An interactive digital system with resistors or nitinol wire translates heat to/from electrical energy.
In Physical Computing, we can find ourselves thinking that these interactive digital systems may be about sound, or about light, or about heat since the lens can focus on translational media. An information-centric perspective, rather than a representation-centric perspective, offers a useful and even critical lens for working within and understanding concepts within Physical Computing.
- An interactive digital system with a piezo buzzer translates analog information, represented as sound, to/from digital information, represented as electricity.
- An interactive digital system with a photocell and/or a LED translates light translates analog information, represented as light, to/from digital information, represented as electricity.
- An interactive digital system with resistors or nitinol wire translates analog information, represented as heat, to/from digital information, represented as electricity.
Through this lens, I focus more on information as an abstraction than focus on information’s seemingly 'secondarily-important' media/energy representations and transformations. As an extension, I find myself focusing less on electronics for electronics sake as media, but more for the control it provides for processing information.
It could be tempting to think that a 'formless' or 'pure' information exists behind the many media representations and transformations it ‘embodies/embeds’. Its also tempting to quickly view ‘formless’ or 'pure' information as being numbers, but it is important to remember that even numbers in themselves are representations of information. Perhaps there isn’t a ‘formless’ or ‘pure’ information or perhaps media representations will always hide the 'underlying pure’ through approximate translations. Regardless, I have temporarily side lined these thoughts of the ‘formless’ or ‘pure’, to focus on the initial ‘form-full-ness’ of information.
In Formed is an interactive digital system with multiple transducers: a capacitive touch potentiometer, a photocell, a LED, and a speaker. In Formed intends to make the user, if even for a second, focus on 'underlying’ systemic information, not it’s external media representations. By representing the same information in the form of light and sound, one can see, hear and use this information simultaneously in multiple forms. The piece gestures at something deeper causing a the user to pause in order to look at other information and their representational forms. Perhaps by focusing on the abstract, we can have a more informed experience of life generally, not just a more informed arts practice.
Iteration 0 executes an ‘analog’ signal. The signal can be recognized in certain forms as a Bach composition. When working with analog signals, it is important to note that the standard Arduino Uno and the Adafruit Trinket do not have DACs (Digital to Analog Converters).
The analogWrite function, which is an approximate misnomer, uses digital Pulse Width Modulation to approximate an analog signal. It creates a square wave by varying duty cycle at a constant duration and frequency. AnalogWrite typically operates at ~490Hz, in a sound context this can be recognized as a B4 musical note.
On the other hand, the Tone function creates an digital square wave by varying frequency at a constant duration and duty cycle. Tone typically operates at 50% duty cycle, which means that it spends 50% of a duration sending 5V and then the following 50% of the duration sending 0V (represented as 127 in 8-bit numeric representation) to the desired output pin.
Initial prototyping was straightforward on the Uno to create tones, but as I moved to smaller and simpler forms, the prototyping became more complex. For example, the Adafruit Trinket does not support the full Arduino core language. It does have the Tone function immediately available. This lead to me to learn about clocks, timers, and prescalers that allow microcontrollers to function. Bruce Halls’ work on the TrinketTone was particularly enlightening. The video documentation of Interation 0 shows the Bach information simutaneously represented as both light and sound.
Iteration 1 also executes an ‘analog’ signal. The signal is determined via human touch on a capacitive touch potentiometer mapping analog input values of 0-1023 to values 0-88 (array length of notes in standard scientific music notation). Scale also played an important role in accurately measuring input information. Adafruit Trinket does not have a serial port for testing and the capacitive touch potentiometer doesn’t support a full 0-1023 input range. This lead me to heavily use my multimeter for debugging instead of software tools. Also in this light, I wrote a calibration function for the setup routine so that a full range of notes would be registered.
1. Bruce Hall's Trinket Tone: http://w8bh.net/avr/TrinketTone.pdf
2. Adafruit Learning: https://learn.adafruit.com/trinket-gemma-mini-theramin-music-maker/arduino-code