StonerSound 1.2

There's a truly brilliant screen saver that comes with SGI machines; it's called ElectroPaint[*], and it's one of the more hypnotic things I've ever seen in my life. It's a three-dimensional helix of particles... and they move and spin and change color and zig back and forth, all at once, but sequentially. Changes start at one end of the line and ripple to the other end. It is beautiful. If you start it up, people slowly gather around and stare at your screen until the room is full. If you don't shut it down, I think you starve to death.

[* A trademarked term, I am told. See below.]

Unfortunately and dammit, the source code has never been released, and it only runs on SGI machines.

For a long time, I've wanted to recreate ElectroPaint. (There's a tiny, tiny fraction of an attempt in System's Twilight, which appears when you look at the "Pretty Thing".) The mechanism never quite gelled in my mind, though. Most of it was pretty obvious -- at least it seemed obvious -- but the technical details of that ripple effect were hard to pin down.

One day, I was thinking along about something totally different, and this Thought struck me. I swear to you, I don't know where it came from. The Thought was this: "I bet I could implement the same thing in sound."

It is, of course, absurd to talk about porting a visual screen saver to audio. I did it, instead. Hammered out the only way the algorithm could possibly work, implemented it (using a nice recursive structure, if I do say so) and here we are.

You can download the Mac executable. It's a BinHexed file, about 30K. (Yeah, tiny.)

If you're interested in modifying StonerSound, you can also download the source code. (CodeWarrior Pro project and source, 67K.) Or the same source as a .tar.Z file -- it's still MacOS source, but at least non-Mac people will be able to read it.

I think I got it pretty much right. It's always changing, sometimes predictably and sometimes surprisingly. Large changes occur in a "rippling" fashion (listen for the 1, 12, 123, 1234, 12345 pattern.) If you try to find patterns, you can, just often enough to keep looking for them. Once you start listening, you can listen for an indefinite time. At least, I can.

I use the QuickTime Musical Architecture for playing sounds. If you don't have QTMA, you'll have to download QuickTime from Apple's web site. I believe QTMA has been in QuickTime since QT1.5, but I've only tested StonerSound under QT2.5 and 3.0. It should run on any Mac with System 7 or later.

For those of you with MIDI hardware -- the QT3.0 control panel ("QuickTime Settings") has a "Music" panel. StonerSound uses whatever MIDI output system you select in this panel. I don't know exactly how it interacts with MIDI hardware, since I have none myself, but I'm told it does work.

And, finally, if you want to see what the original screen saver looked like -- take a look at StonerView. When I finished the audio translation, I went back and made a visual version.

StonerSound is copyright 1998-9 by Andrew Plotkin.

StonerSound is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

The original Electropaint is by David Tristram. Tristram Visual holds a US trademark on the name Electropaint. Play nice.

Last updated April 29, 2000.


Zarfhome (map) (down)