[PD] how to convert number != 0 to bang

derek holzer derek at x-i.net
Wed Nov 10 14:32:15 CET 2004

Hi Marc,

there is a list of all native PD objects in


But it doesn't include externals. Below I've copied a version from my 
own docs, which I augmented with Zexy, Gem, PDP, etc. Most of those libs 
should come with a document listing all the objects it contains.

Also, there are some "more-helpful" helpfiles from the Pure Data 
Documentation Project here:


good luck,

# /usr/local/lib/pd/docs/5.reference/0.ALL_OBJECTS.txt


The "reference" section of the documentation should contain a patch
demonstrating how to use each of Pd's classes.  As of version 0.29, a 
list of "object" classes follows.  Not included in this list are messages,
atoms, graphs, etc. which aren't typed into object boxes but come
straight off the "add" menu.

---------------------------- GLUE --------------------------------
bang -    output a bang message
float -   store and recall a number
symbol -  store and recall a symbol
int -     store and recall an integer
send -    send a message to a named object
receive - catch "sent" messages
select -  test for matching numbers or symbols
route -   route messages according to first element
pack -    make compound messages
unpack -  get elements of compound messages
trigger - sequence and convert messagess
spigot -  interruptible message connection
moses -   part a numeric stream
until -   looping mechanism
print -   print out messages
makefilename - format a symbol with a variable field
change -  remove repeated numbers from a stream
swap -    swap two numbers
value -   shared numeric value
------------------------------ TIME ----------------------------------
delay -   send a message after a time delay
metro -   send a message periodically
line -    send a series of linearly stepped numbers
timer -   measure time intervals
cputime - measure CPU time
realtime -measure real time
pipe -    dynamically growable delay line for numbers
------------------------------ MATH ----------------------------------
+ - * / pow                                      arithmetic
== != > < >= <=                                  relational tests
& && | || %                                      bit twiddling
mtof ftom powtodb rmstodb dbtopow dbtorms        convert acoustical units
mod div sin cos tan atan atan2 sqrt log exp abs  higher math
random                                           lower math
max min                                          greater or lesser of 2 
clip                                             force a number into a range
------------------------------ MIDI ----------------------------------
notein ctlin pgmin bendin touchin polytouchin midiin sysexin - MIDI input
noteout ctlout pgmout bendout touchout polytouchout midiout  - MIDI output
makenote -  schedule a delayed "note off" message corresponding to a note-on
stripnote - strip "note off" messages
------------------------------ TABLES----------------------------------
tabread -    read a number from a table
tabread4 -   read a number from a table, with 4 point interpolation
tabwrite -   write a number to a table
soundfiler - read and write tables to soundfiles
------------------------------ MISC ----------------------------------
loadbang -   bang on load
serial -     serial device control for NT only
netsend -    send messages over the internet
netreceive - receive them
qlist -      message sequencer
textfile -   file to message converter
openpanel -  "Open" dialog
savepanel -  "Save as" dialog
bag -        set of numbers
poly -       polyphonic voice allocation
key, keyup - numeric key values from keyboard
keyname -    symbolic key name
-------------------------- AUDIO MATH ----------------------------------
+~ -~ *~ /~ arithmetic on audio signals
max~ min~ - maximum or minimum of 2 inputs
clip~ -     constrict signal to lie between two bounds
q8_rsqrt~ - cheap reciprocal square root (beware -- 8 bits!)
q8_sqrt~ -  cheap square root (beware -- 8 bits!)
wrap~ -     wraparound (fractional part, sort of)
fft~ -      complex forward discrete Fourier transform
ifft~ -     complex inverse discrete Fourier transform
rfft~ -     real forward discrete Fourier transform
rifft~ -    real inverse discrete Fourier transform
framp~ -    output a ramp for each block
mtof~, ftom~, rmstodb~, dbtorms~, rmstopow~, powtorms~ - acoustic 
-------------------------- AUDIO GLUE ----------------------------------
dac~ -      audio output
adc~ -      audio input
sig~ -      convert numbers to audio signals
line~ -     generate audio ramps
threshold~  detect signal thresholds
snapshot~ - sample a signal (convert it back to a number)
bang~ -     send a bang message after each DSP block
samplerate~ get the sample rate
send~ -     nonlocal signal connection with fanout
receive~ -  get signal from send~
throw~ -    add to a summing bus
catch~ -    define and read a summing bus
block~ -    specify block size and overlap
switch~ -   switch DSP computation on and off
readsf~ -   soundfile playback from disk
writesf~ -  record sound to disk
-------------------- AUDIO OSCILLATORS AND TABLES ------------------------
phasor~ -   sawtooth oscillator
cos~ -      cosine
osc~ -      cosine oscillator
tabwrite~ - write to a table
tabplay~ -  play back from a table (non-transposing)
tabread~ -  non-interpolating table read
tabread4~ - four-point interpolating table read
tabsend~ -  write one block continuously to a table
tabreceive~ read one block continuously from a table
-------------------- AUDIO FILTERS ------------------------
vcf~ -      voltage controlled filter
noise~ -    white noise generator
env~ -      envelope follower
hip~ -      high pass filter
lop~ -      low pass filter
bp~ -       band pass filter
biquad~ -   raw filter
samphold~ - sample and hold unit
print~ -    print out one or more "blocks"
-------------------- AUDIO DELAY ------------------------
delwrite~ - write to a delay line
delread~ -  read from a delay line
vd~ -       read from a delay line at a variable delay time
------------------------------ SUBWINDOWS ----------------------------------
pd -      define a subwindow
inlet -   add an inlet to a pd
outlet -  add an outlet to a pd
table -   array of numbers in a subwindow
------------------------------ DATA TEMPLATES -----------------------------
template - define the fields in a template
drawcurve, filledcurve - draw a curve
drawpolygon, filledpolygon - draw a polygon
plot -       plot an array field
drawnumber - print a numeric value
------------------------------ ACCESSING DATA ----------------------------
pointer - point to an object belonging to a template
get -     get numeric fields
set -     change numeric fields
element - get an array element
getsize - get the size of an array
setsize - change the size of an array
append -  add an element to a list
sublist - get a pointer into a list which is an element of another scalar
scalar -  draw a scalar on parent
------------------------------ OBSOLETE ----------------------------
scope~ (use tabwrite~ now)



