----------------------------------------- - SMLib : Signal processing for Mapping - ----------------------------------------- v0.12 date 20021125 1. Introduction --------------- SMLib is an external objects library for PD (pure data). It complements PD with a set of objects for vector processing, vector analysis, vector synthesis, number stream analysis, number stream filters. I was missing objects that could do dsp-like operations on control signals. PD is event-driven by nature (except the dsp-objects and [delay], [metro], ...). A slider that does not change does not transmit anything. Event-driven events can be sampled by eg. using a [float] with a [metro] on its main input, and a slider on its right inlet. SMLib has objects designed to process such streams. Eg. [lavg] is a leaky integrator, it smoothes abrupt changes. Leaky processes are interesting in mapping because our attention is also leaky. Eg. [hp] is a high-pass filter (just like [hp~]), and it only passes changes, and decays to zero when there are no changes. Likewise our attention shifts towards remarkable changes in our environment. You can detect 'events' in float streams with [threshold]. A vector is a list of floats. These objects are suitable for gesture and high-level music analysis prototyping. This library is written by Johannes Taelman (johannes.taelman@rug.ac.be). The code is free+open (GNU GPL license). I have only tested/compiled the code on win32, but porting to linux or macOs should be easy. 2. List of objects ------------------ processing stream of floats (context) (float output) lavg leaky average lmax leaky maximum lmin leaky minimum lrange leaky range lstd leaky standard deviation decimator passes 1 in n input values threshold detection with hysteresis hip first order high-pass filter bp second order (resonant) high-pass filter analyzing stream of floats (vector output) hist histogram lhist leaky histogram, clips samples lhisti leaky histogram, ignore samples outside bins itov bin index to value (for the histograms prevl previous floats in a list deltas difference between last float and previous floats immediate vector analysis (float output) vsum sum of vector elements vcog center of gravity vmax maximum and its location vmin minimum and its location vrms root mean square vstd standard deviation vector processors (vector output) vv+ vector addition vv- vector substraction vvconv vector convolution vclip clip elements vfmod floating point modulo vpow power vthreshold detections with hysteresises unit conversions on vectors vftom frequency to midi vmtof midi to frequency vdbtorms dB to rms vrmstodb rms to dB vector synthesis (vector output) linspace linearly spaced vector vector stream processing (vector output) (context) vlavg leaky averages vlmax leaky maxima vlmin leaky minima vlrange leaky ranges vdelta difference between successive vectors 3. Installation --------------- Requires PD on the win32 platform (for now). Put SMLib.dll in a directory in your PD path. Put the help patches in pd\doc\5.reference. Start PD with "-lib SMLib" 4. Getting started ------------------ Start PD. Create a new patch. Create an object [SMLib] Right-click on this object after creation. Choose help. This gives you the main SMLib patch with all objects and a brief explanation of them. Choose help for the objects to get details. Have a look at the example patches for design ideas. 5. References ------------- PD headquarters: http://crca.ucsd.edu/~msp/software.html http://iem.kug.ac.at/pd/ http://www.puredata.info