On Mon, 1 Oct 2001, Paul Winkler wrote:
> regexps at sixty paces? :)

use Curses;keypad initscr;nodelay 1;box qw{| -};($l,$d,$k,@f)=(1..3,[10,10]);&
n;while(){refresh;@f=([$f[0][0]+$d%2-($d==1)*2,$f[0][1]+$d%2-1+($d==2)*2],@f);
select$f,$f,$f,.06;($c=getch)+1and$d=4-($c%2?2:0)-($c<260);addch@{pop@f},' 'if
@f>$l;$l+=$_=inch@{$f[0]};if(!/ /){/\d/||die;addstr 0, 60,$l;&n}addch@{$f[0]},
'O'}sub n{while(){@v=(rand 24,rand 80);inch(@v)eq' '&&last}addch@v,''.rand 10}

enforced indenting would completely ruin this code :)

more seriously, i look forward to all these different scripting languages
coming together in the future - i think you can already embed perl in
python and python in perl.  further, there is much talk of parrot, the new
virtual machine which perl 6 will be based on, supporting python, ruby and
java as well.  http://www.parrotcode.org for details.

i saw a talk about that the other day and the amount of energy behind it
is inspiring.

> This sounds cool. Do you go across a network because you want multiple
> human users involved, or does it somehow make it easier for you to do
> what you want by yourself?

both.  i collaborate with adrian ward as 'slub'.  he wrote our software
synthesiser (http://stub.org/MSG/) and writes mainly realbasic
applications under macos that also sync and communicate via the server.

i also like the idea of hacking up lots of scripts and running them all
at the same time, conducting them like a tcp/ip orchestra.

> > the thing i'm doing at the moment is a strange drum machine.  each sound
> > is an object, sitting in a loop. each object has certain values of
> > strength (how good it is at fighting for space in the loop), racism (how
> > close they will get to objects of a different type), dispersal (how close
> > it will get to objects of the same type) and friendliness (maximum number
> > of objects it will share a point in the loop with).
>
> This is a very interesting approach. I'm curious about a couple of
> things that aren't obvious to me from the above:
>
> - What does "space" mean in this context? If two samples are looping,
> what would make them close to or far from each other?

at the moment it's only in terms of beats over time.  so a very simple one
dimensional space.  the code allows the space to be broken down into bars,
which is like a second dimension for the objects to consider.

> - What does "type" mean in this context?

originally it meant the object subclass, but at the moment the type is the
sample number.  so objects that play the same sample interact with each
other differently with objects with different samples.

> - Do you find that these characteristics are audibly identifiable?

> i.e. if you set up a script to create some random values for
> friendliness etc., can you then reliably listen to some loops and pick
> out the "friendly" ones and the "racist" ones?

to some extent.  a particularly racist, unfriendly one would be noticeable
because it would have silence around it.  lots of objects of the same type
with low 'dispersal' would come out as a drumroll.

> Or is it irrelevant at the listening end?

i think for this code you'd have to understand how it works to a great
extent before you could make it produce interesting loops.  i could be
wrong though, i'll try feeding it random parameters sometime.

as for the passive listener, i am unsure but feel the best way to
appreciate music is as something seperate from the compositional
process...  i mean, i don't think reading the code would help enjoy the
music.  but again, that's down to the individual listener.

alex

-- 
"the Internet is DEEP, WIDE and ANGULAR, you can't ask for much more."


Reply via email to