contents of iemlib Release 1.14 from July 2003

============================ DSP~ ===============================

------------------------- filter~ -------------------------------
FIR~		finite impuls response filter, with array-coefficients

maverage~	moving average filter, (IIR + delay)

ap1~		allpass 1.order
ap2~		allpass 2.order
bpq2~		bandpass 2.order with Q-inlet
bpw2~		bandpass 2.order with bandwidth-inlet
bsq2~		bandstop 2.order (notch) with Q-inlet
bsw2~		bandstop 2.order (notch) with bandwidth-inlet
hml_shelf~	high-middle-low shelving filter 2.order with dB-gain inlets
hp1~		highpass 1.order
hp2~		highpass 2.order
lp1~		lowpass 1.order
lp2~		lowpass 2.order
para_bp2~	parametrical bandpass 2. order with dB-gain inlet
rbpq2~		resonance-bandpass 2.order with Q-inlet
rbpw2~		resonance-bandpass 2.order with bandwidth-inlet

lp1_t~		lowpass 1.order with time_constant inlet

hp4_butt~	highpass 4.order with butterworth characteristic
hp6_butt~	highpass 6.order with butterworth characteristic
hp8_butt~	highpass 8.order with butterworth characteristic
hp10_butt~	highpass 10.order with butterworth characteristic
hp4_cheb~	highpass 4.order with chebyshev characteristic
hp6_cheb~	highpass 6.order with chebyshev characteristic
hp8_cheb~	highpass 8.order with chebyshev characteristic
hp10_cheb~	highpass 10.order with chebyshev characteristic
lp4_butt~	lowpass 4.order with butterworth characteristic
lp6_butt~	lowpass 6.order with butterworth characteristic
lp8_butt~	lowpass 8.order with butterworth characteristic
lp10_butt~	lowpass 10.order with butterworth characteristic
lp4_cheb~	lowpass 4.order with chebyshev characteristic
lp6_cheb~	lowpass 6.order with chebyshev characteristic
lp8_cheb~	lowpass 8.order with chebyshev characteristic
lp10_cheb~	lowpass 10.order with chebyshev characteristic

