> The [change -1] is a great idea, I just committed that to bytemask.pd
> and debytemask.pd.  But the [pd resolve-bits_0-7] abstractions seem
> quite labor-intensive, but they work.  I think it would work better to
> use multiple instances of [debytemask].
> 
> .hc

Not sure what you mean by "labor-intensive", Hans. Are you talking about
manually changing 8 numbers per object (which took me less than 1 minute for
56 channels) or are you talking about cpu processing?

Which leads me to the next question: is the Boolean approach using [& 4] and
[>> 2] more cpu friendly than using [mod 8] and [div 4]? I don't know how Pd
handles such calculations and how it talks to the cpu. I'd be really very
interested to find out if there is a difference.


Since the pin numbers are predefined when you are using a [route] object to
sort out the groups I don't see the point why the pin number should be
calculated again (in this case of multiple instances). This is why I
hardcoded them into the message boxes.

I put the two approaches next to each other to see how much simpler my
approach is object wise and calculation wise. Still with the question mark
which calculation method is more cpu friendly. Anyway changing [mod 8] and
[div 4] to [& 4] and [>> 2] shouldn't take more than a minute.

The main difference to Romans approach is that it uses more fixed code to
end up doing less when actually working.

BTW I think Romans approach makes generally more sense for most cases since
it is scalable and does not need any different code for any number of pins
(up to 128 in the current version) which makes it much simpler to use.

I have attached a patch that shows the difference between the two debyte
methods.

