Exploring Pd extended
Hans Christoph Steiner has done fantastic work assembling Pure Data installers. If you haven’t already been using them for Pd, you should definitely try them out. I’ve mainly been using the OSX version (note: for library support, as instructed you can copy the included org.puredata.pd.plist to ~/Library/Preferences).
Recently I’ve been exploring the myriad external objects and abstractions available and working out of the box with the current Pd installer (Pd-0.39.2-extended-test4.dmg - soon to be updated I believe).
Following are some notes on the various objects I have tried. This list is not yet anywhere near exhaustive, though I have at least opened and tried probably 80% of the help patches. I just haven’t written anything about the less immediately interesting objects yet.
————————-
exploring pd extended
27/9/2006
CPU load ratings on G5 1.6GHz
bsaylor
aenv~ - good envelope generator
svf~ - 12% CPU nice state variable filter
zhzxh~ - 9% nice electrical glitch/distortion type thing
partconv~ - no osx
pvoc - no osx
susloop~ - phase generator for sample looping using tabread
creb
bdiag~ - interesting fft freq domain data manipulation - very organic, gamelan - type sounds on first try… quite variable even with static paramters
bfft~ - normalised spectrum analysis - no audio in help patch
biquadseries~ - highpass, lowpass biquad filters, but patch self-referential and not working
bitsplit~ - like a weird quantizer - splitting most significant bits and least sig bits - good for digital distortion that’s input level variable
blocknorm~ - VERY interesting technique (especially in help patch) for normalising frequency bands of a signal - so filtered signals are still as loud as unfiltered, emphasising whatever’s present in the pass band - 8% CPU
blosc~ - intriguing band limited oscillators, but patch is self referential and not working
bmatrix~ - self-referential
bwin~ - “poor-man’s spectral maximiser” - harsh, but effective loudness boost
cheby~ - add harmonics by waveshaping - good for different distortion
clog~ - complex log - self-referential
dist~ - distortion waveshaper
dwt~ - discrete wavelet transform - couldn’t use quickly for audio, other than exact reconstruction of oscillator
dynwav~ - scanned block (wavetable) synthesis
eadsr~, ead~, ear~ - all envelopes
fdn~ - nice feedback delay network - like moore-schroeder, but more flexible! can change parameters while it’s running! - 8% - 20% depending on number of delay lines used - quite musical if using tightly spaced delay lines to make tones! - like an arpeggiator - some stereo factor to the output - maybe alternate delay lines output to alternate channels?
ffpoly - finite field polynomial
filterortho~ - biquad filter (orthogonal)
fwarp~ - warps frequencies - in stereo gives odd slow phase effects - don’t quite get it though
junction~ - lossless signal junction - help patch shows use for feedback… has some hidden potentials i think
lattice~ - lattice filter (?) but help patch shows potential for frequency based distortion uses
matrix~ - matrix multiplication - fairly unexplained in help
permut~ - random sample reordering within a block - digital distortion uses
qmult~ - “quaternion ring modulation” - effect shown by help patch to be good for organic harmonic drone generation
qnorm~ - “normalises a quaternion signal” - not sure what a quaternion signal is (how is it related to quaternions?), but seems to be good for stereo phasing drone effects
ratio - octave ratio calculator - divides octave into n steps
resofilt~ - resonant filter.
sbosc~ - “smallband periodic complex oscillator” - could be good for bass drones - like engine sounds… - richer than sinetones, but not harsh
scrollgrid1D~ - “stabilized scroll grid chaotic oscillator…” - sounds like glitchy oscillator - nice for controllable organic glitch tone effect - 10%
tabreadmix~ - overlap add tabread for smoother timestretching
xfm~ - “cross frequency modulation” - exhibits hysteresis. fm radio tuning type sounds, and help patch can make a nice heartbeat… - 10%
cxc
ascseq, ascwav - ascii abstractions, no sound
bfilt - bang filter
cxc.prepend - prepend lists/anythign
cxc.split - split lists/anything
delta~ - 1 bit sampling algorithm - 1 if sig increasing, 0 if decreasing
ENV - get/set environment variables
proc - linux proc filesystem interface
randomix - random number generators
reson~ - an interpolating resonant filter
serialize - turn float stream into list
statistics - compute signal mean of array
utime - seconds and microseconds since epoch
cyclone - max/msp clones?
accum - store, add and multiply to a number, bit obscure
active - output whether window is in focus or not
acos
allpass~ - allpass delay
anal - histogram of number pairs
….
MouseState - useful to use mouse as controller
- will skip others for now
ext13
cdplayer - atapi cd rom interface for linux
kalashnikov = uzi
mandelbrot - unexplicable (doesn’t seem to work)
mandelbrot~ - little glitches, that’s all i could get
openpatch - opens a .pd file (but can do using message too)
ossmixer - linux interface
pipeio - os internal audio routing
promiscuous~ - network traffic to signal - linux only?
scramble~ - some sort of sample scrambler - didn’t make help patch work
send13/receive13 - re-addressable send receive objects
streamio13~ - crashes Pd on OSX
wavinfo - vital statistics of a wav file
Gem
ignore for now
ggee
ignore for now - looks like classic analog synthesis type stuff (mainly filters)
hardware
hardware interface patches - eg arduino
hid (Hans Christoph Steiner)
human interface device stuff - with interesting converters eg cartesian to polar coords
linux only???
iem_ambi
ambi decode, encode and rotate matrix coefficient calculators
iem_bin_ambi
calculates reduced set of HRTFs for ambi decode to binaural
iemlib
lots of filters and other glue, with some cool gui elements, eg “vu”
ignore for now
iemmatrix
matrix functions, ignore for now
keyboardkeys
bang, toggle, and up/down (to increase/decrease a number, using 2 keys)
(very nice! - saves horrible abstraction from the built-in “key” object)
la-kitchen (Charles Verron)
ignore for now
list-abs
list manipulation abstracts
ignore for now
mapping
some useful looking data mapping objects (eg, autoscale maps an input range to an output range)
ignore for now
markex
weird glue objects for specific purposes - eg tripleRand gives 3 randoms for RGB values
maxlib (Olaf Matthes)
Music Analysis eXtensions LIBrary
some random number generators for different distributions
categories: music/midi analysis, math, buffer, routing/checking, (remote)control, time, experimental, random
in experimental:
subst - self similar substitution
mlife - cellular automaton
memento
state saving, but not immediately gettable (in about 30 seconds)
mjlib (Mark Williamson mark@junklight.com)
about - randomise number within x%
metroplus, monorhythm - rhythm generators
morse - convert text to morse code
n2m - note (text) to midi value
pin~ - hard pan to stereo output with settable probability of going to left or right
prob - another random event generator
motex
getenv - get envelope of a wavefile?
ln~ - log base e
pansig~ - stereo panner
pan~ - equal power stereo panner
polvoc - a phase vocoder?
polygate~ - crossfade between signal INPUTS, with variable fade time. not outputs unfortunately.
rec2pol~ - rectangular to polar coords
shuffle -
system - send system message to console (linux only?)
nqpoly4
nqpoly~
nusmuk
includes 2 channel spatialisation with doppler effect
also oscillator
ignore for now
oscx
open sound control
pddp (Hans Christoph Steiner)
some gui elements
pdogg
ogg format objects
pixeltango (Ben Bogart, Franz Hildgen)
visuals tools for Pd/GEM
pmpd (Cyrille Henry)
great physical mass/spring modeling objects
need to load using startup library parameter, not path
rrad
have trouble getting these working, i’m afraid
they seem a bit heavy on gui cpu load too
sigpack (www.weiss-archiv.de)
chop~ - chop one signal as another goes positive
decimate~ - decimates to selected word size (eg 12bit, etc)
diode~ - rectify signals (half-wave or full-wave)
foldback~ - signal mirror (nasty transistor distortion style)
foldover~ - analog distortion style - offset bias and curve compression
freqdiv~ - frequency divider
freqshift~ - bode frequency shifter - shift by frequency, both up and down
harmgen~ - harmonic generator
rectify~ - same as mode 2 of diode - full-wave rectify
round~ - very similar to decimate~
saturate~ - soft signal saturation (analog distortion)
sieve~ - sample sifter - removes a sample at given value, leaving same as previous sample - also another mode not so clear to understand
split~ - signal splitter at a given value
ustep~ - sets a signal to one or zero when above or below a given value (2 modes)
vowel~ - simple formant filter, giving vowel sounds
SMLib - Signal processing for Mapping (Johannes Taelman)
complements zexy and gem/markex
process floats and vectors
ignore for now
Toxy - tk scripting? (Hans Christoph Steiner)
unauthorized - selected objects…
blinkenlights - very nice low-res pixel display
exciter - schedule bang events
grid - x/y controller gui
playlist - very cool directory browser (Yves Degoyon)
scrolllist - very cool text display (YD again)
pianoroll - step sequence 2 values (eg pitch and volume), save and load patterns (bit of a gui cpu hog though)
probalizer - non-repeat random value generator with nice gui
more later
vasp
vector array signal processor?