vcf_lp2~	lowpass 2.order with freq. and Q signal inlets
vcf_lp4~	lowpass 4.order with freq. and Q signal inlets
vcf_bp4~	bandpass 4.order with freq. and Q signal inlets

------------------------ arithmetic~ ----------------------------
addl~		signal-addition with line~
divl~		signal-divison with line~
mull~		signal-multiplication with line~
subl~		signal-subtraction with line~

--------------------------- misc~ -------------------------------
pink~		pink noise
LFO_noise~	downsampled 2-point interpolated white noise
mp3play~	mp3 stereo player
peakenv~	peak envelope shaper
fade~		fade in out shaper

------------------------- converter~ ----------------------------
prvu~		peak and rms VU-meter interface
pvu~		peak VU-meter interface
unsig~		signal to float converter

---------------------------- t3~ --------------------------------
t3_sig~		time tagged trigger sig~
t3_line~	time tagged trigger line~

========================= control ==============================

--------------------------- gui --------------------------------

bng		display and generate a bang-message
cnv		canvas background and text
hdl		horizontal dial, choose a number
hsl		horizontal slider
nbx		numberbox
tgl		2 state toggle
vdl		vertical dial, choose a number
vsl		vertical slider
vu		vu meter display (rms + peak)

-------------------- symbol operating -------------------------
mergefilename	merge a list of symbols together
splitfilename	split a symbol intp path + file
stripfilename	strip n characters of a symbol
unsymbol	convert a selector-symbol into symbol

------------------- anything operating ------------------------
add2_comma	adds to a messagebox comma-separated messages
any		store and recall anything-messages
merge_any	merge 2 anything-messages
pre_inlet	sends a list of a symbol + float and then the incoming message
prepend		prefix a message to a message
prepend_ascii	prepends the symbol of an ascii-number in front of a message
toggle_mess	control a message-box with multiple content

-------------------------- init -------------------------------
dollarg		receive parent initial-arguments ($n)
init		initialize a message by loadbang
dsp		control dsp ON/OFF and calculate dsp-performance

--------------------- float operating -------------------------
1p1z		message-filter 1.order
bpe		break point envelope controller
db2v		db to rms
exp_inc		exponential increment counter (bang triggered)
float24		merge integer-numbers together
for++		incremental counter (triggered by internal metro)
modulo_counter	endless loop counter (bang triggered)
speedlim	reduce float-message speed
split3		split float into 3 ways
split		like moses
v2db		rms to db

-------------------------- misc -------------------------------
f2note		frequency to midi+cents+note
gate		like spigot
iem_i_route	variation of route
iem_route	variation of route

------------------- parameter handling ------------------------
iem_pbank_csv	store and recall a set of parameters in csv-format
lis2send	convert a list to send-messages
receive2list	receive messages and convert them to lists

---------------------------- t3 --------------------------------
t3_bpe		time tagged trigger break point envelope
t3_delay	time tagged trigger delay
t3_metro	time tagged trigger metronom
t3_timer	time tagged trigger timer



These are the objects that come with the zexy-external

============================ DSP~ ===============================

---------------------------- IO~ --------------------------------
sfplay		play back (multi-channel) soundfiles
sfrecord	record (multichannel) soundfiles

------------------------ generators~ ----------------------------
dirac~		dirac-pulse
step~		unity step
noish~		downsampled noise (hold)
noisi~		downsampled noise (interpolate)

------------------------ processing~ ----------------------------
limiter~	a limiter/compressor module
quantize~	quantizes signals
swap~		bytes swap a 16bit-signal
z~		samplewise delay

------------------------- analytic~ -----------------------------
sigzero~	detects whether a signal is zero throughout the vector or not
pdf~		probability density function
envrms~		like env~, but outputting rms instead of dB
avg~		arithmetic mean of 1 signal-vector
tavg~		arithmetic mean between two bangs
dfreq~		frequency detector

------------------------- sigbinops~ ----------------------------
 >~, <~, ==~, &&~, ||~	logical operators
abs~		absolute value of a signal
sgn~		signum of a signal