Ingo
#N canvas 317 0 1025 801 10;
#X obj 238 619 cnv 15 370 140 empty empty empty 20 12 0 14 -262130
-66577 0;
#X floatatom 253 633 5 0 255 0 - - -;
#X floatatom 253 685 5 0 0 0 - - -;
#X floatatom 303 685 5 0 0 0 - - -;
#X floatatom 253 731 5 0 0 0 - - -;
#X floatatom 303 731 5 0 0 0 - - -;
#X obj 253 665 mod 8;
#X obj 253 704 div 4;
#X obj 303 665 & 4;
#X obj 303 705 >> 2;
#X text 362 628 Question:;
#X obj 540 79 cnv 15 350 100 empty empty empty 20 12 0 14 -232576 -66577
0;
#X obj 659 376 cnv 15 170 180 empty empty empty 20 12 0 14 -232576
-66577 0;
#X obj 190 582 outlet;
#X obj 190 55 route 0 1 2 3 4 5 6;
#X obj 190 28 inlet;
#X obj 690 495 +;
#X msg 690 535 digital \$1 \$2;
#X obj 690 515 pack float float;
#X obj 690 378 unpack float float;
#X obj 690 82 t a a;
#X msg 717 102 \$1;
#X msg 690 102 \$2;
#X obj 690 55 route 0 1 2 3 4 5 6;
#X obj 690 28 inlet;
#X obj 550 159 trigger float float float float float float float float
;
#X obj 690 582 outlet;
#X obj 659 619 cnv 15 170 140 empty empty empty 20 12 0 14 -232576
-66577 0;
#X text 668 663 There is no need to;
#X obj 959 193 cnv 15 50 50 empty empty empty 20 12 0 14 -232576 -66577
0;
#X obj 972 199 & 15;
#X obj 972 220 * 8;
#X text 668 726 selects this pin group.;
#X text 668 711 The route object already;
#X text 362 648 is the 1st calculation using [mod] and;
#X text 362 663 [div] heavier on cpu cycles than [& 4];
#X text 362 678 and [>> 2] due to different processor;
#X text 362 693 instructions?;
#X text 687 6 debyte;
#X text 668 691 defined by the firmata.;
#X text 668 676 calculate the pin number;
#X text 668 628 The objects marked here;
#X text 668 643 are not necessary.;
#X obj 336 722 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 336 682 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 4 188 cnv 15 920 120 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 370 206 mod 128;
#X obj 310 206 mod 64;
#X obj 250 206 mod 32;
#X obj 190 206 mod 16;
#X obj 130 206 mod 8;
#X obj 70 206 mod 4;
#X obj 10 206 mod 2;
#X obj 70 226 div 2;
#X obj 430 226 div 128;
#X obj 130 226 div 4;
#X obj 190 226 div 8;
#X obj 250 226 div 16;
#X obj 310 226 div 32;
#X obj 370 226 div 64;
#X obj 10 246 change -1;
#X obj 70 246 change -1;
#X obj 130 246 change -1;
#X obj 190 246 change -1;
#X obj 250 246 change -1;
#X obj 310 246 change -1;
#X obj 370 246 change -1;
#X obj 430 246 change -1;
#X msg 10 266 digital 0 \$1;
#X msg 70 286 digital 1 \$1;
#X msg 130 266 digital 2 \$1;
#X msg 190 286 digital 3 \$1;
#X msg 250 266 digital 4 \$1;
#X msg 310 286 digital 5 \$1;
#X msg 370 266 digital 6 \$1;
#X msg 430 286 digital 7 \$1;
#X obj 430 206 mod 256;
#X msg 550 264 0 \$1;
#X msg 596 284 1 \$1;
#X msg 643 265 2 \$1;
#X msg 690 284 3 \$1;
#X msg 736 266 4 \$1;
#X msg 783 284 5 \$1;
#X msg 830 267 6 \$1;
#X msg 877 284 7 \$1;
#X obj 550 206 & 1;
#X obj 596 205 & 2;
#X obj 643 205 & 4;
#X obj 690 205 & 8;
#X obj 736 205 & 16;
#X obj 783 205 & 32;
#X obj 830 205 & 64;
#X obj 877 205 & 128;
#X obj 596 225 >> 1;
#X obj 643 225 >> 2;
#X obj 690 225 >> 3;
#X obj 736 225 >> 4;
#X obj 783 225 >> 5;
#X obj 830 225 >> 6;
#X obj 877 225 >> 7;
#X obj 550 244 change;
#X obj 596 245 change;
#X obj 643 245 change;
#X obj 690 245 change;
#X obj 736 246 change;
#X obj 783 247 change;
#X obj 830 247 change;
#X obj 877 247 change;
#X connect 1 0 6 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 9 0;
#X connect 6 0 2 0;
#X connect 7 0 4 0;
#X connect 8 0 3 0;
#X connect 8 0 44 0;
#X connect 9 0 5 0;
#X connect 9 0 43 0;
#X connect 14 0 46 0;
#X connect 14 0 47 0;
#X connect 14 0 48 0;
#X connect 14 0 49 0;
#X connect 14 0 50 0;
#X connect 14 0 52 0;
#X connect 14 0 51 0;
#X connect 14 0 76 0;
#X connect 15 0 14 0;
#X connect 16 0 18 0;
#X connect 17 0 26 0;
#X connect 18 0 17 0;
#X connect 19 0 16 0;
#X connect 19 1 18 1;
#X connect 20 0 22 0;
#X connect 20 1 21 0;
#X connect 21 0 30 0;
#X connect 22 0 25 0;
#X connect 23 0 20 0;
#X connect 24 0 23 0;
#X connect 25 0 85 0;
#X connect 25 1 86 0;
#X connect 25 2 87 0;
#X connect 25 3 88 0;
#X connect 25 4 89 0;
#X connect 25 5 90 0;
#X connect 25 6 91 0;
#X connect 25 7 92 0;
#X connect 30 0 31 0;
#X connect 31 0 16 1;
#X connect 46 0 59 0;
#X connect 47 0 58 0;
#X connect 48 0 57 0;
#X connect 49 0 56 0;
#X connect 50 0 55 0;
#X connect 51 0 53 0;
#X connect 52 0 60 0;
#X connect 53 0 61 0;
#X connect 54 0 67 0;
#X connect 55 0 62 0;
#X connect 56 0 63 0;
#X connect 57 0 64 0;
#X connect 58 0 65 0;
#X connect 59 0 66 0;
#X connect 60 0 68 0;
#X connect 61 0 69 0;
#X connect 62 0 70 0;
#X connect 63 0 71 0;
#X connect 64 0 72 0;
#X connect 65 0 73 0;
#X connect 66 0 74 0;
#X connect 67 0 75 0;
#X connect 68 0 13 0;
#X connect 69 0 13 0;
#X connect 70 0 13 0;
#X connect 71 0 13 0;
#X connect 72 0 13 0;
#X connect 73 0 13 0;
#X connect 74 0 13 0;
#X connect 75 0 13 0;
#X connect 76 0 54 0;
#X connect 77 0 19 0;
#X connect 78 0 19 0;
#X connect 79 0 19 0;
#X connect 80 0 19 0;
#X connect 81 0 19 0;
#X connect 82 0 19 0;
#X connect 83 0 19 0;
#X connect 84 0 19 0;
#X connect 85 0 100 0;
#X connect 86 0 93 0;
#X connect 87 0 94 0;
#X connect 88 0 95 0;
#X connect 89 0 96 0;
#X connect 90 0 97 0;
#X connect 91 0 98 0;
#X connect 92 0 99 0;
#X connect 93 0 101 0;
#X connect 94 0 102 0;
#X connect 95 0 103 0;
#X connect 96 0 104 0;
#X connect 97 0 105 0;
#X connect 98 0 106 0;
#X connect 99 0 107 0;
#X connect 100 0 77 0;
#X connect 101 0 78 0;
#X connect 102 0 79 0;
#X connect 103 0 80 0;
#X connect 104 0 81 0;
#X connect 105 0 82 0;
#X connect 106 0 83 0;
#X connect 107 0 84 0;
_______________________________________________
Pd-list@iem.at mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to