Adventures in Synthesis: Emulating the GSX

After a lengthy hiatus, I return to you with a little weekend project: a (simplified) emulator of Barry Truax’s GSX system for real-time granular synthesis. And the best part is, you don’t have to go anywhere to try it out—it’s embedded in this very post!


In 1986, Barry Truax built the first system that could perform granular synthesis in real-time, allowing the composer to modify the synthesis parameters while listening to the result. Pretty neat, right? In one of my classes, Music Technology History and Repertoire, we recently listened to Truax’s piece Riverrun, and I was impressed with the variety of effects he obtained by transforming simple source material (pure sine tones).

Screenshot of the real deal

I saw that the TaCEM team built an emulation1 of Truax’s system in Max, and I decided to take a stab at it myself with WebAudio. You can see the result below.


This demo is intended to approximate the experience of using the additive synthesis mode of GSX, as used in Riverrun; I have omitted many important features of the original system (support for FM & samples-based synthesis, custom waveforms, tendency masks, presets…), and I have taken liberties with the interface because I didn’t care to faithfully emulate the original PDP-11 interface here in the browser. However, you can make the experience slightly more authentic by discarding your mouse and relying on the tab and arrow keys.

Note that each parameter (aside from INC) has two input fields: one which is the current value, and another optional field to the right, which is the step value. Every RAMP milliseconds, all of the values are incremented by their step (if it is set) times INC.

Frequencies are in hertz, and times (duration, delay, ramp) are in milliseconds. For best results, try this in Chrome. (It works in Firefox, but there’s a lot of extraneous popping.)


Further reading

Barry Truax’s paper on real-time granular synthesis

TaCEM paper on Riverrun and emulating the GSX

More about Riverrun on Truax’s website

The font used in this demo is Peter Hull’s VT323.

  1. To clarify, neither TaCEM’s emulation nor mine actually run Truax’s code on emulated hardware (a PDP-11 with DMX-100 signal processing computer); rather, they emulate the GSX by reimplementing its functionality (in Max/MSP and WebAudio, respectively).