Monthly Archive for July, 2004

The Pachinko Effect

Image of a Pachinko machine shamelessly leeched from a Google Image search

I read this post on Even’s beautifully designed polarfront.org a few weeks ago and it struck a chord,

“When surfing networked images of Orkut relations and the latest Livejournal images (actually there used to be a page on adcott.net that displayed only the images - that rocked) consciousness seems to gather to a little spot and then fade completely. Akin to the brass knobs on Japanese pachinko machines, it’s not meaningfull interaction, but a ruse tricking you into believing you are affecting outcome, a trick to facilitate immersion…”

I’d argue “The Pachinko Effect” could be used to describe the way a lot of interactive media works operate. This is not to put them down, on the contrary, it is to note that there are many different modes of interaction. I like the idea that a work could be designed so that user interaction has little to no effect on the work, but still gives the user a feeling of agency. This approach could work well (or just be frustrating) for more ambient works. For example, a row of buttons could have nice roll-over images or mouse-down actions, maybe even make beeps or clicks when they are pressed, but have no effect on the greater outcomes of the work. Or perhaps the meaning of these interactions could be so abstract and convoluted that they are as good as random. If the work was as exciting as a pachinko machine to watch and listen to I think people would come back for more :-)

Quicktime, MIDI & Audio

Since Version 2.0 Quicktime has had the capability to play MIDI files using either a built in sound synthesiser package or any hardware MIDI device. As I am interested in creating audio-visual works and programs work with existing digital interfaces and networks I recently began to investigate the possibility of triggering MIDI events from a Quicktime Movie. I could create a ‘click’ track to run in synch with a video track and trigger live sounds and effects through MIDI to excellent audio programs like Ableton Live with each clip. This was all looking very exciting except that the ability to send these MIDI signals seems to have been lost.

A ‘music’ track can trigger sounds from;
1. The built in sound synthesiser (licenced from Roland); or
2. Another collection of samples or ’sound font’ if it is installed on the user’s computer; or
3. Sound samples embedded in the music track itself.

One of the cool things about dealing with sounds this way is that the pitch and tempo of sounds can be controlled relatively independently. For example with a drum track composed of short samples arranged in synch with a video loop, the player could slow down the speed of the clip and the drums would follow. Or, the drum sounds themselves could be pitched up or down without effecting the video or going out of synch.

While this provides a lot of potential options for music output from Quicktime I’d really like to be able to interface with other MIDI hardware and software.

After a long search for a solution to this problem I still haven’t achieved this, but I’ve found some extremely cool little audio/MIDI utilities which I’m already finding useful:

Audio Hijack Pro Logo

Audio Hijack Pro from Rogue Amoeba allows the audio recording of any Mac OS X application’s output. It can be used to record internet radio stations in any format, live performances and even game soundtracks to MP3 or AIFF. Another cool feature is the ability to tap into Core Audio’s ability to process VST and Audio Units real time audio effects. This means you can add reverb, equalisation, distortion, delay etc to any audio in real time and record it to hard disk.

SoundFlower from Cycling ‘74 is another useful little utility that gives you an additional ‘virtual’ audio input and output for routing sound within OS X. Similar to the way Propellerhead’s ReWire lets you plug some audio applications into each other, SoundFlower also allows any audio application to pass sound to another for further processing. This means I can trigger sounds in a Quicktime movie and process them in Live. This rocks.

Jack Tools Logo

Jack Tools is another utility which does the same sort of thing but I haven’t had a chance to test it out yet. SoundFlower seems better at first glance but I’m sure they are quite similar.

FingaMIDI

FingaMIDI is yet another cool audio utility I found as part of my search. This one is definitely going to be used in future live performances. When activated via a Sytem Preferences pane, FingaMIDI turns the trackpad of any recent Powerbook or iBook into a three-dimensional MIDI interface. Just like a Korg Kaoss Pad, the trackpad outputs the absolute X and Y co-ordinates of the user’s finger as well as Z pressure.

Codecs

