[PD-dev] [Fwd: PD-cvs Digest, Vol 2, Issue 5]
cyrille
cyrille.henry at la-kitchen.fr
Mon Apr 25 16:43:14 CEST 2005
hello,
i'm tring to clean my pd directory, in order to share all abstraction i
made that can be usefull for others.
i don't have lot's of time now, so it's quite slow, but in the future
you'll find in the abstraction/nusmuk folder a set of simple but usefull
abstractions.
the first one is another granular synthesys exemple.
i hope it's ok for everybody.
cyrille
-------- Message original --------
Sujet: PD-cvs Digest, Vol 2, Issue 5
Date: Sat, 23 Apr 2005 12:00:03 +0200
De: pd-cvs-request at iem.at
Répondre à: pd-cvs at iem.at
Pour: pd-cvs at iem.at
Send PD-cvs mailing list submissions to
pd-cvs at iem.at
To subscribe or unsubscribe via the World Wide Web, visit
http://lists.puredata.info/listinfo/pd-cvs
or, via email, send a message with subject or body 'help' to
pd-cvs-request at iem.at
You can reach the person managing the list at
pd-cvs-owner at iem.at
When replying, please edit your Subject line so it is more specific
than "Re: Contents of PD-cvs digest..."
Today's Topics:
1. abstractions/La-kitchen autocal-help.pd,1.1.1.1,1.2 (cyrille)
2. abstractions/La-kitchen autocal.pd,1.1.1.1,1.2 (cyrille)
3. abstractions/nusmuk - New directory (cyrille)
4. abstractions/nusmuk/gran - New directory (cyrille)
5. abstractions/nusmuk/gran granulator.pd, NONE, 1.1
hanning.wav, NONE, 1.1 help-granulator.pd, NONE, 1.1 (cyrille)
6. externals/grill/flext/buildsys version.inc,1.2,1.3 (Thomas Grill)
7. externals/grill/flext/source flmap.cpp,1.2,1.3 (Thomas Grill)
8. externals/grill/flext/source flsupport.cpp,1.50,1.51
(Thomas Grill)
9. externals/grill/flext/source flsupport.cpp,1.51,1.52
(Thomas Grill)
----------------------------------------------------------------------
Message: 1
Date: Fri, 22 Apr 2005 11:43:34 +0000
From: cyrille <nusmuk at users.sourceforge.net>
Subject: [PD-cvs] abstractions/La-kitchen autocal-help.pd,1.1.1.1,1.2
To: pd-cvs at iem.at
Message-ID: <E1DOwZL-0002C3-1B at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/abstractions/La-kitchen
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8364
Modified Files:
autocal-help.pd
Log Message:
bugfix + new fonction for the autocal abstraction
Index: autocal-help.pd
===================================================================
RCS file: /cvsroot/pure-data/abstractions/La-kitchen/autocal-help.pd,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** autocal-help.pd 27 Jan 2005 12:23:02 -0000 1.1.1.1
--- autocal-help.pd 22 Apr 2005 11:43:32 -0000 1.2
***************
*** 1,57 ****
#N canvas 252 177 643 533 10;
#X obj 18 133 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 6200 1;
#X obj 18 309 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 7844 1;
! #X floatatom 39 321 5 0 0 0 - - -;
! #X floatatom 61 340 5 0 0 0 - - -;
! #X floatatom 69 202 5 0 0 0 - - -;
! #X floatatom 52 183 5 0 0 0 - - -;
! #X obj 18 277 autocal 0 127;
! #X floatatom 82 360 5 0 0 0 - - -;
! #X floatatom 104 380 5 0 0 0 - - -;
! #X floatatom 104 241 5 0 0 0 - - -;
! #X floatatom 86 222 5 0 0 0 - - -;
! #X obj 35 154 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
! #N canvas 495 236 547 477 save 0;
! #X obj 66 219 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 11461 1;
! #X obj 66 29 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 7600 1;
! #X obj 102 119 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
! 1;
! #X msg 87 218 set \$1;
! #X msg 87 240 21;
! #X msg 109 268 set \$1;
! #X msg 109 290 80;
! #X obj 146 217 loadbang;
#X text 128 42 This is just an exemple of saving the calibration on
message box.;
! #X floatatom 155 132 5 0 0 0 - - -;
! #X obj 66 187 autocal 0 127;
! #X connect 1 0 10 0;
! #X connect 2 0 10 1;
#X connect 3 0 4 0;
! #X connect 4 0 10 2;
! #X connect 5 0 6 0;
! #X connect 6 0 10 3;
! #X connect 7 0 4 0;
! #X connect 7 0 6 0;
! #X connect 9 0 10 2;
! #X connect 10 0 0 0;
! #X connect 10 1 3 0;
! #X connect 10 2 5 0;
! #X restore 15 479 pd save calibration;
! #X text 53 155 learn;
#X text 35 129 Data input;
! #X text 148 277 argument = output range (default = 0..1);
! #X text 150 317 minimum of the input;
! #X text 150 338 maximum of the input;
! #X text 150 360 center of the input;
#X text 43 424 calibrated output;
! #X text 148 178 manual change the input minimum;
! #X text 149 197 manual change the input maximum;
! #X text 150 379 variation amplitude;
#X text 195 45 autocal is an abstraction dedicated to calibrated sensors
value. (auto calibration);
--- 1,55 ----
#N canvas 252 177 643 533 10;
#X obj 18 133 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 10100 1;
#X obj 18 309 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 3800 1;
! #X floatatom 53 321 5 0 0 0 - - -;
! #X floatatom 89 340 5 0 0 0 - - -;
! #X floatatom 89 202 5 0 0 0 - - -;
! #X floatatom 65 183 5 0 0 0 - - -;
! #X floatatom 124 360 5 0 0 0 - - -;
! #X floatatom 160 380 5 0 0 0 - - -;
! #X floatatom 136 241 5 0 0 0 - - -;
! #X floatatom 112 222 5 0 0 0 - - -;
! #X obj 41 154 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
! #N canvas 62 435 547 477 save 0;
! #X obj 67 222 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 9005 1;
! #X obj 67 35 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 6800 1;
! #X obj 87 150 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
! ;
! #X msg 99 231 set \$1;
! #X msg 99 253 29;
! #X msg 164 271 set \$1;
! #X obj 164 213 loadbang;
#X text 128 42 This is just an exemple of saving the calibration on
message box.;
! #X msg 164 293 84;
! #X obj 67 189 autocal 0 127 0 12;
! #X text 127 75 Calibration is then saved automaticaly with the patch
! ;
! #X connect 1 0 9 0;
! #X connect 2 0 9 1;
#X connect 3 0 4 0;
! #X connect 4 0 9 2;
! #X connect 5 0 8 0;
! #X connect 6 0 4 0;
! #X connect 6 0 8 0;
! #X connect 8 0 9 3;
! #X connect 9 0 0 0;
! #X connect 9 1 3 0;
! #X connect 9 2 5 0;
! #X restore 15 506 pd save calibration;
! #X text 59 155 learn;
#X text 35 129 Data input;
! #X text 206 317 minimum of the input;
! #X text 206 338 maximum of the input;
! #X text 206 360 center of the input;
#X text 43 424 calibrated output;
! #X text 191 178 manual change the input minimum;
! #X text 191 197 manual change the input maximum;
! #X text 206 379 variation amplitude;
#X text 195 45 autocal is an abstraction dedicated to calibrated sensors
value. (auto calibration);
***************
*** 61,78 ****
while "learn" is 1 \, and scale this input to the specified range.
;
! #X text 148 220 manual change the input center (jitter);
! #X text 149 239 manual change the input amplitude (change sensibility
of the sensors);
#X text 296 9 autocal;
! #X text 328 482 cyrille.henry at la-kitchen.fr 12/2004;
! #X connect 0 0 6 0;
! #X connect 4 0 6 3;
! #X connect 5 0 6 2;
! #X connect 6 0 1 0;
! #X connect 6 1 2 0;
! #X connect 6 2 3 0;
! #X connect 6 3 7 0;
! #X connect 6 4 8 0;
! #X connect 9 0 6 5;
! #X connect 10 0 6 4;
! #X connect 11 0 6 1;
--- 59,112 ----
while "learn" is 1 \, and scale this input to the specified range.
;
! #X text 190 220 manual change the input center (jitter);
! #X text 191 239 manual change the input amplitude (change sensibility
of the sensors);
#X text 296 9 autocal;
! #N canvas 0 0 885 432 non-linear 0;
! #X obj 17 28 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 8200 1;
! #X obj 17 204 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 10205 1;
! #X floatatom 159 148 5 0 0 0 - - -;
! #X text 196 248 float is for the rest...;
! #X text 201 214 1 is for square;
! #X text 194 229 -1 is for square root;
! #X text 184 176 last parametter control the shape of the transfer fonction
! ;
! #X text 200 199 O (default) is for linear;
! #X obj 17 172 autocal 0 127 0 127 1;
! #X connect 0 0 8 0;
! #X connect 2 0 8 6;
! #X connect 8 0 1 0;
! #X restore 15 487 pd non-linear;
! #X text 172 278 argument = output range (default = 0..1) \, input range
! (default = 0 1) \, curve (default = linear);
! #N canvas 0 0 525 500 clip 0;
! #X obj 50 28 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 2000 1;
! #X obj 50 207 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144
! -1 -1 2000 1;
! #X obj 104 72 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
! ;
! #X msg 104 94 clip \$1;
! #X text 133 72 clik output to limit value or not;
! #X obj 50 175 autocal 30 80 30 80;
! #X text 176 93 (default = 1);
! #X connect 0 0 5 0;
! #X connect 2 0 3 0;
! #X connect 3 0 5 0;
! #X connect 5 0 1 0;
! #X restore 15 468 pd clip;
! #X text 325 498 cyrille.henry at la-kitchen.fr 04_2005;
! #X obj 18 277 autocal 10 80 0 127 2;
! #X connect 0 0 31 0;
! #X connect 4 0 31 3;
! #X connect 5 0 31 2;
! #X connect 8 0 31 5;
! #X connect 9 0 31 4;
! #X connect 10 0 31 1;
! #X connect 31 0 1 0;
! #X connect 31 1 2 0;
! #X connect 31 2 3 0;
! #X connect 31 3 6 0;
! #X connect 31 4 7 0;
------------------------------
Message: 2
Date: Fri, 22 Apr 2005 11:43:49 +0000
From: cyrille <nusmuk at users.sourceforge.net>
Subject: [PD-cvs] abstractions/La-kitchen autocal.pd,1.1.1.1,1.2
To: pd-cvs at iem.at
Message-ID: <E1DOwZp-0002Dg-HM at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/abstractions/La-kitchen
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8497
Modified Files:
autocal.pd
Log Message:
Index: autocal.pd
===================================================================
RCS file: /cvsroot/pure-data/abstractions/La-kitchen/autocal.pd,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** autocal.pd 27 Jan 2005 12:23:02 -0000 1.1.1.1
--- autocal.pd 22 Apr 2005 11:43:47 -0000 1.2
***************
*** 1,130 ****
! #N canvas 474 99 794 740 10;
! #X msg 305 236 0;
! #X obj 223 300 f;
! #X obj 343 302 f;
! #X obj 186 300 min;
! #X obj 305 301 max;
! #X obj 186 177 select 1;
! #X obj 186 259 t f f;
! #X obj 305 262 t f f;
! #X obj 80 107 spigot;
! #X obj 46 683 outlet;
! #X obj 92 460 loadbang;
! #X obj 46 483 max 0;
! #N canvas 0 0 312 427 range_0_1 0;
#X obj 16 45 inlet;
! #X obj 77 46 inlet;
! #X obj 161 49 inlet;
! #X obj 16 198 -;
! #X obj 16 284 outlet;
! #X obj 77 77 t f b f;
! #X obj 67 185 -;
! #X obj 16 234 / 127;
#X connect 0 0 3 0;
! #X connect 1 0 5 0;
! #X connect 2 0 6 0;
! #X connect 3 0 7 0;
! #X connect 5 0 3 1;
! #X connect 5 1 6 0;
! #X connect 5 2 6 1;
#X connect 6 0 7 1;
#X connect 7 0 4 0;
! #X restore 46 425 pd range_0_1;
! #X obj 46 460 min 1;
! #X obj 46 651 + \$1;
! #X obj 117 507 \$1;
! #X obj 92 507 \$2;
! #X obj 92 532 -;
! #X obj 92 554 sel 0;
! #X obj 46 607 * 1;
! #X obj 92 483 t b b;
! #X obj 46 23 inlet in;
! #X obj 186 23 inlet learn;
! #X obj 324 21 inlet min;
! #X obj 491 18 inlet max;
! #X obj 566 45 inlet center;
! #X obj 208 358 f;
! #X obj 332 362 f;
! #X obj 80 237 t f f;
! #X obj 316 397 -;
! #X obj 208 404 +;
! #X obj 208 427 / 2;
! #X obj 208 464 f;
! #X obj 316 458 f;
! #X obj 316 422 * -1;
! #X obj 316 493 / 2;
! #X obj 208 599 +;
! #X obj 224 577 * -1;
! #X obj 300 601 +;
! #X obj 668 70 t b b f;
! #X obj 208 684 outlet min;
! #X obj 300 685 outlet max;
! #X obj 456 685 outlet center;
! #X obj 583 684 outlet amplitude;
! #X obj 669 46 inlet amplitude;
! #X msg 186 233 1e+09;
! #X obj 208 506 t f f;
! #X obj 491 42 t b f;
! #X connect 0 0 7 0;
#X connect 1 0 3 1;
! #X connect 2 0 4 1;
#X connect 3 0 1 0;
! #X connect 3 0 26 0;
! #X connect 4 0 2 0;
! #X connect 4 0 27 0;
! #X connect 5 0 0 0;
! #X connect 5 0 45 0;
#X connect 6 0 3 0;
#X connect 6 1 3 1;
! #X connect 7 0 4 0;
! #X connect 7 1 4 1;
! #X connect 8 0 28 0;
! #X connect 10 0 20 0;
! #X connect 11 0 19 0;
! #X connect 12 0 13 0;
! #X connect 13 0 11 0;
! #X connect 14 0 9 0;
! #X connect 15 0 17 1;
! #X connect 16 0 17 0;
! #X connect 17 0 18 0;
! #X connect 18 1 19 1;
! #X connect 19 0 14 0;
! #X connect 20 0 16 0;
! #X connect 20 1 15 0;
! #X connect 21 0 8 0;
! #X connect 21 0 12 0;
! #X connect 22 0 8 1;
! #X connect 22 0 5 0;
! #X connect 23 0 26 0;
! #X connect 24 0 47 0;
! #X connect 25 0 32 0;
! #X connect 26 0 29 0;
! #X connect 26 0 30 0;
! #X connect 27 0 29 1;
! #X connect 27 0 30 1;
! #X connect 28 0 3 0;
! #X connect 28 1 4 0;
! #X connect 29 0 34 0;
! #X connect 30 0 31 0;
! #X connect 31 0 32 0;
! #X connect 32 0 42 0;
! #X connect 32 0 46 0;
! #X connect 33 0 35 0;
! #X connect 33 0 43 0;
! #X connect 34 0 33 0;
! #X connect 35 0 38 1;
! #X connect 35 0 37 0;
! #X connect 36 0 40 0;
! #X connect 36 0 12 1;
! #X connect 37 0 36 1;
! #X connect 38 0 41 0;
! #X connect 38 0 12 2;
! #X connect 39 0 36 0;
! #X connect 39 1 38 0;
! #X connect 39 2 33 0;
! #X connect 44 0 39 0;
! #X connect 45 0 6 0;
! #X connect 46 0 36 0;
! #X connect 46 1 38 0;
! #X connect 47 0 26 0;
! #X connect 47 1 27 0;
--- 1,229 ----
! #N canvas 494 63 973 740 10;
! #X obj 224 311 f;
! #X obj 344 313 f;
! #X obj 187 311 min;
! #X obj 306 312 max;
! #X obj 187 188 select 1;
! #X obj 187 270 t f f;
! #X obj 306 273 t f f;
! #X obj 81 118 spigot;
! #X obj 47 546 max 0;
! #N canvas 218 182 467 408 range_0_1 0;
#X obj 16 45 inlet;
! #X obj 76 46 inlet;
! #X obj 171 43 inlet;
! #X obj 16 340 outlet;
! #X obj 76 163 t f b f;
! #X obj 16 254 -;
! #X obj 76 138 \$3;
! #X obj 98 249 -;
! #X obj 98 223 \$4;
! #X obj 16 290 /;
! #X obj 254 103 \$3;
! #X obj 254 126 || \$4;
! #X text 234 203 if \$0 = \$4 = 0 then \$4=127;
! #X obj 224 45 r \$0-loadbang;
! #X obj 254 150 sel 0;
! #X obj 224 73 t b b;
! #X msg 254 173 1;
! #X connect 0 0 5 0;
! #X connect 1 0 6 0;
! #X connect 2 0 8 0;
! #X connect 4 0 5 1;
! #X connect 4 1 8 0;
! #X connect 4 2 7 1;
! #X connect 5 0 9 0;
! #X connect 6 0 4 0;
! #X connect 7 0 9 1;
! #X connect 8 0 7 0;
! #X connect 9 0 3 0;
! #X connect 10 0 11 0;
! #X connect 11 0 14 0;
! #X connect 13 0 15 0;
! #X connect 14 0 16 0;
! #X connect 15 0 6 0;
! #X connect 15 1 10 0;
! #X connect 16 0 8 0;
! #X restore 47 436 pd range_0_1;
! #X obj 47 523 min 1;
! #X obj 47 679 + \$1;
! #X obj 167 546 \$1;
! #X obj 142 546 \$2;
! #X obj 142 571 -;
! #X obj 142 593 sel 0;
! #X obj 47 657 * 1;
! #X obj 142 522 t b b;
! #X obj 8 7 inlet in;
! #X obj 187 34 inlet learn;
! #X obj 361 34 inlet min;
! #X obj 457 32 inlet max;
! #X obj 567 56 inlet center;
! #X obj 81 248 t f f;
! #X obj 457 630 / 2;
! #X obj 565 627 * -1;
! #X obj 699 165 / 2;
! #X obj 567 249 +;
! #X obj 583 227 * -1;
! #X obj 683 250 +;
! #X obj 308 699 outlet min;
! #X obj 373 723 outlet max;
! #X obj 457 699 outlet center;
! #X obj 565 699 outlet amplitude;
! #X obj 669 56 inlet amplitude;
! #X msg 187 244 1e+09;
! #X obj 567 170 t f f;
! #X obj 457 601 +;
! #X obj 47 701 outlet data;
! #X obj 826 65 inlet NL;
! #X text 834 82 O is for linear;
! #X text 793 132 float is for the rest...;
! #X obj 826 188 \$5;
! #X obj 565 602 -;
! #X obj 457 579 t f f;
! #X obj 308 524 f;
! #X obj 373 521 f;
! #X obj 567 134 f;
! #X obj 669 81 t b f;
! #X obj 457 554 f;
! #X obj 457 447 t b f;
! #X text 835 97 1 is for square;
! #X text 828 112 -1 is for square root;
! #X msg 306 247 1e-09;
! #X obj 334 107 spigot 1;
! #X msg 400 135 0;
! #X obj 351 164 loadbang;
! #X obj 142 499 r \$0-loadbang;
! #X obj 840 164 r \$0-loadbang;
! #X obj 47 62 t f b;
! #X text 340 212 fake loadbang;
! #X obj 418 167 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
! -1;
! #X obj 334 190 s \$0-loadbang;
! #X obj 8 32 route clip;
! #N canvas 0 0 450 300 gate2 0;
! #X obj 30 20 inlet;
! #X obj 30 215 outlet;
! #X obj 193 22 inlet;
! #X obj 156 132 spigot;
! #X obj 156 218 outlet;
! #X obj 193 59 * -1;
! #X obj 193 87 + 1;
! #X obj 30 129 spigot 1;
#X connect 0 0 3 0;
! #X connect 0 0 7 0;
! #X connect 2 0 5 0;
! #X connect 2 0 7 1;
! #X connect 3 0 4 0;
! #X connect 5 0 6 0;
! #X connect 6 0 3 1;
! #X connect 7 0 1 0;
! #X restore 47 498 pd gate2;
! #X floatatom 70 464 5 0 0 0 - - -;
! #N canvas 0 0 631 664 pow 0;
! #X obj 106 238 pow 1;
! #X obj 62 49 inlet;
! #X obj 271 44 inlet;
! #X obj 106 405 outlet;
! #X obj 271 193 exp;
! #X msg 287 123 2;
! #X obj 287 148 log;
! #X obj 271 171 *;
! #X obj 287 99 r \$0-loadbang;
! #X obj 62 178 moses 0;
! #X obj 62 283 * -1;
! #X obj 62 325 pow 1;
! #X obj 62 352 * -1;
! #X connect 0 0 3 0;
! #X connect 1 0 9 0;
! #X connect 2 0 7 0;
! #X connect 4 0 0 1;
! #X connect 4 0 11 1;
! #X connect 5 0 6 0;
#X connect 6 0 7 1;
#X connect 7 0 4 0;
! #X connect 8 0 5 0;
! #X connect 9 0 10 0;
! #X connect 9 1 0 0;
! #X connect 10 0 11 0;
! #X connect 11 0 12 0;
! #X connect 12 0 3 0;
! #X restore 47 627 pd pow;
! #X connect 0 0 2 1;
#X connect 1 0 3 1;
! #X connect 2 0 0 0;
! #X connect 2 0 45 0;
#X connect 3 0 1 0;
! #X connect 3 0 46 0;
! #X connect 4 0 53 0;
! #X connect 4 0 35 0;
! #X connect 5 0 2 0;
! #X connect 5 1 2 1;
#X connect 6 0 3 0;
#X connect 6 1 3 1;
! #X connect 7 0 23 0;
! #X connect 8 0 66 0;
! #X connect 9 0 64 0;
! #X connect 9 0 65 0;
! #X connect 10 0 8 0;
! #X connect 11 0 38 0;
! #X connect 12 0 14 1;
! #X connect 13 0 14 0;
! #X connect 14 0 15 0;
! #X connect 15 1 16 1;
! #X connect 16 0 11 0;
! #X connect 17 0 13 0;
! #X connect 17 1 12 0;
! #X connect 18 0 63 0;
! #X connect 19 0 7 1;
! #X connect 19 0 4 0;
! #X connect 20 0 45 0;
! #X connect 21 0 50 0;
! #X connect 22 0 47 0;
! #X connect 23 0 2 0;
! #X connect 23 1 3 0;
! #X connect 24 0 32 0;
! #X connect 25 0 33 0;
! #X connect 26 0 29 1;
! #X connect 26 0 28 0;
! #X connect 27 0 45 0;
! #X connect 28 0 27 1;
! #X connect 29 0 46 0;
! #X connect 34 0 48 0;
! #X connect 35 0 5 0;
! #X connect 36 0 27 0;
! #X connect 36 1 29 0;
! #X connect 37 0 24 0;
! #X connect 39 0 42 0;
! #X connect 42 0 66 1;
! #X connect 43 0 25 0;
! #X connect 44 0 37 0;
! #X connect 44 1 43 0;
! #X connect 45 0 30 0;
! #X connect 45 0 49 0;
! #X connect 45 0 9 1;
! #X connect 46 0 31 0;
! #X connect 46 0 43 1;
! #X connect 46 0 37 1;
! #X connect 46 0 9 2;
! #X connect 47 0 36 0;
! #X connect 48 0 47 0;
! #X connect 48 1 26 0;
! #X connect 49 0 44 0;
! #X connect 50 0 49 0;
! #X connect 50 1 46 0;
! #X connect 53 0 6 0;
! #X connect 54 0 55 0;
! #X connect 54 0 62 0;
! #X connect 55 0 54 1;
! #X connect 56 0 62 0;
! #X connect 57 0 17 0;
! #X connect 58 0 42 0;
! #X connect 59 0 7 0;
! #X connect 59 0 9 0;
! #X connect 59 1 54 0;
! #X connect 61 0 62 0;
! #X connect 63 0 64 1;
! #X connect 63 1 59 0;
! #X connect 64 0 10 0;
! #X connect 64 1 66 0;
! #X connect 66 0 16 0;
------------------------------
Message: 3
Date: Fri, 22 Apr 2005 13:24:29 +0000
From: cyrille <nusmuk at users.sourceforge.net>
Subject: [PD-cvs] abstractions/nusmuk - New directory
To: pd-cvs at iem.at
Message-ID: <E1DOy8z-0008Px-SC at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/abstractions/nusmuk
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32295/nusmuk
Log Message:
Directory /cvsroot/pure-data/abstractions/nusmuk added to the repository
------------------------------
Message: 4
Date: Fri, 22 Apr 2005 13:25:22 +0000
From: cyrille <nusmuk at users.sourceforge.net>
Subject: [PD-cvs] abstractions/nusmuk/gran - New directory
To: pd-cvs at iem.at
Message-ID: <E1DOy9q-0000DS-Bu at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/abstractions/nusmuk/gran
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv765/gran
Log Message:
Directory /cvsroot/pure-data/abstractions/nusmuk/gran added to the
repository
------------------------------
Message: 5
Date: Fri, 22 Apr 2005 13:26:42 +0000
From: cyrille <nusmuk at users.sourceforge.net>
Subject: [PD-cvs] abstractions/nusmuk/gran granulator.pd, NONE, 1.1
hanning.wav, NONE, 1.1 help-granulator.pd, NONE, 1.1
To: pd-cvs at iem.at
Message-ID: <E1DOyB8-0000R7-SJ at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/abstractions/nusmuk/gran
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1504
Added Files:
granulator.pd hanning.wav help-granulator.pd
Log Message:
an other granulator synthesys abstraction...
--- NEW FILE: granulator.pd ---
#N canvas 51 92 1066 445 10;
#X obj 223 392 outlet;
#X obj 44 388 outlet~;
#X obj 220 14 inlet;
#X obj 513 25 inlet;
#X msg 514 351 \; \$1 \$2 \;;
#X obj 513 239 t b f;
#X obj 514 284 f;
#X obj 514 328 pack s f;
#N canvas 0 0 1139 604 choix_table 0;
#X obj 26 18 inlet;
#X obj 26 526 outlet;
#X obj 26 196 t f f;
#X obj 123 527 outlet;
#X obj 134 286 r \$0-table0;
#X msg 134 312 set \$1;
#X obj 123 258 sel 0 1 2 3 4 5 6 7;
#X msg 123 338 1024;
#X msg 226 313 set \$1;
[...6960 lines suppressed...]
#X connect 18 5 19 6;
#X connect 18 6 19 7;
#X connect 18 7 19 8;
#X connect 18 8 19 9;
#X connect 19 0 14 0;
#X connect 21 0 7 0;
#X connect 22 0 11 0;
#X connect 22 1 24 0;
#X connect 23 0 37 0;
#X connect 23 1 6 1;
#X connect 23 1 38 0;
#X connect 24 0 35 0;
#X connect 34 0 23 0;
#X connect 34 1 22 0;
#X connect 34 2 8 1;
#X connect 34 3 18 0;
#X connect 35 0 25 0;
#X connect 36 0 0 0;
#X connect 37 0 36 0;
#X connect 38 0 37 1;
--- NEW FILE: hanning.wav ---
(This appears to be a binary file; contents omitted.)
--- NEW FILE: help-granulator.pd ---
#N canvas 145 74 1000 707 10;
#X obj 115 575 soundfiler;
#X msg 34 171 open \$1 \$2;
#X obj 85 91 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
-1 0;
#X obj 34 67 openpanel;
#X obj 34 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 34 147 pack s f;
#X obj 530 48 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X floatatom 581 50 5 0 0 0 - - -;
#X obj 530 118 f;
#X floatatom 596 176 5 0 0 0 - - -;
#X floatatom 607 195 5 0 0 0 - - -;
#X floatatom 654 216 5 0 0 0 - - -;
#X floatatom 668 236 5 0 0 0 - - -;
#X floatatom 717 255 5 0 0 0 - - -;
#X floatatom 728 272 5 0 0 0 - - -;
#X obj 33 576 *~ 0.1;
#X obj 34 614 dac~;
#X obj 596 150 line;
#X obj 546 96 hradio 15 1 0 8 empty empty empty 0 -6 0 8 -262144 -1
-1 0;
#X obj 530 363 pack f 0 0 50 0 69 0 1 0;
#X floatatom 749 312 5 0 0 0 - - -;
#X floatatom 760 329 5 0 0 0 - - -;
#X text 286 24 ch 2005_04_10;
#X msg 105 352 window cos;
#X msg 105 374 window hanning.wav;
#X msg 65 199 table foo 44100;
#X text 74 216 use a specific table for the audio source;
#X msg 84 257 table reset;
#X obj 530 71 metro 25;
#X msg 596 127 0 \, 1 1000;
#N canvas 148 50 1061 709 help 0;
#X obj 216 107 table realtime 441000;
#X obj 49 161 tabwrite~ realtime;
#X obj 49 131 adc~;
#X obj 29 102 metro 10000;
#X obj 29 51 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X text 54 51 loop recording on a table;
#X obj 29 75 t f f;
#X msg 29 190 0 \, 1 10000;
#X text 122 193 position of the recording in the table;
#X obj 29 386 f;
#X text 195 161 record something in a table;
#X msg 43 500 table realtime 441000;
#X obj 43 478 loadbang;
#X obj 29 423 t b f;
#X obj 29 449 pack 0 0 0.1 300 0 69 0 1 0;
#X obj 29 271 line 0 150;
#X text 42 293 change the line time grain to adjust to played grain
size;
#X text 60 388 center of the reding position (0.1 * 10s after writing
in the table);
#X obj 569 383 f;
#X msg 583 497 table realtime 441000;
#X obj 583 475 loadbang;
#X obj 569 420 t b f;
#X obj 569 247 spigot 0;
#X obj 620 209 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X text 398 208 add an other granulator latter;
#X obj 569 446 pack 0 0 0.5 60 0 69 5 1 0;
#X obj 569 272 line 0 30;
#X obj 29 315 - 0.1;
#X obj 29 339 moses 0;
#X obj 29 361 + 1;
#X text 88 315 10% before the position of the writing index;
#X text 93 342 to keep the number from 0 to 1;
#X obj 569 520 granulator;
#X obj 29 523 granulator;
#X obj 569 312 - 0.5;
#X obj 569 337 moses 0;
#X obj 569 360 + 1;
#X text 631 360 float modulo;
#X connect 2 0 1 0;
#X connect 2 1 1 0;
#X connect 3 0 1 0;
#X connect 3 0 7 0;
#X connect 4 0 6 0;
#X connect 6 0 3 0;
#X connect 7 0 15 0;
#X connect 7 0 22 0;
#X connect 9 0 13 0;
#X connect 11 0 33 0;
#X connect 12 0 11 0;
#X connect 13 0 14 0;
#X connect 13 1 14 1;
#X connect 14 0 33 0;
#X connect 15 0 27 0;
#X connect 18 0 21 0;
#X connect 19 0 32 0;
#X connect 20 0 19 0;
#X connect 21 0 25 0;
#X connect 21 1 25 1;
#X connect 22 0 26 0;
#X connect 23 0 22 1;
#X connect 25 0 32 0;
#X connect 26 0 34 0;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X connect 28 1 9 0;
#X connect 29 0 9 0;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X connect 35 1 18 0;
#X connect 36 0 18 0;
#X restore 34 664 pd help RealTime Granulator;
#X obj 34 552 granulator;
#X text 260 7 granular synthesys with pd;
#X text 65 46 open a sound file;
#X text 8 111 table number (8 diferents files can be open in the same
time);
#X text 689 95 table to read;
#X text 722 236 Random;
#X text 776 272 Random;
#X text 810 330 Random;
#X text 645 175 grain position in the sound file (0 - 1);
#X text 655 196 Random on this position;
#X text 704 215 grain size (ms);
#X text 766 254 pich (midi);
#X text 798 311 amplitude (0 - 1);
#X text 539 383 Table number \, position \, Random \, size \, random
\, frequency \, random \, ampitude \, random;
#X text 224 353 default windowing for the grain;
#X text 240 373 load a soundfile for the windowing;
#X text 196 572 always connect a soundfiler here : it help locating
the sound relatively to the patch folder \, and not to the abstraction
folder;
#X text 95 279 to get back to the internal tables;
#X text 74 232 (user has to fill it manually : used for live granulation)
;
#X connect 0 0 31 1;
#X connect 1 0 31 0;
#X connect 2 0 5 1;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
#X connect 6 0 28 0;
#X connect 7 0 28 1;
#X connect 8 0 19 0;
#X connect 9 0 19 1;
#X connect 10 0 19 2;
#X connect 11 0 19 3;
#X connect 12 0 19 4;
#X connect 13 0 19 5;
#X connect 14 0 19 6;
#X connect 15 0 16 0;
#X connect 15 0 16 1;
#X connect 17 0 9 0;
#X connect 18 0 8 1;
#X connect 19 0 31 0;
#X connect 20 0 19 7;
#X connect 21 0 19 8;
#X connect 23 0 31 0;
#X connect 24 0 31 0;
#X connect 25 0 31 0;
#X connect 27 0 31 0;
#X connect 28 0 8 0;
#X connect 29 0 17 0;
#X connect 31 0 15 0;
#X connect 31 1 0 0;
------------------------------
Message: 6
Date: Sat, 23 Apr 2005 08:58:07 +0000
From: Thomas Grill <xovo at users.sourceforge.net>
Subject: [PD-cvs] externals/grill/flext/buildsys version.inc,1.2,1.3
To: pd-cvs at iem.at
Message-ID: <E1DPGSl-0004AR-R8 at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/externals/grill/flext/buildsys
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15990/buildsys
Added Files:
version.inc
Log Message:
added profiling flags for OSX
small fixes
more correct library versioning
--- NEW FILE: version.inc ---
FLEXTMAJOR=0
FLEXTMINOR=5
FLEXTMICRO=0
------------------------------
Message: 7
Date: Sat, 23 Apr 2005 08:58:07 +0000
From: Thomas Grill <xovo at users.sourceforge.net>
Subject: [PD-cvs] externals/grill/flext/source flmap.cpp,1.2,1.3
To: pd-cvs at iem.at
Message-ID: <E1DPGSm-0004AZ-0Q at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/externals/grill/flext/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15990/source
Added Files:
flmap.cpp
Log Message:
added profiling flags for OSX
small fixes
more correct library versioning
--- NEW FILE: flmap.cpp ---
/*
flext - C++ layer for Max/MSP and pd (pure data) externals
Copyright (c) 2001-2005 Thomas Grill (gr at grrrr.org)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
*/
/*! \file flmap.cpp
\brief flext container classes.
*/
#include "flext.h"
#include "flmap.h"
TableAnyMap::~TableAnyMap() { clear(); }
void TableAnyMap::clear()
{
if(left) { _delmap(left); left = NULL; }
if(right) { _delmap(right); right = NULL; }
n = 0;
}
void *TableAnyMap::_set(int tsize,size_t k,void *t)
{
FLEXT_ASSERT(n);
if(n < tsize) {
// fall through
}
else if(k < data[0].key)
return _toleft(tsize,k,t);
else if(k > data[tsize-1].key)
return _toright(tsize,k,t);
int ix = _tryix(k);
if(ix >= n) {
FLEXT_ASSERT(ix == n);
// after last entry
data[n++](k,t);
return NULL;
}
size_t dk = data[ix].key;
if(k == dk) {
// update data in existing slot (same key)
void *a = data[ix].value;
data[ix] = t;
return a;
}
else {
// insert new slot by shifting the higher ones
FLEXT_ASSERT(k < dk);
void *a;
if(n == tsize)
a = _toright(tsize,data[tsize-1]);
else {
++n;
a = NULL;
}
Data *tg = data+ix;
for(Data *d = data+n-1; d > tg; d--) d[0] = d[-1];
(*tg)(k,t);
return a;
}
}
void *TableAnyMap::_find(int tsize,size_t k) const
{
FLEXT_ASSERT(n);
if(n < tsize) {
// fall through
}
else if(k < data[0].key)
return left?left->_find(tsize,k):NULL;
else if(k > data[n-1].key)
return right?right->_find(tsize,k):NULL;
const int ix = _tryix(k);
return ix < n && data[ix].key == k?data[ix].value:NULL;
}
#ifdef FLEXT_DEBUG
void TableAnyMap::_check(int tsize)
{
FLEXT_ASSERT(n);
size_t k = data[0].key;
for(int i = 1; i < n; ++i) {
size_t k2 = data[i].key;
FLEXT_ASSERT(k < k2);
k = k2;
}
if(left || right) FLEXT_ASSERT(n == tsize);
if(left) {
FLEXT_ASSERT(flext::MemCheck(left));
left->_check(tsize);
}
if(right) {
FLEXT_ASSERT(flext::MemCheck(right));
right->_check(tsize);
}
}
#endif
void *TableAnyMap::_remove(int tsize,size_t k)
{
FLEXT_ASSERT(n);
if(n < tsize) {
// fall through
}
else if(k < data[0].key) {
void *r = left?left->_remove(tsize,k):NULL;
if(r) _eraseempty(left);
return r;
}
else if(k > data[n-1].key) {
void *r = right?right->_remove(tsize,k):NULL;
if(r) _eraseempty(right);
return r;
}
const int ix = _tryix(k);
if(ix >= n || data[ix].key != k)
return NULL;
else {
// found key in this map
void *ret = data[ix].value;
Data dt;
bool fnd,ins = false;
if(n >= tsize) {
// if this table is full get fill-in elements from branches
if(left) {
// try to get biggest element from left branch
left->_getbig(dt);
_eraseempty(left);
fnd = true,ins = true;
}
else if(right) {
// try to get smallest element from right branch
right->_getsmall(dt);
_eraseempty(right);
fnd = true;
}
else
fnd = false;
}
else fnd = false;
if(ins) {
// insert smaller element from left
for(int i = ix; i; --i) data[i] = data[i-1];
data[0] = dt;
}
else {
// shift elements
for(int i = ix+1; i < n; ++i) data[i-1] = data[i];
// insert bigger element from right or reduce table size
if(fnd)
data[n-1] = dt;
else
--n;
}
return ret;
}
}
void TableAnyMap::_getbig(Data &dt)
{
FLEXT_ASSERT(n);
if(right) {
right->_getbig(dt);
_eraseempty(right);
}
else {
dt = data[n-1];
if(left) {
for(int i = n-1; i; --i) data[i] = data[i-1];
left->_getbig(data[0]);
_eraseempty(left);
}
else
--n;
}
}
void TableAnyMap::_getsmall(Data &dt)
{
FLEXT_ASSERT(n);
if(left) {
left->_getsmall(dt);
_eraseempty(left);
}
else {
dt = data[0];
for(int i = 1; i < n; ++i) data[i-1] = data[i];
if(right) {
right->_getsmall(data[n-1]);
_eraseempty(right);
}
else
--n;
}
}
void TableAnyMap::iterator::forward()
{
if(map || ix >= map->n) {
if(++ix >= map->n) {
TableAnyMap *nmap;
// we reached the end of the slots
if(map->right) {
// climb up one
map = map->right;
leftmost();
ix = 0;
}
else {
// fall back
for(;;) {
nmap = map->parent;
if(!nmap) break; // no parent
if(nmap->left == map) {
// ok, we are in front of the slots now
ix = 0;
map = nmap;
break;
}
else {
FLEXT_ASSERT(nmap->right == map);
ix = (map = nmap)->n;
}
}
}
}
}
}
------------------------------
Message: 8
Date: Sat, 23 Apr 2005 09:06:27 +0000
From: Thomas Grill <xovo at users.sourceforge.net>
Subject: [PD-cvs] externals/grill/flext/source flsupport.cpp,1.50,1.51
To: pd-cvs at iem.at
Message-ID: <E1DPGap-0005Cu-Bn at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/externals/grill/flext/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20005/source
Modified Files:
flsupport.cpp
Log Message:
Index: flsupport.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.cpp,v
retrieving revision 1.50
retrieving revision 1.51
diff -C2 -d -r1.50 -r1.51
*** flsupport.cpp 18 Apr 2005 22:05:53 -0000 1.50
--- flsupport.cpp 23 Apr 2005 09:06:25 -0000 1.51
***************
*** 560,561 ****
--- 560,562 ----
}
}
+
------------------------------
Message: 9
Date: Sat, 23 Apr 2005 09:14:22 +0000
From: Thomas Grill <xovo at users.sourceforge.net>
Subject: [PD-cvs] externals/grill/flext/source flsupport.cpp,1.51,1.52
To: pd-cvs at iem.at
Message-ID: <E1DPGiU-0006Ah-FS at sc8-pr-cvs1.sourceforge.net>
Update of /cvsroot/pure-data/externals/grill/flext/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23666/source
Modified Files:
flsupport.cpp
Log Message:
Index: flsupport.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flsupport.cpp,v
retrieving revision 1.51
retrieving revision 1.52
diff -C2 -d -r1.51 -r1.52
*** flsupport.cpp 23 Apr 2005 09:06:25 -0000 1.51
--- flsupport.cpp 23 Apr 2005 09:14:20 -0000 1.52
***************
*** 327,562 ****
}
-
- TableAnyMap::~TableAnyMap() { clear(); }
-
- void TableAnyMap::clear()
- {
- if(left) { _delmap(left); left = NULL; }
- if(right) { _delmap(right); right = NULL; }
- n = 0;
- }
-
-
- void *TableAnyMap::_set(int tsize,size_t k,void *t)
- {
- FLEXT_ASSERT(n);
-
- if(n < tsize) {
- // fall through
- }
- else if(k < data[0].key)
- return _toleft(tsize,k,t);
- else if(k > data[tsize-1].key)
- return _toright(tsize,k,t);
-
- int ix = _tryix(k);
- if(ix >= n) {
- FLEXT_ASSERT(ix == n);
- // after last entry
- data[n++](k,t);
- return NULL;
- }
-
- size_t dk = data[ix].key;
- if(k == dk) {
- // update data in existing slot (same key)
- void *a = data[ix].value;
- data[ix] = t;
- return a;
- }
- else {
- // insert new slot by shifting the higher ones
- FLEXT_ASSERT(k < dk);
- void *a;
- if(n == tsize)
- a = _toright(tsize,data[tsize-1]);
- else {
- ++n;
- a = NULL;
- }
-
- Data *tg = data+ix;
- for(Data *d = data+n-1; d > tg; d--) d[0] = d[-1];
- (*tg)(k,t);
- return a;
- }
- }
-
- void *TableAnyMap::_find(int tsize,size_t k) const
- {
- FLEXT_ASSERT(n);
- if(n < tsize) {
- // fall through
- }
- else if(k < data[0].key)
- return left?left->_find(tsize,k):NULL;
- else if(k > data[n-1].key)
- return right?right->_find(tsize,k):NULL;
-
- const int ix = _tryix(k);
- return ix < n && data[ix].key == k?data[ix].value:NULL;
- }
-
- #ifdef FLEXT_DEBUG
- void TableAnyMap::_check(int tsize)
- {
- FLEXT_ASSERT(n);
-
- size_t k = data[0].key;
- for(int i = 1; i < n; ++i) {
- size_t k2 = data[i].key;
- FLEXT_ASSERT(k < k2);
- k = k2;
- }
-
- if(left || right) FLEXT_ASSERT(n == tsize);
-
- if(left) {
- FLEXT_ASSERT(flext::MemCheck(left));
- left->_check(tsize);
- }
- if(right) {
- FLEXT_ASSERT(flext::MemCheck(right));
- right->_check(tsize);
- }
- }
- #endif
-
- void *TableAnyMap::_remove(int tsize,size_t k)
- {
- FLEXT_ASSERT(n);
- if(n < tsize) {
- // fall through
- }
- else if(k < data[0].key) {
- void *r = left?left->_remove(tsize,k):NULL;
- if(r) _eraseempty(left);
- return r;
- }
- else if(k > data[n-1].key) {
- void *r = right?right->_remove(tsize,k):NULL;
- if(r) _eraseempty(right);
- return r;
- }
-
- const int ix = _tryix(k);
- if(ix >= n || data[ix].key != k)
- return NULL;
- else {
- // found key in this map
- void *ret = data[ix].value;
-
- Data dt;
- bool fnd,ins = false;
- if(n >= tsize) {
- // if this table is full get fill-in elements from branches
- if(left) {
- // try to get biggest element from left branch
- left->_getbig(dt);
- _eraseempty(left);
- fnd = true,ins = true;
- }
- else if(right) {
- // try to get smallest element from right branch
- right->_getsmall(dt);
- _eraseempty(right);
- fnd = true;
- }
- else
- fnd = false;
- }
- else fnd = false;
-
- if(ins) {
- // insert smaller element from left
- for(int i = ix; i; --i) data[i] = data[i-1];
- data[0] = dt;
- }
- else {
- // shift elements
- for(int i = ix+1; i < n; ++i) data[i-1] = data[i];
- // insert bigger element from right or reduce table size
- if(fnd)
- data[n-1] = dt;
- else
- --n;
- }
-
- return ret;
- }
- }
-
- void TableAnyMap::_getbig(Data &dt)
- {
- FLEXT_ASSERT(n);
-
- if(right) {
- right->_getbig(dt);
- _eraseempty(right);
- }
- else {
- dt = data[n-1];
- if(left) {
- for(int i = n-1; i; --i) data[i] = data[i-1];
- left->_getbig(data[0]);
- _eraseempty(left);
- }
- else
- --n;
- }
- }
-
- void TableAnyMap::_getsmall(Data &dt)
- {
- FLEXT_ASSERT(n);
-
- if(left) {
- left->_getsmall(dt);
- _eraseempty(left);
- }
- else {
- dt = data[0];
- for(int i = 1; i < n; ++i) data[i-1] = data[i];
- if(right) {
- right->_getsmall(data[n-1]);
- _eraseempty(right);
- }
- else
- --n;
- }
- }
-
- void TableAnyMap::iterator::forward()
- {
- if(map || ix >= map->n) {
- if(++ix >= map->n) {
- TableAnyMap *nmap;
-
- // we reached the end of the slots
- if(map->right) {
- // climb up one
- map = map->right;
- leftmost();
- ix = 0;
- }
- else {
- // fall back
- for(;;) {
- nmap = map->parent;
- if(!nmap) break; // no parent
- if(nmap->left == map) {
- // ok, we are in front of the slots now
- ix = 0;
- map = nmap;
- break;
- }
- else {
- FLEXT_ASSERT(nmap->right == map);
- ix = (map = nmap)->n;
- }
- }
- }
- }
- }
- }
-
--- 327,328 ----
------------------------------
_______________________________________________
PD-cvs mailing list
PD-cvs at iem.at
http://lists.puredata.info/listinfo/pd-cvs
End of PD-cvs Digest, Vol 2, Issue 5
************************************
More information about the Pd-dev
mailing list