Boodler: a programmable soundscape tool
   Version 1.4.0

Designed by Andrew Plotkin <erkyrath@eblong.com>
   <http://www.eblong.com/zarf/boodler/>

Copyright 2001 by Andrew Plotkin
   This program is distributed under the LGPL.
   See the LGPL document, or the above URL, for details.

-----------------------------------------------

* WHAT IT IS

Boodler is a tool for creating soundscapes -- continuous, infinitely
varying streams of sound. Boodler is designed to run in the background
on a computer, maintaining whatever sound environment you desire.

Boodler is extensible, customizable, and modular. Each soundscape is a
small piece of Python code -- typically less than a page. A soundscape
can incorporate other soundscapes; it can combine other soundscapes,
switch between them, fade them in and out. This package comes with
many example soundscapes. You can use these, modify them, combine them
to arbitrary levels of complexity, or write your own.

Boodler is written in Python, with one module (cboodle) written in C.
It was developed under Python 1.5.2; more recent Python versions
should work as well.

Boodler can be built to use either the OSS sound driver interface, the
ALSA sound driver interface, or the ESD (EsounD) sound server library.
It can also write raw sound output to a file.

Boodler does not come with any warranty of any sort whatsoever.

* BOODLER ON HANDHELDS

I have built this ipkg for the Sharp Zaurus, although it should work
on other ARM PDAs as well.

This is a very trimmed-down package. It does not include any of the
Python source code, nor the Boodler documentation. (See the above URL
to get all that.) It has only byte-compiled Python files (.pyc files)
and loadable modules (.so files), which are installed in
/usr/lib/python2.0/site-packages/boodle.

This package also contains a few standard Python modules which are not
included in Carl Worth's Python ipkg file. These are: aifc, wave,
sunau, chunk, array, audioop. They are installed in
/usr/lib/python2.0/site-packages.

To run Boodler, you will need the Boodler sound library. This is *not*
included in this ipkg, because it's about 11.6 megabytes! (Nearly 14
after installation.) Most handhelds don't have that much mainline
storage, so if you want to run Boodler, you'd best invest in some
compact flash, microdrive, or other memory extension whoop-de-do.

The Zaurus likes compact flash and SD, so the Boodler script assumes
that the sound library tree has been unpacked into /mnt/cf/boodler-snd
or /mnt/card/boodler-snd. If you've got it somewhere else, edit
/usr/bin/boodler and set BOODLER_SOUND_PATH appropriately.

To install, shove the .ipk file on your machine and install it. (The
Zaurus "Add/Remove Software" tool doesn't recognize the package, at
least not for me. I'm still trying to figure out why not. In the
meantime, the command "ipkg install boodler_#.#.#_arm.ipk" will work.)

To run, try this:

  boodler crows.ParliamentOfCrows

Boodler can do much more than that, of course. See the web documentation.

* FLAWS

See previous comment about the "Add/Remove" tool not recognizing
my ipkg file.

The command-line interface is all I've got right now. Sorry about
that. To kill Boodler, hit the "OK" button in your Terminal app, to
kill the shell -- Boodler will shut down as well.

Boodler does not prevent your handheld from going to sleep. This makes
it sort of useless as a long-term sound generator.

SD and MMC are much slower than CF. If you try to run Boodler with the
sounds on an SD/MMC wafer, you will probably hear skips in the sound
as Boodler tries to load sound files. (SD is faster than MMC, but I
still hear some skips, particularly if the Zaurus is running off the
battery instead of the charging cradle.)
