From 0727bfcaf2bd48bf501a7fa95515c400a1996902 Mon Sep 17 00:00:00 2001 From: Bryan Jurish Date: Thu, 2 Feb 2006 12:49:19 +0000 Subject: initial cvs import svn path=/trunk/externals/moocow/; revision=4536 --- gfsm/src/gfsm_markov.pd | 414 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 414 insertions(+) create mode 100644 gfsm/src/gfsm_markov.pd (limited to 'gfsm/src/gfsm_markov.pd') diff --git a/gfsm/src/gfsm_markov.pd b/gfsm/src/gfsm_markov.pd new file mode 100644 index 0000000..ab7142d --- /dev/null +++ b/gfsm/src/gfsm_markov.pd @@ -0,0 +1,414 @@ +#N canvas 386 0 450 300 10; +#X text 85 2 gfsm_markov : Markov chain using gfsm; +#X text 181 17 for details \, see:; +#N canvas 266 0 499 471 gfsm_markov_doc 0; +#X text 85 2 gfsm_markov : Markov chain using gfsm; +#X text 15 67 INLETS:; +#X text 28 84 1 - control messages; +#X text 203 64 OUTLETS:; +#X text 17 128 MESSAGES:; +#X text 81 219 set ATOM : set current state to ATOM; +#X text 116 231 set : reset to initial (root) state; +#X text 107 441 bang : synonym for "next"; +#X text 16 24 SYNTAX: gfsm_markov OBJNAME; +#X text 15 44 REQUIRES:; +#X obj 83 44 gfsm; +#X text 75 147 load BASE : load text files BASE.lab and BASE.tfst; +#X text 75 159 save BASE : save text files BASE.lab \, BASE.tfst; +#X text 47 182 load_bin BASE : load files BASE.lab \, BASE.gfst; +#X text 47 194 save_bin BASE : save files BASE.lab \, BASE.gfst; +#X obj 121 45 zexy; +#X text 156 294 from current state \, and move to; +#X text 23 281 add A1 A2 WEIGHT : add WEIGHT to arc on atom-pair A1:A2 +; +#X text 73 411 next PROB : get next arc with PROB as nearest probability +; +#X text 107 427 next : get next arc with random probability; +#X text 216 106 3 - bang when stuck; +#X text 157 330 + WEIGHT defaults to 1; +#X text 157 318 + A2 defaults to 0 (epsilon); +#X text 157 378 + WEIGHT defaults to 1; +#X text 157 366 + A2 defaults to 0 (epsilon); +#X text 18 354 addi A1 A2 WEIGHT : add WEIGHT to initial arc on atoms +A1:A2; +#X text 156 305 (possibly new) state for atom A1; +#X text 217 92 2 - upper side atoms on "next"; +#X text 217 78 1 - lower side atoms on "next"; +#X text 102 250 clear : clear underlying objects; +#X restore 309 19 pd gfsm_markov_doc; +#X obj 20 60 inlet; +#X obj 22 261 outlet; +#X obj 103 260 outlet; +#N canvas 27 71 720 463 gfsm_markov_control_guts 0; +#X obj 22 8 inlet; +#X obj 450 32 print gfsm_markov_bad_message; +#X obj 183 230 s \$0-load; +#X obj 215 209 s \$0-save; +#X obj 247 187 s \$0-load_bin; +#X obj 280 164 s \$0-save_bin; +#X obj 86 373 s \$0-set; +#X obj 312 125 s \$0-clear; +#X obj 118 337 s \$0-add; +#X obj 22 409 s \$0-next; +#X obj 303 99 s \$0-fsm; +#X obj 335 78 s \$0-alph; +#X obj 151 295 s \$0-addi; +#X obj 415 79 s \$0-state-r; +#X obj 22 28 route next bang set add addi load save load_bin save_bin +clear fsm alph state add2; +#X obj 449 122 s \$0-add2; +#X connect 0 0 14 0; +#X connect 14 0 9 0; +#X connect 14 1 9 0; +#X connect 14 2 6 0; +#X connect 14 3 8 0; +#X connect 14 4 12 0; +#X connect 14 5 2 0; +#X connect 14 6 3 0; +#X connect 14 7 4 0; +#X connect 14 8 5 0; +#X connect 14 9 7 0; +#X connect 14 10 10 0; +#X connect 14 11 11 0; +#X connect 14 12 13 0; +#X connect 14 13 15 0; +#X connect 14 14 1 0; +#X restore 20 82 pd gfsm_markov_control_guts; +#N canvas 0 252 310 205 gfsm_markov_fsm_guts 0; +#X obj 40 121 gfsm_automaton \$1-fsm; +#X obj 40 53 gfsm_alphabet \$1-alph; +#X obj 40 100 r \$0-fsm; +#X obj 40 33 r \$0-alph; +#X connect 2 0 0 0; +#X connect 3 0 1 0; +#X restore 21 113 pd gfsm_markov_fsm_guts; +#N canvas 114 67 710 486 gfsm_markov_io_guts 0; +#X obj 21 87 symbol; +#X msg 209 301 load \$1; +#X obj 178 86 symbol; +#X msg 556 308 save \$1; +#X msg 21 215 load \$1; +#X obj 367 85 symbol; +#X obj 526 79 symbol; +#X obj 21 20 r \$0-load; +#X obj 367 22 r \$0-save; +#X obj 526 26 r \$0-save_bin; +#X obj 178 19 r \$0-load_bin; +#X obj 21 110 t s s; +#X obj 178 106 t s s; +#X obj 367 107 t s s; +#X obj 526 100 t s s; +#X msg 179 215 load_bin \$1; +#X msg 526 216 save_bin \$1; +#X msg 367 215 save \$1; +#X obj 21 193 makefilename %s.tfst; +#X obj 178 192 makefilename %s.gfst; +#X obj 367 193 makefilename %s.tfst; +#X obj 526 193 makefilename %s.gfst; +#X obj 556 286 makefilename %s.lab; +#X obj 209 280 makefilename %s.lab; +#X obj 179 434 s \$0-fsm; +#X obj 367 429 s \$0-alph; +#X connect 0 0 11 0; +#X connect 1 0 25 0; +#X connect 2 0 12 0; +#X connect 3 0 25 0; +#X connect 4 0 24 0; +#X connect 5 0 13 0; +#X connect 6 0 14 0; +#X connect 7 0 0 0; +#X connect 8 0 5 0; +#X connect 9 0 6 0; +#X connect 10 0 2 0; +#X connect 11 0 18 0; +#X connect 11 1 23 0; +#X connect 12 0 19 0; +#X connect 12 1 23 0; +#X connect 13 0 20 0; +#X connect 13 1 22 0; +#X connect 14 0 21 0; +#X connect 14 1 22 0; +#X connect 15 0 24 0; +#X connect 16 0 24 0; +#X connect 17 0 24 0; +#X connect 18 0 4 0; +#X connect 19 0 15 0; +#X connect 20 0 17 0; +#X connect 21 0 16 0; +#X connect 22 0 3 0; +#X connect 23 0 1 0; +#X restore 21 138 pd gfsm_markov_io_guts; +#N canvas 150 351 551 242 gfsm_markov_set_guts 0; +#X obj 32 18 r \$0-set; +#X obj 32 40 route bang; +#X obj 97 133 gfsm_alphabet \$1-alph; +#X obj 97 61 route float list; +#X msg 97 110 atom2char! \$1; +#X obj 204 83 symbol; +#X msg 97 156 set \$1; +#X obj 97 178 s \$0-state; +#X msg 32 83 0; +#X obj 345 15 r \$0-clear; +#X obj 389 78 s \$0-alph; +#X obj 367 126 s \$0-fsm; +#X msg 367 105 clear \, root 0; +#X msg 389 57 clear \, atom2char! 0; +#X obj 345 35 t b b b; +#X msg 345 150 set 0; +#X obj 346 170 s \$0-state; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 1 1 3 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 1 4 0; +#X connect 3 2 5 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 8 0 4 0; +#X connect 9 0 14 0; +#X connect 12 0 11 0; +#X connect 13 0 10 0; +#X connect 14 0 15 0; +#X connect 14 1 12 0; +#X connect 14 2 13 0; +#X connect 15 0 16 0; +#X restore 21 162 pd gfsm_markov_set_guts; +#X obj 261 60 loadbang; +#N canvas 142 144 416 223 gfsm_markov_init_guts 0; +#X obj 15 9 inlet; +#X msg 15 97 char2atom! 0; +#X obj 15 118 s \$0-alph; +#X obj 15 66 t b b; +#X obj 74 10 r \$0-loadbang; +#X obj 179 124 gfsm_automaton \$1-fsm; +#X msg 206 97 root; +#X obj 179 145 route root; +#X obj 179 168 route bang; +#X msg 155 98 root 0; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 1 0; +#X connect 3 1 6 0; +#X connect 4 0 3 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 5 0; +#X restore 261 81 pd gfsm_markov_init_guts; +#N canvas 66 12 666 508 gfsm_markov_add_guts 0; +#X obj 28 231 gfsm_alphabet \$1-alph; +#X obj 28 167 route float list; +#X msg 28 211 atom2char! \$1; +#X obj 95 190 symbol; +#X obj 58 426 gfsm_state \$1-fsm; +#X obj 71 402 r \$0-state; +#X msg 508 322 set \$1; +#X obj 508 428 s \$0-state; +#X obj 28 12 r \$0-add1; +#X obj 121 12 r \$0-add; +#X obj 123 320 1; +#X obj 28 260 t f f; +#X obj 413 14 r \$0-addi1; +#X obj 492 14 r \$0-addi; +#X obj 443 89 gfsm_automaton \$1-fsm; +#X msg 443 67 root; +#X obj 413 39 t a b; +#X obj 443 110 route root; +#X obj 443 132 route bang; +#X msg 481 67 root 0; +#X msg 58 372 add_weight \$1 \$1 \$2 \$3; +#X obj 28 89 t a b b; +#X obj 58 347 pack 0 0 0; +#X obj 90 320 0; +#X text 139 347 <-- Q=LO HI WEIGHT; +#X obj 28 112 niagara 1; +#X obj 231 129 niagara 1; +#X obj 231 236 gfsm_alphabet \$1-alph; +#X obj 231 172 route float list; +#X msg 231 216 atom2char! \$1; +#X obj 298 195 symbol; +#X obj 204 12 r \$0-add2; +#X obj 28 42 t a b; +#X obj 205 35 t a b; +#X obj 446 297 spigot; +#X obj 454 273 0; +#X obj 479 273 1; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 1 1 2 0; +#X connect 1 2 3 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 8 0 32 0; +#X connect 9 0 32 0; +#X connect 10 0 22 2; +#X connect 11 0 34 0; +#X connect 11 1 22 0; +#X connect 12 0 16 0; +#X connect 13 0 16 0; +#X connect 14 0 17 0; +#X connect 15 0 14 0; +#X connect 16 0 21 0; +#X connect 16 1 15 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 18 1 6 0; +#X connect 19 0 14 0; +#X connect 20 0 4 0; +#X connect 21 0 25 0; +#X connect 21 1 23 0; +#X connect 21 2 10 0; +#X connect 22 0 20 0; +#X connect 23 0 22 1; +#X connect 25 0 1 0; +#X connect 25 1 26 0; +#X connect 26 0 28 0; +#X connect 26 1 22 2; +#X connect 27 0 22 1; +#X connect 28 0 29 0; +#X connect 28 1 29 0; +#X connect 28 2 30 0; +#X connect 29 0 27 0; +#X connect 30 0 29 0; +#X connect 31 0 33 0; +#X connect 32 0 21 0; +#X connect 32 1 36 0; +#X connect 33 0 21 0; +#X connect 33 1 35 0; +#X connect 34 0 6 0; +#X connect 35 0 34 1; +#X connect 36 0 34 1; +#X restore 21 186 pd gfsm_markov_add_guts; +#N canvas 27 0 738 524 gfsm_markov_next_guts 0; +#X obj 86 25 r \$0-next; +#X obj 243 464 outlet; +#X obj 86 47 route bang; +#X obj 151 158 * -1; +#X obj 151 136 * 1; +#X obj 559 376 t b b; +#N canvas 75 18 312 424 weight_sum 0; +#X obj 24 9 inlet; +#X msg 24 114 arc_next; +#X obj 24 319 f 0; +#X obj 199 92 0; +#X obj 89 238 unpack 0 0 0 0; +#X obj 183 262 + 0; +#X obj 88 263 t f f; +#X obj 24 350 outlet; +#X obj 60 146 r \$0-state; +#X obj 24 90 until; +#X obj 24 214 route bang; +#X obj 24 235 t b b; +#X obj 24 192 route arc_next; +#X obj 24 43 t b b b b; +#X msg 91 114 arc_reset; +#X obj 24 167 gfsm_state \$1-fsm 0; +#X connect 0 0 13 0; +#X connect 1 0 15 0; +#X connect 2 0 7 0; +#X connect 3 0 5 1; +#X connect 4 3 5 0; +#X connect 5 0 6 0; +#X connect 6 0 5 1; +#X connect 6 1 2 1; +#X connect 8 0 15 0; +#X connect 9 0 1 0; +#X connect 10 0 11 0; +#X connect 10 1 4 0; +#X connect 11 0 2 0; +#X connect 11 1 9 1; +#X connect 12 0 10 0; +#X connect 13 0 9 0; +#X connect 13 1 3 0; +#X connect 13 2 14 0; +#X connect 13 3 9 1; +#X connect 14 0 15 0; +#X connect 15 0 12 0; +#X restore 167 115 pd weight_sum; +#X obj 25 95 random 131072; +#X obj 25 116 / 131072; +#X obj 86 69 t b b b; +#X obj 151 69 t f b b; +#X msg 559 227 arc_next; +#X obj 594 269 r \$0-state; +#X obj 559 205 until; +#X obj 559 349 route bang; +#X obj 559 326 route arc_next; +#X msg 625 226 arc_reset; +#X obj 151 180 t b b f; +#X obj 405 461 outlet; +#X obj 101 429 gfsm_alphabet \$1-alph; +#X msg 101 407 char2atom! \$1; +#X obj 179 296 moses 0; +#X obj 179 251 + 0; +#X obj 179 274 t f f; +#X obj 86 225 unpack 0 0 0 0; +#X obj 18 386 f 0; +#X msg 18 411 set \$1; +#X obj 18 432 s \$0-state; +#X obj 559 292 gfsm_state \$1-fsm 0; +#X obj 559 457 outlet; +#X obj 263 428 gfsm_alphabet \$1-alph; +#X msg 263 406 char2atom! \$1; +#X obj 263 384 f 0; +#X obj 101 385 f 0; +#X obj 225 316 t b b b b; +#X connect 0 0 2 0; +#X connect 2 0 9 0; +#X connect 2 1 10 0; +#X connect 3 0 17 0; +#X connect 4 0 3 0; +#X connect 5 0 29 0; +#X connect 5 1 13 1; +#X connect 6 0 4 1; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 9 0 7 0; +#X connect 9 1 6 0; +#X connect 9 2 13 1; +#X connect 10 0 4 0; +#X connect 10 1 6 0; +#X connect 10 2 13 1; +#X connect 11 0 28 0; +#X connect 12 0 28 0; +#X connect 13 0 11 0; +#X connect 14 0 5 0; +#X connect 14 1 24 0; +#X connect 15 0 14 0; +#X connect 16 0 28 0; +#X connect 17 0 13 0; +#X connect 17 1 16 0; +#X connect 17 2 22 1; +#X connect 19 1 1 0; +#X connect 20 0 19 0; +#X connect 21 1 34 0; +#X connect 22 0 23 0; +#X connect 23 0 21 0; +#X connect 23 1 22 1; +#X connect 24 0 25 1; +#X connect 24 1 33 1; +#X connect 24 2 32 1; +#X connect 24 3 22 0; +#X connect 25 0 26 0; +#X connect 26 0 27 0; +#X connect 28 0 15 0; +#X connect 30 1 18 0; +#X connect 31 0 30 0; +#X connect 32 0 31 0; +#X connect 33 0 20 0; +#X connect 34 0 25 0; +#X connect 34 1 33 0; +#X connect 34 2 32 0; +#X connect 34 3 13 1; +#X restore 22 216 pd gfsm_markov_next_guts; +#X obj 185 260 outlet; +#X connect 3 0 6 0; +#X connect 10 0 11 0; +#X connect 13 0 4 0; +#X connect 13 1 5 0; +#X connect 13 2 14 0; -- cgit v1.2.1