Last updated on 01/03/2010
Pure-data (or "pd") is a crazy amazing environment for signal processing experimentation/manipulation. I've been using it for a while now and can't seem to recommend it enough. If this environment is new to you, you may want to start here, here, here, or here.
My page here serves only as a quick-and-dirty means for me to share some of the abstraction patches I've put together. I don't claim uniqueness or usefulness in these patches, and the following are only posted here in the remote chance that somebody may [somewhere, sometime] find them helpful. Overall, these are just patches that I found useful. If you like anything or find an obvious bug or improvement, please feel free to drop me a line.
- caradisio.tgz - sample mp3 (2.5MB) A wavetable synth in which the wavetable is semirandomly altered in realtime to create a number of interesting textures. Includes a graph-on-parent controller version and NRPN midi support. Contains caradisio~.pd, caradisio2~.pd, and caradisio~-help.pd. Requires additional abstractions, which can be found below.
- dtmf.tgz A set of abstractions for generating dtmf (dual tone multi frequency) tones, also known as touch tones. Package includes a dtmf generator and dtmf dialer and help files.
- Infinity Foot Pedal - An external for the IN-USB-1 USB footpedal by VEC Electronics Corporation.
- bangs.pd - Generate a series of bangs at a given interval.
- bangct.pd - Outputs a count of the number of bangs it has seen, until reset.
- bangloop.pd - A looping counter [0..n) that increments when banged. Can drive a sequencer.
- nrpn_in.pd - Reads (inputs) 14-bit MIDI messages in NRPN format.
- nrpn_out.pd - Sends (outputs) 14-bit MIDI messages in NRPN format.
- ctrl_sync.pd - Keeps a pd UI control synchronized with a MIDI control channel
- hmstimer.pd - Displays time duration as HH:MM:SS as a GOP.
- keyonoff.pd - Generates a 1 and 0 for a filtered/held keypress.
- nrpn_sync.pd - Keeps a pd UI control synchronized with a NRPN controller channel
- oscsq~.pd - Square wave oscillator, made by amplifying and then clipping a sine (osc~) wave.
- tri~.pd - Nice tight triangle wave, based on phasor~.
- ptrain~.pd - Pulse train. Probably very similar to pwm~ (below).
- pwm~.pd - Pulse width modulation on a square wave. Probably similar to ptrain~ (above).
- dline~.pd - Variable, dynamic feedback delay line. Inputs include feedback amount and delay time.
- panning~.pd - Splits and pans a mono signal into stereo, based on a control input.
- rndseq.pd - Randomized sequencer. You can specify the number of steps, base, and range.
- mc.pd - Simple midi controller. Specify the midi "item" (man, my midi terminology is lacking) and a range, and you'll get a numeric output based on the midi input. Useful with an external midi controller.
- mout~.pd - Simple mixed output to dac~ with graph on parent volume control, level display, VU meter. The first GOP patch that ever worked right.
- range.pd - Does the ratio math to convert a number from a source range into a target range.
- wavrec~.pd - Simple record-to-wav (start/stop/timer) GOP abstraction.
The following are all based on underlying LADSPA plugins (hence the "l_" prefix). LADSPA is a kind of VST thing for Linux, and you will likely need additional software for these to work properly. For the most part, these should be self-explanatory.
I think this is a rockin-fun idea for a pd shirt: