Abstractions for Puredata
This is a collection of abstractions that I have made for Puredata. I use the Pd convention for adding a trailing tilde (~) to all objects, that output or process audio. A lot of objects have accompaning help patches.
For all abstractions to load without any error you need the following libraries, available via deken:
Effects and Mixing (fx)
[bitcrusher~]: simple bitcrusher effect.
[distortion~]: simple distortion effect.
[normalize~]: normalizes the sound and removes offset.
[pan~]: equal volume pan for mono.
[pitchshift2~]: simple pitchshifter, each with its own
Glue objects (glue)
[bangonce]: outputs only one bang, if the inlet receives a series of
1s. Useful for filtering MIDI data or data coming a comport object like
[between]: outputs a random float between two pre-defined values
[bpmtoms]: converts beats per minute to milliseconds for each beat,
[integral]: integrates float values.
[mstobpm]: converts milliseconds for a beat to beats per minute, inverse
[mstofreq]: converts milliseconds to a frequency.
[note-vel-filter]: filters a stream of MIDI data to only capture MIDI on,
off and velocity.
[rec_play_switch]: two switches for starting recording and playing loops
[s2f]: converts symbol atoms to float atoms.
[shift-router]: routes input to one of six outlets with another input
for switching the outlets, useful for usage with push-buttons on an
[switch-bang]: outputs bang alternatively on two outlets when receiving
[switch-matrix]: routes inlets to outlets. Rows correspond to outlets,
columns to inlets, so the toggle in row 1 column 2 routes the input from inlet 2
to outlet 1, e.g. useful for toggling synchronization of
Can be initialized with the number of inlets and outlets with up to 15, defaults to 4.
[switch-spigot]: outputs 1 and 0 alternatively on the two outlets, useful
for switching two spigot objects.
[symbollen]: gets the length of a symbol atom.
[timer-to-freq]: measures the time between a bang on the left side and
the right side and converts the timespan to frequency.
[trigger-filter]: filters a stream of 0s and 1s and only outputs a value
when a change is occuring.
[unwrap]: wraps around values at specified lower and upper bound, e.g.
useful for rotation data.
Looper objects (loopers)
[breakbeat~]: loads a stereo sample of 8 beats length, slices it and plays
it back as a breakbeat with adjustable playback speed and pitch.
[live-sampler~]: records a sample and play it back as loops with MIDI notes.
Pitch of recorded loop is set to note 60, contains ADSR envelope, modulation
of playback pitch.
[live-sampler-box~]: a combination of
[note-vel-looper-box]: records and plays back MIDI loops
with adjustable start and stop, can be synchronized with other instances
of itself and
[sample-looper-box~]: records and plays back audio loops
with adjustable start, stop, playback speed and pitch, can be synchronized with
other instances of itself and
Sound synthesis (synth)
[pulsewidth~]: rectangle oscillator with pulsewidth modulation.
[triangle~]: Triangle wave oscillator.