May 15, 2007
Back in 1991 I was doing a Post-Graduate Diploma in Music Information Technology at City University. My end-of-year project was on synthesizer interface design, and whilst writing it my supervisor Simon Emmerson suggested I look at a paper written by Barry Truax called The Inverse Relation Between Generality and Strength in Computer Music Programs. It proved very influential at the time, and it became the axis around which my project revolved. Whilst I haven’t thought about it much in the interim, I recently had cause to go back and re-read it. I’ve found it remains provocative. This is my take on Truax’s paper.
The basic idea is that there is a continuum upon which we could place any computer system, where at one end we have what he calls general systems and at the other we have strong systems. A ‘general’ system is non-specific or open-ended, and does not necessarily suggest any particular way of solving a problem: in order to achieve anything, the user will have to generate a lot of input. A ‘strong’ system is the opposite: it will limit the range of options open to the user — with the result that the output will be much more predictable — but it will be much easier to use and many of its functions may be automated. A general system is widely applicable and flexible. A strong system will only have a limited range of uses.
As the title of his paper clearly suggests, Truax only considered this continuum in terms of computer music systems. However, it is equally clear that we can apply it to all computer systems:
- Strong: we could imagine a simple mobile phone that is very easy to use because all it does is work as a phone. It doesn’t require much effort because it only does one job, and it has a predictable output (making phone calls). General: a typical smartphone or PDA on the other hand, will be a phone, camera, video recorder, organizer, MP3 player, radio, and what have you. With the added functionality comes the need for greater input from the user, and it’s output is relatively unpredictable because it depends on what function you’re using.
- Strong: this blog was very easy to set up and is very easy to use. All it does is work as a blog. It is subject to a large amount of automation. General: by hand-coding XHTML I could build a website of any kind provided I put the effort into it.
- Strong: a calculator (simple, easy to use, limited functionality). General: a desktop PC (open-ended, highly complex, can do many jobs).
- Strong: Apple’s Soundtrack is drag’n’drop simple and has a predictable output in the sense that the music is almost exclusively created from prerecorded loops. General: Max/MSP requires a huge amount of knowledge and expertise on part of the user just to get any sound out of it at all, but with the necessary expertise you could build almost anything you like (sequencer, sampler, plug-in, etc.).
You get the idea. What is interesting is that Truax says that somewhere in the middle of that continuum is an area of maximum interaction and “learning potential”. In that sweet spot the system is general enough to allow freedom of choice, but has enough automation to allow the user to quickly get some results and, crucially, to generate feedback. To use the XHTML example from above: yes I could build anything I want by hand-coding, but wouldn’t it be a lot smarter to use something like Dreamweaver to save writing out every line of code by hand and to automate a lot of the boring, repetitive bits?
It’s not quite as simple as I’ve made out. As Truax points out, a single system can be viewed hierarchically as being on a continuum of general vs strong. Consider your computer: at the very lowest level it is shunting around streams of binary numbers at very very high speeds. These binary numbers can be made to represent almost anything, and your computer can, in theory, be programmed to do almost anything. At this machine code level, just getting “Hello World” to pop up onscreen would take a pretty significant amount of effort. However, you normally interact with the machine via an operating system which offers you a good deal of automation: abstract concepts, information spaces, and processes are usually presented to you as visual analogues, and these can be acted upon directly as if they were the data. A further layer of automation is called up when you open specific programmes to do specific jobs, and consequently the computer at that moments becomes ‘stronger’ and more predictable: if you’ve got Photoshop open the output will almost definitely be an image, for example.
There you go. It’s a simple idea but one with hidden depth. It’s certainly an interesting way of considering the potential of a system for interaction.
Truax, B. (1980). The Inverse Relation Between Generality and Strength in Computer Music Systems. Interface, 9, 49-57.