aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil S. Matheussen <ksvalast@users.sourceforge.net>2004-08-09 14:23:05 +0000
committerKjetil S. Matheussen <ksvalast@users.sourceforge.net>2004-08-09 14:23:05 +0000
commita6376ab21f5a2933a156be03ba0a017fe0fcd8c4 (patch)
tree0fd3f82c390c2d291090045aa7dc7ad0d0063834
parent437f26f3708a8c9f40b6569f18b8f0efb628a1d0 (diff)
New SEND syntax
svn path=/trunk/externals/k_cext/; revision=1930
-rw-r--r--help-markov.pd44
-rw-r--r--help-send.pd29
2 files changed, 37 insertions, 36 deletions
diff --git a/help-markov.pd b/help-markov.pd
index 84290f3..b0d45a9 100644
--- a/help-markov.pd
+++ b/help-markov.pd
@@ -7,11 +7,6 @@
#X text 227 19 STEP;
#X msg 371 52 \; state 1;
#X text 371 32 reset;
-#X obj 260 103 k_cext 1 0 \; \; int state=I(0) \; int s1[3]=BEGIN 30
-\, 10 \, 70 END \; int s2[3]=BEGIN 60 \, 60 \, 80 END \; int random=RANDOM(100)
-\; \; IF random < s1[state] THEN DO \; . SEND("state" \, 1) \; ELIF
-random < s2[state] THEN DO \; . SEND("state" \, 2) \; ELSE \; . SEND("state"
-\, 3) \;;
#X obj 33 25 bng 20 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 72 16 r state;
@@ -34,9 +29,6 @@ THEN DO \; . . . state=1 \; . . ELIF random<80 THEN DO \; . . . state=2
#X obj 561 300 k_cfunc INT_markov int a int b \; int random=RANDOM(100)
\; IF random<a THEN DO \; . return 1 \; ELIF random<b THEN DO \; .
return 2 \; ELSE \; . return 3 \;;
-#X obj 557 115 k_cext 1 0 \; \; int s1[3]=BEGIN 30 \, 10 \, 70 END
-\; int s2[3]=BEGIN 60 \, 60 \, 80 END \; SEND("state" \, INT_markov(s1[I(0)]
-\, s2[I(0)])) \;;
#X obj 574 46 bng 20 250 50 0 empty empty empty 20 8 0 8 -262144 -1
-1;
#X obj 613 37 r state;
@@ -44,23 +36,31 @@ return 2 \; ELSE \; . return 3 \;;
#X floatatom 642 61 3 0 0 0 - - -;
#X text 557 25 STEP;
#X msg 530 72 print;
-#X text 237 29;
+#X text 237 29 comment;
#X text 244 360 Three ways to implement the markov;
#X msg 561 259 print;
+#X obj 260 103 k_cext 1 0 \; \; int state=I(0) \; int s1[3]=BEGIN 30
+\, 10 \, 70 END \; int s2[3]=BEGIN 60 \, 60 \, 80 END \; int random=RANDOM(100)
+\; \; IF random < s1[state] THEN DO \; . SEND(state \, 1) \; ELIF random
+< s2[state] THEN DO \; . SEND(state \, 2) \; ELSE \; . SEND(state \,
+3) \;;
+#X obj 557 115 k_cext 1 0 \; \; int s1[3]=BEGIN 30 \, 10 \, 70 END
+\; int s2[3]=BEGIN 60 \, 60 \, 80 END \; SEND(state \, INT_markov(s1[I(0)]
+\, s2[I(0)])) \;;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 1 0 3 0;
-#X connect 2 0 7 0;
+#X connect 2 0 28 0;
+#X connect 7 0 9 0;
+#X connect 8 0 9 1;
#X connect 8 0 10 0;
-#X connect 9 0 10 1;
-#X connect 9 0 11 0;
-#X connect 10 0 18 0;
-#X connect 16 0 18 0;
-#X connect 17 0 7 0;
-#X connect 18 0 13 0;
-#X connect 21 0 23 0;
-#X connect 22 0 23 1;
-#X connect 22 0 24 0;
-#X connect 23 0 20 0;
-#X connect 26 0 20 0;
-#X connect 29 0 19 0;
+#X connect 9 0 17 0;
+#X connect 15 0 17 0;
+#X connect 16 0 28 0;
+#X connect 17 0 12 0;
+#X connect 19 0 21 0;
+#X connect 20 0 21 1;
+#X connect 20 0 22 0;
+#X connect 21 0 29 0;
+#X connect 24 0 29 0;
+#X connect 27 0 18 0;
diff --git a/help-send.pd b/help-send.pd
index fa14d40..ee7d0a9 100644
--- a/help-send.pd
+++ b/help-send.pd
@@ -1,28 +1,29 @@
#N canvas 488 163 708 409 10;
-#X floatatom 96 329 5 0 0;
-#X floatatom 39 199 5 0 0;
-#X floatatom 149 207 5 0 0;
+#X floatatom 96 329 5 0 0 0 - - -;
+#X floatatom 39 199 5 0 0 0 - - -;
+#X floatatom 149 207 5 0 0 0 - - -;
#X text 28 15 The SEND macro is just as efficient;
#X text 30 29 as the send object \, and is defined like this:;
#X obj 42 248 send a_sym;
-#X obj 141 235 k_cext 1 0 \; SEND("a_sym" \, I(0)) \;;
#X obj 96 297 r a_sym;
-#X floatatom 161 331 5 0 0;
+#X floatatom 161 331 5 0 0 0 - - -;
#X obj 161 299 r a_sym2;
-#X floatatom 384 235 5 0 0;
+#X floatatom 384 235 5 0 0 0 - - -;
#X text 379 202 Warning \, the following code will not do;
#X msg 321 182 print;
#X text 379 215 as one might expect:;
-#X obj 382 261 k_cext 1 0 \; char *syms[2]=BEGIN "a_sym" \, "a_sym2"
-END \; static int s=0 \; IF s==0 THEN DO \; . s=1 \; ELSE \; . s=0
-\; SEND(syms[s] \, s+5) \;;
#X text 32 59 #define SEND(symname \, val) do BEGIN static t_symbol
*k_cext_internal_symbol=NULL SC if(k_cext_internal_symbol==NULL) k_cext_internal_symbol=gensym(symname)
SC if(k_cext_internal_symbol->s_thing) pd_float(k_cext_internal_symbol->s_thing
\, val) SC END while(0);
+#X obj 141 235 k_cext 1 0 \; SEND(a_sym \, I(0)) \;;
+#X obj 382 261 k_cext 1 0 \; char *syms[2]=BEGIN s<a_sym>s \, s<a_sym2>s
+END \; static int s=0 \; IF s==0 THEN DO \; . s=1 \; ELSE \; . s=0
+\; SEN(syms[s] \, s+5) \;;
+#X text 381 383 (The SEN macro expect real strings.);
#X connect 1 0 5 0;
-#X connect 2 0 6 0;
-#X connect 7 0 0 0;
-#X connect 9 0 8 0;
-#X connect 10 0 14 0;
-#X connect 12 0 14 0;
+#X connect 2 0 14 0;
+#X connect 6 0 0 0;
+#X connect 8 0 7 0;
+#X connect 9 0 15 0;
+#X connect 11 0 15 0;