├── alternate.pd ├── README.md ├── debounce.pd ├── mtof_tune.pd ├── round_int.pd ├── round_int-help.pd ├── symbol_change-help.pd ├── extended_abs ├── symbol_change_extended-help.pd ├── extendedJoin-help.pd ├── extendedPak-help.pd ├── symbol_change_extended.pd ├── extendedPak.pd └── extendedJoin.pd ├── invert~.pd ├── clip_abs.pd ├── mtof_tune-help.pd ├── vanillaUrn-help.pd ├── skip.pd ├── vanillaPak-help.pd ├── vanillaS2f-help.pd ├── vanillaJoin-help.pd ├── skip-help.pd ├── symbol_change.pd ├── speed_limit.pd ├── clip_abs-help.pd ├── map.pd ├── map-help.pd ├── map~.pd ├── no_click_val-help.pd ├── bin2any-help.pd ├── int2bin-help.pd ├── vanillaUrn.pd ├── invert~-help.pd ├── int2bin.pd ├── vanillaPak.pd ├── loop-help.pd ├── vanillaJoin.pd ├── loop.pd ├── bin2any.pd ├── LICENSE ├── no_click_val.pd └── vanillaS2f.pd /alternate.pd: -------------------------------------------------------------------------------- 1 | #N canvas 286 277 325 243 10; 2 | #X obj 128 69 inlet; 3 | #X obj 128 91 \$1; 4 | #X obj 128 113 t f f; 5 | #X obj 155 135 == 0; 6 | #X obj 128 162 outlet; 7 | #X obj 199 50 inlet reset; 8 | #X obj 199 73 \$1; 9 | #X connect 0 0 1 0; 10 | #X connect 1 0 2 0; 11 | #X connect 2 0 4 0; 12 | #X connect 2 1 3 0; 13 | #X connect 3 0 1 1; 14 | #X connect 5 0 6 0; 15 | #X connect 6 0 1 1; 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # miscellaneous_abstractions 2 | 3 | This repository contains various Pd abstractions I personally use, which might be helpful to others. It might grow. Most of them are vanilla, but some extended versions are included, whenever it's not possible to use a common abstraction both for vanilla and extended. All abstractions support both Pd versions this way. 4 | 5 | Written by Alexandros Drymonitis 6 | -------------------------------------------------------------------------------- /debounce.pd: -------------------------------------------------------------------------------- 1 | #N canvas 273 226 450 300 10; 2 | #X obj 58 21 inlet; 3 | #X obj 58 44 spigot 1; 4 | #X msg 135 26 0; 5 | #X obj 77 106 del \$1; 6 | #X msg 77 129 1; 7 | #X obj 58 158 outlet; 8 | #X obj 58 67 t a b b; 9 | #X obj 228 50 inlet; 10 | #X connect 0 0 1 0; 11 | #X connect 1 0 6 0; 12 | #X connect 2 0 1 1; 13 | #X connect 3 0 4 0; 14 | #X connect 4 0 1 1; 15 | #X connect 6 0 5 0; 16 | #X connect 6 1 3 0; 17 | #X connect 6 2 2 0; 18 | #X connect 7 0 3 1; 19 | -------------------------------------------------------------------------------- /mtof_tune.pd: -------------------------------------------------------------------------------- 1 | #N canvas 375 157 424 312 10; 2 | #X obj 60 100 - 69; 3 | #X obj 60 124 / 12; 4 | #X obj 60 175 pow; 5 | #X obj 60 199 * 440; 6 | #X obj 60 77 inlet; 7 | #X obj 128 90 loadbang; 8 | #X obj 128 112 \$1; 9 | #X obj 128 134 sel 0; 10 | #X obj 60 221 outlet; 11 | #X obj 206 182 inlet; 12 | #X obj 60 148 swap 2; 13 | #X connect 0 0 1 0; 14 | #X connect 1 0 10 0; 15 | #X connect 2 0 3 0; 16 | #X connect 3 0 8 0; 17 | #X connect 4 0 0 0; 18 | #X connect 5 0 6 0; 19 | #X connect 6 0 7 0; 20 | #X connect 7 1 3 1; 21 | #X connect 9 0 3 1; 22 | #X connect 10 0 2 0; 23 | #X connect 10 1 2 1; 24 | -------------------------------------------------------------------------------- /round_int.pd: -------------------------------------------------------------------------------- 1 | #N canvas 535 120 449 358 10; 2 | #X obj 48 56 inlet; 3 | #X obj 75 100 i; 4 | #X obj 48 78 t f f; 5 | #X obj 75 122 t f f; 6 | #X obj 48 146 -; 7 | #X obj 48 168 > 0.5; 8 | #X obj 48 192 +; 9 | #X obj 48 237 outlet; 10 | #X text 43 24 Round a float to the nearest integer; 11 | #X text 48 276 Written by Alexandros Drymonitis; 12 | #X obj 48 214 change; 13 | #X connect 0 0 2 0; 14 | #X connect 1 0 3 0; 15 | #X connect 2 0 4 0; 16 | #X connect 2 1 1 0; 17 | #X connect 3 0 4 1; 18 | #X connect 3 1 6 1; 19 | #X connect 4 0 5 0; 20 | #X connect 5 0 6 0; 21 | #X connect 6 0 10 0; 22 | #X connect 10 0 7 0; 23 | -------------------------------------------------------------------------------- /round_int-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 169 226 851 233 10; 2 | #X floatatom 32 99 5 0 0 0 - - -, f 5; 3 | #X obj 32 118 round_int; 4 | #X floatatom 32 140 5 0 0 0 - - -, f 5; 5 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 6 | 0; 7 | #X text 29 24 [round_int]: vanilla abstraction for rounding floats 8 | to the nearest integer; 9 | #X text 454 17 Arguments: none; 10 | #X text 453 34 Inlet: float to be rounded; 11 | #X text 467 185 Written by Alexandros Drymonitis; 12 | #X text 454 52 Outlet: rounded float to the nearest integer. outputs 13 | value only when changed; 14 | #X connect 0 0 1 0; 15 | #X connect 1 0 2 0; 16 | -------------------------------------------------------------------------------- /symbol_change-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 388 156 860 216 10; 2 | #X symbolatom 33 78 0 0 0 0 - - -; 3 | #X obj 33 122 print; 4 | #X obj 33 100 symbol_change test_symbol; 5 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 6 | 0; 7 | #X text 32 21 [symbol_change]: output a symbol only if it has changed. 8 | works like [change] \, but with symbols; 9 | #X text 439 19 Arguments: initial symbol to test against; 10 | #X text 449 42 Inlet: symbol to test; 11 | #X text 453 63 Outlet: symbol if different than previous one (or different 12 | than the argument); 13 | #X text 588 160 Written by Alexandros Drymonitis; 14 | #X connect 0 0 2 0; 15 | #X connect 2 0 1 0; 16 | -------------------------------------------------------------------------------- /extended_abs/symbol_change_extended-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 388 156 860 216 10; 2 | #X symbolatom 33 78 0 0 0 0 - - -; 3 | #X obj 33 122 print; 4 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 5 | 0; 6 | #X text 439 19 Arguments: initial symbol to test against; 7 | #X text 449 42 Inlet: symbol to test; 8 | #X text 453 63 Outlet: symbol if different than previous one (or different 9 | than the argument); 10 | #X text 588 160 Written by Alexandros Drymonitis; 11 | #X obj 33 100 symbol_change_extended test_symbol; 12 | #X text 32 21 [symbol_change_extended]: output a symbol only if it 13 | has changed. works like [change] \, but with symbols; 14 | #X connect 0 0 7 0; 15 | #X connect 7 0 1 0; 16 | -------------------------------------------------------------------------------- /invert~.pd: -------------------------------------------------------------------------------- 1 | #N canvas 476 251 386 296 10; 2 | #X obj 98 175 inlet~; 3 | #X obj 98 219 +~; 4 | #X obj 98 241 outlet~; 5 | #X obj 95 37 loadbang; 6 | #X obj 243 108 sel 0; 7 | #X msg 243 130 1; 8 | #X obj 160 158 * -2; 9 | #X obj 160 180 + 1; 10 | #X obj 160 135 t f f; 11 | #X obj 225 152 *; 12 | #X obj 160 37 inlet; 13 | #X obj 98 197 *~; 14 | #X obj 95 59 t b b; 15 | #X obj 160 113 \$1; 16 | #X obj 243 76 \$2; 17 | #X connect 0 0 11 0; 18 | #X connect 1 0 2 0; 19 | #X connect 3 0 12 0; 20 | #X connect 4 0 5 0; 21 | #X connect 4 1 9 1; 22 | #X connect 5 0 9 1; 23 | #X connect 6 0 7 0; 24 | #X connect 7 0 11 1; 25 | #X connect 8 0 6 0; 26 | #X connect 8 1 9 0; 27 | #X connect 9 0 1 1; 28 | #X connect 10 0 13 0; 29 | #X connect 11 0 1 0; 30 | #X connect 12 0 13 0; 31 | #X connect 12 1 14 0; 32 | #X connect 13 0 8 0; 33 | #X connect 14 0 4 0; 34 | -------------------------------------------------------------------------------- /clip_abs.pd: -------------------------------------------------------------------------------- 1 | #N canvas 360 233 400 334 10; 2 | #X obj 38 201 inlet; 3 | #X obj 38 223 min; 4 | #X obj 38 245 max; 5 | #X obj 38 267 outlet; 6 | #X obj 154 206 max; 7 | #X obj 211 228 min; 8 | #X obj 154 82 t f f; 9 | #X obj 277 90 t b f; 10 | #X obj 184 164 t b b; 11 | #X obj 304 189 t f f; 12 | #X obj 212 14 inlet; 13 | #X obj 277 14 inlet; 14 | #X obj 154 60 \$1; 15 | #X obj 277 53 \$2; 16 | #X obj 154 14 loadbang; 17 | #X obj 154 36 t b b; 18 | #X connect 0 0 1 0; 19 | #X connect 1 0 2 0; 20 | #X connect 2 0 3 0; 21 | #X connect 4 0 1 1; 22 | #X connect 5 0 2 1; 23 | #X connect 6 0 4 0; 24 | #X connect 6 1 5 0; 25 | #X connect 7 0 8 0; 26 | #X connect 7 1 9 0; 27 | #X connect 8 0 4 0; 28 | #X connect 8 1 5 0; 29 | #X connect 9 0 4 1; 30 | #X connect 9 1 5 1; 31 | #X connect 10 0 12 0; 32 | #X connect 11 0 13 0; 33 | #X connect 12 0 6 0; 34 | #X connect 13 0 7 0; 35 | #X connect 14 0 15 0; 36 | #X connect 15 0 12 0; 37 | #X connect 15 1 13 0; 38 | -------------------------------------------------------------------------------- /mtof_tune-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 205 139 784 399 10; 2 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 3 | 0; 4 | #X text 27 24 [mtof_tune]: a tunable MIDI to frequency converter; 5 | #X msg 32 114 69; 6 | #X obj 32 139 mtof_tune 442; 7 | #X floatatom 32 161 5 0 0 0 - - -, f 5; 8 | #X msg 32 194 69; 9 | #X floatatom 32 241 5 0 0 0 - - -, f 5; 10 | #X msg 32 274 69; 11 | #X floatatom 32 321 5 0 0 0 - - -, f 5; 12 | #X text 26 61 [mtof_tune] converts MIDI notes to frequencies \, according 13 | to the frequency set for the tuning A. Default pitch is 440; 14 | #X obj 32 219 mtof_tune 440; 15 | #X obj 32 299 mtof_tune 432; 16 | #X text 446 29 Arguments: tuning A frequency \, default is 440; 17 | #X text 447 48 Inlets:; 18 | #X text 484 64 1st: MIDI note; 19 | #X text 486 81 2nd: tuning A frequency; 20 | #X text 447 110 Outlet: frequency of MIDI note; 21 | #X text 507 331 Written by Alexandros Drymonitis; 22 | #X connect 2 0 3 0; 23 | #X connect 3 0 4 0; 24 | #X connect 5 0 10 0; 25 | #X connect 7 0 11 0; 26 | #X connect 10 0 6 0; 27 | #X connect 11 0 8 0; 28 | -------------------------------------------------------------------------------- /extended_abs/extendedJoin-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 366 339 837 347 10; 2 | #X obj 69 251 print; 3 | #X obj 19 16 cnv 15 400 60 empty empty empty 20 12 0 14 -191765 -66577 4 | 0; 5 | #X text 457 33 Arguments: number of inlets; 6 | #X text 26 84 This abstraction is inspired by [vanillaBondo] by Matt 7 | Davey; 8 | #X text 472 257 Made by Alexandros Drymonitis; 9 | #X symbolatom 96 166 10 0 0 0 - - -; 10 | #X floatatom 69 147 5 0 0 0 - - -; 11 | #X symbolatom 150 206 10 0 0 0 - - -; 12 | #X floatatom 123 187 5 0 0 0 - - -; 13 | #X text 456 91 Outlet: list of received floats and symbols; 14 | #X obj 69 229 extendedJoin 4; 15 | #X text 26 20 [extendedJoin]: Pd-extended abstraction \, similar to 16 | Max's [join] \, which is a [pack] with hot inlets only where you don't 17 | need to specify whether you provide a float or a symbol; 18 | #X msg 40 166 bang; 19 | #X text 455 60 Inlets: floats or symbols to be packed into a list \, 20 | bang any inlet to output the whole list; 21 | #X connect 5 0 10 1; 22 | #X connect 6 0 10 0; 23 | #X connect 7 0 10 3; 24 | #X connect 8 0 10 2; 25 | #X connect 10 0 0 0; 26 | #X connect 12 0 10 0; 27 | -------------------------------------------------------------------------------- /vanillaUrn-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 282 598 1000 305 10; 2 | #X obj 22 20 cnv 15 440 50 empty empty empty 20 12 0 14 -191765 -66577 3 | 0; 4 | #X text 29 25 [vanillaUrn]: random number generator vanilla abstraction 5 | that doesn't repeat a number before all numbers in its range have been 6 | output; 7 | #X obj 36 156 vanillaUrn 10; 8 | #X obj 36 178 print; 9 | #X msg 36 78 bang; 10 | #X floatatom 124 135 5 0 0 0 - - -, f 5; 11 | #X text 521 33 Argument: random number range; 12 | #X text 528 66 Inlets:; 13 | #X text 574 116 2nd: float to override argument; 14 | #X text 571 205 Written by Alexandros Drymonitis; 15 | #X msg 56 101 seed 123; 16 | #X text 574 87 1st: bang to generate random number \, "seed \$1" message 17 | to set the seed; 18 | #X obj 124 180 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 19 | -1 -1; 20 | #X text 146 181 sent all numbers; 21 | #X text 527 137 Outlets:; 22 | #X text 574 154 1st: random numbers; 23 | #X text 575 171 2nd: bang when all numbers in range have been output 24 | ; 25 | #X connect 2 0 3 0; 26 | #X connect 2 1 12 0; 27 | #X connect 4 0 2 0; 28 | #X connect 5 0 2 1; 29 | #X connect 10 0 2 0; 30 | -------------------------------------------------------------------------------- /skip.pd: -------------------------------------------------------------------------------- 1 | #N canvas 450 428 487 410 10; 2 | #X obj 30 67 inlet; 3 | #X obj 104 180 t a b; 4 | #X obj 104 242 spigot; 5 | #X obj 218 235 + 1; 6 | #X obj 188 197 spigot 1; 7 | #X obj 209 150 t f f; 8 | #X obj 241 173 == 0; 9 | #X obj 104 264 outlet; 10 | #X obj 188 257 sel \$1; 11 | #X obj 315 240 inlet; 12 | #X obj 30 89 route reset; 13 | #X obj 188 235 f; 14 | #X obj 188 279 t b b; 15 | #X msg 188 301 0; 16 | #X msg 254 296 1; 17 | #X msg 30 111 0; 18 | #X obj 30 133 t f f; 19 | #X text 27 30 Skip a certain number of input iterations; 20 | #X text 236 359 Written by Alexandros Drymonitis; 21 | #X connect 0 0 10 0; 22 | #X connect 1 0 2 0; 23 | #X connect 1 1 4 0; 24 | #X connect 2 0 7 0; 25 | #X connect 3 0 11 1; 26 | #X connect 4 0 11 0; 27 | #X connect 5 0 2 1; 28 | #X connect 5 1 6 0; 29 | #X connect 6 0 4 1; 30 | #X connect 8 0 12 0; 31 | #X connect 9 0 8 1; 32 | #X connect 10 0 15 0; 33 | #X connect 10 1 1 0; 34 | #X connect 11 0 3 0; 35 | #X connect 11 0 8 0; 36 | #X connect 12 0 13 0; 37 | #X connect 12 1 14 0; 38 | #X connect 13 0 11 1; 39 | #X connect 14 0 5 0; 40 | #X connect 15 0 16 0; 41 | #X connect 16 0 11 1; 42 | #X connect 16 1 5 0; 43 | -------------------------------------------------------------------------------- /extended_abs/extendedPak-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 282 201 773 350 10; 2 | #X obj 69 281 print; 3 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 4 | 0; 5 | #X text 457 33 Arguments: number of inlets; 6 | #X text 455 60 Inlets: floats to be packed into a list; 7 | #X text 456 87 Outlet: list of received floats; 8 | #X text 472 257 Made by Alexandros Drymonitis; 9 | #X floatatom 125 217 5 0 0 0 - - -; 10 | #X floatatom 106 195 5 0 0 0 - - -; 11 | #X floatatom 87 173 5 0 0 0 - - -; 12 | #X floatatom 69 154 5 0 0 0 - - -; 13 | #X floatatom 144 236 5 0 0 0 - - -; 14 | #X obj 69 259 extendedPak 5; 15 | #X text 26 22 [extendedPak]: Pd-extended abstraction \, similar to 16 | Max's [pak] \, which is a [pack] with hot inlets only; 17 | #X text 28 74 This abstraction is inspired by [vanillaBondo] by Matt 18 | Davey. Its difference with [vanillaPak] is that this one uses [initbang] 19 | instead of [loadbang] \, thus can be used in a saved patch \, as its 20 | connections will be maintained.; 21 | #X connect 6 0 11 3; 22 | #X connect 7 0 11 2; 23 | #X connect 8 0 11 1; 24 | #X connect 9 0 11 0; 25 | #X connect 10 0 11 4; 26 | #X connect 11 0 0 0; 27 | -------------------------------------------------------------------------------- /vanillaPak-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 342 310 868 340 10; 2 | #X obj 32 291 print; 3 | #X obj 32 269 vanillaPak 5; 4 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 5 | 0; 6 | #X text 26 22 [vanillaPak]: Pd-vanilla abstraction \, similar to Max's 7 | [pak] \, which is a [pack] with hot inlets only; 8 | #X text 457 33 Arguments: number of inlets; 9 | #X text 456 92 Outlet: list of received floats; 10 | #X text 28 74 This abstraction is inspired by [vanillaBondo] by Matt 11 | Davey; 12 | #X text 472 257 Made by Alexandros Drymonitis; 13 | #X floatatom 83 227 5 0 0 0 - - -, f 5; 14 | #X floatatom 66 205 5 0 0 0 - - -, f 5; 15 | #X floatatom 49 183 5 0 0 0 - - -, f 5; 16 | #X floatatom 32 164 5 0 0 0 - - -, f 5; 17 | #X floatatom 101 246 5 0 0 0 - - -, f 5; 18 | #X text 29 93 There's some kind of hack in this abstraction (read it 19 | as text and you'll see) \, provided by IOhannes m zmoelnig from the 20 | Pd list \, so now saving connections to the abstraction is possible 21 | ; 22 | #X msg 117 269 bang; 23 | #X text 455 60 Inlets: floats to be packed into a list which will be 24 | output or bang to ouput list; 25 | #X connect 1 0 0 0; 26 | #X connect 8 0 1 3; 27 | #X connect 9 0 1 2; 28 | #X connect 10 0 1 1; 29 | #X connect 11 0 1 0; 30 | #X connect 12 0 1 4; 31 | #X connect 14 0 1 4; 32 | -------------------------------------------------------------------------------- /vanillaS2f-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 210 183 920 348 10; 2 | #X symbolatom 35 150 0 0 0 0 - - -; 3 | #X obj 35 172 vanillaS2f; 4 | #X floatatom 35 214 0 0 0 0 - - -; 5 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 6 | 0; 7 | #X text 116 215 <-get the value as a float; 8 | #X text 506 28 Arguments: none; 9 | #X text 25 26 [vanillaS2f]: vanilla symbol to float conversion abstraction 10 | ; 11 | #X text 438 259 Written by Alexandros Drymonitis \, after a discussion 12 | on the Pd list with Cyrille Henry and Chris McCormick; 13 | #X text 112 148 <-provide a symbol which represents a number. if the 14 | value is decimal \, write it as is. if it's hexadecimal \, include 15 | the 0x prefix. if it's octal start the value with a 0 if it's binary 16 | start the value with a B or b.; 17 | #X text 505 48 Inlet: symbol which represents a number in one of the 18 | four supported numeral systems; 19 | #X text 506 79 Outlet: float from symbol's number; 20 | #X text 21 65 [vanillaS2f] takes a symbol which represents a number 21 | and convert it to a float. It supports four numeral systems \, decimal 22 | \, hexadecimal \, octal and binary. It also supports negative and decimal 23 | values \, scientific notation \, and "inf" (octal doesn't support fractional 24 | values).; 25 | #X connect 0 0 1 0; 26 | #X connect 1 0 2 0; 27 | -------------------------------------------------------------------------------- /vanillaJoin-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 282 201 847 350 10; 2 | #X obj 69 281 print; 3 | #X obj 19 16 cnv 15 400 60 empty empty empty 20 12 0 14 -191765 -66577 4 | 0; 5 | #X text 457 33 Arguments: number of inlets; 6 | #X text 26 84 This abstraction is inspired by [vanillaBondo] by Matt 7 | Davey; 8 | #X text 472 257 Made by Alexandros Drymonitis; 9 | #X obj 69 259 vanillaJoin 4; 10 | #X symbolatom 94 196 10 0 0 0 - - -, f 10; 11 | #X floatatom 69 177 5 0 0 0 - - -, f 5; 12 | #X symbolatom 144 236 10 0 0 0 - - -, f 10; 13 | #X floatatom 119 217 5 0 0 0 - - -, f 5; 14 | #X text 26 20 [vanillaJoin]: Pd-vanilla abstraction \, similar to Max's 15 | [join] \, which is a [pack] with hot inlets only where you don't need 16 | to specify whether you provide a float or a symbol; 17 | #X text 456 91 Outlet: list of received floats and symbols; 18 | #X msg 38 209 bang; 19 | #X text 455 60 Inlets: floats or symbols to be packed into a list \, 20 | bang any inlet to output the whole list; 21 | #X text 26 103 There's some kind of hack in this abstraction (read 22 | it as text and you'll see) \, provided by IOhannes m zmoelnig from 23 | the Pd list \, so now saving connections to the abstraction is possible 24 | ; 25 | #X connect 5 0 0 0; 26 | #X connect 6 0 5 1; 27 | #X connect 7 0 5 0; 28 | #X connect 8 0 5 3; 29 | #X connect 9 0 5 2; 30 | #X connect 12 0 5 0; 31 | -------------------------------------------------------------------------------- /skip-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 464 369 1003 402 10; 2 | #X obj 19 16 cnv 15 410 40 empty empty empty 20 12 0 14 -191765 -66577 3 | 0; 4 | #X obj 31 288 skip 1; 5 | #X text 24 22 [skip]: vanilla abstraction that skips a given amount 6 | of iterations of its input; 7 | #X floatatom 31 138 5 0 0 0 - - -, f 5; 8 | #X msg 47 158 bang; 9 | #X symbolatom 53 180 10 0 0 0 - - -, f 10; 10 | #X msg 56 248 reset; 11 | #X floatatom 124 274 5 0 0 0 - - -, f 5; 12 | #X msg 60 198 list 1 2 3; 13 | #X obj 31 310 print; 14 | #X text 24 70 [skip] takes any input and won't let it through for as 15 | many times as set via its argument (or sent through its right inlet). 16 | "reset" resets its internal counter (which needs to be sent even when 17 | a new value is input in the right inlet).; 18 | #X text 500 22 Argument: number of input iterations to be skipped; 19 | #X text 506 40 Inlets:; 20 | #X text 554 54 1st: any input to be skipped or passed through (after 21 | the number of skipped iterations has passed).; 22 | #X text 557 82 "reset" message to re-start the internal counter (and 23 | re-initialize skipping); 24 | #X text 561 111 2nd: number of skipped iterations (overrides argument) 25 | ; 26 | #X text 511 143 Outlet: input of left inlet \, after set iterations 27 | have been skipped; 28 | #X text 679 340 Written by Alexandros Drymonitis; 29 | #X connect 1 0 9 0; 30 | #X connect 3 0 1 0; 31 | #X connect 4 0 1 0; 32 | #X connect 5 0 1 0; 33 | #X connect 6 0 1 0; 34 | #X connect 7 0 1 1; 35 | #X connect 8 0 1 0; 36 | -------------------------------------------------------------------------------- /symbol_change.pd: -------------------------------------------------------------------------------- 1 | #N canvas 288 131 807 460 10; 2 | #X obj 42 66 inlet; 3 | #X obj 385 127 list fromsymbol; 4 | #X obj 42 112 list fromsymbol; 5 | #X obj 295 211 t b f; 6 | #X obj 129 271 !=; 7 | #X obj 129 316 symbol; 8 | #X obj 129 338 t s s; 9 | #X obj 129 360 outlet; 10 | #X obj 129 191 list; 11 | #X obj 129 213 list split 1; 12 | #X obj 295 189 list split 1; 13 | #X obj 385 105 symbol \$1; 14 | #X obj 295 166 list; 15 | #X obj 129 294 sel 1 0; 16 | #X obj 412 254 list length; 17 | #X obj 385 149 t l l; 18 | #X obj 42 134 t l l; 19 | #X obj 42 175 list length; 20 | #X obj 42 88 t s s b; 21 | #X text 43 22 compare a symbol to the previous one and output it only 22 | if it's different; 23 | #X text 409 279 first check the length of the symbols. if they're different 24 | then the symbols are different too. if not \, check their characters 25 | one by one; 26 | #X text 560 380 Written by Alexandros Drymonitis; 27 | #X connect 0 0 18 0; 28 | #X connect 1 0 15 0; 29 | #X connect 2 0 16 0; 30 | #X connect 3 0 8 0; 31 | #X connect 3 1 4 1; 32 | #X connect 4 0 13 0; 33 | #X connect 5 0 6 0; 34 | #X connect 6 0 7 0; 35 | #X connect 6 1 11 0; 36 | #X connect 8 0 9 0; 37 | #X connect 9 0 4 0; 38 | #X connect 9 1 8 1; 39 | #X connect 10 0 3 0; 40 | #X connect 10 1 12 1; 41 | #X connect 11 0 1 0; 42 | #X connect 12 0 10 0; 43 | #X connect 13 0 5 0; 44 | #X connect 13 1 12 0; 45 | #X connect 14 0 4 1; 46 | #X connect 15 0 12 1; 47 | #X connect 15 1 14 0; 48 | #X connect 16 0 17 0; 49 | #X connect 16 1 8 1; 50 | #X connect 17 0 4 0; 51 | #X connect 18 0 2 0; 52 | #X connect 18 1 5 1; 53 | #X connect 18 2 11 0; 54 | -------------------------------------------------------------------------------- /speed_limit.pd: -------------------------------------------------------------------------------- 1 | #N canvas 728 336 686 434 10; 2 | #X obj 21 28 inlet; 3 | #X obj 419 269 loadbang; 4 | #X obj 419 291 \$1; 5 | #X obj 419 313 sel 0; 6 | #X msg 419 335 20; 7 | #X obj 21 277 spigot 1; 8 | #X obj 21 299 t f b; 9 | #X obj 188 148 t b b, f 6; 10 | #X msg 221 259 0; 11 | #X obj 188 171 del; 12 | #X msg 188 193 1; 13 | #X obj 21 139 f; 14 | #X obj 21 50 t f b; 15 | #X obj 188 101 t b b; 16 | #X obj 70 92 spigot; 17 | #X obj 188 215 t b f; 18 | #X msg 103 68 1; 19 | #X msg 215 124 0; 20 | #X obj 464 313 inlet; 21 | #X text 509 312 override argument; 22 | #X obj 21 322 outlet; 23 | #X obj 419 357 s \$0-speed_lim; 24 | #X obj 266 153 r \$0-speed_lim; 25 | #X text 67 27 if values come in before the speed limit has passed \, store them and open this [spigot]; 26 | #X text 228 176 when the speed limit time has passed \, bang the [spigot] above. if a value has entered the abstraction before that \, this value will be banged output; 27 | #X connect 0 0 12 0; 28 | #X connect 1 0 2 0; 29 | #X connect 2 0 3 0; 30 | #X connect 3 0 4 0; 31 | #X connect 3 1 21 0; 32 | #X connect 4 0 21 0; 33 | #X connect 5 0 6 0; 34 | #X connect 6 0 20 0; 35 | #X connect 6 1 13 0; 36 | #X connect 7 0 9 0; 37 | #X connect 7 1 8 0; 38 | #X connect 8 0 5 1; 39 | #X connect 9 0 10 0; 40 | #X connect 10 0 15 0; 41 | #X connect 11 0 5 0; 42 | #X connect 12 0 11 0; 43 | #X connect 12 1 16 0; 44 | #X connect 13 0 7 0; 45 | #X connect 13 1 17 0; 46 | #X connect 14 0 11 0; 47 | #X connect 15 0 14 0; 48 | #X connect 15 1 5 1; 49 | #X connect 16 0 14 1; 50 | #X connect 17 0 14 1; 51 | #X connect 18 0 21 0; 52 | #X connect 22 0 9 1; 53 | -------------------------------------------------------------------------------- /extended_abs/symbol_change_extended.pd: -------------------------------------------------------------------------------- 1 | #N canvas 423 118 827 464 10; 2 | #X obj 42 66 inlet; 3 | #X obj 285 241 t b f; 4 | #X obj 163 301 !=; 5 | #X obj 163 346 symbol; 6 | #X obj 163 368 t s s; 7 | #X obj 163 390 outlet; 8 | #X obj 163 221 list; 9 | #X obj 163 243 list split 1; 10 | #X obj 285 219 list split 1; 11 | #X obj 351 105 symbol \$1; 12 | #X obj 285 196 list; 13 | #X obj 163 324 sel 1 0; 14 | #X obj 412 284 list length; 15 | #X obj 385 179 t l l; 16 | #X obj 76 157 t l l; 17 | #X obj 76 205 list length; 18 | #X obj 42 88 t s s b; 19 | #X text 43 22 compare a symbol to the previous one and output it only 20 | if it's different; 21 | #X text 409 309 first check the length of the symbols. if they're different 22 | then the symbols are different too. if not \, check their characters 23 | one by one; 24 | #X text 560 410 Written by Alexandros Drymonitis; 25 | #X obj 351 127 moocow/any2bytes; 26 | #X obj 351 149 list split 7; 27 | #X text 432 146 exclude the "symbol" selector; 28 | #X obj 42 112 any2bytes; 29 | #X obj 42 134 list split 7; 30 | #X connect 0 0 16 0; 31 | #X connect 1 0 6 0; 32 | #X connect 1 1 2 1; 33 | #X connect 2 0 11 0; 34 | #X connect 3 0 4 0; 35 | #X connect 4 0 5 0; 36 | #X connect 4 1 9 0; 37 | #X connect 6 0 7 0; 38 | #X connect 7 0 2 0; 39 | #X connect 7 1 6 1; 40 | #X connect 8 0 1 0; 41 | #X connect 8 1 10 1; 42 | #X connect 9 0 20 0; 43 | #X connect 10 0 8 0; 44 | #X connect 11 0 3 0; 45 | #X connect 11 1 10 0; 46 | #X connect 12 0 2 1; 47 | #X connect 13 0 10 1; 48 | #X connect 13 1 12 0; 49 | #X connect 14 0 15 0; 50 | #X connect 14 1 6 1; 51 | #X connect 15 0 2 0; 52 | #X connect 16 0 23 0; 53 | #X connect 16 1 3 1; 54 | #X connect 16 2 9 0; 55 | #X connect 20 0 21 0; 56 | #X connect 21 1 13 0; 57 | #X connect 23 0 24 0; 58 | #X connect 24 1 14 0; 59 | -------------------------------------------------------------------------------- /clip_abs-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 154 212 949 415 10; 2 | #X floatatom 28 217 5 0 0 0 - - -, f 5; 3 | #X floatatom 28 258 5 0 0 0 - - -, f 5; 4 | #X obj 28 236 clip_abs 10 2; 5 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 6 | 0; 7 | #X text 25 22 [clip_abs]: vanilla abstraction that solves the problem 8 | of [clip] when the first argument is greater than the second; 9 | #X floatatom 128 217 5 0 0 0 - - -, f 5; 10 | #X floatatom 128 258 5 0 0 0 - - -, f 5; 11 | #X obj 128 236 clip 10 2; 12 | #X text 27 69 [clip] must have its first argument smaller than the 13 | second \, otherwise it won't work as expected. [clip_abs] solves this 14 | problem.; 15 | #X text 28 290 Of course it works as expected with the first argument 16 | smaller than the second too.; 17 | #X floatatom 31 328 5 0 0 0 - - -, f 5; 18 | #X obj 31 347 clip_abs 1 5; 19 | #X floatatom 31 369 5 0 0 0 - - -, f 5; 20 | #X text 487 37 Arguments:; 21 | #X text 541 87 2nd: higher value to clip \, if number stream is ascending 22 | \, lower value to clip if descending; 23 | #X text 540 55 1st: lower value to clip \, if number stream is ascending 24 | \, higher value to clip if descending; 25 | #X text 502 135 Inlets:; 26 | #X text 541 153 1st: number stream to be clipped; 27 | #X text 543 171 2nd: replaces first argument; 28 | #X text 544 190 3rd: replaces second argument; 29 | #X text 512 222 Otulet: clipped number stream; 30 | #X text 624 354 Written by Alexandros Drymonitis; 31 | #X text 28 112 Obviously \, if you have a descending number stream 32 | \, you can still use [clip] \, as long as the first argument is smaller 33 | than the second. There might be some cases where the clipping values 34 | are set dynamically \, where you can't know in advance whether the 35 | arguments will be in order \, and that's where [clip_abs] comes in 36 | handy.; 37 | #X connect 0 0 2 0; 38 | #X connect 2 0 1 0; 39 | #X connect 5 0 7 0; 40 | #X connect 7 0 6 0; 41 | #X connect 10 0 11 0; 42 | #X connect 11 0 12 0; 43 | -------------------------------------------------------------------------------- /map.pd: -------------------------------------------------------------------------------- 1 | #N canvas 354 115 778 450 10; 2 | #X obj 35 10 inlet; 3 | #X obj 35 130 - \$1; 4 | #X obj 35 352 + \$3; 5 | #X obj 292 122 loadbang; 6 | #X obj 292 167 t b b; 7 | #X obj 292 261 -; 8 | #X obj 35 300 *; 9 | #X obj 292 144 t b b; 10 | #X obj 412 161 t b b; 11 | #X obj 412 266 -; 12 | #X obj 35 374 outlet; 13 | #X obj 292 283 /; 14 | #X obj 292 239 \$4; 15 | #X obj 319 239 \$3; 16 | #X obj 412 233 \$2; 17 | #X obj 439 233 \$1; 18 | #X obj 201 53 s \$0-from_low; 19 | #X obj 446 207 r \$0-from_low; 20 | #X obj 56 108 r \$0-from_low; 21 | #X obj 181 74 s \$0-from_high; 22 | #X obj 424 185 r \$0-from_high; 23 | #X obj 162 10 inlet from_low; 24 | #X obj 295 10 inlet from_high; 25 | #X obj 322 53 s \$0-from_high; 26 | #X obj 326 214 r \$0-to_low; 27 | #X obj 304 192 r \$0-to_high; 28 | #X obj 433 32 t b f; 29 | #X obj 433 74 s \$0-to_high; 30 | #X obj 460 53 s \$0-to_low; 31 | #X obj 540 32 s \$0-to_high; 32 | #X obj 56 330 r \$0-to_low; 33 | #X obj 162 32 t b b f; 34 | #X obj 162 95 s \$0-to_high; 35 | #X obj 433 10 inlet to_low; 36 | #X obj 540 10 inlet to_high; 37 | #X obj 295 32 t b f; 38 | #X obj 295 74 s \$0-to_high; 39 | #X connect 0 0 1 0; 40 | #X connect 1 0 6 0; 41 | #X connect 2 0 10 0; 42 | #X connect 3 0 7 0; 43 | #X connect 4 0 12 0; 44 | #X connect 4 1 13 0; 45 | #X connect 5 0 11 0; 46 | #X connect 6 0 2 0; 47 | #X connect 7 0 4 0; 48 | #X connect 7 1 8 0; 49 | #X connect 8 0 14 0; 50 | #X connect 8 1 15 0; 51 | #X connect 9 0 11 1; 52 | #X connect 11 0 6 1; 53 | #X connect 12 0 5 0; 54 | #X connect 13 0 5 1; 55 | #X connect 14 0 9 0; 56 | #X connect 15 0 9 1; 57 | #X connect 17 0 15 0; 58 | #X connect 18 0 1 1; 59 | #X connect 20 0 14 0; 60 | #X connect 21 0 31 0; 61 | #X connect 22 0 35 0; 62 | #X connect 24 0 13 0; 63 | #X connect 25 0 12 0; 64 | #X connect 26 0 27 0; 65 | #X connect 26 1 28 0; 66 | #X connect 30 0 2 1; 67 | #X connect 31 0 32 0; 68 | #X connect 31 1 19 0; 69 | #X connect 31 2 16 0; 70 | #X connect 33 0 26 0; 71 | #X connect 34 0 29 0; 72 | #X connect 35 0 36 0; 73 | #X connect 35 1 23 0; 74 | -------------------------------------------------------------------------------- /map-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 321 243 798 478 10; 2 | #X floatatom 33 63 5 0 1023 0 - - -, f 5; 3 | #X obj 33 82 map 0 1023 0 1; 4 | #X floatatom 33 104 5 0 0 0 - - -, f 5; 5 | #X obj 32 13 cnv 15 340 40 empty empty empty 20 12 0 14 -204786 -66577 6 | 0; 7 | #X text 42 21 map: number stream scaling abstraction \, inspired by 8 | Arduino's map function; 9 | #X floatatom 33 143 5 -20 10 0 - - -, f 5; 10 | #X floatatom 33 184 5 0 0 0 - - -, f 5; 11 | #X obj 33 162 map 10 -20 30 40; 12 | #X floatatom 33 223 5 -35 12 0 - - -, f 5; 13 | #X floatatom 33 264 5 0 0 0 - - -, f 5; 14 | #X obj 33 242 map -35 12 27 -89; 15 | #X text 424 21 Arguments:; 16 | #X text 482 72 3rd: Lowest value of output stream; 17 | #X text 482 88 4th: Highest value of output stream; 18 | #X text 482 40 1st: Lowest value of input stream; 19 | #X text 482 56 2nd: Highest value of input stream; 20 | #X text 442 129 Inlets:; 21 | #X text 436 254 Outlets:; 22 | #X text 482 273 1st: scalled output stream; 23 | #X text 79 62 <- scroll numbers to see the output; 24 | #X floatatom 33 374 5 0 0 0 - - -, f 5; 25 | #X obj 33 352 map 0 100 0 1; 26 | #X floatatom 78 303 5 0 0 0 - - -, f 5; 27 | #X floatatom 118 303 5 0 0 0 - - -, f 5; 28 | #X floatatom 158 303 5 0 0 0 - - -, f 5; 29 | #X floatatom 198 303 5 0 0 0 - - -, f 5; 30 | #X floatatom 33 302 5 0 0 0 - - -, f 5; 31 | #X text 134 348 you can replace all arguments with numbers sent to 32 | the respective inlets; 33 | #X text 35 426 made by Alexandros Drymonitis; 34 | #X text 482 147 1st: input number stream; 35 | #X text 482 163 2nd: Lowest value of input stream; 36 | #X text 482 179 3rd: Highest value of input stream; 37 | #X text 482 195 4th: Lowest value of output stream; 38 | #X text 482 211 5th: Highest value of output stream; 39 | #X connect 0 0 1 0; 40 | #X connect 1 0 2 0; 41 | #X connect 5 0 7 0; 42 | #X connect 7 0 6 0; 43 | #X connect 8 0 10 0; 44 | #X connect 10 0 9 0; 45 | #X connect 21 0 20 0; 46 | #X connect 22 0 21 1; 47 | #X connect 23 0 21 2; 48 | #X connect 24 0 21 3; 49 | #X connect 25 0 21 4; 50 | #X connect 26 0 21 0; 51 | -------------------------------------------------------------------------------- /map~.pd: -------------------------------------------------------------------------------- 1 | #N canvas 408 336 726 444 10; 2 | #X obj 62 78 r \$0-from_low; 3 | #X obj 172 10 inlet from_low; 4 | #X obj 335 10 inlet from_high; 5 | #X obj 62 326 r \$0-to_low; 6 | #X obj 473 10 inlet to_low; 7 | #X obj 570 10 inlet to_high; 8 | #X obj 35 10 inlet~; 9 | #X obj 35 301 *~; 10 | #X obj 35 369 outlet~; 11 | #X obj 112 120 loadbang; 12 | #X obj 112 167 t b b; 13 | #X obj 112 261 -; 14 | #X obj 112 142 t b b; 15 | #X obj 232 160 t b b; 16 | #X obj 232 265 -; 17 | #X obj 112 283 /; 18 | #X obj 112 239 \$4; 19 | #X obj 139 239 \$3; 20 | #X obj 232 232 \$2; 21 | #X obj 259 232 \$1; 22 | #X obj 211 53 s \$0-from_low; 23 | #X obj 266 206 r \$0-from_low; 24 | #X obj 191 74 s \$0-from_high; 25 | #X obj 244 184 r \$0-from_high; 26 | #X obj 362 53 s \$0-from_high; 27 | #X obj 146 214 r \$0-to_low; 28 | #X obj 124 192 r \$0-to_high; 29 | #X obj 473 32 t b f; 30 | #X obj 473 74 s \$0-to_high; 31 | #X obj 500 53 s \$0-to_low; 32 | #X obj 172 32 t b b f; 33 | #X obj 172 95 s \$0-to_high; 34 | #X obj 335 32 t b f; 35 | #X obj 335 74 s \$0-to_high; 36 | #X obj 570 32 s \$0-to_high; 37 | #X obj 35 100 -~ \$1; 38 | #X obj 35 347 +~ \$3; 39 | #X connect 0 0 35 1; 40 | #X connect 1 0 30 0; 41 | #X connect 2 0 32 0; 42 | #X connect 3 0 36 1; 43 | #X connect 4 0 27 0; 44 | #X connect 5 0 34 0; 45 | #X connect 6 0 35 0; 46 | #X connect 7 0 36 0; 47 | #X connect 9 0 12 0; 48 | #X connect 10 0 16 0; 49 | #X connect 10 1 17 0; 50 | #X connect 11 0 15 0; 51 | #X connect 12 0 10 0; 52 | #X connect 12 1 13 0; 53 | #X connect 13 0 18 0; 54 | #X connect 13 1 19 0; 55 | #X connect 14 0 15 1; 56 | #X connect 15 0 7 1; 57 | #X connect 16 0 11 0; 58 | #X connect 17 0 11 1; 59 | #X connect 18 0 14 0; 60 | #X connect 19 0 14 1; 61 | #X connect 21 0 19 0; 62 | #X connect 23 0 18 0; 63 | #X connect 25 0 17 0; 64 | #X connect 26 0 16 0; 65 | #X connect 27 0 28 0; 66 | #X connect 27 1 29 0; 67 | #X connect 30 0 31 0; 68 | #X connect 30 1 22 0; 69 | #X connect 30 2 20 0; 70 | #X connect 32 0 33 0; 71 | #X connect 32 1 24 0; 72 | #X connect 35 0 7 0; 73 | #X connect 36 0 8 0; 74 | -------------------------------------------------------------------------------- /no_click_val-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 101 31 901 610 10; 2 | #X obj 38 539 r here; 3 | #X floatatom 38 561 0 0 0 0 - - -; 4 | #X obj 231 539 r there; 5 | #X floatatom 231 561 0 0 0 0 - - -; 6 | #X obj 19 18 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 7 | 0; 8 | #X text 480 120 Inlet: symbol to set destination of value; 9 | #X text 687 559 Made by Alexandros Drymonitis; 10 | #X text 465 35 Arguments:; 11 | #X text 523 91 2nd: destination name; 12 | #X obj 231 436 no_click_val 1 there; 13 | #X floatatom 425 531 0 0 0 0 - - -; 14 | #X text 481 143 Outlet: float; 15 | #X text 29 25 [no_click_val]: vanilla abstraction to type numbers without 16 | needing to click on a number atom; 17 | #X obj 38 436 no_click_val 0 here; 18 | #X obj 425 436 no_click_val 23; 19 | #X text 522 53 1st: abstraction index \, so you can switch between 20 | abstractions using Shift+this_argument.; 21 | #X text 34 291 Use Shift+1st_argument to activate the corresponding 22 | abstraction \, so you can easily switch between abstractions without 23 | needing to click. The toggle of each abstraction will be activated 24 | or deactivated accordingly. This abstraction uses the shift symbols 25 | of number keys of a British keyboard. If you're using a different keyboad 26 | \, open the abstraction \, click on [pd set_arg] and change the symbols 27 | of [sel] accordingly in order for the abstraction to work properly. 28 | ; 29 | #X text 35 197 Negative and decimal numbers are legal. You can also 30 | use backspace to correct a value you've typed \, for as many digits 31 | you want to correct (if you erase all decimal digits \, you must hit 32 | the dot key to create a decimal. if you erase all digits \, the number 33 | will be zeroed \, and if it was a negative \, you'll need to hit hyphen 34 | again).; 35 | #X text 33 77 Set the destination via the symbol atom \, if you haven't 36 | done so via argument (then click anywhere outside the abstraction \, 37 | otherwise whatever you type will be typed in the symbol atom again) 38 | \, activate the abstraction with the toggle (it's active by default) 39 | and type the number you want. There's a number atom in the abstraction 40 | to display the number as you type. Hit return to receive the value 41 | in the corresponding [receive] \, or from the outlet of the abstraction. 42 | ; 43 | #X connect 0 0 1 0; 44 | #X connect 2 0 3 0; 45 | #X connect 14 0 10 0; 46 | -------------------------------------------------------------------------------- /bin2any-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 366 234 861 411 10; 2 | #X floatatom 34 346 5 0 0 0 - - -, f 5; 3 | #X floatatom 97 327 5 0 0 0 - - -, f 5; 4 | #X symbolatom 34 213 0 0 0 0 - - -; 5 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 6 | 0; 7 | #X text 27 23 [bin2any]: vanilla abstraction for conversion from binary 8 | to either decimal \, hexadecimal \, or octal; 9 | #X obj 34 304 bin2any DEC; 10 | #X obj 52 244 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 11 | 1; 12 | #N canvas 0 22 302 211 hot_pack 0; 13 | #X obj 56 37 inlet; 14 | #X obj 56 119 pack f f f f; 15 | #X obj 96 37 inlet; 16 | #X obj 96 59 t b f; 17 | #X obj 136 37 inlet; 18 | #X obj 136 59 t b f; 19 | #X obj 176 37 inlet; 20 | #X obj 176 59 t b f; 21 | #X obj 56 141 outlet; 22 | #X connect 0 0 1 0; 23 | #X connect 1 0 8 0; 24 | #X connect 2 0 3 0; 25 | #X connect 3 0 1 0; 26 | #X connect 3 1 1 1; 27 | #X connect 4 0 5 0; 28 | #X connect 5 0 1 0; 29 | #X connect 5 1 1 2; 30 | #X connect 6 0 7 0; 31 | #X connect 7 0 1 0; 32 | #X connect 7 1 1 3; 33 | #X restore 52 265 pd hot_pack; 34 | #X obj 73 244 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 35 | 1; 36 | #X obj 94 244 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 37 | 1; 38 | #X obj 115 244 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 39 | 1; 40 | #X text 68 346 decimal value; 41 | #X text 131 326 number of bits; 42 | #X text 109 210 <- type a binary number without spaces; 43 | #X text 136 242 <- or provide a list with 1s and 0s; 44 | #X text 29 61 [bin2any] can take either a symbol or a list representing 45 | a binary value \, and convert it to either its decimal \, hexadecimal 46 | \, or octal equivalent.; 47 | #X text 30 103 If the symbol contains elements other than numbers \, 48 | [bin2any] will throw a message and won't output any value. The same 49 | applies to lists \, if they contain symbols or pointers. If the numbers 50 | provided are not only 0 and 1 \, [bin2any] will again throw a message 51 | and won't give any output.; 52 | #X text 460 94 Inlets:; 53 | #X text 501 109 1st: symbol or list representing a binary number; 54 | #X text 460 159 Outlets:; 55 | #X text 501 174 1st: decimal \, hexadecial \, or octal equivalent value 56 | of binary value provided; 57 | #X text 501 204 2nd: number of bits of binary value; 58 | #X text 604 357 Written by Alexandros Drymonitis; 59 | #X text 460 19 Arguments: type of output \, DEC \, HEX \, or OCT \, 60 | for decimal \, hexadecimal \, and octal respectively. DEC can be displayed 61 | in a number atom \, or sent to any object receiving floats. HEX and 62 | OCT are output as symbols. Default is DEC.; 63 | #X text 501 127 2nd: symbol to specify type of output \, DEC \, HEX 64 | \, or OCT; 65 | #X connect 2 0 5 0; 66 | #X connect 5 0 0 0; 67 | #X connect 5 1 1 0; 68 | #X connect 6 0 7 0; 69 | #X connect 7 0 5 0; 70 | #X connect 8 0 7 1; 71 | #X connect 9 0 7 2; 72 | #X connect 10 0 7 3; 73 | -------------------------------------------------------------------------------- /int2bin-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 392 149 1115 852 10; 2 | #X obj 19 16 cnv 15 440 40 empty empty empty 20 12 0 14 -191765 -66577 3 | 0; 4 | #X text 25 23 [int2bin]: vanilla abstraction to convert an integer 5 | to its binary version in either a list or a symbol; 6 | #X floatatom 37 202 5 0 0 0 - - -, f 5; 7 | #X obj 37 243 print list; 8 | #X floatatom 131 238 5 0 0 1 num_bits - -, f 5; 9 | #X floatatom 39 405 5 0 0 0 - - -, f 5; 10 | #X floatatom 127 446 5 0 0 1 num_bits - -, f 5; 11 | #X symbolatom 39 446 0 0 0 0 - - -; 12 | #X text 37 299 If the argument "sym" is provided \, then [int2bin] 13 | will output a symbol with the binary value. If a second argument with 14 | the number of bits is provided \, then [int2bin] will always output 15 | the specified number of bits \, truncating the value in case its bits 16 | are actually more than those specified (if you set 8 bits and input 17 | the value 256 \, you'll get eight zeros); 18 | #X text 563 39 Arguments:; 19 | #X text 629 95 2nd (optiona): number of bits of the output value. If 20 | no 2nd argument is provided \, [int2bin] will output only the necessary 21 | number of bits to express the binary value; 22 | #X text 589 176 Inlets:; 23 | #X text 640 196 1st: integer to be converted to binary; 24 | #X text 640 215 2nd: output type \, overrides first argument; 25 | #X text 640 235 3rd: number of bits \, overrides second arguments; 26 | #X floatatom 39 573 5 0 0 0 - - -, f 5; 27 | #X obj 39 662 int2bin; 28 | #X obj 39 756 print list; 29 | #X obj 100 736 print symbol; 30 | #X floatatom 108 648 5 0 0 1 change_nr_of_bits - -, f 5; 31 | #X floatatom 85 686 5 0 0 1 num_bits - -, f 5; 32 | #X msg 71 617 sym; 33 | #X obj 39 714 route list symbol; 34 | #X obj 39 424 int2bin sym 8; 35 | #X msg 62 596 lst; 36 | #X obj 37 221 int2bin lst; 37 | #X text 628 62 1st (optional): output type \, "lst" for list or "sym" 38 | for symbol \, default is "lst"; 39 | #X text 35 78 [int2bin] takes integers and outputs either a list or 40 | a symbol with the binary version of the input value. The output type 41 | is specified via the first argument (default is lst for list) \, while 42 | a second argument can specify the number of bits of the output value. 43 | If no second argument is provided \, then [int2bin] will output only 44 | the necessary number of bits (for example \, for numbers up to 7 \, 45 | it will output only 3 bits); 46 | #X text 38 509 Both arguments can be overriden by sending "lst" or 47 | "sym" to the second inlet (to override the first argument) \, and a 48 | value in the third inlet (to overrider the second argument); 49 | #X text 705 784 Written by Alexandros Drymonitis with help by Mike 50 | Moser-Booth from Pd's forum; 51 | #X connect 2 0 25 0; 52 | #X connect 5 0 23 0; 53 | #X connect 15 0 16 0; 54 | #X connect 16 0 22 0; 55 | #X connect 16 1 20 0; 56 | #X connect 19 0 16 2; 57 | #X connect 21 0 16 1; 58 | #X connect 22 0 17 0; 59 | #X connect 22 1 18 0; 60 | #X connect 23 0 7 0; 61 | #X connect 23 1 6 0; 62 | #X connect 24 0 16 1; 63 | #X connect 25 0 3 0; 64 | #X connect 25 1 4 0; 65 | -------------------------------------------------------------------------------- /extended_abs/extendedPak.pd: -------------------------------------------------------------------------------- 1 | #N canvas 415 301 719 401 10; 2 | #X obj 49 360 namecanvas \$0-this; 3 | #N canvas 330 108 708 607 \$0-guts 0; 4 | #X obj 51 89 moses 1; 5 | #X obj 80 227 + 1; 6 | #X obj 51 62 i \$1; 7 | #X obj 51 227 i; 8 | #X obj 51 162 t f b; 9 | #X obj 51 185 until; 10 | #X msg 66 205 0; 11 | #X obj 51 249 t f f f; 12 | #X obj 51 536 s \$0-this; 13 | #X obj 51 353 * 100; 14 | #X msg 51 114 2; 15 | #X text 83 114 no creation arg gives 2 inlets; 16 | #X obj 309 42 r \$0-start; 17 | #X obj 309 64 \$1; 18 | #X obj 309 133 until; 19 | #X obj 309 177 f; 20 | #X obj 339 177 + 1; 21 | #X msg 324 154 0; 22 | #X obj 309 86 t f b; 23 | #X obj 415 239 moses \$1; 24 | #X obj 415 261 t b f; 25 | #X obj 415 332 s; 26 | #X msg 442 306 symbol \$2-bang\$1; 27 | #X obj 442 284 pack f \$0; 28 | #X obj 534 256 t b; 29 | #X obj 534 278 s \$0-done; 30 | #X obj 101 276 * 5; 31 | #X obj 51 375 + 20; 32 | #X obj 51 397 t f f; 33 | #X obj 78 418 + 50; 34 | #X obj 101 301 t f f f f f; 35 | #X obj 51 449 pack 0 0 0 0 0 0 0 0 \$0; 36 | #X msg 51 473 obj \$1 10 inlet \, obj \$1 50 t b f \, obj \$2 150 f 37 | \, obj \$2 125 r \$9-bang\$3 \, obj \$1 75 s \$9-start \, connect \$4 38 | 0 \$5 0 \, connect \$5 1 \$6 1 \, connect \$7 0 \$6 0 \, connect \$5 39 | 0 \$8 0 \, connect \$6 0 2 0; 40 | #X obj 51 136 t f f f; 41 | #X obj 309 108 + 2; 42 | #X obj 309 199 moses 1; 43 | #X obj 415 216 - 1; 44 | #X obj 309 221 t b; 45 | #X obj 309 243 s \$0-clear; 46 | #X obj 101 336 + 10; 47 | #X obj 135 336 + 11; 48 | #X obj 170 336 + 12; 49 | #X obj 203 336 + 13; 50 | #X obj 236 336 + 14; 51 | #X obj 51 39 initbang; 52 | #X connect 0 0 10 0; 53 | #X connect 0 1 4 0; 54 | #X connect 1 0 3 1; 55 | #X connect 2 0 0 0; 56 | #X connect 3 0 1 0; 57 | #X connect 3 0 7 0; 58 | #X connect 4 0 5 0; 59 | #X connect 4 1 6 0; 60 | #X connect 5 0 3 0; 61 | #X connect 6 0 3 1; 62 | #X connect 7 0 9 0; 63 | #X connect 7 1 31 2; 64 | #X connect 7 2 26 0; 65 | #X connect 9 0 27 0; 66 | #X connect 10 0 33 0; 67 | #X connect 12 0 13 0; 68 | #X connect 13 0 18 0; 69 | #X connect 14 0 15 0; 70 | #X connect 15 0 16 0; 71 | #X connect 15 0 35 0; 72 | #X connect 16 0 15 1; 73 | #X connect 17 0 15 1; 74 | #X connect 18 0 34 0; 75 | #X connect 18 1 17 0; 76 | #X connect 19 0 20 0; 77 | #X connect 19 1 24 0; 78 | #X connect 20 0 21 0; 79 | #X connect 20 1 23 0; 80 | #X connect 22 0 21 1; 81 | #X connect 23 0 22 0; 82 | #X connect 24 0 25 0; 83 | #X connect 26 0 30 0; 84 | #X connect 27 0 28 0; 85 | #X connect 28 0 31 0; 86 | #X connect 28 1 29 0; 87 | #X connect 29 0 31 1; 88 | #X connect 30 0 39 0; 89 | #X connect 30 1 40 0; 90 | #X connect 30 2 41 0; 91 | #X connect 30 3 42 0; 92 | #X connect 30 4 43 0; 93 | #X connect 31 0 32 0; 94 | #X connect 32 0 8 0; 95 | #X connect 33 0 4 0; 96 | #X connect 33 1 19 1; 97 | #X connect 33 2 13 1; 98 | #X connect 34 0 14 0; 99 | #X connect 35 0 37 0; 100 | #X connect 35 1 36 0; 101 | #X connect 36 0 19 0; 102 | #X connect 37 0 38 0; 103 | #X connect 39 0 31 3; 104 | #X connect 40 0 31 4; 105 | #X connect 41 0 31 5; 106 | #X connect 42 0 31 6; 107 | #X connect 43 0 31 7; 108 | #X connect 44 0 2 0; 109 | #X restore 170 360 pd \$0-guts; 110 | #X obj 70 247 list prepend; 111 | #X obj 70 269 t l l; 112 | #X obj 49 291 list; 113 | #X obj 49 313 list trim; 114 | #X obj 49 335 outlet; 115 | #X obj 49 224 r \$0-done; 116 | #X obj 139 224 r \$0-clear; 117 | #X text 287 257 Pd-vanilla list abstraction with hot inlets only. Inspired 118 | by [vanillaBondo] by Matt Davey. Made by Alexandros Drymonitis; 119 | #X connect 2 0 3 0; 120 | #X connect 3 0 4 1; 121 | #X connect 3 1 2 1; 122 | #X connect 4 0 5 0; 123 | #X connect 5 0 6 0; 124 | #X connect 7 0 4 0; 125 | #X connect 8 0 2 1; 126 | -------------------------------------------------------------------------------- /vanillaUrn.pd: -------------------------------------------------------------------------------- 1 | #N canvas 765 249 763 763 10; 2 | #X msg 501 523 const -1; 3 | #X obj 37 146 t f f; 4 | #X obj 70 310 ==; 5 | #X obj 70 332 t f f; 6 | #X obj 142 349 sel 1; 7 | #X obj 100 425 spigot; 8 | #X obj 37 503 spigot; 9 | #X obj 70 385 t f f; 10 | #X obj 133 402 == 0; 11 | #X obj 37 408 t b f; 12 | #X obj 100 447 t f f; 13 | #X obj 184 465 t f b; 14 | #X obj 37 124 random \$1; 15 | #X obj 501 546 array define \$0-temp_store \$1; 16 | #X obj 184 638 tabwrite \$0-temp_store; 17 | #X obj 127 569 outlet; 18 | #X obj 47 102 r \$0-repeat; 19 | #X obj 37 525 s \$0-repeat; 20 | #X obj 37 79 inlet; 21 | #X obj 262 78 inlet; 22 | #X obj 262 100 s \$0-range; 23 | #X obj 262 123 r \$0-range; 24 | #X obj 289 166 array size \$0-temp_store; 25 | #X obj 70 192 \$1; 26 | #X obj 136 175 r \$0-range; 27 | #X obj 70 288 tabread \$0-temp_store; 28 | #N canvas 1 82 450 348 counter 0; 29 | #X obj 246 137 \$1; 30 | #X obj 266 107 r \$0-range; 31 | #X obj 246 159 - 1; 32 | #X obj 81 67 f; 33 | #X obj 111 67 + 1; 34 | #X msg 96 44 0; 35 | #X obj 81 89 t f f; 36 | #X obj 108 113 sel 0; 37 | #X obj 81 21 inlet; 38 | #X obj 81 159 t f f; 39 | #X obj 183 176 sel; 40 | #X obj 81 224 outlet index; 41 | #X obj 246 80 loadbang; 42 | #X obj 183 198 t b b; 43 | #X obj 108 135 outlet reset; 44 | #X obj 183 221 outlet no_store; 45 | #X connect 0 0 2 0; 46 | #X connect 1 0 0 0; 47 | #X connect 2 0 10 1; 48 | #X connect 3 0 4 0; 49 | #X connect 3 0 6 0; 50 | #X connect 4 0 3 1; 51 | #X connect 5 0 3 1; 52 | #X connect 6 0 9 0; 53 | #X connect 6 1 7 0; 54 | #X connect 7 0 14 0; 55 | #X connect 8 0 3 0; 56 | #X connect 9 0 11 0; 57 | #X connect 9 1 10 0; 58 | #X connect 10 0 13 0; 59 | #X connect 12 0 0 0; 60 | #X connect 13 0 15 0; 61 | #X connect 13 1 5 0; 62 | #X restore 313 483 pd counter; 63 | #X obj 70 214 until; 64 | #X obj 70 259 f; 65 | #X obj 100 259 + 1; 66 | #X msg 89 236 0; 67 | #X obj 70 170 t b b f; 68 | #X obj 501 449 loadbang; 69 | #X obj 184 547 spigot; 70 | #X msg 370 529 0; 71 | #X msg 217 490 1; 72 | #X text 181 662 don't store the last value \, cause it will cause a 73 | stack overflow during the next run \, as this value will already be 74 | in the table if stored; 75 | #X obj 262 145 t b f; 76 | #X obj 142 107 r \$0-range; 77 | #X text 43 12 Random number generator that doesn't repeat a number 78 | twice before all numbers in the specified range have been output; 79 | #X text 488 710 Written by Alexandros Drymonitis; 80 | #X obj 370 505 t b b b; 81 | #X obj 356 630 outlet done; 82 | #X obj 100 478 t b f; 83 | #X obj 356 584 spigot; 84 | #X obj 356 607 t b b; 85 | #X msg 420 566 0; 86 | #X msg 389 558 1; 87 | #X connect 0 0 13 0; 88 | #X connect 1 0 9 0; 89 | #X connect 1 1 31 0; 90 | #X connect 2 0 3 0; 91 | #X connect 3 0 7 0; 92 | #X connect 3 1 4 0; 93 | #X connect 4 0 27 1; 94 | #X connect 5 0 10 0; 95 | #X connect 6 0 17 0; 96 | #X connect 7 0 6 1; 97 | #X connect 7 1 8 0; 98 | #X connect 8 0 5 1; 99 | #X connect 9 0 6 0; 100 | #X connect 9 1 5 0; 101 | #X connect 10 0 43 0; 102 | #X connect 10 1 11 0; 103 | #X connect 11 0 33 0; 104 | #X connect 11 1 26 0; 105 | #X connect 12 0 1 0; 106 | #X connect 16 0 12 0; 107 | #X connect 18 0 12 0; 108 | #X connect 19 0 20 0; 109 | #X connect 21 0 37 0; 110 | #X connect 23 0 27 0; 111 | #X connect 24 0 23 1; 112 | #X connect 25 0 2 0; 113 | #X connect 26 0 14 1; 114 | #X connect 26 1 35 0; 115 | #X connect 26 2 41 0; 116 | #X connect 27 0 28 0; 117 | #X connect 28 0 29 0; 118 | #X connect 28 0 25 0; 119 | #X connect 29 0 28 1; 120 | #X connect 30 0 28 1; 121 | #X connect 31 0 23 0; 122 | #X connect 31 1 30 0; 123 | #X connect 31 2 2 1; 124 | #X connect 32 0 0 0; 125 | #X connect 33 0 14 0; 126 | #X connect 34 0 33 1; 127 | #X connect 35 0 33 1; 128 | #X connect 37 0 0 0; 129 | #X connect 37 1 22 0; 130 | #X connect 38 0 12 1; 131 | #X connect 41 0 34 0; 132 | #X connect 41 1 47 0; 133 | #X connect 41 2 0 0; 134 | #X connect 43 0 44 0; 135 | #X connect 43 1 15 0; 136 | #X connect 44 0 45 0; 137 | #X connect 45 0 42 0; 138 | #X connect 45 1 46 0; 139 | #X connect 46 0 44 1; 140 | #X connect 47 0 44 1; 141 | -------------------------------------------------------------------------------- /invert~-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 327 105 1153 891 10; 2 | #X obj 206 207 invert~ 1; 3 | #X obj 26 289 tabwrite~ original; 4 | #X obj 206 289 tabwrite~ inverted; 5 | #X obj 269 231 loadbang; 6 | #X obj 269 253 metro 100; 7 | #N canvas 0 50 450 250 (subpatch) 0; 8 | #X array inverted 512 float 2; 9 | #X coords 0 1 511 0 140 100 1 0 0; 10 | #X restore 206 334 graph; 11 | #N canvas 0 50 450 250 (subpatch) 0; 12 | #X array original 512 float 2; 13 | #X coords 0 1 511 0 140 100 1 0 0; 14 | #X restore 26 334 graph; 15 | #X obj 29 16 cnv 15 440 30 empty empty empty 20 12 0 14 -191765 -66577 16 | 0; 17 | #X obj 149 574 loadbang; 18 | #X obj 149 596 metro 100; 19 | #N canvas 0 50 450 250 (subpatch) 0; 20 | #X array scaled_inverted 512 float 2; 21 | #X coords 0 200 511 0 140 100 1 0 0; 22 | #X restore 256 684 graph; 23 | #N canvas 0 50 450 250 (subpatch) 0; 24 | #X array scaled_original 512 float 2; 25 | #X coords 0 200 511 0 140 100 1 0 0; 26 | #X restore 36 684 graph; 27 | #X obj 36 639 tabwrite~ scaled_original; 28 | #X obj 256 639 tabwrite~ scaled_inverted; 29 | #X obj 256 577 invert~ 1 200; 30 | #X obj 37 533 *~ 200; 31 | #X text 627 39 Arguments:; 32 | #X text 695 63 1st: 1|0 to enable|disable inverting; 33 | #X text 649 150 Inlets:; 34 | #X text 697 175 1st (signal): signal to be inverted; 35 | #X text 698 191 2nd (control): 1|0 to enable|disable inverting (overwrites 36 | first argument); 37 | #X text 649 243 Outlet: inverted signal; 38 | #X text 881 843 Written by Alexandros Drymonitis; 39 | #X obj 344 558 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 40 | 1; 41 | #X text 362 555 second inlet controls inverting; 42 | #X obj 734 606 loadbang; 43 | #X obj 734 628 metro 100; 44 | #N canvas 0 50 450 250 (subpatch) 0; 45 | #X array offset_inverted 512 float 2; 46 | #X coords 0 1 511 0 140 100 1 0 0; 47 | #X restore 841 716 graph; 48 | #N canvas 0 50 450 250 (subpatch) 0; 49 | #X array offset_original 512 float 2; 50 | #X coords 0 1 511 0 140 100 1 0 0; 51 | #X restore 621 716 graph; 52 | #X obj 621 671 tabwrite~ offset_original; 53 | #X obj 841 671 tabwrite~ offset_inverted; 54 | #X text 40 23 [invert~]: vanilla abstraction to invert a unipolar signal 55 | ; 56 | #X obj 27 161 phasor~ 109; 57 | #X obj 37 511 phasor~ 109; 58 | #X obj 622 513 phasor~ 109; 59 | #N canvas 1035 141 482 481 init 0; 60 | #X obj 22 89 s original; 61 | #X msg 22 34 ylabel -10 0 1; 62 | #X obj 38 65 s inverted; 63 | #X msg 22 164 ylabel -10 0 200; 64 | #X obj 22 219 s scaled_original; 65 | #X obj 38 195 s scaled_inverted; 66 | #X obj 215 110 loadbang; 67 | #X obj 38 335 s offset_inverted; 68 | #X obj 22 359 s offset_original; 69 | #X msg 22 304 ylabel -10 0 0.75 1; 70 | #X connect 1 0 0 0; 71 | #X connect 1 0 2 0; 72 | #X connect 3 0 4 0; 73 | #X connect 3 0 5 0; 74 | #X connect 6 0 1 0; 75 | #X connect 6 0 3 0; 76 | #X connect 6 0 9 0; 77 | #X connect 9 0 7 0; 78 | #X connect 9 0 8 0; 79 | #X restore 479 16 pd init; 80 | #X obj 386 207 invert~ 1; 81 | #N canvas 0 50 450 250 (subpatch) 0; 82 | #X array double_inverted 512 float 2; 83 | #X coords 0 1 511 0 140 100 1 0 0; 84 | #X restore 386 334 graph; 85 | #X obj 386 289 tabwrite~ double_inverted; 86 | #X text 622 445 In case the signal has an offset \, the second argument 87 | must be set accordingly to give the correct result (in this case \, 88 | the second argument value is signal_scaling + (signal_offset * 2)) 89 | ; 90 | #X text 37 474 You can also invert unipolar signals that exceeds one 91 | (in which case the range must be set via the second argument; 92 | #X obj 622 535 *~ 0.25; 93 | #X obj 622 557 +~ 0.75; 94 | #X obj 841 609 invert~ 1 1.75; 95 | #X text 34 79 [invert~] will invert a unipolar signal that goes from 96 | 0 to 1 (or from 1 to 0) with one argument only (which can be omitted 97 | and overwritten by the right inlet of the abstraction); 98 | #X text 696 83 2nd (optional): scaling of the signal. this argument 99 | is necessary when the signal to be inverted exceeds 1 or has an offset 100 | ; 101 | #X connect 0 0 2 0; 102 | #X connect 0 0 36 0; 103 | #X connect 3 0 4 0; 104 | #X connect 4 0 2 0; 105 | #X connect 4 0 1 0; 106 | #X connect 4 0 38 0; 107 | #X connect 8 0 9 0; 108 | #X connect 9 0 12 0; 109 | #X connect 9 0 13 0; 110 | #X connect 14 0 13 0; 111 | #X connect 15 0 12 0; 112 | #X connect 15 0 14 0; 113 | #X connect 23 0 14 1; 114 | #X connect 25 0 26 0; 115 | #X connect 26 0 29 0; 116 | #X connect 26 0 30 0; 117 | #X connect 32 0 0 0; 118 | #X connect 32 0 1 0; 119 | #X connect 33 0 15 0; 120 | #X connect 34 0 41 0; 121 | #X connect 36 0 38 0; 122 | #X connect 41 0 42 0; 123 | #X connect 42 0 29 0; 124 | #X connect 42 0 43 0; 125 | #X connect 43 0 30 0; 126 | -------------------------------------------------------------------------------- /int2bin.pd: -------------------------------------------------------------------------------- 1 | #N canvas 757 163 685 667 10; 2 | #X obj 27 237 f; 3 | #X obj 320 66 loadbang; 4 | #X obj 390 154 == 0; 5 | #X obj 351 198 spigot; 6 | #X obj 351 220 t f f; 7 | #X obj 27 554 outlet; 8 | #X obj 383 321 outlet bits; 9 | #X obj 422 221 f; 10 | #X obj 390 176 t f f; 11 | #X obj 390 130 t f f; 12 | #X obj 422 198 sel 0; 13 | #X obj 422 243 t f f; 14 | #X obj 27 133 inlet; 15 | #X obj 390 108 \$2; 16 | #X obj 277 378 * 48; 17 | #X obj 245 356 t f f; 18 | #X obj 27 434 t l l; 19 | #X obj 27 492 spigot; 20 | #X obj 238 451 spigot; 21 | #X obj 245 404 t f f; 22 | #N canvas 1 82 521 375 find_nr_of_bits 0; 23 | #X obj 27 216 >=; 24 | #X obj 27 58 until; 25 | #X obj 27 103 f; 26 | #X obj 57 103 + 1; 27 | #X msg 45 80 1; 28 | #X obj 27 147 swap 2; 29 | #X obj 27 169 pow; 30 | #X obj 27 192 - 1; 31 | #X obj 27 238 sel 1; 32 | #X obj 27 125 t f f; 33 | #X obj 27 11 inlet; 34 | #X obj 27 33 t b b f; 35 | #X obj 124 247 f; 36 | #X obj 27 260 t b b b; 37 | #X obj 124 269 outlet bits; 38 | #X obj 27 282 outlet; 39 | #X connect 0 0 8 0; 40 | #X connect 1 0 2 0; 41 | #X connect 2 0 3 0; 42 | #X connect 2 0 9 0; 43 | #X connect 3 0 2 1; 44 | #X connect 4 0 2 1; 45 | #X connect 5 0 6 0; 46 | #X connect 5 1 6 1; 47 | #X connect 6 0 7 0; 48 | #X connect 7 0 0 0; 49 | #X connect 8 0 13 0; 50 | #X connect 9 0 5 0; 51 | #X connect 9 1 12 1; 52 | #X connect 10 0 11 0; 53 | #X connect 11 0 1 0; 54 | #X connect 11 1 4 0; 55 | #X connect 11 2 0 1; 56 | #X connect 12 0 14 0; 57 | #X connect 13 0 15 0; 58 | #X connect 13 1 12 0; 59 | #X connect 13 2 1 1; 60 | #X restore 27 181 pd find_nr_of_bits; 61 | #X obj 27 156 t f f; 62 | #X obj 277 426 == 0; 63 | #N canvas 216 408 636 449 disassemble_bits 0; 64 | #X obj 101 162 f; 65 | #X obj 23 69 until; 66 | #X obj 164 108 f; 67 | #X obj 166 181 f; 68 | #X obj 166 203 swap 2; 69 | #X obj 166 225 pow; 70 | #X obj 166 247 - 1; 71 | #X obj 101 264 &; 72 | #X obj 101 288 >>; 73 | #X obj 23 91 t b b b b; 74 | #X obj 23 154 f; 75 | #X obj 53 154 + 1; 76 | #X obj 23 176 sel; 77 | #X msg 60 129 1; 78 | #X obj 192 109 - 1; 79 | #X obj 194 182 - 1; 80 | #X obj 182 63 - 1; 81 | #X obj 23 46 t f f b f f; 82 | #X obj 101 338 list prepend; 83 | #X obj 101 360 t l l; 84 | #X obj 26 377 list; 85 | #X obj 23 255 t b b; 86 | #X obj 23 277 t b b; 87 | #X obj 101 310 +; 88 | #X obj 23 24 inlet; 89 | #X obj 26 399 outlet; 90 | #X obj 205 293 inlet list_or_symbol; 91 | #X text 208 261 if we want the binary value as a symbol \, we must 92 | use the ASCII values of the numbers; 93 | #X obj 119 24 inlet; 94 | #X connect 0 0 7 0; 95 | #X connect 1 0 9 0; 96 | #X connect 2 0 8 1; 97 | #X connect 2 0 14 0; 98 | #X connect 3 0 4 0; 99 | #X connect 3 0 15 0; 100 | #X connect 4 0 5 0; 101 | #X connect 4 1 5 1; 102 | #X connect 5 0 6 0; 103 | #X connect 6 0 7 1; 104 | #X connect 7 0 8 0; 105 | #X connect 8 0 23 0; 106 | #X connect 9 0 10 0; 107 | #X connect 9 1 0 0; 108 | #X connect 9 2 3 0; 109 | #X connect 9 3 2 0; 110 | #X connect 10 0 11 0; 111 | #X connect 10 0 12 0; 112 | #X connect 11 0 10 1; 113 | #X connect 12 0 21 0; 114 | #X connect 13 0 10 1; 115 | #X connect 14 0 2 1; 116 | #X connect 15 0 3 1; 117 | #X connect 16 0 2 1; 118 | #X connect 17 0 1 0; 119 | #X connect 17 1 12 1; 120 | #X connect 17 2 13 0; 121 | #X connect 17 3 3 1; 122 | #X connect 17 4 16 0; 123 | #X connect 18 0 19 0; 124 | #X connect 19 0 20 1; 125 | #X connect 19 1 18 1; 126 | #X connect 20 0 25 0; 127 | #X connect 21 0 22 0; 128 | #X connect 21 1 18 1; 129 | #X connect 22 0 20 1; 130 | #X connect 22 1 20 0; 131 | #X connect 23 0 18 0; 132 | #X connect 24 0 17 0; 133 | #X connect 26 0 23 1; 134 | #X connect 28 0 0 1; 135 | #X restore 27 395 pd disassemble_bits; 136 | #X obj 245 260 symbol \$1; 137 | #X obj 245 133 inlet; 138 | #X msg 245 324 0; 139 | #X msg 282 324 1; 140 | #X text 316 380 use ASCII in case of symbol; 141 | #X obj 27 514 list tosymbol; 142 | #X obj 390 85 inlet; 143 | #X text 43 21 convert a float to binary and output it either as a list 144 | or as a symbol; 145 | #X text 279 583 Written by Alexandros Drymonitis with help by Mike 146 | Moser-Booth from Pd's forum; 147 | #X obj 245 282 sel lst sym; 148 | #X connect 0 0 23 0; 149 | #X connect 1 0 13 0; 150 | #X connect 1 0 24 0; 151 | #X connect 2 0 8 0; 152 | #X connect 3 0 4 0; 153 | #X connect 4 0 0 1; 154 | #X connect 4 1 6 0; 155 | #X connect 7 0 11 0; 156 | #X connect 8 0 3 1; 157 | #X connect 8 1 10 0; 158 | #X connect 9 0 2 0; 159 | #X connect 9 1 7 1; 160 | #X connect 10 0 7 0; 161 | #X connect 11 0 0 1; 162 | #X connect 11 1 6 0; 163 | #X connect 12 0 21 0; 164 | #X connect 13 0 9 0; 165 | #X connect 14 0 23 2; 166 | #X connect 15 0 19 0; 167 | #X connect 15 1 14 0; 168 | #X connect 16 0 17 0; 169 | #X connect 16 1 18 0; 170 | #X connect 17 0 29 0; 171 | #X connect 18 0 5 0; 172 | #X connect 19 0 17 1; 173 | #X connect 19 1 22 0; 174 | #X connect 20 0 0 0; 175 | #X connect 20 1 3 0; 176 | #X connect 21 0 20 0; 177 | #X connect 21 1 23 1; 178 | #X connect 22 0 18 1; 179 | #X connect 23 0 16 0; 180 | #X connect 24 0 33 0; 181 | #X connect 25 0 24 0; 182 | #X connect 26 0 15 0; 183 | #X connect 27 0 15 0; 184 | #X connect 29 0 5 0; 185 | #X connect 30 0 13 0; 186 | #X connect 33 0 26 0; 187 | #X connect 33 1 27 0; 188 | #X connect 33 2 26 0; 189 | -------------------------------------------------------------------------------- /vanillaPak.pd: -------------------------------------------------------------------------------- 1 | #N canvas 543 285 719 401 10; 2 | #X obj 79 360 namecanvas \$0-this; 3 | #N canvas 672 153 639 431 \$0-guts 0; 4 | #X obj 51 109 moses 1; 5 | #X obj 80 247 + 1; 6 | #X obj 51 82 i \$1; 7 | #X obj 51 247 i; 8 | #X obj 51 182 t f b; 9 | #X obj 51 205 until; 10 | #X msg 66 225 0; 11 | #X msg 51 134 2; 12 | #X text 83 134 no creation arg gives 2 inlets; 13 | #X obj 309 62 r \$0-start; 14 | #X obj 309 84 \$1; 15 | #X obj 309 153 until; 16 | #X obj 309 197 f; 17 | #X obj 339 197 + 1; 18 | #X msg 324 174 0; 19 | #X obj 309 106 t f b; 20 | #X obj 415 259 moses \$1; 21 | #X obj 415 281 t b f; 22 | #X obj 415 352 s; 23 | #X msg 442 326 symbol \$2-bang\$1; 24 | #X obj 442 304 pack f \$0; 25 | #X obj 534 276 t b; 26 | #X obj 534 298 s \$0-done; 27 | #X obj 51 156 t f f f; 28 | #X obj 309 128 + 2; 29 | #X obj 309 219 moses 1; 30 | #X obj 415 236 - 1; 31 | #X obj 309 241 t b; 32 | #X obj 309 263 s \$0-clear; 33 | #X obj 51 36 spigot 1; 34 | #X obj 51 58 t b b; 35 | #X msg 119 35 0; 36 | #N canvas 95 338 472 374 \$0-create_objects 0; 37 | #X obj 73 246 s \$0-this; 38 | #X obj 46 99 t f f; 39 | #X obj 46 10 inlet; 40 | #X obj 46 224 t b a; 41 | #X obj 46 346 outlet; 42 | #X obj 73 122 + 80; 43 | #X obj 46 77 + 20; 44 | #X obj 46 55 * 140; 45 | #X obj 46 302 f; 46 | #X obj 76 302 + 1; 47 | #X obj 46 324 sel 6; 48 | #X msg 61 278 0; 49 | #X obj 46 32 t f f b; 50 | #X obj 46 151 pack f f f \$0; 51 | #X msg 46 175 obj \$1 10 inlet \, obj \$1 40 route bang float \, obj 52 | \$1 70 s \$4-done \, obj \$2 70 t b f \, obj \$2 150 f \, obj \$2 125 53 | r \$4-bang\$3 \, obj \$1 100 s \$4-start; 54 | #X connect 1 0 13 0; 55 | #X connect 1 1 5 0; 56 | #X connect 2 0 12 0; 57 | #X connect 3 0 8 0; 58 | #X connect 3 1 0 0; 59 | #X connect 5 0 13 1; 60 | #X connect 6 0 1 0; 61 | #X connect 7 0 6 0; 62 | #X connect 8 0 9 0; 63 | #X connect 8 0 10 0; 64 | #X connect 9 0 8 1; 65 | #X connect 10 0 4 0; 66 | #X connect 11 0 8 1; 67 | #X connect 12 0 7 0; 68 | #X connect 12 1 13 2; 69 | #X connect 12 2 11 0; 70 | #X connect 13 0 14 0; 71 | #X connect 14 0 3 0; 72 | #X restore 51 292 pd \$0-create_objects; 73 | #N canvas 511 268 468 443 \$0-make_connections 0; 74 | #X obj 36 181 until; 75 | #X obj 36 204 f; 76 | #X obj 66 204 + 1; 77 | #X obj 51 67 inlet; 78 | #X obj 36 20 inlet; 79 | #X obj 63 274 list prepend; 80 | #X obj 63 296 t l l; 81 | #X obj 36 318 list; 82 | #X obj 36 249 t f f; 83 | #X obj 36 274 sel; 84 | #X obj 36 134 t b f f; 85 | #X msg 36 157 7; 86 | #X msg 36 340 connect \$1 0 \$2 0 \, connect \$2 0 \$3 0 \, connect 87 | \$2 1 \$4 0 \, connect \$4 1 \$5 1 \, connect \$4 0 \$7 0 \, connect 88 | \$6 0 \$5 0 \, connect \$5 0 2 0; 89 | #X obj 36 388 s \$0-this; 90 | #X obj 36 226 + 10; 91 | #X obj 94 151 + 16; 92 | #X obj 36 112 f; 93 | #X obj 51 89 * 7; 94 | #X obj 36 42 t b b; 95 | #X connect 0 0 1 0; 96 | #X connect 1 0 2 0; 97 | #X connect 1 0 14 0; 98 | #X connect 2 0 1 1; 99 | #X connect 3 0 17 0; 100 | #X connect 4 0 18 0; 101 | #X connect 5 0 6 0; 102 | #X connect 6 0 7 1; 103 | #X connect 6 1 5 1; 104 | #X connect 7 0 12 0; 105 | #X connect 8 0 9 0; 106 | #X connect 8 1 5 0; 107 | #X connect 9 0 7 0; 108 | #X connect 10 0 11 0; 109 | #X connect 10 1 1 1; 110 | #X connect 10 2 15 0; 111 | #X connect 11 0 0 0; 112 | #X connect 12 0 13 0; 113 | #X connect 14 0 8 0; 114 | #X connect 15 0 9 1; 115 | #X connect 16 0 10 0; 116 | #X connect 17 0 16 1; 117 | #X connect 18 0 16 0; 118 | #X connect 18 1 5 1; 119 | #X restore 51 315 pd \$0-make_connections; 120 | #X obj 51 269 t f f; 121 | #X obj 51 14 r _initbang; 122 | #X connect 0 0 7 0; 123 | #X connect 0 1 4 0; 124 | #X connect 1 0 3 1; 125 | #X connect 2 0 0 0; 126 | #X connect 3 0 1 0; 127 | #X connect 3 0 34 0; 128 | #X connect 4 0 5 0; 129 | #X connect 4 1 6 0; 130 | #X connect 5 0 3 0; 131 | #X connect 6 0 3 1; 132 | #X connect 7 0 23 0; 133 | #X connect 9 0 10 0; 134 | #X connect 10 0 15 0; 135 | #X connect 11 0 12 0; 136 | #X connect 12 0 13 0; 137 | #X connect 12 0 25 0; 138 | #X connect 13 0 12 1; 139 | #X connect 14 0 12 1; 140 | #X connect 15 0 24 0; 141 | #X connect 15 1 14 0; 142 | #X connect 16 0 17 0; 143 | #X connect 16 1 21 0; 144 | #X connect 17 0 18 0; 145 | #X connect 17 1 20 0; 146 | #X connect 19 0 18 1; 147 | #X connect 20 0 19 0; 148 | #X connect 21 0 22 0; 149 | #X connect 23 0 4 0; 150 | #X connect 23 1 16 1; 151 | #X connect 23 2 10 1; 152 | #X connect 24 0 11 0; 153 | #X connect 25 0 27 0; 154 | #X connect 25 1 26 0; 155 | #X connect 26 0 16 0; 156 | #X connect 27 0 28 0; 157 | #X connect 29 0 30 0; 158 | #X connect 30 0 2 0; 159 | #X connect 30 1 31 0; 160 | #X connect 31 0 29 1; 161 | #X connect 32 0 33 0; 162 | #X connect 34 0 32 0; 163 | #X connect 34 1 33 1; 164 | #X connect 35 0 29 0; 165 | #X restore 200 360 pd \$0-guts; 166 | #X obj 100 247 list prepend; 167 | #X obj 100 269 t l l; 168 | #X obj 79 291 list; 169 | #X obj 79 313 list trim; 170 | #X obj 79 335 outlet; 171 | #X obj 79 224 r \$0-done; 172 | #X obj 169 224 r \$0-clear; 173 | #X text 287 257 Pd-vanilla list abstraction with hot inlets only. Inspired 174 | by [vanillaBondo] by Matt Davey. Made by Alexandros Drymonitis; 175 | #X connect 2 0 3 0; 176 | #X connect 3 0 4 1; 177 | #X connect 3 1 2 1; 178 | #X connect 4 0 5 0; 179 | #X connect 5 0 6 0; 180 | #X connect 7 0 4 0; 181 | #X connect 8 0 2 1; 182 | _initbang bang; 183 | -------------------------------------------------------------------------------- /loop-help.pd: -------------------------------------------------------------------------------- 1 | #N canvas 186 94 954 559 10; 2 | #X msg 24 117 bang; 3 | #X obj 81 202 print count; 4 | #X floatatom 43 142 5 0 0 0 - - -, f 5; 5 | #X floatatom 62 160 5 0 0 0 - - -, f 5; 6 | #X obj 19 16 cnv 15 400 40 empty empty empty 20 12 0 14 -191765 -66577 7 | 0; 8 | #X msg 24 273 bang; 9 | #X obj 57 318 print count; 10 | #X text 68 280 if only one argument is provided \, it will set the 11 | number of iterations \, and counting will start from zero; 12 | #X msg 25 421 bang; 13 | #X obj 82 466 print count; 14 | #X text 92 441 backwards counting is possible; 15 | #X text 98 158 this will produce a loop which counts from ten up to 16 | (including) twenty; 17 | #X text 512 20 Arguments:; 18 | #X text 558 68 2nd: end value; 19 | #X text 558 85 3rd: a non-zero value \, in case the end value is zero 20 | \, otherwise it won't work properly; 21 | #X text 553 235 2nd: start value; 22 | #X text 553 255 3rd: end value (it will be included in the counter) 23 | ; 24 | #X text 554 274 4th: receives a bang to stop the loop; 25 | #X text 521 323 Outlets:; 26 | #N canvas 228 59 1061 495 more_examples 0; 27 | #X msg 62 28 bang; 28 | #X obj 113 73 print count; 29 | #X msg 62 158 bang; 30 | #X obj 125 203 print count; 31 | #X text 135 157 if you want your end value to be zero \, you have to 32 | use a third \, non zero argument \, in order for the abstraction to 33 | work properly; 34 | #X obj 83 325 print count; 35 | #X msg 62 280 5; 36 | #X text 129 48 even negative numbers are valid (both directions); 37 | #X text 102 283 you cal also create a [loop] with no arguments and 38 | send a value to the leftmost inlet to create a loop; 39 | #X msg 569 36 bang; 40 | #X obj 590 80 t f f; 41 | #X obj 617 102 sel 10; 42 | #X obj 590 125 print count; 43 | #X obj 62 180 loop -6 0 1; 44 | #X obj 62 50 loop 5 -2; 45 | #X obj 62 302 loop; 46 | #X obj 569 58 loop; 47 | #X text 635 208 of course \, you can send a bang to the rightmost inlet 48 | even when the number of iterations or the end value is set; 49 | #X msg 570 199 bang; 50 | #X obj 621 294 print count; 51 | #X obj 570 221 loop 0 10; 52 | #X obj 621 245 t f f; 53 | #X obj 648 269 sel 5; 54 | #X obj 87 94 print bangs; 55 | #X obj 62 115 print done; 56 | #X obj 93 223 print bangs; 57 | #X obj 62 243 print done; 58 | #X obj 72 348 print bangs; 59 | #X obj 62 369 print done; 60 | #X obj 595 316 print bangs; 61 | #X obj 570 338 print done; 62 | #X msg 571 373 10 23; 63 | #X obj 571 395 loop; 64 | #X obj 592 416 print count; 65 | #X obj 581 438 print bangs; 66 | #X obj 571 462 print done; 67 | #X text 620 374 finally \, you can send a list of the start and end 68 | value to the left-most inlet to set these values and start the loop 69 | ; 70 | #X obj 579 147 print bangs; 71 | #X text 616 19 or you can send a bang to a [loop] with no arguments 72 | \, but you have to make sure you send a bang to its rightmost inlet 73 | at some point \, otherwise Pd will crash. this way the right-most outlet 74 | won't output anything; 75 | #X obj 569 168 print done; 76 | #X connect 0 0 14 0; 77 | #X connect 2 0 13 0; 78 | #X connect 6 0 15 0; 79 | #X connect 9 0 16 0; 80 | #X connect 10 0 12 0; 81 | #X connect 10 1 11 0; 82 | #X connect 11 0 16 3; 83 | #X connect 13 0 26 0; 84 | #X connect 13 1 25 0; 85 | #X connect 13 2 3 0; 86 | #X connect 14 0 24 0; 87 | #X connect 14 1 23 0; 88 | #X connect 14 2 1 0; 89 | #X connect 15 0 28 0; 90 | #X connect 15 1 27 0; 91 | #X connect 15 2 5 0; 92 | #X connect 16 0 39 0; 93 | #X connect 16 1 37 0; 94 | #X connect 16 2 10 0; 95 | #X connect 18 0 20 0; 96 | #X connect 20 0 30 0; 97 | #X connect 20 1 29 0; 98 | #X connect 20 2 21 0; 99 | #X connect 21 0 19 0; 100 | #X connect 21 1 22 0; 101 | #X connect 22 0 20 3; 102 | #X connect 31 0 32 0; 103 | #X connect 32 0 35 0; 104 | #X connect 32 1 34 0; 105 | #X connect 32 2 33 0; 106 | #X restore 525 410 pd more_examples; 107 | #X obj 24 179 loop 10 20; 108 | #X obj 24 295 loop 5; 109 | #X obj 25 443 loop 20 13; 110 | #X text 31 26 [loop]: a vanilla loop abstraction based on [until]; 111 | #X text 21 61 [loop] is a "sophisticated" loop which packs [until] 112 | and a counter in one abstraction. It can be initiated with or without 113 | arguments; 114 | #X text 24 379 a bang is output from the left inlet after the loop 115 | has ended; 116 | #X text 512 141 Inlets:; 117 | #X text 556 39 1st: start value (if only one argument is provided \, 118 | it will set the number of iterations); 119 | #X text 527 487 made by Alexandros Drymonitis; 120 | #X obj 52 222 print bangs; 121 | #X obj 40 339 print bangs; 122 | #X obj 53 486 print bangs; 123 | #X obj 25 507 print done; 124 | #X obj 24 360 print done; 125 | #X obj 24 242 print done; 126 | #X text 553 163 1st: float \, bang \, list. A float will cause the 127 | number of iterations. A bang will start a loop whether iterations are 128 | set or not \, if not \, make sure to control the end by sending a bang 129 | to the right-most inlet. A list will set the start and end value and 130 | start the loop.; 131 | #X text 550 347 1st: outputs a bang when the loop has finished; 132 | #X text 551 380 3rd: outputs the counter values; 133 | #X text 551 363 2nd: outputs a bang after every value of the counter 134 | ; 135 | #X connect 0 0 20 0; 136 | #X connect 2 0 20 1; 137 | #X connect 3 0 20 2; 138 | #X connect 5 0 21 0; 139 | #X connect 8 0 22 0; 140 | #X connect 20 0 34 0; 141 | #X connect 20 1 29 0; 142 | #X connect 20 2 1 0; 143 | #X connect 21 0 33 0; 144 | #X connect 21 1 30 0; 145 | #X connect 21 2 6 0; 146 | #X connect 22 0 32 0; 147 | #X connect 22 1 31 0; 148 | #X connect 22 2 9 0; 149 | -------------------------------------------------------------------------------- /extended_abs/extendedJoin.pd: -------------------------------------------------------------------------------- 1 | #N canvas 107 327 719 401 10; 2 | #X obj 49 360 namecanvas \$0-this; 3 | #N canvas 330 108 633 394 \$0-guts 0; 4 | #X obj 51 89 moses 1; 5 | #X obj 51 62 i \$1; 6 | #X msg 51 114 2; 7 | #X text 83 114 no creation arg gives 2 inlets; 8 | #X obj 309 42 r \$0-start; 9 | #X obj 309 64 \$1; 10 | #X obj 309 133 until; 11 | #X obj 309 177 f; 12 | #X obj 339 177 + 1; 13 | #X msg 324 154 0; 14 | #X obj 309 86 t f b; 15 | #X obj 415 239 moses \$1; 16 | #X obj 415 261 t b f; 17 | #X obj 415 332 s; 18 | #X msg 442 306 symbol \$2-bang\$1; 19 | #X obj 442 284 pack f \$0; 20 | #X obj 534 256 t b; 21 | #X obj 534 278 s \$0-done; 22 | #X obj 51 136 t f f f; 23 | #X obj 309 108 + 2; 24 | #X obj 309 199 moses 1; 25 | #X obj 415 216 - 1; 26 | #X obj 309 221 t b; 27 | #X obj 309 243 s \$0-clear; 28 | #N canvas 352 117 461 379 \$0-create_inlet_and_subpatch 0; 29 | #X obj 81 103 + 1; 30 | #X obj 52 103 i; 31 | #X obj 52 38 t f b; 32 | #X obj 52 61 until; 33 | #X msg 67 81 0; 34 | #X obj 52 125 t f f f; 35 | #X obj 71 243 s \$0-this; 36 | #X obj 71 173 + 20; 37 | #X obj 52 16 inlet; 38 | #X obj 52 266 outlet done; 39 | #X obj 71 197 pack f f \$0; 40 | #X msg 71 221 obj \$1 10 inlet \, obj \$1 50 pd \$3-element\$2; 41 | #X obj 71 151 * 120; 42 | #X connect 0 0 1 1; 43 | #X connect 1 0 0 0; 44 | #X connect 1 0 5 0; 45 | #X connect 2 0 3 0; 46 | #X connect 2 1 4 0; 47 | #X connect 3 0 1 0; 48 | #X connect 4 0 1 1; 49 | #X connect 5 0 9 0; 50 | #X connect 5 1 12 0; 51 | #X connect 5 2 10 1; 52 | #X connect 7 0 10 0; 53 | #X connect 8 0 2 0; 54 | #X connect 10 0 11 0; 55 | #X connect 11 0 6 0; 56 | #X connect 12 0 7 0; 57 | #X restore 51 162 pd \$0-create_inlet_and_subpatch; 58 | #N canvas 607 27 489 725 \$0-fill_subpatch 0; 59 | #X obj 30 12 inlet; 60 | #X obj 49 78 t f f f; 61 | #X msg 49 56 100; 62 | #X obj 49 160 pack f f f f \$0; 63 | #X obj 68 102 + 50; 64 | #X obj 102 102 + 100; 65 | #X msg 49 182 obj \$1 50 inlet \, obj \$1 80 route bang float symbol 66 | \, obj \$2 120 t b b f \, obj \$3 120 t b b s \, obj \$2 150 s \$5-start 67 | \, obj \$1 180 r \$5-bang\$4 \, msg \$2 210 0 \, msg \$3 210 1 \, obj 68 | \$1 250 f \, obj \$2 250 f \, obj \$3 250 symbol \, obj \$1 280 sel 69 | 0 1 \, obj \$2 320 outlet; 70 | #X obj 141 257 pack f \$0; 71 | #X msg 141 279 symbol pd-\$2-element\$1; 72 | #X obj 114 51 t f f; 73 | #X obj 49 318 s; 74 | #X obj 30 34 t f b f; 75 | #X msg 49 363 13; 76 | #X obj 49 385 until; 77 | #X obj 49 433 f; 78 | #X obj 79 433 + 1; 79 | #X text 81 364 the objects in the subpatch are 13; 80 | #X obj 49 455 t f f; 81 | #X obj 96 494 t l l; 82 | #X obj 96 472 list prepend; 83 | #X obj 49 511 list; 84 | #X obj 141 301 t s s; 85 | #X obj 49 633 s; 86 | #X obj 30 678 outlet done; 87 | #X obj 30 341 t f b b; 88 | #X msg 64 411 0; 89 | #X obj 49 477 sel 12; 90 | #X obj 30 654 t f b; 91 | #X msg 112 671 vis 0; 92 | #X msg 49 533 connect \$1 0 \$2 0 \, connect \$2 1 \$3 0 \, connect 93 | \$2 2 \$4 0 \, connect \$3 0 \$5 0 \, connect \$4 0 \$5 0 \, connect 94 | \$2 0 \$5 0 \, connect \$3 1 \$7 0 \, connect \$4 1 \$8 0 \, connect 95 | \$7 0 \$9 1 \, connect \$8 0 \$9 1 \, connect \$6 0 \$9 0 \, connect 96 | \$9 0 \$12 0 \, connect \$3 2 \$10 1 \, connect \$4 2 \$11 1 \, connect 97 | \$12 0 \$10 0 \, connect \$12 1 \$11 0 \, connect \$10 0 \$13 0 \, 98 | connect \$11 0 \$13 0; 99 | #X connect 0 0 11 0; 100 | #X connect 1 0 3 0; 101 | #X connect 1 1 4 0; 102 | #X connect 1 2 5 0; 103 | #X connect 2 0 1 0; 104 | #X connect 3 0 6 0; 105 | #X connect 4 0 3 1; 106 | #X connect 5 0 3 2; 107 | #X connect 6 0 10 0; 108 | #X connect 7 0 8 0; 109 | #X connect 8 0 21 0; 110 | #X connect 9 0 3 3; 111 | #X connect 9 1 7 0; 112 | #X connect 11 0 24 0; 113 | #X connect 11 1 2 0; 114 | #X connect 11 2 9 0; 115 | #X connect 12 0 13 0; 116 | #X connect 13 0 14 0; 117 | #X connect 14 0 15 0; 118 | #X connect 14 0 17 0; 119 | #X connect 15 0 14 1; 120 | #X connect 17 0 26 0; 121 | #X connect 17 1 19 0; 122 | #X connect 18 0 20 1; 123 | #X connect 18 1 19 1; 124 | #X connect 19 0 18 0; 125 | #X connect 20 0 29 0; 126 | #X connect 21 0 10 1; 127 | #X connect 21 1 22 1; 128 | #X connect 24 0 27 0; 129 | #X connect 24 1 12 0; 130 | #X connect 24 2 25 0; 131 | #X connect 25 0 14 1; 132 | #X connect 26 0 20 0; 133 | #X connect 27 0 23 0; 134 | #X connect 27 1 28 0; 135 | #X connect 28 0 22 0; 136 | #X connect 29 0 22 0; 137 | #X restore 51 183 pd \$0-fill_subpatch; 138 | #N canvas 0 22 569 264 \$0-connect_inlet_and_subpatch 0; 139 | #X obj 70 107 t f f; 140 | #X obj 97 130 + 1; 141 | #X obj 70 152 pack; 142 | #X obj 70 197 s \$0-this; 143 | #X obj 70 18 inlet; 144 | #X obj 70 63 * 2; 145 | #X obj 70 40 + 1; 146 | #X obj 70 85 + 8; 147 | #X text 100 58 we need to connet 10 with 11 and 11 with 2 \, then 12 148 | with 13 and 13 with 2 etc. hence these additions and multiplication 149 | ; 150 | #X msg 70 175 connect \$1 0 \$2 0 \, connect \$2 0 2 0; 151 | #X connect 0 0 2 0; 152 | #X connect 0 1 1 0; 153 | #X connect 1 0 2 1; 154 | #X connect 2 0 9 0; 155 | #X connect 4 0 6 0; 156 | #X connect 5 0 7 0; 157 | #X connect 6 0 5 0; 158 | #X connect 7 0 0 0; 159 | #X connect 9 0 3 0; 160 | #X restore 51 205 pd \$0-connect_inlet_and_subpatch; 161 | #X obj 51 39 initbang; 162 | #X connect 0 0 2 0; 163 | #X connect 0 1 24 0; 164 | #X connect 1 0 0 0; 165 | #X connect 2 0 18 0; 166 | #X connect 4 0 5 0; 167 | #X connect 5 0 10 0; 168 | #X connect 6 0 7 0; 169 | #X connect 7 0 8 0; 170 | #X connect 7 0 20 0; 171 | #X connect 8 0 7 1; 172 | #X connect 9 0 7 1; 173 | #X connect 10 0 19 0; 174 | #X connect 10 1 9 0; 175 | #X connect 11 0 12 0; 176 | #X connect 11 1 16 0; 177 | #X connect 12 0 13 0; 178 | #X connect 12 1 15 0; 179 | #X connect 14 0 13 1; 180 | #X connect 15 0 14 0; 181 | #X connect 16 0 17 0; 182 | #X connect 18 0 24 0; 183 | #X connect 18 1 11 1; 184 | #X connect 18 2 5 1; 185 | #X connect 19 0 6 0; 186 | #X connect 20 0 22 0; 187 | #X connect 20 1 21 0; 188 | #X connect 21 0 11 0; 189 | #X connect 22 0 23 0; 190 | #X connect 24 0 25 0; 191 | #X connect 25 0 26 0; 192 | #X connect 27 0 1 0; 193 | #X restore 170 360 pd \$0-guts; 194 | #X obj 70 247 list prepend; 195 | #X obj 70 269 t l l; 196 | #X obj 49 291 list; 197 | #X obj 49 313 list trim; 198 | #X obj 49 335 outlet; 199 | #X obj 49 224 r \$0-done; 200 | #X obj 139 224 r \$0-clear; 201 | #X text 287 257 Pd-vanilla list abstraction with hot inlets only. Inspired 202 | by [vanillaBondo] by Matt Davey. Made by Alexandros Drymonitis; 203 | #X connect 2 0 3 0; 204 | #X connect 3 0 4 1; 205 | #X connect 3 1 2 1; 206 | #X connect 4 0 5 0; 207 | #X connect 5 0 6 0; 208 | #X connect 7 0 4 0; 209 | #X connect 8 0 2 1; 210 | -------------------------------------------------------------------------------- /vanillaJoin.pd: -------------------------------------------------------------------------------- 1 | #N canvas 107 327 719 401 10; 2 | #X obj 49 360 namecanvas \$0-this; 3 | #N canvas 330 108 633 394 \$0-guts 0; 4 | #X obj 51 133 moses 1; 5 | #X obj 51 106 i \$1; 6 | #X msg 51 158 2; 7 | #X text 83 158 no creation arg gives 2 inlets; 8 | #X obj 309 42 r \$0-start; 9 | #X obj 309 64 \$1; 10 | #X obj 309 133 until; 11 | #X obj 309 177 f; 12 | #X obj 339 177 + 1; 13 | #X msg 324 154 0; 14 | #X obj 309 86 t f b; 15 | #X obj 415 239 moses \$1; 16 | #X obj 415 261 t b f; 17 | #X obj 415 332 s; 18 | #X msg 442 306 symbol \$2-bang\$1; 19 | #X obj 442 284 pack f \$0; 20 | #X obj 534 256 t b; 21 | #X obj 534 278 s \$0-done; 22 | #X obj 51 180 t f f f; 23 | #X obj 309 108 + 2; 24 | #X obj 309 199 moses 1; 25 | #X obj 415 216 - 1; 26 | #X obj 309 221 t b; 27 | #X obj 309 243 s \$0-clear; 28 | #N canvas 352 117 461 379 \$0-create_inlet_and_subpatch 0; 29 | #X obj 81 103 + 1; 30 | #X obj 52 103 i; 31 | #X obj 52 38 t f b; 32 | #X obj 52 61 until; 33 | #X msg 67 81 0; 34 | #X obj 52 125 t f f f; 35 | #X obj 71 243 s \$0-this; 36 | #X obj 71 173 + 20; 37 | #X obj 52 16 inlet; 38 | #X obj 52 266 outlet done; 39 | #X obj 71 197 pack f f \$0; 40 | #X msg 71 221 obj \$1 10 inlet \, obj \$1 50 pd \$3-element\$2; 41 | #X obj 71 151 * 120; 42 | #X connect 0 0 1 1; 43 | #X connect 1 0 0 0; 44 | #X connect 1 0 5 0; 45 | #X connect 2 0 3 0; 46 | #X connect 2 1 4 0; 47 | #X connect 3 0 1 0; 48 | #X connect 4 0 1 1; 49 | #X connect 5 0 9 0; 50 | #X connect 5 1 12 0; 51 | #X connect 5 2 10 1; 52 | #X connect 7 0 10 0; 53 | #X connect 8 0 2 0; 54 | #X connect 10 0 11 0; 55 | #X connect 11 0 6 0; 56 | #X connect 12 0 7 0; 57 | #X restore 51 206 pd \$0-create_inlet_and_subpatch; 58 | #N canvas 607 27 489 725 \$0-fill_subpatch 0; 59 | #X obj 30 12 inlet; 60 | #X obj 49 78 t f f f; 61 | #X msg 49 56 100; 62 | #X obj 49 160 pack f f f f \$0; 63 | #X obj 68 102 + 50; 64 | #X obj 102 102 + 100; 65 | #X msg 49 182 obj \$1 50 inlet \, obj \$1 80 route bang float symbol 66 | \, obj \$2 120 t b b f \, obj \$3 120 t b b s \, obj \$2 150 s \$5-start 67 | \, obj \$1 180 r \$5-bang\$4 \, msg \$2 210 0 \, msg \$3 210 1 \, obj 68 | \$1 250 f \, obj \$2 250 f \, obj \$3 250 symbol \, obj \$1 280 sel 69 | 0 1 \, obj \$2 320 outlet; 70 | #X obj 141 257 pack f \$0; 71 | #X msg 141 279 symbol pd-\$2-element\$1; 72 | #X obj 114 51 t f f; 73 | #X obj 49 318 s; 74 | #X obj 30 34 t f b f; 75 | #X msg 49 363 13; 76 | #X obj 49 385 until; 77 | #X obj 49 433 f; 78 | #X obj 79 433 + 1; 79 | #X text 81 364 the objects in the subpatch are 13; 80 | #X obj 49 455 t f f; 81 | #X obj 96 494 t l l; 82 | #X obj 96 472 list prepend; 83 | #X obj 49 511 list; 84 | #X obj 141 301 t s s; 85 | #X obj 49 633 s; 86 | #X obj 30 678 outlet done; 87 | #X obj 30 341 t f b b; 88 | #X msg 64 411 0; 89 | #X obj 49 477 sel 12; 90 | #X obj 30 654 t f b; 91 | #X msg 112 671 vis 0; 92 | #X msg 49 533 connect \$1 0 \$2 0 \, connect \$2 1 \$3 0 \, connect 93 | \$2 2 \$4 0 \, connect \$3 0 \$5 0 \, connect \$4 0 \$5 0 \, connect 94 | \$2 0 \$5 0 \, connect \$3 1 \$7 0 \, connect \$4 1 \$8 0 \, connect 95 | \$7 0 \$9 1 \, connect \$8 0 \$9 1 \, connect \$6 0 \$9 0 \, connect 96 | \$9 0 \$12 0 \, connect \$3 2 \$10 1 \, connect \$4 2 \$11 1 \, connect 97 | \$12 0 \$10 0 \, connect \$12 1 \$11 0 \, connect \$10 0 \$13 0 \, 98 | connect \$11 0 \$13 0; 99 | #X connect 0 0 11 0; 100 | #X connect 1 0 3 0; 101 | #X connect 1 1 4 0; 102 | #X connect 1 2 5 0; 103 | #X connect 2 0 1 0; 104 | #X connect 3 0 6 0; 105 | #X connect 4 0 3 1; 106 | #X connect 5 0 3 2; 107 | #X connect 6 0 10 0; 108 | #X connect 7 0 8 0; 109 | #X connect 8 0 21 0; 110 | #X connect 9 0 3 3; 111 | #X connect 9 1 7 0; 112 | #X connect 11 0 24 0; 113 | #X connect 11 1 2 0; 114 | #X connect 11 2 9 0; 115 | #X connect 12 0 13 0; 116 | #X connect 13 0 14 0; 117 | #X connect 14 0 15 0; 118 | #X connect 14 0 17 0; 119 | #X connect 15 0 14 1; 120 | #X connect 17 0 26 0; 121 | #X connect 17 1 19 0; 122 | #X connect 18 0 20 1; 123 | #X connect 18 1 19 1; 124 | #X connect 19 0 18 0; 125 | #X connect 20 0 29 0; 126 | #X connect 21 0 10 1; 127 | #X connect 21 1 22 1; 128 | #X connect 24 0 27 0; 129 | #X connect 24 1 12 0; 130 | #X connect 24 2 25 0; 131 | #X connect 25 0 14 1; 132 | #X connect 26 0 20 0; 133 | #X connect 27 0 23 0; 134 | #X connect 27 1 28 0; 135 | #X connect 28 0 22 0; 136 | #X connect 29 0 22 0; 137 | #X restore 51 227 pd \$0-fill_subpatch; 138 | #N canvas 0 22 569 264 \$0-connect_inlet_and_subpatch 0; 139 | #X obj 70 107 t f f; 140 | #X obj 97 130 + 1; 141 | #X obj 70 152 pack; 142 | #X obj 70 197 s \$0-this; 143 | #X obj 70 18 inlet; 144 | #X obj 70 63 * 2; 145 | #X obj 70 40 + 1; 146 | #X obj 70 85 + 8; 147 | #X text 100 58 we need to connet 10 with 11 and 11 with 2 \, then 12 148 | with 13 and 13 with 2 etc. hence these additions and multiplication 149 | ; 150 | #X msg 70 175 connect \$1 0 \$2 0 \, connect \$2 0 2 0; 151 | #X connect 0 0 2 0; 152 | #X connect 0 1 1 0; 153 | #X connect 1 0 2 1; 154 | #X connect 2 0 9 0; 155 | #X connect 4 0 6 0; 156 | #X connect 5 0 7 0; 157 | #X connect 6 0 5 0; 158 | #X connect 7 0 0 0; 159 | #X connect 9 0 3 0; 160 | #X restore 51 249 pd \$0-connect_inlet_and_subpatch; 161 | #X obj 51 39 r _initbang; 162 | #X obj 51 61 spigot 1; 163 | #X obj 51 83 t b b; 164 | #X msg 111 61 0; 165 | #X connect 0 0 2 0; 166 | #X connect 0 1 24 0; 167 | #X connect 1 0 0 0; 168 | #X connect 2 0 18 0; 169 | #X connect 4 0 5 0; 170 | #X connect 5 0 10 0; 171 | #X connect 6 0 7 0; 172 | #X connect 7 0 8 0; 173 | #X connect 7 0 20 0; 174 | #X connect 8 0 7 1; 175 | #X connect 9 0 7 1; 176 | #X connect 10 0 19 0; 177 | #X connect 10 1 9 0; 178 | #X connect 11 0 12 0; 179 | #X connect 11 1 16 0; 180 | #X connect 12 0 13 0; 181 | #X connect 12 1 15 0; 182 | #X connect 14 0 13 1; 183 | #X connect 15 0 14 0; 184 | #X connect 16 0 17 0; 185 | #X connect 18 0 24 0; 186 | #X connect 18 1 11 1; 187 | #X connect 18 2 5 1; 188 | #X connect 19 0 6 0; 189 | #X connect 20 0 22 0; 190 | #X connect 20 1 21 0; 191 | #X connect 21 0 11 0; 192 | #X connect 22 0 23 0; 193 | #X connect 24 0 25 0; 194 | #X connect 25 0 26 0; 195 | #X connect 27 0 28 0; 196 | #X connect 28 0 29 0; 197 | #X connect 29 0 1 0; 198 | #X connect 29 1 30 0; 199 | #X connect 30 0 28 1; 200 | #X restore 170 360 pd \$0-guts; 201 | #X obj 70 247 list prepend; 202 | #X obj 70 269 t l l; 203 | #X obj 49 291 list; 204 | #X obj 49 313 list trim; 205 | #X obj 49 335 outlet; 206 | #X obj 49 224 r \$0-done; 207 | #X obj 139 224 r \$0-clear; 208 | #X text 287 257 Pd-vanilla list abstraction with hot inlets only. Inspired 209 | by [vanillaBondo] by Matt Davey. Made by Alexandros Drymonitis; 210 | #X connect 2 0 3 0; 211 | #X connect 3 0 4 1; 212 | #X connect 3 1 2 1; 213 | #X connect 4 0 5 0; 214 | #X connect 5 0 6 0; 215 | #X connect 7 0 4 0; 216 | #X connect 8 0 2 1; 217 | _initbang bang; 218 | -------------------------------------------------------------------------------- /loop.pd: -------------------------------------------------------------------------------- 1 | #N canvas 669 108 338 543 10; 2 | #X obj 20 238 t f b; 3 | #X obj 20 303 until; 4 | #X obj 20 386 f; 5 | #X obj 51 386 + 1; 6 | #X obj 20 461 sel, f 12; 7 | #X obj 141 426 outlet counter; 8 | #X obj 35 364 f; 9 | #X obj 54 136 inlet start_val; 10 | #X obj 89 160 inlet end_val; 11 | #X obj 189 285 inlet stop; 12 | #N canvas 1189 92 462 433 start-end 0; 13 | #X obj 160 329 f; 14 | #X obj 322 285 outlet to_sel; 15 | #X obj 227 166 t b f; 16 | #X obj 187 119 inlet start_val; 17 | #X obj 227 141 inlet end_val; 18 | #X obj 160 356 outlet num_of_iterations; 19 | #N canvas 1045 785 749 377 define_start_and_end 0; 20 | #X obj 57 306 outlet num_of_iterations; 21 | #X obj 364 277 outlet to_sel; 22 | #X obj 152 151 ||; 23 | #X obj 364 60 inlet input_val; 24 | #X obj 364 107 spigot; 25 | #X text 364 26 if no args are provided; 26 | #X text 365 38 send incoming value to [sel]; 27 | #X obj 57 87 inlet start_val; 28 | #X obj 241 60 inlet end_val; 29 | #X obj 397 85 r \$0-no_args; 30 | #X msg 268 133 1; 31 | #X obj 57 109 t f b; 32 | #X msg 152 127 1; 33 | #N canvas 176 506 507 314 get_diff_and_dir 0; 34 | #X obj 30 53 t f f; 35 | #X obj 184 59 t f f; 36 | #X obj 30 148 -; 37 | #X obj 30 234 outlet diff; 38 | #X obj 196 103 f; 39 | #X obj 57 77 <; 40 | #X obj 243 117 * 2; 41 | #X obj 243 139 - 1; 42 | #X text 269 126 make 0 or 1 \, -1 or 1; 43 | #X obj 30 27 inlet start_val; 44 | #X obj 184 27 inlet end_val; 45 | #X obj 57 99 t b f; 46 | #X obj 30 173 abs; 47 | #X obj 243 161 outlet dir; 48 | #X obj 30 204 +; 49 | #X obj 108 163 r \$0-num_args; 50 | #X obj 108 186 > 1; 51 | #X text 109 207 if we define both start and end \, then we want to include the end \, so we need to loop one more iteration; 52 | #X connect 0 0 2 0; 53 | #X connect 0 1 5 0; 54 | #X connect 1 0 5 1; 55 | #X connect 1 1 4 1; 56 | #X connect 2 0 12 0; 57 | #X connect 4 0 2 1; 58 | #X connect 5 0 11 0; 59 | #X connect 6 0 7 0; 60 | #X connect 7 0 13 0; 61 | #X connect 9 0 0 0; 62 | #X connect 10 0 1 0; 63 | #X connect 11 0 4 0; 64 | #X connect 11 1 6 0; 65 | #X connect 12 0 14 0; 66 | #X connect 14 0 3 0; 67 | #X connect 15 0 16 0; 68 | #X connect 16 0 14 1; 69 | #X restore 57 255 pd get_diff_and_dir; 70 | #X obj 168 279 outlet dir; 71 | #X text 265 171 send to [pd protect_from_crash] which is in the parent patch of this subpatch to define whether a bang will go to [f ] or straight to [until]; 72 | #X obj 241 82 t f b; 73 | #X obj 241 237 t f f; 74 | #X obj 84 225 s \$0-start_val; 75 | #X obj 405 214 r \$0-num_args; 76 | #X text 437 238 subtract one only if we have one argument; 77 | #X obj 152 175 s \$0-permit_bang; 78 | #X obj 405 237 <= 1; 79 | #X obj 364 255 - 1; 80 | #X obj 57 132 t f f; 81 | #X connect 2 0 21 0; 82 | #X connect 3 0 4 0; 83 | #X connect 4 0 23 0; 84 | #X connect 7 0 11 0; 85 | #X connect 8 0 16 0; 86 | #X connect 9 0 4 1; 87 | #X connect 10 0 2 1; 88 | #X connect 11 0 24 0; 89 | #X connect 11 1 12 0; 90 | #X connect 12 0 2 0; 91 | #X connect 13 0 0 0; 92 | #X connect 13 1 14 0; 93 | #X connect 16 0 17 0; 94 | #X connect 16 1 10 0; 95 | #X connect 17 0 13 1; 96 | #X connect 17 1 23 0; 97 | #X connect 19 0 22 0; 98 | #X connect 22 0 23 1; 99 | #X connect 23 0 1 0; 100 | #X connect 24 0 13 0; 101 | #X connect 24 1 18 0; 102 | #X restore 187 261 pd define_start_and_end; 103 | #X obj 22 25 inlet bang_or_val; 104 | #X obj 160 93 t f f, f 27; 105 | #X obj 22 51 route bang list float; 106 | #X obj 63 137 t b f; 107 | #X obj 187 228 f; 108 | #X obj 63 115 unpack f f; 109 | #X obj 254 285 outlet dir; 110 | #N canvas 380 253 352 257 protect_from_crash 0; 111 | #X obj 30 36 inlet; 112 | #X obj 30 58 t b b; 113 | #X obj 30 116 spigot; 114 | #X obj 151 116 spigot; 115 | #X obj 157 58 t f f; 116 | #X obj 63 90 == 0; 117 | #X obj 151 138 outlet to_f; 118 | #X msg 30 169 a bang without number of iterations will crash Pd; 119 | #X obj 30 192 print loop; 120 | #X obj 157 36 r \$0-permit_bang; 121 | #X connect 0 0 1 0; 122 | #X connect 1 0 2 0; 123 | #X connect 1 1 3 0; 124 | #X connect 2 0 7 0; 125 | #X connect 3 0 6 0; 126 | #X connect 4 0 5 0; 127 | #X connect 4 1 3 1; 128 | #X connect 5 0 2 1; 129 | #X connect 7 0 8 0; 130 | #X connect 9 0 4 0; 131 | #X restore 22 261 pd protect_from_crash; 132 | #X obj 328 191 r \$0-end_val_arg; 133 | #X obj 195 191 r \$0-start_val_arg; 134 | #X connect 0 0 5 0; 135 | #X connect 2 0 11 0; 136 | #X connect 2 1 6 1; 137 | #X connect 3 0 11 0; 138 | #X connect 4 0 2 0; 139 | #X connect 6 0 0 1; 140 | #X connect 6 1 13 0; 141 | #X connect 6 2 1 0; 142 | #X connect 7 0 9 0; 143 | #X connect 8 0 0 0; 144 | #X connect 8 1 6 2; 145 | #X connect 9 0 14 0; 146 | #X connect 9 1 12 0; 147 | #X connect 9 2 8 0; 148 | #X connect 10 0 0 0; 149 | #X connect 10 1 11 0; 150 | #X connect 11 0 6 0; 151 | #X connect 12 0 10 0; 152 | #X connect 12 1 6 1; 153 | #X connect 14 0 0 0; 154 | #X connect 15 0 6 1; 155 | #X connect 16 0 11 0; 156 | #X restore 20 209 pd start-end; 157 | #X obj 20 13 inlet bang_or_val; 158 | #X obj 20 408 t f b f; 159 | #X obj 20 483 outlet done; 160 | #X obj 39 435 outlet bangs; 161 | #X obj 20 35 route bang float list; 162 | #N canvas 944 228 362 468 args 0; 163 | #X obj 37 37 loadbang; 164 | #X msg 37 60 args; 165 | #X obj 37 83 pdcontrol; 166 | #X obj 37 106 t l l; 167 | #X obj 114 124 list length; 168 | #X obj 37 129 t a a; 169 | #X obj 37 272 spigot; 170 | #X obj 106 265 spigot; 171 | #X obj 70 227 == 1; 172 | #X obj 139 227 == 2; 173 | #X obj 106 288 unpack; 174 | #X obj 37 303 t b f; 175 | #X msg 37 329 0; 176 | #X obj 150 321 - 1; 177 | #X obj 114 197 t f f f, f 9; 178 | #X msg 242 287 1; 179 | #X obj 242 310 s \$0-no_args; 180 | #X obj 215 215 == 0; 181 | #X obj 215 238 sel 1; 182 | #X obj 215 262 t b b; 183 | #X obj 114 148 t f f; 184 | #X obj 141 174 s \$0-num_args; 185 | #X obj 106 374 s \$0-start_val_arg; 186 | #X obj 139 344 s \$0-end_val_arg; 187 | #X connect 0 0 1 0; 188 | #X connect 1 0 2 0; 189 | #X connect 2 0 3 0; 190 | #X connect 3 0 5 0; 191 | #X connect 3 1 4 0; 192 | #X connect 4 0 20 0; 193 | #X connect 5 0 6 0; 194 | #X connect 5 1 7 0; 195 | #X connect 6 0 11 0; 196 | #X connect 7 0 10 0; 197 | #X connect 8 0 6 1; 198 | #X connect 9 0 7 1; 199 | #X connect 10 0 22 0; 200 | #X connect 10 1 23 0; 201 | #X connect 11 0 12 0; 202 | #X connect 11 1 13 0; 203 | #X connect 12 0 22 0; 204 | #X connect 13 0 23 0; 205 | #X connect 14 0 8 0; 206 | #X connect 14 1 9 0; 207 | #X connect 14 2 17 0; 208 | #X connect 15 0 16 0; 209 | #X connect 17 0 18 0; 210 | #X connect 18 0 19 0; 211 | #X connect 19 0 12 0; 212 | #X connect 19 1 15 0; 213 | #X connect 20 0 14 0; 214 | #X connect 20 1 21 0; 215 | #X restore 211 32 pd args; 216 | #X obj 50 337 r \$0-start_val; 217 | #X obj 102 59 t l b; 218 | #X msg 159 77 2; 219 | #X obj 159 100 s \$0-num_args; 220 | #X obj 89 185 t f b; 221 | #X connect 0 0 1 0; 222 | #X connect 0 1 6 0; 223 | #X connect 1 0 2 0; 224 | #X connect 2 0 3 0; 225 | #X connect 2 0 12 0; 226 | #X connect 3 0 2 1; 227 | #X connect 4 0 13 0; 228 | #X connect 6 0 2 1; 229 | #X connect 7 0 10 1; 230 | #X connect 8 0 21 0; 231 | #X connect 9 0 1 1; 232 | #X connect 10 0 0 0; 233 | #X connect 10 1 3 1; 234 | #X connect 10 2 4 1; 235 | #X connect 11 0 15 0; 236 | #X connect 12 0 4 0; 237 | #X connect 12 1 14 0; 238 | #X connect 12 2 5 0; 239 | #X connect 15 0 10 0; 240 | #X connect 15 1 10 0; 241 | #X connect 15 2 18 0; 242 | #X connect 17 0 6 1; 243 | #X connect 18 0 10 0; 244 | #X connect 18 1 19 0; 245 | #X connect 19 0 20 0; 246 | #X connect 21 0 10 2; 247 | #X connect 21 1 19 0; 248 | -------------------------------------------------------------------------------- /bin2any.pd: -------------------------------------------------------------------------------- 1 | #N canvas 425 131 594 574 10; 2 | #X obj 364 264 list length; 3 | #X obj 382 352 - 1; 4 | #X obj 349 353 f; 5 | #X obj 48 489 f; 6 | #X obj 176 77 inlet; 7 | #X obj 48 536 outlet; 8 | #X obj 349 377 swap 2; 9 | #X obj 349 399 pow; 10 | #X obj 176 416 *; 11 | #X obj 286 496 inlet base; 12 | #N canvas 0 22 425 266 \$0-choose_base 0; 13 | #X obj 41 43 inlet; 14 | #X obj 41 65 t f f f; 15 | #X obj 80 179 outlet; 16 | #X obj 215 11 loadbang; 17 | #X obj 215 73 symbol \$1; 18 | #X obj 215 95 sel DEC HEX OCT; 19 | #X msg 215 122 0; 20 | #X msg 244 122 1; 21 | #X msg 273 122 2; 22 | #X msg 302 122 0; 23 | #X obj 215 164 s \$0-select_base; 24 | #N canvas 0 22 361 255 \$0-octal 0; 25 | #X obj 78 128 spigot; 26 | #X obj 78 150 makefilename %o; 27 | #X obj 111 59 r \$0-select_base; 28 | #X obj 111 81 sel 2; 29 | #X msg 111 103 1; 30 | #X msg 138 103 0; 31 | #X obj 78 34 inlet; 32 | #X obj 78 172 outlet; 33 | #X connect 0 0 1 0; 34 | #X connect 1 0 7 0; 35 | #X connect 2 0 3 0; 36 | #X connect 3 0 4 0; 37 | #X connect 3 1 5 0; 38 | #X connect 4 0 0 1; 39 | #X connect 5 0 0 1; 40 | #X connect 6 0 0 0; 41 | #X restore 80 89 pd \$0-octal; 42 | #N canvas 0 22 361 255 \$0-hexadecimal 0; 43 | #X obj 78 128 spigot; 44 | #X obj 111 59 r \$0-select_base; 45 | #X msg 111 103 1; 46 | #X msg 138 103 0; 47 | #X obj 78 34 inlet; 48 | #X obj 78 172 outlet; 49 | #X obj 111 81 sel 1; 50 | #X obj 78 150 makefilename %x; 51 | #X connect 0 0 7 0; 52 | #X connect 1 0 6 0; 53 | #X connect 2 0 0 1; 54 | #X connect 3 0 0 1; 55 | #X connect 4 0 0 0; 56 | #X connect 6 0 2 0; 57 | #X connect 6 1 3 0; 58 | #X connect 7 0 5 0; 59 | #X restore 60 113 pd \$0-hexadecimal; 60 | #N canvas 0 22 361 255 \$0-decimal 0; 61 | #X obj 78 128 spigot; 62 | #X obj 111 59 r \$0-select_base; 63 | #X msg 111 103 1; 64 | #X msg 138 103 0; 65 | #X obj 78 34 inlet; 66 | #X obj 78 151 outlet; 67 | #X obj 111 81 sel 0; 68 | #X connect 0 0 5 0; 69 | #X connect 1 0 6 0; 70 | #X connect 2 0 0 1; 71 | #X connect 3 0 0 1; 72 | #X connect 4 0 0 0; 73 | #X connect 6 0 2 0; 74 | #X connect 6 1 3 0; 75 | #X restore 41 137 pd \$0-decimal; 76 | #X obj 226 42 inlet base; 77 | #X connect 0 0 1 0; 78 | #X connect 1 0 13 0; 79 | #X connect 1 1 12 0; 80 | #X connect 1 2 11 0; 81 | #X connect 3 0 4 0; 82 | #X connect 4 0 5 0; 83 | #X connect 5 0 6 0; 84 | #X connect 5 1 7 0; 85 | #X connect 5 2 8 0; 86 | #X connect 5 3 9 0; 87 | #X connect 6 0 10 0; 88 | #X connect 7 0 10 0; 89 | #X connect 8 0 10 0; 90 | #X connect 9 0 10 0; 91 | #X connect 11 0 2 0; 92 | #X connect 12 0 2 0; 93 | #X connect 13 0 2 0; 94 | #X connect 14 0 4 0; 95 | #X restore 48 513 pd \$0-choose_base; 96 | #N canvas 0 22 294 231 drip_list 0; 97 | #X obj 69 60 until; 98 | #X obj 69 82 list; 99 | #X obj 69 104 list split 1; 100 | #X obj 69 14 inlet; 101 | #X obj 69 126 outlet; 102 | #X obj 69 36 t b l; 103 | #X obj 138 125 t b b; 104 | #X obj 138 147 outlet done; 105 | #X obj 142 43 inlet; 106 | #X connect 0 0 1 0; 107 | #X connect 1 0 2 0; 108 | #X connect 2 0 4 0; 109 | #X connect 2 1 1 1; 110 | #X connect 2 2 6 0; 111 | #X connect 3 0 5 0; 112 | #X connect 5 0 0 0; 113 | #X connect 5 1 1 1; 114 | #X connect 6 0 7 0; 115 | #X connect 6 1 0 1; 116 | #X connect 8 0 0 1; 117 | #X restore 176 272 pd drip_list; 118 | #X obj 176 247 t l l; 119 | #X obj 364 308 - 1; 120 | #X obj 176 336 t f b; 121 | #X obj 176 472 +; 122 | #X obj 205 472 f; 123 | #X obj 176 99 route symbol list; 124 | #X msg 191 450 0; 125 | #X obj 364 286 t f b f; 126 | #X obj 388 480 outlet bits; 127 | #X text 358 533 Written by Alexandros Drymonitis; 128 | #X obj 176 222 list fromsymbol; 129 | #X obj 176 145 t s b; 130 | #X msg 203 167 0; 131 | #X obj 225 145 t l b; 132 | #X msg 281 162 1; 133 | #X obj 48 463 spigot 1; 134 | #X text 19 17 [bin2any]: vanilla abstraction which converts binary 135 | numbers provided either as a symbol or a list \, to either a decimal 136 | \, a hexadecimal or an octal number; 137 | #X obj 93 441 r \$0-spigots; 138 | #X obj 433 436 r \$0-spigots; 139 | #X obj 388 458 spigot 1; 140 | #X obj 388 436 f; 141 | #N canvas 566 148 575 585 \$0-moses_values 0; 142 | #X obj 50 51 inlet; 143 | #X obj 50 177 moses 48; 144 | #X obj 95 222 - 48; 145 | #X obj 50 155 spigot; 146 | #X obj 190 90 spigot; 147 | #X obj 95 244 outlet; 148 | #X obj 196 40 inlet; 149 | #X obj 196 62 t f f; 150 | #X obj 83 134 == 0; 151 | #X msg 285 367 binary numbers include only 1 and 0; 152 | #X obj 285 389 print bin2any; 153 | #X obj 190 135 moses 0; 154 | #X obj 229 157 moses 2; 155 | #X obj 190 112 route float; 156 | #X msg 355 151 provide list with floats only; 157 | #X obj 355 173 print bin2any; 158 | #X obj 95 200 moses 50; 159 | #X obj 140 222 moses 58; 160 | #X obj 302 344 outlet close; 161 | #X obj 67 331 print bin2any; 162 | #X msg 67 309 provide symbol with floats only; 163 | #X msg 50 407 1; 164 | #X obj 50 449 s \$0-spigots; 165 | #X msg 101 407 0; 166 | #X obj 338 129 t b b b b; 167 | #X obj 268 317 t b b b b; 168 | #X obj 50 287 t b b b b; 169 | #X obj 50 73 t a a; 170 | #X connect 0 0 27 0; 171 | #X connect 1 0 26 0; 172 | #X connect 1 1 16 0; 173 | #X connect 2 0 5 0; 174 | #X connect 3 0 1 0; 175 | #X connect 4 0 13 0; 176 | #X connect 6 0 7 0; 177 | #X connect 7 0 8 0; 178 | #X connect 7 1 4 1; 179 | #X connect 8 0 3 1; 180 | #X connect 9 0 10 0; 181 | #X connect 11 0 25 0; 182 | #X connect 11 1 12 0; 183 | #X connect 12 0 5 0; 184 | #X connect 12 1 25 0; 185 | #X connect 13 0 11 0; 186 | #X connect 13 1 24 0; 187 | #X connect 14 0 15 0; 188 | #X connect 16 0 2 0; 189 | #X connect 16 1 17 0; 190 | #X connect 17 0 25 0; 191 | #X connect 17 1 26 0; 192 | #X connect 20 0 19 0; 193 | #X connect 21 0 22 0; 194 | #X connect 23 0 22 0; 195 | #X connect 24 0 21 0; 196 | #X connect 24 1 14 0; 197 | #X connect 24 2 18 0; 198 | #X connect 24 3 23 0; 199 | #X connect 25 0 21 0; 200 | #X connect 25 1 9 0; 201 | #X connect 25 2 18 0; 202 | #X connect 25 3 23 0; 203 | #X connect 26 0 21 0; 204 | #X connect 26 1 20 0; 205 | #X connect 26 2 18 0; 206 | #X connect 26 3 23 0; 207 | #X connect 27 0 3 0; 208 | #X connect 27 1 4 0; 209 | #X restore 176 295 pd \$0-moses_values; 210 | #X obj 48 419 t b b; 211 | #X obj 225 121 list; 212 | #X text 257 121 [route] trims incoming list and causes an error to 213 | [trigger]. this is solved by using [list]; 214 | #X connect 0 0 19 0; 215 | #X connect 1 0 2 1; 216 | #X connect 2 0 1 0; 217 | #X connect 2 0 6 0; 218 | #X connect 3 0 10 0; 219 | #X connect 4 0 17 0; 220 | #X connect 6 0 7 0; 221 | #X connect 6 1 7 1; 222 | #X connect 7 0 8 1; 223 | #X connect 8 0 15 0; 224 | #X connect 9 0 10 1; 225 | #X connect 10 0 5 0; 226 | #X connect 11 0 33 0; 227 | #X connect 11 1 34 0; 228 | #X connect 12 0 11 0; 229 | #X connect 12 1 0 0; 230 | #X connect 13 0 2 1; 231 | #X connect 14 0 8 0; 232 | #X connect 14 1 2 0; 233 | #X connect 15 0 3 1; 234 | #X connect 15 0 16 0; 235 | #X connect 16 0 15 1; 236 | #X connect 17 0 23 0; 237 | #X connect 17 1 35 0; 238 | #X connect 18 0 15 1; 239 | #X connect 19 0 13 0; 240 | #X connect 19 1 18 0; 241 | #X connect 19 2 32 1; 242 | #X connect 22 0 12 0; 243 | #X connect 23 0 22 0; 244 | #X connect 23 1 24 0; 245 | #X connect 24 0 33 1; 246 | #X connect 25 0 12 0; 247 | #X connect 25 1 26 0; 248 | #X connect 26 0 33 1; 249 | #X connect 27 0 3 0; 250 | #X connect 29 0 27 1; 251 | #X connect 30 0 31 1; 252 | #X connect 31 0 20 0; 253 | #X connect 32 0 31 0; 254 | #X connect 33 0 14 0; 255 | #X connect 33 1 11 1; 256 | #X connect 34 0 27 0; 257 | #X connect 34 1 32 0; 258 | #X connect 35 0 25 0; 259 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | 9 | This version of the GNU Lesser General Public License incorporates 10 | the terms and conditions of version 3 of the GNU General Public 11 | License, supplemented by the additional permissions listed below. 12 | 13 | 0. Additional Definitions. 14 | 15 | As used herein, "this License" refers to version 3 of the GNU Lesser 16 | General Public License, and the "GNU GPL" refers to version 3 of the GNU 17 | General Public License. 18 | 19 | "The Library" refers to a covered work governed by this License, 20 | other than an Application or a Combined Work as defined below. 21 | 22 | An "Application" is any work that makes use of an interface provided 23 | by the Library, but which is not otherwise based on the Library. 24 | Defining a subclass of a class defined by the Library is deemed a mode 25 | of using an interface provided by the Library. 26 | 27 | A "Combined Work" is a work produced by combining or linking an 28 | Application with the Library. The particular version of the Library 29 | with which the Combined Work was made is also called the "Linked 30 | Version". 31 | 32 | The "Minimal Corresponding Source" for a Combined Work means the 33 | Corresponding Source for the Combined Work, excluding any source code 34 | for portions of the Combined Work that, considered in isolation, are 35 | based on the Application, and not on the Linked Version. 36 | 37 | The "Corresponding Application Code" for a Combined Work means the 38 | object code and/or source code for the Application, including any data 39 | and utility programs needed for reproducing the Combined Work from the 40 | Application, but excluding the System Libraries of the Combined Work. 41 | 42 | 1. Exception to Section 3 of the GNU GPL. 43 | 44 | You may convey a covered work under sections 3 and 4 of this License 45 | without being bound by section 3 of the GNU GPL. 46 | 47 | 2. Conveying Modified Versions. 48 | 49 | If you modify a copy of the Library, and, in your modifications, a 50 | facility refers to a function or data to be supplied by an Application 51 | that uses the facility (other than as an argument passed when the 52 | facility is invoked), then you may convey a copy of the modified 53 | version: 54 | 55 | a) under this License, provided that you make a good faith effort to 56 | ensure that, in the event an Application does not supply the 57 | function or data, the facility still operates, and performs 58 | whatever part of its purpose remains meaningful, or 59 | 60 | b) under the GNU GPL, with none of the additional permissions of 61 | this License applicable to that copy. 62 | 63 | 3. Object Code Incorporating Material from Library Header Files. 64 | 65 | The object code form of an Application may incorporate material from 66 | a header file that is part of the Library. You may convey such object 67 | code under terms of your choice, provided that, if the incorporated 68 | material is not limited to numerical parameters, data structure 69 | layouts and accessors, or small macros, inline functions and templates 70 | (ten or fewer lines in length), you do both of the following: 71 | 72 | a) Give prominent notice with each copy of the object code that the 73 | Library is used in it and that the Library and its use are 74 | covered by this License. 75 | 76 | b) Accompany the object code with a copy of the GNU GPL and this license 77 | document. 78 | 79 | 4. Combined Works. 80 | 81 | You may convey a Combined Work under terms of your choice that, 82 | taken together, effectively do not restrict modification of the 83 | portions of the Library contained in the Combined Work and reverse 84 | engineering for debugging such modifications, if you also do each of 85 | the following: 86 | 87 | a) Give prominent notice with each copy of the Combined Work that 88 | the Library is used in it and that the Library and its use are 89 | covered by this License. 90 | 91 | b) Accompany the Combined Work with a copy of the GNU GPL and this license 92 | document. 93 | 94 | c) For a Combined Work that displays copyright notices during 95 | execution, include the copyright notice for the Library among 96 | these notices, as well as a reference directing the user to the 97 | copies of the GNU GPL and this license document. 98 | 99 | d) Do one of the following: 100 | 101 | 0) Convey the Minimal Corresponding Source under the terms of this 102 | License, and the Corresponding Application Code in a form 103 | suitable for, and under terms that permit, the user to 104 | recombine or relink the Application with a modified version of 105 | the Linked Version to produce a modified Combined Work, in the 106 | manner specified by section 6 of the GNU GPL for conveying 107 | Corresponding Source. 108 | 109 | 1) Use a suitable shared library mechanism for linking with the 110 | Library. A suitable mechanism is one that (a) uses at run time 111 | a copy of the Library already present on the user's computer 112 | system, and (b) will operate properly with a modified version 113 | of the Library that is interface-compatible with the Linked 114 | Version. 115 | 116 | e) Provide Installation Information, but only if you would otherwise 117 | be required to provide such information under section 6 of the 118 | GNU GPL, and only to the extent that such information is 119 | necessary to install and execute a modified version of the 120 | Combined Work produced by recombining or relinking the 121 | Application with a modified version of the Linked Version. (If 122 | you use option 4d0, the Installation Information must accompany 123 | the Minimal Corresponding Source and Corresponding Application 124 | Code. If you use option 4d1, you must provide the Installation 125 | Information in the manner specified by section 6 of the GNU GPL 126 | for conveying Corresponding Source.) 127 | 128 | 5. Combined Libraries. 129 | 130 | You may place library facilities that are a work based on the 131 | Library side by side in a single library together with other library 132 | facilities that are not Applications and are not covered by this 133 | License, and convey such a combined library under terms of your 134 | choice, if you do both of the following: 135 | 136 | a) Accompany the combined library with a copy of the same work based 137 | on the Library, uncombined with any other library facilities, 138 | conveyed under the terms of this License. 139 | 140 | b) Give prominent notice with the combined library that part of it 141 | is a work based on the Library, and explaining where to find the 142 | accompanying uncombined form of the same work. 143 | 144 | 6. Revised Versions of the GNU Lesser General Public License. 145 | 146 | The Free Software Foundation may publish revised and/or new versions 147 | of the GNU Lesser General Public License from time to time. Such new 148 | versions will be similar in spirit to the present version, but may 149 | differ in detail to address new problems or concerns. 150 | 151 | Each version is given a distinguishing version number. If the 152 | Library as you received it specifies that a certain numbered version 153 | of the GNU Lesser General Public License "or any later version" 154 | applies to it, you have the option of following the terms and 155 | conditions either of that published version or of any later version 156 | published by the Free Software Foundation. If the Library as you 157 | received it does not specify a version number of the GNU Lesser 158 | General Public License, you may choose any version of the GNU Lesser 159 | General Public License ever published by the Free Software Foundation. 160 | 161 | If the Library as you received it specifies that a proxy can decide 162 | whether future versions of the GNU Lesser General Public License shall 163 | apply, that proxy's public statement of acceptance of any version is 164 | permanent authorization for you to choose that version for the 165 | Library. 166 | 167 | -------------------------------------------------------------------------------- /no_click_val.pd: -------------------------------------------------------------------------------- 1 | #N canvas 579 284 471 383 10; 2 | #X obj 30 100 key; 3 | #X obj 30 123 spigot; 4 | #X obj 277 267 s; 5 | #X symbolatom 211 87 0 0 0 0 - - -; 6 | #X obj 211 108 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 7 | 1; 8 | #X text 263 87 set destination; 9 | #X text 230 107 activate/deactivate; 10 | #X floatatom 211 128 0 0 0 0 - - -; 11 | #X text 257 129 display; 12 | #X obj 317 250 inlet destination; 13 | #X text 251 332 Made by Alexandros Drymonitis; 14 | #X obj 30 155 sel 10 8; 15 | #N canvas 224 106 604 523 set_arg 0; 16 | #X obj 428 25 loadbang; 17 | #X obj 428 47 \$1; 18 | #X obj 428 71 outlet; 19 | #X obj 66 15 keyname; 20 | #X obj 233 77 symbol; 21 | #X obj 233 54 sel 1; 22 | #X obj 233 99 sel ! @ £ $ % ^ & * ( ); 23 | #X msg 233 215 1; 24 | #X msg 246 193 2; 25 | #X msg 260 169 3; 26 | #X msg 273 145 4; 27 | #X msg 287 122 5; 28 | #X msg 300 215 6; 29 | #X msg 314 193 7; 30 | #X msg 327 169 8; 31 | #X msg 341 145 9; 32 | #X msg 354 122 0; 33 | #X obj 66 37 t f f; 34 | #X obj 314 311 f; 35 | #X obj 314 333 * 10; 36 | #X obj 287 355 +; 37 | #X obj 287 287 t f b; 38 | #X obj 287 377 t f f; 39 | #X obj 287 399 outlet; 40 | #X msg 329 287 0; 41 | #X obj 66 281 route Shift_L; 42 | #X obj 66 235 pack f s; 43 | #X obj 66 303 sel 0 1; 44 | #X obj 66 345 f; 45 | #X obj 96 345 + 1; 46 | #X msg 81 325 0; 47 | #X msg 66 257 \$2 \$1; 48 | #X obj 66 367 sel 1; 49 | #X text 18 438 [keyname] outputs Shift_L 1 and Shift_L 0 when held 50 | down and other keys are pressed \, so the counter above is necessary 51 | for this to work; 52 | #X connect 0 0 1 0; 53 | #X connect 1 0 2 0; 54 | #X connect 3 0 17 0; 55 | #X connect 3 1 4 1; 56 | #X connect 4 0 6 0; 57 | #X connect 5 0 4 0; 58 | #X connect 6 0 7 0; 59 | #X connect 6 1 8 0; 60 | #X connect 6 2 9 0; 61 | #X connect 6 3 10 0; 62 | #X connect 6 4 11 0; 63 | #X connect 6 5 12 0; 64 | #X connect 6 6 13 0; 65 | #X connect 6 7 14 0; 66 | #X connect 6 8 15 0; 67 | #X connect 6 9 16 0; 68 | #X connect 6 10 26 1; 69 | #X connect 7 0 21 0; 70 | #X connect 8 0 21 0; 71 | #X connect 9 0 21 0; 72 | #X connect 10 0 21 0; 73 | #X connect 11 0 21 0; 74 | #X connect 12 0 21 0; 75 | #X connect 13 0 21 0; 76 | #X connect 14 0 21 0; 77 | #X connect 15 0 21 0; 78 | #X connect 16 0 21 0; 79 | #X connect 17 0 26 0; 80 | #X connect 17 1 5 0; 81 | #X connect 18 0 19 0; 82 | #X connect 19 0 20 1; 83 | #X connect 20 0 22 0; 84 | #X connect 21 0 20 0; 85 | #X connect 21 1 18 0; 86 | #X connect 22 0 23 0; 87 | #X connect 22 1 18 1; 88 | #X connect 24 0 18 1; 89 | #X connect 25 0 27 0; 90 | #X connect 26 0 31 0; 91 | #X connect 27 0 28 0; 92 | #X connect 27 1 30 0; 93 | #X connect 28 0 29 0; 94 | #X connect 28 0 32 0; 95 | #X connect 29 0 28 1; 96 | #X connect 30 0 28 1; 97 | #X connect 31 0 25 0; 98 | #X connect 32 0 24 0; 99 | #X restore 129 29 pd set_arg; 100 | #X obj 129 55 ==; 101 | #X obj 362 160 loadbang; 102 | #X obj 362 182 t b b; 103 | #X obj 389 202 symbol \$2; 104 | #X obj 30 203 s \$0-done; 105 | #X obj 250 244 t f f; 106 | #X obj 250 289 outlet; 107 | #X obj 155 172 moses 48; 108 | #X obj 250 189 moses 58; 109 | #X msg 155 260 -1; 110 | #X obj 180 238 s \$0-dec; 111 | #X obj 155 282 s \$0-negative; 112 | #N canvas 292 250 788 451 \$0-assemble_val 0; 113 | #X obj 96 61 - 48; 114 | #X obj 111 171 f; 115 | #X obj 111 193 * 10; 116 | #X obj 96 215 +; 117 | #X msg 126 127 0; 118 | #X obj 29 379 f; 119 | #X msg 278 225 1; 120 | #X obj 96 338 *; 121 | #X obj 96 17 inlet; 122 | #X obj 111 315 r \$0-negative; 123 | #X obj 29 405 outlet; 124 | #N canvas 542 150 581 474 \$0-correct 0; 125 | #X obj 132 26 inlet; 126 | #X obj 132 48 list prepend; 127 | #X obj 132 72 t l l; 128 | #X obj 41 89 list; 129 | #X obj 41 111 t l l; 130 | #X obj 98 128 list length; 131 | #X obj 98 150 - 1; 132 | #X obj 41 175 list split; 133 | #X obj 69 325 -; 134 | #X obj 69 393 outlet; 135 | #X obj 177 190 inlet total; 136 | #X obj 69 229 swap; 137 | #X obj 69 347 / 10; 138 | #X obj 201 26 r \$0-done; 139 | #X obj 41 197 t l l; 140 | #X obj 41 49 spigot; 141 | #X obj 41 27 r \$0-correct; 142 | #X obj 272 26 inlet decimal; 143 | #X obj 90 297 /; 144 | #X obj 374 174 loadbang; 145 | #X msg 374 280 1; 146 | #X obj 272 70 swap 10; 147 | #X obj 272 92 pow; 148 | #X obj 356 64 - 1; 149 | #X obj 368 411 f; 150 | #X obj 368 433 outlet correct_counter; 151 | #X obj 69 371 t f b; 152 | #X obj 387 195 r \$0-done; 153 | #X obj 368 388 spigot; 154 | #X obj 433 371 r \$0-dec; 155 | #X msg 401 361 0; 156 | #X obj 374 218 t b b; 157 | #X obj 272 47 t f f; 158 | #X obj 356 86 t f f; 159 | #N canvas 0 22 450 300 set_scale 0; 160 | #X obj 138 165 pow -1; 161 | #X msg 67 162 10; 162 | #X obj 67 103 sel -1 0; 163 | #X msg 89 132 1; 164 | #X obj 138 120 swap 10; 165 | #X obj 138 142 pow; 166 | #X obj 67 77 inlet; 167 | #X obj 67 228 outlet; 168 | #X text 43 17 when correcting \, we need to divide the output by ten 169 | when using integers \, and we the floats kick in \, we start dividing 170 | by 1 \, 0.1 \, 0.01 etc. can't think of a better way to do this; 171 | #X connect 0 0 7 0; 172 | #X connect 1 0 7 0; 173 | #X connect 2 0 1 0; 174 | #X connect 2 1 3 0; 175 | #X connect 2 2 4 0; 176 | #X connect 3 0 7 0; 177 | #X connect 4 0 5 0; 178 | #X connect 4 1 5 1; 179 | #X connect 5 0 0 0; 180 | #X connect 6 0 2 0; 181 | #X restore 356 109 pd set_scale; 182 | #X text 126 151 retrieve last value and subtract it from total; 183 | #X text 116 299 if we're in the decimal domain \, do the appropriate 184 | divisions; 185 | #X obj 177 212 t f f f; 186 | #X obj 236 229 sel 0; 187 | #X msg 236 251 1; 188 | #X obj 236 273 s \$0-negative; 189 | #X text 263 252 if we correct all the way \, undo negative; 190 | #X connect 0 0 1 0; 191 | #X connect 1 0 2 0; 192 | #X connect 2 0 3 1; 193 | #X connect 2 1 1 1; 194 | #X connect 3 0 4 0; 195 | #X connect 4 0 7 0; 196 | #X connect 4 1 5 0; 197 | #X connect 5 0 6 0; 198 | #X connect 6 0 7 1; 199 | #X connect 7 0 14 0; 200 | #X connect 7 1 11 0; 201 | #X connect 8 0 12 0; 202 | #X connect 10 0 37 0; 203 | #X connect 11 0 8 0; 204 | #X connect 11 1 18 0; 205 | #X connect 12 0 26 0; 206 | #X connect 13 0 1 1; 207 | #X connect 14 0 3 1; 208 | #X connect 14 1 1 1; 209 | #X connect 15 0 3 0; 210 | #X connect 16 0 15 0; 211 | #X connect 17 0 32 0; 212 | #X connect 18 0 8 1; 213 | #X connect 19 0 31 0; 214 | #X connect 20 0 18 1; 215 | #X connect 21 0 22 0; 216 | #X connect 21 1 22 1; 217 | #X connect 22 0 18 1; 218 | #X connect 23 0 33 0; 219 | #X connect 24 0 25 0; 220 | #X connect 26 0 9 0; 221 | #X connect 26 1 28 0; 222 | #X connect 27 0 31 0; 223 | #X connect 28 0 24 0; 224 | #X connect 29 0 28 1; 225 | #X connect 30 0 28 1; 226 | #X connect 31 0 20 0; 227 | #X connect 31 1 30 0; 228 | #X connect 32 0 21 0; 229 | #X connect 32 1 23 0; 230 | #X connect 33 0 34 0; 231 | #X connect 33 1 24 1; 232 | #X connect 34 0 12 1; 233 | #X connect 37 0 11 1; 234 | #X connect 37 1 15 1; 235 | #X connect 37 2 38 0; 236 | #X connect 38 0 39 0; 237 | #X connect 39 0 40 0; 238 | #X restore 155 117 pd \$0-correct; 239 | #X obj 96 100 t f b f; 240 | #X obj 29 164 r \$0-done; 241 | #X obj 347 33 r \$0-dec; 242 | #X obj 123 383 s \$0-show; 243 | #X obj 251 181 loadbang; 244 | #X obj 29 186 t b b; 245 | #X obj 96 39 t f b; 246 | #X obj 314 78 f; 247 | #X obj 344 78 + 1; 248 | #X obj 314 56 spigot; 249 | #X obj 96 362 t f f; 250 | #X obj 96 239 t f f; 251 | #X obj 96 286 t f f; 252 | #X obj 333 124 swap 10; 253 | #X obj 333 146 pow; 254 | #X obj 96 264 /; 255 | #X obj 251 203 t b b; 256 | #X obj 126 149 t f f f; 257 | #X obj 278 247 t f f; 258 | #X obj 314 100 t f f f; 259 | #X obj 401 117 sel 0; 260 | #X msg 401 139 0; 261 | #X obj 401 161 s \$0-dec; 262 | #X text 372 68 if while correcting we erase all digits after the decimal 263 | point \, we're not in decimal any more \, so close all spigots that 264 | deal with decimals; 265 | #X connect 0 0 12 0; 266 | #X connect 1 0 2 0; 267 | #X connect 2 0 3 1; 268 | #X connect 3 0 23 0; 269 | #X connect 4 0 29 0; 270 | #X connect 5 0 10 0; 271 | #X connect 6 0 30 0; 272 | #X connect 7 0 22 0; 273 | #X connect 8 0 18 0; 274 | #X connect 9 0 7 1; 275 | #X connect 11 0 23 0; 276 | #X connect 11 1 19 0; 277 | #X connect 12 0 3 0; 278 | #X connect 12 1 1 0; 279 | #X connect 12 2 11 0; 280 | #X connect 13 0 17 0; 281 | #X connect 14 0 21 1; 282 | #X connect 16 0 28 0; 283 | #X connect 17 0 5 0; 284 | #X connect 17 1 28 0; 285 | #X connect 18 0 0 0; 286 | #X connect 18 1 21 0; 287 | #X connect 19 0 20 0; 288 | #X connect 19 0 31 0; 289 | #X connect 20 0 19 1; 290 | #X connect 21 0 19 0; 291 | #X connect 22 0 5 1; 292 | #X connect 22 1 15 0; 293 | #X connect 23 0 27 0; 294 | #X connect 23 1 1 1; 295 | #X connect 24 0 7 0; 296 | #X connect 24 1 11 1; 297 | #X connect 25 0 26 0; 298 | #X connect 25 1 26 1; 299 | #X connect 26 0 27 1; 300 | #X connect 27 0 24 0; 301 | #X connect 28 0 4 0; 302 | #X connect 28 1 6 0; 303 | #X connect 29 0 1 1; 304 | #X connect 29 1 21 1; 305 | #X connect 29 2 19 0; 306 | #X connect 30 0 27 1; 307 | #X connect 30 1 7 1; 308 | #X connect 31 0 11 2; 309 | #X connect 31 1 25 0; 310 | #X connect 31 2 32 0; 311 | #X connect 32 0 33 0; 312 | #X connect 33 0 34 0; 313 | #X restore 250 212 pd \$0-assemble_val; 314 | #X obj 155 194 sel 45 46; 315 | #X obj 121 128 r \$0-show; 316 | #X obj 52 179 s \$0-correct; 317 | #X msg 121 150 set \$1; 318 | #X msg 180 216 1; 319 | #X connect 0 0 1 0; 320 | #X connect 1 0 11 0; 321 | #X connect 3 0 2 1; 322 | #X connect 4 0 1 1; 323 | #X connect 7 0 18 0; 324 | #X connect 9 0 2 1; 325 | #X connect 11 0 17 0; 326 | #X connect 11 1 28 0; 327 | #X connect 11 2 20 0; 328 | #X connect 12 0 13 0; 329 | #X connect 12 1 13 1; 330 | #X connect 13 0 4 0; 331 | #X connect 14 0 15 0; 332 | #X connect 15 0 4 0; 333 | #X connect 15 1 16 0; 334 | #X connect 16 0 2 1; 335 | #X connect 18 0 19 0; 336 | #X connect 18 1 2 0; 337 | #X connect 20 0 26 0; 338 | #X connect 20 1 21 0; 339 | #X connect 21 0 25 0; 340 | #X connect 22 0 24 0; 341 | #X connect 25 0 18 0; 342 | #X connect 26 0 22 0; 343 | #X connect 26 1 30 0; 344 | #X connect 27 0 29 0; 345 | #X connect 29 0 7 0; 346 | #X connect 30 0 23 0; 347 | #X coords 0 -1 1 1 180 90 1 200 60; 348 | -------------------------------------------------------------------------------- /vanillaS2f.pd: -------------------------------------------------------------------------------- 1 | #N canvas 307 126 500 389 10; 2 | #X obj 29 93 list fromsymbol; 3 | #X obj 29 71 inlet; 4 | #X obj 212 287 outlet; 5 | #X text 36 316 Written by Alexandros Drymonitis \, after a discussion 6 | on the Pd list with Cyrille Henry and Chris McCormick; 7 | #N canvas 443 157 466 498 assemble_hex 0; 8 | #N canvas 489 276 422 287 drip_list 0; 9 | #X obj 152 97 until; 10 | #X obj 152 119 list; 11 | #X obj 152 51 inlet; 12 | #X obj 152 163 outlet; 13 | #X obj 152 73 t b l; 14 | #X obj 221 162 t b b; 15 | #X obj 221 184 outlet done; 16 | #X obj 152 141 list split 1; 17 | #X connect 0 0 1 0; 18 | #X connect 1 0 7 0; 19 | #X connect 2 0 4 0; 20 | #X connect 4 0 0 0; 21 | #X connect 4 1 1 1; 22 | #X connect 5 0 6 0; 23 | #X connect 5 1 0 1; 24 | #X connect 7 0 3 0; 25 | #X connect 7 1 1 1; 26 | #X connect 7 2 5 0; 27 | #X restore 103 62 pd drip_list; 28 | #X obj 103 14 inlet; 29 | #X obj 103 39 t l l; 30 | #X obj 230 56 list length; 31 | #X obj 103 84 moses 48; 32 | #X obj 148 107 moses 58; 33 | #X obj 193 129 moses 65; 34 | #X obj 283 173 moses 97; 35 | #X obj 148 129 - 48; 36 | #X obj 238 174 - 55; 37 | #X obj 328 216 - 87; 38 | #X text 162 86 0 to 1; 39 | #X text 252 127 A to F; 40 | #X text 342 172 a to f; 41 | #X obj 230 78 - 1; 42 | #X obj 148 151 t f b; 43 | #X obj 238 196 t f b; 44 | #X obj 328 238 t f b; 45 | #X obj 175 295 f; 46 | #X obj 205 295 - 1; 47 | #X obj 175 317 swap 16; 48 | #X obj 175 339 pow; 49 | #X obj 148 356 *; 50 | #X obj 148 378 +; 51 | #X obj 148 400 t f f; 52 | #X obj 113 417 f; 53 | #X obj 113 462 outlet; 54 | #X obj 238 151 moses 71; 55 | #X obj 328 194 moses 103; 56 | #X obj 113 439 t f b; 57 | #X msg 184 361 0; 58 | #X connect 0 0 4 0; 59 | #X connect 0 1 25 0; 60 | #X connect 1 0 2 0; 61 | #X connect 2 0 0 0; 62 | #X connect 2 1 3 0; 63 | #X connect 3 0 14 0; 64 | #X connect 4 1 5 0; 65 | #X connect 5 0 8 0; 66 | #X connect 5 1 6 0; 67 | #X connect 6 1 27 0; 68 | #X connect 7 1 28 0; 69 | #X connect 8 0 15 0; 70 | #X connect 9 0 16 0; 71 | #X connect 10 0 17 0; 72 | #X connect 14 0 18 1; 73 | #X connect 15 0 22 0; 74 | #X connect 15 1 18 0; 75 | #X connect 16 0 22 0; 76 | #X connect 16 1 18 0; 77 | #X connect 17 0 22 0; 78 | #X connect 17 1 18 0; 79 | #X connect 18 0 19 0; 80 | #X connect 18 0 20 0; 81 | #X connect 19 0 18 1; 82 | #X connect 20 0 21 0; 83 | #X connect 20 1 21 1; 84 | #X connect 21 0 22 1; 85 | #X connect 22 0 23 0; 86 | #X connect 23 0 24 0; 87 | #X connect 24 0 25 1; 88 | #X connect 24 1 23 1; 89 | #X connect 25 0 29 0; 90 | #X connect 27 0 9 0; 91 | #X connect 27 1 7 0; 92 | #X connect 28 0 10 0; 93 | #X connect 29 0 26 0; 94 | #X connect 29 1 30 0; 95 | #X connect 30 0 23 1; 96 | #X restore 74 187 pd assemble_hex; 97 | #N canvas 417 160 388 388 assemble_oct 0; 98 | #X obj 103 17 inlet; 99 | #N canvas 489 276 422 287 drip_list 0; 100 | #X obj 152 97 until; 101 | #X obj 152 119 list; 102 | #X obj 152 51 inlet; 103 | #X obj 152 163 outlet; 104 | #X obj 152 73 t b l; 105 | #X obj 221 162 t b b; 106 | #X obj 221 184 outlet done; 107 | #X obj 152 141 list split 1; 108 | #X connect 0 0 1 0; 109 | #X connect 1 0 7 0; 110 | #X connect 2 0 4 0; 111 | #X connect 4 0 0 0; 112 | #X connect 4 1 1 1; 113 | #X connect 5 0 6 0; 114 | #X connect 5 1 0 1; 115 | #X connect 7 0 3 0; 116 | #X connect 7 1 1 1; 117 | #X connect 7 2 5 0; 118 | #X restore 103 62 pd drip_list; 119 | #X obj 103 39 t l l; 120 | #X obj 230 56 list length; 121 | #X obj 103 84 moses 48; 122 | #X obj 148 129 - 48; 123 | #X obj 230 78 - 1; 124 | #X obj 148 151 t f b; 125 | #X obj 175 174 f; 126 | #X obj 205 174 - 1; 127 | #X obj 175 218 pow; 128 | #X obj 148 235 *; 129 | #X obj 148 257 +; 130 | #X obj 148 279 t f f; 131 | #X obj 113 296 f; 132 | #X obj 113 341 outlet; 133 | #X obj 148 107 moses 56; 134 | #X text 162 86 0 to 7; 135 | #X obj 175 196 swap 8; 136 | #X obj 113 318 t f b; 137 | #X msg 184 240 0; 138 | #X connect 0 0 2 0; 139 | #X connect 1 0 4 0; 140 | #X connect 1 1 14 0; 141 | #X connect 2 0 1 0; 142 | #X connect 2 1 3 0; 143 | #X connect 3 0 6 0; 144 | #X connect 4 1 16 0; 145 | #X connect 5 0 7 0; 146 | #X connect 6 0 8 1; 147 | #X connect 7 0 11 0; 148 | #X connect 7 1 8 0; 149 | #X connect 8 0 9 0; 150 | #X connect 8 0 18 0; 151 | #X connect 9 0 8 1; 152 | #X connect 10 0 11 1; 153 | #X connect 11 0 12 0; 154 | #X connect 12 0 13 0; 155 | #X connect 13 0 14 1; 156 | #X connect 13 1 12 1; 157 | #X connect 14 0 19 0; 158 | #X connect 16 0 5 0; 159 | #X connect 18 0 10 0; 160 | #X connect 18 1 10 1; 161 | #X connect 19 0 15 0; 162 | #X connect 19 1 20 0; 163 | #X connect 20 0 12 1; 164 | #X restore 120 164 pd assemble_oct; 165 | #N canvas 480 225 509 488 assemble_dec 0; 166 | #X obj 73 215 moses 48; 167 | #X obj 168 232 moses 58; 168 | #N canvas 0 22 287 214 drip-list 0; 169 | #X obj 69 60 until; 170 | #X obj 69 82 list; 171 | #X obj 69 104 list split 1; 172 | #X obj 69 14 inlet; 173 | #X obj 69 126 outlet; 174 | #X obj 69 36 t b l; 175 | #X obj 138 125 t b b; 176 | #X obj 138 147 outlet done; 177 | #X connect 0 0 1 0; 178 | #X connect 1 0 2 0; 179 | #X connect 2 0 4 0; 180 | #X connect 2 1 1 1; 181 | #X connect 2 2 6 0; 182 | #X connect 3 0 5 0; 183 | #X connect 5 0 0 0; 184 | #X connect 5 1 1 1; 185 | #X connect 6 0 7 0; 186 | #X connect 6 1 0 1; 187 | #X restore 73 118 pd drip-list; 188 | #X obj 172 135 spigot; 189 | #X obj 73 59 t l b b; 190 | #X msg 205 76 0; 191 | #X msg 235 118 1; 192 | #X msg 73 303 -1; 193 | #X obj 213 255 sel 101; 194 | #X obj 168 302 t f f; 195 | #X obj 92 84 s \$0-init; 196 | #X obj 235 96 r \$0-let_bang; 197 | #X obj 98 269 s \$0-dec; 198 | #X obj 73 325 s \$0-negative; 199 | #N canvas 637 329 467 382 \$0-scientific_val 0; 200 | #X obj 88 308 pow; 201 | #X obj 160 47 spigot; 202 | #X obj 160 69 - 48; 203 | #X obj 160 91 t f b; 204 | #X obj 187 113 f; 205 | #X obj 187 135 * 10; 206 | #X obj 160 152 +; 207 | #X obj 160 174 t f f; 208 | #X msg 236 74 0; 209 | #X obj 160 23 inlet; 210 | #X obj 236 52 r \$0-init; 211 | #X msg 216 30 1; 212 | #X obj 216 8 r \$0-scientific; 213 | #X obj 170 222 r \$0-negative; 214 | #X obj 170 244 spigot; 215 | #X obj 254 205 r \$0-init; 216 | #X obj 283 227 r \$0-scientific; 217 | #X msg 254 227 0; 218 | #X msg 283 249 1; 219 | #X obj 88 191 f; 220 | #X obj 88 283 swap 10; 221 | #X obj 88 261 *; 222 | #X obj 103 216 r \$0-init; 223 | #X msg 103 238 1; 224 | #X obj 88 330 outlet; 225 | #X obj 17 106 r \$0-bang; 226 | #X obj 17 128 t b b; 227 | #X obj 88 145 spigot; 228 | #X obj 236 96 t f f f; 229 | #X obj 17 150 s \$0-next; 230 | #X obj 283 271 t f f; 231 | #X connect 0 0 24 0; 232 | #X connect 1 0 2 0; 233 | #X connect 2 0 3 0; 234 | #X connect 3 0 6 0; 235 | #X connect 3 1 4 0; 236 | #X connect 4 0 5 0; 237 | #X connect 5 0 6 1; 238 | #X connect 6 0 7 0; 239 | #X connect 7 0 19 1; 240 | #X connect 7 1 4 1; 241 | #X connect 8 0 28 0; 242 | #X connect 9 0 1 0; 243 | #X connect 10 0 8 0; 244 | #X connect 11 0 1 1; 245 | #X connect 12 0 11 0; 246 | #X connect 13 0 14 0; 247 | #X connect 14 0 21 1; 248 | #X connect 15 0 17 0; 249 | #X connect 16 0 18 0; 250 | #X connect 17 0 14 1; 251 | #X connect 18 0 30 0; 252 | #X connect 19 0 21 0; 253 | #X connect 20 0 0 0; 254 | #X connect 20 1 0 1; 255 | #X connect 21 0 20 0; 256 | #X connect 22 0 23 0; 257 | #X connect 23 0 21 1; 258 | #X connect 25 0 26 0; 259 | #X connect 26 0 29 0; 260 | #X connect 26 1 27 0; 261 | #X connect 27 0 19 0; 262 | #X connect 28 0 4 1; 263 | #X connect 28 1 1 1; 264 | #X connect 28 2 27 1; 265 | #X connect 30 0 14 1; 266 | #X connect 30 1 27 1; 267 | #X restore 195 330 pd \$0-scientific_val; 268 | #N canvas 526 231 447 504 \$0-non_scientific_val 0; 269 | #X obj 96 187 - 48; 270 | #X obj 96 209 t f b; 271 | #X obj 123 231 f; 272 | #X obj 123 253 * 10; 273 | #X obj 96 270 +; 274 | #X obj 96 292 t f f; 275 | #X msg 138 209 0; 276 | #X obj 29 309 f; 277 | #X obj 276 199 f; 278 | #X obj 306 199 + 1; 279 | #X obj 276 221 swap 10; 280 | #X obj 276 243 pow; 281 | #X msg 44 356 1; 282 | #X obj 96 114 t f b b; 283 | #X obj 276 131 spigot; 284 | #X msg 347 92 1; 285 | #X msg 309 66 0; 286 | #X obj 29 404 *; 287 | #X obj 96 90 spigot; 288 | #X obj 309 43 r \$0-init; 289 | #X obj 138 163 r \$0-init; 290 | #X obj 44 333 r \$0-init; 291 | #X obj 291 155 r \$0-init; 292 | #X obj 115 138 s \$0-let_bang; 293 | #X obj 347 70 r \$0-dec; 294 | #X obj 96 17 inlet; 295 | #X obj 77 365 r \$0-negative; 296 | #X obj 29 426 outlet; 297 | #X obj 129 37 r \$0-init; 298 | #X msg 129 59 1; 299 | #X obj 196 51 r \$0-scientific; 300 | #X msg 196 73 0; 301 | #X obj 77 387 spigot; 302 | #X obj 161 348 r \$0-init; 303 | #X msg 161 370 1; 304 | #X obj 190 370 r \$0-scientific; 305 | #X msg 190 392 0; 306 | #X obj 29 281 r \$0-next; 307 | #X obj 96 231 /; 308 | #X msg 291 176 0; 309 | #X obj 138 185 t b b; 310 | #X msg 165 236 10; 311 | #X obj 347 114 t f f; 312 | #X connect 0 0 1 0; 313 | #X connect 1 0 38 0; 314 | #X connect 1 1 2 0; 315 | #X connect 2 0 3 0; 316 | #X connect 3 0 4 1; 317 | #X connect 4 0 5 0; 318 | #X connect 5 0 7 1; 319 | #X connect 5 1 2 1; 320 | #X connect 6 0 2 1; 321 | #X connect 7 0 17 0; 322 | #X connect 8 0 9 0; 323 | #X connect 8 0 10 0; 324 | #X connect 9 0 8 1; 325 | #X connect 10 0 11 0; 326 | #X connect 10 1 11 1; 327 | #X connect 11 0 38 1; 328 | #X connect 12 0 17 1; 329 | #X connect 13 0 0 0; 330 | #X connect 13 1 23 0; 331 | #X connect 13 2 14 0; 332 | #X connect 14 0 8 0; 333 | #X connect 15 0 42 0; 334 | #X connect 16 0 14 1; 335 | #X connect 17 0 27 0; 336 | #X connect 18 0 13 0; 337 | #X connect 19 0 16 0; 338 | #X connect 20 0 40 0; 339 | #X connect 21 0 12 0; 340 | #X connect 22 0 39 0; 341 | #X connect 24 0 15 0; 342 | #X connect 25 0 18 0; 343 | #X connect 26 0 32 0; 344 | #X connect 28 0 29 0; 345 | #X connect 29 0 18 1; 346 | #X connect 30 0 31 0; 347 | #X connect 31 0 18 1; 348 | #X connect 32 0 17 1; 349 | #X connect 33 0 34 0; 350 | #X connect 34 0 32 1; 351 | #X connect 35 0 36 0; 352 | #X connect 36 0 32 1; 353 | #X connect 37 0 7 0; 354 | #X connect 38 0 4 0; 355 | #X connect 39 0 8 0; 356 | #X connect 40 0 6 0; 357 | #X connect 40 1 41 0; 358 | #X connect 41 0 3 1; 359 | #X connect 42 0 14 1; 360 | #X connect 42 1 3 1; 361 | #X restore 168 355 pd \$0-non_scientific_val; 362 | #X obj 168 424 *; 363 | #X obj 227 385 r \$0-init; 364 | #X msg 227 407 1; 365 | #X obj 172 157 s \$0-bang; 366 | #N canvas 0 22 304 241 \$0-set_scientific 0; 367 | #X obj 78 165 s \$0-scientific; 368 | #X obj 78 141 spigot; 369 | #X obj 78 48 inlet; 370 | #X obj 111 71 r \$0-init; 371 | #X msg 111 93 0; 372 | #X obj 152 102 r \$0-let_bang; 373 | #X msg 152 124 1; 374 | #X connect 1 0 0 0; 375 | #X connect 2 0 1 0; 376 | #X connect 3 0 4 0; 377 | #X connect 4 0 1 1; 378 | #X connect 5 0 6 0; 379 | #X connect 6 0 1 1; 380 | #X restore 213 279 pd \$0-set_scientific; 381 | #X obj 73 237 sel 45 46; 382 | #X obj 73 37 inlet; 383 | #X obj 168 446 outlet; 384 | #X text 229 235 ASCII 101 is e \, for scientific notation; 385 | #X text 82 182 ASCII 45 is hyphen for negative values and 46 is dot 386 | \, for fractional values; 387 | #X connect 0 0 21 0; 388 | #X connect 0 1 1 0; 389 | #X connect 1 0 9 0; 390 | #X connect 1 1 8 0; 391 | #X connect 2 0 0 0; 392 | #X connect 2 1 3 0; 393 | #X connect 3 0 19 0; 394 | #X connect 4 0 2 0; 395 | #X connect 4 1 10 0; 396 | #X connect 4 2 5 0; 397 | #X connect 5 0 3 1; 398 | #X connect 6 0 3 1; 399 | #X connect 7 0 13 0; 400 | #X connect 8 0 20 0; 401 | #X connect 9 0 15 0; 402 | #X connect 9 1 14 0; 403 | #X connect 11 0 6 0; 404 | #X connect 14 0 16 1; 405 | #X connect 15 0 16 0; 406 | #X connect 16 0 23 0; 407 | #X connect 17 0 18 0; 408 | #X connect 18 0 16 1; 409 | #X connect 21 0 7 0; 410 | #X connect 21 1 12 0; 411 | #X connect 22 0 4 0; 412 | #X restore 29 210 pd assemble_dec; 413 | #N canvas 737 96 511 441 check_numeral_system_and_inf 0; 414 | #X obj 96 92 t l l; 415 | #X obj 123 115 list split 2; 416 | #X obj 123 162 t f f; 417 | #X obj 123 184 == 0; 418 | #X obj 96 214 spigot; 419 | #X obj 170 257 list; 420 | #X obj 204 227 f; 421 | #X obj 170 179 t f f; 422 | #X obj 170 331 spigot; 423 | #X obj 243 331 spigot; 424 | #X obj 96 24 inlet; 425 | #X obj 96 353 outlet dec; 426 | #X obj 170 353 outlet hex; 427 | #X obj 243 353 outlet oct; 428 | #N canvas 237 218 812 521 \$0-is_inf 0; 429 | #X obj 87 34 inlet; 430 | #X msg 341 207 105 110 102; 431 | #X obj 320 252 list split 1; 432 | #X obj 177 269 sel; 433 | #X msg 192 339 0; 434 | #X obj 87 125 list length; 435 | #X obj 87 147 == 3; 436 | #X msg 177 425 1; 437 | #X obj 177 447 *; 438 | #X obj 363 408 10; 439 | #X obj 363 430 pow 50; 440 | #X obj 363 363 loadbang; 441 | #X obj 177 469 outlet; 442 | #X text 358 173 this is "inf" which goes through only if its the only 443 | thing provided in the symbol; 444 | #X obj 320 230 list; 445 | #X obj 87 56 t l l; 446 | #X obj 363 385 t b b; 447 | #X obj 93 79 list; 448 | #X obj 114 214 == 0; 449 | #X obj 30 231 spigot; 450 | #X obj 93 101 t l l; 451 | #X obj 30 253 outlet; 452 | #X obj 177 118 spigot; 453 | #X msg 192 315 0; 454 | #N canvas 489 276 422 287 drip_list 0; 455 | #X obj 152 97 until; 456 | #X obj 152 119 list; 457 | #X obj 152 51 inlet; 458 | #X obj 152 163 outlet; 459 | #X obj 152 73 t b l; 460 | #X obj 221 162 t b b; 461 | #X obj 221 184 outlet done; 462 | #X obj 152 141 list split 1; 463 | #X obj 239 80 inlet; 464 | #X connect 0 0 1 0; 465 | #X connect 1 0 7 0; 466 | #X connect 2 0 4 0; 467 | #X connect 4 0 0 0; 468 | #X connect 4 1 1 1; 469 | #X connect 5 0 6 0; 470 | #X connect 5 1 0 1; 471 | #X connect 7 0 3 0; 472 | #X connect 7 1 1 1; 473 | #X connect 7 2 5 0; 474 | #X connect 8 0 0 1; 475 | #X restore 177 141 pd drip_list; 476 | #X obj 177 403 sel 1; 477 | #X obj 177 213 t f b; 478 | #X obj 314 158 t b b; 479 | #X obj 87 169 t b f; 480 | #X obj 114 191 t f f; 481 | #X obj 192 291 t b b; 482 | #X obj 177 360 f; 483 | #X obj 207 360 + 1; 484 | #X obj 177 382 == 2; 485 | #X obj 287 124 t b b; 486 | #X connect 0 0 15 0; 487 | #X connect 1 0 14 1; 488 | #X connect 2 0 3 1; 489 | #X connect 2 1 14 1; 490 | #X connect 3 0 31 0; 491 | #X connect 3 1 30 0; 492 | #X connect 4 0 31 1; 493 | #X connect 5 0 6 0; 494 | #X connect 6 0 28 0; 495 | #X connect 7 0 8 0; 496 | #X connect 8 0 12 0; 497 | #X connect 9 0 10 0; 498 | #X connect 10 0 8 1; 499 | #X connect 11 0 16 0; 500 | #X connect 14 0 2 0; 501 | #X connect 15 0 5 0; 502 | #X connect 15 1 17 1; 503 | #X connect 16 0 9 0; 504 | #X connect 16 1 27 0; 505 | #X connect 17 0 20 0; 506 | #X connect 18 0 19 1; 507 | #X connect 19 0 21 0; 508 | #X connect 20 0 19 0; 509 | #X connect 20 1 22 0; 510 | #X connect 22 0 24 0; 511 | #X connect 23 0 29 0; 512 | #X connect 24 0 26 0; 513 | #X connect 24 1 27 0; 514 | #X connect 25 0 7 0; 515 | #X connect 26 0 3 0; 516 | #X connect 26 1 14 0; 517 | #X connect 27 0 4 0; 518 | #X connect 27 1 1 0; 519 | #X connect 28 0 17 0; 520 | #X connect 28 1 29 0; 521 | #X connect 29 0 18 0; 522 | #X connect 29 1 22 1; 523 | #X connect 30 0 23 0; 524 | #X connect 30 1 34 0; 525 | #X connect 31 0 32 0; 526 | #X connect 31 0 33 0; 527 | #X connect 32 0 31 1; 528 | #X connect 33 0 25 0; 529 | #X connect 34 0 24 1; 530 | #X connect 34 1 27 0; 531 | #X restore 96 46 pd \$0-is_inf; 532 | #X obj 387 63 outlet inf; 533 | #X obj 317 196 t f f f; 534 | #X obj 323 331 spigot; 535 | #X obj 356 308 == 3; 536 | #X obj 170 279 t l l l; 537 | #X obj 96 68 t l b; 538 | #N canvas 9 142 851 512 define_numeral_system 0; 539 | #X obj 34 57 unpack; 540 | #X obj 34 165 == 48; 541 | #X obj 82 250 == 120; 542 | #X obj 34 267 +; 543 | #X obj 34 79 t f f; 544 | #X obj 464 96 t f f; 545 | #X obj 464 138 == 98; 546 | #X obj 491 117 == 66; 547 | #X obj 464 161 ||; 548 | #X obj 34 449 f; 549 | #X obj 464 410 sel 1; 550 | #X msg 464 432 3; 551 | #X msg 49 406 0; 552 | #X obj 127 181 == 46; 553 | #X obj 82 102 t f f f; 554 | #X obj 34 34 inlet; 555 | #X obj 49 384 inlet init; 556 | #X obj 34 471 outlet; 557 | #X text 117 149 if first character is 0 and second is dot \, then it's 558 | a decimal number; 559 | #X obj 121 125 outlet; 560 | #X text 130 252 if first character is 0 and second is x \, then it's 561 | a hexadecimal number; 562 | #X text 232 202 if the first character is 0 and the rest are numbers 563 | \, it's an octal value; 564 | #X obj 112 306 +; 565 | #X msg 112 351 0; 566 | #X obj 112 328 sel 2; 567 | #X obj 34 187 t f f f; 568 | #X obj 34 290 sel 2; 569 | #X obj 193 204 sel 1; 570 | #X msg 193 226 2; 571 | #X msg 34 312 1; 572 | #X obj 61 312 t b; 573 | #X text 466 78 if the first character is B or b it's a binary value 574 | ; 575 | #X connect 0 0 4 0; 576 | #X connect 0 1 14 0; 577 | #X connect 1 0 25 0; 578 | #X connect 2 0 3 1; 579 | #X connect 3 0 26 0; 580 | #X connect 4 0 1 0; 581 | #X connect 4 1 5 0; 582 | #X connect 5 0 6 0; 583 | #X connect 5 1 7 0; 584 | #X connect 6 0 8 0; 585 | #X connect 7 0 8 1; 586 | #X connect 8 0 10 0; 587 | #X connect 9 0 17 0; 588 | #X connect 10 0 11 0; 589 | #X connect 11 0 9 1; 590 | #X connect 12 0 9 1; 591 | #X connect 13 0 22 1; 592 | #X connect 14 0 2 0; 593 | #X connect 14 1 13 0; 594 | #X connect 14 2 19 0; 595 | #X connect 15 0 0 0; 596 | #X connect 16 0 12 0; 597 | #X connect 22 0 24 0; 598 | #X connect 23 0 9 1; 599 | #X connect 24 0 23 0; 600 | #X connect 25 0 3 0; 601 | #X connect 25 1 22 0; 602 | #X connect 25 2 27 0; 603 | #X connect 26 0 29 0; 604 | #X connect 26 1 30 0; 605 | #X connect 27 0 28 0; 606 | #X connect 28 0 9 1; 607 | #X connect 29 0 9 0; 608 | #X connect 30 0 9 0; 609 | #X restore 123 139 pd define_numeral_system; 610 | #X obj 170 201 sel 1 2 3; 611 | #X obj 203 308 == 1; 612 | #X obj 276 308 == 2; 613 | #X obj 323 353 outlet bin; 614 | #X connect 0 0 4 0; 615 | #X connect 0 1 1 0; 616 | #X connect 1 0 21 0; 617 | #X connect 1 1 5 1; 618 | #X connect 2 0 3 0; 619 | #X connect 2 1 7 0; 620 | #X connect 3 0 4 1; 621 | #X connect 4 0 11 0; 622 | #X connect 5 0 19 0; 623 | #X connect 6 0 5 0; 624 | #X connect 7 0 22 0; 625 | #X connect 7 1 16 0; 626 | #X connect 8 0 12 0; 627 | #X connect 9 0 13 0; 628 | #X connect 10 0 14 0; 629 | #X connect 14 0 20 0; 630 | #X connect 14 1 15 0; 631 | #X connect 16 0 23 0; 632 | #X connect 16 1 24 0; 633 | #X connect 16 2 18 0; 634 | #X connect 17 0 25 0; 635 | #X connect 18 0 17 1; 636 | #X connect 19 0 8 0; 637 | #X connect 19 1 9 0; 638 | #X connect 19 2 17 0; 639 | #X connect 20 0 0 0; 640 | #X connect 20 1 21 1; 641 | #X connect 21 0 2 0; 642 | #X connect 21 1 6 1; 643 | #X connect 22 0 5 0; 644 | #X connect 22 1 6 0; 645 | #X connect 22 2 6 0; 646 | #X connect 23 0 8 1; 647 | #X connect 24 0 9 1; 648 | #X restore 29 118 pd check_numeral_system_and_inf; 649 | #N canvas 435 210 466 391 assemble_bin 0; 650 | #X obj 103 17 inlet; 651 | #N canvas 489 276 422 287 drip_list 0; 652 | #X obj 152 97 until; 653 | #X obj 152 119 list; 654 | #X obj 152 51 inlet; 655 | #X obj 152 163 outlet; 656 | #X obj 152 73 t b l; 657 | #X obj 221 162 t b b; 658 | #X obj 221 184 outlet done; 659 | #X obj 152 141 list split 1; 660 | #X connect 0 0 1 0; 661 | #X connect 1 0 7 0; 662 | #X connect 2 0 4 0; 663 | #X connect 4 0 0 0; 664 | #X connect 4 1 1 1; 665 | #X connect 5 0 6 0; 666 | #X connect 5 1 0 1; 667 | #X connect 7 0 3 0; 668 | #X connect 7 1 1 1; 669 | #X connect 7 2 5 0; 670 | #X restore 103 62 pd drip_list; 671 | #X obj 103 39 t l l; 672 | #X obj 230 56 list length; 673 | #X obj 103 84 moses 48; 674 | #X obj 148 129 - 48; 675 | #X obj 230 78 - 1; 676 | #X obj 148 151 t f b; 677 | #X obj 175 174 f; 678 | #X obj 205 174 - 1; 679 | #X obj 175 218 pow; 680 | #X obj 148 235 *; 681 | #X obj 148 257 +; 682 | #X obj 148 279 t f f; 683 | #X obj 113 296 f; 684 | #X obj 113 341 outlet; 685 | #X obj 148 107 moses 50; 686 | #X text 162 86 0 or 1; 687 | #X obj 175 196 swap 2; 688 | #X obj 113 318 t f b; 689 | #X msg 184 240 0; 690 | #X connect 0 0 2 0; 691 | #X connect 1 0 4 0; 692 | #X connect 1 1 14 0; 693 | #X connect 2 0 1 0; 694 | #X connect 2 1 3 0; 695 | #X connect 3 0 6 0; 696 | #X connect 4 1 16 0; 697 | #X connect 5 0 7 0; 698 | #X connect 6 0 8 1; 699 | #X connect 7 0 11 0; 700 | #X connect 7 1 8 0; 701 | #X connect 8 0 9 0; 702 | #X connect 8 0 18 0; 703 | #X connect 9 0 8 1; 704 | #X connect 10 0 11 1; 705 | #X connect 11 0 12 0; 706 | #X connect 12 0 13 0; 707 | #X connect 13 0 14 1; 708 | #X connect 13 1 12 1; 709 | #X connect 14 0 19 0; 710 | #X connect 16 0 5 0; 711 | #X connect 18 0 10 0; 712 | #X connect 18 1 10 1; 713 | #X connect 19 0 15 0; 714 | #X connect 19 1 20 0; 715 | #X connect 20 0 12 1; 716 | #X restore 166 141 pd assemble_bin; 717 | #X text 30 23 convert a symbol which represents a value in either decimal 718 | \, hexadecimal \, octal \, or binary numeral system to a float; 719 | #X connect 0 0 7 0; 720 | #X connect 1 0 0 0; 721 | #X connect 4 0 2 0; 722 | #X connect 5 0 2 0; 723 | #X connect 6 0 2 0; 724 | #X connect 7 0 6 0; 725 | #X connect 7 1 4 0; 726 | #X connect 7 2 5 0; 727 | #X connect 7 3 8 0; 728 | #X connect 7 4 2 0; 729 | #X connect 8 0 2 0; 730 | --------------------------------------------------------------------------------