like jon i've been taking lots of photos with my olympus d460z. it's a nice camera. i've been printing them with an epson stylus photo 870. for someone on a rather low budget, it's a really nice setup and the printout quality is exceptional. the epson printer driver (gimp-print) for linux is very good. the printer comes with a spool of 6x4 photo paper that you can hook up to the printer. i'm looking into exploiting that to automatically generate very long images. the paper is continuous, so there's no reason you can print things out that are 60x4 or whatever! on the performance side, i've been working with pongserver (http://music.columbia.edu/~douglas/pongserver/). like florian, i find scripting to be one of the most powerful aspects of working with linux. i like to mix careful design with unexpected events in my performances, and i've found that using config files that allow for random settings works very well. that way i can pick and choose what's fixed and what's not. for example, often a performance needs to be a certain length. so time-based events need to be somewhat fixed. but positions of objects on a screen, or sythesis parameters can be flexible. here's a shell script i used in a recent performance. it's a bit long. but it shows how to start up processes, let them run for a certain amount of time and then kill them and start something else. although the times are fixed, i find that in performance it's not possible for me to keep track of things like "100 seconds", so i'm still surprised by events when they happen. after the shell script is an example of one of the config files i used. douglas ----- this is launch_milan: ----- # run me like this: ./lauch_script_example 52000 ./bin/pongserver $1 & sleep 1 ./bin/guiclient localhost $1 \ ./milan_configs/guiclient.conf & sleep 1 ./bin/addsynclient localhost $1 /dev/dsp1 \ ./milan_configs/addsynclient.conf & sleep 1 ./bin/wireclient localhost $1 \ ./milan_configs/tracer.conf & sleep 1 ./bin/wireclient localhost $1 \ ./milan_configs/star.conf & sleep 1 # save pid of star ps -eo pid,args | grep star.conf | awk '{print $1}' > star.pid sleep 4 ./bin/silentclient localhost $1 \ ./milan_configs/paddle.red.conf & sleep 4 ./bin/silentclient localhost $1 \ ./milan_configs/ball.yellow.conf & sleep 2 ./bin/silentclient localhost $1 \ ./milan_configs/paddle.purple.conf & sleep 5 ./bin/silentclient localhost $1 \ ./milan_configs/ball.green.conf & sleep 4 ./bin/silentclient localhost $1 \ ./milan_configs/paddle.lightblue.conf & sleep 3 ./bin/silentclient localhost $1 \ ./milan_configs/paddle.blue.conf & sleep 200 # 200 seconds ./bin/wireclient localhost $1 \ ./milan_configs/wire.conf & sleep 1 # save pid of wire ps -eo pid,args | grep wire.conf | awk '{print $1}' > wire.pid sleep 1 # kill star kill -TERM `cat star.pid` sleep 1 sleep 100 # 300 seconds ./bin/loopclient localhost $1 /dev/dsp2 sounds/brey4.aiff \ ./milan_configs/loopclient.conf & sleep 100 # 400 seconds: 1/2 way point ./bin/wireclient localhost $1 \ ./milan_configs/electron.conf & sleep 1 ./bin/raindropclient localhost $1 \ ./milan_configs/raindropclient.conf & sleep 1 # kill wire kill -TERM `cat wire.pid` sleep 1 ./bin/fergieclient localhost $1 /dev/dsp0 \ ./milan_configs/fergieclient.conf & sleep 200 # 600 seconds ./bin/wireclient localhost $1 \ ./milan_configs/petal.conf & sleep 300 # 900 seconds killall pongserver rm *.pid ----- this is loopclient.conf: ----- # default controlclient setup file # use * for random settings # name: up to 9 characters will be used, no quotes or special characters loopy # object color red 0-255 64 # object color green 0-255 64 # object color blue 0-255 64 # object color alpha 0-255 0 # object shape: see messages.h for values # 0 = ball; 1 = paddle 0 # object size stuff: 10x10 is normal ball size, 10x40 or 40x10 paddle size # object width 10 # object height 10 # position and velocity data will be constrained by the server setup # starting x position * # starting y position * # x velocity * # y velocity * # shape of space: see messages.h for values 0 # gravity constant (not implemented) 0 # collision drain -1000 # make sure to end this file with a hard return!