--------------------------- misc~ -------------------------------
nop~		no-operation
pack~		convert a signal to a list of floats
unpack~		convert a list of floats to a signal
matrix~		matrix-multiply m IN-signals to n OUT-signals
multiplex~	multiplex 1-of-n inlets to 1 outlet
demultiplex~	demultiplex 1 inlet to 1-of-n outlets

========================= control ==============================

-------------------------- basic -------------------------------
nop		no-operation
lister		store lists (like "float" for floats)
repack		(re)pack atoms to packages of a given size
packel		get a specified element of a list
length		get the length of a list
niagara		split 1 packages into 2
glue		append a package to another (glue them together)
segregate	segregate the input to various outlets, depending on the type
any2list	convert "anythings" to "lists"
list2int	cast each float of a list to integer
atoi		ascii to integer
strcmp		compare lists as strings
list2symbol	convert a list into a single symbol
.		scalar multiplication of vectors (=lists of floats)

------------------------ advanced ------------------------------
tabread4	interpolating tabread (obsolete since pd>=0.30)
tabdump		dump out a table as a list of floats
tabset		set a table with a list of floats
makesymbol	concatenate lists to formatted symbols
date		get system date
time		get system time
index		map symbols to indices
msgfile		a powerful "textfile" derivative
mavg		moving average filter for floats
mean		get the mean value of a list of floats
minmax		get minimum and maximum of a list of floats
sort		shell-sort a list of floats
demultiplex	demultiplex the input to a specified outlet
drip		extract the atoms of a package (opt. scheduled)
lp		write to the (parallel) port (linux only)

-------------------------- matrix -------------------------------
matrix		create/store/... matrices
mtx_element	set elements of a matrix
mtx_row		set rows of a matrix
mtx_col		set columns of a matrix
mtx_ones	matrix with all elements==1
mtx_zeros	matrix with all elements==0
mtx_eye		identity matrix
mtx_egg		identity matrix (from upper-right to lower-left)
mtx_diag	diagonal matrix
mtx_diegg	diagonal matrix (from upper-right to lower-left)
mtx_diag	get the diagonal of a matrix
mtx_trace	get the trace of a matrix
mtx_transpose	transpose a matrix
mtx_roll	column-shift a matrix
mtx_scroll	row-shift a matrix
mtx_pivot	pivot-transform a matrix
mtx_resize	resize a matrix (evtl. with zero-padding)
mtx_size	get the size of a matrix
mtx_inverse	get the inverse of a matrix
mtx_add, mtx_+	add 2 matrices (or an offset to 1 matrix)
mtx_mul, mtx_*	multiply 2 matrices (or a factor with 1 matrix)
mtx_.*		multiply 2 matrices element by element
mtx_./		divide 2 matrices element by element
mtx_mean	get the mean value of each column
mtx_rand	matrix with random elements
mtx_check	check the consistency of a matrix and repair
mtx_print	print a matrix to the stderr



gemhead - the start of rendering chain
gemwin - the window manager
gemmouse - outputs the mouse position and buttons in the GEM window
gemkeyboard - outputs the keycode of a key pressed when you are in the 
GEM window (there might be different keycodes in Windows/Linux)
gemkeyname - outputs a symbolic description of a key pressed when you 
are in the GEM window (there might be different symbols in Windows/Linux)
gemorb - outputs the position, rotation, and buttons for a Space Orb
gemtablet - outputs the pen position, pressure, and buttons in the GEM 

accumrotate - accumulate a rotation
alpha - enable/disable alpha blending
ambient - set the ambient color with a vector
ambientRGB - set the ambient color with 3 discrete values
camera -
color - set the color with a vector
colorRGB - set the color with 3 discrete values
depth - enable/disable depth testing
diffuse - set the diffuse color with a vector
diffuseRGB - set the diffuse color with 3 discrete values
emission - set the emissive color with a vector
emissionRGB - set the emissive color with 3 discrete values
linear_path - generate a path from an array of points
ortho - change the view to orthogonal, with the viewport the size of the 
polygon_smooth - turn on anti-aliasing for the objects below
rotate - rotate with an angle and vector
rotateXYZ - rotate with 3 discrete values
scale - scale with a vector
scaleXYZ - scale with 3 discrete values
separator - push the OpenGL state for the rest of the chain and pop when 
shininess - set the shininess of an object
specular - set the specular color with a vector
specularRGB - set the specular color with 3 discrete values
spline_path - generate a spline from an array of knots
translate - translate with a vector
translateXYZ - translate with 3 discrete values

