This Instructable will guide you through the steps necessary to recreate our Physical Computing project of a table which generates music based on the positioning of tiles placed on it.
Step 1: Download the Necessary Files
If you do not have Max MSP 7, you may download Max Runtime for free here which enables you to use, but not edit Max applications.
- Download Reactivision and the Max MSP Tuio client here. (We are using Reactivision 1.5 for Mac OSX.)
- Download this folder containing two Max patches: StepSequenPoly.maxpat and ez-synth2.maxpat.
- Add both of the patches included in the archive below to the TUIO11_MaxMSP directory (Alternatively, if you are using Max MSP 7 and not Runtime, you can add the TUIO client to your User Path: Options - File Preferences - Add Path.)
Step 2: Purchase or Build Necessary Components
You will need a table with a glass surface and a camera to view the objects. We prototyped the project using a laundry basket and a clear piece of acrylic. We are using a coffee table purchased at Ikea and a Logitech Webcam.
- Mount the camera facing upwards at the table surface.
- Determine the field of view of the camera (using Photo Booth or a similar application) and mark that section of the table.
Step 3: Create Tiles
- Consider how many tiles you would like to fit on the table at one time both horizontally and vertically.
- Find the file containing fiducial markers within the reactivison directory and print the first sixteen markers, ensuring that you scale the markers such that they are small enough to fit on your tiles.
- Using Corel Draw or a similar modelling software create a tessellated grid of hexagonal hairline outlines to be laser cut. Make sure that the outlines are the correct dimensions.
- Inside of each hairline outline put a smaller solid hexagon to engrave a texture into the tile’s top.
- Place your acrylic sheet in the laser cutter, and print the file.
- Once the job is complete, remove the cut hexagons.
- Use sandpaper to roughen the tiles on their unengraved side, then apply a coat of spray paint on top.
- Once the paint has dried, the fiducial markers must be attached.
- Set a tile on top of a sheet of markers with a marker centered beneath it, and use a sharp knife to cut around the tile’s outline.
- Next, glue it onto the painted side of the tile with the marker facing away from the tile using spray adhesive.
- Repeat this cutting and gluing for the remainder of the markers
Step 4: Run the Application
- Run both the reacTIVision application and StepSequenPoly.maxpat.
- Double click on the box titled “p VisionStuff.”
- Hold one of the tiles to the camera and determine the maximum x and y values the camera reads.
- xpos0 refers to the X position of the 0 fiducial marker
- ypos0 refers to the Y position of the 0 fiducial marker
- To adjust the volume change the slider above the speaker
Step 5: Make Music
The table functions as polyphonic step sequencer. Horizontal placement refers to beat location and vertical placement refers to pitch. Multiple tiles placed in vertical alignment will yield harmonies.