One of the most important discoveries I made in working on Vidget Version 1 was the H.263 Quicktime Codec. For this sort of work it was very important to use a codec which didn’t require a huge amount of CPU power, provided fairly good quality images, at low data rates and which could be played both forward and backwards. In the case of most codecs the rule seems to be: “fast, small, good, pick two”.

Sorenson 3 video features excellent images at small file sizes but requires quite a bit of CPU (I’ve found it gets a bit choppy when I try to do too many things at once but others such as jeanpoole
swear by it) and is no good at playing backwards.

I used to think that the Photo-JPEG Codec was good because it was able to play well backwards or forwards but it only looked decent at high bitrates and was quite CPU intensive.

3ivx D4 4.5 is a 3rd party MPEG 4 codec which produces better images than the standard Apple MPEG 4 codec at quite low bitrates. This is largely due to the fact that it features two pass variable or constant bitrate encoder. I definitely plan on using this codec for future linear works but it is a bit too CPU intensive for this project.

H.263 will soon be joined by H.264, which has designed to be scalable from limited bandwidth applications like video phones right through to HD. I can’t wait.

About Vidgets

I’ve been toying around with names for what I am making in this project: ambient, networked, desktop, interactive, video machines? Noisy, digital, VJ, software instruments?

It gets confusing when I describe the works as Quicktime Movies: “like short films?” no, for the moment I’m not really interested in narrative; “what’s so interesting about putting a video file on the internet?” well the movies can actually talk to each other and the user can control how they play; “so its like Choose-Your-Own-Adventure?” um, kinda, not really…

I think I was on the right track when I started thinking about the works as machines, like Russolo’s ‘noise machines’, Aarseth’s ‘machines for the production of variety of expression’, Deleuze and Guattari’s machines, and Lou Reed’s Metal Machine Music.

The question then became, “how do these machines work in a desktop environment?” The works are like screen savers except that rather than going away when you move the mouse, they potentially get better because you can manipulate them. They are like games except that to a large extent the user makes up their own rules and goals and can choose their own level of participation. They are like demos and visualisers except that the programming is very basic and the graphics are composed of video files rather than generative algorithms. Unlike all of these, the works needn’t take up the whole screen. They should be able to run alongside other programs, like visual music in the background. Like widgets.

The idea of video-widgets became vidgets and I think I like the sound of it.

About Widgets

I was familiar with the term ‘widget’ as both a kind of gadget to be used in examples (I always picture being in a year seven information processing and management class doing a graph with the title ‘Widget Sales up 17%) and an element of an interface (eg. a play/pause button widget), but recently the term has become quite a trendy buzzword and is used to describe a class of applications or desktop accessories which sit somewhere in between being ‘content’ like a basic web page, and ‘application’ like a word processor or design tool.

For the past couple of years a program called Konfabulator! has been providing Mac OS users with a suite of functional widgets and the tools to create their own. Check out their site and download the free version. Some great examples of widgets developed by the makers of Konfabulator are weather forecasts which automatically update themselves drawing on weather feeds, photo viewers, calculators and iTunes remote controls which display song information in real time. I had heard of Konfabulator ages ago but I wasn’t reminded of it until I watched the Apple WWDC Keynote presentation. In a very long presentation focussing on the the next version of Mac OS X, Tiger , amongst a number of very cool new features was one called Dashboard.

From the website:
One Dashboard, Many Widgets
The Dashboard is home to a new kind of application called Widgets. Widgets are mini-applications written in JavaScript that are designed for fun as well as function. They keep you up to date with timely information from the Internet such as stock quotes or the latest view from your favorite Web cam. They can also provide quick, simple access to frequently-used applications such as a calculator, a playback controller for iTunes and a contact look-up for Address Book.”

One of the best things about widgets such as the ones developed by Konfabulator and copied by Apple is that they know their place on the desktop and in the network. What I mean by this is that each widget has a single function and does it well, and that it is able to interface with other programs and files on local and remote systems. A good example would be the standard calculator which comes with the current version of OS X. While a basic calculator is a useful tool, making a calculator which is ‘aware’ that it is on a computer which is connected to the network means the user no longer has to look up currency conversion rates manually because the calculator program can automatically update rates from a remote service.