circle - render a circle
colorSquare - render a colored square (evtl. with color gradients)
cone - render a cone
cube - render a cube
cuboid - render a box
curve - render a Bezier curve
curve3d - render a surface
cylinder - render a cylinder
disk - render a disk
imageVert - make pixel colors to a height field map
model - render an Alias|Wavefront model
multimodel - render a series of Alias|Wavefront models, render by number
newWave - render a wave (that is evolving over time)
polygon - render a polygon
primTri - a triangle primitive
rectangle - render a rectangle
ripple - a rectangle with distorted (over time) texture-coordinates
rubber - a grid where you can move one of the grid-points
slideSquare - render a number of sliding squares
sphere - render a sphere
square - render a square
teapot - render a teapot
text2d - render 2-D text (a bitmap)
text3d - render 3-D text (polygonal)
textextruded - render an extruded 3D-text
textoutline - render outlined text (polygonal)
triangle - render a triangle

part_head - The start of a particle group
part_color - Set the range of colors for the new particles
part_damp - set the damping for particles
part_draw - Apply the actions and render the particles.  Accepts a 
message "draw line" or "draw point" to change the drawing style.
part_follow - Particles will follow each other like a snake
part_gravity - Have the particles accelerate in a direction
part_info - get the information (position, color, size,...) of each particle
part_killold - Remove particles past a certain age
part_killslow - Remove particles below a certain speed
part_orbitpoint - Orbit the particles around a specified point
part_render - render the remaining gem-tree as particles.
part_size - Set the size of new particles
part_source - Generate particles
part_targetcolor - Change color of the particles toward the specified color
part_targetsize - Change size of the particles toward the specified size
part_velocity - Set the velocity domain (distribution like CONE and the 
appropriate arguments)
part_vertex - emit a single particle

light - make a point light
world_light - make a light at infinity

