GyroScratch – Gyroscope audio playback with Max/MSP

GyroScratch is an open source application that uses an x-OSC and a gyroscope attached to a 7″ record to play and scratch audio files. The demo can be downloaded from the project repository, which provides a good starting point for connecting x-OSC to Max/MSP.

The Max/MSP patch uses readings from an IMU 6DOF Razor to control the playback rate of an audio file so that when the record spins clockwise the music plays forwards and when the record spins anticlockwise the music plays backwards. The Razor in this demo was modified to bypass the high-pass filters on the gyroscope to prevent the output drifting to zero when spinning at a constant speed. To demonstrate full-duplex messaging the current audio level is also indicated on a VU meter made from 16 yellow LEDs mounted on stripboard.

This demo was inspired by a neat presentation that I saw at NIME in 2011 by Nick Bryan called “Two Turntables and A Mobile Phone” (video). x-OSC is the perfect interface device for recreating this setup as it provides low-latency wireless transmission of the gyroscope readings which can be received in Max/MSP directly. The result is an extremely expressive and smooth response to gestures made with the record.

x-OSC’s VOUT and GND connections are used to power the Razor, and its high gain Z axis rotation reading should be connected to input 1 on x-OSC. The VU meter is simply a direct connection from all 16 outputs to individual LEDs. These connections are shown in the wiring diagram below. x-OSC should be configured via the browser page with input 1 set to analogue, sampling at 150Hz with all outputs set to digital.

Gyroscratch-Wiring-DiagramOnce the hardware is set up correctly, launch Max/MSP and then:

  1. open the file GyroScratch.maxpat
  2. activate audio by pressing the loudspeaker button
  3. when the record is stationary click the 0 RPM button
  4. set the record playing and click 33 RMP
  5. behold, you are Grandmaster Flash

To reduce the audio latency as much as possible, I would recommend clicking the menu item “Options” → “Audio Status…” in Max/MSP and reducing the “I/O Vector Size” to 128 or below. The scratch.wav file included in this demo is edited from Killa Tactics Belt Drive Breaks.

Open-source resources are released under the Creative Commons Share-alike 3.0 unless an alternative licence is specified in source files.