Computer Music in Squeak

Alan Kay Alan.Kay at squeakland.org
Mon Jul 29 12:52:30 UTC 2002


Richard --

An interesting way to start off would be to make a simple sampling 
synthesizer using etoys. This is particularly easy if the computers 
have microphones. In Squeak you can record a sample, get an etoy 
"holder" with the samples in it, and write a two line script that 
will play it back at any pitch. In etoys this is modeled as 
"animating the loudspeaker cone" and there is just such an object 
that is a standin for the cone. The side effect of animating it is to 
fill up the computer's sound buffer which eventually plays out. There 
is a speed up of "fires per ticks" (in a script menu) that allows 
switching from animation speed of 10 or so per second to running 
10,000 times as fast, which is fast enough for real-time synthesis. 
The script looks like:

           sampleholder's cursor increase by 1
           speaker's coneposition <- sampleholder's sampleatcursor

If we change the 1 to a 2, we skip every other sample and the pitch 
goes up an octave. If we put 1.5 in there, then we get a note in 
between. The kids quickly see that each pitch has a magic number, and 
they immediately make buttons in the shape of piano keys, etc.

We usually work our way up to this with the kids by exploring the 
powerful idea "increase by". First we do something like:
          car's x increase by 5
to achieve constant velocity horizontally. By changing this number 
and eventually getting it from a slider or joystick, the kids see 
that this number stands for and creates the idea of speed as the 
script ticks away.
      Then we do animation by putting images in a holder, and the 
script looks like:

             holder's cursor increase by 1
             mickey's graphic <- holder's graphic at cursor

On each tick, mickey's costume ("graphic") changes.

The next stage is to do sampling synthesis.

There are a wide variety of other sound tools in Squeak. Mark Guzdial 
and his students have explored some of them and have published 
projects.

Here is a good project -- especially for hardened computer jocks. 
MIDI music from a score sounds terrible unless it has been "shaped" 
in various ways. Unshaped music doesn't seem to bother people as much 
as it should (evidence is the willingness of people to have their 
mobile phones play awful cariacatures of classical musical with no 
expression, etc.). The way this problem is dealt with in Hollywood is 
to have a "beat track" that allows the metronomic MIDI time to be 
shaped by slowing down, speeding up, etc. Also, more phrasing can be 
automatically added. We had a program at PARC that could do all these 
things, and could also put in really good syncopation, etc.
      All these things have to do with musical expression, and would 
be good to explore as a kind of balance to the mere mechanical acts 
of creating sound through a loudspeaker.

Cheers,

Alan

P.S. I think most Squeakers are quite in the position of Lily Smith 
here. There's lots of facilities in the system for playing with sound 
and music, but precious little documentation. And the searches with 
the browser will only help a little......

--------

At 5:15 PM +1200 7/29/02, Richard A. O'Keefe wrote:
>We have an annual 'Hands-On Science' week in the summer holiday,
>when high-school pupils from around the country come and try things.
>There are 'projects' where we have them for 3 or 4 mornings and 'snacks'
>where we have them for a couple of hours.
>I received an unexpected request to run another one this coming summer
>(it's winter here now).  It suddently occurred to me that a computer
>music project using Squeak should be really fun, but I've never done
>anything like that.
>
>Any suggestions would be MOST welcome.   It may not come off, but if it
>does it should be quite enjoyable for the students.  We'd probably have
>a lab of OS/X macintoshes, if it makes any difference.


-- 



More information about the Squeak-dev mailing list