pix_2grey - convert rgb pixels to grey (still an RGBA image)
pix_a_2grey - convert rgb pixels to grey based on alpha channel
pix_add - add two pixes together
pix_aging - super8-like aging effect
pix_alpha - set the alpha value of a pix
pix_background - let through only pixels that differ from a static 
"background" image
pix_backlight - a backlight photo effect
pix_biquad - 2p2z-filter for subsequent images
pix_bitmask - apply a bitmask to a pix
pix_blob - get center of gravity
pix_buf - buffer a pix
pix_buffer - storage room for pixes (like [table] for floats)
pix_buffer_read/pix_buffer_write - put/get pixes into/from a pix_buffer
pix_chroma_key - color keying (like "blue-box")
pix_coloralpha - set the alpha-channel of a pix as a mean-value of the 
pix_colormatrix - recombine the RGBA-channels with matrix-operation
pix_color - set the color of a pix (leaving alpha alone)
pix_colorreduce - reduce the number of colors (statistically)
pix_composite - composite two pixes together
pix_convolve - convolve a pix with a kernal
pix_coordinate - set the texture coordinates
pix_crop - get a sub-image of a pix
pix_curve - apply color-curves onto a pix
pix_data - get pixel data information
pix_delay - frame-wise delay
pix_diff - get absolute difference of two pixes
pix_dot - rasterize a pix with big dots
pix_draw - draw a pix
pix_dump - dump the pixel-data as a long list of floats
pix_duotone - reduce the number of colors by thresholding
pix_film - use a movie file as a pix source for image-processing
pix_flip - flip the pixels of a pix
pix_gain - apply a gain to a pix
pix_grey - convert any pix into greyscale colorspace
pix_halftone - rasterize a pix like it was printed in a newspaper
pix_histo - get the histogram of a pix
pix_hsv2rgb - transform a pix from HSV-colorspace into RGB-colorspace
pix_image - load in an image file
pix_imageInPlace - load a series of image files directly into 
texture-buffer, display by number
pix_info - get information about the pix (like dimension, colorspace,...)
pix_invert - invert a pix
pix_kaleidoscope - as if you were looking at the pix through a kaleidoscope
pix_levels - level adjustment
pix_lumaoffset - y-offset pixels depending on their luminance
pix_mask - mask a pix based on another pix
pix_metaimage - recompose an image out of smaller versions of itself
pix_mix - mix to pixes together
pix_motionblur - motionblur an image
pix_movie - use a movie file as a pix source and load it immediately 
into the texture-buffer
pix_movement - set the alpha-channel with respect to the change between 
two frames
pix_multiply - multiply two pixes
pix_multiimage - load in a series of image files, display by number
pix_normalize - normalize a pix
pix_offset - add an offset to a pix (wrapping instead of clipping)
pix_pix2sig~ - interpret a pix as 4 (RGBA) audio-signals
pix_posterize - posterization photo effect
pix_puzzle - shuffle an image
pix_rds - generate a Random Dot Stereogram out of the image (aka: Magic 
Eye (tm))
pix_rectangle - generate a rectangle in a pix buffer
pix_refraction - break up an image into coloured "glass-bricks"
pix_resize - resize a pix to next power of 2
pix_rgb2hsv - transform a pix from RGB-colorspace into HSV-colorspace
pix_rgba - transform a pix of any format into RGBA
pix_roll - (sc)roll through an image (wrapping)
pix_rtx - swap time-axis and x-axis
pix_scanline - take every nth line of the original image
pix_set - set the pixel-data with a long list of floats
pix_sig2pix~ - interpret 4 audio-signals as (RGBA) image-data
pix_snap - capture the render window into a pix
pix_snap2tex - capture the render window directly as a texture
pix_subtract - subtract two pixes
pix_tIIR - time-base Infinite-Impulse-Response filter (for 
motion-bluring,...) with settable number of poles/zeros
pix_takealpha - take the alpha channel of one pix and put it into 
another pix
pix_texture - use a pix as a texture map
pix_threshold - apply a threshold to a pix
pix_video - use a video camera as a pix source
pix_write - capture the render window to disk
pix_zoom - zoom into a pix (using OpenGL)

openGL there are more than 250 objects that form a complete wrapper 
around the openGL set of functions (as defined in the openGL-1.2 standard).
each openGL-function is prefixed with "GEM", eg: [GEMglVertex3f] is 
wrapped around glVertex3f.

alternate - alternate between two outlets
average - average a sequence of numbers
change - only output on change
counter - count bangs
invert - non-zero numbers to zero, zero to 1
multiselect/multisel - a select object which accepts a list in the right 
oneshot - send a bang, then block until reset
randomF / randF - floating point random numbers
strcat - string concatentation
tripleLine - do a line with three numbers
tripleRand - random with three numbers
vector+ / v+ - add a scalar to a vector
vector- / v- - subtract a scalar from a vector
vector* / v* - multiply a vector by a scalar
vector/ / v/ - divide a vector by a scalar
vectorpack / vpack - attach a scalar to the end of a vector
rgb2hsv - convert a list of three floats from RGB to an HSV value
hsv2rgb - convert a list of three floats from HSV to an RGB value
abs~ - absolute value of a signal
reson~ - resonant filter



This is a list of all pdp objects and abstractions with a minimal 
Take a look at the patches in the doc/ directory for more info.
(Messy doc & test patches can be found in the test/ directory.)

general purpose pdp modules:

pdp_del		a packet delay line
pdp_reg		a packet register
pdp_snap	takes a snapshot of a packet stream
pdp_trigger	similar to pd's trigger object
pdp_route	routes a packet to a specific outlet
pdp_loop	a packet loop sampler (packet array)
pdp_description	output a symbol describing the packet type
pdp_convert	convert between packet types

image inputs/outputs:

pdp_xv		displays images using the xvideo extension
pdp_glx		displays images using opengl
pdp_v4l		reads images from a video4linux device
pdp_qt		reads quicktime movies

image processors:

