Thursday 30 April 2009

How Does the ReacTable Work?

I previously mentioned that the ReacTable makes sound when objects known as tangibles are put down on the surface of the table. Placing, moving and removing certain tangibles can determine how the music develops. Some tangibles can affect others in interesting ways; hence the name “ReacTable” and they act like the knobs on a traditional synthesiser. These tangible objects clear made out of clear plastic and have black and white pictures called fiducials inlayed within. It is these fiducials that make the tangible objects so important. These fiducials can be downloaded for free from the following website:

http://reactivision.sourceforge.net/data/fiducials.pdf

There are over 200 fiducials and each is different, they act like bar codes you see on products in a shop. But why is everyone different, why are they so important and how do they make sound? ReacTIVision
Like in a shop, when you go to a kiosk with your shopping each item's bar code is scaned so that the shop knows what you are buying and to remove it from the stock list and how much to charge for that product.


Within the ReacTable cabinet is a hidden video camera, the camera is connected to a computer which runs program called ReacTIVision.


ReacTIVision then analyses important factors about the fiducial,

  1. the fiducial’s identity number,
  2. if the fiducial is there
  3. if the fiducial is taken away
  4. where the fiducial is in regards to the centre of the table,
  5. where the fiducial is in regards to other neighbouring fiducial’s
  6. where the fiducial is in regards to its own axis


It is ReacTIVision's job to captures this information in a real time video stream which is why when you add, remove or rotate the fiducial something happens immediately. It is up to you, however, to program the computer to do or play something when these actions occur.
Delving a little deeper into the theory we shall learn that to ReacTIVivision is a standalone application that sends the fiducial’s information to a connection manager in order to have something we can see and hear.


Careful code must be written for the computer to understand each fiducial’s motion and give it a purpose for example:


ReacTIVision sees...


· when fiducial number one is added play sound,
· when fiducial dumber one is rotated increase pitch of sound,
· when fiducial number one is removed stop sound.


Yet none of this can be achieved if TUIO is involved.


TUIO Protocol


ReacTIVation sends the analysis of the fiducial activity to a connection manager known as TUIO protocol. TUIO's job is then to encode that information, which means that it transforms one format to another so another program can understand it, like someone translating French into English so a English man can understand.


The connection manager then pass's the translated information to a TUIO client which then in turn decodes the information. This TUIO client is available to down load in the following programming environments:

C++JavaC#
Processing
Pure Data
MaxMSP
Quartz Composer


It is the combination of TUIO trackers, protocol and client implementations that makes the ReacTable and other tangible table top musical instruments available today.
I will be programming my ReacTable using Pure Data aka PD mainly because it is free but also because my mentor knowledge in PD is advanced and he shall be helping me throughout my journey.