diff options
-rwxr-xr-x | extensions/gui/ix/kbd.wid | 5 | ||||
-rwxr-xr-x | extensions/gui/ix/mat-demo.pd | 111 | ||||
-rwxr-xr-x | extensions/gui/ix/mat.wid | 20 | ||||
-rw-r--r-- | extensions/gui/ix/ngrid-demo.pd | 246 |
4 files changed, 190 insertions, 192 deletions
diff --git a/extensions/gui/ix/kbd.wid b/extensions/gui/ix/kbd.wid index 177f503b..06c1d7e7 100755 --- a/extensions/gui/ix/kbd.wid +++ b/extensions/gui/ix/kbd.wid @@ -4,8 +4,7 @@ namespace eval ::ix { set w $p.f[expr [lindex $args 0] / 12].[lindex $args 0]
if {[llength $args] == 1} {set v 1;if {$_($t:lp) != -1 && $_($t:lp) ne $w} {kbd_action $_($t:lp) $t 0}} {set v [lindex $args 1]}
kbd_action $w $t $v
- set _($t:lp) $w
- }
+ set _($t:lp) $w}
proc kbd_play {t m b x y} {
variable _
@@ -27,10 +26,10 @@ namespace eval ::ix { if {[$w cget -relief] eq "sunken"} {kbd_action $w $t 0}}}}
proc kbd {path t octaves b f} {
+ $path config -width [expr $octaves * 66]
if {![winfo exists $path.f0]} {
variable _
set _($t:lp) -1
- $path config -width [expr $octaves * 66]
set bw {0 1 0 1 0 0 1 0 1 0 1 0} ; set npl {0 1 1 2 2 3 4 4 5 5 6 6}
foreach a {{bg "0 $b 1 $f"} {fg "1 $b 0 $f"} {an {0 ";lower $wk" 1 "-anchor n"}} {rw {0 {[expr 1 / 7.]} 1 {[expr 1 / 10.]}}} {rh {0 {[expr 1.]} 1 {[expr 6 / 10.]}}}} {array set [lindex $a 0] [lindex $a 1]}
for {set o 0} {$o < $octaves} {incr o} {
diff --git a/extensions/gui/ix/mat-demo.pd b/extensions/gui/ix/mat-demo.pd index df994ec9..f96bfefd 100755 --- a/extensions/gui/ix/mat-demo.pd +++ b/extensions/gui/ix/mat-demo.pd @@ -1,65 +1,50 @@ -#N canvas 25 0 920 1029 12; -#X obj 17 22 widget mat n1 #w 881 #bg white #divX 8 #divY 5 #h 740 -#Yb 1 #Ya 88 #qYv 2 #qYa 8; +#N canvas 1036 0 914 718 12; +#X obj 17 22 widget mat n1 #w 881 #bg gray83 #divX 8 #divY 5 #h 494 +#Yb 1 #Ya 88 #qYv 2 #qYa 8 #ln white; #X msg 1080 -13 -height 26 -width 26 -bg gray95; -#X msg 19 0 redefine; -#X msg 229 1 #w \$1; -#X msg 193 0 #h \$1; -#X floatatom 159 -1 5 0 0 0 - - -; -#X floatatom 127 1 5 0 0 0 - - -; -#X obj 121 879 * 127; -#X msg 447 689 #w \$1 \, #h \$1; -#X floatatom 453 672 5 0 0 0 - - -; -#X obj 85 877 + 36; -#X obj 577 798 rr ss; -#X obj 577 779 rg; -#X obj 17 771 route note; -#X msg 460 1 #Ya 88 \, Yb 24 \, #qYv 2; -#X obj 9 836 unpack f f f; -#X obj 37 871 * 127; -#X obj 16 901 pack f f f; -#X obj 18 958 print note; -#X obj 39 925 makenote 99 250; -#X obj 92 961 noteout; -#X msg 317 2 #Ya 1 \, #Yb 128 \, #qYv 8; -#X obj 535 833 rp ss kbd; -#X obj 591 833 rp ss kb2; -#X obj 109 775 widget kbd k1 #bg blue #fg green -height 32; -#X obj 207 823 widget kbd k2 #bg blue #fg green -height 32; -#X msg 283 874 redefine; -#X msg 414 885 #bg blue \, #fg green; -#X obj 98 855 unpack 0 0 0; -#X obj 106 819 Append 1; -#X obj 201 864 Append 2; -#X connect 0 0 13 0; +#X msg 184 648 redefine; +#X obj 131 646 * 127; +#X obj 95 644 + 36; +#X obj 587 565 rr ss; +#X obj 587 546 rg; +#X obj 27 538 route note; +#X obj 19 603 unpack f f f; +#X obj 47 638 * 127; +#X obj 26 668 pack f f f; +#X obj 49 692 makenote 99 250; +#X obj 102 728 noteout; +#X obj 108 584 rp ss kbd; +#X obj 158 583 rp ss kb2; +#X obj 138 537 widget kbd k1 #bg blue #fg green #ln gray50 -height +32; +#X obj 138 570 widget kbd k2 #bg orange #fg red #ln gray50 -height +32; +#X obj 108 622 unpack 0 0 0; +#X obj 108 603 Append 1; +#X obj 158 602 Append 2; +#X msg 74 575 1; +#X connect 0 0 7 0; #X connect 2 0 0 0; -#X connect 3 0 0 0; -#X connect 4 0 0 0; -#X connect 5 0 3 0; -#X connect 6 0 4 0; -#X connect 7 0 20 1; -#X connect 9 0 8 0; -#X connect 10 0 20 0; -#X connect 12 0 11 0; -#X connect 13 0 15 0; -#X connect 14 0 0 0; -#X connect 15 0 17 0; -#X connect 15 1 16 0; -#X connect 15 2 17 2; -#X connect 16 0 17 1; -#X connect 17 0 18 0; -#X connect 17 0 19 0; -#X connect 19 0 20 0; -#X connect 19 1 20 1; -#X connect 21 0 0 0; -#X connect 24 0 29 0; -#X connect 25 0 30 0; -#X connect 26 0 24 0; -#X connect 26 0 25 0; -#X connect 27 0 25 0; -#X connect 27 0 24 0; -#X connect 28 0 10 0; -#X connect 28 1 7 0; -#X connect 28 2 20 2; -#X connect 29 0 28 0; -#X connect 30 0 28 0; +#X connect 3 0 12 1; +#X connect 4 0 12 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 10 0; +#X connect 8 1 9 0; +#X connect 8 2 10 2; +#X connect 9 0 10 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 11 1 12 1; +#X connect 13 0 18 0; +#X connect 14 0 19 0; +#X connect 15 0 18 0; +#X connect 15 0 13 0; +#X connect 16 0 19 0; +#X connect 16 0 14 0; +#X connect 17 0 4 0; +#X connect 17 1 3 0; +#X connect 17 2 12 2; +#X connect 18 0 17 0; +#X connect 19 0 17 0; +#X connect 20 0 10 2; diff --git a/extensions/gui/ix/mat.wid b/extensions/gui/ix/mat.wid index a4e743fa..d77b541d 100755 --- a/extensions/gui/ix/mat.wid +++ b/extensions/gui/ix/mat.wid @@ -1,14 +1,12 @@ package require tkpath
namespace eval ::ix {
- proc random_int {} {return [expr "int(floor(rand()*16))"]}
- proc random_clr {} {return [format "\#%1X%1X%1X%1X%1X%1X" [random_int] [random_int] [random_int] [random_int] [random_int] [random_int]]}
-
+ proc rc {} {return [format "\#%06x" [expr "int(floor(rand() * 16))"]]}
proc mat_note {p t item} {
variable _
set id [lindex [$p.m itemcget $item -tags] 1]
- set len [expr [lindex $_($t:items:$id) 2] - [lindex $_($t:items:$id) 0]]
+ set len [expr [dict get $_($t) $id xx] - [dict get $_($t) $id x]]
set vel [$p.m itemcget $item -fillopacity]
- pd [concat $t.rp _cb note [lindex $_($t:items:$id) 1] $vel $len \;]}
+ pd [concat $t.rp _cb note [dict get $_($t) $id y] $vel $len \;]}
proc mat_click {m button action p t x y} {
variable _
@@ -64,10 +62,9 @@ namespace eval ::ix { 2 {
foreach item [$p.m find withtag item] {
set id [lindex [$p.m itemcget $item -tags] 1]
- set px [mat_tr $p $t x t [lindex $_($t:items:$id) 0]]
- set py [mat_tr $p $t y t [lindex $_($t:items:$id) 1]]
- set sx [mat_tr $p $t x id [expr [lindex $_($t:items:$id) 2] - [lindex $_($t:items:$id) 0]]]
- # set sy [mat_tr $p $t y id [expr [lindex $_($t:items:$id) 3] - [lindex $_($t:items:$id) 1]]]
+ set px [mat_tr $p $t x t [dict get $_($t) $id x]]
+ set py [mat_tr $p $t y t [dict get $_($t) $id y]]
+ set sx [mat_tr $p $t x id [expr [dict get $_($t) $id xx] - [dict get $_($t) $id x]]]
set sy [mat_tr $p $t y id 1]
$p.m coords $item [::tkpath::coords rect $px $py $sx $sy -rx 3 -ry 3]
}
@@ -97,7 +94,10 @@ namespace eval ::ix { if {$x >= $_($t:cx)} {set xa $_($t:cx);set xb $x} else {set xa $x;set xb $_($t:cx)}
$p.m coords drawing [::tkpath::coords rect $xa $y [expr $xb - $xa] [mat_tr $p $t y id 1] -rx 3 -ry 3]
set yi [mat_tr $p $t y i $y]
- set _($t:items:$_($t:i)) [list [mat_tr $p $t x i $xa] $yi [mat_tr $p $t x i $xb] $yi]
+ dict set _($t) $_($t:i) x [mat_tr $p $t x i $xa]
+ dict set _($t) $_($t:i) y $yi
+ dict set _($t) $_($t:i) xx [mat_tr $p $t x i $xb]
+ dict set _($t) $_($t:i) yy $yi
pd [concat $t.rp _cb note $yi 0.8 \;]}
first {
foreach xy {x y} {set _($t:c$xy) [set $xy]}
diff --git a/extensions/gui/ix/ngrid-demo.pd b/extensions/gui/ix/ngrid-demo.pd index dad2b75d..29dacac1 100644 --- a/extensions/gui/ix/ngrid-demo.pd +++ b/extensions/gui/ix/ngrid-demo.pd @@ -1,4 +1,9 @@ -#N canvas 57 204 1033 585 12; +#N canvas 1333 136 79 124 12; +#X msg 785 -536 -height 26 -width 26 -bg gray95; +#N canvas 0 0 595 500 intro 1; +#X obj 9 418 osc~; +#X obj 9 456 dac~; +#X obj 9 399 line; #X obj 9 -29 widget ngrid n1 #w 382 #h 382 #move 0 #radius 8; #X floatatom 360 365 3 2 233 0 - - -; #X floatatom 381 382 2 4 32 0 - - -; @@ -6,14 +11,11 @@ #X msg 382 362 spread \$1; #X obj 403 337 bng 23 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 -1; -#X obj 9 418 osc~; #X obj 61 418 osc~; #X obj 35 418 osc~; #X obj 87 418 osc~; #X obj 113 418 osc~; #X obj 139 418 osc~; -#X obj 9 456 dac~; -#X obj 9 399 line; #X obj 35 399 line; #X obj 61 399 line; #X obj 87 399 line; @@ -33,25 +35,25 @@ #X obj 217 399 line; #X obj 243 399 line; #X obj 355 446 tow . ngrid n1; -#X obj 9 361 Append 100; +#X obj 9 360 Append 100; #X msg 258 363 move swarm; #X msg 312 385 5; #X msg 326 363 move; #X obj 86 437 prepend set; #X obj 86 454 prepend set; #X obj 160 442 hsl 128 15 0 2000 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 6350 1; +-1 -1 2100 1; #X obj 160 458 hsl 128 15 0 2000 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 6350 1; +-1 -1 0 1; #X obj 423 50 widget ngrid m #w 64 #h 64; #X msg 407 451 add x 1 0 10 \, add y 2 0 10; #X obj 425 127 route x y; #X obj 468 146 prepend set; #X obj 400 147 prepend set; #X obj 435 166 hsl 128 15 0 10 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 1270 1; +-1 -1 12700 1; #X obj 435 181 hsl 128 15 0 10 0 0 empty empty empty -2 -6 0 8 -262144 --1 -1 2540 1; +-1 -1 385 1; #X obj 496 50 widget ngrid m #w 64 #h 64; #X obj 510 212 widget ngrid m #w 64 #h 64; #X obj 514 286 widget ngrid m #w 64 #h 64; @@ -91,73 +93,38 @@ #X obj 449 370 select 6.28 0; #X obj 448 352 spigot; #X msg 472 333 0 2000; -#X text 530 -25 ngrid; -#X obj 884 480 sendOSC; -#X msg 885 404 connect localhost 16180; -#X obj 884 461 prepend send; -#X obj 601 362 dumpOSC 3339; -#X obj 600 -30 widget ngrid n2 #w 382 #h 382 #move 0 #radius 8; -#X obj 601 381 OSCroute /om; -#X obj 601 400 OSCroute /new_port; -#X obj 601 419 niagara 4; -#X obj 601 438 niagara 1; -#X obj 601 476 glue; -#X obj 601 533 prepend add; -#X obj 601 457 a2l; -#X obj 984 385 t b b b; -#X msg 884 442 /om/request/all_objects 5; -#X obj 785 366 widget dm dmngr #items .(error normal swarm trails.) -; -#X msg 732 372 move \$1; -#X msg 929 481 disconnect; -#X obj 677 437 prepend /om/synth/set_port_value 1; -#X msg 883 423 /om/engine/register_client 0 localhost 3339; -#X msg 1080 -23 -height 26 -width 26 -bg gray95; -#X obj 650 457 niagara 1; -#X obj 601 495 spigot; -#X msg 650 495 1; -#X msg 670 495 0; -#X obj 650 476 route CONTROL; -#X obj 724 399 OSCroute /control_change; -#X obj 724 416 prepend setpos; -#X obj 680 379 spigot; -#X obj 711 365 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +#X obj 49 480 switch~; +#X obj 430 324 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1; -#X obj 743 456 OSCroute /node_removal; -#X obj 690 495 niagara 1; -#X obj 601 514 spigot; -#X msg 650 514 1; -#X msg 670 514 0; -#X obj 690 514 route INPUT; -#X obj 744 475 prepend delete; -#X obj 932 384 loadbang; -#X text 844 524 www.nongnu.org/om-synth/; -#X text 877 514 get om:; -#X connect 0 0 33 0; -#X connect 1 0 4 0; -#X connect 2 0 3 0; -#X connect 3 0 32 0; -#X connect 4 0 32 0; -#X connect 5 0 35 0; -#X connect 5 0 42 0; -#X connect 5 0 63 0; -#X connect 5 0 65 0; -#X connect 5 0 64 0; -#X connect 6 0 59 0; -#X connect 7 0 59 0; -#X connect 8 0 59 0; +#X obj 63 363 hsl 128 15 0 2000 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 12700 1; +#X obj 78 368 prepend set; +#X connect 0 0 59 0; +#X connect 2 0 0 0; +#X connect 3 0 33 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 7 0 32 0; +#X connect 8 0 35 0; +#X connect 8 0 42 0; +#X connect 8 0 63 0; +#X connect 8 0 65 0; +#X connect 8 0 64 0; +#X connect 8 0 86 0; #X connect 9 0 59 0; #X connect 10 0 59 0; #X connect 11 0 59 0; -#X connect 13 0 6 0; -#X connect 14 0 8 0; -#X connect 15 0 7 0; -#X connect 16 0 9 0; -#X connect 17 0 10 0; -#X connect 18 0 11 0; +#X connect 12 0 59 0; +#X connect 13 0 59 0; +#X connect 14 0 10 0; +#X connect 15 0 9 0; +#X connect 16 0 11 0; +#X connect 17 0 12 0; +#X connect 18 0 13 0; #X connect 19 0 59 0; #X connect 20 0 59 0; -#X connect 21 0 13 0; +#X connect 21 0 2 0; #X connect 21 1 14 0; #X connect 21 2 15 0; #X connect 21 3 16 0; @@ -215,8 +182,8 @@ #X connect 56 0 32 0; #X connect 57 0 32 0; #X connect 58 0 32 0; -#X connect 59 0 12 0; -#X connect 59 0 12 1; +#X connect 59 0 1 0; +#X connect 59 0 1 1; #X connect 60 0 49 0; #X connect 61 0 60 0; #X connect 61 0 55 0; @@ -250,47 +217,94 @@ #X connect 83 0 82 0; #X connect 83 0 71 0; #X connect 84 0 81 0; -#X connect 87 0 86 0; -#X connect 88 0 86 0; -#X connect 89 0 91 0; -#X connect 90 0 103 0; -#X connect 91 0 92 0; -#X connect 91 0 113 0; -#X connect 91 0 115 0; -#X connect 92 0 93 0; -#X connect 93 0 94 0; -#X connect 93 1 95 1; -#X connect 94 0 97 0; -#X connect 94 1 106 0; -#X connect 95 0 107 0; -#X connect 96 0 90 0; -#X connect 97 0 95 0; -#X connect 98 0 99 0; -#X connect 98 1 104 0; -#X connect 98 2 87 0; -#X connect 99 0 88 0; -#X connect 100 0 101 0; -#X connect 101 0 90 0; -#X connect 102 0 86 0; -#X connect 103 0 88 0; -#X connect 104 0 88 0; -#X connect 106 0 110 0; -#X connect 106 1 116 0; -#X connect 107 0 117 0; -#X connect 108 0 107 1; -#X connect 109 0 107 1; -#X connect 110 0 108 0; -#X connect 110 1 109 0; -#X connect 111 0 112 0; -#X connect 112 0 90 0; -#X connect 113 0 111 0; -#X connect 114 0 113 1; -#X connect 115 0 121 0; -#X connect 116 0 120 0; -#X connect 117 0 96 0; -#X connect 118 0 117 1; -#X connect 119 0 117 1; -#X connect 120 0 118 0; -#X connect 120 1 119 0; -#X connect 121 0 90 0; -#X connect 122 0 98 0; +#X connect 86 0 85 0; +#X connect 87 0 88 0; +#X connect 88 0 33 0; +#X restore 18 35 pd intro; +#N canvas 0 0 442 580 om 0; +#X obj 306 502 sendOSC; +#X msg 307 426 connect localhost 16180; +#X obj 306 483 prepend send; +#X obj 23 382 dumpOSC 3339; +#X obj 22 -8 widget ngrid n2 #w 382 #h 382 #move 0 #radius 8; +#X obj 23 403 OSCroute /om; +#X obj 23 422 OSCroute /new_port; +#X obj 23 441 niagara 4; +#X obj 23 460 niagara 1; +#X obj 23 498 glue; +#X obj 23 555 prepend add; +#X obj 23 479 a2l; +#X obj 406 407 t b b b; +#X msg 306 464 /om/request/all_objects 5; +#X obj 207 388 widget dm dmngr #items .(error normal swarm trails.) +; +#X msg 154 394 move \$1; +#X msg 351 503 disconnect; +#X obj 99 459 prepend /om/synth/set_port_value 1; +#X msg 305 445 /om/engine/register_client 0 localhost 3339; +#X obj 72 479 niagara 1; +#X obj 23 517 spigot; +#X msg 72 517 1; +#X msg 92 517 0; +#X obj 72 498 route CONTROL; +#X obj 146 421 OSCroute /control_change; +#X obj 146 438 prepend setpos; +#X obj 102 401 spigot; +#X obj 133 387 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 165 478 OSCroute /node_removal; +#X obj 112 517 niagara 1; +#X obj 23 536 spigot; +#X msg 72 536 1; +#X msg 92 536 0; +#X obj 112 536 route INPUT; +#X obj 166 497 prepend delete; +#X obj 354 406 loadbang; +#X text 266 546 www.nongnu.org/om-synth/; +#X obj 199 532 print NOSHIT; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 3 0 37 0; +#X connect 4 0 17 0; +#X connect 5 0 6 0; +#X connect 5 0 26 0; +#X connect 5 0 28 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 1; +#X connect 8 0 11 0; +#X connect 8 1 19 0; +#X connect 9 0 20 0; +#X connect 10 0 4 0; +#X connect 11 0 9 0; +#X connect 12 0 13 0; +#X connect 12 1 18 0; +#X connect 12 2 1 0; +#X connect 13 0 2 0; +#X connect 14 0 15 0; +#X connect 15 0 4 0; +#X connect 16 0 0 0; +#X connect 17 0 2 0; +#X connect 18 0 2 0; +#X connect 19 0 23 0; +#X connect 19 1 29 0; +#X connect 20 0 30 0; +#X connect 21 0 20 1; +#X connect 22 0 20 1; +#X connect 23 0 21 0; +#X connect 23 1 22 0; +#X connect 24 0 25 0; +#X connect 25 0 4 0; +#X connect 26 0 24 0; +#X connect 27 0 26 1; +#X connect 28 0 34 0; +#X connect 29 0 33 0; +#X connect 30 0 10 0; +#X connect 31 0 30 1; +#X connect 32 0 30 1; +#X connect 33 0 31 0; +#X connect 33 1 32 0; +#X connect 34 0 4 0; +#X connect 35 0 12 0; +#X restore 18 59 pd om; |