Vol. 27 Issue 4 Reviews
Litter

Litter Power Professional Bundle: US$ 42 for the Artistic License (one license per user), US$ 140 for the Institutional License (one license per machine); Litter Power Starter Pack: free download; available from Litter, World Wide Web www.bek.no/~pcastine/Litter/

Reviewed by Margaret Cahill
Limerick, Ireland

If you are a Max/MSP user and long for a wider range of random number generators than are currently packaged with the application, Litter may be just the product for you. Litter is a collection of Max/MSP external objects consisting mostly of random number generators. It has been developed by the Berlin-based composer and software developer, Peter Castine. The collection was first implemented as a set of patchers but to increase the performance speed, they have now all been programmed as Max/MSP externals. A large number of the objects in the collection generate random number distributions, both discrete and continuous, that can be used for MIDI or other control purposes. These objects are accompanied by a set of signal generators for providing various types of noise, as well as mutation functions and some general utility objects. At current count there are more than 50 objects in total.

The inspiration for developing this collection came from Denis Lorrain’s paper “A Panoply of Stochastic ‘Canons’” (Computer Music Journal 4/1, 1980), which details some random number distributions. Several other well-known statistical distributions of random numbers are also used. Many of the older random number generators use linear congruence algorithms to produce their output. These algorithms are not truly random and are slower than their more recently developed counterparts. The developer wanted to move away from the linear congruence methods used in the packaged Max/MSP random number generators. The result is a set of objects for generating 32-bit numbers, in which all bits can be random, using faster, more robust algorithms than are currently available in Max/MSP.

The discrete random number distributions include a Poisson distribution, a finite urn model, and a Bernoulli distribution, along with more fun objects for simulating dice-throwing and consulting the I Ching. The dice object allows you to throw a number of die with any number of faces. The I Ching object represents the throwing of yarrow sticks or the tossing of coins to prophecize on the present and the future. A linear congruence object is also included and is a good comparison to the main set of random number generators. Individual parameters can be set giving the user a high degree of control over the output. Two further uniform distribution objects are included, based on the Tausworthe 88 (T88) and Matsumoto and Kurita (TT800) algorithms. These extremely fast algorithms produce cycles of 288 and 2800-1 respectively, and generate numbers in which all bits are random. All of the random number generators in Litter can be auto-seeded or the user can supply a seed value.

The continuous random number distributions consist of well-known distributions such as Cauchy, Fisher, Gamma, Erlang, Weibull, log-normal, arc sine, beta, and Chi. A number of fractal distributions are also included. These are the control-domain equivalents of fractal noise-generator objects.

A wide range of noise generators are available to the user. As one would expect, objects are supplied for generating white and black noise but also for creating gray, brown, and pink noise, with two different algorithms used for the latter. A recent addition has been a very useful object that allows the user to control the type of noise generated by varying the values of fractal noise from 1/f to 1/f3. A noise-generator based on linear congruence methods, low frequency noise, popcorn noise, a Gaussian distribution, and a triangular distribution for creating dither, complete the set.

A number of mutation functions are also available in the collection. These are similar to those found in Tom Erbe’s SoundHack program, and are based to a large extent on Larry Polansky’s mutation functions implemented there. Both time and frequency domain mutation functions are available with a choice of algorithm for each. An interesting adaptation of the mutation functions for dealing with sequences of numbers is also included.

The general utility objects provided include polar-to-Cartesian (and vice-versa) converters. Similar converters have been available in Max/MSP since Version 2, but the Litter documentation points out that these did not exist when the Litter objects were first created. The interface to these Litter and Max/MSP objects are the same, which means they can be used interchangeably. An object for calculating phase-unwrapping is included for use in spectral analysis.

Useful scaling objects have been developed for integers, floats, and signals. These objects allow the user to set a specific range for an output value and then specify how a value should be treated if it is outside this range. The options for limiting a value or signal are to clip the value, wrap or reflect it back into the specified range, and, in the case of integer and float values, to send out-of-range values out a second outlet. These are particularly useful for scaling the output of the various random number generators.

While building and debugging patches it is useful to be able to keep track of the output of the random number distributions, especially since there are so many varied distributions available for use in Litter. A statistical data object is provided for this purpose. The object counts the number of inputs and tracks the minimum, maximum, and mean values, calculates the standard deviation, and, in the most recent update, calculates skew and kurtosis.

A series of mathematical objects has also been recently added to the Litter package. These objects allow the addition and multiplication of multiple numbers and additional calculations when subtracting and dividing, for example, when calculating the quotient. A chaotic population growth model has also been included in the latest update. This object is complimented by another new object that uses the Lyapunov exponent to measure the chaotic nature of a system.

Litter is available in two editions, the free Litter Starter Package and the Litter Power Professional Bundle. The professional bundle is available to single users with an Artistic License, which allows the user to sell software containing Litter objects, or with an Institutional License for multiple users on a single machine. At US $42, the artistic license represents very good value for such an extensive range of objects. The Litter Starter Package is a reduced version of the professional edition, but includes a good selection of objects from the categories mentioned. For the really curious Max/MSP user, the original Litter patches, Classic Litter, are available for free download.

Litter can be purchased on CD but the simplicity of the download process suggests that this is the method most people will use to obtain the software and updates. A personal touch is employed in the download process, with details of the customer’s installation package sent by electronic mail, with an individually named download file. Further notification of updates to the software are subsequently sent to this address with the relevant software accessible for download. The initial software and any subsequent updates remain on the Litter server for three days to allow for problems that may be encountered when downloading or installing the software. The installation process is simple to follow and trouble free, but it is still nice to know that if the unexpected happens and your download is interrupted, you have the ability to start over. The current version of Litter functions with Macintosh OS 9 and objects are provided for the beta OS X edition of Max/MSP.

Litter documentation and Help files are excellent supports to the software package. Both are presented in Max/MSP style and format, which means it is easy to switch from consulting the Max/MSP documentation to the Litter documentation. The Help files are immediately useful as they are well commented and contain good demonstrations of the main features of each object. Litter comes with an overview patch which gives access to the object Help files through drop-down menus, arranged in categories by object function. The close adherence to the original software style and documentation means there is no need to switch from one software application to another. Indeed within a few days of using Litter, you will undoubtedly forget that the objects were not contained in the Max/MSP release itself. Further useful supporting documentation is included in the download package, such as a list of objects with output ranges and parameter lists.

Once you have used Litter, even for a short length of time, you will wonder how you ever managed without it. The range of number distributions, sound generators, and useful utility objects is enough to keep even the most adventurous Max/MSP users busy for some time. One of the nice things about Litter is that it caters for users with a wide range of knowledge of random processes. A number of distributions are included that those with a knowledge of statistics and probability will be familiar with, but if you don’t recognize the names of the various distributions and generators used, don’t panic, Litter is also for you! Most objects come with default values, which means you can get started straight away without having to define a value for every parameter. The user can decide to control every parameter that governs the random generation algorithm, use the default values, or set just one or two parameters. The documentation supplied is a great help to a novice and some additional fun random objects such as the dice and I Ching are easy ways to get started with Litter. Anyone who has a interest in randomness in Max/MSP will be engaged and enthused by Litter. Whether you want to generate noise signals, or use random numbers for controlling objects or MIDI, Litter affords the user endless possibilities.