Scanline


Scanline by Rustbloom (2011)

Back in October 2011, we wanted to attend the forthcoming Alternative Party event. I think one could say it is a demoscene event, but with a broader or different scope or goals – for example, encouraging or embracing artistic expression with niche platforms (either niche by being rare, or niche by being so old).

So, we thought about taking part in the alternative demo competition. The platform is mostly free choice there, but the compo name itself directs you to think about something different. I thought that maybe it could be interesting to make a demo which would consist of only a single static line with changing colors, and try to take most of that limitation. That is, to make a “1-Dimensional Demo” (at least by my definition).

Early on I decided there is no need to try showing technical mastery with such a hard limitation, and decided that it is enough to just make a vertically big image and small amount code which shows that image one line at a time, until the image ends. I made a few effect prototypes with Photoshop, synced to music by checking music positions in milliseconds and converting those to Y-pixel coordinates in the image, after deciding on a frame rate.

It became clear that there should be a good piece of music to go with the effects, because good audio can add so much more to the experience. I asked my friend !Cube if he could make up a composition starting with some piano playing, since I thought it could make a nice start to show just white bars on black background, flashing with colors synced to the piano.

To get beyond my tests (still accompanied by my own music), I asked stRana to help me with the actual production and design. That and just a few days later, most of the pieces started coming together, and we ended up finishing it nicely in time, a day or two before the event started.

For the tech part, I actually just expanded on my first proto tests a bit more. The production is built with Processing. It was mostly fine for the task, except that using the accompanying “minim” library for audio playing didn’t seem to be a perfect choice. I’m not sure of the contributing factors, but it seems the audio latency varies by computer and maybe even some times on the same computer. It didn’t seem to help much to ask for playing position from the audio system, since that seemed to be a too granular value not really telling where the actual audio play “head” is going. But, I didn’t want to rewrite the whole production just to fix this thing since it worked fine otherwise.

In the end we did really fine; Scanline by Rustbloom ended up winning the Alternative Demo competition. The weird thing is that the prizes in Alternative Party are usually strange obsolete leftover stuff donated by companies; we got two huge rack-mountable servers which were probably really good in their heyday, back in 2003. :) But we also got a bit of actual money on top of that (yay!).

You can download the executable version here: (.zip)
Download for Windows & Mac OS X (hint: source code is also there if you look for a source/ folder)

Or just watch it from the YouTube right here:

Code, design: tonic (that’s me)
Design: stRana
Music: “Sense” by !Cube