Wednesday, 11 March 2009


I am moving everything from Blogger to Wordpress.

Everything can now be found here:

This page will automatically redirect in a couple of seconds...

Tuesday, 23 December 2008

Playing 'Pong' with the GameTrak

Sunday, 2 November 2008

OSynC - Synchronising applications with a VST Plugin

OSynC-lite is a simple VST 2.4 plugin that transmits basic host transport information (from a VST compatible sequencer application) to another application on the same machine, as OSC messages.

The OSynC-lite plugin obtains ReWire-like transport information from your 'host' sequencer and creates useful messages, for use in OSC compatible applications.

This information currently includes:
  • /play (returns a 0 or 1 depending on whether the host is playing)
  • /barcount (returns total barcount)
  • /bar (returns a mod 4 bar count, useful for quickly determining position in phrases)
  • /beat (returns the current beat of the bar)
  • /fraction (returns either incrementing 16ths or 32nds depending on settings in the OSynC Plugin, ie. 0-15, or 0-31)
  • /msticks (returns a float millisecond length between fraction increments)

Why is this plugin useful?

This plugin was originally intended for personal use. I had a need to send sync info from one application (Cubase) to another (Max) but not necessarily steal/route the audio from one application (Max) into the other (Cubase).

The Master/Slave (or Mixer/Synth) setup with ReWire is always too complex for me, especially when using Max. I can't remember which program to start first, and I don't always want the audio of one application being sent to another.

The part about ReWire that I like most though is the transport controls. This plugin allows ReWire-like host transport information to be sent (without the need to worry about setting your Audio Driver to ad_rewire in Max for example).  Using an OSC-based sync plugin also frees one from tying up the audio I/O with the ReWire driver.

It is also useful if you want to send transport synchronous messages/controls from an audio application to a non-audio application.  An example of this is sending the clock from a sequencer such as Cubase to Processing for host-synchronous events. An example of sending clock/transport infomation from the host to Processing is included in the OSynC_Processing folder contained in the zip archive.  Also included is a simple Max5 patch for capturing output from OSynC-lite.

OSynC-lite can be downloaded here:
OSynC-lite v0.2a - Initial release, alpha, November 2008 (UB VST for Mac OS X)
Read the Read Me file included for usage notes.

This plugin is built with Pluggo for Mac OS X, so you will need to install Pluggo Runtime (free) from in order for it to work.  This plugin is still alpha. I will be adding features as I need them or if any are requested.

I am about to start some research on live synchronous performance systems, and while this plugin is really simple, it is a nice place to start for simple control rate synchronisation between applications.  My first application with this is to drive the Monome as a sequencer from Cubase.

Let me know if you find the plugin useful.
alex at x37v dot com

Labels: , , , ,

Friday, 10 October 2008

Pong in Processing

Left player uses ‘q’ and ‘a’ for up and down.  Right player uses ‘]’ and ‘'’ for up and down.

The game currently goes on indefinitely.

Labels: , ,

Sunday, 17 August 2008

Mad Catz Gametrak Mod for Max/MSP

So it seems that the Gametrak controller that is designed for use with the PS2 doesn't want to work with Max

A number of people have tried removing the board inside the unit, replacing it with a Bitwacker or Arduino, but after looking at the board in the Gametrak, I found that there is an interesting 'feature' built into the existing boards.

This easter egg is probably designed so that one unit can be manufactured to be used across a variety of hardware platforms, from PS2 to PC to Xbox.

Here's what I did to get it working:

Open the case by removing the screws marked (I pierced the 'feet' with the screwdriver so that I didn't have to re-stick them later).

Remove the board by unscrewing the screws marked.

Flip it over to reveal the underside.

Rotate the entire Gametrak, so that the board is oriented like this.

This is the cool bit.  Notice the PC label above?
(There's also an Xbox label to the right).

I shorted this connection with a knife while it was plugged in to Max, and a burst of numbers came out of the 'hi' object.  To make this connection permanent*, I put a bit of solder to make a bridge between the two contact points, and now it outputs 12-bit integers on six discrete axes (left hand x, y & z; and right hand x, y, z).  The foot switch works too.

Note: the first gen Gametrak from In2Games doesn't seem to have this 'feature'.
* There's a tiny layer of lacquer on these contact points that I scratched with a knife so the solder would take to the metal.

Labels: , , ,