Stochastic Externals for Pure Data

I’ve always been fascinated by probabilities and distributions, and applying this to musical forms. Over the past several years I’ve become increasingly interested in incorporating probability distributions into live performance situations. With some of my recent compositions, I’ve been incorporating more concepts from probability theory and to make this process easier I built some externals for Pd that help implement these ideas. Below is a list of these objects that I created with a little explanation about them. Some of these were inspired from the Python language’s “random” library, however, these are all written in C. Right now I only have them built for Mac OSX (32, 64-bit) and Linux (64-bit). Below, you can download the externals and help files associated with each object.

  • annealing – Uses the simulated annealing algorithm by using an array table lookup. States are simplified by comparing floats from the array and giving their output as you step through the algorithm.
  • gauss – Outputs a Gaussian distribution. Might be cool to try some type of granular synthesis using this object (hint hint)…
  • randomsample – Takes a list of numbers and outputs a portion of them randomly. Could be useful for generating chords or sequences of notes from a larger population of notes.
  • reallyrandom – This just uses a different random number generated (different from Pd’s built-in object) that is a little better. It should be seeded differently each time you open Pd.
  • weightedlist – This takes two lists: one that contains the elements and the other that contains the probabilities corresponding to each element. This object is extremely useful for quickly and easily implementing Markov chains.


Mac OS X – stochastic_macOSX

Linux 64-bit – stochastic_linux64bit