1
-----------------------------------------
2
- SMLib : Signal processing for Mapping -
3
-----------------------------------------
10
SMLib is an external objects library for PD (pure data). It complements PD
11
with a set of objects for vector processing, vector analysis, vector
12
synthesis, number stream analysis, number stream filters.
14
I was missing objects that could do dsp-like operations on control signals.
15
PD is event-driven by nature (except the dsp-objects and [delay], [metro],
16
...). A slider that does not change does not transmit anything. Event-driven
17
events can be sampled by eg. using a [float] with a [metro] on its main input,
18
and a slider on its right inlet. SMLib has objects designed to process such
19
streams. Eg. [lavg] is a leaky integrator, it smoothes abrupt changes. Leaky
20
processes are interesting in mapping because our attention is also leaky.
21
Eg. [hp] is a high-pass filter (just like [hp~]), and it only passes changes,
22
and decays to zero when there are no changes. Likewise our attention shifts
23
towards remarkable changes in our environment. You can detect 'events' in
24
float streams with [threshold]. A vector is a list of floats.
26
These objects are suitable for gesture and high-level music analysis
29
This library is written by Johannes Taelman (johannes.taelman@rug.ac.be). The
30
code is free+open (GNU GPL license). I have only tested/compiled the code on
31
win32, but porting to linux or macOs should be easy.
36
processing stream of floats (context) (float output)
42
lstd leaky standard deviation
43
decimator passes 1 in n input values
44
threshold detection with hysteresis
45
hip first order high-pass filter
46
bp second order (resonant) high-pass filter
48
analyzing stream of floats (vector output)
51
lhist leaky histogram, clips samples
52
lhisti leaky histogram, ignore samples
54
itov bin index to value (for the histograms
55
prevl previous floats in a list
56
deltas difference between last float and
59
immediate vector analysis (float output)
61
vsum sum of vector elements
62
vcog center of gravity
63
vmax maximum and its location
64
vmin minimum and its location
66
vstd standard deviation
68
vector processors (vector output)
71
vv- vector substraction
72
vvconv vector convolution
74
vfmod floating point modulo
76
vthreshold detections with hysteresises
78
unit conversions on vectors
80
vftom frequency to midi
81
vmtof midi to frequency
85
vector synthesis (vector output)
87
linspace linearly spaced vector
89
vector stream processing (vector output) (context)
95
vdelta difference between successive vectors
101
Requires PD on the win32 platform (for now). Put SMLib.dll in a directory in
102
your PD path. Put the help patches in pd\doc\5.reference.
104
Start PD with "-lib SMLib"
113
Create an object [SMLib]
115
Right-click on this object after creation. Choose help.
117
This gives you the main SMLib patch with all objects and a brief explanation
118
of them. Choose help for the objects to get details. Have a look at the
119
example patches for design ideas.
125
http://crca.ucsd.edu/~msp/software.html
126
http://iem.kug.ac.at/pd/
127
http://www.puredata.info