Apr 16, 2010 - 5 Comments - BCN and around, Interactive systems -

Using our notion of randomness as a control source

This is a copy of the report of my final project for the Real Time Interaction course at the Universitat Pompeu Fabra. I hope you enjoy it.



In “Interactive composing: an overview” [1], Joel Chadabe calls complexity an important quality of a random number generator, a fundamental component of the response system in his interactive performances. He explains it in terms of throwing dice: there’s no easy way to describe – or predict – the sequence of numbers obtained by that action. The concept of complexity it’s quite clear in that case, and as a consequence of that, randomness it’s far more complicated to be generated by a machine than by an organic system. In the works “Solo” and “Rhythms”, which he explains in the article, the computers used for performance include some degree of randomness in their response algorithms, and then the performer executes some control actions creating a dialog. That way, the performance develops in an interactive way.

The example of throwing dice, and the notion of a controller, somehow made a short circuit in my head. Measuring nature or organic systems, it’s not so difficult to get random generated values. Nature is full of them. Also, in the case of human beings, randomness is even an important componen of one of our favorite leisure activities: gaming.

The act of throwing a dice, drawing a card from a mixed deck or turning the roulette are simple notions of randomness, at least outside the mathematical or academic world. Also they are actions that can be controlled to some extent, but the results of it, can’t. So my thinking when I was reading Chadabe’s article was “why not to control randomness, in a simple, direct way?”.

Recipe for a random controller


Chadabe’s mention of dice rolling seemed interesting as a feasible way of implementing a user-controlled random number generator. It’s of course a complicated way of looking at a very simple process, but I wanted to squeeze some juice out of it, so I took these ingredients:

  • Some dice
  • An Ikea lamp
  • A webcam (I chose a Sony Playstation Eye [2], which has excellent specifications for its price)
  • Paper printed with a scaled-down version of Reactivision Fiducials [3]
  • Glue
  • Reactivision software [4]
  • Pure Data [5]
  • SympleSynth synthesizer [6]

The bricollage work was basically to transform ordinary dice into “Fidiceals”, dice with Reactivision fiducials in their faces instead of dots. I printed the fiducials at the right size, and glued them to the faces of the dice. Then, the rest is mostly software. The scheme is very simple:


Reactivision software generates TUIO (OSC) [7][8] messages which are received by Pure Data. The latter has some patches running which do these tasks:

  • Runs 3 simple sequencers that run at a user-defined tempo.
  • Generates a 4 note bass line, each of them defined by one of six possible notes.
  • Selects between 6 different patterns for four instruments of a drum kit, bass drum, snare drum, closed hi-hat and open hi-hat. Each dice is responsible for determining the pattern of one instrument.
  • Select, by means of the measured position of each dice, and some combination of those values, 16 notes of a lead melodic line.

All those notes are sent as MIDI messages to SimpleSynth, which generates the final sound.

At the beginning of each measure the Pure Data patch detects how many dice are present, which is their position and number (visible fiducial) and selects the corresponding notes and patterns. This way a dynamically changing composition can be made, and modified by throwing dice. In order to keep limited zone for placing the dice, and to try to have a good illumination, I used the Ikea lamp like this:

Initial hardware design

However, it was hard to get a uniform illumination with this configuration, so I finally decided to get rid of the light bulb part of the lamp and just preserve the base and a the lower half of the “spine” of it (it can be unscrewed and separated). In the end, I used ambient illumination and the whole thing became like this:

Final hardware design

And here are some other photos (not included in the original report):

Reactivision screen capture

Playstation eye

And that’s all. So, let the game begin!


The simplicity of this work illustrates the concept of interactivity in the sense than you can perform some actions without knowing exactly what the system is going to give back to you (between some logical limits, of course). However, one can directly manipulate the random number generating mechanism, which gives an interesting feeling of control. Somehow it’s like “randomness in your hands” because a tangible interface is being used to directly “handle” and “touch” the randomness generation mechanism. I believe many other similar works could be derived from this one.


[1] Chadabe, J. “Interactive composing: an overview”. Computer music journal. 1983.

[2] http://en.wikipedia.org/wiki/PlayStation_Eye

[3] Bencina, R., Kaltenbrunner, M. Jorda, S. “Improved Topological Fiducial Tracking in the reacTIVision System”. Music Technology Group, Audiovisual Institute Universitat Pompeu Fabra, Barcelona, Spain.

[4] Kaltenbrunner, M., Bencina, R. “reacTIVision: A Computer-Vision Framework for Table-Based Tangible Interaction”.

[5] http://www.puredata.org/

[6] http://notahat.com/simplesynth

[7] Kaltenbrunner, M., Bovermann, T. & Bencina, R., Costanza, E. “TUIO – A Protocol for Table Based Tangible User Interfaces”, Proceedings of the 6th International Workshop on Gesture in Human-Computer Interaction and Simulation (GW 2005), Vannes (France)

[8] http://www.tuio.org/

5 Responses to Using our notion of randomness as a control source

  1. pin

    Cute fiducials.
    y ese reatable es la cosita mas hermosa que he visto

    21 Apr 2010 - Reply
  2. Andrés

    And why didn’t you put some audio files or something so we can hear how it sounded?

    3 Nov 2010 - Reply
    • JP

      You are utterly right, my friend. As soon as I have the time, I’ll post a video, to show how to it sounds and to explain better how it works.
      Thanks for commenting, mr. Bucci.

      3 Nov 2010 -
  3. JO


    Can you please send me the code ?

    Thanks in advanced.

    8 Dec 2014 - Reply
    • JP

      Hello. I just saw your comment. Are you interested in the Puredata code? Do you want me to send it by email?

      22 Mar 2015 -

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.