#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 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 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 text 82 44 [gfsm] \, [zexy]; #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 48 114 662 532 gfsm_markov_next_guts 0; #X obj 28 4 r \$0-next; #X obj 243 464 outlet; #X obj 28 26 route bang; #X obj 217 168 * 1; #X obj 405 461 outlet; #X obj 101 429 gfsm_alphabet \$1-alph; #X msg 101 407 char2atom! \$1; #X obj 70 377 unpack 0 0 0 0; #X msg 18 411 set \$1; #X obj 18 432 s \$0-state; #X obj 502 461 outlet; #X obj 263 428 gfsm_alphabet \$1-alph; #X msg 263 406 char2atom! \$1; #X obj 414 234 gfsm_state \$1-fsm 0; #X obj 414 20 r \$0-state; #X obj 502 283 route bang; #X obj 502 305 t b; #X obj 414 257 route total_weight arc_gen; #X obj 28 48 t b; #X obj 203 124 t b f; #X obj 217 145 f 0; #X obj 246 144 t b f; #X msg 217 190 arc_gen \$1; #X msg 47 190 arc_reset \, total_weight; #X obj 28 70 random 524287; #X obj 28 91 / 524287; #X connect 0 0 2 0; #X connect 2 0 18 0; #X connect 2 1 19 0; #X connect 3 0 22 0; #X connect 5 1 1 0; #X connect 6 0 5 0; #X connect 7 0 8 0; #X connect 7 1 6 0; #X connect 7 2 12 0; #X connect 8 0 9 0; #X connect 11 1 4 0; #X connect 12 0 11 0; #X connect 13 0 17 0; #X connect 14 0 13 0; #X connect 15 0 16 0; #X connect 15 1 7 0; #X connect 16 0 10 0; #X connect 17 0 21 0; #X connect 17 1 15 0; #X connect 18 0 24 0; #X connect 19 0 23 0; #X connect 19 1 20 1; #X connect 20 0 3 0; #X connect 21 0 20 0; #X connect 21 1 3 1; #X connect 22 0 13 0; #X connect 23 0 13 0; #X connect 24 0 25 0; #X connect 25 0 19 0; #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;