pdp_abs		absolute value
pdp_add		adds two images
pdp_and		bitwize and
pdp_bitdepth	set bit depth
pdp_bitmask	apply a bit mask
pdp_bq		spatial biquad filter
pdp_bqt		temporal biquad filter
pdp_cog		gaussian blob estimator
pdp_constant	fills an image with a constant
pdp_conv	horizontal/vertical seperable convolution filter
pdp_cheby	chebyshev color shaper
pdp_chrot	rotates the chroma components
pdp_flip_lr	flip left <-> right
pdp_flip_tb	flip top <-> bottom
pdp_grey	converts an image to greyscale
pdp_grey2mask	converts a greyscale image to an image mask
pdp_hthresh	hard thresholding
pdp_mul		multiplies two images
pdp_mix		crossfade between 2 images
pdp_mix2	mixes 2 images after applying a gain to each of them
pdp_noise	a noise generator
pdp_not		bitwize not
pdp_or		bitwize or
pdp_plasma	plasma generator
pdp_pointcloud	convert an image to a point cloud
pdp_positive	sign function that creates a bitmask
pdp_randmix	crossfades 2 images by taking random pixels
pdp_rotate	tiled rotate
pdp_scale	rescale an image
pdp_sign	sign function
pdp_sthresh	soft thresholding
pdp_zoom	tiled zoom
pdp_zrot	tiled zoom + rotate
pdp_zthresh	zero threshold (x<0 -> 0)
pdp_xor		bitwize xor

dsp objects

pdp_scope~	a very simple oscilloscope
pdp_scan~	phase input scanned synthesis oscillator
pdp_scanxy~	x,y coordinate input scanned synthesis oscillator

utility abstractions

pdp_pps			computes the packet rate in packets/sec

image abstractions

pdp_agc			automatic gain control (intensity maximizer)
pdp_blur		blurs an image
pdp_blur_hor		horizontal blur
pdp_blur_ver		vertical blur
pdp_contrast		contrast enhancement
pdp_dither		a dither effect
pdp_phase		applies an allpass filter to an image
pdp_phase_hor		horizontal allpass
pdp_phase_ver		vertical allpass
pdp_motion_blur		blurs motion
pdp_motion_phase	phase shifts motion
pdp_offset		add an offset to an image
pdp_alledge		an all edge detector
pdp_conv_emboss		emboss
pdp_conv_sobel_hor	horizontal sobel edge detector
pdp_conv_sobel_ver	vertical sobel edge detector
pdp_conv_sobel_edge	sum of squares of hor and ver
pdp_saturation		change colour saturation
pdp_sub			subtract 2 images
pdp_invert		inverse video
pdp_gain3		set 3 channel gains independently
pdp_gradient		converts a greyscale to colour using a colour gradient
pdp_png_to		convert a png file (on disk) to a certain packet type
pdp_tag			tag a packet (to use it with route)

matrix processors

pdp_m_mv		matrix vector multiply
pdp_m_mm		matrix matrix multiply
pdp_m_+=mm		matrix matrix multiply add
pdp_m_LU		compute LU decomposition
pdp_m_LU_inverse	compute matrix inverse from LU decomp
pdp_m_LU_solve		solve a linear system using LU decomp

matrix abstractions

pdp_m_inverse		compute matrix inverse


cellular automata

