Squeak 2.2 Sound and MIDI Features

Maloney johnm at wdi.disney.com
Mon Oct 5 15:55:33 UTC 1998


Squeak 2.2 has several features that may interest the musically inclined.

1. The score player can now output MIDI on Macs and Win95/NT.
   To access this feature, open a MIDI file
   from the file list. It will start playing via the internal sound. Pause and
   rewind, then use the menu that pops up on the "<>" button to set the desired
   MIDI port. Mac users may need to turn off AppleTalk to use the desired port,
   especially on Powerbooks that have only a single serial port. Mac users also
   need a MIDI adapter, which by default is assumed to provide a 1 MHz clock.
   (If you don't have such an adapter plugged in, don't try this. Without
   the external clock signal, the first attempt to output to the port will cause
   Squeak to hang forever.)

2. There is now support for having Squeak generate music from sampled
   sounds, the way a sampling synthesizer does. It supports multi-sampling:
   storing recordings of a given instrument playing different pitches at
   different dynamic levels, and choosing an appropriate recording
   based on the pitch and loudness of the note to be played. Squeak has a
   mechanism for building such sampled instruments by reading in a
   collection of AIFF files. However, it does not come with any sample
   sets. Such sample libraries are available on CD-ROM in a number of
   formats from a number of vendors (see www.harmonycentral.com for
   some pointers). We have been using a commercial Macintosh program
   called TransferStation to convert sample disks in Akai format into
   collections AIFF files readable by Squeak. As a test, we imported an
   entire orchestra and played standard MIDI files of various symphonic
   works with good results. However, sampled sounds are quite bulky,
   so our "reduced size" orchestra still consumes about 35 MBytes. (But when
   I recently learned that some Hollywood composers use sampler setups
   with a gigabyte of RAM to simulate a full orchestra, 35 Mbytes didn't
   sound so bad.)

3. Squeak now has a rudimentary sound editor called WaveEditor. You can
   use the RecordingControlsMorph to record a note and use the "Show" button
   to open a WaveEditor on the sound you just recorded. You can then trim
   the ends, set up some loop points, and save the sound as a sampled
   instrument. With patience, you could even build your own multi-sampled
   instrument library this way, although you would probably want to
   implement some additional features to streamline your work (such as
   scaling a set of recorded notes to the same sound level) .

Future Work

We're going to keep working to improve Squeak's sound synthesis. In
particular, we hope to find a better compromise between memory space
and quality, either by finding ways to get good quality sound with shorter
sample loops or by using the FM algorithm on wavetables taken from
sampled sounds.

We're also planning to improve Squeak's MIDI capabilities. In particular, we
plan to add image-level support for MIDI input, including the ability to filter
and re-map controller data, and we plan to enhance the ScorePlayer and
PianoRoll score viewer. Of course, the serious MIDI musician and Squeaker
should check out Stephen Pope's Siren system:

	ftp://ftp.create.ucsb.edu/pub/Smalltalk/Siren

which has support for the Opcode MIDI System (OMS), MIDI scheduling, and
MIDI controller filtering built right into the VM, as well as an advanced set
of score manipulation and viewing tools.

Happy Squeak music-making!

	-- John





More information about the Squeak-dev mailing list