by Warren Burt

There are four macros included here which do interesting probability distributions. The Linear, Linear Inverse and Triangle Distributions are extremely simple, but powerful. The Linear distribution selects the lowest of N random numbers to output. The Linear Inverse does the opposite, outputting the highest value. The Triangle distribution takes the average of N random values. Each of the demo patches for these functions, "Distributions-Linear-Demo.awp," "Distributions-LinearInverse-Demo.awp," and "Distributions-Triangle-Demo.awp" shows how each of these work, allowing you to select N, which controls the steepness of the slope. For example, a setting of 2 produces a wide spread of values, but a setting of 12 produces a narrow range of values. For example, in "Distributions-Linear-Demo, you can hear that a setting of 2 has mostly low notes but some highs, while 12 has only low notes. On the graph (a 640x480 canvas) you can also see this, with the lower settings having more low values, while the high settings have higher values as well.

The other Probability Distribution macro is a very mutant shift register feedback patch. There are 3 parameters in this macro. The first is the number of bits to shift - it must be less than 31. The second is 2 for left rotate, 3 for right rotate. The 3rd is the number to XOR the feedback by. Try all sorts of values here. My hunch is that primes will work best.

The Demo patch for this, "ShiftRegFeedbackDemo.awp" has an interesting feature: Delay Step modules are used in order to set up a system where delayed values of the Shift Register Feedback patch are used to control different parameters. So in this patch

The SRFBK raw output controls pitch.

The SRFBK output delayed one step controls duration.

The SRFBK output delayed two steps controls velocity.

These sorts of delay line chains of values, graphed against themselves, are used in chaos investigations to reveal the structure of attractors. Here we use them to shape different aspects of a melody. However, you shouldn't be afraid to use them to control parameters for any sonic, visual or language process you can think of. The shift register feedback idea has been used by many composers as a source of repeating and pseudo-random sequences. In the 1970s alone, Salvatore Martirano's Sal-Mar had shift-register feedback circuits at the heart of its information generation, as did Joel Chadabe and John Roy's DAISY system. My own Aardvarks IV digital performance synthesizer, Greg Sciemer's DATUM project, and Carl Vine's Patent Little Marvel were all analog/digital hybrid hardware systems that used this kind of logic.