pdp_ca			computes a cellular automaton (as a generator or a filter)
pdp_ca2image		convert a CA packet to a greyscale image (obsolete: use 
pdp_image2ca		convert an image to a CA packet (black and white) 
(obsolete: use pdp_convert)

3d drawing objects

3dp_windowcontext	a drawable window
3dp_draw		draw objects (cube, sphere, ...)
3dp_view		viewing transforms (rotate, translate, ...)
3dp_light		light source
3dp_push		push a matrix (modelview, texture, ...)
3dp_dlist		compile a display list
3dp_snap		copies the drawing buffer to a texture packet
3dp_mode		set the current matrix mode
3dp_toggle		set some opengl state variables

3d drawing abstractions (pdp_opengl)

3dp_mouserotate		connect to 3dp_windowcontext to rotate the scene
3dp_blend		turn on accumulative blending mode



pdp_ascii : an ASCII art renderer.

* This object maps pixel blocks to ASCII characters. It can optionally 
render original colors.

pdp_canvas : a video canvas.

* This object lets you display several video sources on a canvas and 
move them around with the mouse.

pdp_charcoal : charcoal effect.

* This abstraction is made of basic pdp objects combined together to 
create a charcoal effect.

pdp_cmap : a color mapper.

* This object lets you change the palette of a video.
* It may use the luminosity or not for color detection.

pdp_compose : a video compositor.

* This object lets you make video incrustation on the basis of a 
selected hue or luminosity.

pdp_capture : a screen capture to video utility.

* This object transforms of portion of a ( possibly remote ) screen to a 
PDP video.

pdp_ctrack : a color tracker.

* This object lets you follow a color within an image.
* It proposes a steady mode that enables the search around the cursor.
* It may use the luminosity or not for color detection.

pdp_ffmpeg~ : a video streamer towards a ffserver.

* This object lets you stream video and audio to an ffserver possibly 
using several formats : mpg, asf, ....
* It requires the installation of ffmpeg source tree.

pdp_form : a geometric forms adder.

* This object lets you add the following forms to a video : lines, 
rectangles, ellipses.

pdp_i/pdp_o : PD to PD streaming objects.

* These objects use their own codec to transmit video packets over the 
* You can adjust the framerate and a smoothing factor to reduce the 

pdp_imgloader : load an image and blend it with a video source.

* This object handles two levels of transparency : the one of the image 
and an additional blending factor.

pdp_live~ : a video stream decoder (at least from ffserver).

* This object lets you decode a video stream from an ffserver and maybe 
from other sources.
* It's also capable of reading most video formats : mpg, avi, ...
* It requires the installation of ffmpeg source tree.

pdp_mgrid : a grid-based motion detector.

* This object detects movement within a grid and outputs the cells' 

pdp_mp4live~ : a quicktime stream emitter (towards a darwin or quicktime 

* This object lets you emits a stream towards a darwin or quicktime server.
* It requires the installation of mpeg4ip source tree.

pdp_pen : free hand drawing object.

* This object is behaving like a free hand drawing layer on top of your 

pdp_rec~ : a quicktime file recorder.

* This object enables you to record audio and video to a quicktime file.
* Video supports the following codecs : jpeg, yuv2, divx, dv, yuv2.
* Audio supports the following codecs : twos, raw.

pdp_shape : shape detection object.

* This object detects a shape in video, tracks it and enables you to 
paint it in a different color.

pdp_spigot : a video signal router.

* By selecting a toggle, you can route a video signal to the left or 
right output.

pdp_text : a text addition object.

* This object enables you to add texts to your videos.
* It lets you change the position, the font, the color and the 
orientation of the text.

pdp_transition : transition between two video sources.

* Traditional video transitions : circle ( here ), wipe, blend, melt, 
page and random.

pdp_yqt : a quicktime movie reader.

* Alike pdp_qt, but with less functionnalities, this object reads 
Quicktime movies.
* It supports files coded with the following codecs : jpeg, yuv2, divx, 
dv, yuv2.
* The files shouldn't have compressed headers neither.

pdp_aging, pdp_baltan, pdp_cycle, pdp_dice, pdp_edge,
pdp_intrusion, pdp_lens, pdp_mosaic, pdp_nervous, pdp_puzzle,
pdp_quark, pdp_radioactiv, pdp_rev, pdp_ripple, pdp_shagadelic
pdp_simura, pdp_spiral, pdp_transform, pdp_underwatch, pdp_vertigo
pdp_warhol, pdp_warp : the port of effecTV to PDP.

* These objects let you apply effecTV filters on your videos.
* The detailed description of effects is available here : 

Marc Boon wrote:
> Thank you, Peter, Matthew, and Stephane, and others who answered my 
> questions.
> This list is very responsive, and a great help for me, being a pd-beginner.
> Any body knows where to find an up-to-date comprehensive index of all 
> objects, with description? The docs I found so far are somewhat sparse, 
> and often I don't know which lib to include.
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> 
> http://iem.at/cgi-bin/mailman/listinfo/pd-list

derek holzer ::: http://www.umatic.nl
---Oblique Strategy # 202:
"Back up a few steps.
What else could you have done?"

More information about the Pd-list mailing list