I don’t think this ‘new kind of application’ is all that new, but it is definitely an interesting one to be explored in art practice.

Vidget 1: an interactive networked VJ application for Quicktime

Its been a bit quiet around here for a while and this is why. I’ve been working pretty solidly on this piece for the past couple of weeks leading up to a gig I co-organised last week. Segmentation Fault is a semi-regular experimental music & visual night we put on every couple of months and proved to be a good motivation (ie. deadline) to get a work together for. in my research I am mostly interested in applying VJ aesthetics and methods to the desktop environment where the user becomes the performer, but its always fun to perform in front of an audience of humans in a room.

Now its time to release this draft to the world and see what people think. Click on the images below to load the two parts in Apple - QuickTime Player.

The scrambled looking black, white and green image will load the ‘output’ movie. This is the movie to be projected on a screen or viewed on a second monitor. It is designed to run at full PAL resolution (720 * 576) to suit the TV output of my laptop. If you want to try it out on a single monitor setup, you can load the movie and select ‘Half Size’ from the Movie menu in Quicktime Player. This movie is really just a kind of holder for up to three other movies. To load different clips into the ‘output’ movie you will need to use the ‘interface’ movie below.

This movie controls which video loop is loaded in which layer of the output movie. Along the top of the window are the numbers 1, 2 and 3. These represent the three layers with 3 being the ‘highest’, 1 the lowest and 2 in between. Next to each of the numbers are playback controls for each layer. Once clips have loaded they may be played forwards and backward, in slow and fast motion and stepped through frame by frame. Next to the playback controls are the graphics mode controls. These control the ways in which each of the layers are blended.

‘Blend 0′ means the clip is completely transparent. It is probably a good idea to switch to this setting if you are going to load a big clip as it will take a while to load and display a still image whilst it is doing so. ‘Blend 100′ means the clip is 100% opaque so any other clip below it will not be seen.
‘Add Max’ adds the bright portions of the clips image over the clips below, leaving the dark areas transparent. ‘Add Min’ adds the dark portions of the clips image over the clips below, leaving the lighter areas transparent. ‘Sub Pin Blk’ subtracts the bright areas of the clips image from the ones below so white snow on a black background will result in black snow on a transparent background. ‘Inverse Or’, ‘Exclusive Or’ and ‘Inverse Exclusive Or’ produce other effects but to be honest I’m still not sure exactly how they work :-).

These graphics modes probably won’t be much fun to play with until some different clips are loaded into each of the layers. To do this I have designed two different patch loaders. If you click on the 1 or 2 with red # symbols next to them the # will change to a *, telling you which loader is active. The first thing to do is select which layer or ‘channel’ to load the clip into. These are selected by clicking the large 1, 2 or 3 at the top. Next a clip may be selected from the list at the bottom half of the controls. The clip’s name and id number are displayed and when the ‘Do It!’ button is pressed the clip will start to load. (If you are wondering why it is called ‘Do It!’ go see Starsky and Hutch :-))

Note: there may be a couple missing - such as the ‘live input’ at the bottom right, so if you get a ‘broken movie’ image just try another clip.

The Livestage Pro project files can be found here: interfaceproject.zip outputproject.zip

Segmentation Fault 6/6/04

Segmentation Fault 6/6/04

Segmentation Fault 4
More loud noises and bright lights from:

Dale Nason - performing live sound and video projections

Doktorb Robotnik [aka Adrian Lucas] vs David Wolf - stomp boxes vs laptop in sonic showdown
Tim Webster - live object orientated visuals

Null Hypothesis [aka Elaine Carter] - crunchy beats and glitchy tones [dj set]
dpwolf [aka David Wolf] - broken desktop visual experiments

Free 8:30 pm
Tuesday 6th July
@ Loop
23 Meyers Place