Forums > MaxMSP

Running Average for jittering inputs

April 22, 2006 | 3:54 am

Hiya, I was wondering if there was a good patch or object for smoothing jittering inputs?

I have some capacitive sensors measuring distance of whose output has been converted to Midi. So the values go from roughly 5 – 124, but it is very difficult to get an exact value because it jitters by about 3 or 4 places up and down. Is there a way to smooth these such that only an incriment or decrement will happen if it is a great enough movement?

Thanks – T


April 22, 2006 | 8:29 am

try [slide]
wes


April 22, 2006 | 11:07 am

lp.stacey in "running average" mode.

Trond has posted some patches using the object to good effect for
exactly your purpose.

Stacey is part of the freeware Litter Starter Pack. URI below.

– Peter

————– http://www.bek.no/~pcastine/Litter/ ————-
Peter Castine +—> Litter Power & Litter Bundle for Jitter
Heavy-Duty Mathematics for Everyday Use
iCE: Sequencing, Recording &
Interface Building for |home | chez nous|
Max/MSP Extremely cool |bei uns | i nostri|
http://www.dspaudio.com/ http://www.castine.de


April 22, 2006 | 1:18 pm


April 22, 2006 | 7:26 pm

I’ve just had a look at the lp.stacey collcect statistics object, but it doesn’t seem to work. . .
I’ve tried banging the values 1, 1.5 and 2 but there is no output.
Thanks – T


April 22, 2006 | 7:29 pm

Also i looked at the Trond Lossius website again, and am not sure which patch to look at . . .?


April 22, 2006 | 10:24 pm

On 22-Apr-2006, at 21:26, Tim wrote:
> I’ve just had a look at the lp.stacey collcect statistics object,
> but it doesn’t seem to work. . .
> I’ve tried banging the values 1, 1.5 and 2 but there is no output.

OS, platform, version of lp.stacey? It’s been tested previously on
Max 3.7-4.5.6 inclusive, on Windows, OS X, and earlier Mac OSs and
has so far never failed to work.

The relevant bit (for your needs) of the help patch is the "run-
stacey-run" subpatch.

I will have to dig around the list archive to find Trond’s patch, but
it must be in there somewhere.

Best — Peter


April 23, 2006 | 4:31 am

Had another delve into Tronds stuff, still havent found the running average patch with lp.stacey object in it

Had a look at the Slide list by Jasch, and its help file says its a slide lowpass filter for lists, ints & floats.

Should the values on the output change when you adjust the settings at the top?

Are there any better described patches? I really am a newbie and all this seems a little vague.

It seems that even if i change the tl.velocity objects inputs there is no output change when playing with the values in the help file.

Don’t think i did anything weird with the installation. Any ideas?
Thanks – T


April 23, 2006 | 4:46 am

have you tried slide? it’s built in to max and has a help file that will work.

wes


April 23, 2006 | 10:29 am

from the your questions it’s hard to deduce what your seeing exactly.

all of these smoothing filters work more or less on the same premise:
they take an average of past values and and move the output value up
or down according to some math based on that average.

the [slide] object (i made my slidelist before there was slide in the
standard distro) adds a fraction of the new value to the old value
*AT EACH PASS*. if you input one value using a high dividing factor
you’ll get very little change.
let’s say you have a smoothing factor of 20, one twentieth of the new
value get’s added to the old value. when you start the old value is
0. so inputting a 1. will output 0.05. etc.

> Had a look at the Slide list by Jasch, and its help file says its a
> slide lowpass filter for lists, ints & floats.
>
> Should the values on the output change when you adjust the settings
> at the top?

there is one setting: the factor that goes to the right inlet (or is
set using a typed in argument, or is input using the slide $1 message)
all values going into the left inlet get filtered according to the
smoothing formula.

the slide-filtering works well for continous inputs, streams of
numbers that continously change. you smooth out the data without
loosing it’s significant meaning. what you *DO* lose is precision in
time. it takes a moment to reach a specific value (sometimes it NEVER
reaches it, because of the averaging) for this it’s important to have
a continous stream. you can even force this by sampling the incoming
values regularly with a metronome, even if your input is not continuous.

hth

/*j

max v2;
#N vpatcher 395 261 995 661;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 163 225 44 196617 filtered;
#P newex 43 58 60 196617 loadmess 1;
#P flonum 190 166 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 222 193 217 196617 smoothing the stream with a factor of
1/20th;
#P user multiSlider 42 245 111 120 0. 127. 1 3177 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P user multiSlider 157 245 111 120 0. 127. 1 3177 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P toggle 42 79 15 0;
#P newex 157 193 61 196617 slide 20 20;
#P newex 42 98 58 196617 metro 100;
#P newex 42 125 71 196617 drunk 128 10;
#P comment 117 128 155 196617 simulating a jittering midi input;
#P comment 222 207 240 196617 i.e. adding 1/20th of the new value to
the old value;
#P comment 53 225 54 196617 unfiltered;
#P connect 11 0 6 0;
#P connect 6 0 4 0;
#P connect 4 0 3 0;
#P connect 3 0 8 0;
#P connect 3 0 5 0;
#P connect 5 0 7 0;
#P connect 10 0 5 1;
#P connect 10 0 5 2;
#P pop;


April 23, 2006 | 1:54 pm

On 23-Apr-2006, at 6:31, Tim wrote:
> Had another delve into Tronds stuff, still havent found the running
> average patch with lp.stacey object in it

Google turned up the following for the query "stacey trond
site:synthesisters.com":

< http://www.synthesisters.com/hypermail/max-msp/Mar04/10759.html>

The link includes a clever example for envelope tracking. The data
smoothing is primarily handled by onepole~, stacey is primarily there
to normalize data, providing an automatic calibration of the input
signal.

I’ll include the patch below, which I modified to allow you to
optionally use an instance of stacey as a secondary smoothing stage.
Normalization is now based around the formula (mean + 3 *
standard_deviation). Trond used a factor of two. Salt to taste.

BTW, the Google query also turned up some messages from Trond with
even more ideas for data smoothing. Thought you might want to know.

Best — Peter

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P hidden newex 220 305 27 196617 0;
#P hidden newex 220 284 48 196617 loadbang;
#P toggle 220 329 15 0;
#P window linecount 2;
#P comment 184 195 339 196617 The AutoScaler takes a little while to
adjust (how long depends on the arguments of snaphot~ and lp.stacey);
#P window linecount 1;
#P message 64 359 65 196617 startwindow;
#P user ezdac~ 130 386 174 419 0;
#P comment 305 354 100 196617 Scaled values;
#N vpatcher 401 77 752 421;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 82 171 92 196617 lp.stacey 50;
#P inlet 238 66 15 0;
#P user gswitch 54 203 41 32 1 0;
#P window linecount 0;
#P comment 7 48 223 196617 mean value + 3 standard deviations = 1.;
#P outlet 54 280 15 0;
#P inlet 69 72 15 0;
#P newex 199 171 29 196617 * 3.;
#P newex 182 193 27 196617 + 0.;
#P newex 182 214 130 196617 if $f1==0. then 1. else $f1;
#P newex 54 242 138 196617 / 1.;
#P newex 131 144 113 196617 lp.stacey 500;
#P comment 7 32 223 196617 Input signal is auto-scaled so that;
#P fasten 10 0 9 0 243 93 59 93;
#P lcolor 7;
#P connect 9 0 2 0;
#P connect 2 0 7 0;
#P connect 6 0 9 1;
#P fasten 6 0 11 0 74 159 87 159;
#P fasten 11 3 9 2 126 195 89 195;
#P fasten 6 0 1 0 74 122 136 122;
#P connect 1 3 4 0;
#P connect 4 0 3 0;
#P connect 3 0 2 1;
#P connect 1 4 5 0;
#P connect 5 0 4 1;
#P pop;
#P newobj 165 348 65 196617 p AutoScaler;
#P user meter~ 152 164 165 237 100 0 168 0 103 103 103 255 153 0 255
0 0 217 217 0 153 186 0 12 3 3 3 3;
#P user gain~ 130 164 21 51 158 0 1.071519 7.94321 10.;
#P toggle 186 87 15 0;
#P message 186 107 42 196617 loop $1;
#P toggle 165 87 15 0;
#P message 130 87 29 196617 open;
#N sfplay~ 1 120960 0 ;
#P newobj 130 132 43 196617 sfplay~;
#P user multiSlider 305 273 320 56 0. 1. 1 3449 15 0 0 2 0 0 1;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#N vpatcher 10 59 410 359;
#P outlet 84 230 15 0;
#P window setfont "Sans Serif" 9.;
#P newex 84 198 27 196617 sqrt;
#P newex 84 167 69 196617 snapshot~ 20;
#P newex 84 136 63 196617 onepole~ 20;
#P newex 84 109 27 196617 *~;
#P inlet 84 70 15 0;
#P connect 0 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 0;
#P connect 4 0 5 0;
#P connect 0 0 1 1;
#P pop;
#P newobj 165 251 92 196617 p EnvelopeTracker;
#P user multiSlider 305 370 320 56 0. 1. 1 3449 15 0 0 2 0 0 1;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P comment 305 257 100 196617 Unscaled values;
#P comment 171 180 404 196617 < - Try changing volumes , and see how
it’s affecting the envelope tracking;
#P window linecount 2;
#P comment 19 30 337 196617 lp.stacey can be used for normalizing
sensor and analysis data etc. , reducing the need of calibration and
making the system more predictable.;
#P window linecount 1;
#P comment 238 333 207 196617 Turn on toggle for additional data
smoothing;
#P comment 10 466 283 196617 Demo by Trond Lossius , minor mods by
Peter Castine. Enjoy.;
#P fasten 11 0 8 0 191 127 135 127;
#P fasten 10 0 8 0 170 127 135 127;
#P connect 9 0 8 0;
#P connect 8 0 13 0;
#P connect 13 0 17 0;
#P fasten 18 0 17 0 69 378 135 378;
#P hidden connect 13 0 14 0;
#P fasten 13 0 17 1 135 379 169 379;
#P fasten 13 0 6 0 135 245 170 245;
#P connect 6 0 15 0;
#P connect 12 0 11 0;
#P hidden connect 21 0 22 0;
#P hidden connect 22 0 20 0;
#P connect 20 0 15 1;
#P fasten 6 0 7 0 170 271 310 271;
#P fasten 15 0 5 0 170 368 310 368;
#P window clipboard copycount 23;

[Please cf the .sig from my previous post on this thread if you need it]


April 23, 2006 | 4:03 pm

Hiya, I’ve looked at Max and typed slide into an object box, But is gives me the message No Such Object.
Doesnt this mean that it doesn’t exist?
Is the slide object not included in Max 4.3?

T


April 23, 2006 | 4:14 pm

> Is the slide object not included in Max 4.3?

no, it was released for the first time in Max 4.5, use [slidelist]
instead.


April 23, 2006 | 4:24 pm

> Is the slide object not included in Max 4.3?

or use this abstraction:

max v2;
#N vpatcher 119 108 848 542;
#P window setfont "Sans Serif" 9.;
#P comment 194 118 64 196617 slide_factor;
#P newex 529 70 65 196617 loadmess 12;
#P toggle 370 107 15 0;
#P user multiSlider 459 249 83 77 0. 100. 1 3193 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P user multiSlider 370 250 83 77 0. 100. 1 3193 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P newex 370 126 55 196617 metro 100;
#P newex 370 149 63 196617 random 100;
#N vpatcher 680 372 1005 752;
#N comlet output value;
#P outlet 123 260 15 0;
#N comlet input value;
#P inlet 123 74 15 0;
#N comlet slidefactor;
#P inlet 208 74 15 0;
#P window setfont "Sans Serif" 9.;
#P newex 150 107 22 196617 b 1;
#P newex 208 140 30 196617 !/ 1.;
#P newex 123 204 37 196617 + 1.;
#P newex 123 157 27 196617 – 1.;
#P newex 123 181 27 196617 * 1.;
#P newex 150 130 27 196617 f;
#P connect 7 0 2 0;
#P connect 2 0 1 0;
#P connect 1 0 3 0;
#P connect 3 0 8 0;
#P connect 0 0 2 1;
#P connect 4 0 1 1;
#P connect 7 0 5 0;
#P connect 5 0 0 0;
#P connect 0 0 3 1;
#P fasten 3 0 0 1 128 230 187 230 187 126 172 126;
#P connect 6 0 4 0;
#P pop;
#P newobj 459 189 80 196617 p slide_lowpass;
#P flonum 529 157 35 9 1. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#N comlet output value;
#P outlet 91 304 15 0;
#N comlet input value;
#P inlet 91 119 15 0;
#N comlet slidefactor;
#P inlet 176 119 15 0;
#P newex 118 152 22 196617 b 1;
#P newex 176 185 30 196617 !/ 1.;
#P newex 91 249 37 196617 + 1.;
#P newex 91 202 27 196617 – 1.;
#P newex 91 226 27 196617 * 1.;
#P newex 118 175 27 196617 f;
#P comment 43 75 222 196617 y(n) = y(n-1) + ((x(n) – y(n-1))/
slide_factor);
#P comment 39 41 175 196617 slide lowpass filter for single values;
#P comment 43 61 275 196617 using the same formula as the slide~ and
jit.slide externals;
#P comment 567 157 64 196617 slide_factor;
#P connect 11 0 6 0;
#P connect 6 0 5 0;
#P connect 5 0 7 0;
#P connect 7 0 12 0;
#P connect 4 0 6 1;
#P connect 8 0 5 1;
#P connect 11 0 9 0;
#P connect 9 0 4 0;
#P connect 4 0 7 1;
#P fasten 7 0 4 1 96 275 155 275 155 171 140 171;
#P connect 10 0 8 0;
#P fasten 20 0 19 0 534 97 375 97;
#P connect 19 0 16 0;
#P connect 16 0 15 0;
#P connect 15 0 17 0;
#P connect 15 0 14 0;
#P connect 14 0 18 0;
#P connect 20 0 13 0;
#P connect 13 0 14 1;
#P pop;


April 23, 2006 | 6:48 pm

I’ve had a look at the slide object in v 4.5.4 and it is actually a tilde object. – with a number~ output.
which can then be converted back to a number (int) box. For midi communication.

But i don’t understand the slide up and slide down boxes in the help for the object, how do they work?
Also the long list of messages that have been sent to me don’t make sense? I’m a beginner guys!

T


April 23, 2006 | 6:59 pm

"stacey trond
site:synthesisters.com":
this site does not exist. WHat was the link you were refering to?
Tim


April 23, 2006 | 7:05 pm

On 23 avr. 06, at 20:48, Tim wrote:

> I’ve had a look at the slide object in v 4.5.4 and it is actually a
> tilde object. – with a number~ output.
> which can then be converted back to a number (int) box. For midi
> communication.

slide arrives with 4.5.5…

> But i don’t understand the slide up and slide down boxes in the
> help for the object, how do they work?
> Also the long list of messages that have been sent to me don’t make
> sense? I’m a beginner guys!

Slide up factor is used when the input value increases. Slide down
for the decrease part. So there’s a different smooth factor depending
on the "direction" of the value.

Bellow a version which have the same behavior as the slide object
included since 4.55.

HTH,
ej

save as myslide.pat

#N comlet slide down;
#P inlet 388 38 15 0;
#N comlet slide up;
#P inlet 282 38 15 0;
#N comlet input;
#P inlet 69 38 15 0;
#P outlet 69 291 15 0;
#P objectname output;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 69 67 27 196617 t f f;
#P newex 296 124 27 196617 1;
#P newex 296 103 35 196617 sel 0;
#P newex 235 124 27 196617 1;
#P newex 235 103 35 196617 sel 0;
#P newex 317 76 65 196617 loadmess $2;
#P newex 235 76 78 196617 loadmess $1;
#P newex 199 101 27 196617 t f f;
#P newex 199 127 27 196617 – 0.;
#P newex 199 153 133 196617 if $f1 > 0 then $f2 else $f3;
#P newex 88 254 27 196617 f;
#P newex 69 223 140 196617 expr $f2 + ($f1 – $f2) / $f3;
#P connect 9 1 2 2;
#P connect 10 0 2 2;
#P connect 15 0 2 2;
#P connect 9 0 10 0;
#P connect 6 0 9 0;
#P connect 8 0 2 1;
#P connect 7 1 2 1;
#P connect 14 0 2 1;
#P connect 7 0 8 0;
#P connect 5 0 7 0;
#P connect 4 0 3 1;
#P connect 2 0 0 2;
#P connect 3 0 2 0;
#P connect 4 1 3 0;
#P connect 11 1 4 0;
#P fasten 1 0 0 1 93 276 232 276 232 204 139 204;
#P connect 0 0 1 0;
#P connect 0 0 12 0;
#P connect 11 0 0 0;
#P connect 13 0 11 0;
#P window clipboard copycount 16;

save as myslide.help

#P button 37 104 15 0;
#P window setfont "Sans Serif" 9.;
#P flonum 37 212 48 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 37 128 48 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P comment 273 113 50 196617 see also:;
#P message 321 112 30 196617 expr;
#P hidden newex 331 149 64 196617 prepend help;
#P objectname phelp;
#P hidden newex 331 169 45 196617 pcontrol;
#P window setfont "Sans Serif" 18.;
#P comment 15 9 106 196626 slide;
#B frgb 26 8 57;
#P window setfont "Sans Serif" 9.;
#P comment 15 35 292 196617 Smooth-out changes in float values;
#P user panel 10 5 400 50;
#X brgb 255 247 207;
#X frgb 0 0 0;
#X border 0;
#X rounded 0;
#X shadow 0;
#X done;
#P comment 174 170 143 196617 args: ;
#P flonum 155 128 48 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 154 106 62 196617 slide down;
#P flonum 96 128 48 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 3;
#P comment 16 61 337 196617 Slide filters an input value
logarithmically between changes. The formula is y(n) = y(n-1) + ((x
(n) – y(n-1))/slide). It’s particularly useful for envelope following
and lowpass filtering.;
#P window linecount 1;
#P newex 37 168 129 196617 myslide 10. 10.;
#B color 5;
#P comment 96 106 47 196617 slide up;
#P hidden connect 11 0 10 0;
#P hidden connect 12 0 11 0;
#P connect 5 0 1 2;
#P connect 3 0 1 1;
#P connect 1 0 15 0;
#P connect 14 0 1 0;
#P connect 16 0 14 0;
#P window clipboard copycount 17;


April 23, 2006 | 7:21 pm

>"stacey trond
>site:synthesisters.com":
>this site does not exist. WHat was the link you were refering to?
>Tim

just enter

>
stacey trond site:synthesisters.com

in google

easy

best

kasper


April 24, 2006 | 8:51 am

Sorry for coming in late on this thread. The patch provided by Peter
was something I made for a dance project. We were using the Diem
Digital Dance sensor system, a bunch of bend sensors attached to the
body of the dancer. Two of the problems we had were that the sensors
had quite a bit of personality and could have good and bad days in
term of what range they felt like outputting. In addition the sensors
would tend to move a bit on the body during performance, so that the
range of output might change during performance. For that reason I
wanted to be able to auto-adjust the range and scale into a relative
range (0.-1.) so that although resolution might vary, we would still
be using all of the range 0-1. That way we wouldn’t suddenly loose a
lot of the range of the musical material if the sensors misbehaved.
For that reason I asked Peter to make running mode for lp.stacey so
that we could map incoming data to relative range based on average
value and standard deviation.

Alexander Refsum Jensenius has recently done the same thing and more
as part of Jamoma (www.jamoma.org). jmod.autoscale autoscale input to
a predefined range. It has several modes that might fit different needs.

If you instead want to smooth incoming data but not change the range
of it, The Ircam Phase-lib has a useful utility for it named
"inertia". As I have been doing some modifications to the code, I am
permitted to distribute it outside Ircam-forum according to a GNU
LGPL license.

The earlier post that Peter was referring to can be found here:

http://www.synthesisters.com/hypermail/max-msp/Mar04/10759.h tml
http://www.synthesisters.com/hypermail/max-msp/Jan04/9298.ht ml
http://www.synthesisters.com/hypermail/max-msp/Nov04/17763.h tml

Best,
Trond

Save as "inertia":

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 145 89 40 196617 t 1 f f;
#P newex 110 61 45 196617 gate 2 2;
#P outlet 110 299 15 0;
#P newex 240 225 64 196617 maximum 1.;
#P newex 276 128 45 196617 float $1;
#P newex 276 101 45 196617 loadbang;
#N comlet inertia factor;
#P inlet 240 80 15 0;
#P newex 175 200 27 196617 f;
#P newex 110 250 141 196617 expr $f2 + ($f1-$f2)/$f3;
#P newex 110 125 27 196617 t f b;
#P inlet 145 42 15 0;
#P comment 258 80 100 196617 inertia factor;
#P connect 6 0 7 0;
#P connect 8 0 3 2;
#P connect 5 0 8 0;
#P connect 7 0 8 0;
#P connect 3 0 9 0;
#P fasten 3 0 4 1 115 277 92 277 92 182 197 182;
#P lcolor 8;
#P connect 4 0 3 1;
#P connect 2 1 4 0;
#P connect 11 2 4 0;
#P connect 10 1 11 0;
#P connect 1 0 10 1;
#P connect 2 0 3 0;
#P connect 11 1 2 0;
#P connect 10 0 2 0;
#P fasten 11 0 10 0 89 106 89 49 115 49;
#P window clipboard copycount 12;

Save as inertia-help:

#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P message 409 154 20 196617 30;
#P message 433 154 20 196617 80;
#P message 391 154 14 196617 1;
#P flonum 313 225 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 389 101 33 196617 shake;
#P newex 364 195 55 196617 inertia 30.;
#B color 1;
#P user multiSlider 364 220 196 92 0. 127. 1 3433 15 0 0 2 0 0 0;
#M frgb 0 0 0;
#M brgb 255 255 255;
#M rgb2 127 127 127;
#M rgb3 0 0 0;
#M rgb4 37 52 91;
#M rgb5 74 105 182;
#M rgb6 112 158 18;
#M rgb7 149 211 110;
#M rgb8 187 9 201;
#M rgb9 224 62 37;
#M rgb10 7 114 128;
#P user uslider 364 47 18 128 128 1 0 0;
#P window setfont "Sans Serif" 18.;
#P comment 13 12 63 196626 inertia;
#B frgb 255 255 255;
#P window setfont "Sans Serif" 9.;
#P comment 13 37 94 196617 iterative smoother;
#B frgb 255 255 255;
#P user panel 8 8 106 47;
#X brgb 163 29 3;
#X frgb 0 0 0;
#X border 0;
#X rounded 0;
#X shadow 0;
#X done;
#P comment 82 195 100 196617 bypass argument : 1;
#P button 187 126 15 0;
#P button 27 126 15 0;
#P comment 25 70 265 196617 inertia takes one float argument : the
reach speed factor;
#P user hslider 187 258 18 128 1024 1 0 0;
#P flonum 187 231 71 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 237 172 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 187 149 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 187 193 60 196617 inertia 100;
#B color 1;
#P comment 204 127 33 196617 move;
#P user hslider 27 258 18 128 1024 1 0 0;
#P flonum 27 231 77 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 68 172 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 27 148 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P comment 26 298 282 196617 Didier Bouchon and Roland Cahen (ART3000/
LE CUBE- 2003);
#P newex 27 193 51 196617 inertia 3.;
#B color 1;
#P comment 45 127 33 196617 move;
#P comment 23 93 258 196617 output = current state + (goal – current
state) / factor;
#P connect 28 0 23 1;
#P connect 26 0 23 1;
#P connect 27 0 23 1;
#P connect 23 0 25 0;
#P connect 23 0 22 0;
#P connect 21 0 23 0;
#P connect 11 0 9 1;
#P connect 12 0 13 0;
#P connect 9 0 12 0;
#P connect 10 0 9 0;
#P connect 16 0 10 0;
#P connect 5 0 2 1;
#P connect 6 0 7 0;
#P connect 2 0 6 0;
#P connect 4 0 2 0;
#P connect 15 0 4 0;
#P window clipboard copycount 29;


Viewing 19 posts - 1 through 19 (of 19 total)