From 878ee3f2844f1c2cdbf14e3f9b9acbd43bdd9edf Mon Sep 17 00:00:00 2001 From: Ed Kelly Date: Sat, 15 Sep 2012 13:29:19 +0000 Subject: gemnotes 0.2.3 svn path=/trunk/externals/ekext/; revision=16237 --- gemnotes_0.2.3/00_Gemnotes_is.pd | 179 ++ gemnotes_0.2.3/01_Stave+Note.pd | 137 ++ gemnotes_0.2.3/02_Beamed_Group.pd | 127 ++ gemnotes_0.2.3/03_Dynamics.pd | 118 ++ gemnotes_0.2.3/04_Score_Language.pd | 238 +++ gemnotes_0.2.3/LICENSE.txt | 30 + gemnotes_0.2.3/README.txt | 47 + gemnotes_0.2.3/barline.pd | 77 + gemnotes_0.2.3/dynamic.pd | 406 +++++ gemnotes_0.2.3/ext/gemnotes_countbars.dll | Bin 0 -> 9728 bytes gemnotes_0.2.3/ext/gemnotes_countbars.pd_darwin | Bin 0 -> 13944 bytes gemnotes_0.2.3/ext/gemnotes_countbars.pd_linux | Bin 0 -> 17737 bytes gemnotes_0.2.3/ext/gemnotes_counter.dll | Bin 0 -> 34816 bytes gemnotes_0.2.3/ext/gemnotes_counter.pd_darwin | Bin 0 -> 31824 bytes gemnotes_0.2.3/ext/gemnotes_counter.pd_linux | Bin 0 -> 57232 bytes gemnotes_0.2.3/ext/help-gemnotes_counter.pd | 68 + gemnotes_0.2.3/ext/polyquant.dll | Bin 0 -> 12288 bytes gemnotes_0.2.3/ext/polyquant.pd_darwin | Bin 0 -> 9920 bytes gemnotes_0.2.3/ext/polyquant.pd_linux | Bin 0 -> 17852 bytes gemnotes_0.2.3/fonts/LucidaBrightRegular.ttf | Bin 0 -> 344908 bytes gemnotes_0.2.3/fonts/Music5.ttf | Bin 0 -> 30644 bytes gemnotes_0.2.3/fonts/Music6.ttf | Bin 0 -> 31116 bytes gemnotes_0.2.3/fonts/Music7.ttf | Bin 0 -> 30736 bytes gemnotes_0.2.3/fonts/Music7chunky.ttf | Bin 0 -> 31100 bytes gemnotes_0.2.3/fonts/Music8.ttf | Bin 0 -> 32472 bytes gemnotes_0.2.3/fonts/vera.ttf | Bin 0 -> 65932 bytes gemnotes_0.2.3/makevoice.pd | 873 ++++++++++ gemnotes_0.2.3/midifile.pd | 53 + gemnotes_0.2.3/noteobject.pd | 2025 +++++++++++++++++++++++ gemnotes_0.2.3/polytimeq.pd | 874 ++++++++++ gemnotes_0.2.3/rest.pd | 350 ++++ gemnotes_0.2.3/sharpsandflats.pd | 146 ++ gemnotes_0.2.3/slavenote.pd | 1145 +++++++++++++ gemnotes_0.2.3/src/LICENSE.txt | 29 + gemnotes_0.2.3/src/Makefile | 406 +++++ gemnotes_0.2.3/src/ekext-meta.pd | 6 + gemnotes_0.2.3/src/gemnotes_countbars.c | 255 +++ gemnotes_0.2.3/src/gemnotes_counter-help.pd | 68 + gemnotes_0.2.3/src/gemnotes_counter.c | 1267 ++++++++++++++ gemnotes_0.2.3/src/polyquant-help.pd | 61 + gemnotes_0.2.3/src/polyquant.c | 178 ++ gemnotes_0.2.3/stave.pd | 172 ++ gemnotes_0.2.3/tempo.pd | 261 +++ gemnotes_0.2.3/timenq.pd | 33 + gemnotes_0.2.3/translate_midi.pd | 93 ++ gemnotes_0.2.3/tsig.pd | 182 ++ gemnotes_0.2.3/vera.ttf | Bin 0 -> 65932 bytes 47 files changed, 9904 insertions(+) create mode 100755 gemnotes_0.2.3/00_Gemnotes_is.pd create mode 100755 gemnotes_0.2.3/01_Stave+Note.pd create mode 100755 gemnotes_0.2.3/02_Beamed_Group.pd create mode 100755 gemnotes_0.2.3/03_Dynamics.pd create mode 100755 gemnotes_0.2.3/04_Score_Language.pd create mode 100755 gemnotes_0.2.3/LICENSE.txt create mode 100755 gemnotes_0.2.3/README.txt create mode 100755 gemnotes_0.2.3/barline.pd create mode 100755 gemnotes_0.2.3/dynamic.pd create mode 100755 gemnotes_0.2.3/ext/gemnotes_countbars.dll create mode 100755 gemnotes_0.2.3/ext/gemnotes_countbars.pd_darwin create mode 100755 gemnotes_0.2.3/ext/gemnotes_countbars.pd_linux create mode 100755 gemnotes_0.2.3/ext/gemnotes_counter.dll create mode 100755 gemnotes_0.2.3/ext/gemnotes_counter.pd_darwin create mode 100755 gemnotes_0.2.3/ext/gemnotes_counter.pd_linux create mode 100755 gemnotes_0.2.3/ext/help-gemnotes_counter.pd create mode 100755 gemnotes_0.2.3/ext/polyquant.dll create mode 100755 gemnotes_0.2.3/ext/polyquant.pd_darwin create mode 100755 gemnotes_0.2.3/ext/polyquant.pd_linux create mode 100755 gemnotes_0.2.3/fonts/LucidaBrightRegular.ttf create mode 100755 gemnotes_0.2.3/fonts/Music5.ttf create mode 100755 gemnotes_0.2.3/fonts/Music6.ttf create mode 100755 gemnotes_0.2.3/fonts/Music7.ttf create mode 100755 gemnotes_0.2.3/fonts/Music7chunky.ttf create mode 100755 gemnotes_0.2.3/fonts/Music8.ttf create mode 100755 gemnotes_0.2.3/fonts/vera.ttf create mode 100755 gemnotes_0.2.3/makevoice.pd create mode 100755 gemnotes_0.2.3/midifile.pd create mode 100755 gemnotes_0.2.3/noteobject.pd create mode 100755 gemnotes_0.2.3/polytimeq.pd create mode 100755 gemnotes_0.2.3/rest.pd create mode 100755 gemnotes_0.2.3/sharpsandflats.pd create mode 100755 gemnotes_0.2.3/slavenote.pd create mode 100755 gemnotes_0.2.3/src/LICENSE.txt create mode 100755 gemnotes_0.2.3/src/Makefile create mode 100755 gemnotes_0.2.3/src/ekext-meta.pd create mode 100755 gemnotes_0.2.3/src/gemnotes_countbars.c create mode 100755 gemnotes_0.2.3/src/gemnotes_counter-help.pd create mode 100755 gemnotes_0.2.3/src/gemnotes_counter.c create mode 100755 gemnotes_0.2.3/src/polyquant-help.pd create mode 100755 gemnotes_0.2.3/src/polyquant.c create mode 100755 gemnotes_0.2.3/stave.pd create mode 100755 gemnotes_0.2.3/tempo.pd create mode 100755 gemnotes_0.2.3/timenq.pd create mode 100755 gemnotes_0.2.3/translate_midi.pd create mode 100755 gemnotes_0.2.3/tsig.pd create mode 100755 gemnotes_0.2.3/vera.ttf diff --git a/gemnotes_0.2.3/00_Gemnotes_is.pd b/gemnotes_0.2.3/00_Gemnotes_is.pd new file mode 100755 index 0000000..d44f884 --- /dev/null +++ b/gemnotes_0.2.3/00_Gemnotes_is.pd @@ -0,0 +1,179 @@ +#N canvas 0 22 438 235 10; +#X obj 20 18 cnv 15 400 140 empty empty Gemnotes_is... 20 16 0 26 -207865 +-45076 0; +#X text 35 78 - an abstraction [makevoice] for creating notation objects +in real time using dynamic patching in PD; +#X text 36 107 - a score metalanguage for the specification of rhythmic +structures and notation objects; +#X text 37 138 - a set of fonts to be used with the [text3d] object +in Gem; +#X text 35 49 - a set of abstractions for creating live music notation +in Pure Data and Gem; +#N canvas 328 459 1081 520 demo 0; +#X obj 135 150 tgl 32 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#N canvas 0 22 450 300 init 0; +#X obj 48 53 loadbang; +#X obj 48 118 outlet; +#X msg 262 122 1; +#X obj 262 141 outlet; +#X msg 48 84 x -6.6 \, y 3 \, z 1.3 \, len 29 \, clef 1 \, r 0.9 \, +g 0.9 \, b 0.9; +#X connect 0 0 4 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X restore 86 166 pd init; +#X msg 207 192 reset; +#X msg 774 428 group 4 16; +#X obj 108 269 makevoice 0.1 0.4; +#X obj 108 185 stave; +#X obj 266 178 gemwin; +#X msg 293 159 0 \, destroy; +#X msg 219 138 dimen 1000 400 \, create \, 1; +#X obj 134 14 inlet; +#X obj 130 39 sel 1 0; +#X obj 61 127 delay 300; +#X msg 61 146 1; +#X msg 135 131 0; +#X obj 395 108 f; +#X obj 425 108 + 1; +#X msg 330 82 0; +#X msg 215 103 1; +#X obj 394 128 select 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 +19 20; +#X msg 813 101 0; +#X obj 749 40 sharpsandflats; +#X obj 395 80 metro 500; +#X obj 458 108 500; +#X msg 478 71 500; +#X obj 492 107 * 0.95; +#X obj 242 26 loadbang; +#X msg 198 33 0; +#X msg 398 177 note 0 63 1 1 78; +#X msg 418 197 note + 64 1 1 78; +#X msg 438 217 note + 66 1 1 78; +#X msg 458 238 note + 67 1 1 62; +#X msg 458 258 note . 73 1 1 62; +#X msg 476 279 note + 72 1 1 78; +#X msg 496 299 note + 78 1 1 78; +#X msg 639 298 note + 81 3 0 78; +#X msg 822 375 bar; +#X msg 651 318 note + 80 1 1 78; +#X msg 393 150 hdsq 0.103 \, bar 6 8 3 8; +#X msg 75 30 1; +#X msg 749 273 note + 79 1 1 30; +#X msg 769 293 note + 82 1 1 35; +#X msg 789 313 note + 88 1 1 40; +#X msg 807 334 note + 95 1 1 45; +#X obj 215 80 delay 3000; +#X msg 506 178 bar 5 8 6 16 4 16; +#X msg 539 197 note 0 65 2 1 62; +#X msg 558 215 note . 71 2 0 88; +#X msg 575 234 note . 75 2 0 88; +#X msg 595 255 note + 72 2 0 78; +#X msg 619 274 note + 83 2 0 78; +#X msg 614 151 bar 2 4 4 32 4 32 8 32; +#X msg 628 172 rest 4; +#X msg 664 194 note 4 79 4 0 99; +#X msg 684 213 note . 73 4 1 99; +#X msg 700 233 note . 69 4 1 99; +#X msg 716 252 note . 60 4 1 99; +#X connect 0 0 5 1; +#X connect 1 0 5 0; +#X connect 1 1 0 0; +#X connect 2 0 4 1; +#X connect 3 0 4 1; +#X connect 5 0 4 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 0 8 0; +#X connect 10 0 43 0; +#X connect 10 1 13 0; +#X connect 10 1 2 0; +#X connect 10 1 7 0; +#X connect 10 1 16 0; +#X connect 10 1 23 0; +#X connect 11 0 12 0; +#X connect 12 0 0 0; +#X connect 13 0 0 0; +#X connect 14 0 15 0; +#X connect 14 0 18 0; +#X connect 15 0 14 1; +#X connect 16 0 14 1; +#X connect 16 0 21 0; +#X connect 17 0 21 0; +#X connect 18 0 37 0; +#X connect 18 1 27 0; +#X connect 18 2 28 0; +#X connect 18 3 29 0; +#X connect 18 4 30 0; +#X connect 18 4 31 0; +#X connect 18 5 32 0; +#X connect 18 6 33 0; +#X connect 18 7 44 0; +#X connect 18 8 45 0; +#X connect 18 8 46 0; +#X connect 18 8 47 0; +#X connect 18 9 48 0; +#X connect 18 10 49 0; +#X connect 18 11 34 0; +#X connect 18 12 36 0; +#X connect 18 13 50 0; +#X connect 18 14 51 0; +#X connect 18 15 52 0; +#X connect 18 16 53 0; +#X connect 18 16 54 0; +#X connect 18 16 55 0; +#X connect 18 17 39 0; +#X connect 18 18 40 0; +#X connect 18 19 41 0; +#X connect 18 20 42 0; +#X connect 18 21 19 0; +#X connect 19 0 21 0; +#X connect 21 0 14 0; +#X connect 21 0 22 0; +#X connect 22 0 24 0; +#X connect 23 0 22 1; +#X connect 24 0 22 1; +#X connect 24 0 21 1; +#X connect 25 0 26 0; +#X connect 26 0 10 0; +#X connect 27 0 4 1; +#X connect 28 0 4 1; +#X connect 29 0 4 1; +#X connect 30 0 4 1; +#X connect 31 0 4 1; +#X connect 32 0 4 1; +#X connect 33 0 4 1; +#X connect 34 0 4 1; +#X connect 35 0 4 1; +#X connect 36 0 4 1; +#X connect 37 0 4 1; +#X connect 38 0 10 0; +#X connect 39 0 4 1; +#X connect 40 0 4 1; +#X connect 41 0 4 1; +#X connect 42 0 4 1; +#X connect 43 0 17 0; +#X connect 44 0 4 1; +#X connect 45 0 4 1; +#X connect 46 0 4 1; +#X connect 47 0 4 1; +#X connect 48 0 4 1; +#X connect 49 0 4 1; +#X connect 50 0 4 1; +#X connect 51 0 4 1; +#X connect 52 0 4 1; +#X connect 53 0 4 1; +#X connect 54 0 4 1; +#X connect 55 0 4 1; +#X restore 21 181 pd demo; +#X obj 21 163 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 106 181 see README.txt for more info \, or check the examples. +; +#X text 106 168 2011 Edward Kelly \, morph_2016@yahoo.co.uk; +#X connect 6 0 5 0; diff --git a/gemnotes_0.2.3/01_Stave+Note.pd b/gemnotes_0.2.3/01_Stave+Note.pd new file mode 100755 index 0000000..69fc430 --- /dev/null +++ b/gemnotes_0.2.3/01_Stave+Note.pd @@ -0,0 +1,137 @@ +#N canvas 2 24 526 561 10; +#X obj 21 251 stave; +#X obj 21 180 pack f f f; +#X obj 28 159 t b; +#X floatatom 21 119 5 0 0 0 - - -; +#X obj 21 138 * 0.1; +#X floatatom 61 119 5 0 0 0 - - -; +#X obj 61 138 * 0.1; +#X floatatom 101 119 5 0 0 0 - - -; +#X obj 101 138 * 0.1; +#X obj 48 221 tgl 25 0 empty empty Show 27 7 0 14 -262144 -1 -1 1 1 +; +#X obj 206 57 gemwin; +#X msg 233 38 0 \, destroy; +#X obj 21 54 loadbang; +#X msg 21 73 -36; +#X msg 161 19 dimen 800 600 \, create \, 1; +#X obj 219 110 sharpsandflats; +#X msg 233 382 0 pitch \$1; +#X obj 233 347 fiddle~; +#X msg 112 382 0 rhythm \$1; +#X obj 112 295 hradio 15 1 0 7 empty empty rhythmic_value 0 -8 0 10 +-262144 -1 -1 0; +#X msg 61 73 19; +#X obj 112 363 +; +#X obj 140 346 t b f; +#X msg 140 326 0; +#X msg 162 326 7; +#X text 139 311 dotted?; +#X text 217 82 You must have this abstraction; +#X text 217 94 in the top-level patch.; +#X obj 233 328 adc~; +#X text 217 313 go on...sing!; +#X obj 43 344 t b; +#X text 30 102 stave position; +#X msg 43 363 reclock; +#X obj 43 382 s g0; +#X floatatom 233 366 5 0 0 0 - - -; +#N canvas 0 22 561 217 other_symbols 0; +#X msg 208 103 0 pitch 68; +#X obj 74 168 outlet; +#X msg 128 103 0 rhythm 4; +#X msg 173 42 0 dur 2; +#X text 300 137 meaningless unless in a beamed group; +#X msg 340 152 0 beam 0; +#X msg 114 61 0 bt \$1; +#X obj 114 42 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 289 102 0 tail \$1; +#X obj 289 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 357 102 0 tie \$1; +#X obj 357 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 400 152 0 tuple 3; +#X text 35 24 change these after-the-fact at your peril!; +#X floatatom 63 86 5 0 0 0 - - -; +#X msg 63 103 0 xoff \$1; +#X msg 419 102 0 acc \$1; +#X obj 419 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 36 42 0 stem 0.2; +#X connect 0 0 1 0; +#X connect 2 0 1 0; +#X connect 3 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 6 0; +#X connect 8 0 1 0; +#X connect 9 0 8 0; +#X connect 10 0 1 0; +#X connect 11 0 10 0; +#X connect 12 0 1 0; +#X connect 14 0 15 0; +#X connect 15 0 1 0; +#X connect 16 0 1 0; +#X connect 17 0 16 0; +#X connect 18 0 1 0; +#X restore 81 261 pd other_symbols; +#X msg 101 73 4; +#X msg 21 199 x \$1 \, y \$2 \, z \$3 \, len 16 \, clef 1 \, r 1 \, +g 1 \, b 1; +#X text 177 154 clef 1 = treble; +#X text 177 165 clef 2 = bass; +#X text 227 180 r \, g \, b = color; +#X text 13 423 creation args:; +#X obj 348 267 rest 3 16 2; +#X text 259 284 creation args: x-offset rhythm duration; +#X text 98 478 duration is the number of the note values specified +by the rhythm argument; +#X text 312 19 <---start; +#X obj 21 404 noteobject 2 16 72 1 0 0.5 0 0 1 0 0 0 0 1 0 g0 1; +#X text 98 509 2012 Edward Kelly \, morph_2016@yahoo.co.uk; +#X text 100 423 x-offset-from-clef rhythm pitch duration bot/top stemlength +beam? tie? accidental? flat/sharp? beamgroup-length object-id beamgroup-index +tail-on/off tuple-number group-id accent(currently the only form of +articulation); +#X connect 0 0 42 0; +#X connect 0 0 46 0; +#X connect 1 0 37 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 6 0 1 1; +#X connect 6 0 2 0; +#X connect 7 0 8 0; +#X connect 8 0 1 2; +#X connect 8 0 2 0; +#X connect 9 0 0 1; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 12 0 20 0; +#X connect 12 0 36 0; +#X connect 13 0 3 0; +#X connect 14 0 10 0; +#X connect 16 0 46 1; +#X connect 17 0 34 0; +#X connect 18 0 46 1; +#X connect 19 0 21 0; +#X connect 20 0 5 0; +#X connect 21 0 18 0; +#X connect 21 0 30 0; +#X connect 22 0 21 0; +#X connect 22 1 21 1; +#X connect 23 0 22 0; +#X connect 24 0 22 0; +#X connect 28 0 17 0; +#X connect 30 0 32 0; +#X connect 32 0 33 0; +#X connect 34 0 16 0; +#X connect 34 0 30 0; +#X connect 35 0 30 0; +#X connect 35 0 46 1; +#X connect 36 0 7 0; +#X connect 37 0 0 0; +#X connect 37 0 30 0; diff --git a/gemnotes_0.2.3/02_Beamed_Group.pd b/gemnotes_0.2.3/02_Beamed_Group.pd new file mode 100755 index 0000000..ccfaa07 --- /dev/null +++ b/gemnotes_0.2.3/02_Beamed_Group.pd @@ -0,0 +1,127 @@ +#N canvas 0 0 581 495 10; +#X obj 21 170 stave; +#X obj 28 108 t b; +#X floatatom 21 71 5 0 0 0 - - -; +#X obj 21 87 * 0.1; +#X floatatom 61 71 5 0 0 0 - - -; +#X obj 61 87 * 0.1; +#X floatatom 101 71 5 0 0 0 - - -; +#X obj 101 87 * 0.1; +#X obj 61 170 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 256 57 gemwin; +#X msg 283 38 0 \, destroy; +#X obj 21 24 loadbang; +#X msg 21 52 -36; +#X obj 366 19 sharpsandflats; +#X msg 61 52 19; +#X msg 344 145 reclock; +#X obj 344 164 s g0; +#X floatatom 384 58 5 0 0 0 - - -; +#N canvas 0 0 450 300 cpu_load 0; +#X obj 118 168 cputime; +#X obj 118 28 loadbang; +#X obj 118 112 metro 1000; +#X msg 118 56 1; +#X floatatom 118 84 0 0 0 0 - - -; +#X obj 118 140 t b b; +#X obj 118 228 * 0.1; +#X obj 118 197 int; +#X text 163 84 <-- on/off; +#X obj 121 259 outlet; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 0 0; +#X connect 5 1 0 1; +#X connect 6 0 9 0; +#X connect 7 0 6 0; +#X restore 384 38 pd cpu_load; +#X text 161 247 Noteobjects are connected together to form a beamed +group.; +#X obj 51 263 noteobject 1.3 16 72 1 0 0.5 1 0 1 0 4 1 0 0 0 g0; +#X obj 167 305 noteobject 2.5 16 83 1 0 0.5 1 0 1 0 4 3 2 0 0 g0; +#X obj 375 164 s g1; +#X text 204 356 Beamed tuples are similarly connected.; +#X obj 124 284 noteobject 1.9 16 70 1 0 0.5 1 0 1 0 4 2 1 0 0 g0; +#X obj 227 326 noteobject 3.1 16 80 1 0 0.5 1 0 1 0 4 4 3 0 0 g0; +#X obj 21 373 noteobject 3.7 16 72 1 0 0.5 1 0 1 0 5 5 0 0 5 g1; +#X obj 94 394 noteobject 4.1 16 74 1 0 0.5 1 0 1 0 5 6 1 0 5 g1; +#X obj 137 415 noteobject 4.5 16 75 1 0 0.5 1 0 1 0 5 7 2 0 5 g1; +#X obj 197 436 noteobject 4.9 16 82 1 0 0.5 1 0 1 0 5 8 3 0 5 g1; +#X obj 257 456 noteobject 5.3 16 63 1 0 0.5 1 0 1 0 5 9 4 0 5 g1; +#X msg 88 169 1; +#X obj 128 169 loadbang; +#X floatatom 151 91 5 0 100 2 R - -; +#X floatatom 191 91 5 0 100 2 G - -; +#X floatatom 231 91 5 0 100 2 B - -; +#X obj 151 107 * 0.01; +#X obj 191 107 * 0.01; +#X obj 231 107 * 0.01; +#X msg 21 148 x \$1 \, y \$2 \, z \$3 \, len 16 \, clef 1 \, r \$4 +\, g \$5 \, b \$6; +#X msg 101 52 14; +#X obj 21 129 pack f f f 0.1 0 0; +#X text 353 370 (but no rests yet - to be fixed); +#X text 94 476 2011 Edward Kelly \, morph_2016@yahoo.co.uk; +#X msg 115 19 dimen 800 640 \, create \, 1 \, color 1 1 0.96; +#X connect 0 0 20 0; +#X connect 0 0 21 0; +#X connect 0 0 24 0; +#X connect 0 0 25 0; +#X connect 0 0 26 0; +#X connect 0 0 27 0; +#X connect 0 0 28 0; +#X connect 0 0 29 0; +#X connect 0 0 30 0; +#X connect 1 0 41 0; +#X connect 2 0 3 0; +#X connect 3 0 41 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X connect 5 0 41 1; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X connect 7 0 41 2; +#X connect 8 0 0 1; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 11 0 14 0; +#X connect 11 0 40 0; +#X connect 12 0 2 0; +#X connect 14 0 4 0; +#X connect 15 0 16 0; +#X connect 15 0 22 0; +#X connect 18 0 17 0; +#X connect 20 1 21 2; +#X connect 20 1 24 2; +#X connect 20 1 25 2; +#X connect 21 0 24 3; +#X connect 24 0 20 3; +#X connect 25 0 21 3; +#X connect 26 1 27 2; +#X connect 26 1 28 2; +#X connect 26 1 29 2; +#X connect 26 1 30 2; +#X connect 27 0 26 3; +#X connect 28 0 27 3; +#X connect 29 0 28 3; +#X connect 30 0 29 3; +#X connect 31 0 8 0; +#X connect 32 0 31 0; +#X connect 33 0 36 0; +#X connect 34 0 37 0; +#X connect 35 0 38 0; +#X connect 36 0 1 0; +#X connect 36 0 41 3; +#X connect 37 0 1 0; +#X connect 37 0 41 4; +#X connect 38 0 1 0; +#X connect 38 0 41 5; +#X connect 39 0 0 0; +#X connect 40 0 6 0; +#X connect 41 0 39 0; +#X connect 41 0 15 0; +#X connect 44 0 9 0; diff --git a/gemnotes_0.2.3/03_Dynamics.pd b/gemnotes_0.2.3/03_Dynamics.pd new file mode 100755 index 0000000..215dd92 --- /dev/null +++ b/gemnotes_0.2.3/03_Dynamics.pd @@ -0,0 +1,118 @@ +#N canvas 2 24 572 418 10; +#X obj 21 251 stave; +#X obj 21 180 pack f f f; +#X obj 28 159 t b; +#X floatatom 21 119 5 0 0 0 - - -; +#X obj 21 138 * 0.1; +#X floatatom 61 119 5 0 0 0 - - -; +#X obj 61 138 * 0.1; +#X floatatom 101 119 5 0 0 0 - - -; +#X obj 101 138 * 0.1; +#X obj 48 221 tgl 25 0 empty empty Show 27 7 0 14 -262144 -1 -1 1 1 +; +#X obj 206 57 gemwin; +#X msg 233 38 0 \, destroy; +#X obj 21 54 loadbang; +#X obj 38 18 sharpsandflats; +#X msg 61 73 19; +#X text 30 102 stave position; +#X text 319 18 <---start; +#N canvas 0 22 1461 292 notes 0; +#X obj 25 110 noteobject 1.3 16 72 1 0 0.5 1 0 1 0 4 1 0 0 0 g0; +#X obj 279 42 inlet; +#X obj 141 152 noteobject 2.5 16 83 1 0 0.5 1 0 1 0 4 3 2 0 0 g0; +#X obj 98 131 noteobject 1.9 16 70 1 0 0.5 1 0 1 0 4 2 1 0 0 g0; +#X obj 201 173 noteobject 3.1 16 80 1 0 0.5 1 0 1 0 4 4 3 0 0 g0; +#X obj 360 111 noteobject 3.7 16 72 1 1 0.5 1 0 1 0 4 5 0 0 0 g1; +#X obj 476 153 noteobject 4.9 16 83 1 1 0.5 1 0 1 0 4 7 2 0 0 g1; +#X obj 433 132 noteobject 4.3 16 70 1 1 0.5 1 0 1 0 4 6 1 0 0 g1; +#X obj 536 174 noteobject 5.5 16 80 1 1 0.5 1 0 1 0 4 8 3 0 0 g1; +#X obj 1154 105 s reclock; +#X obj 1155 75 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 684 108 noteobject 6.1 20 70 1 1 0.5 1 0 1 1 5 9 0 0 5 g2; +#X obj 758 129 noteobject 6.5 20 66 1 1 0.5 1 0 1 1 5 10 1 0 5 g2; +#X obj 800 150 noteobject 6.9 20 63 1 1 0.5 1 0 1 1 5 11 2 0 5 g2; +#X obj 860 171 noteobject 7.3 20 64 1 1 0.5 1 0 1 1 5 12 3 0 5 g2; +#X obj 900 192 noteobject 7.7 20 68 1 1 0.5 1 0 1 1 5 13 4 0 5 g2; +#X connect 0 1 2 2; +#X connect 0 1 3 2; +#X connect 0 1 4 2; +#X connect 1 0 0 0; +#X connect 1 0 2 0; +#X connect 1 0 3 0; +#X connect 1 0 4 0; +#X connect 1 0 5 0; +#X connect 1 0 6 0; +#X connect 1 0 7 0; +#X connect 1 0 8 0; +#X connect 1 0 11 0; +#X connect 1 0 12 0; +#X connect 1 0 13 0; +#X connect 1 0 14 0; +#X connect 1 0 15 0; +#X connect 2 0 3 3; +#X connect 3 0 0 3; +#X connect 4 0 2 3; +#X connect 5 1 6 2; +#X connect 5 1 7 2; +#X connect 5 1 8 2; +#X connect 6 0 7 3; +#X connect 7 0 5 3; +#X connect 8 0 6 3; +#X connect 10 0 9 0; +#X connect 11 1 12 2; +#X connect 11 1 13 2; +#X connect 11 1 14 2; +#X connect 11 1 15 2; +#X connect 12 0 11 3; +#X connect 13 0 12 3; +#X connect 14 0 13 3; +#X connect 15 0 14 3; +#X restore 34 276 pd notes; +#X text 167 99 The dynamic object creates dynamic marks and/or hairpins +of a specified length.; +#X text 147 243 A single dynamic mark from ppp (0) to fff (7) can be +specified if the length (argument 3) is set to 0...; +#X text 166 135 Creation args: x-offset dyn-start length dyn-end below/above-stave +object-id; +#X obj 146 277 dynamic 1.3 3 0 0 1 4; +#X text 89 297 ...or a hairpin going from one to another. If you want +to show the hairpin without the dynamic marks \, just use -1 (pppp) +and 8 (ffff) as one or both of the dynamic marks.; +#X msg 161 19 dimen 1000 400 \, create \, 1; +#X msg 21 73 -50; +#X msg 101 73 18; +#X obj 21 344 dynamic 3.3 6 0.8 2 0 4; +#X msg 21 199 x \$1 \, y \$2 \, z \$3 \, len 22 \, clef 1 \, r 1 \, +g 1 \, b 1; +#X obj 272 342 dynamic 6.1 -1 0.7 8 0 5; +#X text 424 323 --; +#X text 436 329 |; +#X text 436 339 |; +#X text 430 342 =; +#X text 424 342 <; +#X connect 0 0 17 0; +#X connect 0 0 21 0; +#X connect 0 0 26 0; +#X connect 0 0 28 0; +#X connect 1 0 27 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 6 0 1 1; +#X connect 6 0 2 0; +#X connect 7 0 8 0; +#X connect 8 0 1 2; +#X connect 8 0 2 0; +#X connect 9 0 0 1; +#X connect 11 0 10 0; +#X connect 12 0 24 0; +#X connect 12 0 14 0; +#X connect 12 0 25 0; +#X connect 14 0 5 0; +#X connect 23 0 10 0; +#X connect 24 0 3 0; +#X connect 25 0 7 0; +#X connect 27 0 0 0; diff --git a/gemnotes_0.2.3/04_Score_Language.pd b/gemnotes_0.2.3/04_Score_Language.pd new file mode 100755 index 0000000..deed57b --- /dev/null +++ b/gemnotes_0.2.3/04_Score_Language.pd @@ -0,0 +1,238 @@ +#N canvas 112 489 975 535 10; +#X text 35 225 Creation arguments: hemidemisemiquaver size \, stem +length; +#X obj 85 110 tgl 32 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X text 361 106 ^; +#X text 361 113 |; +#X text 373 106 ^; +#X text 373 113 |; +#X text 346 124 1st group; +#X text 437 106 ^; +#X text 437 113 |; +#X text 449 106 ^; +#X text 449 113 |; +#X text 422 124 1st group; +#X msg 780 195 rest 1; +#X msg 665 282 note + 63 1 0 62; +#X text 680 110 a + for the position means "next note"; +#X text 701 130 a . for the position means "chord note"; +#X obj 626 56 gemwin; +#X msg 653 37 0 \, destroy; +#X obj 836 17 sharpsandflats; +#X floatatom 854 56 5 0 0 0 - - -; +#N canvas 0 22 450 300 cpu_load 0; +#X obj 118 168 cputime; +#X obj 118 28 loadbang; +#X obj 118 112 metro 1000; +#X msg 118 56 1; +#X floatatom 118 84 0 0 0 0 - - -; +#X obj 118 140 t b b; +#X obj 118 228 * 0.1; +#X obj 118 197 int; +#X text 163 84 <-- on/off; +#X obj 121 259 outlet; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 0 0; +#X connect 5 1 0 1; +#X connect 6 0 9 0; +#X connect 7 0 6 0; +#X restore 854 36 pd cpu_load; +#N canvas 0 22 450 300 init 0; +#X obj 48 53 loadbang; +#X obj 48 118 outlet; +#X msg 262 122 1; +#X obj 262 141 outlet; +#X msg 48 84 x -6.6 \, y 3.4 \, z 1.3 \, len 29 \, clef 1 \, r 1 \, +g 0.4 \, b 1; +#X connect 0 0 4 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X restore 36 126 pd init; +#X msg 147 132 reset; +#X msg 670 301 note + 69 1 1 62; +#X msg 658 263 note + 62 1 0 62; +#X msg 651 242 group 4 16; +#X text 720 242 a beam group can be initiated on-the-fly; +#X msg 688 343 bar 3 6 3 12; +#X msg 128 105 vis; +#X msg 576 110 note + 70 1 0 78; +#X msg 596 130 note . 65 1 0 78; +#X msg 612 150 note + 74 1 0 93; +#X msg 637 192 note + 71 1 0 48; +#X msg 643 213 note + 70 1 1 40; +#X msg 31 68 hdsq \$1; +#X floatatom 31 17 5 0 0 0 - - -; +#X obj 31 33 * 0.001; +#X floatatom 31 52 5 0 0 0 - - -; +#X msg 782 222 rest 2; +#X text 825 195 "rest" duration; +#X msg 22 372 bar 5 8 6 16 4 16; +#X msg 37 443 note 0 48 2 0 64; +#X msg 147 443 note + 51 2 0 64; +#X msg 257 443 note + 54 2 0 64; +#X msg 365 443 note + 56 1 0 72; +#X msg 475 443 note + 57 1 0 72; +#X msg 585 443 note + 61 1 0 72; +#X msg 695 443 note + 63 1 0 72; +#X text 36 395 Notice that the bar itself stays at 5/8 \, but both +the groups are specified in 16th notes. The duration value of each +note is then stated in 16th notes \, thus:; +#X obj 38 505 stave; +#X obj 65 470 tgl 32 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#N canvas 233 567 450 185 init 0; +#X obj 48 53 loadbang; +#X obj 48 117 outlet; +#X msg 277 111 1; +#X obj 277 130 outlet; +#X msg 48 84 x -4.6 \, y 1.3 \, z 1.3 \, len 20 \, clef 2 \, r 0.4 +\, g 1 \, b 1; +#X connect 0 0 4 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X restore 16 486 pd init; +#X obj 22 466 t a; +#X msg 179 473 reset; +#X floatatom 824 448 5 0 100 0 - - -; +#X msg 824 483 r \$1; +#X floatatom 864 448 5 0 100 0 - - -; +#X floatatom 904 448 5 0 100 0 - - -; +#X msg 864 483 g \$1; +#X msg 904 483 b \$1; +#X obj 904 464 * 0.01; +#X obj 864 464 * 0.01; +#X obj 824 464 * 0.01; +#X obj 58 209 makevoice 0.1 0.4; +#X msg 189 505 vis; +#X text 82 5 The hdsq value is the; +#X text 82 16 horizontal size of a; +#X text 82 27 hemidemisemiquaver.; +#X text 184 132 <---start again; +#X text 221 5 "bar" (time \, signature) \, (beamed \, group) \, (beamed +\, group) etc. You can have more than one beamed group \, and when +the last group is rendered it goes back to the first (and when there's +a new bar it resets).; +#X text 36 281 Rhythmic groups work like this. The "bar" message sets +up the time signature and the rhythmic groups within the bar. You can +override this at any time using the "group" message. Groups must be +specified according to the smallest rhythmic value (e.g. 32 \, 16 \, +8) so a bar of 5/8 with groups of 3/8 and 4/16 would be specified in +16ths thus:; +#X text 824 432 Stave colour (RGB); +#X text 151 104 <---show the dynamic patch; +#X msg 697 362 group 5 10; +#X msg 579 16 dimen 1000 400 \, create \, 1; +#X msg 677 320 note + 84 1 1 62; +#X msg 313 145 tempo 118; +#X text 373 146 <--- BPM; +#X text 313 164 You must send "bar" before "tempo"; +#X obj 58 145 stave; +#X msg 440 366 dyn 5; +#X msg 437 405 dyn 3 1 2; +#X obj 561 235 s reclock; +#X obj 75 505 makevoice 0.1 0.4; +#X msg 624 170 note + 75 1 0 64 1; +#X text 630 90 "note" position pitch flat/sharp? velocity articulation +; +#X msg 313 90 bar 6 8 3 8; +#X text 336 76 V; +#X text 336 69 |; +#X text 348 76 V; +#X text 348 69 |; +#X text 340 58 time signature; +#X text 412 76 V; +#X text 412 69 |; +#X text 424 76 V; +#X text 424 69 |; +#X text 462 68 |; +#X text 474 68 |; +#X text 474 75 v; +#X text 462 75 v; +#X text 449 56 2nd group (etc); +#X msg 389 90 bar 7 4 6 8 4 8 4 8; +#X msg 516 90 note 0 68 1 0 78; +#X text 769 342 Tuples can be specified as; +#X text 774 355 non-standard time signatures; +#X text 481 358 single dynamic mark; +#X text 483 371 0 = ppp \, 7 = fff; +#X text 503 399 hairpin: [start length end]; +#X text 502 411 length is in units specified by beam group; +#X text 424 508 2012 Edward Kelly \, morph_2016@yahoo.co.uk; +#X text 775 367 or groups (click some notes; +#X text 775 380 to see the tuple); +#X text 82 39 Other sizes are based; +#X text 83 51 on this value.; +#X text 83 64 Can now be changed; +#X text 83 77 in the middle of a score (v0.2); +#X connect 1 0 79 1; +#X connect 12 0 63 1; +#X connect 13 0 63 1; +#X connect 17 0 16 0; +#X connect 20 0 19 0; +#X connect 21 0 79 0; +#X connect 21 1 1 0; +#X connect 22 0 63 1; +#X connect 23 0 63 1; +#X connect 24 0 63 1; +#X connect 25 0 63 1; +#X connect 27 0 63 1; +#X connect 28 0 63 1; +#X connect 29 0 63 1; +#X connect 29 0 82 0; +#X connect 30 0 63 1; +#X connect 30 0 82 0; +#X connect 31 0 63 1; +#X connect 31 0 82 0; +#X connect 32 0 63 1; +#X connect 32 0 82 0; +#X connect 33 0 63 1; +#X connect 33 0 82 0; +#X connect 34 0 63 1; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 37 0 34 0; +#X connect 38 0 63 1; +#X connect 40 0 52 0; +#X connect 41 0 83 1; +#X connect 42 0 83 1; +#X connect 43 0 83 1; +#X connect 44 0 83 1; +#X connect 45 0 83 1; +#X connect 46 0 83 1; +#X connect 47 0 83 1; +#X connect 49 0 83 0; +#X connect 50 0 49 1; +#X connect 51 0 49 0; +#X connect 51 1 50 0; +#X connect 52 0 83 1; +#X connect 53 0 83 1; +#X connect 54 0 62 0; +#X connect 55 0 49 0; +#X connect 56 0 61 0; +#X connect 57 0 60 0; +#X connect 58 0 49 0; +#X connect 59 0 49 0; +#X connect 60 0 59 0; +#X connect 61 0 58 0; +#X connect 62 0 55 0; +#X connect 64 0 83 1; +#X connect 73 0 63 1; +#X connect 74 0 16 0; +#X connect 75 0 63 1; +#X connect 76 0 63 1; +#X connect 79 0 63 0; +#X connect 80 0 63 1; +#X connect 81 0 63 1; +#X connect 84 0 63 1; +#X connect 84 0 82 0; +#X connect 86 0 63 1; +#X connect 101 0 63 1; +#X connect 102 0 63 1; +#X connect 102 0 82 0; diff --git a/gemnotes_0.2.3/LICENSE.txt b/gemnotes_0.2.3/LICENSE.txt new file mode 100755 index 0000000..1e2d02a --- /dev/null +++ b/gemnotes_0.2.3/LICENSE.txt @@ -0,0 +1,30 @@ +This software is copyrighted by Edward Kelly. The following +terms (the "Standard Improved BSD License") apply to all files associated with +the software unless explicitly disclaimed in individual files: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. +3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gemnotes_0.2.3/README.txt b/gemnotes_0.2.3/README.txt new file mode 100755 index 0000000..e9f7d45 --- /dev/null +++ b/gemnotes_0.2.3/README.txt @@ -0,0 +1,47 @@ +Welcome to the first ever public release of Gemnotes. + +Gemnotes is a system of realtime music notation rendering using Pure Data and +Gem. + +This software is released under the BSD license. + +The system includes one external - gemnotes_counter. Source code is included and released under the simple BSD license enclosed with the code. There are binaries for Linux and Mac OS X (10.6 Intel) compiled against Pure Data 0.42-5 in the ext/ folder. They should work with the examples, without any installation procedure. If you want to experiment with the gemnotes counter directly, you can call it by saving a patch in this folder then typing ext/gemnotes_counter in an object box. + +There are two other externals: polyquant is a polyrhythmic quantizer, and gemnotes_barcount is used in translate_midi.pd, a patch that attempts to create gemnotes compatible scores from standard MIDI files. + +Installation: +Linux: + +cd /path/to/gemnotes-0.2/src +make && sudo make install + +Or use the binaries in the /ext folder: +cd /path/to/gemnotes-0.2/ext +sudo cp *.pd_linux /usr/lib/pd/extra + +Mac OS X: + +You can compile the externals yourself using gcc if you have XCode installed following the steps above for Linux. +If you want to try the binaries in Pd-extended, right-click on Pd-extended and "show package contents" then copy the files from the /ext folder into Contents/Resources/extra + +Gemnotes uses dynamic patching to generate music notation based on TrueType Fonts (TTF) and 3D primitives. + +There are many limitations with the current system, and errors often occur. This project has a simple score language associated with the makevoice.pd (dynamic patching) abstraction and the gemnotes_counter object. Patches can also be made as static elements, and staves can be turned on and off. + +If you have a modification of the code you wish to share with me, post to the pd-list (after joining the list) or write to morph_2016@yahoo.co.uk + +Changes for version 0.2 + +1. Dynamics from ppp to fff are implemented, and hairpins (crescendo/decrescendo marks) +2. Basic articulation (accent) may be added to a note. + +Changes between PDCON 2011 and the 0.1 release: + +1. The stave/note math is decoupled from the Gemhead +2. Object IDs are implemented so that reclocking of the stave math happens as a new object is placed, rather than all the time. + +------------- To Do for version 0.3 ------------- + +More articulations +More clefs +Live input using gemnotes_barcount and polyquant diff --git a/gemnotes_0.2.3/barline.pd b/gemnotes_0.2.3/barline.pd new file mode 100755 index 0000000..950445d --- /dev/null +++ b/gemnotes_0.2.3/barline.pd @@ -0,0 +1,77 @@ +#N canvas 727 130 450 300 10; +#X obj 73 215 color 1 1 1; +#X obj 43 130 gemhead; +#X obj 132 44 inlet; +#X obj 96 88 unpack f f f f f f f f f; +#X obj 96 176 +; +#X obj 395 81 inlet; +#X obj 218 18 t b; +#X obj 218 37 \$1; +#X obj 174 116 pack f f f; +#X obj 253 67 change; +#X msg 253 86 xoff \$1; +#X obj 278 12 \$2; +#X obj 346 12 \$3; +#X obj 277 32 moses 1e-07; +#X obj 354 32 moses 1e-07; +#X msg 325 55 thick \$1; +#X msg 391 55 high \$1; +#X text 346 241 0.37 = 5; +#X text 347 254 0.19 = 3 lines; +#X obj 73 247 rectangle 0.01 0.37; +#X obj 120 176 - 2.23; +#X msg 297 192 0.1; +#X msg 325 194 0.19; +#X msg 356 195 0.28; +#X msg 392 196 0.37; +#X obj 302 142 sel 0 1 2 3; +#X msg 219 190 2.23; +#X msg 256 189 2.32; +#X obj 271 113 route xoff thick high pos; +#X obj 73 195 translateXYZ -40 -40 0; +#X connect 0 0 19 0; +#X connect 1 0 29 0; +#X connect 2 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 4 0; +#X connect 3 1 20 0; +#X connect 3 2 29 3; +#X connect 3 5 8 0; +#X connect 3 6 8 1; +#X connect 3 7 8 2; +#X connect 3 8 1 0; +#X connect 4 0 29 1; +#X connect 5 0 28 0; +#X connect 6 0 7 0; +#X connect 6 0 11 0; +#X connect 6 0 12 0; +#X connect 7 0 9 0; +#X connect 8 0 0 1; +#X connect 9 0 10 0; +#X connect 10 0 28 0; +#X connect 11 0 13 0; +#X connect 12 0 14 0; +#X connect 13 1 15 0; +#X connect 14 1 16 0; +#X connect 15 0 28 0; +#X connect 16 0 28 0; +#X connect 20 0 29 2; +#X connect 21 0 19 2; +#X connect 22 0 19 2; +#X connect 23 0 19 2; +#X connect 24 0 19 2; +#X connect 25 0 21 0; +#X connect 25 0 27 0; +#X connect 25 1 22 0; +#X connect 25 1 26 0; +#X connect 25 2 23 0; +#X connect 25 2 27 0; +#X connect 25 3 24 0; +#X connect 25 3 26 0; +#X connect 26 0 20 1; +#X connect 27 0 20 1; +#X connect 28 0 4 1; +#X connect 28 1 19 1; +#X connect 28 2 19 2; +#X connect 28 3 25 0; +#X connect 29 0 0 0; diff --git a/gemnotes_0.2.3/dynamic.pd b/gemnotes_0.2.3/dynamic.pd new file mode 100755 index 0000000..361d982 --- /dev/null +++ b/gemnotes_0.2.3/dynamic.pd @@ -0,0 +1,406 @@ +#N canvas 15 88 1097 661 10; +#X obj 41 41 inlet; +#X obj 339 40 inlet; +#X obj 82 602 text3d; +#X obj 367 210 > 0; +#X obj 41 503 gemhead; +#X obj 167 127 pack f f f; +#X obj 128 157 s \$0-z; +#N canvas 0 22 450 300 clockit 0; +#X obj 61 57 inlet; +#X obj 61 122 spigot 1; +#X obj 151 122 t b; +#X obj 151 141 f; +#X obj 176 141 + 1; +#X msg 186 97 0; +#X msg 151 98 1; +#X obj 61 174 outlet; +#X obj 159 57 inlet; +#X obj 159 78 t b b; +#X obj 242 59 r \$0-clocked; +#X obj 151 160 < 8; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 11 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 6 0; +#X connect 9 1 5 0; +#X connect 11 0 1 1; +#X restore 99 63 pd clockit; +#X obj 166 65 r \$0-reclock; +#X text 352 538 0-2 = F-FFF \, 3-5 = P-PPP 6=mF 7=mP; +#X obj 329 556 sel 0 1 2 3 4 5 6 7; +#X msg 275 585 text 5; +#X msg 320 585 text 4; +#X msg 365 585 text 3; +#X msg 410 585 text 8; +#X msg 455 585 text 6; +#X msg 500 585 text 0; +#X msg 545 585 text 1; +#X msg 591 585 text 2; +#X obj 400 189 \$3; +#X obj 273 539 \$2; +#X obj 74 574 color 0 0 0; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 279 151 outlet; +#X obj 150 57 r \$0-lbn; +#X msg 27 110 font fonts/Music8.ttf \, justify left top; +#X msg 283 110 7; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 1 0; +#X restore 146 585 pd inittext; +#X obj 103 452 + \$1; +#X obj 156 43 t b; +#X obj 161 452 + \$6; +#X obj 275 123 s \$0-lbn; +#X msg 308 50 0; +#X obj 252 50 spigot 1; +#X obj 252 96 loadbang; +#X obj 251 71 t b; +#X obj 273 518 r \$0-lbn; +#X obj 198 429 t b f; +#X floatatom 208 406 5 0 0 0 - - -; +#X obj 306 84 route xoff dynst len dyned bt; +#X obj 464 120 * 1.5; +#X obj 463 146 - 1; +#X obj 387 167 r \$0-lbn; +#X obj 339 60 route \$6; +#X obj 526 98 \$5; +#X obj 526 72 r \$0-lbn; +#X obj 332 355 gemhead; +#X obj 115 421 t b f; +#X floatatom 125 398 5 0 0 0 - - -; +#X obj 373 284 + \$1; +#X obj 466 277 t b f; +#X floatatom 477 237 5 0 0 0 - - -; +#X obj 422 275 t b f; +#X floatatom 438 237 5 0 0 0 - - -; +#X obj 352 465 rectangle \$3 0.01; +#X msg 191 12 bang; +#X msg 438 55 len \$1; +#X floatatom 442 24 5 0 0 0 - - -; +#X obj 448 316 +; +#X obj 414 314 +; +#X obj 352 414 rotateXYZ 0 0 4; +#X obj 449 355 - 1.85; +#X obj 515 354 gemhead; +#X obj 518 463 rectangle \$3 0.01; +#X obj 616 324 +; +#X obj 562 323 +; +#X obj 519 408 rotateXYZ 0 0 -4; +#X obj 616 349 - 2.05; +#X obj 541 225 * 57.2958; +#X obj 535 198 / \$3; +#X obj 530 148 moses 1e-07; +#X obj 586 170 t b f; +#X obj 603 254 * -1; +#X msg 248 573 1; +#X msg 219 573 0; +#X msg 531 174 0.1; +#X obj 512 254 * 1; +#X obj 644 523 text3d; +#X obj 688 354 gemhead; +#X obj 750 477 sel 0 1 2 3 4 5 6 7; +#X msg 696 506 text 5; +#X msg 741 506 text 4; +#X msg 786 506 text 3; +#X msg 831 506 text 8; +#X msg 876 506 text 6; +#X msg 921 506 text 0; +#X msg 966 506 text 1; +#X msg 1012 506 text 2; +#X obj 688 398 color 0 0 0; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 279 151 outlet; +#X obj 150 57 r \$0-lbn; +#X msg 27 110 font fonts/Music8.ttf \, justify left top; +#X msg 283 110 7; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 1 0; +#X restore 547 495 pd inittext; +#X obj 741 233 + \$1; +#X obj 789 233 + \$6; +#X obj 847 416 r \$0-lbn; +#X obj 811 202 t b f; +#X obj 753 202 t b f; +#X msg 669 494 1; +#X msg 640 494 0; +#X obj 847 437 \$4; +#X obj 350 439 color 0 0 0; +#X obj 519 437 color 0 0 0; +#X obj 725 262 +; +#X obj 695 232 t b f; +#X obj 657 230 * 2; +#X obj 156 521 - 0.4; +#X obj 778 288 - 0.4; +#X obj 394 353 + 0.7; +#X obj 561 347 + 0.7; +#X obj 728 293 + 0.72; +#X obj 677 285 &&; +#X obj 658 261 t b f; +#X text 700 54 xoff dynst len dyned bt object-id; +#X obj 736 91 \$4; +#X obj 664 87 \$2; +#X obj 713 113 t b f; +#X obj 684 139 <; +#X msg 627 192 1; +#X msg 655 192 -1; +#X msg 691 183 -1; +#X msg 719 184 1; +#X obj 667 161 sel 1 0; +#X obj 539 253 t b f; +#X obj 613 232 t b f; +#X obj 670 17 r \$0-lbn; +#X obj 644 45 t b b; +#X obj 99 99 unpack f f f f f f f f f; +#X obj 39 478 &&; +#X obj 39 454 t b f; +#X obj 332 334 &&; +#X obj 332 310 t b f; +#X obj 515 333 &&; +#X obj 516 312 t b f; +#X obj 682 331 &&; +#X obj 681 307 t b f; +#X obj 100 17 r reclock; +#X obj 688 376 translateXYZ -40 -40 0; +#X obj 520 378 translateXYZ -40 -40 0; +#X obj 353 384 translateXYZ -40 -40 0; +#X obj 68 546 translateXYZ -40 -40 0; +#X connect 0 0 7 0; +#X connect 0 0 28 0; +#X connect 1 0 38 0; +#X connect 3 0 104 0; +#X connect 3 0 123 0; +#X connect 3 0 125 0; +#X connect 4 0 132 0; +#X connect 5 0 21 1; +#X connect 5 0 93 1; +#X connect 5 0 94 1; +#X connect 5 0 83 1; +#X connect 7 0 119 0; +#X connect 8 0 7 1; +#X connect 10 0 11 0; +#X connect 10 0 68 0; +#X connect 10 1 12 0; +#X connect 10 1 68 0; +#X connect 10 2 13 0; +#X connect 10 2 68 0; +#X connect 10 3 14 0; +#X connect 10 3 68 0; +#X connect 10 4 15 0; +#X connect 10 4 68 0; +#X connect 10 5 16 0; +#X connect 10 5 68 0; +#X connect 10 6 17 0; +#X connect 10 6 68 0; +#X connect 10 7 18 0; +#X connect 10 7 68 0; +#X connect 10 8 69 0; +#X connect 11 0 2 0; +#X connect 12 0 2 0; +#X connect 13 0 2 0; +#X connect 14 0 2 0; +#X connect 15 0 2 0; +#X connect 16 0 2 0; +#X connect 17 0 2 0; +#X connect 18 0 2 0; +#X connect 19 0 3 0; +#X connect 19 0 49 1; +#X connect 19 0 47 0; +#X connect 19 0 58 1; +#X connect 19 0 65 0; +#X connect 19 0 97 0; +#X connect 20 0 10 0; +#X connect 21 0 2 0; +#X connect 22 0 2 0; +#X connect 22 1 2 1; +#X connect 23 0 132 1; +#X connect 24 0 7 1; +#X connect 25 0 98 0; +#X connect 27 0 28 1; +#X connect 28 0 27 0; +#X connect 28 0 30 0; +#X connect 29 0 26 0; +#X connect 30 0 26 0; +#X connect 31 0 20 0; +#X connect 32 0 25 0; +#X connect 32 1 25 1; +#X connect 33 0 32 0; +#X connect 34 0 42 0; +#X connect 34 0 89 0; +#X connect 34 1 10 0; +#X connect 34 1 107 0; +#X connect 34 2 19 0; +#X connect 34 3 74 0; +#X connect 34 3 106 0; +#X connect 34 4 35 0; +#X connect 35 0 36 0; +#X connect 36 0 32 0; +#X connect 36 0 45 0; +#X connect 36 0 88 0; +#X connect 37 0 19 0; +#X connect 38 0 24 0; +#X connect 38 0 34 0; +#X connect 39 0 35 0; +#X connect 40 0 39 0; +#X connect 41 0 131 0; +#X connect 42 0 23 0; +#X connect 42 1 23 1; +#X connect 43 0 42 0; +#X connect 44 0 54 0; +#X connect 44 0 60 0; +#X connect 45 0 53 0; +#X connect 45 0 59 0; +#X connect 45 1 53 1; +#X connect 45 1 59 1; +#X connect 46 0 45 0; +#X connect 47 0 54 0; +#X connect 47 0 60 0; +#X connect 47 1 54 1; +#X connect 47 1 60 1; +#X connect 48 0 47 0; +#X connect 50 0 24 0; +#X connect 50 0 26 0; +#X connect 51 0 34 0; +#X connect 52 0 51 0; +#X connect 53 0 56 0; +#X connect 54 0 100 0; +#X connect 55 0 93 0; +#X connect 56 0 131 2; +#X connect 57 0 130 0; +#X connect 59 0 62 0; +#X connect 60 0 101 0; +#X connect 61 0 94 0; +#X connect 62 0 130 2; +#X connect 63 0 67 0; +#X connect 63 0 71 0; +#X connect 64 0 63 0; +#X connect 65 1 66 0; +#X connect 66 0 70 0; +#X connect 66 1 64 1; +#X connect 67 0 61 3; +#X connect 68 0 120 0; +#X connect 69 0 120 0; +#X connect 70 0 64 0; +#X connect 71 0 55 3; +#X connect 73 0 129 0; +#X connect 74 0 75 0; +#X connect 74 0 90 0; +#X connect 74 1 76 0; +#X connect 74 1 90 0; +#X connect 74 2 77 0; +#X connect 74 2 90 0; +#X connect 74 3 78 0; +#X connect 74 3 90 0; +#X connect 74 4 79 0; +#X connect 74 4 90 0; +#X connect 74 5 80 0; +#X connect 74 5 90 0; +#X connect 74 6 81 0; +#X connect 74 6 90 0; +#X connect 74 7 82 0; +#X connect 74 7 90 0; +#X connect 74 8 91 0; +#X connect 75 0 72 0; +#X connect 76 0 72 0; +#X connect 77 0 72 0; +#X connect 78 0 72 0; +#X connect 79 0 72 0; +#X connect 80 0 72 0; +#X connect 81 0 72 0; +#X connect 82 0 72 0; +#X connect 83 0 72 0; +#X connect 84 0 72 0; +#X connect 84 1 72 1; +#X connect 85 0 95 0; +#X connect 86 0 99 0; +#X connect 87 0 92 0; +#X connect 88 0 86 0; +#X connect 88 1 86 1; +#X connect 89 0 85 0; +#X connect 89 1 85 1; +#X connect 90 0 103 0; +#X connect 91 0 103 0; +#X connect 92 0 74 0; +#X connect 93 0 49 0; +#X connect 94 0 58 0; +#X connect 95 0 102 0; +#X connect 96 0 95 0; +#X connect 96 1 95 1; +#X connect 97 0 96 0; +#X connect 98 0 132 2; +#X connect 99 0 129 2; +#X connect 100 0 131 1; +#X connect 101 0 130 1; +#X connect 102 0 129 1; +#X connect 103 0 127 0; +#X connect 104 0 103 0; +#X connect 104 1 103 1; +#X connect 106 0 108 0; +#X connect 107 0 109 0; +#X connect 108 0 109 0; +#X connect 108 1 109 1; +#X connect 109 0 114 0; +#X connect 110 0 115 0; +#X connect 111 0 116 0; +#X connect 112 0 115 0; +#X connect 113 0 116 0; +#X connect 114 0 110 0; +#X connect 114 0 111 0; +#X connect 114 1 113 0; +#X connect 114 1 112 0; +#X connect 115 0 71 0; +#X connect 115 1 71 1; +#X connect 116 0 67 0; +#X connect 116 1 67 1; +#X connect 117 0 118 0; +#X connect 118 0 107 0; +#X connect 118 1 106 0; +#X connect 119 0 23 0; +#X connect 119 0 44 0; +#X connect 119 0 85 0; +#X connect 119 1 25 0; +#X connect 119 1 53 0; +#X connect 119 1 59 0; +#X connect 119 1 86 0; +#X connect 119 2 6 0; +#X connect 119 2 129 3; +#X connect 119 2 130 3; +#X connect 119 2 131 3; +#X connect 119 2 132 3; +#X connect 119 5 5 0; +#X connect 119 6 5 1; +#X connect 119 7 5 2; +#X connect 119 8 121 0; +#X connect 119 8 126 0; +#X connect 119 8 122 0; +#X connect 119 8 124 0; +#X connect 120 0 4 0; +#X connect 121 0 120 0; +#X connect 121 1 120 1; +#X connect 122 0 41 0; +#X connect 123 0 122 0; +#X connect 123 1 122 1; +#X connect 124 0 57 0; +#X connect 125 0 124 0; +#X connect 125 1 124 1; +#X connect 126 0 73 0; +#X connect 127 0 126 0; +#X connect 127 1 126 1; +#X connect 128 0 7 1; +#X connect 129 0 83 0; +#X connect 130 0 61 0; +#X connect 131 0 55 0; +#X connect 132 0 21 0; diff --git a/gemnotes_0.2.3/ext/gemnotes_countbars.dll b/gemnotes_0.2.3/ext/gemnotes_countbars.dll new file mode 100755 index 0000000..5b3fc3b Binary files /dev/null and b/gemnotes_0.2.3/ext/gemnotes_countbars.dll differ diff --git a/gemnotes_0.2.3/ext/gemnotes_countbars.pd_darwin b/gemnotes_0.2.3/ext/gemnotes_countbars.pd_darwin new file mode 100755 index 0000000..f288fff Binary files /dev/null and b/gemnotes_0.2.3/ext/gemnotes_countbars.pd_darwin differ diff --git a/gemnotes_0.2.3/ext/gemnotes_countbars.pd_linux b/gemnotes_0.2.3/ext/gemnotes_countbars.pd_linux new file mode 100755 index 0000000..ec1563f Binary files /dev/null and b/gemnotes_0.2.3/ext/gemnotes_countbars.pd_linux differ diff --git a/gemnotes_0.2.3/ext/gemnotes_counter.dll b/gemnotes_0.2.3/ext/gemnotes_counter.dll new file mode 100755 index 0000000..1459452 Binary files /dev/null and b/gemnotes_0.2.3/ext/gemnotes_counter.dll differ diff --git a/gemnotes_0.2.3/ext/gemnotes_counter.pd_darwin b/gemnotes_0.2.3/ext/gemnotes_counter.pd_darwin new file mode 100755 index 0000000..1bcbf23 Binary files /dev/null and b/gemnotes_0.2.3/ext/gemnotes_counter.pd_darwin differ diff --git a/gemnotes_0.2.3/ext/gemnotes_counter.pd_linux b/gemnotes_0.2.3/ext/gemnotes_counter.pd_linux new file mode 100755 index 0000000..8925117 Binary files /dev/null and b/gemnotes_0.2.3/ext/gemnotes_counter.pd_linux differ diff --git a/gemnotes_0.2.3/ext/help-gemnotes_counter.pd b/gemnotes_0.2.3/ext/help-gemnotes_counter.pd new file mode 100755 index 0000000..e4ae13a --- /dev/null +++ b/gemnotes_0.2.3/ext/help-gemnotes_counter.pd @@ -0,0 +1,68 @@ +#N canvas 0 0 590 490 10; +#X obj 190 141 gemnotes_counter; +#X floatatom 23 209 5 0 0 3 offset - -; +#X floatatom 62 209 5 0 0 3 rhythm - -; +#X floatatom 102 210 5 0 0 3 duration - -; +#X floatatom 158 210 5 0 0 3 grouplen - -; +#X floatatom 212 210 5 0 0 3 groupcount - -; +#X floatatom 290 207 5 0 0 3 rest_offset - -; +#X floatatom 361 208 5 0 0 3 rest_rhythm - -; +#X obj 259 173 tgl 15 0 empty empty beam -2 21 0 10 -262144 -1 -1 0 +1; +#X obj 236 173 tgl 15 0 empty empty tie -2 21 0 10 -262144 -1 -1 0 +1; +#X obj 401 190 bng 15 250 50 0 empty empty newbar -3 21 0 10 -262144 +-1 -1; +#X obj 116 36 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 176 39 f; +#X floatatom 191 24 5 0 0 0 - - -; +#X obj 176 22 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X msg 245 37 bar 4 4 4 16; +#X msg 258 57 bar 6 8 6 16 4 16 2 16; +#X msg 249 91 step 1; +#X msg 314 93 step 2; +#X msg 362 94 allstep 0.11; +#X msg 363 115 allstep 0.18; +#X obj 97 281 cnv 15 300 150 empty empty gemnotes_milestones 20 12 +0 14 -204800 -13330 0; +#X text 123 309 Phase 1: build prototype objects.; +#X text 123 327 Phase 2: build prototype objectmakers; +#X text 124 345 Phase 3: build gemnotes_counter; +#X text 124 364 Phase 4: Implement and debug counter object; +#X text 125 382 Phase 5: build and link to score translator; +#X text 125 399 Phase 6: rehearse and perform Islands 1; +#X obj 103 309 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 103 327 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 103 345 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 103 363 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 103 381 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 103 399 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 406 345 September - December 2010; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 0; +#X connect 0 3 4 0; +#X connect 0 4 5 0; +#X connect 0 5 9 0; +#X connect 0 6 8 0; +#X connect 0 7 6 0; +#X connect 0 8 7 0; +#X connect 0 9 10 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 12 1; +#X connect 14 0 12 0; +#X connect 15 0 0 0; +#X connect 16 0 0 0; +#X connect 17 0 0 0; +#X connect 18 0 0 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; diff --git a/gemnotes_0.2.3/ext/polyquant.dll b/gemnotes_0.2.3/ext/polyquant.dll new file mode 100755 index 0000000..41e0021 Binary files /dev/null and b/gemnotes_0.2.3/ext/polyquant.dll differ diff --git a/gemnotes_0.2.3/ext/polyquant.pd_darwin b/gemnotes_0.2.3/ext/polyquant.pd_darwin new file mode 100755 index 0000000..53c45f8 Binary files /dev/null and b/gemnotes_0.2.3/ext/polyquant.pd_darwin differ diff --git a/gemnotes_0.2.3/ext/polyquant.pd_linux b/gemnotes_0.2.3/ext/polyquant.pd_linux new file mode 100755 index 0000000..66a97e6 Binary files /dev/null and b/gemnotes_0.2.3/ext/polyquant.pd_linux differ diff --git a/gemnotes_0.2.3/fonts/LucidaBrightRegular.ttf b/gemnotes_0.2.3/fonts/LucidaBrightRegular.ttf new file mode 100755 index 0000000..79738f1 Binary files /dev/null and b/gemnotes_0.2.3/fonts/LucidaBrightRegular.ttf differ diff --git a/gemnotes_0.2.3/fonts/Music5.ttf b/gemnotes_0.2.3/fonts/Music5.ttf new file mode 100755 index 0000000..7bec38a Binary files /dev/null and b/gemnotes_0.2.3/fonts/Music5.ttf differ diff --git a/gemnotes_0.2.3/fonts/Music6.ttf b/gemnotes_0.2.3/fonts/Music6.ttf new file mode 100755 index 0000000..31dd179 Binary files /dev/null and b/gemnotes_0.2.3/fonts/Music6.ttf differ diff --git a/gemnotes_0.2.3/fonts/Music7.ttf b/gemnotes_0.2.3/fonts/Music7.ttf new file mode 100755 index 0000000..c295fe4 Binary files /dev/null and b/gemnotes_0.2.3/fonts/Music7.ttf differ diff --git a/gemnotes_0.2.3/fonts/Music7chunky.ttf b/gemnotes_0.2.3/fonts/Music7chunky.ttf new file mode 100755 index 0000000..990fe5a Binary files /dev/null and b/gemnotes_0.2.3/fonts/Music7chunky.ttf differ diff --git a/gemnotes_0.2.3/fonts/Music8.ttf b/gemnotes_0.2.3/fonts/Music8.ttf new file mode 100755 index 0000000..4b51499 Binary files /dev/null and b/gemnotes_0.2.3/fonts/Music8.ttf differ diff --git a/gemnotes_0.2.3/fonts/vera.ttf b/gemnotes_0.2.3/fonts/vera.ttf new file mode 100755 index 0000000..58cd6b5 Binary files /dev/null and b/gemnotes_0.2.3/fonts/vera.ttf differ diff --git a/gemnotes_0.2.3/makevoice.pd b/gemnotes_0.2.3/makevoice.pd new file mode 100755 index 0000000..8cb1cc3 --- /dev/null +++ b/gemnotes_0.2.3/makevoice.pd @@ -0,0 +1,873 @@ +#N canvas 717 270 531 399 10; +#N canvas 95 222 450 300 \$0-voicecanvas 0; +#X obj 92 36 inlet; +#X obj 244 30 inlet; +#X obj 158 231 outlet; +#N canvas 11 341 1253 328 \$0-voice 0; +#X obj 10 10 inlet; +#X obj 100 10 inlet; +#X obj 10 300 outlet; +#X restore 119 143 pd \$0-voice; +#X connect 0 0 3 0; +#X connect 1 0 3 1; +#X connect 3 0 2 0; +#X restore 37 338 pd \$0-voicecanvas; +#N canvas 0 22 591 300 initcanvas 0; +#X msg 225 149 clear; +#X obj 186 81 t b b b; +#X msg 205 130 obj 10 10 inlet \, obj 100 10 inlet \, obj 10 300 outlet +; +#X msg 186 188 connect 0 0 3 0 \, connect 1 0 3 1 \, connect 3 0 2 +0; +#X obj 225 168 s pd-\$0-voice; +#X obj 186 207 s pd-\$0-voicecanvas; +#X obj 186 62 inlet; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 1 1 2 0; +#X connect 1 2 0 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 6 0 1 0; +#X restore 372 127 pd initcanvas; +#N canvas 0 22 450 300 initmakevoice 0; +#X obj 79 181 s \$0-hdsq; +#X obj 152 181 s \$0-stem; +#X obj 79 105 \$1; +#X obj 152 105 \$2; +#X obj 79 124 moses 1e-07; +#X obj 152 162 0.5; +#X obj 79 162 0.15; +#X obj 79 143 t b; +#X obj 152 124 moses 1e-07; +#X obj 152 143 t b; +#X obj 104 49 loadbang; +#X obj 225 124 s \$0-reset; +#X obj 251 66 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X msg 277 182 0; +#X obj 279 215 s \$0-bt; +#X obj 275 156 loadbang; +#X connect 2 0 4 0; +#X connect 3 0 8 0; +#X connect 4 0 7 0; +#X connect 4 1 6 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 9 0; +#X connect 8 1 5 0; +#X connect 9 0 5 0; +#X connect 10 0 2 0; +#X connect 10 0 3 0; +#X connect 10 0 11 0; +#X connect 12 0 3 0; +#X connect 12 0 2 0; +#X connect 13 0 14 0; +#X connect 15 0 13 0; +#X restore 387 217 pd initmakevoice; +#X msg 77 141 vis 1; +#X obj 37 38 inlet; +#X text 37 24 stave; +#X obj 77 38 inlet; +#X obj 74 307 s pd-\$0-voice; +#N canvas 87 88 1193 663 gemnotes_format 0; +#X obj 34 8 inlet; +#X obj 34 47 route note; +#X obj 34 83 route . +; +#X obj 166 312 r \$0-stem; +#X text 121 382 p; +#X text 147 384 bt; +#X text 171 374 tail; +#X text 170 363 beam/; +#X text 202 384 acc; +#X obj 191 344 * 1; +#X text 215 364 flat/; +#X text 213 375 sharp; +#X obj 501 366 f; +#X obj 520 347 t b f; +#X text 680 389 bt; +#X text 65 523 bt = orientation (bottom / top) of stems \, beams and +tails; +#X text 650 387 p; +#X text 614 388 xoff; +#X text 638 420 chord note; +#X obj 627 375 f; +#X obj 95 467 outlet; +#X text 101 47 reset \, bar \, group; +#X msg 110 185 step \$1; +#X obj 118 152 t b f; +#X text 687 365 flat/; +#X text 685 376 sharp; +#X obj 22 149 t b f; +#X msg 22 169 chord; +#X msg 172 184 step \$1; +#X obj 455 396 pack; +#X text 406 194 args: numerator \, denominator \, firstobject \, x-offset +; +#X obj 554 277 loadbang; +#X obj 507 239 route reset; +#X obj 346 394 pack f f f f; +#X obj 244 323 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 732 386 n_obj; +#X obj 95 417 prepend note; +#X obj 258 419 prepend rest; +#X obj 408 419 prepend barline; +#X obj 523 434 prepend tsig; +#X obj 629 438 prepend chord; +#X text 653 373 proot; +#X msg 536 526 xoff p proot bt shfl rhy dur n_obj; +#X text 702 421 rhy dur tie; +#X obj 629 404 pack f f f f f f f f f; +#X obj 336 360 - 0.05; +#X text 643 147 hdsq; +#X obj 34 27 route //; +#X floatatom 269 324 5 0 0 0 - - -; +#X msg 60 492 xoff rhythm pitch dur bt stem beam tie acc shfl grouptotal +objnum groupcount beamset rootobj tail tuple; +#X text 82 222 off rhy dur grp gc tie bm_ rof rd bar cho num den; +#X obj 488 77 route hdsq; +#X obj 455 360 + 0.08; +#X obj 523 403 pack f f f f f; +#X msg 625 308 0; +#X obj 554 324 t b; +#X msg 598 326 0.8; +#X obj 501 384 - 0.2; +#X text 839 273 tempo mark; +#X obj 762 436 prepend tempo; +#X obj 774 403 pack f f f f; +#X msg 397 13 debug; +#X obj 509 3 r \$0-debug; +#X obj 440 10 route bang; +#X floatatom 384 132 5 0 0 0 - - -; +#X text 383 222 tail tuple tempo gob nob; +#X obj 275 348 moses 2; +#X msg 304 377 0; +#X msg 706 276 \$1 tail 1; +#X obj 705 300 s \$0-sendback; +#X obj 666 256 print tail; +#X obj 145 330 r \$0-bt; +#X obj 920 424 outlet; +#X floatatom 609 239 5 0 0 0 - - -; +#X obj 879 60 route tempo; +#X obj 763 61 route reset tempo; +#X obj 829 102 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 754 116 cup; +#X msg 752 90 1; +#X msg 788 91 0; +#X floatatom 754 148 5 0 0 0 - - -; +#X obj 834 288 unpack f f f; +#X msg 525 300 0.6; +#X obj 609 259 > 0; +#X obj 614 280 sel 0 1; +#X floatatom 901 377 5 0 0 0 - - -; +#X text 886 392 should work...; +#X text 885 401 ...but doesn't!; +#X obj 804 337 == 0; +#X obj 773 357 spigot; +#X obj 734 336 spigot; +#X msg 668 310 1; +#X obj 796 307 t b; +#X obj 734 356 f; +#X text 819 358 <---nasty kludge; +#X obj 768 380 + 0.9; +#X obj 488 96 * 0.5; +#X obj 998 378 pack f f f f f f; +#X obj 994 324 unpack f f f f f; +#X msg 1034 303 0; +#X obj 1077 351 == 0; +#X obj 990 282 t a b; +#X msg 985 452 dyn \$1 \$2 \$3 \$4 \$5 \$6; +#X obj 80 395 pack f f f f f f 1 f 1 f f f f f f f f f f; +#X obj 830 242 print dyncount; +#X obj 395 157 print objects; +#X obj 1075 293 r \$0-bt; +#X floatatom 462 488 5 0 0 0 - - -; +#X msg 229 184 articulation \$1; +#X obj 236 129 unpack f f f f f f; +#X obj 128 129 unpack f f f f f; +#X obj 22 129 unpack f f f f f; +#X obj 105 26 route list; +#X obj 92 238 gemnotes_counter 4 4 3 1.1 ----------------------------- +; +#X connect 0 0 47 0; +#X connect 1 0 2 0; +#X connect 1 1 32 0; +#X connect 1 1 51 0; +#X connect 1 1 113 0; +#X connect 2 0 111 0; +#X connect 2 1 110 0; +#X connect 2 2 109 0; +#X connect 3 0 103 5; +#X connect 9 0 103 7; +#X connect 12 0 57 0; +#X connect 13 0 12 0; +#X connect 13 1 53 1; +#X connect 19 0 44 0; +#X connect 22 0 113 0; +#X connect 23 0 113 0; +#X connect 23 1 44 2; +#X connect 23 1 103 2; +#X connect 26 0 27 0; +#X connect 26 1 44 1; +#X connect 27 0 113 0; +#X connect 28 0 113 0; +#X connect 29 0 38 0; +#X connect 31 0 82 0; +#X connect 31 0 54 0; +#X connect 32 0 82 0; +#X connect 32 0 54 0; +#X connect 32 0 91 0; +#X connect 33 0 37 0; +#X connect 36 0 20 0; +#X connect 37 0 20 0; +#X connect 38 0 20 0; +#X connect 39 0 20 0; +#X connect 40 0 20 0; +#X connect 44 0 40 0; +#X connect 45 0 33 0; +#X connect 47 1 1 0; +#X connect 47 1 75 0; +#X connect 47 1 112 0; +#X connect 51 0 96 0; +#X connect 52 0 29 0; +#X connect 52 0 12 1; +#X connect 53 0 39 0; +#X connect 53 0 55 0; +#X connect 54 0 53 4; +#X connect 55 0 56 0; +#X connect 56 0 53 4; +#X connect 57 0 53 0; +#X connect 59 0 20 0; +#X connect 60 0 59 0; +#X connect 61 0 113 0; +#X connect 62 0 63 0; +#X connect 63 0 61 0; +#X connect 64 0 105 0; +#X connect 66 0 103 15; +#X connect 66 1 67 0; +#X connect 66 1 68 0; +#X connect 66 1 70 0; +#X connect 67 0 103 15; +#X connect 68 0 69 0; +#X connect 71 0 103 4; +#X connect 73 0 83 0; +#X connect 75 0 78 0; +#X connect 75 0 79 0; +#X connect 75 1 76 0; +#X connect 76 0 77 0; +#X connect 77 0 80 0; +#X connect 78 0 77 0; +#X connect 79 0 80 0; +#X connect 81 0 85 0; +#X connect 81 0 89 0; +#X connect 81 0 92 0; +#X connect 81 1 60 1; +#X connect 81 2 60 2; +#X connect 82 0 12 1; +#X connect 83 0 84 0; +#X connect 83 0 88 0; +#X connect 83 0 90 1; +#X connect 84 0 54 0; +#X connect 84 1 56 0; +#X connect 88 0 89 1; +#X connect 89 0 60 0; +#X connect 90 0 93 0; +#X connect 92 0 90 0; +#X connect 93 0 95 0; +#X connect 95 0 60 0; +#X connect 96 0 52 1; +#X connect 97 0 102 0; +#X connect 98 0 97 0; +#X connect 98 1 97 1; +#X connect 98 2 97 2; +#X connect 98 3 97 3; +#X connect 99 0 97 2; +#X connect 100 0 97 4; +#X connect 101 0 98 0; +#X connect 101 1 99 0; +#X connect 102 0 20 0; +#X connect 103 0 36 0; +#X connect 106 0 100 0; +#X connect 108 0 113 0; +#X connect 109 0 113 0; +#X connect 109 1 44 2; +#X connect 109 1 103 2; +#X connect 109 2 28 0; +#X connect 109 3 103 9; +#X connect 109 5 108 0; +#X connect 110 0 23 0; +#X connect 110 1 22 0; +#X connect 110 2 103 9; +#X connect 110 4 108 0; +#X connect 111 0 26 0; +#X connect 111 1 44 4; +#X connect 111 4 108 0; +#X connect 112 0 1 0; +#X connect 113 0 19 1; +#X connect 113 0 93 1; +#X connect 113 0 103 0; +#X connect 113 1 44 5; +#X connect 113 1 103 1; +#X connect 113 2 33 2; +#X connect 113 2 44 6; +#X connect 113 2 103 3; +#X connect 113 3 103 10; +#X connect 113 4 103 13; +#X connect 113 5 9 0; +#X connect 113 5 34 0; +#X connect 113 5 44 7; +#X connect 113 6 48 0; +#X connect 113 6 103 12; +#X connect 113 7 45 0; +#X connect 113 8 33 1; +#X connect 113 9 52 0; +#X connect 113 10 19 0; +#X connect 113 11 13 0; +#X connect 113 12 53 2; +#X connect 113 13 66 0; +#X connect 113 14 103 16; +#X connect 113 15 81 0; +#X connect 113 16 103 14; +#X connect 113 17 44 8; +#X connect 113 17 53 3; +#X connect 113 17 29 1; +#X connect 113 17 33 3; +#X connect 113 17 60 3; +#X connect 113 17 64 0; +#X connect 113 17 103 11; +#X connect 113 17 97 5; +#X connect 113 18 72 0; +#X connect 113 18 73 0; +#X connect 113 19 103 17; +#X connect 113 20 103 18; +#X connect 113 20 107 0; +#X connect 113 21 101 0; +#X connect 113 21 104 0; +#X restore 170 90 pd gemnotes_format; +#N canvas 395 22 904 511 make_note 0; +#X obj 35 309 f; +#X obj 45 36 inlet; +#X obj 41 59 t b a b; +#X obj 32 238 spigot 1; +#X obj 77 219 == 0; +#X obj 53 265 t b; +#X obj 73 287 f; +#X obj 472 339 f; +#X obj 402 183 spigot; +#X text 553 346 \$14 - thisobj \, \$15 - prevobj \, \$16 - rootobj +; +#X obj 363 238 f; +#X obj 445 339 f; +#X obj 402 202 t b b b; +#X obj 227 490 outlet; +#X msg 491 54 xobj connectfirst connectprev thisobj; +#X obj 363 257 + 275; +#X obj 90 59 s \$0-get_x_obj; +#X obj 61 309 r \$0-x_obj; +#X obj 389 238 r \$0-x_obj; +#X obj 363 276 s \$0-set_x_obj; +#X obj 35 347 s \$0-set_x_obj; +#X text 40 107 x r p d bt stem bm tie acc shfl grp obroute bmconn gc +rootob; +#X obj 417 42 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 534 144 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 625 144 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 628 168 s bangscore; +#X obj 536 167 s resetscore; +#X obj 500 339 f; +#X floatatom 332 31 5 0 0 0 - - -; +#X floatatom 465 176 5 0 0 0 - - -; +#X floatatom 607 364 5 0 0 0 - - -; +#X obj 82 423 print note_1; +#X obj 407 423 print note_234; +#X obj 82 404 spigot; +#X obj 407 404 spigot; +#X obj 456 384 r \$0-debug; +#X obj 115 385 r \$0-debug; +#X obj 286 43 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 198 52 sel 1; +#X obj 198 77 bng 15 550 50 0 empty empty empty 17 7 0 10 -262144 -258113 +-1; +#X obj 198 30 > 0; +#X obj 317 152 makefilename group_%d; +#X obj 35 328 + 315; +#X obj 563 261 f; +#X obj 561 194 change; +#X obj 592 261 f; +#N canvas 0 22 450 300 \$0-reclock 0; +#X obj 92 69 inlet; +#N canvas 0 22 450 300 \$0-reclocker 0; +#X restore 96 128 pd \$0-reclocker; +#X restore 735 152 pd \$0-reclock; +#X obj 745 256 s pd-\$0-reclocker; +#X msg 742 221 clear \, obj 10 10 inlet; +#X obj 561 215 t f b b b; +#X obj 643 245 s pd-\$0-reclock; +#X msg 643 221 connect 0 0 1 0; +#X obj 736 102 r \$0-reclock; +#X msg 735 126 reclock; +#X obj 683 275 makefilename group_%d; +#X msg 683 294 obj 10 80 send \$1 \, connect 0 0 1 0; +#X obj 543 297 makefilename group_%d; +#X msg 556 100 0; +#X msg 591 99 1; +#X obj 645 105 inlet; +#X msg 581 134 set -1; +#X msg 543 316 obj 110 80 send \$1 \, connect 0 0 2 0; +#X msg 518 98 2; +#X msg 671 142 clear; +#X msg 36 441 obj \$1 150 noteobject \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 +\$10 \$11 \$12 \$13 \$15 \$16 \$17 \$18 \$19 \, connect 0 0 \$14 0 +\, connect 1 0 \$14 1; +#X msg 401 441 obj \$1 150 noteobject \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 +\$10 \$11 \$12 \$13 \$17 \$18 \$19 \$20 \$21 \, connect 0 0 \$14 0 +\, connect 1 0 \$14 1 \, connect \$14 0 \$15 3 \, connect \$16 1 \$14 +2; +#X obj 307 366 pack f f f f f f f f f f f f f f f f f f f s f; +#X obj 47 367 pack f f f f f f f f f f f f f f f f f s f; +#X obj 49 124 unpack f f f f f f f f f f f f f f f f f f f; +#X connect 0 0 42 0; +#X connect 0 0 67 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 8 0; +#X connect 2 1 68 0; +#X connect 2 2 16 0; +#X connect 3 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 3 1; +#X connect 5 0 6 0; +#X connect 6 0 7 1; +#X connect 6 0 27 1; +#X connect 7 0 30 0; +#X connect 7 0 66 14; +#X connect 8 0 12 0; +#X connect 10 0 15 0; +#X connect 10 0 66 0; +#X connect 11 0 7 1; +#X connect 11 0 66 13; +#X connect 12 0 10 0; +#X connect 12 1 11 0; +#X connect 12 2 7 0; +#X connect 12 2 27 0; +#X connect 15 0 19 0; +#X connect 17 0 0 1; +#X connect 18 0 10 1; +#X connect 23 0 26 0; +#X connect 24 0 25 0; +#X connect 27 0 66 15; +#X connect 33 0 31 0; +#X connect 34 0 32 0; +#X connect 35 0 34 1; +#X connect 36 0 33 1; +#X connect 38 0 39 0; +#X connect 40 0 38 0; +#X connect 41 0 66 19; +#X connect 41 0 67 17; +#X connect 42 0 20 0; +#X connect 43 0 45 1; +#X connect 43 0 56 0; +#X connect 44 0 49 0; +#X connect 45 0 54 0; +#X connect 48 0 47 0; +#X connect 49 0 43 0; +#X connect 49 1 45 0; +#X connect 49 2 51 0; +#X connect 49 3 48 0; +#X connect 51 0 50 0; +#X connect 52 0 53 0; +#X connect 53 0 46 0; +#X connect 54 0 55 0; +#X connect 55 0 47 0; +#X connect 56 0 61 0; +#X connect 57 0 44 0; +#X connect 58 0 44 0; +#X connect 59 0 60 0; +#X connect 59 0 63 0; +#X connect 60 0 44 0; +#X connect 61 0 47 0; +#X connect 62 0 44 0; +#X connect 63 0 47 0; +#X connect 64 0 13 0; +#X connect 65 0 13 0; +#X connect 66 0 65 0; +#X connect 66 0 34 0; +#X connect 67 0 64 0; +#X connect 67 0 33 0; +#X connect 68 0 66 1; +#X connect 68 0 67 1; +#X connect 68 1 66 2; +#X connect 68 1 67 2; +#X connect 68 2 66 3; +#X connect 68 2 67 3; +#X connect 68 3 66 4; +#X connect 68 3 67 4; +#X connect 68 4 66 5; +#X connect 68 4 67 5; +#X connect 68 5 66 6; +#X connect 68 5 67 6; +#X connect 68 6 66 7; +#X connect 68 6 67 7; +#X connect 68 7 40 0; +#X connect 68 7 66 8; +#X connect 68 7 67 8; +#X connect 68 8 66 9; +#X connect 68 8 67 9; +#X connect 68 9 66 10; +#X connect 68 9 67 10; +#X connect 68 10 66 11; +#X connect 68 10 67 11; +#X connect 68 11 11 1; +#X connect 68 11 6 1; +#X connect 68 11 29 0; +#X connect 68 11 66 12; +#X connect 68 11 67 12; +#X connect 68 11 67 13; +#X connect 68 12 4 0; +#X connect 68 12 8 1; +#X connect 68 12 22 0; +#X connect 68 13 66 16; +#X connect 68 13 67 14; +#X connect 68 14 28 0; +#X connect 68 15 66 17; +#X connect 68 15 67 15; +#X connect 68 16 66 18; +#X connect 68 16 67 16; +#X connect 68 17 41 0; +#X connect 68 17 44 0; +#X connect 68 18 67 18; +#X connect 68 18 66 20; +#X restore 108 273 pd make_note; +#N canvas 812 45 450 378 make_tsig 0; +#X obj 136 16 inlet; +#X obj 120 124 f; +#X obj 60 324 outlet; +#X obj 188 202 prepend tsig; +#X obj 97 151 + 90; +#X obj 188 232 prepend; +#X obj 188 264 s \$0-collate; +#X obj 32 171 s \$0-set_x_obj; +#X obj 176 66 s \$0-get_x_obj; +#X obj 136 35 t b a b; +#X obj 178 92 r \$0-x_obj; +#X msg 60 291 obj \$1 100 tsig \$2 \$3 \$4 \$6 \, connect 0 0 \$5 0 +\, connect 1 0 \$5 1; +#X obj 163 124 unpack f f f f f; +#X obj 140 181 pack f f f f f f; +#X connect 0 0 9 0; +#X connect 1 0 4 0; +#X connect 1 0 13 0; +#X connect 3 0 5 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 9 0 1 0; +#X connect 9 1 12 0; +#X connect 9 2 8 0; +#X connect 10 0 1 1; +#X connect 11 0 2 0; +#X connect 12 0 13 1; +#X connect 12 1 13 2; +#X connect 12 2 13 3; +#X connect 12 3 5 1; +#X connect 12 3 13 4; +#X connect 12 4 13 5; +#X connect 13 0 11 0; +#X connect 13 0 3 0; +#X restore 224 280 pd make_tsig; +#X text 77 24 score commands; +#N canvas 0 22 450 300 make_barline 0; +#X obj 131 27 inlet; +#X obj 115 122 f; +#X obj 92 149 + 90; +#X obj 183 220 prepend; +#X obj 183 240 s \$0-collate; +#X obj 27 169 s \$0-set_x_obj; +#X obj 165 101 r \$0-x_obj; +#X obj 183 200 prepend barline; +#X obj 158 122 unpack f f; +#X obj 130 175 pack f f f; +#X obj 68 279 outlet; +#X obj 131 50 t b a b; +#X obj 171 82 s \$0-get_x_obj; +#X msg 68 260 obj \$1 100 barline \$2 \, connect 0 0 \$3 0 \, connect +1 0 \$3 1; +#X obj 150 279 outlet; +#X obj 133 219 packel 2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 1 0 9 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 6 0 1 1; +#X connect 7 0 3 0; +#X connect 8 0 9 1; +#X connect 8 1 9 2; +#X connect 8 1 3 1; +#X connect 9 0 7 0; +#X connect 9 0 13 0; +#X connect 9 0 15 0; +#X connect 11 0 1 0; +#X connect 11 1 8 0; +#X connect 11 2 12 0; +#X connect 13 0 10 0; +#X connect 15 0 14 0; +#X restore 198 260 pd make_barline; +#N canvas 0 22 450 300 make_rest 0; +#X obj 111 50 t b a b; +#X obj 150 70 s \$0-get_x_obj; +#X obj 111 31 inlet; +#X obj 126 90 r \$0-x_obj; +#X obj 44 128 + 73; +#X obj 111 109 f; +#X obj 19 169 s \$0-set_x_obj; +#X obj 111 169 pack f f f f f; +#X obj 131 128 unpack f f f f; +#X obj 62 265 outlet; +#X obj 330 216 print rest; +#X obj 330 197 spigot; +#X obj 363 178 r \$0-debug; +#X msg 62 234 obj \$1 100 rest \$2 \$3 \$4 \$5 \, connect 0 0 \$5 0 +\, connect 1 0 \$5 1; +#X connect 0 0 5 0; +#X connect 0 1 8 0; +#X connect 0 2 1 0; +#X connect 2 0 0 0; +#X connect 3 0 5 1; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 5 0 7 0; +#X connect 7 0 13 0; +#X connect 7 0 11 0; +#X connect 8 0 7 1; +#X connect 8 1 7 2; +#X connect 8 2 7 3; +#X connect 8 3 7 4; +#X connect 11 0 10 0; +#X connect 12 0 11 1; +#X connect 13 0 9 0; +#X restore 166 237 pd make_rest; +#X obj 90 94 s \$0-debug; +#N canvas 0 22 464 422 make_chord 0; +#X msg 48 382 slavenote xoff rhythm pitch dur bt tie acc shfl proot +route; +#X text 113 367 1 2 3 4 5 6 7 8 9 10; +#X obj 89 67 inlet; +#X msg 116 119 xoff p proot bt shfl rhy dur tie n_obj; +#X obj 35 111 cup; +#X obj 35 130 * 30; +#X obj 35 149 + 180; +#X obj 89 86 t b a b; +#X obj 23 191 f; +#X obj 140 86 s \$0-get_x_obj; +#X obj 38 171 r \$0-x_obj; +#X msg 35 92 0; +#X obj 35 73 t b; +#X obj 35 54 inlet; +#X obj 67 293 outlet; +#X obj 94 142 unpack f f f f f f f f f f; +#X obj 67 243 pack f f f f f f f f 1 f f f s; +#X obj 246 177 makefilename g%d; +#X msg 67 262 obj \$1 \$2 slavenote \$3 \$4 \$5 \$6 \$7 \$8 \$9 \$10 +\$11 \$12 \$13 \, connect 0 0 \$12 0 \, connect 1 0 \$12 1; +#X connect 2 0 7 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 16 1; +#X connect 7 0 8 0; +#X connect 7 1 15 0; +#X connect 7 2 9 0; +#X connect 7 2 4 0; +#X connect 8 0 16 0; +#X connect 10 0 8 1; +#X connect 11 0 4 0; +#X connect 12 0 11 0; +#X connect 13 0 12 0; +#X connect 15 0 16 2; +#X connect 15 1 16 4; +#X connect 15 2 16 10; +#X connect 15 3 16 6; +#X connect 15 4 16 9; +#X connect 15 5 16 3; +#X connect 15 6 16 5; +#X connect 15 7 16 7; +#X connect 15 8 16 11; +#X connect 15 9 17 0; +#X connect 16 0 18 0; +#X connect 17 0 16 12; +#X connect 18 0 14 0; +#X restore 150 216 pd make_chord; +#N canvas 0 22 450 300 dynobj_positions 0; +#X text 32 26 This object keeps track of the number of abstractions +created in [pd \$0-voice].; +#X obj 246 128 f; +#X obj 246 153 s \$0-x_obj; +#X obj 246 65 r \$0-get_x_obj; +#X obj 278 92 r \$0-set_x_obj; +#X msg 147 74 10; +#X obj 38 69 inlet; +#X connect 1 0 2 0; +#X connect 3 0 1 0; +#X connect 4 0 1 1; +#X connect 5 0 1 1; +#X connect 6 0 5 0; +#X restore 382 63 pd dynobj_positions; +#N canvas 0 22 462 368 make_tempo 0; +#X obj 136 16 inlet; +#X obj 120 124 f; +#X obj 60 324 outlet; +#X obj 97 151 + 90; +#X obj 188 232 prepend; +#X obj 188 264 s \$0-collate; +#X obj 32 171 s \$0-set_x_obj; +#X obj 176 66 s \$0-get_x_obj; +#X obj 136 35 t b a b; +#X obj 178 92 r \$0-x_obj; +#X obj 163 124 unpack f f f f; +#X obj 140 181 pack f f f f f; +#X obj 188 202 prepend tempo; +#X msg 60 291 obj \$1 100 tempo \$2 \$3 \$4 \$5 \, connect 0 0 \$5 +0 \, connect 1 0 \$5 1; +#X connect 0 0 8 0; +#X connect 1 0 3 0; +#X connect 1 0 11 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 8 0 1 0; +#X connect 8 1 10 0; +#X connect 8 2 7 0; +#X connect 9 0 1 1; +#X connect 10 0 11 1; +#X connect 10 1 11 2; +#X connect 10 2 11 3; +#X connect 10 3 4 1; +#X connect 10 3 11 4; +#X connect 11 0 13 0; +#X connect 11 0 12 0; +#X connect 12 0 4 0; +#X connect 13 0 2 0; +#X restore 258 223 pd make_tempo; +#X obj 304 308 r \$0-debug; +#X obj 269 331 spigot; +#X obj 215 304 r pd-\$0-voice; +#X obj 268 350 print; +#X obj 147 338 r \$0-sendback; +#X obj 379 107 s \$0-bt; +#N canvas 206 149 450 300 debug 0; +#X obj 63 38 inlet; +#X obj 61 118 gemhead; +#X obj 155 57 inlet; +#X obj 154 83 unpack f f f; +#X obj 18 61 inlet; +#X msg 64 96 0; +#X obj 70 66 loadbang; +#X floatatom 192 120 5 0 0 0 - - -; +#X floatatom 21 116 5 0 0 0 - - -; +#X obj 71 183 translateXYZ 0 0 -1.2; +#X floatatom 15 85 5 0 0 0 - - -; +#X obj 71 203 rectangle 0.05 0.1; +#X obj 95 153 - 10; +#X obj 135 126 - 1.63; +#X connect 0 0 8 0; +#X connect 0 0 12 0; +#X connect 1 0 9 0; +#X connect 2 0 3 0; +#X connect 3 1 7 0; +#X connect 3 1 13 0; +#X connect 4 0 1 0; +#X connect 4 0 10 0; +#X connect 5 0 1 0; +#X connect 6 0 5 0; +#X connect 9 0 11 0; +#X connect 12 0 9 1; +#X connect 13 0 9 2; +#X restore 255 118 pd debug; +#X obj 324 351 outlet; +#X obj 429 106 s \$0-stem; +#X obj 376 175 outlet; +#X obj 77 60 route vis debug info reclock; +#X obj 312 87 route reset bt stem; +#X obj 118 154 s \$0-reclock; +#X obj 168 113 t b a; +#N canvas 0 22 546 426 make_dynamics 0; +#X obj 146 26 inlet; +#X obj 130 134 f; +#X obj 70 335 outlet; +#X obj 107 161 + 90; +#X obj 198 274 s \$0-collate; +#X obj 42 181 s \$0-set_x_obj; +#X obj 186 76 s \$0-get_x_obj; +#X obj 146 45 t b a b; +#X obj 188 102 r \$0-x_obj; +#X obj 172 150 unpack f f f f f f; +#X obj 150 191 pack f f f f f f f; +#X msg 70 301 obj \$1 100 dynamic \$2 \$3 \$4 \$5 \$6 \$7 \, connect +0 0 \$7 0 \, connect 1 0 \$7 1; +#X msg 199 246 \$7 dynamic \$1 \$2 \$3 \$4 \$5 \$6; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 1 0 10 0; +#X connect 3 0 5 0; +#X connect 7 0 1 0; +#X connect 7 1 9 0; +#X connect 7 2 6 0; +#X connect 8 0 1 1; +#X connect 9 0 10 1; +#X connect 9 1 10 2; +#X connect 9 2 10 3; +#X connect 9 3 10 4; +#X connect 9 4 10 5; +#X connect 9 5 10 6; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 2 0; +#X connect 12 0 4 0; +#X restore 313 258 pd make_dynamics; +#X obj 118 194 route note rest barline tsig chord tempo dyn; +#X connect 3 0 7 0; +#X connect 4 0 0 0; +#X connect 4 0 24 2; +#X connect 6 0 28 0; +#X connect 8 0 31 0; +#X connect 8 0 27 0; +#X connect 8 1 24 1; +#X connect 9 0 7 0; +#X connect 10 0 7 0; +#X connect 12 0 7 0; +#X connect 12 1 25 0; +#X connect 13 0 7 0; +#X connect 15 0 7 0; +#X connect 17 0 7 0; +#X connect 18 0 19 1; +#X connect 19 0 21 0; +#X connect 20 0 19 0; +#X connect 22 0 0 1; +#X connect 28 0 3 0; +#X connect 28 1 14 0; +#X connect 28 1 24 0; +#X connect 28 3 30 0; +#X connect 28 4 8 0; +#X connect 28 4 29 0; +#X connect 29 0 1 0; +#X connect 29 0 16 0; +#X connect 29 0 9 1; +#X connect 29 1 23 0; +#X connect 29 2 26 0; +#X connect 29 3 0 1; +#X connect 31 0 30 0; +#X connect 31 1 33 0; +#X connect 32 0 7 0; +#X connect 33 0 9 0; +#X connect 33 0 15 0; +#X connect 33 1 13 0; +#X connect 33 2 12 0; +#X connect 33 3 10 0; +#X connect 33 4 15 1; +#X connect 33 5 17 0; +#X connect 33 6 32 0; diff --git a/gemnotes_0.2.3/midifile.pd b/gemnotes_0.2.3/midifile.pd new file mode 100755 index 0000000..880cde1 --- /dev/null +++ b/gemnotes_0.2.3/midifile.pd @@ -0,0 +1,53 @@ +#N canvas 0 22 589 298 10; +#X obj 98 163 seq; +#X obj 68 62 openpanel; +#X obj 97 18 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 155 155 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 96 103 set read \$1 \, bang; +#X msg 261 90 stop; +#X obj 98 183 serialize 3; +#X obj 71 258 outlet; +#X obj 247 19 inlet; +#X obj 244 42 sel 1 0; +#X obj 138 63 symbol; +#X obj 115 204 route 128 144 176; +#X obj 145 229 prepend noteoff; +#X obj 242 229 prepend noteon; +#X obj 333 229 prepend controller; +#X obj 206 259 outlet; +#X msg 96 131 read /media/sda3/Data/puredata/2010/vibra/midi/M1.mid +; +#X obj 282 188 outlet; +#X obj 74 204 t a a; +#X obj 324 94 loadbang; +#X obj 309 67 delay 0; +#X obj 100 41 route bang symbol; +#X obj 150 6 inlet; +#X connect 0 0 6 0; +#X connect 0 1 17 0; +#X connect 1 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 4 0 16 0; +#X connect 5 0 0 0; +#X connect 6 0 18 0; +#X connect 8 0 9 0; +#X connect 9 0 0 0; +#X connect 9 1 5 0; +#X connect 9 1 20 0; +#X connect 10 0 4 0; +#X connect 11 0 12 0; +#X connect 11 1 13 0; +#X connect 11 2 14 0; +#X connect 12 0 15 0; +#X connect 13 0 15 0; +#X connect 14 0 15 0; +#X connect 16 0 0 0; +#X connect 18 0 7 0; +#X connect 18 1 11 0; +#X connect 20 0 16 0; +#X connect 21 0 1 0; +#X connect 21 1 10 0; +#X connect 22 0 21 0; diff --git a/gemnotes_0.2.3/noteobject.pd b/gemnotes_0.2.3/noteobject.pd new file mode 100755 index 0000000..691ec66 --- /dev/null +++ b/gemnotes_0.2.3/noteobject.pd @@ -0,0 +1,2025 @@ +#N canvas 0 22 1265 911 10; +#X floatatom 110 275 5 0 0 0 - - -; +#X obj 76 406 text3d; +#X obj 52 306 gemhead; +#X obj 110 304 +; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 279 151 outlet; +#X msg 283 110 11; +#X obj 150 57 r \$0-lbn; +#X msg 27 110 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 135 386 pd inittext; +#X obj 459 347 text3d; +#X obj 397 192 gemhead; +#X msg 626 269 text (; +#X msg 744 269 text &; +#X msg 685 269 text '; +#X floatatom 493 151 5 0 0 0 - - -; +#X obj 493 171 +; +#X text 386 171 Accidental:::; +#X obj 771 159 hradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X obj 771 177 sel 0 1 2; +#X msg 771 140 2; +#X obj 495 206 +; +#X text 569 201 #; +#X text 621 201 nat; +#X text 681 201 b; +#X floatatom 274 95 5 0 0 1 y-position - -; +#N canvas 0 22 442 272 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 358 112 11; +#X obj 195 68 r \$0-lbn; +#X msg 21 110 font fonts/Music7chunky.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 464 327 pd inittext; +#X floatatom 443 511 5 0 0 0 - - -; +#X obj 401 620 text3d; +#X obj 337 537 gemhead; +#X obj 372 473 tgl 15 0 empty empty show/hide 17 7 0 10 -262144 -1 +-1 0 1; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 263 115 11; +#X obj 157 78 r \$0-lbn; +#X msg 10 115 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 461 597 pd inittext; +#X obj 362 424 < -4; +#X obj 410 423 > 6; +#X obj 372 390 t f f; +#X obj 379 455 ||; +#N canvas 609 468 671 300 topleger 0; +#X msg 53 137 text +; +#X obj 124 98 sel 0 1 2 3 4 5 6 7 8 9; +#X msg 97 137 text r; +#X obj 98 207 outlet; +#X obj 137 34 inlet; +#X msg 142 136 text s; +#X msg 186 136 text t; +#X msg 231 138 text u; +#X msg 275 138 text v; +#X msg 320 139 text w; +#X msg 364 139 text x; +#X msg 409 139 text y; +#X msg 453 139 text z; +#X obj 226 67 * 0.5; +#X obj 263 69 i; +#X obj 151 60 moses 7; +#X obj 200 60 - 7; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 1 1 2 0; +#X connect 1 2 5 0; +#X connect 1 3 6 0; +#X connect 1 4 7 0; +#X connect 1 5 8 0; +#X connect 1 6 9 0; +#X connect 1 7 10 0; +#X connect 1 8 11 0; +#X connect 1 9 12 0; +#X connect 2 0 3 0; +#X connect 4 0 15 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 3 0; +#X connect 8 0 3 0; +#X connect 9 0 3 0; +#X connect 10 0 3 0; +#X connect 11 0 3 0; +#X connect 12 0 3 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X connect 15 1 16 0; +#X connect 16 0 13 0; +#X restore 508 491 pd topleger; +#N canvas 916 468 450 300 botleger 0; +#X obj 114 63 inlet; +#X msg 61 211 text a; +#X obj 113 157 i; +#X obj 113 135 * -0.5; +#X obj 74 184 sel 0 1 2 3 4 5 6 7; +#X msg 107 211 text h; +#X msg 152 211 text i; +#X msg 197 211 text j; +#X msg 243 211 text k; +#X msg 288 211 text l; +#X msg 333 211 text m; +#X msg 378 211 text n; +#X obj 152 259 outlet; +#X floatatom 200 162 5 0 0 0 - - -; +#X floatatom 189 124 5 0 0 0 - - -; +#X obj 114 86 moses -4; +#X obj 113 109 + 5; +#X text 237 61 k \, l \, m \, n - bottom of font reached.; +#X connect 0 0 15 0; +#X connect 1 0 12 0; +#X connect 2 0 4 0; +#X connect 2 0 13 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 4 3 7 0; +#X connect 4 4 8 0; +#X connect 4 5 9 0; +#X connect 4 6 10 0; +#X connect 4 7 11 0; +#X connect 5 0 12 0; +#X connect 6 0 12 0; +#X connect 7 0 12 0; +#X connect 8 0 12 0; +#X connect 9 0 12 0; +#X connect 10 0 12 0; +#X connect 11 0 12 0; +#X connect 15 0 14 0; +#X connect 15 0 16 0; +#X connect 16 0 3 0; +#X restore 343 495 pd botleger; +#N canvas 0 22 450 300 loadbng 0; +#X obj 79 89 del 20; +#X obj 79 116 outlet; +#X obj 79 59 r \$0-lbn; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X restore 771 121 pd loadbng; +#N canvas 0 22 287 304 pos 0; +#X obj 20 -15 inlet; +#X obj 166 -18 inlet; +#X obj 20 77 spigot 1; +#X obj 20 98 tabread flats; +#X obj 110 77 spigot; +#X obj 20 181 - 28; +#X obj 110 98 tabread sharps; +#X obj 65 55 == 0; +#X obj 20 125 moses 80; +#X obj 28 154 - 80; +#X msg 54 181 1; +#X obj 20 6 f; +#X obj 65 229 outlet; +#X msg 65 155 2; +#X obj 110 181 - 28; +#X obj 110 125 moses 80; +#X obj 118 154 - 80; +#X msg 144 181 1; +#X msg 155 155 0; +#X obj 20 229 outlet; +#X obj 20 208 -; +#X obj 116 11 t b f; +#X obj 234 43 inlet; +#X msg 210 124 12; +#X msg 242 124 0; +#X obj 223 90 sel 1 2; +#X obj 223 62 t b f; +#X connect 0 0 11 0; +#X connect 1 0 21 0; +#X connect 2 0 3 0; +#X connect 3 0 8 0; +#X connect 4 0 6 0; +#X connect 5 0 20 0; +#X connect 6 0 15 0; +#X connect 7 0 2 1; +#X connect 8 0 10 0; +#X connect 8 0 5 0; +#X connect 8 1 9 0; +#X connect 8 1 13 0; +#X connect 9 0 5 0; +#X connect 10 0 12 0; +#X connect 11 0 4 0; +#X connect 11 0 2 0; +#X connect 13 0 12 0; +#X connect 14 0 20 0; +#X connect 15 0 17 0; +#X connect 15 0 14 0; +#X connect 15 1 16 0; +#X connect 15 1 18 0; +#X connect 16 0 14 0; +#X connect 17 0 12 0; +#X connect 18 0 12 0; +#X connect 20 0 19 0; +#X connect 21 0 11 0; +#X connect 21 1 7 0; +#X connect 21 1 4 1; +#X connect 22 0 26 0; +#X connect 23 0 20 1; +#X connect 24 0 20 1; +#X connect 25 0 23 0; +#X connect 25 1 24 0; +#X connect 26 0 11 0; +#X connect 26 1 25 0; +#X restore 274 76 pd pos; +#X floatatom 274 60 5 0 0 0 - - -; +#X obj 89 20 inlet; +#X obj 157 117 pack f f f; +#X obj 72 247 +; +#X msg 967 237 text G; +#X msg 967 256 text 7; +#X msg 967 218 text W; +#X floatatom 808 104 5 0 0 0 value - -; +#X obj 590 628 text3d; +#X obj 595 518 gemhead; +#X obj 701 474 +; +#X msg 844 405 0; +#X msg 870 406 1; +#X msg 802 548 text g; +#X obj 816 432 f; +#X obj 389 545 - 0.048; +#X obj 390 137 * 0.092; +#X obj 218 256 * 0.092; +#X obj 729 426 * 0.092; +#X obj 390 118 + 2; +#X obj 334 197 - 0.185; +#X obj 857 79 moses 7; +#X obj 897 101 - 7; +#X obj 959 100 sel 0 1 2 3 4 5 6; +#X msg 740 379 11; +#X msg 767 380 9; +#X obj 134 334 - 0; +#X msg 810 381 6; +#X msg 977 338 0.415; +#X msg 930 368 0; +#X obj 485 230 - 0; +#X msg 1091 271 1; +#X msg 1111 223 0.185; +#X msg 1192 229 0.085; +#X msg 1151 225 0.149; +#X msg 1069 333 0.113; +#X msg 1042 393 0.048; +#X msg 1056 365 0.088; +#X msg 1074 309 0.02; +#X obj 546 1050 text3d; +#X obj 510 938 gemhead; +#X obj 684 920 +; +#X text 759 817 a tail; +#X msg 746 1014 text ~; +#X obj 547 994 rotateXYZ 0 0 0; +#X msg 726 922 0; +#X msg 756 922 180; +#X obj 726 855 f; +#N canvas 22 321 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 263 112 11; +#X obj 225 52 r \$0-lbn; +#X msg 30 83 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 642 1021 pd inittext; +#X msg 786 1014 text b; +#X msg 826 1014 text c; +#X obj 508 894 &&; +#X obj 10 843 gemhead; +#X obj 76 854 +; +#X msg 183 701 0; +#X obj 226 804 - 2.32; +#X msg 262 774 2.32; +#X text 294 773 <--- changes with screen dimensions!!!; +#X msg 232 616 0.25; +#X obj 183 679 sel 0 1; +#X text 287 690 <--- changes with notehead size!!!; +#X msg 516 868 1; +#X msg 547 891 0; +#X obj 11 783 > 0; +#X text 162 665 bottom/top; +#X obj 726 874 sel 0 1; +#X msg 429 841 1; +#X obj 176 1071 outlet; +#X obj 405 896 moses 3; +#X obj 441 918 - 2; +#X msg 407 918 0; +#X obj 428 964 t b f; +#X obj 382 1001 *; +#X msg 699 899 2; +#X msg 742 898 -2; +#X text 23 765 a stem; +#X obj 251 718 * -1; +#X obj 237 737 -0.5; +#X obj 279 735 0.5; +#X obj 247 835 -; +#X obj 190 787 +; +#X obj 137 842 -; +#X obj 538 794 * 0.5; +#X obj 501 846 sel 3 4 5 6; +#X obj 547 869 t b; +#X msg 866 1014 text |; +#X obj 159 148 s \$0-color; +#X obj 149 308 r \$0-color; +#X obj 479 458 r \$0-color; +#X obj 430 277 r \$0-color; +#X obj 599 154 s \$0-value; +#X obj 83 655 r \$0-value; +#X obj 322 861 moses 7; +#X obj 374 859 - 7; +#X obj 165 881 r \$0-color; +#X obj 663 995 r \$0-color; +#X obj 113 189 s \$0-z; +#X obj 643 123 s \$0-direction; +#X obj 669 104 s \$0-stemlength; +#X obj 690 84 s \$0-beamed; +#X obj 183 643 r \$0-direction; +#X obj 276 669 r \$0-stemlength; +#X obj 573 694 r \$0-beamed; +#X obj 726 834 r \$0-direction; +#X obj 167 855 r \$0-z; +#X obj 658 947 r \$0-z; +#X msg 251 1046 x-stem y-stem stemlength beams direction value; +#X obj 975 1044 text3d; +#X obj 947 834 gemhead; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 263 112 11; +#X obj 120 40 r \$0-lbn; +#X msg 51 79 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 1071 1018 pd inittext; +#X obj 961 895 +; +#X floatatom 967 862 5 0 0 0 - - -; +#N canvas 316 144 450 300 bottie 0; +#X msg 79 129 text A; +#X msg 127 129 text B; +#X msg 185 129 text C; +#X msg 246 129 text D; +#X obj 81 168 outlet; +#X obj 77 57 inlet; +#X obj 80 94 sel 3 2 1 0; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 3 0 4 0; +#X connect 5 0 6 0; +#X connect 6 0 0 0; +#X connect 6 1 1 0; +#X connect 6 2 2 0; +#X connect 6 3 3 0; +#X restore 1204 938 pd bottie; +#N canvas 316 144 450 300 toptie 0; +#X obj 81 168 outlet; +#X obj 77 57 inlet; +#X msg 79 129 text P; +#X msg 127 129 text Q; +#X msg 185 129 text R; +#X msg 246 129 text S; +#X obj 81 94 sel 3 2 1 0; +#X connect 1 0 6 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 2 0; +#X connect 6 1 3 0; +#X connect 6 2 4 0; +#X connect 6 3 5 0; +#X restore 1264 938 pd toptie; +#X obj 1268 886 spigot 1; +#X obj 1198 886 spigot; +#X obj 1313 867 == 0; +#X obj 1218 818 t f f; +#X obj 1218 840 sel 1 0; +#X obj 1198 867 f; +#X obj 1268 867 f; +#X obj 1017 899 +; +#X floatatom 1081 896 5 0 0 0 - - -; +#X text 1139 914 Y; +#X text 1196 807 X; +#X text 1106 806 minim; +#X text 1092 789 semibrieve; +#X text 1100 822 crotchet; +#X text 1103 840 quaver; +#X msg 1220 914 0.66; +#X msg 1151 914 -0.97; +#X obj 1102 948 r \$0-color; +#X obj 1082 928 r \$0-z; +#X obj 1205 774 r \$0-direction; +#X obj 1053 723 sel 0 1 2 3 4 5 6; +#X obj 1166 324 f; +#X msg 127 20 x y z len clef r g b; +#X obj 616 851 t b f; +#X obj 1131 501 inlet; +#X text 1095 481 joined note; +#X obj 348 632 t b; +#X obj 241 924 -; +#N canvas 15 22 1086 665 beamsegments 0; +#X obj 35 14 inlet; +#X obj 308 9 inlet; +#X obj 143 89 packel 1; +#X obj 128 108 -; +#X obj 128 39 packel 1; +#X floatatom 128 127 5 0 0 0 adjacent - -; +#X obj 232 106 -; +#X floatatom 232 125 5 0 0 0 opposite - -; +#X obj 232 37 packel 2; +#X obj 247 87 packel 2; +#X floatatom 719 419 5 0 0 0 shear - -; +#X obj 24 258 + 100; +#X obj 61 258 + 100; +#X obj 24 277 +; +#X obj 101 258 + 100; +#X obj 138 258 + 100; +#X obj 101 277 +; +#X obj 101 296 * 0.5; +#X obj 35 547 gemhead; +#X obj 45 605 shearYX; +#X obj 35 182 packel 3; +#X obj 101 450 -; +#X obj 24 296 * 0.5; +#X obj 24 377 +; +#X obj 24 415 - 100; +#X floatatom 24 434 5 0 0 0 - - -; +#X obj 101 377 +; +#X obj 101 396 * 0.5; +#X obj 101 415 - 100; +#X floatatom 101 434 5 0 0 0 - - -; +#X obj 24 396 * 0.5; +#X obj 535 543 gemhead; +#X obj 545 601 shearYX; +#X obj 539 452 +; +#X obj 539 490 - 100; +#X floatatom 539 509 5 0 0 0 - - -; +#X obj 616 452 +; +#X obj 616 471 * 0.5; +#X obj 616 490 - 100; +#X floatatom 616 509 5 0 0 0 - - -; +#X obj 539 471 * 0.5; +#X obj 583 534 -; +#X obj 247 151 /; +#X obj 595 308 > 2; +#X obj 655 543 gemhead; +#X obj 665 601 shearYX; +#X obj 689 497 + 0.15; +#X obj 625 308 > 3; +#X obj 775 543 gemhead; +#X obj 785 601 shearYX; +#X obj 822 513 + 0.27; +#X obj 773 289 > 4; +#X obj 899 540 gemhead; +#X obj 909 598 shearYX; +#X obj 869 305 > 5; +#X obj 946 510 + 0.39; +#X obj 46 458 > 2; +#X obj 155 547 gemhead; +#X obj 165 605 shearYX; +#X obj 202 517 + 0.15; +#X obj 145 422 > 3; +#X obj 275 547 gemhead; +#X obj 285 605 shearYX; +#X obj 322 517 + 0.27; +#X obj 265 422 > 4; +#X obj 399 544 gemhead; +#X obj 409 602 shearYX; +#X obj 389 419 > 5; +#X obj 446 514 + 0.39; +#X obj 129 183 + 0.01; +#X obj 128 158 * 0.25; +#X obj 651 65 packel 6; +#X obj 651 84 moses 7; +#X obj 690 103 - 7; +#X obj 44 69 moses 7; +#X obj 83 88 - 7; +#X obj 44 50 packel 6; +#X text 175 259 add- and subtract 100 in the calculation so we are +only dealing with positive floats. Then we make an average for the +centre points of the rectangles.; +#X obj 819 102 inlet; +#X obj 848 160 > 0; +#X obj 821 123 t f f; +#X obj 772 157 == 0; +#X obj 530 233 spigot 1; +#X obj 43 482 &&; +#X obj 470 126 inlet; +#X obj 149 455 &&; +#X obj 280 456 &&; +#X obj 389 448 &&; +#X obj 599 340 &&; +#X obj 644 339 &&; +#X obj 775 340 &&; +#X obj 897 339 &&; +#X obj 907 638 rectangle 1 0.02; +#X obj 783 641 rectangle 1 0.02; +#X obj 663 641 rectangle 1 0.02; +#X obj 543 641 rectangle 1 0.07; +#X obj 43 645 rectangle 1 0.07; +#X obj 163 645 rectangle 1 0.02; +#X obj 283 645 rectangle 1 0.02; +#X obj 407 642 rectangle 1 0.02; +#X msg 328 49 1; +#X obj 899 396 &&; +#X obj 776 398 &&; +#X obj 647 400 &&; +#X obj 565 397 &&; +#X obj 398 491 &&; +#X obj 281 495 &&; +#X obj 153 501 &&; +#X obj 41 504 &&; +#X obj 858 239 del 0; +#X obj 795 198 spigot; +#X obj 930 181 r \$0-lbn; +#X obj 411 28 r \$0-direction; +#X obj 408 55 sel 0 1; +#X msg 387 80 0.15; +#X msg 429 80 0.27; +#X msg 464 79 0.39; +#X msg 574 79 -0.39; +#X msg 539 80 -0.27; +#X msg 497 80 -0.15; +#X obj 90 560 +; +#X obj 229 559 +; +#X obj 332 562 +; +#X obj 450 558 +; +#X obj 580 556 +; +#X obj 711 558 +; +#X obj 829 558 +; +#X obj 955 552 +; +#X obj 244 221 *; +#X obj 212 190 * 2; +#X floatatom 268 112 5 0 0 0 - - -; +#X msg 930 239 0; +#X floatatom 547 331 5 0 0 0 - - -; +#X floatatom 503 335 5 0 0 0 - - -; +#X floatatom 762 18 5 0 0 0 - - -; +#X obj 996 555 r \$0-z; +#X obj 44 624 color 1 1 1; +#X obj 98 604 r \$0-color; +#X obj 164 624 color 1 1 1; +#X obj 218 604 r \$0-color; +#X obj 284 624 color 1 1 1; +#X obj 338 604 r \$0-color; +#X obj 404 624 color 1 1 1; +#X obj 458 604 r \$0-color; +#X obj 544 621 color 1 1 1; +#X obj 598 601 r \$0-color; +#X obj 664 621 color 1 1 1; +#X obj 718 601 r \$0-color; +#X obj 784 621 color 1 1 1; +#X obj 838 601 r \$0-color; +#X obj 907 618 color 1 1 1; +#X obj 961 598 r \$0-color; +#X obj 196 156 outlet; +#X obj 308 152 outlet; +#X obj 246 175 outlet; +#X obj 363 172 outlet; +#X obj 427 182 outlet; +#X text 845 40 x \, shear \, y \, stem \, stem*2*dir; +#X obj 37 585 translateXYZ 0 -30 0; +#X obj 165 585 translateXYZ 0 -30 0; +#X obj 291 585 translateXYZ 0 -30 0; +#X obj 418 584 translateXYZ 0 -30 0; +#X obj 545 581 translateXYZ 0 -30 0; +#X obj 672 581 translateXYZ 0 -30 0; +#X obj 798 582 translateXYZ 0 -30 0; +#X obj 924 579 translateXYZ 0 -30 0; +#X obj 251 57 change; +#X obj 143 59 change; +#X obj 770 35 change; +#X obj 770 55 t b; +#X obj 784 75 s \$0-reclock; +#X obj 894 491 &&; +#X obj 847 469 r \$0-showme; +#X obj 774 491 &&; +#X obj 657 516 &&; +#X obj 513 526 &&; +#X obj 388 511 &&; +#X obj 271 515 &&; +#X obj 143 521 &&; +#X obj 31 524 &&; +#X obj 209 425 r \$0-showme; +#X connect 0 0 2 0; +#X connect 0 0 9 0; +#X connect 0 0 20 0; +#X connect 0 0 76 0; +#X connect 1 0 4 0; +#X connect 1 0 8 0; +#X connect 1 0 71 0; +#X connect 1 0 100 0; +#X connect 2 0 3 1; +#X connect 2 0 12 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 4 0 11 0; +#X connect 4 0 167 0; +#X connect 5 0 42 1; +#X connect 5 0 70 0; +#X connect 5 0 152 0; +#X connect 6 0 7 0; +#X connect 7 0 42 0; +#X connect 7 0 153 0; +#X connect 8 0 6 0; +#X connect 8 0 14 0; +#X connect 8 0 166 0; +#X connect 9 0 6 1; +#X connect 9 0 15 0; +#X connect 10 0 19 1; +#X connect 10 0 32 1; +#X connect 10 0 45 1; +#X connect 10 0 49 1; +#X connect 10 0 53 1; +#X connect 10 0 58 1; +#X connect 10 0 62 1; +#X connect 10 0 66 1; +#X connect 11 0 13 0; +#X connect 11 0 33 0; +#X connect 12 0 13 1; +#X connect 12 0 23 1; +#X connect 13 0 22 0; +#X connect 14 0 16 0; +#X connect 14 0 36 0; +#X connect 15 0 16 1; +#X connect 15 0 26 1; +#X connect 16 0 17 0; +#X connect 17 0 26 0; +#X connect 17 0 36 1; +#X connect 18 0 158 0; +#X connect 19 0 136 0; +#X connect 20 0 21 1; +#X connect 20 0 41 1; +#X connect 20 0 129 0; +#X connect 20 0 155 0; +#X connect 21 0 59 0; +#X connect 21 0 63 0; +#X connect 21 0 68 0; +#X connect 21 0 120 0; +#X connect 22 0 23 0; +#X connect 22 0 33 1; +#X connect 23 0 30 0; +#X connect 24 0 25 0; +#X connect 25 0 158 1; +#X connect 25 0 159 1; +#X connect 25 0 160 1; +#X connect 25 0 161 1; +#X connect 26 0 27 0; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 29 0 21 0; +#X connect 30 0 24 0; +#X connect 31 0 162 0; +#X connect 32 0 144 0; +#X connect 33 0 40 0; +#X connect 34 0 35 0; +#X connect 35 0 162 1; +#X connect 35 0 163 1; +#X connect 35 0 164 1; +#X connect 35 0 165 1; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X connect 38 0 39 0; +#X connect 39 0 41 0; +#X connect 40 0 34 0; +#X connect 41 0 46 0; +#X connect 41 0 50 0; +#X connect 41 0 55 0; +#X connect 41 0 124 0; +#X connect 42 0 82 0; +#X connect 42 0 154 0; +#X connect 43 0 88 0; +#X connect 43 0 132 0; +#X connect 44 0 163 0; +#X connect 45 0 146 0; +#X connect 46 0 125 0; +#X connect 47 0 89 0; +#X connect 48 0 164 0; +#X connect 49 0 148 0; +#X connect 50 0 126 0; +#X connect 51 0 90 0; +#X connect 52 0 165 0; +#X connect 53 0 150 0; +#X connect 54 0 91 0; +#X connect 55 0 127 0; +#X connect 56 0 83 0; +#X connect 57 0 159 0; +#X connect 58 0 138 0; +#X connect 59 0 121 0; +#X connect 60 0 85 0; +#X connect 61 0 160 0; +#X connect 62 0 140 0; +#X connect 63 0 122 0; +#X connect 64 0 86 0; +#X connect 65 0 161 0; +#X connect 66 0 142 0; +#X connect 67 0 87 0; +#X connect 68 0 123 0; +#X connect 69 0 92 1; +#X connect 69 0 93 1; +#X connect 69 0 94 1; +#X connect 69 0 95 1; +#X connect 69 0 96 1; +#X connect 69 0 97 1; +#X connect 69 0 98 1; +#X connect 69 0 99 1; +#X connect 70 0 69 0; +#X connect 71 0 72 0; +#X connect 71 0 134 0; +#X connect 72 0 43 0; +#X connect 72 0 47 0; +#X connect 72 0 51 0; +#X connect 72 0 54 0; +#X connect 72 1 73 0; +#X connect 73 0 43 0; +#X connect 73 0 47 0; +#X connect 73 0 51 0; +#X connect 73 0 54 0; +#X connect 74 0 56 0; +#X connect 74 0 60 0; +#X connect 74 0 64 0; +#X connect 74 0 67 0; +#X connect 74 1 75 0; +#X connect 75 0 56 0; +#X connect 75 0 60 0; +#X connect 75 0 64 0; +#X connect 75 0 67 0; +#X connect 76 0 74 0; +#X connect 78 0 80 0; +#X connect 79 0 110 1; +#X connect 80 0 110 0; +#X connect 80 1 79 0; +#X connect 80 1 81 0; +#X connect 81 0 82 1; +#X connect 82 0 10 0; +#X connect 83 0 108 0; +#X connect 84 0 83 1; +#X connect 84 0 85 1; +#X connect 84 0 86 1; +#X connect 84 0 87 1; +#X connect 84 0 88 1; +#X connect 84 0 89 1; +#X connect 84 0 90 1; +#X connect 84 0 91 1; +#X connect 85 0 107 0; +#X connect 86 0 106 0; +#X connect 87 0 105 0; +#X connect 88 0 104 0; +#X connect 89 0 103 0; +#X connect 90 0 102 0; +#X connect 91 0 101 0; +#X connect 100 0 108 1; +#X connect 100 0 107 1; +#X connect 100 0 106 1; +#X connect 100 0 105 1; +#X connect 100 0 104 1; +#X connect 100 0 103 1; +#X connect 100 0 102 1; +#X connect 100 0 101 1; +#X connect 100 0 133 0; +#X connect 101 0 171 1; +#X connect 102 0 173 0; +#X connect 103 0 174 1; +#X connect 104 0 175 1; +#X connect 105 0 176 1; +#X connect 106 0 177 1; +#X connect 107 0 178 1; +#X connect 108 0 179 1; +#X connect 109 0 101 0; +#X connect 109 0 102 0; +#X connect 109 0 103 0; +#X connect 109 0 104 0; +#X connect 109 0 105 0; +#X connect 109 0 106 0; +#X connect 109 0 107 0; +#X connect 109 0 108 0; +#X connect 110 0 10 0; +#X connect 111 0 131 0; +#X connect 111 0 109 0; +#X connect 112 0 113 0; +#X connect 112 0 128 1; +#X connect 113 0 114 0; +#X connect 113 0 115 0; +#X connect 113 0 116 0; +#X connect 113 1 119 0; +#X connect 113 1 118 0; +#X connect 113 1 117 0; +#X connect 114 0 59 1; +#X connect 114 0 46 1; +#X connect 115 0 63 1; +#X connect 115 0 50 1; +#X connect 116 0 68 1; +#X connect 116 0 55 1; +#X connect 117 0 68 1; +#X connect 117 0 55 1; +#X connect 118 0 63 1; +#X connect 118 0 50 1; +#X connect 119 0 59 1; +#X connect 119 0 46 1; +#X connect 120 0 158 2; +#X connect 121 0 159 2; +#X connect 122 0 160 2; +#X connect 123 0 161 2; +#X connect 124 0 162 2; +#X connect 125 0 163 2; +#X connect 126 0 164 2; +#X connect 127 0 165 2; +#X connect 128 0 120 1; +#X connect 128 0 121 1; +#X connect 128 0 122 1; +#X connect 128 0 123 1; +#X connect 128 0 124 1; +#X connect 128 0 125 1; +#X connect 128 0 126 1; +#X connect 128 0 127 1; +#X connect 128 0 156 0; +#X connect 129 0 128 0; +#X connect 131 0 101 1; +#X connect 131 0 102 1; +#X connect 131 0 103 1; +#X connect 131 0 104 1; +#X connect 131 0 105 1; +#X connect 131 0 106 1; +#X connect 131 0 107 1; +#X connect 131 0 108 1; +#X connect 134 0 168 0; +#X connect 135 0 158 3; +#X connect 135 0 159 3; +#X connect 135 0 160 3; +#X connect 135 0 161 3; +#X connect 135 0 162 3; +#X connect 135 0 163 3; +#X connect 135 0 164 3; +#X connect 135 0 165 3; +#X connect 136 0 96 0; +#X connect 137 0 136 1; +#X connect 138 0 97 0; +#X connect 139 0 138 1; +#X connect 140 0 98 0; +#X connect 141 0 140 1; +#X connect 142 0 99 0; +#X connect 143 0 142 1; +#X connect 144 0 95 0; +#X connect 145 0 144 1; +#X connect 146 0 94 0; +#X connect 147 0 146 1; +#X connect 148 0 93 0; +#X connect 149 0 148 1; +#X connect 150 0 92 0; +#X connect 151 0 150 1; +#X connect 158 0 19 0; +#X connect 159 0 58 0; +#X connect 160 0 62 0; +#X connect 161 0 66 0; +#X connect 162 0 32 0; +#X connect 163 0 45 0; +#X connect 164 0 49 0; +#X connect 165 0 53 0; +#X connect 166 0 169 0; +#X connect 167 0 169 0; +#X connect 168 0 169 0; +#X connect 169 0 170 0; +#X connect 171 0 52 0; +#X connect 172 0 171 0; +#X connect 172 0 173 1; +#X connect 172 0 174 0; +#X connect 172 0 175 0; +#X connect 173 0 48 0; +#X connect 174 0 44 0; +#X connect 175 0 31 0; +#X connect 176 0 65 0; +#X connect 177 0 61 0; +#X connect 178 0 57 0; +#X connect 179 0 18 0; +#X connect 180 0 179 0; +#X connect 180 0 178 0; +#X connect 180 0 177 0; +#X connect 180 0 176 0; +#X restore 796 1052 pd beamsegments; +#X obj 509 661 f; +#X obj 48 381 color 0 0 0; +#X obj 372 311 color 0 0 0; +#X obj 373 595 color 0 0 0; +#X obj 546 1024 color 0 0 0; +#X obj 932 1021 color 0 0 0; +#X obj 39 898 color 0 0 0; +#X obj 590 572 color 0 0 0; +#X msg 330 21 0; +#X obj 274 21 spigot 1; +#X obj 355 54 loadbang; +#X obj 796 520 r \$0-lbn; +#X obj 746 993 r \$0-lbn; +#X obj 429 821 r \$0-lbn; +#X obj 215 702 0.25; +#X msg 1147 123 0; +#X msg 1178 123 1; +#X msg 1209 123 2; +#X obj 1147 142 s \$0-font_switch; +#X obj 232 578 r \$0-font_switch; +#X obj 232 597 sel 0 1 2; +#X msg 264 616 0.2; +#X msg 290 616 0.17; +#X obj 1027 549 packel 2; +#X obj 1027 528 niagara 6; +#X obj 176 1050 list append; +#X obj 1027 570 list append; +#X obj 244 40 r \$0-notepitch; +#X obj 391 19 t b; +#N canvas 78 87 1268 306 creation_arguments 0; +#X obj 271 122 moses 1e-07; +#X msg 271 141 60; +#X obj 157 103 \$2; +#X obj 157 160 s \$0-noterhythm; +#X obj 126 44 spigot 1; +#X msg 181 44 0; +#X obj 126 25 inlet; +#X obj 365 160 s \$0-notedur; +#X obj 468 112 \$5; +#X obj 550 109 \$6; +#X obj 640 105 \$7; +#X obj 725 108 \$8; +#X obj 900 105 \$10; +#X obj 809 106 \$9; +#X obj 900 162 prepend shfl; +#X obj 899 218 outlet; +#X obj 56 159 prepend xoff; +#X obj 809 163 prepend acc; +#X obj 271 160 prepend pitch; +#X obj 729 160 prepend tie; +#X obj 648 160 prepend beam; +#X obj 545 161 prepend stem; +#X obj 449 163 prepend bt; +#X obj 988 162 s \$0-group_count; +#X obj 989 106 \$11; +#X obj 271 103 \$3; +#X obj 365 137 \$4; +#X obj 89 93 \$1; +#X obj 318 22 inlet; +#X obj 1026 80 \$13; +#X obj 1025 136 s \$0-note_count; +#X obj 1063 51 \$14; +#X obj 1055 102 prepend tail; +#X obj 1020 211 \$15; +#X obj 1020 246 prepend tuple; +#X obj 118 67 t b b b; +#X msg 92 227 xoff rhythm pitch dur bt stem beam tie acc shfl groupcount +route group-note tail-on/off tuple-number group-id; +#X obj 1065 202 \$17; +#X obj 1064 224 prepend articulation; +#X obj 270 57 s \$0-lbn; +#X connect 0 0 1 0; +#X connect 0 1 18 0; +#X connect 1 0 18 0; +#X connect 2 0 3 0; +#X connect 4 0 5 0; +#X connect 4 0 35 0; +#X connect 5 0 4 1; +#X connect 6 0 4 0; +#X connect 8 0 22 0; +#X connect 9 0 21 0; +#X connect 10 0 20 0; +#X connect 11 0 19 0; +#X connect 12 0 14 0; +#X connect 13 0 17 0; +#X connect 14 0 15 0; +#X connect 16 0 15 0; +#X connect 17 0 15 0; +#X connect 18 0 15 0; +#X connect 19 0 15 0; +#X connect 20 0 15 0; +#X connect 21 0 15 0; +#X connect 22 0 15 0; +#X connect 24 0 23 0; +#X connect 25 0 0 0; +#X connect 26 0 7 0; +#X connect 27 0 16 0; +#X connect 28 0 35 0; +#X connect 29 0 30 0; +#X connect 31 0 32 0; +#X connect 32 0 15 0; +#X connect 33 0 34 0; +#X connect 34 0 15 0; +#X connect 35 0 2 0; +#X connect 35 0 25 0; +#X connect 35 0 8 0; +#X connect 35 0 33 0; +#X connect 35 0 37 0; +#X connect 35 1 12 0; +#X connect 35 1 13 0; +#X connect 35 1 10 0; +#X connect 35 1 9 0; +#X connect 35 1 26 0; +#X connect 35 1 27 0; +#X connect 35 1 29 0; +#X connect 35 1 11 0; +#X connect 35 1 31 0; +#X connect 35 2 24 0; +#X connect 35 2 39 0; +#X connect 37 0 38 0; +#X connect 38 0 15 0; +#X restore 414 39 pd creation_arguments; +#N canvas 0 22 690 669 work_out_rhythms 0; +#X obj 291 355 * 0.5; +#X obj 291 378 i; +#X obj 334 355 * 0.5; +#X obj 334 378 i; +#X obj 377 355 * 0.5; +#X obj 377 378 i; +#X obj 419 355 * 0.5; +#X obj 419 378 i; +#X obj 462 355 * 0.5; +#X obj 462 378 i; +#X obj 505 355 * 0.5; +#X obj 505 378 i; +#X floatatom 503 317 5 0 0 0 - - -; +#X obj 291 402 sel 1; +#X obj 334 402 sel 1; +#X obj 377 402 sel 1; +#X obj 419 402 sel 1; +#X obj 462 402 sel 1; +#X obj 505 402 sel 1; +#X msg 291 423 1; +#X msg 334 423 2; +#X msg 377 423 3; +#X msg 419 423 4; +#X msg 462 423 5; +#X msg 505 423 6; +#X obj 291 468 -; +#X obj 291 531 +; +#X msg 170 495 7; +#X msg 130 495 0; +#X obj 535 280 f; +#X obj 291 446 f; +#X obj 67 63 moses 1; +#X obj 125 86 moses 2; +#X obj 166 107 moses 4; +#X obj 144 127 sel 3; +#X obj 204 127 moses 8; +#X obj 245 148 moses 16; +#X obj 223 168 sel 12; +#X obj 187 147 sel 6; +#X obj 94 105 sel 1.5; +#X msg 51 283 0; +#X msg 91 283 0; +#X msg 131 283 1; +#X msg 171 283 1; +#X msg 211 283 2; +#X msg 251 283 2; +#X msg 291 283 3; +#X msg 331 283 3; +#X obj 268 188 sel 24; +#X obj 290 168 moses 32; +#X obj 67 40 r \$0-notedur; +#X obj 516 235 r \$0-noterhythm; +#X obj 291 491 moses 0; +#X msg 291 511 0; +#X obj 291 551 outlet; +#X msg 371 283 4; +#X msg 411 283 4; +#X obj 334 188 sel 48; +#X msg 449 283 5; +#X msg 489 283 5; +#X floatatom 349 490 5 0 0 0 - - -; +#X connect 0 0 1 0; +#X connect 0 0 2 0; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 14 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 15 0; +#X connect 6 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 16 0; +#X connect 8 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 18 0; +#X connect 12 0 0 0; +#X connect 13 0 19 0; +#X connect 14 0 20 0; +#X connect 15 0 21 0; +#X connect 16 0 22 0; +#X connect 17 0 23 0; +#X connect 18 0 24 0; +#X connect 19 0 30 0; +#X connect 20 0 30 0; +#X connect 21 0 30 0; +#X connect 22 0 30 0; +#X connect 23 0 30 0; +#X connect 24 0 30 0; +#X connect 25 0 52 0; +#X connect 25 0 60 0; +#X connect 26 0 54 0; +#X connect 27 0 26 1; +#X connect 28 0 26 1; +#X connect 29 0 12 0; +#X connect 30 0 25 0; +#X connect 31 1 32 0; +#X connect 32 0 39 0; +#X connect 32 1 33 0; +#X connect 33 0 34 0; +#X connect 33 1 35 0; +#X connect 34 0 42 0; +#X connect 34 0 27 0; +#X connect 34 1 43 0; +#X connect 34 1 28 0; +#X connect 35 0 38 0; +#X connect 35 1 36 0; +#X connect 36 0 37 0; +#X connect 36 1 49 0; +#X connect 37 0 46 0; +#X connect 37 0 27 0; +#X connect 37 1 47 0; +#X connect 37 1 28 0; +#X connect 38 0 44 0; +#X connect 38 0 27 0; +#X connect 38 1 45 0; +#X connect 38 1 28 0; +#X connect 39 0 40 0; +#X connect 39 0 27 0; +#X connect 39 1 41 0; +#X connect 39 1 28 0; +#X connect 40 0 25 1; +#X connect 41 0 25 1; +#X connect 42 0 25 1; +#X connect 43 0 25 1; +#X connect 44 0 25 1; +#X connect 45 0 25 1; +#X connect 46 0 25 1; +#X connect 47 0 25 1; +#X connect 48 0 55 0; +#X connect 48 0 27 0; +#X connect 48 1 56 0; +#X connect 48 1 28 0; +#X connect 49 0 48 0; +#X connect 49 1 57 0; +#X connect 50 0 31 0; +#X connect 51 0 29 0; +#X connect 52 0 53 0; +#X connect 52 1 26 0; +#X connect 53 0 26 0; +#X connect 55 0 25 1; +#X connect 56 0 25 1; +#X connect 57 0 27 0; +#X connect 57 0 58 0; +#X connect 57 1 28 0; +#X connect 57 1 59 0; +#X connect 58 0 25 1; +#X connect 59 0 25 1; +#X restore 948 70 pd work_out_rhythms; +#N canvas 0 22 450 300 stemadjust 0; +#X obj 84 45 inlet; +#X obj 151 90 list length; +#X obj 61 152 packel; +#X obj 105 196 -; +#X obj 159 246 pack f f; +#X obj 157 271 outlet; +#X obj 159 199 / 3; +#X obj 83 91 t a a a; +#X obj 231 168 r \$0-group_count; +#X obj 231 188 - 1; +#X obj 113 154 packel 7; +#X connect 0 0 7 0; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 2 0; +#X connect 7 1 10 0; +#X connect 7 2 1 0; +#X connect 8 0 9 0; +#X connect 9 0 6 1; +#X connect 10 0 3 1; +#X connect 10 0 4 1; +#X restore 339 1069 pd stemadjust; +#X obj 425 1070 outlet; +#X obj 910 552 inlet; +#X text 874 534 adjust stem; +#X obj 538 775 f; +#X obj 910 571 unpack f f; +#X obj 556 24 route \$12; +#X text 856 622 ------->; +#X text 265 926 <--------; +#X floatatom 949 590 5 0 0 0 - - -; +#X obj 537 21 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 285 1024 pack f f f f f f f; +#X obj 910 590 * \$13; +#X obj 929 609 +; +#X floatatom 913 630 5 0 0 0 - - -; +#X obj 493 730 -; +#X floatatom 496 752 5 0 0 0 - - -; +#X obj 369 753 spigot; +#X floatatom 77 728 5 0 0 0 - - -; +#X floatatom 273 979 5 0 0 0 - - -; +#X obj 946 784 > 0; +#X obj 1189 721 moses 3; +#X msg 1228 742 3; +#X obj 1272 683 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X floatatom 182 925 5 0 0 0 - - -; +#X floatatom 157 971 5 0 0 0 - - -; +#X floatatom 1069 876 5 0 0 0 - - -; +#X floatatom 1015 874 5 0 0 0 - - -; +#X floatatom 914 924 5 0 0 0 - - -; +#X floatatom 1017 786 5 0 0 0 - - -; +#X floatatom 923 876 5 0 0 0 - - -; +#X obj 942 987 scaleXYZ 0 1 1; +#X obj 965 918 -; +#X msg 1161 846 0.09; +#X msg 1161 827 0.14; +#X msg 1161 808 0.2; +#X msg 1161 789 30; +#X obj 1017 925 - 1.17; +#X obj 1096 669 * 0.9; +#X text 37 279 notehead; +#X obj 708 500 - 0.04; +#X obj 616 820 r \$0-tail; +#X floatatom 449 877 5 0 0 0 - - -; +#X obj 784 77 s \$0-tail; +#X obj 854 809 f; +#X obj 1203 571 list append; +#X obj 1203 530 niagara 7; +#X obj 1203 551 niagara 2; +#N canvas 0 22 643 642 tuples------------- 0; +#X obj 532 286 r \$0-z; +#X obj 516 38 inlet; +#X obj 516 98 > 0; +#X obj 59 202 gemhead; +#X obj 58 316 translateXYZ; +#X obj 58 336 shearYX; +#X obj 56 356 color 1 1 1; +#X obj 110 336 r \$0-color; +#X obj 252 249 gemhead; +#X obj 228 316 translateXYZ; +#X obj 228 336 shearYX; +#X obj 226 356 color 1 1 1; +#X obj 280 336 r \$0-color; +#X obj 156 590 text3d; +#X obj 138 562 color 1 1 1; +#X obj 190 542 r \$0-color; +#X obj 167 378 gemhead; +#X msg 275 538 font fonts/LucidaBrightRegular.ttf; +#X obj 369 480 loadbang; +#X msg 389 496 justify left top; +#X obj 340 449 r \$0-lbn; +#X obj 542 98 moses 0; +#X obj 549 125 prepend text; +#X obj 516 153 &&; +#X obj 378 34 r \$0-note_count; +#X text 366 12 flaws - what if first object is a rest?; +#X msg 350 512 4; +#X obj 130 52 inlet; +#X obj 83 52 inlet; +#X obj 181 55 inlet; +#X obj 234 55 inlet; +#X obj 284 56 inlet; +#X text 54 12 x \, shear \, y \, stem \, stem*2*dir; +#X obj 104 274 - 0.18; +#X obj 274 273 - 0.18; +#X obj 104 295 +; +#X obj 274 295 +; +#X obj 56 376 rectangle 1 0.015; +#X obj 226 376 rectangle 1 0.015; +#X obj 20 50 inlet; +#X obj 31 74 packel 2; +#X obj 15 98 packel 1; +#X obj 226 30 r \$0-group_count; +#X obj 336 53 - 1; +#X obj 43 150 +; +#X obj 131 130 *; +#X obj 131 152 -; +#X obj 116 174 +; +#X obj 162 166 +; +#X obj 250 146 *; +#X obj 250 168 -; +#X obj 235 190 +; +#X obj 103 251 -; +#X obj 265 216 -; +#X obj 378 112 == 0; +#X floatatom 194 148 5 0 0 0 - - -; +#X obj 83 96 * 0.3; +#X obj 181 96 * 0.3; +#X obj 178 353 * 0.2; +#X obj 355 350 * 0.2; +#X obj 184 492 +; +#X obj 161 492 +; +#X obj 143 424 * 0.5; +#X obj 196 423 * 0.5; +#X obj 182 446 +; +#X msg 374 206 0.18; +#X msg 419 206 -0.18; +#X obj 394 152 r \$0-direction; +#X obj 390 182 sel 0 1; +#X obj 113 463 - 0.02; +#X obj 184 468 - 0.55; +#X msg 373 240 0.55; +#X msg 415 240 -0.55; +#X obj 316 204 &&; +#X obj 304 183 r \$0-showme; +#X obj 138 522 translateXYZ 0 -40 0; +#X connect 0 0 4 3; +#X connect 0 0 9 3; +#X connect 0 0 75 3; +#X connect 1 0 2 0; +#X connect 1 0 21 0; +#X connect 2 0 23 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 37 0; +#X connect 7 0 6 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 38 0; +#X connect 12 0 11 1; +#X connect 14 0 13 0; +#X connect 15 0 14 1; +#X connect 16 0 75 0; +#X connect 17 0 13 0; +#X connect 18 0 17 0; +#X connect 18 0 19 0; +#X connect 18 0 26 0; +#X connect 19 0 13 0; +#X connect 20 0 19 0; +#X connect 20 0 17 0; +#X connect 20 0 26 0; +#X connect 21 1 22 0; +#X connect 22 0 13 0; +#X connect 23 0 73 1; +#X connect 24 0 54 0; +#X connect 26 0 13 1; +#X connect 27 0 5 1; +#X connect 27 0 10 1; +#X connect 28 0 45 0; +#X connect 28 0 56 0; +#X connect 29 0 49 0; +#X connect 29 0 57 0; +#X connect 30 0 52 1; +#X connect 30 0 53 1; +#X connect 31 0 35 1; +#X connect 31 0 36 1; +#X connect 31 0 60 1; +#X connect 33 0 35 0; +#X connect 34 0 36 0; +#X connect 35 0 4 2; +#X connect 36 0 9 2; +#X connect 39 0 40 0; +#X connect 39 0 41 0; +#X connect 40 0 48 0; +#X connect 40 0 51 0; +#X connect 40 0 64 0; +#X connect 41 0 44 0; +#X connect 41 0 47 0; +#X connect 41 0 69 0; +#X connect 42 0 43 0; +#X connect 43 0 45 1; +#X connect 43 0 49 1; +#X connect 44 0 4 1; +#X connect 45 0 46 0; +#X connect 45 0 55 0; +#X connect 46 0 47 1; +#X connect 47 0 9 1; +#X connect 48 0 52 0; +#X connect 49 0 50 0; +#X connect 49 0 63 0; +#X connect 50 0 51 1; +#X connect 51 0 53 0; +#X connect 52 0 33 0; +#X connect 53 0 34 0; +#X connect 54 0 23 1; +#X connect 55 0 58 0; +#X connect 55 0 59 0; +#X connect 55 0 62 0; +#X connect 56 0 44 1; +#X connect 56 0 46 1; +#X connect 57 0 48 1; +#X connect 57 0 50 1; +#X connect 58 0 37 1; +#X connect 59 0 38 1; +#X connect 60 0 75 2; +#X connect 61 0 75 1; +#X connect 62 0 61 1; +#X connect 63 0 64 1; +#X connect 64 0 70 0; +#X connect 65 0 33 1; +#X connect 65 0 34 1; +#X connect 66 0 33 1; +#X connect 66 0 34 1; +#X connect 67 0 68 0; +#X connect 68 0 65 0; +#X connect 68 0 71 0; +#X connect 68 1 66 0; +#X connect 68 1 72 0; +#X connect 69 0 61 0; +#X connect 70 0 60 0; +#X connect 71 0 70 1; +#X connect 72 0 70 1; +#X connect 73 0 8 0; +#X connect 73 0 16 0; +#X connect 73 0 3 0; +#X connect 74 0 73 0; +#X connect 75 0 14 0; +#X restore 775 1071 pd tuples-------------; +#X msg 591 178 -0.19; +#X msg 642 183 -0.21; +#X msg 550 179 -0.19; +#X obj 56 357 translateXYZ 2 -40 -0.9; +#X obj 398 250 translateXYZ 2 -40 -0.9; +#X obj 591 541 translateXYZ 2 -40 -0.9; +#X obj 381 571 translateXYZ 2 -40 -0.9; +#X obj 39 876 translateXYZ 2 -40 0; +#X obj 935 949 translateXYZ 2 -40 -0.9; +#X obj 534 964 translateXYZ 2 -40 0; +#X obj 284 153 t b; +#X obj 286 134 r \$0-reclock; +#X obj 551 89 moses 7; +#X obj 591 111 - 7; +#X obj 878 142 sel 0; +#X obj 10 824 &&; +#X obj 500 918 &&; +#X obj 337 518 &&; +#X obj 942 811 &&; +#X obj 595 499 &&; +#X obj 34 805 r \$0-showme; +#X obj 904 755 r \$0-showme; +#X obj 484 825 r \$0-showme; +#X obj 292 468 r \$0-showme; +#X obj 604 465 r \$0-showme; +#X obj 20 217 r \$0-showme; +#X obj 461 154 &&; +#X obj 457 125 r \$0-showme; +#X obj 18 98 s \$0-showme; +#X obj 556 5 inlet; +#X text 739 8 receive \$16; +#X obj 631 6 r \$16; +#X obj 623 24 route reclock; +#N canvas 0 22 450 300 clockit 0; +#X obj 61 57 inlet; +#X obj 61 122 spigot 1; +#X obj 151 122 t b; +#X obj 151 141 f; +#X obj 176 141 + 1; +#X msg 186 97 0; +#X msg 151 98 1; +#X obj 61 174 outlet; +#X obj 159 57 inlet; +#X obj 159 78 t b b; +#X obj 242 59 r \$0-clocked; +#X obj 151 160 < 8; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 11 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 6 0; +#X connect 9 1 5 0; +#X connect 11 0 1 1; +#X restore 89 53 pd clockit; +#X obj 717 24 s \$0-reclock; +#X obj 158 46 r \$0-reclock; +#X text 456 436 leger lines; +#X text 605 448 dotted; +#X obj 654 324 sel 0 1 5 6; +#X msg 679 438 0.35; +#X msg 687 401 0.3; +#X obj 659 497 + 0.26; +#X msg 656 417 0.26; +#X msg 635 392 0.2; +#X obj 89 89 unpack f f f f f f f f; +#X obj 18 43 packel 9; +#X obj 62 603 text3d; +#X obj 556 43 route pitch rhythm xoff bt stem beam tie acc shfl altstem +tail tuple articulation; +#X obj 52 506 gemhead; +#X obj 149 508 r \$0-color; +#X obj 58 561 color 0 0 0; +#X obj 56 537 translateXYZ 2 -40 -0.9; +#X obj 93 423 r \$0-showme; +#X obj 41 460 &&; +#X obj 77 456 t b f; +#X obj 39 436 != 0; +#X text 39 485 articulation; +#X obj 215 411 == 1; +#X obj 192 456 sel 1; +#X obj 214 436 &&; +#X obj 249 410 == 0; +#X obj 248 433 t b f; +#X obj 254 384 r \$0-direction; +#X obj 288 435 &&; +#X obj 284 412 t b f; +#X obj 244 457 sel 1; +#X msg 125 601 text `; +#X obj 142 578 loadbang; +#X obj 116 510 +; +#X msg 174 482 text I; +#X msg 227 481 text E; +#X obj 121 488 t b f; +#X msg 116 446 0.38; +#X msg 138 466 0.45; +#X obj 159 68 r reclock; +#X msg 236 551 0; +#X obj 260 505 loadbang; +#X obj 251 529 r \$0-lbn; +#X obj 39 943 rectangle 0.015 0.6; +#X connect 0 0 3 0; +#X connect 2 0 261 0; +#X connect 3 0 61 0; +#X connect 3 0 115 0; +#X connect 3 0 175 0; +#X connect 3 0 238 0; +#X connect 4 0 1 0; +#X connect 4 0 304 0; +#X connect 4 1 1 1; +#X connect 4 1 304 1; +#X connect 6 0 262 0; +#X connect 7 0 5 0; +#X connect 8 0 5 0; +#X connect 9 0 5 0; +#X connect 10 0 11 0; +#X connect 11 0 16 0; +#X connect 13 0 14 0; +#X connect 14 0 7 0; +#X connect 14 0 260 0; +#X connect 14 1 9 0; +#X connect 14 1 258 0; +#X connect 14 2 8 0; +#X connect 14 2 259 0; +#X connect 15 0 13 0; +#X connect 16 0 65 0; +#X connect 20 0 29 0; +#X connect 20 0 52 0; +#X connect 20 0 53 0; +#X connect 20 0 54 0; +#X connect 21 0 5 0; +#X connect 21 1 5 1; +#X connect 22 0 264 2; +#X connect 24 0 264 0; +#X connect 25 0 275 1; +#X connect 26 0 23 0; +#X connect 26 0 43 0; +#X connect 26 1 23 1; +#X connect 26 1 43 1; +#X connect 27 0 30 0; +#X connect 28 0 30 1; +#X connect 29 0 27 0; +#X connect 29 0 32 0; +#X connect 29 1 28 0; +#X connect 29 1 31 0; +#X connect 30 0 25 0; +#X connect 31 0 23 0; +#X connect 32 0 23 0; +#X connect 33 0 15 0; +#X connect 34 0 20 0; +#X connect 34 1 14 0; +#X connect 35 0 34 0; +#X connect 36 0 187 0; +#X connect 36 0 291 0; +#X connect 36 0 303 0; +#X connect 37 0 121 0; +#X connect 38 0 50 0; +#X connect 38 0 55 0; +#X connect 38 0 88 0; +#X connect 38 0 239 0; +#X connect 38 0 261 1; +#X connect 38 0 299 0; +#X connect 38 0 309 1; +#X connect 39 0 1 0; +#X connect 40 0 1 0; +#X connect 41 0 1 0; +#X connect 42 0 56 0; +#X connect 44 0 263 0; +#X connect 45 0 249 0; +#X connect 46 0 49 0; +#X connect 47 0 49 0; +#X connect 48 0 43 0; +#X connect 49 0 277 1; +#X connect 50 0 264 1; +#X connect 51 0 16 1; +#X connect 52 0 3 1; +#X connect 53 0 45 1; +#X connect 54 0 51 0; +#X connect 55 0 262 1; +#X connect 56 0 46 0; +#X connect 56 0 58 0; +#X connect 56 0 170 0; +#X connect 56 1 57 0; +#X connect 57 0 58 0; +#X connect 57 0 170 0; +#X connect 57 0 272 0; +#X connect 57 0 296 0; +#X connect 58 0 40 0; +#X connect 58 0 59 0; +#X connect 58 0 64 0; +#X connect 58 0 67 0; +#X connect 58 0 73 0; +#X connect 58 0 193 0; +#X connect 58 1 39 0; +#X connect 58 1 59 0; +#X connect 58 1 64 0; +#X connect 58 1 67 0; +#X connect 58 1 71 0; +#X connect 58 1 193 0; +#X connect 58 2 41 0; +#X connect 58 2 71 0; +#X connect 58 2 194 0; +#X connect 58 2 60 0; +#X connect 58 2 63 0; +#X connect 58 2 69 0; +#X connect 58 3 41 0; +#X connect 58 3 71 0; +#X connect 58 3 63 0; +#X connect 58 3 195 0; +#X connect 58 3 69 0; +#X connect 58 3 60 0; +#X connect 58 4 41 0; +#X connect 58 4 72 0; +#X connect 58 4 63 0; +#X connect 58 4 195 0; +#X connect 58 4 69 0; +#X connect 58 4 60 0; +#X connect 58 5 41 0; +#X connect 58 5 66 0; +#X connect 58 5 62 0; +#X connect 58 5 70 0; +#X connect 58 5 68 0; +#X connect 58 5 195 0; +#X connect 58 6 41 0; +#X connect 58 6 62 0; +#X connect 58 6 66 0; +#X connect 58 6 70 0; +#X connect 58 6 68 0; +#X connect 58 6 195 0; +#X connect 59 0 1 1; +#X connect 59 0 5 1; +#X connect 60 0 1 1; +#X connect 60 0 5 1; +#X connect 61 0 261 2; +#X connect 61 0 326 0; +#X connect 62 0 1 1; +#X connect 62 0 5 1; +#X connect 63 0 61 1; +#X connect 63 0 65 1; +#X connect 64 0 65 1; +#X connect 64 0 61 1; +#X connect 65 0 262 2; +#X connect 66 0 65 1; +#X connect 66 0 61 1; +#X connect 67 0 55 1; +#X connect 68 0 55 1; +#X connect 69 0 55 1; +#X connect 70 0 50 1; +#X connect 71 0 50 1; +#X connect 72 0 50 1; +#X connect 73 0 50 1; +#X connect 75 0 267 0; +#X connect 76 0 267 2; +#X connect 78 0 74 0; +#X connect 79 0 182 0; +#X connect 80 0 79 3; +#X connect 80 0 79 2; +#X connect 81 0 79 3; +#X connect 81 0 79 2; +#X connect 82 0 100 0; +#X connect 83 0 74 0; +#X connect 83 1 74 1; +#X connect 84 0 74 0; +#X connect 85 0 74 0; +#X connect 86 0 274 1; +#X connect 87 0 265 0; +#X connect 88 0 220 0; +#X connect 88 0 234 0; +#X connect 88 0 265 1; +#X connect 88 0 267 1; +#X connect 89 0 88 1; +#X connect 90 0 115 1; +#X connect 91 0 90 1; +#X connect 93 0 192 1; +#X connect 94 0 89 0; +#X connect 94 0 112 0; +#X connect 94 1 113 0; +#X connect 94 1 192 0; +#X connect 96 0 86 0; +#X connect 97 0 86 0; +#X connect 98 0 273 1; +#X connect 100 0 80 0; +#X connect 100 0 108 0; +#X connect 100 1 81 0; +#X connect 100 1 109 0; +#X connect 101 0 86 1; +#X connect 103 0 105 0; +#X connect 103 1 104 0; +#X connect 104 0 107 0; +#X connect 105 0 107 0; +#X connect 106 0 107 0; +#X connect 106 1 107 1; +#X connect 107 0 220 3; +#X connect 108 0 76 1; +#X connect 109 0 76 1; +#X connect 111 0 112 1; +#X connect 112 0 90 0; +#X connect 112 0 114 0; +#X connect 113 0 90 0; +#X connect 113 0 114 0; +#X connect 114 0 336 2; +#X connect 115 0 76 0; +#X connect 115 0 116 0; +#X connect 115 0 176 0; +#X connect 115 0 220 6; +#X connect 115 0 226 0; +#X connect 116 0 233 0; +#X connect 116 0 265 2; +#X connect 117 0 114 1; +#X connect 117 0 116 1; +#X connect 118 0 78 0; +#X connect 118 0 96 0; +#X connect 118 1 84 0; +#X connect 118 1 96 0; +#X connect 118 2 85 0; +#X connect 118 2 96 0; +#X connect 118 3 96 0; +#X connect 118 3 120 0; +#X connect 118 4 119 0; +#X connect 119 0 97 0; +#X connect 120 0 74 0; +#X connect 122 0 179 1; +#X connect 123 0 181 1; +#X connect 123 0 185 1; +#X connect 124 0 180 1; +#X connect 126 0 98 0; +#X connect 126 0 127 0; +#X connect 126 0 220 5; +#X connect 126 0 227 0; +#X connect 127 0 103 0; +#X connect 127 0 118 0; +#X connect 127 0 251 0; +#X connect 127 1 128 0; +#X connect 128 0 103 0; +#X connect 128 0 118 0; +#X connect 128 0 251 0; +#X connect 129 0 184 1; +#X connect 130 0 182 1; +#X connect 135 0 94 0; +#X connect 135 0 220 4; +#X connect 136 0 113 1; +#X connect 136 0 111 0; +#X connect 136 0 220 2; +#X connect 137 0 177 2; +#X connect 137 0 106 0; +#X connect 138 0 82 0; +#X connect 139 0 265 3; +#X connect 140 0 267 3; +#X connect 143 0 266 0; +#X connect 144 0 142 0; +#X connect 144 1 142 1; +#X connect 145 0 237 0; +#X connect 145 0 241 0; +#X connect 146 0 145 1; +#X connect 147 0 142 0; +#X connect 148 0 142 0; +#X connect 149 0 148 0; +#X connect 150 0 147 0; +#X connect 151 0 149 1; +#X connect 152 0 153 0; +#X connect 152 1 151 0; +#X connect 152 1 150 1; +#X connect 153 0 154 0; +#X connect 153 0 165 0; +#X connect 153 1 155 0; +#X connect 153 1 164 0; +#X connect 154 0 150 0; +#X connect 155 0 149 0; +#X connect 156 0 235 0; +#X connect 156 0 246 0; +#X connect 157 0 156 1; +#X connect 164 0 157 0; +#X connect 165 0 157 0; +#X connect 166 0 183 1; +#X connect 167 0 266 3; +#X connect 168 0 152 0; +#X connect 169 0 245 0; +#X connect 169 1 244 0; +#X connect 169 2 243 0; +#X connect 169 3 242 0; +#X connect 169 4 242 0; +#X connect 169 5 242 0; +#X connect 169 6 242 0; +#X connect 170 0 169 0; +#X connect 170 0 230 0; +#X connect 172 0 86 0; +#X connect 172 1 86 1; +#X connect 173 0 177 1; +#X connect 173 0 202 0; +#X connect 175 0 114 0; +#X connect 176 0 220 1; +#X connect 177 0 257 1; +#X connect 177 1 257 2; +#X connect 177 2 257 3; +#X connect 177 3 257 4; +#X connect 177 4 257 5; +#X connect 178 0 117 0; +#X connect 178 0 176 1; +#X connect 179 0 1 0; +#X connect 180 0 5 0; +#X connect 181 0 23 0; +#X connect 182 0 74 0; +#X connect 183 0 142 0; +#X connect 184 0 336 0; +#X connect 185 0 43 0; +#X connect 186 0 187 1; +#X connect 187 0 186 0; +#X connect 187 0 206 0; +#X connect 189 0 48 0; +#X connect 190 0 78 0; +#X connect 191 0 101 0; +#X connect 192 0 88 1; +#X connect 193 0 196 0; +#X connect 194 0 196 0; +#X connect 195 0 196 0; +#X connect 197 0 198 0; +#X connect 198 0 93 0; +#X connect 198 1 199 0; +#X connect 198 2 200 0; +#X connect 199 0 192 1; +#X connect 200 0 192 1; +#X connect 201 0 204 0; +#X connect 202 0 201 0; +#X connect 202 1 204 1; +#X connect 203 0 102 0; +#X connect 203 0 209 0; +#X connect 204 0 203 1; +#X connect 205 0 35 0; +#X connect 206 0 207 0; +#X connect 206 0 48 0; +#X connect 207 0 305 0; +#X connect 208 0 42 0; +#X connect 208 0 125 0; +#X connect 209 0 210 0; +#X connect 211 0 214 0; +#X connect 213 0 176 1; +#X connect 213 0 117 0; +#X connect 214 0 221 0; +#X connect 214 1 218 0; +#X connect 215 0 268 0; +#X connect 215 0 305 0; +#X connect 218 0 222 1; +#X connect 219 0 207 1; +#X connect 220 0 177 0; +#X connect 220 0 203 0; +#X connect 220 0 257 0; +#X connect 221 0 222 0; +#X connect 221 0 226 1; +#X connect 222 0 223 0; +#X connect 223 0 224 1; +#X connect 224 0 225 0; +#X connect 225 0 213 0; +#X connect 226 0 224 0; +#X connect 229 0 276 1; +#X connect 230 0 154 1; +#X connect 230 0 155 1; +#X connect 230 1 231 0; +#X connect 231 0 155 1; +#X connect 231 0 154 1; +#X connect 232 0 207 1; +#X connect 236 0 156 0; +#X connect 238 0 156 0; +#X connect 239 0 145 0; +#X connect 240 0 183 0; +#X connect 241 0 266 1; +#X connect 242 0 146 0; +#X connect 243 0 146 0; +#X connect 244 0 146 0; +#X connect 245 0 146 0; +#X connect 246 0 266 2; +#X connect 247 0 240 1; +#X connect 249 0 263 2; +#X connect 250 0 172 0; +#X connect 253 0 257 6; +#X connect 254 0 203 1; +#X connect 255 0 256 0; +#X connect 255 1 254 1; +#X connect 256 0 254 0; +#X connect 258 0 11 1; +#X connect 259 0 11 1; +#X connect 260 0 11 1; +#X connect 261 0 179 0; +#X connect 262 0 180 0; +#X connect 263 0 185 0; +#X connect 264 0 181 0; +#X connect 265 0 184 0; +#X connect 266 0 240 0; +#X connect 267 0 79 0; +#X connect 269 0 268 0; +#X connect 270 0 125 0; +#X connect 270 1 271 0; +#X connect 271 0 125 0; +#X connect 272 0 47 0; +#X connect 272 1 47 0; +#X connect 273 0 87 0; +#X connect 274 0 75 0; +#X connect 275 0 24 0; +#X connect 276 0 143 0; +#X connect 277 0 44 0; +#X connect 278 0 273 0; +#X connect 279 0 276 0; +#X connect 280 0 274 0; +#X connect 281 0 275 0; +#X connect 282 0 277 0; +#X connect 283 0 2 0; +#X connect 284 0 6 0; +#X connect 285 0 284 0; +#X connect 287 0 215 0; +#X connect 289 0 215 0; +#X connect 289 0 290 0; +#X connect 290 0 292 0; +#X connect 291 0 302 0; +#X connect 293 0 291 1; +#X connect 296 0 297 0; +#X connect 296 1 298 0; +#X connect 296 2 301 0; +#X connect 296 3 301 0; +#X connect 296 4 300 0; +#X connect 297 0 299 1; +#X connect 298 0 299 1; +#X connect 299 0 263 1; +#X connect 300 0 299 1; +#X connect 301 0 299 1; +#X connect 302 0 38 0; +#X connect 302 1 0 0; +#X connect 302 1 10 0; +#X connect 302 1 22 0; +#X connect 302 1 45 0; +#X connect 302 2 131 0; +#X connect 302 2 261 3; +#X connect 302 2 262 3; +#X connect 302 2 263 3; +#X connect 302 2 264 3; +#X connect 302 2 309 3; +#X connect 302 4 34 2; +#X connect 302 5 37 0; +#X connect 302 6 37 1; +#X connect 302 7 37 2; +#X connect 303 0 286 0; +#X connect 305 0 35 0; +#X connect 305 1 42 0; +#X connect 305 1 270 0; +#X connect 305 2 38 1; +#X connect 305 3 132 0; +#X connect 305 4 133 0; +#X connect 305 5 134 0; +#X connect 305 6 229 0; +#X connect 305 6 247 0; +#X connect 305 7 284 1; +#X connect 305 8 34 1; +#X connect 305 9 178 0; +#X connect 305 10 252 0; +#X connect 305 11 253 0; +#X connect 305 12 313 0; +#X connect 305 12 315 0; +#X connect 306 0 309 0; +#X connect 307 0 308 1; +#X connect 308 0 304 0; +#X connect 309 0 308 0; +#X connect 310 0 312 0; +#X connect 311 0 306 0; +#X connect 312 0 311 0; +#X connect 312 1 311 1; +#X connect 313 0 311 0; +#X connect 315 0 317 0; +#X connect 315 0 321 0; +#X connect 316 0 327 0; +#X connect 316 0 330 0; +#X connect 317 0 316 0; +#X connect 318 0 319 0; +#X connect 319 0 317 0; +#X connect 319 1 317 1; +#X connect 320 0 318 0; +#X connect 320 0 322 0; +#X connect 321 0 323 0; +#X connect 322 0 321 0; +#X connect 322 1 321 1; +#X connect 323 0 328 0; +#X connect 323 0 331 0; +#X connect 324 0 304 0; +#X connect 325 0 324 0; +#X connect 326 0 309 2; +#X connect 327 0 304 0; +#X connect 328 0 304 0; +#X connect 329 0 326 0; +#X connect 329 1 326 1; +#X connect 330 0 329 0; +#X connect 331 0 329 0; +#X connect 332 0 291 1; +#X connect 333 0 306 0; +#X connect 334 0 333 0; +#X connect 335 0 333 0; diff --git a/gemnotes_0.2.3/polytimeq.pd b/gemnotes_0.2.3/polytimeq.pd new file mode 100755 index 0000000..b4d09f2 --- /dev/null +++ b/gemnotes_0.2.3/polytimeq.pd @@ -0,0 +1,874 @@ +#N canvas 539 22 827 506 10; +#X obj 167 96 inlet; +#X obj 170 465 outlet; +#N canvas 0 22 827 429 objectmaker 0; +#X obj 26 116 kalashnikov 128; +#X obj 61 142 t f f; +#X obj 61 182 + 20; +#X obj 67 273 s pd-\$0-voices; +#X obj 61 162 * 100; +#X obj 71 201 pack f f f f f; +#X msg 205 142 4; +#X obj 120 172 + 3; +#X msg 68 234 obj \$1 100 timenote \$2 \$4 \$5 \, connect 0 0 \$3 0 +\, connect \$3 0 2 0 \, connect 1 0 \$3 1; +#X msg 175 198 clear \, obj 50 40 inlet \, obj 150 40 inlet \, obj +50 150 outlet; +#X obj 178 93 loadbang; +#X obj 230 328 s pd-\$0-voicecanvas; +#X obj 58 38 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 53 64 t b b; +#X obj 526 116 kalashnikov 128; +#X obj 561 142 t f f; +#X obj 561 182 + 20; +#X obj 567 273 s pd-\$0-voices; +#X obj 561 162 * 100; +#X obj 571 201 pack f f f f f; +#X obj 678 93 loadbang; +#X obj 558 38 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 553 64 t b b; +#X msg 675 198 clear \, obj 50 40 inlet \, obj 150 40 inlet \, obj +250 40 inlet \, obj 50 150 outlet; +#X obj 620 172 + 4; +#X msg 568 233 obj \$1 100 timenq \$2 \$4 \$5 \, connect 0 0 \$3 0 +\, connect \$3 0 3 0 \, connect 1 0 \$3 1 \, connect 2 0 \$3 2; +#X msg 172 27; +#X obj 557 10 inlet; +#X msg 219 293 connect 0 0 4 0 \, connect 1 0 4 1 \, connect 2 0 4 +2 \, connect 4 0 3 0; +#X msg 705 142 1; +#X obj 680 20 inlet; +#X obj 160 148 140; +#X obj 652 138 140; +#X text 680 3 tempo; +#X connect 0 1 1 0; +#X connect 0 2 28 0; +#X connect 1 0 4 0; +#X connect 1 1 5 1; +#X connect 1 1 7 0; +#X connect 2 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 5 4; +#X connect 7 0 5 2; +#X connect 8 0 3 0; +#X connect 9 0 3 0; +#X connect 10 0 6 0; +#X connect 12 0 13 0; +#X connect 13 0 0 0; +#X connect 13 1 9 0; +#X connect 13 1 31 0; +#X connect 14 1 15 0; +#X connect 14 2 28 0; +#X connect 15 0 18 0; +#X connect 15 1 19 1; +#X connect 15 1 24 0; +#X connect 16 0 19 0; +#X connect 18 0 16 0; +#X connect 19 0 25 0; +#X connect 20 0 29 0; +#X connect 21 0 22 0; +#X connect 22 0 14 0; +#X connect 22 1 23 0; +#X connect 22 1 32 0; +#X connect 23 0 17 0; +#X connect 24 0 19 2; +#X connect 25 0 17 0; +#X connect 27 0 21 0; +#X connect 28 0 11 0; +#X connect 29 0 19 4; +#X connect 30 0 31 1; +#X connect 30 0 32 1; +#X connect 31 0 5 3; +#X connect 32 0 19 3; +#X restore 564 320 pd objectmaker; +#X obj 218 96 inlet; +#X text 219 80 start; +#X text 168 80 notes; +#N canvas 0 22 450 300 \$0-voicecanvas 0; +#X obj 39 37 inlet; +#X obj 91 38 inlet; +#X obj 142 38 inlet; +#X obj 60 265 outlet; +#N canvas 0 22 701 337 \$0-voices 0; +#X obj 50 40 inlet; +#X obj 150 40 inlet; +#X obj 250 40 inlet; +#X obj 50 150 outlet; +#X obj 20 100 timenq 0 104 1; +#X obj 120 100 timenq 1 104 1; +#X obj 220 100 timenq 2 104 1; +#X obj 320 100 timenq 3 104 1; +#X obj 420 100 timenq 4 104 1; +#X obj 520 100 timenq 5 104 1; +#X obj 620 100 timenq 6 104 1; +#X obj 720 100 timenq 7 104 1; +#X obj 820 100 timenq 8 104 1; +#X obj 920 100 timenq 9 104 1; +#X obj 1020 100 timenq 10 104 1; +#X obj 1120 100 timenq 11 104 1; +#X obj 1220 100 timenq 12 104 1; +#X obj 1320 100 timenq 13 104 1; +#X obj 1420 100 timenq 14 104 1; +#X obj 1520 100 timenq 15 104 1; +#X obj 1620 100 timenq 16 104 1; +#X obj 1720 100 timenq 17 104 1; +#X obj 1820 100 timenq 18 104 1; +#X obj 1920 100 timenq 19 104 1; +#X obj 2020 100 timenq 20 104 1; +#X obj 2120 100 timenq 21 104 1; +#X obj 2220 100 timenq 22 104 1; +#X obj 2320 100 timenq 23 104 1; +#X obj 2420 100 timenq 24 104 1; +#X obj 2520 100 timenq 25 104 1; +#X obj 2620 100 timenq 26 104 1; +#X obj 2720 100 timenq 27 104 1; +#X obj 2820 100 timenq 28 104 1; +#X obj 2920 100 timenq 29 104 1; +#X obj 3020 100 timenq 30 104 1; +#X obj 3120 100 timenq 31 104 1; +#X obj 3220 100 timenq 32 104 1; +#X obj 3320 100 timenq 33 104 1; +#X obj 3420 100 timenq 34 104 1; +#X obj 3520 100 timenq 35 104 1; +#X obj 3620 100 timenq 36 104 1; +#X obj 3720 100 timenq 37 104 1; +#X obj 3820 100 timenq 38 104 1; +#X obj 3920 100 timenq 39 104 1; +#X obj 4020 100 timenq 40 104 1; +#X obj 4120 100 timenq 41 104 1; +#X obj 4220 100 timenq 42 104 1; +#X obj 4320 100 timenq 43 104 1; +#X obj 4420 100 timenq 44 104 1; +#X obj 4520 100 timenq 45 104 1; +#X obj 4620 100 timenq 46 104 1; +#X obj 4720 100 timenq 47 104 1; +#X obj 4820 100 timenq 48 104 1; +#X obj 4920 100 timenq 49 104 1; +#X obj 5020 100 timenq 50 104 1; +#X obj 5120 100 timenq 51 104 1; +#X obj 5220 100 timenq 52 104 1; +#X obj 5320 100 timenq 53 104 1; +#X obj 5420 100 timenq 54 104 1; +#X obj 5520 100 timenq 55 104 1; +#X obj 5620 100 timenq 56 104 1; +#X obj 5720 100 timenq 57 104 1; +#X obj 5820 100 timenq 58 104 1; +#X obj 5920 100 timenq 59 104 1; +#X obj 6020 100 timenq 60 104 1; +#X obj 6120 100 timenq 61 104 1; +#X obj 6220 100 timenq 62 104 1; +#X obj 6320 100 timenq 63 104 1; +#X obj 6420 100 timenq 64 104 1; +#X obj 6520 100 timenq 65 104 1; +#X obj 6620 100 timenq 66 104 1; +#X obj 6720 100 timenq 67 104 1; +#X obj 6820 100 timenq 68 104 1; +#X obj 6920 100 timenq 69 104 1; +#X obj 7020 100 timenq 70 104 1; +#X obj 7120 100 timenq 71 104 1; +#X obj 7220 100 timenq 72 104 1; +#X obj 7320 100 timenq 73 104 1; +#X obj 7420 100 timenq 74 104 1; +#X obj 7520 100 timenq 75 104 1; +#X obj 7620 100 timenq 76 104 1; +#X obj 7720 100 timenq 77 104 1; +#X obj 7820 100 timenq 78 104 1; +#X obj 7920 100 timenq 79 104 1; +#X obj 8020 100 timenq 80 104 1; +#X obj 8120 100 timenq 81 104 1; +#X obj 8220 100 timenq 82 104 1; +#X obj 8320 100 timenq 83 104 1; +#X obj 8420 100 timenq 84 104 1; +#X obj 8520 100 timenq 85 104 1; +#X obj 8620 100 timenq 86 104 1; +#X obj 8720 100 timenq 87 104 1; +#X obj 8820 100 timenq 88 104 1; +#X obj 8920 100 timenq 89 104 1; +#X obj 9020 100 timenq 90 104 1; +#X obj 9120 100 timenq 91 104 1; +#X obj 9220 100 timenq 92 104 1; +#X obj 9320 100 timenq 93 104 1; +#X obj 9420 100 timenq 94 104 1; +#X obj 9520 100 timenq 95 104 1; +#X obj 9620 100 timenq 96 104 1; +#X obj 9720 100 timenq 97 104 1; +#X obj 9820 100 timenq 98 104 1; +#X obj 9920 100 timenq 99 104 1; +#X obj 10020 100 timenq 100 104 1; +#X obj 10120 100 timenq 101 104 1; +#X obj 10220 100 timenq 102 104 1; +#X obj 10320 100 timenq 103 104 1; +#X obj 10420 100 timenq 104 104 1; +#X obj 10520 100 timenq 105 104 1; +#X obj 10620 100 timenq 106 104 1; +#X obj 10720 100 timenq 107 104 1; +#X obj 10820 100 timenq 108 104 1; +#X obj 10920 100 timenq 109 104 1; +#X obj 11020 100 timenq 110 104 1; +#X obj 11120 100 timenq 111 104 1; +#X obj 11220 100 timenq 112 104 1; +#X obj 11320 100 timenq 113 104 1; +#X obj 11420 100 timenq 114 104 1; +#X obj 11520 100 timenq 115 104 1; +#X obj 11620 100 timenq 116 104 1; +#X obj 11720 100 timenq 117 104 1; +#X obj 11820 100 timenq 118 104 1; +#X obj 11920 100 timenq 119 104 1; +#X obj 12020 100 timenq 120 104 1; +#X obj 12120 100 timenq 121 104 1; +#X obj 12220 100 timenq 122 104 1; +#X obj 12320 100 timenq 123 104 1; +#X obj 12420 100 timenq 124 104 1; +#X obj 12520 100 timenq 125 104 1; +#X obj 12620 100 timenq 126 104 1; +#X obj 12720 100 timenq 127 104 1; +#X connect 0 0 4 0; +#X connect 0 0 5 0; +#X connect 0 0 6 0; +#X connect 0 0 7 0; +#X connect 0 0 8 0; +#X connect 0 0 9 0; +#X connect 0 0 10 0; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 0 0 13 0; +#X connect 0 0 14 0; +#X connect 0 0 15 0; +#X connect 0 0 16 0; +#X connect 0 0 17 0; +#X connect 0 0 18 0; +#X connect 0 0 19 0; +#X connect 0 0 20 0; +#X connect 0 0 21 0; +#X connect 0 0 22 0; +#X connect 0 0 23 0; +#X connect 0 0 24 0; +#X connect 0 0 25 0; +#X connect 0 0 26 0; +#X connect 0 0 27 0; +#X connect 0 0 28 0; +#X connect 0 0 29 0; +#X connect 0 0 30 0; +#X connect 0 0 31 0; +#X connect 0 0 32 0; +#X connect 0 0 33 0; +#X connect 0 0 34 0; +#X connect 0 0 35 0; +#X connect 0 0 36 0; +#X connect 0 0 37 0; +#X connect 0 0 38 0; +#X connect 0 0 39 0; +#X connect 0 0 40 0; +#X connect 0 0 41 0; +#X connect 0 0 42 0; +#X connect 0 0 43 0; +#X connect 0 0 44 0; +#X connect 0 0 45 0; +#X connect 0 0 46 0; +#X connect 0 0 47 0; +#X connect 0 0 48 0; +#X connect 0 0 49 0; +#X connect 0 0 50 0; +#X connect 0 0 51 0; +#X connect 0 0 52 0; +#X connect 0 0 53 0; +#X connect 0 0 54 0; +#X connect 0 0 55 0; +#X connect 0 0 56 0; +#X connect 0 0 57 0; +#X connect 0 0 58 0; +#X connect 0 0 59 0; +#X connect 0 0 60 0; +#X connect 0 0 61 0; +#X connect 0 0 62 0; +#X connect 0 0 63 0; +#X connect 0 0 64 0; +#X connect 0 0 65 0; +#X connect 0 0 66 0; +#X connect 0 0 67 0; +#X connect 0 0 68 0; +#X connect 0 0 69 0; +#X connect 0 0 70 0; +#X connect 0 0 71 0; +#X connect 0 0 72 0; +#X connect 0 0 73 0; +#X connect 0 0 74 0; +#X connect 0 0 75 0; +#X connect 0 0 76 0; +#X connect 0 0 77 0; +#X connect 0 0 78 0; +#X connect 0 0 79 0; +#X connect 0 0 80 0; +#X connect 0 0 81 0; +#X connect 0 0 82 0; +#X connect 0 0 83 0; +#X connect 0 0 84 0; +#X connect 0 0 85 0; +#X connect 0 0 86 0; +#X connect 0 0 87 0; +#X connect 0 0 88 0; +#X connect 0 0 89 0; +#X connect 0 0 90 0; +#X connect 0 0 91 0; +#X connect 0 0 92 0; +#X connect 0 0 93 0; +#X connect 0 0 94 0; +#X connect 0 0 95 0; +#X connect 0 0 96 0; +#X connect 0 0 97 0; +#X connect 0 0 98 0; +#X connect 0 0 99 0; +#X connect 0 0 100 0; +#X connect 0 0 101 0; +#X connect 0 0 102 0; +#X connect 0 0 103 0; +#X connect 0 0 104 0; +#X connect 0 0 105 0; +#X connect 0 0 106 0; +#X connect 0 0 107 0; +#X connect 0 0 108 0; +#X connect 0 0 109 0; +#X connect 0 0 110 0; +#X connect 0 0 111 0; +#X connect 0 0 112 0; +#X connect 0 0 113 0; +#X connect 0 0 114 0; +#X connect 0 0 115 0; +#X connect 0 0 116 0; +#X connect 0 0 117 0; +#X connect 0 0 118 0; +#X connect 0 0 119 0; +#X connect 0 0 120 0; +#X connect 0 0 121 0; +#X connect 0 0 122 0; +#X connect 0 0 123 0; +#X connect 0 0 124 0; +#X connect 0 0 125 0; +#X connect 0 0 126 0; +#X connect 0 0 127 0; +#X connect 0 0 128 0; +#X connect 0 0 129 0; +#X connect 0 0 130 0; +#X connect 0 0 131 0; +#X connect 1 0 4 1; +#X connect 1 0 5 1; +#X connect 1 0 6 1; +#X connect 1 0 7 1; +#X connect 1 0 8 1; +#X connect 1 0 9 1; +#X connect 1 0 10 1; +#X connect 1 0 11 1; +#X connect 1 0 12 1; +#X connect 1 0 13 1; +#X connect 1 0 14 1; +#X connect 1 0 15 1; +#X connect 1 0 16 1; +#X connect 1 0 17 1; +#X connect 1 0 18 1; +#X connect 1 0 19 1; +#X connect 1 0 20 1; +#X connect 1 0 21 1; +#X connect 1 0 22 1; +#X connect 1 0 23 1; +#X connect 1 0 24 1; +#X connect 1 0 25 1; +#X connect 1 0 26 1; +#X connect 1 0 27 1; +#X connect 1 0 28 1; +#X connect 1 0 29 1; +#X connect 1 0 30 1; +#X connect 1 0 31 1; +#X connect 1 0 32 1; +#X connect 1 0 33 1; +#X connect 1 0 34 1; +#X connect 1 0 35 1; +#X connect 1 0 36 1; +#X connect 1 0 37 1; +#X connect 1 0 38 1; +#X connect 1 0 39 1; +#X connect 1 0 40 1; +#X connect 1 0 41 1; +#X connect 1 0 42 1; +#X connect 1 0 43 1; +#X connect 1 0 44 1; +#X connect 1 0 45 1; +#X connect 1 0 46 1; +#X connect 1 0 47 1; +#X connect 1 0 48 1; +#X connect 1 0 49 1; +#X connect 1 0 50 1; +#X connect 1 0 51 1; +#X connect 1 0 52 1; +#X connect 1 0 53 1; +#X connect 1 0 54 1; +#X connect 1 0 55 1; +#X connect 1 0 56 1; +#X connect 1 0 57 1; +#X connect 1 0 58 1; +#X connect 1 0 59 1; +#X connect 1 0 60 1; +#X connect 1 0 61 1; +#X connect 1 0 62 1; +#X connect 1 0 63 1; +#X connect 1 0 64 1; +#X connect 1 0 65 1; +#X connect 1 0 66 1; +#X connect 1 0 67 1; +#X connect 1 0 68 1; +#X connect 1 0 69 1; +#X connect 1 0 70 1; +#X connect 1 0 71 1; +#X connect 1 0 72 1; +#X connect 1 0 73 1; +#X connect 1 0 74 1; +#X connect 1 0 75 1; +#X connect 1 0 76 1; +#X connect 1 0 77 1; +#X connect 1 0 78 1; +#X connect 1 0 79 1; +#X connect 1 0 80 1; +#X connect 1 0 81 1; +#X connect 1 0 82 1; +#X connect 1 0 83 1; +#X connect 1 0 84 1; +#X connect 1 0 85 1; +#X connect 1 0 86 1; +#X connect 1 0 87 1; +#X connect 1 0 88 1; +#X connect 1 0 89 1; +#X connect 1 0 90 1; +#X connect 1 0 91 1; +#X connect 1 0 92 1; +#X connect 1 0 93 1; +#X connect 1 0 94 1; +#X connect 1 0 95 1; +#X connect 1 0 96 1; +#X connect 1 0 97 1; +#X connect 1 0 98 1; +#X connect 1 0 99 1; +#X connect 1 0 100 1; +#X connect 1 0 101 1; +#X connect 1 0 102 1; +#X connect 1 0 103 1; +#X connect 1 0 104 1; +#X connect 1 0 105 1; +#X connect 1 0 106 1; +#X connect 1 0 107 1; +#X connect 1 0 108 1; +#X connect 1 0 109 1; +#X connect 1 0 110 1; +#X connect 1 0 111 1; +#X connect 1 0 112 1; +#X connect 1 0 113 1; +#X connect 1 0 114 1; +#X connect 1 0 115 1; +#X connect 1 0 116 1; +#X connect 1 0 117 1; +#X connect 1 0 118 1; +#X connect 1 0 119 1; +#X connect 1 0 120 1; +#X connect 1 0 121 1; +#X connect 1 0 122 1; +#X connect 1 0 123 1; +#X connect 1 0 124 1; +#X connect 1 0 125 1; +#X connect 1 0 126 1; +#X connect 1 0 127 1; +#X connect 1 0 128 1; +#X connect 1 0 129 1; +#X connect 1 0 130 1; +#X connect 1 0 131 1; +#X connect 2 0 4 2; +#X connect 2 0 5 2; +#X connect 2 0 6 2; +#X connect 2 0 7 2; +#X connect 2 0 8 2; +#X connect 2 0 9 2; +#X connect 2 0 10 2; +#X connect 2 0 11 2; +#X connect 2 0 12 2; +#X connect 2 0 13 2; +#X connect 2 0 14 2; +#X connect 2 0 15 2; +#X connect 2 0 16 2; +#X connect 2 0 17 2; +#X connect 2 0 18 2; +#X connect 2 0 19 2; +#X connect 2 0 20 2; +#X connect 2 0 21 2; +#X connect 2 0 22 2; +#X connect 2 0 23 2; +#X connect 2 0 24 2; +#X connect 2 0 25 2; +#X connect 2 0 26 2; +#X connect 2 0 27 2; +#X connect 2 0 28 2; +#X connect 2 0 29 2; +#X connect 2 0 30 2; +#X connect 2 0 31 2; +#X connect 2 0 32 2; +#X connect 2 0 33 2; +#X connect 2 0 34 2; +#X connect 2 0 35 2; +#X connect 2 0 36 2; +#X connect 2 0 37 2; +#X connect 2 0 38 2; +#X connect 2 0 39 2; +#X connect 2 0 40 2; +#X connect 2 0 41 2; +#X connect 2 0 42 2; +#X connect 2 0 43 2; +#X connect 2 0 44 2; +#X connect 2 0 45 2; +#X connect 2 0 46 2; +#X connect 2 0 47 2; +#X connect 2 0 48 2; +#X connect 2 0 49 2; +#X connect 2 0 50 2; +#X connect 2 0 51 2; +#X connect 2 0 52 2; +#X connect 2 0 53 2; +#X connect 2 0 54 2; +#X connect 2 0 55 2; +#X connect 2 0 56 2; +#X connect 2 0 57 2; +#X connect 2 0 58 2; +#X connect 2 0 59 2; +#X connect 2 0 60 2; +#X connect 2 0 61 2; +#X connect 2 0 62 2; +#X connect 2 0 63 2; +#X connect 2 0 64 2; +#X connect 2 0 65 2; +#X connect 2 0 66 2; +#X connect 2 0 67 2; +#X connect 2 0 68 2; +#X connect 2 0 69 2; +#X connect 2 0 70 2; +#X connect 2 0 71 2; +#X connect 2 0 72 2; +#X connect 2 0 73 2; +#X connect 2 0 74 2; +#X connect 2 0 75 2; +#X connect 2 0 76 2; +#X connect 2 0 77 2; +#X connect 2 0 78 2; +#X connect 2 0 79 2; +#X connect 2 0 80 2; +#X connect 2 0 81 2; +#X connect 2 0 82 2; +#X connect 2 0 83 2; +#X connect 2 0 84 2; +#X connect 2 0 85 2; +#X connect 2 0 86 2; +#X connect 2 0 87 2; +#X connect 2 0 88 2; +#X connect 2 0 89 2; +#X connect 2 0 90 2; +#X connect 2 0 91 2; +#X connect 2 0 92 2; +#X connect 2 0 93 2; +#X connect 2 0 94 2; +#X connect 2 0 95 2; +#X connect 2 0 96 2; +#X connect 2 0 97 2; +#X connect 2 0 98 2; +#X connect 2 0 99 2; +#X connect 2 0 100 2; +#X connect 2 0 101 2; +#X connect 2 0 102 2; +#X connect 2 0 103 2; +#X connect 2 0 104 2; +#X connect 2 0 105 2; +#X connect 2 0 106 2; +#X connect 2 0 107 2; +#X connect 2 0 108 2; +#X connect 2 0 109 2; +#X connect 2 0 110 2; +#X connect 2 0 111 2; +#X connect 2 0 112 2; +#X connect 2 0 113 2; +#X connect 2 0 114 2; +#X connect 2 0 115 2; +#X connect 2 0 116 2; +#X connect 2 0 117 2; +#X connect 2 0 118 2; +#X connect 2 0 119 2; +#X connect 2 0 120 2; +#X connect 2 0 121 2; +#X connect 2 0 122 2; +#X connect 2 0 123 2; +#X connect 2 0 124 2; +#X connect 2 0 125 2; +#X connect 2 0 126 2; +#X connect 2 0 127 2; +#X connect 2 0 128 2; +#X connect 2 0 129 2; +#X connect 2 0 130 2; +#X connect 2 0 131 2; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 3 0; +#X connect 8 0 3 0; +#X connect 9 0 3 0; +#X connect 10 0 3 0; +#X connect 11 0 3 0; +#X connect 12 0 3 0; +#X connect 13 0 3 0; +#X connect 14 0 3 0; +#X connect 15 0 3 0; +#X connect 16 0 3 0; +#X connect 17 0 3 0; +#X connect 18 0 3 0; +#X connect 19 0 3 0; +#X connect 20 0 3 0; +#X connect 21 0 3 0; +#X connect 22 0 3 0; +#X connect 23 0 3 0; +#X connect 24 0 3 0; +#X connect 25 0 3 0; +#X connect 26 0 3 0; +#X connect 27 0 3 0; +#X connect 28 0 3 0; +#X connect 29 0 3 0; +#X connect 30 0 3 0; +#X connect 31 0 3 0; +#X connect 32 0 3 0; +#X connect 33 0 3 0; +#X connect 34 0 3 0; +#X connect 35 0 3 0; +#X connect 36 0 3 0; +#X connect 37 0 3 0; +#X connect 38 0 3 0; +#X connect 39 0 3 0; +#X connect 40 0 3 0; +#X connect 41 0 3 0; +#X connect 42 0 3 0; +#X connect 43 0 3 0; +#X connect 44 0 3 0; +#X connect 45 0 3 0; +#X connect 46 0 3 0; +#X connect 47 0 3 0; +#X connect 48 0 3 0; +#X connect 49 0 3 0; +#X connect 50 0 3 0; +#X connect 51 0 3 0; +#X connect 52 0 3 0; +#X connect 53 0 3 0; +#X connect 54 0 3 0; +#X connect 55 0 3 0; +#X connect 56 0 3 0; +#X connect 57 0 3 0; +#X connect 58 0 3 0; +#X connect 59 0 3 0; +#X connect 60 0 3 0; +#X connect 61 0 3 0; +#X connect 62 0 3 0; +#X connect 63 0 3 0; +#X connect 64 0 3 0; +#X connect 65 0 3 0; +#X connect 66 0 3 0; +#X connect 67 0 3 0; +#X connect 68 0 3 0; +#X connect 69 0 3 0; +#X connect 70 0 3 0; +#X connect 71 0 3 0; +#X connect 72 0 3 0; +#X connect 73 0 3 0; +#X connect 74 0 3 0; +#X connect 75 0 3 0; +#X connect 76 0 3 0; +#X connect 77 0 3 0; +#X connect 78 0 3 0; +#X connect 79 0 3 0; +#X connect 80 0 3 0; +#X connect 81 0 3 0; +#X connect 82 0 3 0; +#X connect 83 0 3 0; +#X connect 84 0 3 0; +#X connect 85 0 3 0; +#X connect 86 0 3 0; +#X connect 87 0 3 0; +#X connect 88 0 3 0; +#X connect 89 0 3 0; +#X connect 90 0 3 0; +#X connect 91 0 3 0; +#X connect 92 0 3 0; +#X connect 93 0 3 0; +#X connect 94 0 3 0; +#X connect 95 0 3 0; +#X connect 96 0 3 0; +#X connect 97 0 3 0; +#X connect 98 0 3 0; +#X connect 99 0 3 0; +#X connect 100 0 3 0; +#X connect 101 0 3 0; +#X connect 102 0 3 0; +#X connect 103 0 3 0; +#X connect 104 0 3 0; +#X connect 105 0 3 0; +#X connect 106 0 3 0; +#X connect 107 0 3 0; +#X connect 108 0 3 0; +#X connect 109 0 3 0; +#X connect 110 0 3 0; +#X connect 111 0 3 0; +#X connect 112 0 3 0; +#X connect 113 0 3 0; +#X connect 114 0 3 0; +#X connect 115 0 3 0; +#X connect 116 0 3 0; +#X connect 117 0 3 0; +#X connect 118 0 3 0; +#X connect 119 0 3 0; +#X connect 120 0 3 0; +#X connect 121 0 3 0; +#X connect 122 0 3 0; +#X connect 123 0 3 0; +#X connect 124 0 3 0; +#X connect 125 0 3 0; +#X connect 126 0 3 0; +#X connect 127 0 3 0; +#X connect 128 0 3 0; +#X connect 129 0 3 0; +#X connect 130 0 3 0; +#X connect 131 0 3 0; +#X restore 52 154 pd \$0-voices; +#X connect 0 0 4 0; +#X connect 1 0 4 1; +#X connect 2 0 4 2; +#X connect 4 0 3 0; +#X restore 176 169 pd \$0-voicecanvas; +#X obj 267 95 inlet; +#X text 275 79 pq; +#X obj 292 202 gemnotes_countbars; +#X obj 214 214 == 0; +#X obj 171 233 spigot 1; +#X obj 292 221 spigot; +#X obj 323 159 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 325 100 loadbang; +#X msg 324 132 1; +#X obj 291 317 sel -1 -2; +#X obj 328 291 unpack f f f f f; +#X obj 338 396 pack f f f f f; +#X obj 222 395 pack s f f f f; +#X text 364 265 b/# ?; +#X obj 197 346 symbol +; +#X obj 251 346 symbol .; +#X obj 487 187 msgfile; +#X obj 459 255 lister; +#X msg 473 158 rewind \, bang; +#X obj 550 109 openpanel; +#X msg 541 134 read \$1; +#X obj 470 211 niagara 1; +#X obj 414 213 ==; +#X obj 411 232 sel 1; +#X obj 410 253 t b b; +#X floatatom 368 229 5 0 0 0 - - -; +#X msg 357 177 debug \$1; +#X obj 357 155 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 465 282 route list; +#X msg 250 134 reset; +#X msg 547 190 print; +#X obj 434 273 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X floatatom 457 231 5 0 0 0 - - -; +#X obj 444 88 route symbol bang; +#X obj 520 48 inlet; +#X obj 201 191 prepend note; +#X obj 223 434 prepend note; +#X msg 228 256 bar; +#X obj 221 280 spigot; +#X obj 282 247 route bar; +#X msg 274 273 0; +#X msg 270 291 1; +#X floatatom 619 301 5 60 180 2 tempo - -; +#X obj 581 227 delay 500; +#X obj 604 139 inlet; +#X obj 603 165 t b f; +#X msg 599 199 stop; +#X obj 141 271 print GC; +#X obj 358 332 * 1; +#X obj 688 156 inlet; +#X connect 0 0 6 0; +#X connect 3 0 6 1; +#X connect 3 0 25 0; +#X connect 3 0 36 0; +#X connect 6 0 11 0; +#X connect 6 0 42 0; +#X connect 7 0 6 2; +#X connect 7 0 9 0; +#X connect 9 0 12 0; +#X connect 9 1 29 0; +#X connect 9 1 32 0; +#X connect 10 0 11 1; +#X connect 11 0 1 0; +#X connect 12 0 17 0; +#X connect 12 0 54 0; +#X connect 13 0 10 0; +#X connect 13 0 12 1; +#X connect 14 0 15 0; +#X connect 15 0 13 0; +#X connect 16 0 21 0; +#X connect 16 1 22 0; +#X connect 16 2 18 0; +#X connect 17 0 16 0; +#X connect 17 0 48 0; +#X connect 17 1 55 0; +#X connect 17 2 18 2; +#X connect 17 2 19 2; +#X connect 17 3 18 3; +#X connect 17 3 19 3; +#X connect 17 4 18 4; +#X connect 17 4 19 4; +#X connect 18 0 43 0; +#X connect 19 0 43 0; +#X connect 21 0 19 0; +#X connect 22 0 19 0; +#X connect 23 0 28 0; +#X connect 24 0 35 0; +#X connect 25 0 23 0; +#X connect 26 0 27 0; +#X connect 27 0 23 0; +#X connect 28 0 29 1; +#X connect 28 0 39 0; +#X connect 28 1 24 1; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 31 0 23 0; +#X connect 31 1 24 0; +#X connect 31 1 38 0; +#X connect 32 0 44 0; +#X connect 33 0 9 0; +#X connect 34 0 33 0; +#X connect 35 0 1 0; +#X connect 35 0 9 0; +#X connect 35 0 46 0; +#X connect 36 0 9 0; +#X connect 37 0 23 0; +#X connect 40 0 27 0; +#X connect 40 1 26 0; +#X connect 41 0 40 0; +#X connect 42 0 9 0; +#X connect 43 0 1 0; +#X connect 44 0 45 0; +#X connect 45 0 1 0; +#X connect 46 0 47 0; +#X connect 47 0 45 1; +#X connect 48 0 45 1; +#X connect 49 0 2 1; +#X connect 50 0 2 0; +#X connect 51 0 52 0; +#X connect 52 0 50 0; +#X connect 52 1 49 0; +#X connect 52 1 53 0; +#X connect 53 0 50 0; +#X connect 55 0 18 1; +#X connect 55 0 19 1; +#X connect 56 0 55 1; diff --git a/gemnotes_0.2.3/rest.pd b/gemnotes_0.2.3/rest.pd new file mode 100755 index 0000000..4b5433a --- /dev/null +++ b/gemnotes_0.2.3/rest.pd @@ -0,0 +1,350 @@ +#N canvas 64 112 817 536 10; +#X floatatom 110 205 5 0 0 0 - - -; +#X obj 76 336 text3d; +#X obj 52 236 gemhead; +#X obj 48 311 color 1 1 1; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 279 151 outlet; +#X msg 283 110 11; +#X obj 150 57 loadbang; +#X obj 240 53 r \$0-lbn; +#X msg 27 110 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 0 0; +#X restore 136 313 pd inittext; +#X obj 89 10 inlet; +#X obj 157 57 pack f f f; +#X obj 182 150 +; +#X floatatom 441 91 5 0 0 0 value - -; +#X obj 356 15 inlet; +#X obj 441 106 moses 7; +#X obj 481 128 - 7; +#X obj 441 149 sel 0 1 2 3 4 5 6; +#X msg 710 309 11; +#X msg 734 306 9; +#X obj 134 264 - 0; +#X msg 780 311 6; +#X msg 549 254 0.415; +#X msg 508 262 0; +#X msg 559 236 1; +#X msg 127 10 x y z len clef r g b; +#X obj 444 497 text3d; +#X obj 438 434 gemhead; +#X obj 444 472 color 1 1 1; +#X obj 639 448 loadbang; +#X msg 454 335 0; +#X msg 480 336 1; +#X obj 487 434 + 0.37; +#X msg 559 473 text g; +#X obj 440 364 f; +#X msg 527 374 0.37; +#X msg 566 370 0.28; +#X msg 618 367 0.19; +#X msg 545 11 (note) rhythm x-offset; +#X msg 243 218 text =; +#X msg 295 218 text ?; +#X msg 349 216 text -; +#X msg 398 216 text >; +#X msg 625 188 text <; +#X msg 679 186 text Z; +#X msg 728 186 text Y; +#N canvas 0 22 690 669 work_out_rhythms 0; +#X obj 291 355 * 0.5; +#X obj 291 378 i; +#X obj 334 355 * 0.5; +#X obj 334 378 i; +#X obj 377 355 * 0.5; +#X obj 377 378 i; +#X obj 419 355 * 0.5; +#X obj 419 378 i; +#X obj 462 355 * 0.5; +#X obj 462 378 i; +#X obj 505 355 * 0.5; +#X obj 505 378 i; +#X floatatom 503 317 5 0 0 0 - - -; +#X obj 291 402 sel 1; +#X obj 334 402 sel 1; +#X obj 377 402 sel 1; +#X obj 419 402 sel 1; +#X obj 462 402 sel 1; +#X obj 505 402 sel 1; +#X msg 291 423 1; +#X msg 334 423 2; +#X msg 377 423 3; +#X msg 419 423 4; +#X msg 462 423 5; +#X msg 505 423 6; +#X obj 291 468 -; +#X obj 291 531 +; +#X msg 220 494 7; +#X msg 130 495 0; +#X obj 535 280 f; +#X obj 291 446 f; +#X obj 67 63 moses 1; +#X obj 125 86 moses 2; +#X obj 166 107 moses 4; +#X obj 144 127 sel 3; +#X obj 204 127 moses 8; +#X obj 245 148 moses 16; +#X obj 223 168 sel 12; +#X obj 187 147 sel 6; +#X obj 94 105 sel 1.5; +#X msg 51 283 0; +#X msg 91 283 0; +#X msg 131 283 1; +#X msg 171 283 1; +#X msg 211 283 2; +#X msg 251 283 2; +#X msg 291 283 3; +#X msg 331 283 3; +#X obj 268 188 sel 24; +#X obj 290 168 moses 32; +#X obj 291 491 moses 0; +#X msg 291 511 0; +#X obj 291 551 outlet; +#X msg 371 283 4; +#X msg 411 283 4; +#X obj 334 188 sel 48; +#X msg 449 283 5; +#X msg 489 283 5; +#X floatatom 349 490 5 0 0 0 - - -; +#X obj 67 40 inlet; +#X obj 516 235 inlet; +#X msg 315 47; +#X floatatom 193 66 5 0 0 0 - - -; +#X floatatom 354 556 5 0 0 0 - - -; +#X connect 0 0 1 0; +#X connect 0 0 2 0; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 14 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 15 0; +#X connect 6 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 16 0; +#X connect 8 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 18 0; +#X connect 12 0 0 0; +#X connect 13 0 19 0; +#X connect 14 0 20 0; +#X connect 15 0 21 0; +#X connect 16 0 22 0; +#X connect 17 0 23 0; +#X connect 18 0 24 0; +#X connect 19 0 30 0; +#X connect 20 0 30 0; +#X connect 21 0 30 0; +#X connect 22 0 30 0; +#X connect 23 0 30 0; +#X connect 24 0 30 0; +#X connect 25 0 50 0; +#X connect 25 0 58 0; +#X connect 26 0 52 0; +#X connect 26 0 63 0; +#X connect 27 0 26 1; +#X connect 28 0 26 1; +#X connect 29 0 12 0; +#X connect 30 0 25 0; +#X connect 31 1 32 0; +#X connect 32 0 39 0; +#X connect 32 1 33 0; +#X connect 33 0 34 0; +#X connect 33 1 35 0; +#X connect 34 0 42 0; +#X connect 34 0 27 0; +#X connect 34 1 43 0; +#X connect 34 1 28 0; +#X connect 35 0 38 0; +#X connect 35 1 36 0; +#X connect 36 0 37 0; +#X connect 36 1 49 0; +#X connect 37 0 46 0; +#X connect 37 0 27 0; +#X connect 37 1 47 0; +#X connect 37 1 28 0; +#X connect 38 0 44 0; +#X connect 38 0 27 0; +#X connect 38 1 45 0; +#X connect 38 1 28 0; +#X connect 39 0 40 0; +#X connect 39 0 27 0; +#X connect 39 1 41 0; +#X connect 39 1 28 0; +#X connect 40 0 25 1; +#X connect 41 0 25 1; +#X connect 42 0 25 1; +#X connect 43 0 25 1; +#X connect 44 0 25 1; +#X connect 45 0 25 1; +#X connect 46 0 25 1; +#X connect 47 0 25 1; +#X connect 48 0 53 0; +#X connect 48 0 27 0; +#X connect 48 1 54 0; +#X connect 48 1 28 0; +#X connect 49 0 48 0; +#X connect 49 1 55 0; +#X connect 50 0 51 0; +#X connect 50 1 26 0; +#X connect 51 0 26 0; +#X connect 53 0 25 1; +#X connect 54 0 25 1; +#X connect 55 0 27 0; +#X connect 55 0 56 0; +#X connect 55 1 28 0; +#X connect 55 1 57 0; +#X connect 56 0 25 1; +#X connect 57 0 25 1; +#X connect 59 0 31 0; +#X connect 59 0 62 0; +#X connect 60 0 29 0; +#X restore 494 81 pd work_out_rhythms; +#X obj 256 44 \$1; +#X obj 301 44 \$2; +#X obj 342 43 \$3; +#X obj 243 65 change; +#X obj 290 65 change; +#X obj 340 65 change; +#X obj 89 29 unpack f f f f f f f f f; +#X obj 426 405 &&; +#X text 606 56 args: xoff rhythm duration; +#X obj 533 60 s \$0-lbn; +#X msg 450 7 0; +#X obj 394 7 spigot 1; +#X obj 500 5 t b; +#X obj 393 58 route xoff rhy dur; +#X obj 376 35 route \$4; +#X obj 632 84 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 530 434 - 0.05; +#X obj 296 10 t b b b; +#X obj 343 112 delay 0; +#X obj 341 136 \$2; +#X floatatom 518 128 5 0 0 0 - - -; +#X obj 56 287 translateXYZ 2 -42 -0.9; +#X obj 444 453 translateXYZ 2 -42 -0.9; +#X connect 0 0 15 0; +#X connect 2 0 63 0; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 4 0 21 0; +#X connect 4 1 1 1; +#X connect 4 1 21 1; +#X connect 5 0 48 0; +#X connect 5 0 53 0; +#X connect 5 0 59 0; +#X connect 6 0 3 1; +#X connect 6 0 23 1; +#X connect 7 0 27 0; +#X connect 7 0 63 1; +#X connect 8 0 10 0; +#X connect 9 0 56 0; +#X connect 10 0 12 0; +#X connect 10 0 25 0; +#X connect 10 1 11 0; +#X connect 10 1 26 0; +#X connect 11 0 12 0; +#X connect 11 0 62 0; +#X connect 12 0 13 0; +#X connect 12 0 18 0; +#X connect 12 0 30 0; +#X connect 12 0 34 0; +#X connect 12 1 13 0; +#X connect 12 1 18 0; +#X connect 12 1 30 0; +#X connect 12 1 35 0; +#X connect 12 2 13 0; +#X connect 12 2 18 0; +#X connect 12 2 30 0; +#X connect 12 2 36 0; +#X connect 12 3 13 0; +#X connect 12 3 18 0; +#X connect 12 3 37 0; +#X connect 12 3 32 0; +#X connect 12 4 14 0; +#X connect 12 4 17 0; +#X connect 12 4 38 0; +#X connect 12 4 32 0; +#X connect 12 5 19 0; +#X connect 12 5 16 0; +#X connect 12 5 32 0; +#X connect 12 5 39 0; +#X connect 12 6 16 0; +#X connect 12 6 19 0; +#X connect 12 6 32 0; +#X connect 12 6 40 0; +#X connect 13 0 1 1; +#X connect 13 0 21 1; +#X connect 14 0 1 1; +#X connect 14 0 21 1; +#X connect 15 0 58 0; +#X connect 15 0 63 2; +#X connect 16 0 1 1; +#X connect 16 0 21 1; +#X connect 17 0 15 1; +#X connect 18 0 15 1; +#X connect 19 0 15 1; +#X connect 22 0 64 0; +#X connect 23 0 21 0; +#X connect 24 0 28 0; +#X connect 25 0 29 0; +#X connect 26 0 29 0; +#X connect 27 0 64 1; +#X connect 28 0 21 0; +#X connect 29 0 49 1; +#X connect 30 0 27 1; +#X connect 31 0 27 1; +#X connect 32 0 27 1; +#X connect 34 0 1 0; +#X connect 35 0 1 0; +#X connect 36 0 1 0; +#X connect 37 0 1 0; +#X connect 38 0 1 0; +#X connect 39 0 1 0; +#X connect 40 0 1 0; +#X connect 41 0 8 0; +#X connect 42 0 45 0; +#X connect 43 0 46 0; +#X connect 44 0 47 0; +#X connect 45 0 7 1; +#X connect 46 0 41 1; +#X connect 47 0 41 0; +#X connect 48 0 7 0; +#X connect 48 1 0 0; +#X connect 48 2 63 3; +#X connect 48 2 64 3; +#X connect 48 5 6 0; +#X connect 48 6 6 1; +#X connect 48 7 6 2; +#X connect 48 8 2 0; +#X connect 48 8 49 0; +#X connect 49 0 22 0; +#X connect 52 0 53 1; +#X connect 53 0 52 0; +#X connect 53 0 54 0; +#X connect 54 0 51 0; +#X connect 55 0 7 1; +#X connect 55 1 41 1; +#X connect 55 2 41 0; +#X connect 56 0 55 0; +#X connect 58 0 64 2; +#X connect 59 0 42 0; +#X connect 59 0 60 0; +#X connect 59 1 43 0; +#X connect 59 2 28 0; +#X connect 59 2 44 0; +#X connect 60 0 61 0; +#X connect 61 0 41 1; +#X connect 63 0 3 0; +#X connect 64 0 23 0; diff --git a/gemnotes_0.2.3/sharpsandflats.pd b/gemnotes_0.2.3/sharpsandflats.pd new file mode 100755 index 0000000..7bc980b --- /dev/null +++ b/gemnotes_0.2.3/sharpsandflats.pd @@ -0,0 +1,146 @@ +#N canvas 0 0 777 499 10; +#N canvas 0 0 450 300 (subpatch) 0; +#X array flats 128 float 3; +#A 0 0 81 1 82 2 3 84 4 85 5 86 6 7 88 8 89 9 10 91 11 92 12 93 13 +14 95 15 96 16 17 98 18 99 19 100 20 21 102 22 103 23 24 105 25 106 +26 107 27 28 109 29 110 30 31 112 32 113 33 114 34 35 116 36 117 37 +38 119 39 120 40 121 41 42 123 43 124 44 45 126 46 127 47 128 48 49 +130 50 131 51 52 133 53 134 54 135 55 56 137 57 138 58 59 140 60 141 +61 142 62 63 144 64 145 65 66 147 67 148 68 149 69 70 151 71 152 72 +73 154 74; +#X coords 0 160 128 -1 200 140 1; +#X restore 15 336 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array sharps 128 float 3; +#A 0 0 80 1 81 2 3 83 4 84 5 85 6 7 87 8 88 9 10 90 11 91 12 92 13 +14 94 15 95 16 17 97 18 98 19 99 20 21 101 22 102 23 24 104 25 105 +26 106 27 28 108 29 109 30 31 111 32 112 33 113 34 35 115 36 116 37 +38 118 39 119 40 120 41 42 122 43 123 44 45 125 46 126 47 127 48 49 +129 50 130 51 52 132 53 133 54 134 55 56 136 57 137 58 59 139 60 140 +61 141 62 63 143 64 144 65 66 146 67 147 68 148 69 70 150 71 151 72 +73 153 74; +#X coords 0 160 127 -1 200 140 1; +#X restore 233 336 graph; +#X obj 110 28 kalashnikov 128; +#X obj 153 48 t f f; +#X obj 419 241 +; +#X msg 392 186 0; +#X obj 74 115 % 12; +#X obj 395 137 sel 0 1 2 3 4 5 6 7 8 9 10 11; +#X obj 200 72 / 12; +#X obj 200 92 i; +#X msg 419 186 1; +#X msg 446 186 2; +#X msg 473 186 3; +#X msg 500 186 4; +#X msg 527 186 5; +#X msg 554 186 6; +#X obj 579 137 sel 0 1 2 3 4 5 6 7 8 9 10 11; +#X msg 587 188 0; +#X msg 616 188 80; +#X obj 419 261 +; +#X obj 200 112 * 7; +#X obj 419 287 tabwrite flats; +#X obj 39 241 +; +#X msg 12 186 0; +#X obj 15 137 sel 0 1 2 3 4 5 6 7 8 9 10 11; +#X msg 39 186 1; +#X msg 66 186 2; +#X msg 93 186 3; +#X msg 120 186 4; +#X msg 147 186 5; +#X msg 174 186 6; +#X obj 199 137 sel 0 1 2 3 4 5 6 7 8 9 10 11; +#X msg 207 188 0; +#X msg 236 188 80; +#X obj 39 261 +; +#X obj 39 287 tabwrite sharps; +#X obj 110 10 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 526 115 % 12; +#X msg 532 345 \; flats const 0 \; sharps const 0; +#X connect 2 1 3 0; +#X connect 3 0 6 0; +#X connect 3 1 8 0; +#X connect 3 1 21 1; +#X connect 3 1 35 1; +#X connect 3 1 37 0; +#X connect 4 0 19 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 6 0 24 0; +#X connect 7 0 5 0; +#X connect 7 1 10 0; +#X connect 7 2 10 0; +#X connect 7 3 11 0; +#X connect 7 4 11 0; +#X connect 7 5 12 0; +#X connect 7 6 13 0; +#X connect 7 7 13 0; +#X connect 7 8 14 0; +#X connect 7 9 14 0; +#X connect 7 10 15 0; +#X connect 7 11 15 0; +#X connect 8 0 9 0; +#X connect 9 0 20 0; +#X connect 10 0 4 0; +#X connect 11 0 4 0; +#X connect 12 0 4 0; +#X connect 13 0 4 0; +#X connect 14 0 4 0; +#X connect 15 0 4 0; +#X connect 16 0 17 0; +#X connect 16 1 18 0; +#X connect 16 2 17 0; +#X connect 16 3 18 0; +#X connect 16 4 17 0; +#X connect 16 5 17 0; +#X connect 16 6 18 0; +#X connect 16 7 17 0; +#X connect 16 8 18 0; +#X connect 16 9 17 0; +#X connect 16 10 18 0; +#X connect 16 11 17 0; +#X connect 17 0 19 1; +#X connect 18 0 19 1; +#X connect 19 0 21 0; +#X connect 20 0 4 1; +#X connect 20 0 22 1; +#X connect 22 0 34 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 24 1 23 0; +#X connect 24 2 25 0; +#X connect 24 3 25 0; +#X connect 24 4 26 0; +#X connect 24 5 27 0; +#X connect 24 6 27 0; +#X connect 24 7 28 0; +#X connect 24 8 28 0; +#X connect 24 9 29 0; +#X connect 24 10 29 0; +#X connect 24 11 30 0; +#X connect 25 0 22 0; +#X connect 26 0 22 0; +#X connect 27 0 22 0; +#X connect 28 0 22 0; +#X connect 29 0 22 0; +#X connect 30 0 22 0; +#X connect 31 0 32 0; +#X connect 31 1 33 0; +#X connect 31 2 32 0; +#X connect 31 3 33 0; +#X connect 31 4 32 0; +#X connect 31 5 32 0; +#X connect 31 6 33 0; +#X connect 31 7 32 0; +#X connect 31 8 33 0; +#X connect 31 9 32 0; +#X connect 31 10 33 0; +#X connect 31 11 32 0; +#X connect 32 0 34 1; +#X connect 33 0 34 1; +#X connect 34 0 35 0; +#X connect 36 0 2 0; +#X connect 37 0 31 0; +#X connect 37 0 16 0; diff --git a/gemnotes_0.2.3/slavenote.pd b/gemnotes_0.2.3/slavenote.pd new file mode 100755 index 0000000..f12ab02 --- /dev/null +++ b/gemnotes_0.2.3/slavenote.pd @@ -0,0 +1,1145 @@ +#N canvas 3 94 1246 635 10; +#X floatatom 110 265 5 0 0 0 - - -; +#X obj 76 396 text3d; +#X obj 52 296 gemhead; +#X obj 110 294 +; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 279 151 outlet; +#X msg 283 110 11; +#X obj 150 57 r \$0-lbn; +#X msg 27 110 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 136 373 pd inittext; +#X obj 459 337 text3d; +#X obj 397 182 gemhead; +#X msg 626 259 text (; +#X msg 548 122 text *; +#X msg 744 259 text &; +#X msg 560 153 text -; +#X msg 685 259 text '; +#X floatatom 493 141 5 0 0 0 - - -; +#X obj 493 161 +; +#X obj 771 149 hradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 +-1 -1 0; +#X obj 771 167 sel 0 1 2; +#X msg 771 130 2; +#X obj 495 196 +; +#X text 622 164 #; +#X text 674 164 nat; +#X text 734 164 b; +#X floatatom 245 113 5 0 0 1 y-position - -; +#N canvas 0 22 442 272 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 263 112 11; +#X obj 195 68 r \$0-lbn; +#X msg 19 109 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 485 316 pd inittext; +#X floatatom 435 479 5 0 0 0 - - -; +#X obj 401 610 text3d; +#X obj 337 527 gemhead; +#X obj 362 461 tgl 15 0 empty empty show/hide 17 7 0 10 -262144 -1 +-1 0 1; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 263 115 11; +#X obj 157 78 r \$0-lbn; +#X msg 10 115 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 461 587 pd inittext; +#X obj 362 414 < -4; +#X obj 410 413 > 6; +#X obj 372 380 t f f; +#X obj 362 439 ||; +#X text 481 413 Leger 1:; +#X msg 680 225 -0.19; +#N canvas 695 468 671 300 topleger 0; +#X msg 53 137 text +; +#X obj 124 98 sel 0 1 2 3 4 5 6 7 8 9; +#X msg 97 137 text r; +#X obj 98 207 outlet; +#X obj 137 34 inlet; +#X msg 142 136 text s; +#X msg 186 136 text t; +#X msg 231 138 text u; +#X msg 275 138 text v; +#X msg 320 139 text w; +#X msg 364 139 text x; +#X msg 409 139 text y; +#X msg 453 139 text z; +#X obj 226 67 * 0.5; +#X obj 263 69 i; +#X obj 151 60 moses 7; +#X obj 200 60 - 7; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 1 1 2 0; +#X connect 1 2 5 0; +#X connect 1 3 6 0; +#X connect 1 4 7 0; +#X connect 1 5 8 0; +#X connect 1 6 9 0; +#X connect 1 7 10 0; +#X connect 1 8 11 0; +#X connect 1 9 12 0; +#X connect 2 0 3 0; +#X connect 4 0 15 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 3 0; +#X connect 8 0 3 0; +#X connect 9 0 3 0; +#X connect 10 0 3 0; +#X connect 11 0 3 0; +#X connect 12 0 3 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X connect 15 1 16 0; +#X connect 16 0 13 0; +#X restore 508 481 pd topleger; +#N canvas 1087 523 450 300 botleger 0; +#X obj 114 63 inlet; +#X msg 61 211 text a; +#X obj 113 157 i; +#X obj 113 135 * -0.5; +#X obj 74 184 sel 0 1 2 3 4 5 6 7; +#X msg 107 211 text h; +#X msg 152 211 text i; +#X msg 197 211 text j; +#X msg 243 211 text k; +#X msg 288 211 text l; +#X msg 333 211 text m; +#X msg 378 211 text n; +#X obj 152 259 outlet; +#X floatatom 200 162 5 0 0 0 - - -; +#X floatatom 189 124 5 0 0 0 - - -; +#X obj 114 86 moses -4; +#X obj 113 109 + 5; +#X text 237 61 k \, l \, m \, n - bottom of font reached.; +#X connect 0 0 15 0; +#X connect 1 0 12 0; +#X connect 2 0 4 0; +#X connect 2 0 13 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 4 1 5 0; +#X connect 4 2 6 0; +#X connect 4 3 7 0; +#X connect 4 4 8 0; +#X connect 4 5 9 0; +#X connect 4 6 10 0; +#X connect 4 7 11 0; +#X connect 5 0 12 0; +#X connect 6 0 12 0; +#X connect 7 0 12 0; +#X connect 8 0 12 0; +#X connect 9 0 12 0; +#X connect 10 0 12 0; +#X connect 11 0 12 0; +#X connect 15 0 14 0; +#X connect 15 0 16 0; +#X connect 16 0 3 0; +#X restore 343 485 pd botleger; +#N canvas 0 22 450 300 loadbng 0; +#X obj 79 89 del 20; +#X obj 79 116 outlet; +#X obj 79 59 r \$0-lbn; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X restore 771 111 pd loadbng; +#N canvas 0 22 287 304 pos 0; +#X obj 20 -15 inlet; +#X obj 166 -18 inlet; +#X obj 20 77 spigot 1; +#X obj 20 98 tabread flats; +#X obj 110 77 spigot; +#X obj 20 181 - 28; +#X obj 110 98 tabread sharps; +#X obj 65 55 == 0; +#X obj 20 125 moses 80; +#X obj 28 154 - 80; +#X msg 54 181 1; +#X obj 20 6 f; +#X obj 65 229 outlet; +#X msg 65 155 2; +#X obj 110 181 - 28; +#X obj 110 125 moses 80; +#X obj 118 154 - 80; +#X msg 144 181 1; +#X msg 155 155 0; +#X obj 20 229 outlet; +#X obj 20 208 -; +#X obj 116 11 t b f; +#X obj 234 43 inlet; +#X msg 210 124 12; +#X msg 242 124 0; +#X obj 223 90 sel 1 2; +#X obj 223 62 t b f; +#X connect 0 0 11 0; +#X connect 1 0 21 0; +#X connect 2 0 3 0; +#X connect 3 0 8 0; +#X connect 4 0 6 0; +#X connect 5 0 20 0; +#X connect 6 0 15 0; +#X connect 7 0 2 1; +#X connect 8 0 10 0; +#X connect 8 0 5 0; +#X connect 8 1 9 0; +#X connect 8 1 13 0; +#X connect 9 0 5 0; +#X connect 10 0 12 0; +#X connect 11 0 4 0; +#X connect 11 0 2 0; +#X connect 13 0 12 0; +#X connect 14 0 20 0; +#X connect 15 0 17 0; +#X connect 15 0 14 0; +#X connect 15 1 16 0; +#X connect 15 1 18 0; +#X connect 16 0 14 0; +#X connect 17 0 12 0; +#X connect 18 0 12 0; +#X connect 20 0 19 0; +#X connect 21 0 11 0; +#X connect 21 1 7 0; +#X connect 21 1 4 1; +#X connect 22 0 26 0; +#X connect 23 0 20 1; +#X connect 24 0 20 1; +#X connect 25 0 23 0; +#X connect 25 1 24 0; +#X connect 26 0 11 0; +#X connect 26 1 25 0; +#X restore 245 94 pd pos; +#X floatatom 245 78 5 0 0 0 - - -; +#X obj 89 10 inlet; +#X obj 157 97 pack f f f; +#X obj 138 208 +; +#X msg 1003 115 text G; +#X msg 959 115 text 7; +#X msg 1064 115 text W; +#X floatatom 860 54 5 0 0 0 value - -; +#X obj 590 618 text3d; +#X obj 576 424 gemhead; +#X obj 701 464 +; +#X msg 844 395 0; +#X msg 870 396 1; +#X obj 657 488 + 0.37; +#X msg 802 538 text g; +#X obj 708 490 - 0.08; +#X obj 830 424 f; +#X obj 389 535 - 0.048; +#X obj 443 157 * 0.092; +#X obj 156 264 * 0.092; +#X obj 729 416 * 0.092; +#X obj 443 137 + 2; +#X obj 303 194 - 0.185; +#X obj 857 72 moses 7; +#X obj 897 94 - 7; +#X obj 959 93 sel 0 1 2 3 4 5 6; +#X msg 740 369 11; +#X msg 767 370 9; +#X obj 134 324 - 0; +#X msg 810 371 6; +#X msg 1081 279 0.415; +#X msg 967 384 0; +#X obj 485 220 - 0; +#X msg 1091 261 1; +#X msg 1142 255 0.185; +#X msg 1200 198 0.085; +#X msg 1140 210 0.149; +#X msg 1083 376 0.113; +#X msg 1055 446 0.048; +#X msg 1070 408 0.088; +#X msg 629 220 -0.17; +#X msg 986 344 0.02; +#X obj 10 833 gemhead; +#X obj 39 908 rectangle 0.01 0.6; +#X obj 76 844 +; +#X msg 183 691 0; +#X obj 226 794 - 2.32; +#X msg 262 764 2.32; +#X text 294 763 <--- changes with screen dimensions!!!; +#X msg 232 606 0.25; +#X obj 183 669 sel 0 1; +#X text 287 680 <--- changes with notehead size!!!; +#X text 162 655 bottom/top; +#X msg 519 641 bottom/top stemlength beamed; +#X text 23 755 a stem; +#X obj 251 708 * -1; +#X obj 237 727 -0.5; +#X obj 279 725 0.5; +#X obj 247 825 -; +#X obj 190 777 +; +#X obj 159 128 s \$0-color; +#X obj 149 298 r \$0-color; +#X obj 479 448 r \$0-color; +#X obj 430 267 r \$0-color; +#X obj 631 116 s \$0-value; +#X obj 83 645 r \$0-value; +#X obj 165 871 r \$0-color; +#X obj 113 129 s \$0-z; +#X obj 643 96 s \$0-direction; +#X obj 183 633 r \$0-direction; +#X obj 167 845 r \$0-z; +#X obj 797 851 text3d; +#X obj 769 641 gemhead; +#N canvas 0 22 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 263 112 11; +#X obj 120 40 r \$0-lbn; +#X msg 54 134 font fonts/Music8.ttf \, justify left top; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X restore 857 787 pd inittext; +#X obj 783 702 +; +#X floatatom 789 669 5 0 0 0 - - -; +#N canvas 316 144 450 300 bottie 0; +#X msg 79 129 text A; +#X msg 127 129 text B; +#X msg 185 129 text C; +#X msg 246 129 text D; +#X obj 81 168 outlet; +#X obj 77 57 inlet; +#X obj 80 94 sel 3 2 1 0; +#X connect 0 0 4 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 3 0 4 0; +#X connect 5 0 6 0; +#X connect 6 0 0 0; +#X connect 6 1 1 0; +#X connect 6 2 2 0; +#X connect 6 3 3 0; +#X restore 1090 745 pd bottie; +#N canvas 316 144 450 300 toptie 0; +#X obj 81 168 outlet; +#X obj 77 57 inlet; +#X msg 79 129 text P; +#X msg 127 129 text Q; +#X msg 185 129 text R; +#X msg 246 129 text S; +#X obj 81 94 sel 3 2 1 0; +#X connect 1 0 6 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 2 0; +#X connect 6 1 3 0; +#X connect 6 2 4 0; +#X connect 6 3 5 0; +#X restore 1020 745 pd toptie; +#X obj 1090 693 spigot 1; +#X obj 1020 693 spigot; +#X obj 1135 674 == 0; +#X obj 1040 625 t f f; +#X obj 1040 647 sel 1 0; +#X obj 1020 674 f; +#X obj 1090 674 f; +#X obj 855 727 +; +#X floatatom 903 703 5 0 0 0 - - -; +#X text 961 721 Y; +#X text 1018 614 X; +#X msg 983 615 0.79; +#X text 928 613 minim; +#X text 914 596 semibrieve; +#X text 922 629 crotchet; +#X text 925 647 quaver; +#X msg 983 596 1.19; +#X msg 983 634 0.56; +#X msg 983 653 0.36; +#X msg 1042 721 0.66; +#X msg 973 721 -0.97; +#X obj 924 755 r \$0-color; +#X obj 849 607 f; +#X obj 904 735 r \$0-z; +#X obj 1027 581 r \$0-direction; +#X obj 882 527 sel 0 1 2 3 4 5 6; +#X obj 931 455 f; +#X msg 127 10 x y z len clef r g b; +#X msg 586 217 -0.19; +#X obj 269 482 t b; +#X obj 48 371 color 0 0 0; +#X obj 372 301 color 0 0 0; +#X obj 373 585 color 0 0 0; +#X obj 754 828 color 0 0 0; +#X obj 39 888 color 0 0 0; +#X obj 764 794 scaleXYZ 0 0 0; +#X obj 590 562 color 0 0 0; +#X obj 533 10 inlet; +#X msg 330 11 0; +#X obj 274 11 spigot 1; +#X obj 796 510 r \$0-lbn; +#X floatatom 46 256 5 0 0 0 - - -; +#X floatatom 559 81 5 0 0 0 - - -; +#X obj 213 690 0.25; +#X msg 959 216 0; +#X msg 993 215 1; +#X msg 1019 217 2; +#X obj 962 241 s \$0-font_switch; +#X obj 232 568 r \$0-font_switch; +#X obj 232 587 sel 0 1 2; +#X msg 264 606 0.2; +#X msg 290 606 0.17; +#X obj 380 9 t b; +#N canvas 78 87 1153 300 creation_arguments 0; +#X obj 271 122 moses 1e-07; +#X msg 271 141 60; +#X obj 157 103 \$2; +#X obj 157 160 s \$0-noterhythm; +#X obj 126 44 spigot 1; +#X msg 181 44 0; +#X obj 126 25 inlet; +#X obj 365 160 s \$0-notedur; +#X obj 468 108 \$5; +#X obj 900 162 prepend shfl; +#X obj 899 218 outlet; +#X obj 56 159 prepend xoff; +#X obj 809 163 prepend acc; +#X obj 271 160 prepend pitch; +#X obj 728 161 prepend tie; +#X obj 449 163 prepend bt; +#X obj 271 103 \$3; +#X obj 365 103 \$4; +#X obj 89 93 \$1; +#X obj 266 55 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 318 22 inlet; +#X obj 642 58 prepend proot; +#X obj 629 108 \$6; +#X obj 809 106 \$7; +#X obj 900 105 \$8; +#X obj 642 38 \$9; +#X obj 118 67 t b b b; +#X msg 92 227 xoff rhythm pitch dur bt tie acc shfl proot route; +#X obj 988 101 \$12; +#X obj 988 157 prepend articulation; +#X obj 188 125 s \$0-lbn; +#X connect 0 0 1 0; +#X connect 0 1 13 0; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 4 0 5 0; +#X connect 4 0 26 0; +#X connect 5 0 4 1; +#X connect 6 0 4 0; +#X connect 8 0 15 0; +#X connect 9 0 10 0; +#X connect 11 0 10 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X connect 14 0 10 0; +#X connect 15 0 10 0; +#X connect 16 0 0 0; +#X connect 17 0 7 0; +#X connect 18 0 11 0; +#X connect 20 0 26 0; +#X connect 21 0 10 0; +#X connect 22 0 14 0; +#X connect 23 0 12 0; +#X connect 24 0 9 0; +#X connect 25 0 21 0; +#X connect 26 0 2 0; +#X connect 26 0 8 0; +#X connect 26 0 28 0; +#X connect 26 1 17 0; +#X connect 26 1 18 0; +#X connect 26 1 23 0; +#X connect 26 1 24 0; +#X connect 26 1 16 0; +#X connect 26 2 25 0; +#X connect 26 2 22 0; +#X connect 26 2 30 0; +#X connect 28 0 29 0; +#X connect 29 0 10 0; +#X restore 392 32 pd creation_arguments; +#N canvas 0 22 690 669 work_out_rhythms 0; +#X obj 291 355 * 0.5; +#X obj 291 378 i; +#X obj 334 355 * 0.5; +#X obj 334 378 i; +#X obj 377 355 * 0.5; +#X obj 377 378 i; +#X obj 419 355 * 0.5; +#X obj 419 378 i; +#X obj 462 355 * 0.5; +#X obj 462 378 i; +#X obj 505 355 * 0.5; +#X obj 505 378 i; +#X floatatom 503 317 5 0 0 0 - - -; +#X obj 291 402 sel 1; +#X obj 334 402 sel 1; +#X obj 377 402 sel 1; +#X obj 419 402 sel 1; +#X obj 462 402 sel 1; +#X obj 505 402 sel 1; +#X msg 291 423 1; +#X msg 334 423 2; +#X msg 377 423 3; +#X msg 419 423 4; +#X msg 462 423 5; +#X msg 505 423 6; +#X obj 291 468 -; +#X obj 291 531 +; +#X msg 170 495 7; +#X msg 130 495 0; +#X obj 535 280 f; +#X obj 291 446 f; +#X obj 67 63 moses 1; +#X obj 125 86 moses 2; +#X obj 166 107 moses 4; +#X obj 144 127 sel 3; +#X obj 204 127 moses 8; +#X obj 245 148 moses 16; +#X obj 223 168 sel 12; +#X obj 187 147 sel 6; +#X obj 94 105 sel 1.5; +#X msg 51 283 0; +#X msg 91 283 0; +#X msg 131 283 1; +#X msg 171 283 1; +#X msg 211 283 2; +#X msg 251 283 2; +#X msg 291 283 3; +#X msg 331 283 3; +#X obj 268 188 sel 24; +#X obj 290 168 moses 32; +#X obj 67 40 r \$0-notedur; +#X obj 516 235 r \$0-noterhythm; +#X obj 291 491 moses 0; +#X msg 291 511 0; +#X obj 291 551 outlet; +#X msg 371 283 4; +#X msg 411 283 4; +#X obj 334 188 sel 48; +#X msg 449 283 5; +#X msg 489 283 5; +#X floatatom 349 490 5 0 0 0 - - -; +#X connect 0 0 1 0; +#X connect 0 0 2 0; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 14 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 15 0; +#X connect 6 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 16 0; +#X connect 8 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 18 0; +#X connect 12 0 0 0; +#X connect 13 0 19 0; +#X connect 14 0 20 0; +#X connect 15 0 21 0; +#X connect 16 0 22 0; +#X connect 17 0 23 0; +#X connect 18 0 24 0; +#X connect 19 0 30 0; +#X connect 20 0 30 0; +#X connect 21 0 30 0; +#X connect 22 0 30 0; +#X connect 23 0 30 0; +#X connect 24 0 30 0; +#X connect 25 0 52 0; +#X connect 25 0 60 0; +#X connect 26 0 54 0; +#X connect 27 0 26 1; +#X connect 28 0 26 1; +#X connect 29 0 12 0; +#X connect 30 0 25 0; +#X connect 31 1 32 0; +#X connect 32 0 39 0; +#X connect 32 1 33 0; +#X connect 33 0 34 0; +#X connect 33 1 35 0; +#X connect 34 0 42 0; +#X connect 34 0 27 0; +#X connect 34 1 43 0; +#X connect 34 1 28 0; +#X connect 35 0 38 0; +#X connect 35 1 36 0; +#X connect 36 0 37 0; +#X connect 36 1 49 0; +#X connect 37 0 46 0; +#X connect 37 0 27 0; +#X connect 37 1 47 0; +#X connect 37 1 28 0; +#X connect 38 0 44 0; +#X connect 38 0 27 0; +#X connect 38 1 45 0; +#X connect 38 1 28 0; +#X connect 39 0 40 0; +#X connect 39 0 27 0; +#X connect 39 1 41 0; +#X connect 39 1 28 0; +#X connect 40 0 25 1; +#X connect 41 0 25 1; +#X connect 42 0 25 1; +#X connect 43 0 25 1; +#X connect 44 0 25 1; +#X connect 45 0 25 1; +#X connect 46 0 25 1; +#X connect 47 0 25 1; +#X connect 48 0 55 0; +#X connect 48 0 27 0; +#X connect 48 1 56 0; +#X connect 48 1 28 0; +#X connect 49 0 48 0; +#X connect 49 1 57 0; +#X connect 50 0 31 0; +#X connect 51 0 29 0; +#X connect 52 0 53 0; +#X connect 52 1 26 0; +#X connect 53 0 26 0; +#X connect 55 0 25 1; +#X connect 56 0 25 1; +#X connect 57 0 27 0; +#X connect 57 0 58 0; +#X connect 57 1 28 0; +#X connect 57 1 59 0; +#X connect 58 0 25 1; +#X connect 59 0 25 1; +#X restore 892 16 pd work_out_rhythms; +#X obj 507 12 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 770 576 > 0; +#X floatatom 337 138 5 0 0 1 y-position - -; +#N canvas 0 22 287 304 pos 0; +#X obj 20 -15 inlet; +#X obj 166 -18 inlet; +#X obj 20 77 spigot 1; +#X obj 20 98 tabread flats; +#X obj 110 77 spigot; +#X obj 20 181 - 28; +#X obj 110 98 tabread sharps; +#X obj 65 55 == 0; +#X obj 20 125 moses 80; +#X obj 28 154 - 80; +#X msg 54 181 1; +#X obj 20 6 f; +#X obj 65 229 outlet; +#X msg 65 155 2; +#X obj 110 181 - 28; +#X obj 110 125 moses 80; +#X obj 118 154 - 80; +#X msg 144 181 1; +#X msg 155 155 0; +#X obj 20 229 outlet; +#X obj 20 208 -; +#X obj 116 11 t b f; +#X obj 234 43 inlet; +#X msg 210 124 12; +#X msg 242 124 0; +#X obj 223 90 sel 1 2; +#X obj 223 62 t b f; +#X connect 0 0 11 0; +#X connect 1 0 21 0; +#X connect 2 0 3 0; +#X connect 3 0 8 0; +#X connect 4 0 6 0; +#X connect 5 0 20 0; +#X connect 6 0 15 0; +#X connect 7 0 2 1; +#X connect 8 0 10 0; +#X connect 8 0 5 0; +#X connect 8 1 9 0; +#X connect 8 1 13 0; +#X connect 9 0 5 0; +#X connect 10 0 12 0; +#X connect 11 0 4 0; +#X connect 11 0 2 0; +#X connect 13 0 12 0; +#X connect 14 0 20 0; +#X connect 15 0 17 0; +#X connect 15 0 14 0; +#X connect 15 1 16 0; +#X connect 15 1 18 0; +#X connect 16 0 14 0; +#X connect 17 0 12 0; +#X connect 18 0 12 0; +#X connect 20 0 19 0; +#X connect 21 0 11 0; +#X connect 21 1 7 0; +#X connect 21 1 4 1; +#X connect 22 0 26 0; +#X connect 23 0 20 1; +#X connect 24 0 20 1; +#X connect 25 0 23 0; +#X connect 25 1 24 0; +#X connect 26 0 11 0; +#X connect 26 1 25 0; +#X restore 368 116 pd pos; +#X floatatom 388 99 5 0 0 0 - - -; +#X obj 241 257 -; +#X obj 1010 515 moses 3; +#X msg 1049 536 3; +#X obj 570 10 route \$10; +#X text 409 200 Accidental#:b; +#X text 820 608 Tie^; +#X floatatom 251 317 5 0 0 0 - - -; +#X obj 348 232 -; +#X obj 304 277 < 4; +#X obj 241 288 abs; +#X obj 304 296 * 0.092; +#X obj 304 351 * 0.046; +#X obj 18 88 s \$0-showme; +#N canvas 0 22 450 300 clockit 0; +#X obj 61 57 inlet; +#X obj 61 122 spigot 1; +#X obj 151 122 t b; +#X obj 151 141 f; +#X obj 176 141 + 1; +#X msg 186 97 0; +#X msg 151 98 1; +#X obj 61 174 outlet; +#X obj 159 57 inlet; +#X obj 159 78 t b b; +#X obj 242 59 r \$0-clocked; +#X obj 151 160 < 8; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 11 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 6 0; +#X connect 9 1 5 0; +#X connect 11 0 1 1; +#X restore 89 33 pd clockit; +#X obj 156 35 r \$0-reclock; +#X obj 18 33 packel 9; +#X obj 17 272 r \$0-showme; +#X obj 390 162 &&; +#X obj 314 157 r \$0-showme; +#X obj 330 507 &&; +#X obj 284 456 r \$0-showme; +#X obj 770 607 &&; +#X obj 692 604 r \$0-showme; +#X obj 10 797 &&; +#X obj 12 774 r \$0-showme; +#X obj 91 773 > 0; +#X obj 580 402 &&; +#X obj 504 367 r \$0-showme; +#X obj 89 69 unpack f f f f f f f f; +#X obj 648 10 r \$11; +#X obj 628 33 route reclock; +#X obj 548 33 s \$0-reclock; +#X obj 48 605 text3d; +#X obj 38 508 gemhead; +#X obj 135 510 r \$0-color; +#X obj 44 563 color 0 0 0; +#X obj 42 539 translateXYZ 2 -40 -0.9; +#X obj 79 425 r \$0-showme; +#X obj 27 462 &&; +#X obj 63 458 t b f; +#X obj 25 438 != 0; +#X text 25 487 articulation; +#X obj 201 413 == 1; +#X obj 178 458 sel 1; +#X obj 200 438 &&; +#X obj 235 412 == 0; +#X obj 234 435 t b f; +#X obj 240 386 r \$0-direction; +#X obj 274 437 &&; +#X obj 270 414 t b f; +#X obj 230 459 sel 1; +#X msg 111 603 text `; +#X obj 128 580 loadbang; +#X obj 102 512 +; +#X msg 160 484 text I; +#X msg 213 483 text E; +#X obj 107 490 t b f; +#X msg 102 448 0.38; +#X msg 124 468 0.45; +#X obj 471 56 route pitch rhythm xoff bt tie acc shfl proot articulation +; +#X msg 186 569 0; +#X obj 210 523 loadbang; +#X obj 201 547 r \$0-lbn; +#X obj 398 240 translateXYZ 2 -45 -0.9; +#X obj 56 347 translateXYZ 2 -45 -0.9; +#X obj 381 561 translateXYZ 2 -45 -0.9; +#X obj 644 513 translateXYZ 2 -42 -0.9; +#X obj 777 761 translateXYZ 2 -45 -0.9; +#X obj 39 866 translateXYZ 2 -45 0; +#X connect 0 0 3 0; +#X connect 2 0 240 0; +#X connect 3 0 66 0; +#X connect 3 0 97 0; +#X connect 3 0 145 0; +#X connect 4 0 1 0; +#X connect 4 1 1 1; +#X connect 6 0 239 0; +#X connect 7 0 5 0; +#X connect 8 0 5 0; +#X connect 9 0 5 0; +#X connect 10 0 5 0; +#X connect 11 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 17 0; +#X connect 14 0 15 0; +#X connect 15 0 7 0; +#X connect 15 0 144 0; +#X connect 15 1 11 0; +#X connect 15 1 78 0; +#X connect 15 2 9 0; +#X connect 15 2 33 0; +#X connect 16 0 14 0; +#X connect 17 0 70 0; +#X connect 21 0 30 0; +#X connect 21 0 57 0; +#X connect 21 0 58 0; +#X connect 21 0 59 0; +#X connect 21 0 176 0; +#X connect 22 0 5 0; +#X connect 22 1 5 1; +#X connect 23 0 241 2; +#X connect 25 0 241 0; +#X connect 26 0 195 1; +#X connect 27 0 24 0; +#X connect 27 0 46 0; +#X connect 27 1 24 1; +#X connect 27 1 46 1; +#X connect 28 0 31 0; +#X connect 29 0 31 1; +#X connect 30 0 28 0; +#X connect 30 0 35 0; +#X connect 30 1 29 0; +#X connect 30 1 34 0; +#X connect 31 0 26 0; +#X connect 33 0 13 1; +#X connect 34 0 24 0; +#X connect 35 0 24 0; +#X connect 36 0 16 0; +#X connect 37 0 21 0; +#X connect 37 1 15 0; +#X connect 38 0 37 0; +#X connect 39 0 155 0; +#X connect 39 0 189 0; +#X connect 39 0 191 0; +#X connect 40 0 98 0; +#X connect 41 0 51 0; +#X connect 41 0 55 0; +#X connect 41 0 60 0; +#X connect 41 0 82 0; +#X connect 41 0 157 0; +#X connect 41 0 240 1; +#X connect 42 0 1 0; +#X connect 43 0 1 0; +#X connect 44 0 1 0; +#X connect 45 0 61 0; +#X connect 47 0 242 0; +#X connect 48 0 53 0; +#X connect 49 0 54 0; +#X connect 50 0 54 0; +#X connect 51 0 242 1; +#X connect 52 0 46 0; +#X connect 53 0 242 2; +#X connect 54 0 202 1; +#X connect 55 0 241 1; +#X connect 56 0 17 1; +#X connect 57 0 3 1; +#X connect 58 0 48 1; +#X connect 59 0 56 0; +#X connect 60 0 183 0; +#X connect 61 0 49 0; +#X connect 61 0 63 0; +#X connect 61 0 142 0; +#X connect 61 1 62 0; +#X connect 62 0 50 0; +#X connect 62 0 63 0; +#X connect 62 0 142 0; +#X connect 63 0 43 0; +#X connect 63 0 64 0; +#X connect 63 0 69 0; +#X connect 63 0 72 0; +#X connect 63 0 79 0; +#X connect 63 0 160 0; +#X connect 63 1 42 0; +#X connect 63 1 64 0; +#X connect 63 1 69 0; +#X connect 63 1 72 0; +#X connect 63 1 76 0; +#X connect 63 1 160 0; +#X connect 63 2 44 0; +#X connect 63 2 76 0; +#X connect 63 2 160 0; +#X connect 63 2 65 0; +#X connect 63 2 68 0; +#X connect 63 2 74 0; +#X connect 63 3 44 0; +#X connect 63 3 76 0; +#X connect 63 3 160 0; +#X connect 63 3 65 0; +#X connect 63 3 68 0; +#X connect 63 3 74 0; +#X connect 63 4 44 0; +#X connect 63 4 65 0; +#X connect 63 4 77 0; +#X connect 63 4 68 0; +#X connect 63 4 74 0; +#X connect 63 4 161 0; +#X connect 63 5 44 0; +#X connect 63 5 71 0; +#X connect 63 5 67 0; +#X connect 63 5 75 0; +#X connect 63 5 73 0; +#X connect 63 5 162 0; +#X connect 63 6 44 0; +#X connect 63 6 67 0; +#X connect 63 6 71 0; +#X connect 63 6 75 0; +#X connect 63 6 73 0; +#X connect 63 6 162 0; +#X connect 64 0 1 1; +#X connect 64 0 5 1; +#X connect 65 0 1 1; +#X connect 65 0 5 1; +#X connect 66 0 240 2; +#X connect 67 0 1 1; +#X connect 67 0 5 1; +#X connect 68 0 66 1; +#X connect 68 0 70 1; +#X connect 69 0 70 1; +#X connect 69 0 66 1; +#X connect 70 0 239 2; +#X connect 71 0 70 1; +#X connect 71 0 66 1; +#X connect 72 0 60 1; +#X connect 73 0 60 1; +#X connect 74 0 60 1; +#X connect 75 0 55 1; +#X connect 76 0 55 1; +#X connect 77 0 55 1; +#X connect 78 0 13 1; +#X connect 79 0 55 1; +#X connect 80 0 244 0; +#X connect 82 0 244 1; +#X connect 83 0 82 1; +#X connect 84 0 97 1; +#X connect 85 0 84 1; +#X connect 87 0 159 1; +#X connect 88 0 83 0; +#X connect 88 0 94 0; +#X connect 88 1 95 0; +#X connect 88 1 159 0; +#X connect 93 0 94 1; +#X connect 94 0 84 0; +#X connect 94 0 96 0; +#X connect 95 0 84 0; +#X connect 95 0 96 0; +#X connect 96 0 81 2; +#X connect 97 0 244 2; +#X connect 99 0 146 1; +#X connect 100 0 148 1; +#X connect 100 0 152 1; +#X connect 101 0 147 1; +#X connect 103 0 201 0; +#X connect 104 0 150 1; +#X connect 107 0 88 0; +#X connect 108 0 244 3; +#X connect 110 0 243 0; +#X connect 111 0 109 0; +#X connect 111 1 109 1; +#X connect 112 0 243 1; +#X connect 113 0 112 1; +#X connect 114 0 109 0; +#X connect 115 0 109 0; +#X connect 116 0 114 0; +#X connect 117 0 115 0; +#X connect 118 0 116 1; +#X connect 119 0 120 0; +#X connect 119 1 118 0; +#X connect 119 1 117 1; +#X connect 120 0 121 0; +#X connect 120 0 136 0; +#X connect 120 1 122 0; +#X connect 120 1 135 0; +#X connect 121 0 117 0; +#X connect 122 0 116 0; +#X connect 123 0 243 2; +#X connect 124 0 123 1; +#X connect 127 0 113 0; +#X connect 132 0 113 0; +#X connect 133 0 113 0; +#X connect 134 0 113 0; +#X connect 135 0 124 0; +#X connect 136 0 124 0; +#X connect 137 0 149 1; +#X connect 138 0 151 1; +#X connect 139 0 243 3; +#X connect 140 0 119 0; +#X connect 141 0 132 0; +#X connect 141 1 127 0; +#X connect 141 2 133 0; +#X connect 141 3 134 0; +#X connect 141 4 134 0; +#X connect 141 5 134 0; +#X connect 141 6 134 0; +#X connect 142 0 141 0; +#X connect 142 0 177 0; +#X connect 144 0 13 1; +#X connect 145 0 96 0; +#X connect 146 0 1 0; +#X connect 147 0 5 0; +#X connect 148 0 24 0; +#X connect 149 0 109 0; +#X connect 150 0 81 0; +#X connect 151 0 149 0; +#X connect 152 0 46 0; +#X connect 153 0 179 0; +#X connect 154 0 155 1; +#X connect 155 0 154 0; +#X connect 155 0 168 0; +#X connect 156 0 52 0; +#X connect 159 0 82 1; +#X connect 160 0 163 0; +#X connect 161 0 163 0; +#X connect 162 0 163 0; +#X connect 164 0 165 0; +#X connect 165 0 87 0; +#X connect 165 1 166 0; +#X connect 165 2 167 0; +#X connect 166 0 159 1; +#X connect 167 0 159 1; +#X connect 168 0 169 0; +#X connect 169 0 235 0; +#X connect 170 0 45 0; +#X connect 170 0 102 0; +#X connect 171 0 169 1; +#X connect 172 0 197 1; +#X connect 173 0 176 1; +#X connect 174 0 173 0; +#X connect 175 0 174 0; +#X connect 176 0 185 0; +#X connect 177 0 122 1; +#X connect 177 0 121 1; +#X connect 177 1 178 0; +#X connect 178 0 122 1; +#X connect 178 0 121 1; +#X connect 179 0 235 0; +#X connect 182 0 184 0; +#X connect 182 0 187 0; +#X connect 183 0 239 1; +#X connect 184 0 186 0; +#X connect 185 0 182 0; +#X connect 186 0 183 1; +#X connect 187 0 95 1; +#X connect 187 0 93 0; +#X connect 189 0 204 0; +#X connect 190 0 189 1; +#X connect 191 0 188 0; +#X connect 192 0 2 0; +#X connect 193 0 6 0; +#X connect 194 0 193 0; +#X connect 195 0 25 0; +#X connect 196 0 195 0; +#X connect 197 0 110 0; +#X connect 198 0 197 0; +#X connect 199 0 80 0; +#X connect 200 0 199 0; +#X connect 201 0 199 1; +#X connect 202 0 47 0; +#X connect 203 0 202 0; +#X connect 204 0 41 0; +#X connect 204 0 112 0; +#X connect 204 1 0 0; +#X connect 204 1 12 0; +#X connect 204 1 23 0; +#X connect 204 1 123 0; +#X connect 204 1 48 0; +#X connect 204 2 105 0; +#X connect 204 2 239 3; +#X connect 204 2 240 3; +#X connect 204 2 241 3; +#X connect 204 2 242 3; +#X connect 204 4 37 2; +#X connect 204 4 174 2; +#X connect 204 5 40 0; +#X connect 204 6 40 1; +#X connect 204 7 40 2; +#X connect 205 0 206 0; +#X connect 206 0 207 0; +#X connect 206 1 235 0; +#X connect 209 0 212 0; +#X connect 210 0 211 1; +#X connect 211 0 208 0; +#X connect 212 0 211 0; +#X connect 213 0 215 0; +#X connect 214 0 209 0; +#X connect 215 0 214 0; +#X connect 215 1 214 1; +#X connect 216 0 214 0; +#X connect 218 0 220 0; +#X connect 218 0 224 0; +#X connect 219 0 230 0; +#X connect 219 0 233 0; +#X connect 220 0 219 0; +#X connect 221 0 222 0; +#X connect 222 0 220 0; +#X connect 222 1 220 1; +#X connect 223 0 221 0; +#X connect 223 0 225 0; +#X connect 224 0 226 0; +#X connect 225 0 224 0; +#X connect 225 1 224 1; +#X connect 226 0 231 0; +#X connect 226 0 234 0; +#X connect 227 0 208 0; +#X connect 228 0 227 0; +#X connect 229 0 212 2; +#X connect 230 0 208 0; +#X connect 231 0 208 0; +#X connect 232 0 229 0; +#X connect 232 1 229 1; +#X connect 233 0 232 0; +#X connect 234 0 232 0; +#X connect 235 0 38 0; +#X connect 235 1 45 0; +#X connect 235 1 102 0; +#X connect 235 2 41 1; +#X connect 235 2 158 0; +#X connect 235 3 106 0; +#X connect 235 4 138 0; +#X connect 235 4 172 0; +#X connect 235 5 193 1; +#X connect 235 6 37 1; +#X connect 235 6 174 1; +#X connect 235 7 175 0; +#X connect 235 8 216 0; +#X connect 235 8 218 0; +#X connect 236 0 209 0; +#X connect 237 0 236 0; +#X connect 238 0 236 0; +#X connect 239 0 147 0; +#X connect 240 0 146 0; +#X connect 241 0 148 0; +#X connect 242 0 152 0; +#X connect 243 0 151 0; +#X connect 244 0 150 0; diff --git a/gemnotes_0.2.3/src/LICENSE.txt b/gemnotes_0.2.3/src/LICENSE.txt new file mode 100755 index 0000000..edfda65 --- /dev/null +++ b/gemnotes_0.2.3/src/LICENSE.txt @@ -0,0 +1,29 @@ +This software is copyrighted by Edward Kelly. The following +terms (the "Standard Improved BSD License") apply to all files associated with the software unless explicitly disclaimed in individual files: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. +3. The name of the author may not be used to endorse or promote + products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. diff --git a/gemnotes_0.2.3/src/Makefile b/gemnotes_0.2.3/src/Makefile new file mode 100755 index 0000000..21578d3 --- /dev/null +++ b/gemnotes_0.2.3/src/Makefile @@ -0,0 +1,406 @@ +## Pd library template version 1.0.11 +# For instructions on how to use this template, see: +# http://puredata.info/docs/developer/MakefileTemplate +LIBRARY_NAME = ekext + +# add your .c source files, one object per file, to the SOURCES +# variable, help files will be included automatically +SOURCES = gemnotes_countbars.c polyquant.c gemnotes_counter.c + +# list all pd objects (i.e. myobject.pd) files here, and their helpfiles will +# be included automatically +PDOBJECTS = + +# example patches and related files, in the 'examples' subfolder +EXAMPLES = + +# manuals and related files, in the 'manual' subfolder +MANUAL = + +# if you want to include any other files in the source and binary tarballs, +# list them here. This can be anything from header files, test patches, +# documentation, etc. README.txt and LICENSE.txt are required and therefore +# automatically included +EXTRA_DIST = peakit~_license.txt voicing_detector~test3-help.pd maskxor-test.pd + + + +#------------------------------------------------------------------------------# +# +# things you might need to edit if you are using other C libraries +# +#------------------------------------------------------------------------------# + +ALL_CFLAGS = -I"$(PD_INCLUDE)" +ALL_LDFLAGS = +SHARED_LDFLAGS = +ALL_LIBS = + + +#------------------------------------------------------------------------------# +# +# you shouldn't need to edit anything below here, if we did it right :) +# +#------------------------------------------------------------------------------# + +# these can be set from outside without (usually) breaking the build +CFLAGS = -Wall -W -g +LDFLAGS = +LIBS = + +# get library version from meta file +LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd) + +ALL_CFLAGS += -DPD -DVERSION='"$(LIBRARY_VERSION)"' + +PD_INCLUDE = $(PD_PATH)/include/pd +# where to install the library, overridden below depending on platform +prefix = /usr/local +libdir = $(prefix)/lib +pkglibdir = $(libdir)/pd-externals +objectsdir = $(pkglibdir) + +INSTALL = install +INSTALL_PROGRAM = $(INSTALL) -p -m 644 +INSTALL_DATA = $(INSTALL) -p -m 644 +INSTALL_DIR = $(INSTALL) -p -m 755 -d + +ALLSOURCES := $(SOURCES) $(SOURCES_android) $(SOURCES_cygwin) $(SOURCES_macosx) \ + $(SOURCES_iphoneos) $(SOURCES_linux) $(SOURCES_windows) + +DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION) +ORIGDIR=pd-$(LIBRARY_NAME:~=)_$(LIBRARY_VERSION) + +UNAME := $(shell uname -s) +ifeq ($(UNAME),Darwin) + CPU := $(shell uname -p) + ifeq ($(CPU),arm) # iPhone/iPod Touch + SOURCES += $(SOURCES_iphoneos) + EXTENSION = pd_darwin + SHARED_EXTENSION = dylib + OS = iphoneos + PD_PATH = /Applications/Pd-extended.app/Contents/Resources + IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin + CC=$(IPHONE_BASE)/gcc + CPP=$(IPHONE_BASE)/cpp + CXX=$(IPHONE_BASE)/g++ + ISYSROOT = -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk + IPHONE_CFLAGS = -miphoneos-version-min=3.0 $(ISYSROOT) -arch armv6 + OPT_CFLAGS = -fast -funroll-loops -fomit-frame-pointer + ALL_CFLAGS := $(IPHONE_CFLAGS) $(ALL_CFLAGS) + ALL_LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT) + SHARED_LDFLAGS += -arch armv6 -dynamiclib -undefined dynamic_lookup $(ISYSROOT) + ALL_LIBS += -lc $(LIBS_iphoneos) + STRIP = strip -x + DISTBINDIR=$(DISTDIR)-$(OS) + else # Mac OS X + SOURCES += $(SOURCES_macosx) + EXTENSION = pd_darwin + SHARED_EXTENSION = dylib + OS = macosx + PD_PATH = /Applications/Pd-extended.app/Contents/Resources + OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast +# build universal 32-bit on 10.4 and 32/64 on newer + FAT_FLAGS = -arch i386 -mmacosx-version-min=10.4 +# FAT_FLAGS = -arch i386 -arch x86_64 -mmacosx-version-min=10.4 + SOURCES += $(SOURCES_iphoneos) + ALL_CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include + # if the 'pd' binary exists, check the linking against it to aid with stripping + BUNDLE_LOADER = $(shell test ! -e $(PD_PATH)/bin/pd || echo -bundle_loader $(PD_PATH)/bin/pd) + ALL_LDFLAGS += $(FAT_FLAGS) -bundle $(BUNDLE_LOADER) -undefined dynamic_lookup -L/sw/lib + SHARED_LDFLAGS += $(FAT_FLAGS) -dynamiclib -undefined dynamic_lookup \ + -install_name @loader_path/$(SHARED_LIB) -compatibility_version 1 -current_version 1.0 + ALL_LIBS += -lc $(LIBS_macosx) + STRIP = strip -x + DISTBINDIR=$(DISTDIR)-$(OS) +# install into ~/Library/Pd on Mac OS X since /usr/local isn't used much + pkglibdir=$(HOME)/Library/Pd + endif +endif +# Tho Android uses Linux, we use this fake uname to provide an easy way to +# setup all this things needed to cross-compile for Android using the NDK +ifeq ($(UNAME),ANDROID) + CPU := arm + SOURCES += $(SOURCES_android) + EXTENSION = pd_linux + SHARED_EXTENSION = so + OS = android + PD_PATH = /usr + NDK_BASE := /usr/local/android-ndk + NDK_PLATFORM_VERSION := 5 + NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_VERSION)/arch-arm + NDK_UNAME := $(shell uname -s | tr '[A-Z]' '[a-z]') + NDK_TOOLCHAIN_BASE=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(NDK_UNAME)-x86 + CC := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-gcc --sysroot=$(NDK_SYSROOT) + OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer + CFLAGS += + LDFLAGS += -rdynamic -shared + SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared + LIBS += -lc $(LIBS_android) + STRIP := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-strip \ + --strip-unneeded -R .note -R .comment + DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m) +endif +ifeq ($(UNAME),Linux) + CPU := $(shell uname -m) + SOURCES += $(SOURCES_linux) + EXTENSION = pd_linux + SHARED_EXTENSION = so + OS = linux + PD_PATH = /usr + OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer + ALL_CFLAGS += -fPIC + ALL_LDFLAGS += -rdynamic -shared -fPIC + SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared + ALL_LIBS += -lc $(LIBS_linux) + STRIP = strip --strip-unneeded -R .note -R .comment + DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m) +endif +ifeq ($(UNAME),GNU) + # GNU/Hurd, should work like GNU/Linux for basically all externals + CPU := $(shell uname -m) + SOURCES += $(SOURCES_linux) + EXTENSION = pd_linux + SHARED_EXTENSION = so + OS = linux + PD_PATH = /usr + OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer + ALL_CFLAGS += -fPIC + ALL_LDFLAGS += -rdynamic -shared -fPIC + SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB) + ALL_LIBS += -lc $(LIBS_linux) + STRIP = strip --strip-unneeded -R .note -R .comment + DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m) +endif +ifeq ($(UNAME),GNU/kFreeBSD) + # Debian GNU/kFreeBSD, should work like GNU/Linux for basically all externals + CPU := $(shell uname -m) + SOURCES += $(SOURCES_linux) + EXTENSION = pd_linux + SHARED_EXTENSION = so + OS = linux + PD_PATH = /usr + OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer + ALL_CFLAGS += -fPIC + ALL_LDFLAGS += -rdynamic -shared -fPIC + SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB) + ALL_LIBS += -lc $(LIBS_linux) + STRIP = strip --strip-unneeded -R .note -R .comment + DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m) +endif +ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME))) + CPU := $(shell uname -m) + SOURCES += $(SOURCES_cygwin) + EXTENSION = dll + SHARED_EXTENSION = dll + OS = cygwin + PD_PATH = $(shell cygpath $$PROGRAMFILES)/pd + OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer + ALL_CFLAGS += + ALL_LDFLAGS += -rdynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" + SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB) + ALL_LIBS += -lc -lpd $(LIBS_cygwin) + STRIP = strip --strip-unneeded -R .note -R .comment + DISTBINDIR=$(DISTDIR)-$(OS) +endif +ifeq (MINGW,$(findstring MINGW,$(UNAME))) + CPU := $(shell uname -m) + SOURCES += $(SOURCES_windows) + EXTENSION = dll + SHARED_EXTENSION = dll + OS = windows + PD_PATH = $(shell cd "$$PROGRAMFILES/pd" && pwd) + # MinGW doesn't seem to include cc so force gcc + CC=gcc + OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer + ALL_CFLAGS += -mms-bitfields + ALL_LDFLAGS += -s -shared -Wl,--enable-auto-import -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj" + SHARED_LDFLAGS += -shared + ALL_LIBS += -lpd -lwsock32 -lkernel32 -luser32 -lgdi32 $(LIBS_windows) + STRIP = strip --strip-unneeded -R .note -R .comment + DISTBINDIR=$(DISTDIR)-$(OS) +endif + +# in case somebody manually set the HELPPATCHES above +HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd) + +ALL_CFLAGS := $(ALL_CFLAGS) $(CFLAGS) $(OPT_CFLAGS) +ALL_LDFLAGS := $(LDFLAGS) $(ALL_LDFLAGS) +ALL_LIBS := $(LIBS) $(ALL_LIBS) + +SHARED_SOURCE ?= $(shell test ! -e lib$(LIBRARY_NAME).c || \ + echo lib$(LIBRARY_NAME).c ) +SHARED_HEADER ?= $(shell test ! -e $(LIBRARY_NAME).h || echo $(LIBRARY_NAME).h) +SHARED_LIB = $(SHARED_SOURCE:.c=.$(SHARED_EXTENSION)) + +.PHONY = install libdir_install single_install install-doc install-examples install-manual clean distclean dist etags $(LIBRARY_NAME) + +all: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB) + +%.o: %.c + $(CC) $(ALL_CFLAGS) -o "$*.o" -c "$*.c" + +%.$(EXTENSION): %.o $(SHARED_LIB) + $(CC) $(ALL_LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(ALL_LIBS) $(SHARED_LIB) + chmod a-x "$*.$(EXTENSION)" + +# this links everything into a single binary file +$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o + $(CC) $(ALL_LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(ALL_LIBS) + chmod a-x $(LIBRARY_NAME).$(EXTENSION) + +$(SHARED_LIB): $(SHARED_SOURCE:.c=.o) + $(CC) $(SHARED_LDFLAGS) -o $(SHARED_LIB) $(SHARED_SOURCE:.c=.o) $(LIBS) + +install: libdir_install + +# The meta and help files are explicitly installed to make sure they are +# actually there. Those files are not optional, then need to be there. +libdir_install: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB) install-doc install-examples install-manual + $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + $(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd \ + $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + test -z "$(strip $(SOURCES))" || (\ + $(INSTALL_PROGRAM) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) && \ + $(STRIP) $(addprefix $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/,$(SOURCES:.c=.$(EXTENSION)))) + test -z "$(strip $(SHARED_LIB))" || \ + $(INSTALL_DATA) $(SHARED_LIB) \ + $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + test -z "$(strip $(wildcard $(SOURCES:.c=.tcl)))" || \ + $(INSTALL_DATA) $(wildcard $(SOURCES:.c=.tcl)) \ + $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + test -z "$(strip $(PDOBJECTS))" || \ + $(INSTALL_DATA) $(PDOBJECTS) \ + $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + +# install library linked as single binary +single_install: $(LIBRARY_NAME) install-doc install-examples install-manual + $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + $(INSTALL_PROGRAM) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + $(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION) + +install-doc: + $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + test -z "$(strip $(SOURCES) $(PDOBJECTS))" || \ + $(INSTALL_DATA) $(HELPPATCHES) \ + $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) + $(INSTALL_DATA) README.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/README.txt + $(INSTALL_DATA) LICENSE.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/LICENSE.txt + +install-examples: + test -z "$(strip $(EXAMPLES))" || \ + $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples && \ + for file in $(EXAMPLES); do \ + $(INSTALL_DATA) examples/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples; \ + done + +install-manual: + test -z "$(strip $(MANUAL))" || \ + $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual && \ + for file in $(MANUAL); do \ + $(INSTALL_DATA) manual/$$file $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/manual; \ + done + + +clean: + -rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o) $(SHARED_SOURCE:.c=.o) + -rm -f -- $(SOURCES:.c=.$(EXTENSION)) + -rm -f -- $(LIBRARY_NAME).o + -rm -f -- $(LIBRARY_NAME).$(EXTENSION) + -rm -f -- $(SHARED_LIB) + +distclean: clean + -rm -f -- $(DISTBINDIR).tar.gz + -rm -rf -- $(DISTBINDIR) + -rm -f -- $(DISTDIR).tar.gz + -rm -rf -- $(DISTDIR) + -rm -f -- $(ORIGDIR).tar.gz + -rm -rf -- $(ORIGDIR) + + +$(DISTBINDIR): + $(INSTALL_DIR) $(DISTBINDIR) + +libdir: all $(DISTBINDIR) + $(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTBINDIR) + $(INSTALL_DATA) $(SOURCES) $(SHARED_SOURCE) $(SHARED_HEADER) $(DISTBINDIR) + $(INSTALL_DATA) $(HELPPATCHES) $(DISTBINDIR) + test -z "$(strip $(EXTRA_DIST))" || \ + $(INSTALL_DATA) $(EXTRA_DIST) $(DISTBINDIR) +# tar --exclude-vcs -czpf $(DISTBINDIR).tar.gz $(DISTBINDIR) + +$(DISTDIR): + $(INSTALL_DIR) $(DISTDIR) + +$(ORIGDIR): + $(INSTALL_DIR) $(ORIGDIR) + +dist: $(DISTDIR) + $(INSTALL_DATA) Makefile $(DISTDIR) + $(INSTALL_DATA) README.txt $(DISTDIR) + $(INSTALL_DATA) LICENSE.txt $(DISTDIR) + $(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd $(DISTDIR) + test -z "$(strip $(ALLSOURCES))" || \ + $(INSTALL_DATA) $(ALLSOURCES) $(DISTDIR) + test -z "$(strip $(wildcard $(ALLSOURCES:.c=.tcl)))" || \ + $(INSTALL_DATA) $(wildcard $(ALLSOURCES:.c=.tcl)) $(DISTDIR) + test -z "$(strip $(SHARED_HEADER))" || \ + $(INSTALL_DATA) $(SHARED_HEADER) $(DISTDIR) + test -z "$(strip $(SHARED_SOURCE))" || \ + $(INSTALL_DATA) $(SHARED_SOURCE) $(DISTDIR) + test -z "$(strip $(PDOBJECTS))" || \ + $(INSTALL_DATA) $(PDOBJECTS) $(DISTDIR) + test -z "$(strip $(HELPPATCHES))" || \ + $(INSTALL_DATA) $(HELPPATCHES) $(DISTDIR) + test -z "$(strip $(EXTRA_DIST))" || \ + $(INSTALL_DATA) $(EXTRA_DIST) $(DISTDIR) + test -z "$(strip $(EXAMPLES))" || \ + $(INSTALL_DIR) $(DISTDIR)/examples && \ + for file in $(EXAMPLES); do \ + $(INSTALL_DATA) examples/$$file $(DISTDIR)/examples; \ + done + test -z "$(strip $(MANUAL))" || \ + $(INSTALL_DIR) $(DISTDIR)/manual && \ + for file in $(MANUAL); do \ + $(INSTALL_DATA) manual/$$file $(DISTDIR)/manual; \ + done + tar --exclude-vcs -czpf $(DISTDIR).tar.gz $(DISTDIR) + +# make a Debian source package +dpkg-source: + debclean + make distclean dist + mv $(DISTDIR) $(ORIGDIR) + tar --exclude-vcs -czpf ../$(ORIGDIR).orig.tar.gz $(ORIGDIR) + rm -f -- $(DISTDIR).tar.gz + rm -rf -- $(DISTDIR) $(ORIGDIR) + cd .. && dpkg-source -b $(LIBRARY_NAME) + +etags: + etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h + +showsetup: + @echo "CC: $(CC)" + @echo "CFLAGS: $(CFLAGS)" + @echo "LDFLAGS: $(LDFLAGS)" + @echo "LIBS: $(LIBS)" + @echo "ALL_CFLAGS: $(ALL_CFLAGS)" + @echo "ALL_LDFLAGS: $(ALL_LDFLAGS)" + @echo "ALL_LIBS: $(ALL_LIBS)" + @echo "PD_INCLUDE: $(PD_INCLUDE)" + @echo "PD_PATH: $(PD_PATH)" + @echo "objectsdir: $(objectsdir)" + @echo "LIBRARY_NAME: $(LIBRARY_NAME)" + @echo "LIBRARY_VERSION: $(LIBRARY_VERSION)" + @echo "SOURCES: $(SOURCES)" + @echo "SHARED_HEADER: $(SHARED_HEADER)" + @echo "SHARED_SOURCE: $(SHARED_SOURCE)" + @echo "SHARED_LIB: $(SHARED_LIB)" + @echo "PDOBJECTS: $(PDOBJECTS)" + @echo "ALLSOURCES: $(ALLSOURCES)" + @echo "ALLSOURCES TCL: $(wildcard $(ALLSOURCES:.c=.tcl))" + @echo "UNAME: $(UNAME)" + @echo "CPU: $(CPU)" + @echo "pkglibdir: $(pkglibdir)" + @echo "DISTDIR: $(DISTDIR)" + @echo "ORIGDIR: $(ORIGDIR)" diff --git a/gemnotes_0.2.3/src/ekext-meta.pd b/gemnotes_0.2.3/src/ekext-meta.pd new file mode 100755 index 0000000..3d50706 --- /dev/null +++ b/gemnotes_0.2.3/src/ekext-meta.pd @@ -0,0 +1,6 @@ +#N canvas 15 49 200 200 10; +#N canvas 25 49 420 300 META 0; +#X text 13 41 NAME ekext; +#X text 10 25 AUTHOR Ed Kelly; +#X text 10 10 VERSION 0.1.3; +#X restore 10 10 pd META; diff --git a/gemnotes_0.2.3/src/gemnotes_countbars.c b/gemnotes_0.2.3/src/gemnotes_countbars.c new file mode 100755 index 0000000..4650d22 --- /dev/null +++ b/gemnotes_0.2.3/src/gemnotes_countbars.c @@ -0,0 +1,255 @@ +#include "m_pd.h" +#include + +static t_class *gemnotes_countbars_class; + +/* list inlet: [rhythm dur vel start] + * when the BPM changes, the offset accumulates the start time of the first + * note, and is subtracted from subsequent inter-onset times + */ + +/* The Gemnotes system can only handle one voice at the moment. */ + +/* this object is probably where key signatures (flatsharp flag) and dynamics + * will be calculated eventually, since it has access to the pitch and + * velocity information + */ + +typedef struct _gemnotes_countbars { + t_object x_obj; + t_atom outlist[5]; + t_float bpm, qtime, divtime, numer, denom; + // int setoffset, iotdiv; + t_float allcount, barcount, barlen, bardiv, iot, offset, rhythm, dur, notedur, nbars; + t_float start, pitch, vel; + t_float prevstart, previot, prevdurt, prevdur, tdiff, polydiff; + t_float outstart; + int ndurs, polycompare, debug; + t_outlet *note, *bars; +} t_gemnotes_countbars; + +/* There are real problems with this algorithm. Firstly it assumes that all notes + * are not polyrhythmic against the basic pulse, so manual editing of the score + * will be necessary if there are polyrhythmic note divisions. Secondly, there can + * only be one voice with chords. + * Perhaps this should all be folded into polyquant, with polyquant + * measuring all 136 MIDI timings internally... + * ...for live input transcription, there would need to be quantization + * of the inter-onset time. + * I need to learn about clocks in PD! + */ + +void gemnotes_countbars_note (t_gemnotes_countbars *z, t_symbol *s, int argc, t_atom *argv) +{ + float newcount = 0; + if(argc == 5) + { + z->prevstart = z->start; + z->prevdur = z->dur; + + z->pitch = atom_getfloat(argv); + z->rhythm = atom_getfloat(argv+1); + z->dur = atom_getfloat(argv+2); + z->vel = atom_getfloat(argv+3); + z->start = atom_getfloat(argv+4); + + z->prevdurt = z->notedur; + z->notedur = z->divtime * z->dur; + + + z->previot = z->iot; + z->iot = z->start - z->prevstart; + + z->tdiff = z->iot - z->prevdurt; + z->outstart = 0; + /* Deal with polyrhythmic notes - a kludge until polyquant is integrated with this object */ + z->polydiff = z->iot / z->divtime; + z->polycompare = (int)z->polydiff; + if(z->tdiff < 2 && z->tdiff > -2 && z->allcount > 0) + { + newcount = z->barcount + z->prevdur; + if(newcount >= z->barlen) + { + z->nbars++; + outlet_float(z->bars, z->nbars); + } + z->barcount = (float)((int)newcount % (int)z->barlen); + z->allcount++; + if(z->debug == 1) post("barcount = %d, barlen = %d, + sign",(int)z->barcount, (int)z->barlen); + z->outstart = -1; + } + else if((float)z->polycompare - z->polydiff < -2) + { + newcount = z->barcount + z->polydiff; + if(newcount >= z->barlen) + { + z->nbars++; + outlet_float(z->bars, z->nbars); + newcount -= z->barlen; + z->barcount = newcount; + } + else if(newcount < z->barlen) + { + z->barcount = newcount; + } + z->outstart = z->barcount; + if(z->debug == 1) post("barcount = %d, barlen = %d, poly",(int)z->barcount, (int)z->barlen); + } + else if(z->iot < 2 && z->allcount > 0) + { + z->outstart = -2; + post("chord"); + } + else if(z->allcount == 0) + { + z->outstart = 0; + z->allcount++; + z->nbars = 1; + outlet_float(z->bars, z->nbars); + post("start"); + } + else if(z->tdiff > 1) + { + //assumes that the inter-onset time is always either 1 duration or more + //this bit will need to be changed for multi-voice scenarios to be supported + //but since it is proportional notation, maybe we can minimize rests + z->ndurs = 1; + while(z->tdiff > 1) + { + z->ndurs++; + z->tdiff -= z->divtime; + } + z->allcount += (float)z->ndurs; + newcount = (float)z->ndurs; + while(newcount >= z->barlen) + { + newcount -= z->barlen; + z->nbars++; + outlet_float(z->bars, z->nbars); + } + newcount += z->barcount; + if(newcount >= z->barlen) + { + z->nbars++; + outlet_float(z->bars, z->nbars); + } + z->barcount = (float)((int)(z->barcount + (float)z->ndurs) % (int)z->barlen); + z->outstart = z->barcount; + if(z->debug == 1) post("barcount = %d, barlen = %d - floatstart",(int)z->barcount, (int)z->barlen); + } + else + { + post("iot:%f,tdiff:%f,prevdur:%f,previot:%f,nomethod",z->iot, z->tdiff, z->prevdurt, z->previot); + } + SETFLOAT(&z->outlist[0], z->outstart); + SETFLOAT(&z->outlist[1], z->pitch); + SETFLOAT(&z->outlist[2], z->dur); + SETFLOAT(&z->outlist[4], z->vel); + outlet_list(z->note, gensym("list"), 5, z->outlist); + } +} + +void gemnotes_countbars_bpm (t_gemnotes_countbars *z, t_floatarg f) +{ + if(f != z->bpm && f > 0) + { + post("Tempo = %f Beats Per-Minute",f); + z->bpm = f; + // z->setoffset = 1; + z->qtime = 60000/f; + z->divtime = z->qtime / (z->bardiv / 4); + z->notedur = z->divtime * z->dur; + } +} + +void gemnotes_countbars_bar (t_gemnotes_countbars *z, t_symbol *s, int argc, t_atom *argv) +{ + if(argc > 2) + { + z->numer = atom_getfloat(argv); + z->denom = atom_getfloat(argv+1); + z->bardiv = atom_getfloat(argv+2); + z->barlen = z->numer / z->denom * z->bardiv; + z->divtime = z->qtime / (z->bardiv / 4); + z->prevdurt = z->divtime; + z->barcount = 0; + post("Bar of %d/%d, divisions: %d", (int)z->numer, (int)z->denom, (int)z->bardiv); + } + else if(argc > 1) + { + z->numer = atom_getfloat(argv); + z->denom = atom_getfloat(argv+1); + z->barlen = z->numer / z->denom * z->bardiv; + z->divtime = z->qtime / (z->bardiv / 4); + z->prevdurt = z->divtime; + z->barcount = 0; + post("Bar of %d/%d, divisions: %d", (int)z->numer, (int)z->denom, (int)z->bardiv); + } + else if(argc > 0) + { + z->numer = atom_getfloat(argv); + z->barlen = z->numer / z->denom * z->bardiv; + z->divtime = z->qtime / (z->bardiv / 4); + z->prevdurt = z->divtime; + z->barcount = 0; + post("Bar of %d/%d, divisions: %d", (int)z->numer, (int)z->denom, (int)z->bardiv); + } +} + +void gemnotes_countbars_debug(t_gemnotes_countbars *z, t_floatarg f) +{ + z->debug = f != 0 ? (int)f : 0; +} + +void gemnotes_countbars_reset(t_gemnotes_countbars *z) +{ + z->allcount = z->barcount = 0; + z->nbars = 1; +} + +void *gemnotes_countbars_new(t_symbol *s, int argc, t_atom *argv) +{ + t_gemnotes_countbars *z = (t_gemnotes_countbars *)pd_new(gemnotes_countbars_class); + int i; + for(i=0;i<5;i++) SETFLOAT(&z->outlist[i], 0); + + z->bpm = 120; + z->numer = 4; + z->denom = 4; + z->bardiv = 16; + // args: bpm, numer, denom, div + if(argc > 0) z->bpm = atom_getfloat(argv); + if(argc > 1) z->numer = atom_getfloat(argv+1); + if(argc > 2) z->denom = atom_getfloat(argv+2); + if(argc > 3) z->bardiv = atom_getfloat(argv+3); + + z->qtime = 60000/z->bpm; + z->divtime = z->qtime / (z->bardiv / z->denom); + z->prevdurt = z->divtime; + + z->barlen = z->numer / z->denom * z->bardiv; + z->barcount = z->allcount = 0; + z->previot = 0; + z->prevstart = -125; + z->nbars = 1; + z->note = outlet_new(&z->x_obj, gensym("list")); + z->bars = outlet_new(&z->x_obj, gensym("float")); + + return(void *)z; +} + +void gemnotes_countbars_setup(void) +{ + gemnotes_countbars_class = class_new(gensym("gemnotes_countbars"), + (t_newmethod)gemnotes_countbars_new, + 0, sizeof(t_gemnotes_countbars), + 0, A_GIMME, 0); + post("gemnotes_countbars - yu need this for realtime notation..."); + post("version 0.4...by Ed Kelly 2010 - morph_2016@yahoo.co.uk"); + + class_addmethod(gemnotes_countbars_class, (t_method)gemnotes_countbars_note, gensym("note"), A_GIMME, 0); + class_addmethod(gemnotes_countbars_class, (t_method)gemnotes_countbars_bar, gensym("bar"), A_GIMME, 0); + class_addmethod(gemnotes_countbars_class, (t_method)gemnotes_countbars_bpm, gensym("bpm"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_countbars_class, (t_method)gemnotes_countbars_reset, gensym("reset"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_countbars_class, (t_method)gemnotes_countbars_debug, gensym("debug"), A_DEFFLOAT, 0); +} diff --git a/gemnotes_0.2.3/src/gemnotes_counter-help.pd b/gemnotes_0.2.3/src/gemnotes_counter-help.pd new file mode 100755 index 0000000..e4ae13a --- /dev/null +++ b/gemnotes_0.2.3/src/gemnotes_counter-help.pd @@ -0,0 +1,68 @@ +#N canvas 0 0 590 490 10; +#X obj 190 141 gemnotes_counter; +#X floatatom 23 209 5 0 0 3 offset - -; +#X floatatom 62 209 5 0 0 3 rhythm - -; +#X floatatom 102 210 5 0 0 3 duration - -; +#X floatatom 158 210 5 0 0 3 grouplen - -; +#X floatatom 212 210 5 0 0 3 groupcount - -; +#X floatatom 290 207 5 0 0 3 rest_offset - -; +#X floatatom 361 208 5 0 0 3 rest_rhythm - -; +#X obj 259 173 tgl 15 0 empty empty beam -2 21 0 10 -262144 -1 -1 0 +1; +#X obj 236 173 tgl 15 0 empty empty tie -2 21 0 10 -262144 -1 -1 0 +1; +#X obj 401 190 bng 15 250 50 0 empty empty newbar -3 21 0 10 -262144 +-1 -1; +#X obj 116 36 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 176 39 f; +#X floatatom 191 24 5 0 0 0 - - -; +#X obj 176 22 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X msg 245 37 bar 4 4 4 16; +#X msg 258 57 bar 6 8 6 16 4 16 2 16; +#X msg 249 91 step 1; +#X msg 314 93 step 2; +#X msg 362 94 allstep 0.11; +#X msg 363 115 allstep 0.18; +#X obj 97 281 cnv 15 300 150 empty empty gemnotes_milestones 20 12 +0 14 -204800 -13330 0; +#X text 123 309 Phase 1: build prototype objects.; +#X text 123 327 Phase 2: build prototype objectmakers; +#X text 124 345 Phase 3: build gemnotes_counter; +#X text 124 364 Phase 4: Implement and debug counter object; +#X text 125 382 Phase 5: build and link to score translator; +#X text 125 399 Phase 6: rehearse and perform Islands 1; +#X obj 103 309 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 103 327 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 103 345 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 103 363 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 103 381 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 103 399 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 406 345 September - December 2010; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 0; +#X connect 0 3 4 0; +#X connect 0 4 5 0; +#X connect 0 5 9 0; +#X connect 0 6 8 0; +#X connect 0 7 6 0; +#X connect 0 8 7 0; +#X connect 0 9 10 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 12 1; +#X connect 14 0 12 0; +#X connect 15 0 0 0; +#X connect 16 0 0 0; +#X connect 17 0 0 0; +#X connect 18 0 0 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; diff --git a/gemnotes_0.2.3/src/gemnotes_counter.c b/gemnotes_0.2.3/src/gemnotes_counter.c new file mode 100755 index 0000000..595e605 --- /dev/null +++ b/gemnotes_0.2.3/src/gemnotes_counter.c @@ -0,0 +1,1267 @@ +/* Gemnotes_counter is a beat, beamgroup and bar counter for the gemnotes system. + * It is used to count the elements of music notation, and to send commands to + * dynamic object makers to render notes, rests, time signatures and barlines. + * It keeps track of the number of obects created, and whether objects are linked + * together (such as beamed groups of notes). + * BSD license + */ + +#include "m_pd.h" +#include + +static int gemnotes_counter_splits[6][33] = { + /* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 */ + {0,1,2,3,4,3,6,4,8,6,6, 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, + {0,0,0,0,0,2,0,3,0,3,4, 3, 4, 3, 6, 4, 8, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, + {0,0,0,0,0,0,0,0,0,0,0, 0, 0, 2, 0, 3, 0, 3, 6, 3, 4, 3, 6, 4, 8, 6, 8, 8, 8, 8, 8, 8, 8}, + {0,0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0, 3, 2, 3, 4, 3, 6, 4, 8}, + {0,0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 3, 0}, + {0,0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, +}; + +t_class *gemnotes_counter_class; + +typedef struct gemnotes_counter +{ + t_object x_obj; + t_atom groups[128]; + t_atom keysig[7]; + t_atom temposign[3]; + t_atom dynamics[5]; + t_atom terrace[2]; + t_float articulation; +// t_float artnote; + int numgroups, nowgroup, beforerest;//, lastgroup; + t_float allcount, allstep; + t_float barcount, barlen, barrem, numerator, denominator, nextnumer, nextdenom; + t_float groupcount, grouplen, groupnum, groupdiv, grouprem, gnoterem, bnotecount; + t_float stepdiv, rhythm, duration, beam, tied, step, rrest, tailon; + t_float objects, initobjects, groupobject, barlast; + t_float barnotes, barrests, barpos, restlen, lastdur; + t_float tempo, stavelen, fstavenum, group_id; + int stavenum; + t_float fractional, offset, initoffset, keyset, rested, prevrested, polyrhythm; + t_outlet *off, *rhy, *dur, *grp, *gcount, *tie, *bm, *rest, *rhyrest, *bar, *slave, *numer, *denom, *g_obj, *tail, *tuple, *bpm, *n_obj, *debugger, *groupid, *artic, *dyn;//, *stave; +} t_gemnotes_counter; + +void gemnotes_counter_bang(t_gemnotes_counter *z) +/* This function inserts a note at the current position, then makes any adjustments + * needed for the next beamgroups and bars etc. It also generates tie signals, + * and indicates whether tuples are being used */ +{ +// outlet_float(z->artic, z->articulation); +// z->articulation = 0; + z->gnoterem = z->grouprem / z->stepdiv; + float zpoly, polydiv; + int ipoly, gdiv, prevstave; + float chunk = z->step; + float thischunk, thatchunk, maxchunk, tail; + float prevnumer, prevdenom; + int i, j, x, y; + while(chunk > 0) + { +// z->rested = 0; + thischunk = z->gnoterem <= chunk ? z->gnoterem : chunk; + thischunk = thischunk > 32 ? 32 : thischunk; + chunk -= thischunk; + z->beam = z->groupcount > 0 && z->groupdiv >= 8 ? 1 : 0; + i = (int)thischunk; + for(j=0;j<6;j++) + { + x = gemnotes_counter_splits[j][i]; + if(x > 0) + { + /* prevstave = z->stavenum; + z->stavenum = (int)((z->allcount*z->allstep+z->offset) / z->stavelen); + z->fstavenum = (float)z->stavenum; + outlet_float(z->stave,z->fstavenum); + if(z->stavenum > prevstave) + { + z->objects = z->initobjects; + z->groupobject = z->objects; + z->groupnum -= z->groupcount; + z->groupcount = 0; + z->beam = 0; + z->allcount = 0; + } */ + z->tailon = z->grouprem <= z->step && z->rested == 1 || z->groupcount == z->groupnum - 1 && z->rested == 1 ? 1 : 0; + thischunk -= (float)x; + z->tied = chunk > 0 || thischunk > 0 ? 1 : 0; + + z->barlast = 0; + outlet_float(z->groupid,z->group_id); + outlet_float(z->n_obj, z->objects); + outlet_float(z->tuple, z->polyrhythm); + if(z->beam == 0) + { + z->groupobject = z->objects; + outlet_float(z->g_obj, z->objects); + } + outlet_float(z->artic, z->articulation); + z->articulation = 0; + outlet_float(z->tail, z->tailon); + z->objects++; + outlet_float(z->bm, z->beam); + outlet_float(z->tie, z->tied); + outlet_float(z->gcount, z->groupcount); + outlet_float(z->grp, z->groupnum); + outlet_float(z->dur, (float)x); + outlet_float(z->rhy, z->rhythm); + outlet_float(z->off, z->allcount*z->allstep+z->offset); + thatchunk = (float)x * z->stepdiv; + maxchunk = thatchunk > 16 ? 16 : thatchunk; + z->allcount += maxchunk; + z->barcount += thatchunk; + z->barrem -= thatchunk; + // z->barnotes += thatchunk; + z->groupcount += (float)x; + z->grouprem -= thatchunk; + z->lastdur = thatchunk; + z->prevrested = z->rested; + z->rested = 0; + } + } + if(z->barrem < 1 && z->allcount > 0 && z->barlast == 0) + { + z->group_id++; + z->barlast = 1; + outlet_float(z->groupid, z->group_id); + outlet_float(z->n_obj, z->objects); + // z->barpos += (z->barnotes + z->barrests) * z->allstep; + maxchunk = z->lastdur > 16 ? 16 : z->lastdur; + z->barpos = (z->allcount - (maxchunk / 2)) * z->allstep + z->offset; + // This is the alternative barpos method, if the other one can't be made to work. + z->objects++; + outlet_float(z->bar, z->barpos); + z->barnotes = z->barrests = 0; + if(z->nextnumer) + { + prevnumer = z->numerator; + prevdenom = z->denominator; + z->numerator = z->nextnumer; + if(z->nextdenom) + { + z->denominator = z->nextdenom; + } + if(z->numerator != prevnumer || z->denominator != prevdenom) + { + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->denom, z->denominator); + outlet_float(z->numer, z->numerator); + } + z->nextnumer = z->nextdenom = 0; + z->barlen = (64 / z->denominator) * z->numerator; + } + z->nowgroup = 0; + z->groupcount = 0; + z->barcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = (int)z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->barrem = z->barlen; + } + else if(z->grouprem < 1) + { + z->group_id++; + outlet_float(z->groupid, z->group_id); + z->nowgroup = (z->nowgroup + 1) % z->numgroups; + z->groupcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = (int)z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + } + } + outlet_float(z->debugger, z->allcount*z->allstep+z->offset); +} + +void gemnotes_counter_float(t_gemnotes_counter *z, t_floatarg f) +/* this function inserts rests if the float is different from the current position, + * also a barline if the float is less than the current position within the bar. + * Otherwise it inserts a note at the current position if the float is the same (sic)*/ +{ + z->gnoterem = z->grouprem / z->stepdiv; + int i, j, x; + float fpos = f * z->stepdiv; + int ipoly, gdiv, prevstave; + float zpoly, polydiv; + float chunk, thischunk, thatchunk, maxchunk, prevnumer, prevdenom; + if(fpos != z->barcount) + { + if(fpos < z->barcount) + { + // z->beam = 0; + j = 0; + chunk = (z->barrem + fpos) / z->stepdiv; + z->barpos += ((z->barrem / z->stepdiv) * z->restlen + z->barnotes) * z->allstep; + while(chunk > 0) + { + z->barlast = 0; + thischunk = z->gnoterem <= chunk ? z->gnoterem : chunk; + thischunk = thischunk > 32 ? 32 : thischunk; + chunk -= thischunk; + i = (int)thischunk; + for(j=0;j<6;j++) + { + x = gemnotes_counter_splits[j][i]; + if(x > 0) + { + /* prevstave = z->stavenum; + z->stavenum = (int)((z->allcount*z->allstep+z->offset) / z->stavelen); + z->fstavenum = (float)z->stavenum; + outlet_float(z->stave,z->fstavenum); + if(z->stavenum > prevstave) + { + z->objects = z->initobjects; + z->groupobject = z->objects; + z->groupnum -= z->groupcount; + z->groupcount = 0; + z->allcount = 0; + } + if(z->rested == 0 && z->prevrested == 1) + { + z->tailon = z->groupobject; + outlet_float(z->tail, z->tailon); + } */ + z->prevrested = z->rested; + z->rested = 1; + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->tuple, z->polyrhythm); + outlet_float(z->rhyrest, z->rhythm); + outlet_float(z->dur, (float)x); + outlet_float(z->rest, z->allcount*z->allstep + z->offset); + thatchunk = (float)x * z->stepdiv; + z->allcount += thatchunk * z->restlen; + // z->barrests += thatchunk * z->restlen; + z->barcount += thatchunk; + z->barrem -= thatchunk; + z->groupcount += (float)x; + thischunk -= (float)x; + z->grouprem -= thatchunk; + z->lastdur = thatchunk * z->restlen; + z->rested = 1; + } + } + if(z->barrem < 1 && z->barlast == 0) //&& z->allcount > 0) + { + z->group_id++; + outlet_float(z->groupid, z->group_id); + outlet_float(z->n_obj, z->objects); + z->barlast = 1; + z->objects++; + maxchunk = z->lastdur > 16 ? 16 : z->lastdur; + z->barpos = (z->allcount - (maxchunk / 2)) * z->allstep + z->offset; + // z->barpos += (z->barnotes + z->barrests) * z->allstep; + outlet_float(z->bar, z->barpos); + z->barnotes = z->barrests = 0; + if(z->nextnumer) + { + prevnumer = z->numerator; + prevdenom = z->denominator; + z->numerator = z->nextnumer; + if(z->nextdenom) + { + z->denominator = z->nextdenom; + } + if(z->numerator != prevnumer || z->denominator != prevdenom) + { + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->denom, z->denominator); + outlet_float(z->numer, z->numerator); + } + z->nextnumer = z->nextdenom = 0; + z->barlen = (64 / z->denominator) * z->numerator; + } + + z->nowgroup = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->stepdiv = 64 / z->groupdiv; + z->barcount = fpos * z->stepdiv; + z->barrem = z->barlen - z->barcount; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->groupnum - fpos; + if(z->grouprem <= 0) // a horrible kludge!!!recursion needed + { + z->nowgroup = (z->nowgroup + 1) % z->numgroups; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->groupnum - (0 - fpos); + if(z->grouprem <= 0) + { + z->nowgroup = (z->nowgroup + 1) % z->numgroups; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->groupnum - (0 - z->grouprem); + } + } + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->groupcount = 0; + z->polyrhythm = 0; + gdiv = (int)z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + } + else if(z->grouprem < 1) + { + z->group_id++; + outlet_float(z->groupid, z->group_id); + z->nowgroup = (z->nowgroup + 1) % z->numgroups; + z->groupcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->polyrhythm = 0; + gdiv = (int)z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + } + } + } + else if(fpos > z->barcount) + { + z->beam = 0; + chunk = (fpos - z->barcount) / z->stepdiv; + while(chunk > 0) + { + thischunk = z->gnoterem <= chunk ? z->gnoterem : chunk; + thischunk = thischunk > 32 ? 32 : thischunk; + chunk -= thischunk; + i = (int)thischunk; + for(j=0;j<6;j++) + { + x = gemnotes_counter_splits[j][i]; + if(x > 0) + { + z->barlast = 0; + /* prevstave = z->stavenum; + z->stavenum = (int)((z->allcount*z->allstep+z->offset) / z->stavelen); + z->fstavenum = (float)z->stavenum; + outlet_float(z->stave,z->fstavenum); + if(z->stavenum > prevstave) + { + z->objects = z->initobjects; + z->groupobject = z->objects; + z->groupnum -= z->groupcount; + z->groupcount = 0; + z->allcount = 0; + } */ + if(z->rested == 0 && z->prevrested == 1) + { + z->tailon = z->groupobject; + outlet_float(z->tail, z->tailon); + } + z->prevrested = z->rested; + z->rested = 1; + outlet_float(z->groupid, z->group_id); + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->tuple, z->polyrhythm); + outlet_float(z->rhyrest, z->rhythm); + outlet_float(z->dur, (float)x); + outlet_float(z->rest, z->allcount*z->allstep + z->offset); + thatchunk = (float)x * z->stepdiv; + z->allcount += thatchunk * z->restlen; + // z->barrests += thatchunk * z->restlen; + z->barcount += thatchunk; + z->barrem -= thatchunk; + z->groupcount += (float)x; + thischunk -= (float)x; + z->grouprem -= thatchunk; + z->lastdur = thatchunk * z->restlen; + } + } + if(z->grouprem < 1) + { + z->group_id++; + outlet_float(z->groupid, z->group_id); + z->nowgroup = (z->nowgroup + 1) % z->numgroups; + z->groupcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = (int)z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + } + } + } + } +/* the entire "bang" routine */ + chunk = z->step; + while(chunk > 0) + { + thischunk = z->gnoterem <= chunk ? z->gnoterem : chunk; + thischunk = thischunk > 32 ? 32 : thischunk; + chunk -= thischunk; + /* if(z->rested == 1) + { + z->groupnum -= z->groupcount; + z->groupcount = 0; + } */ + z->beam = z->grouprem && z->groupcount > 0 && z->groupdiv >= 8 ? 1 : 0; + i = (int)thischunk; + for(j=0;j<6;j++) + { + x = gemnotes_counter_splits[j][i]; + if(x > 0) + { + /* prevstave = z->stavenum; + z->stavenum = (int)((z->allcount*z->allstep+z->offset) / z->stavelen); + z->fstavenum = (float)z->stavenum; + outlet_float(z->stave,z->fstavenum); + if(z->stavenum > prevstave) + { + z->objects = z->initobjects; + z->groupobject = z->objects; + z->groupnum -= z->groupcount; + z->groupcount = 0; + z->beam = 0; + z->allcount = 0; + } */ + z->tailon = z->grouprem <= z->step && z->rested == 1 || z->groupcount == z->groupnum - 1 && z->rested == 1 ? 1 : 0; + thischunk -= (float)x; + z->tied = chunk > 0 || thischunk > 0 ? 1 : 0; + + z->barlast = 0; + outlet_float(z->n_obj, z->objects); + outlet_float(z->tuple, z->polyrhythm); + if(z->beam == 0) + { + z->groupobject = z->objects; + outlet_float(z->g_obj, z->objects); + } + outlet_float(z->artic, z->articulation); + z->articulation = 0; + outlet_float(z->tail, z->tailon); + z->objects++; + outlet_float(z->bm, z->beam); + outlet_float(z->tie, z->tied); + outlet_float(z->gcount, z->groupcount); + outlet_float(z->grp, z->groupnum); + outlet_float(z->dur, (float)x); + outlet_float(z->rhy, z->rhythm); + outlet_float(z->off, z->allcount*z->allstep+z->offset); + thatchunk = (float)x * z->stepdiv; + maxchunk = thatchunk > 16 ? 16 : thatchunk; + z->allcount += maxchunk; + z->barcount += thatchunk; + z->barrem -= thatchunk; + // z->barnotes += thatchunk; + z->groupcount += (float)x; + z->grouprem -= thatchunk; + z->prevrested = z->rested; + z->rested = 0; + z->lastdur = thatchunk * z->restlen; + } + } + if(z->barrem < 1 && z->allcount > 0 && z->barlast == 0) + { + z->barlast = 1; + z->group_id++; + outlet_float(z->groupid, z->group_id); + outlet_float(z->n_obj, z->objects); + maxchunk = z->lastdur > 16 ? 16 : z->lastdur; + z->barpos = (z->allcount - (maxchunk / 2)) * z->allstep + z->offset; + // z->barpos += (z->barnotes + z->barrests) * z->allstep; + z->objects++; + outlet_float(z->bar, z->barpos); + z->barnotes = z->barrests = 0; + if(z->nextnumer) + { + prevnumer = z->numerator; + prevdenom = z->denominator; + z->numerator = z->nextnumer; + if(z->nextdenom) + { + z->denominator = z->nextdenom; + } + if(z->numerator != prevnumer || z->denominator != prevdenom) + { + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->denom, z->denominator); + outlet_float(z->numer, z->numerator); + } + z->nextnumer = z->nextdenom = 0; + z->barlen = (64 / z->denominator) * z->numerator; + } + z->nowgroup = 0; + z->groupcount = 0; + z->barcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = (int)z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->barrem = z->barlen; + } + else if(z->grouprem < 1) + { + z->group_id++; + outlet_float(z->groupid, z->group_id); + + z->nowgroup = (z->nowgroup + 1) % z->numgroups; + z->groupcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = (int)z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + } + } + outlet_float(z->debugger, z->allcount*z->allstep+z->offset); +} + +void gemnotes_counter_bar(t_gemnotes_counter *z, t_symbol *s, int argc, t_atom *argv) +{ + z->gnoterem = z->grouprem / z->stepdiv; + int i, j, x, y, ipoly; + int scope = (int)((float)argc * 0.5); + // post("scope = %d", scope); + float chunk, thischunk, thatchunk, maxchunk, zpoly; + float num, div, prevnumer, prevdenom; + j = 0; + // make a rests function for a whole bar, or the rest of the bar, and a barline; + chunk = z->barrem / z->stepdiv; + // post("chunk = %f",chunk); + z->barpos += (z->barnotes + ((z->barrem / z->stepdiv) * z->restlen) * z->allstep); + if(z->allcount > 0) + { + /* while(chunk > 0) + { + thischunk = z->gnoterem <= chunk ? z->gnoterem : chunk; + thischunk = thischunk > 32 ? 32 : thischunk; + chunk -= thischunk; + i = (int)thischunk; + // post("i = %d",i); + + for(j=0;j<6;j++) + { + x = gemnotes_counter_splits[j][i]; + // post("x = %d",x); + if(x > 0) + { + if(z->rested == 0 && z->objects == z->groupobject) + { + z->tailon = z->groupobject; + outlet_float(z->tail, z->tailon); + } + z->rested = 1; + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->tuple, z->polyrhythm); + outlet_float(z->rhyrest, z->rhythm); + outlet_float(z->dur, (float)x); + outlet_float(z->rest, z->allcount*z->allstep + z->offset); + + thatchunk = (float)x * z->stepdiv; + z->allcount += thatchunk * z->restlen; + z->barcount += thatchunk; + z->barrem -= thatchunk; + z->groupcount += (float)x; + thischunk -= (float)x; + z->grouprem -= thatchunk; + } + } + } */ + if(z->barlast == 0) + { + z->barlast = 1; + outlet_float(z->n_obj, z->objects); + z->objects++; + maxchunk = z->lastdur > 16 ? 16 : z->lastdur; + z->barpos = (z->allcount - (maxchunk / 2)) * z->allstep + z->offset; + outlet_float(z->bar, z->barpos); + z->barnotes = z->barrests = 0; + } + } + if(argc) + { + prevnumer = z->numerator; + prevdenom = z->denominator; + z->numerator = atom_getfloat(argv); + if(argc > 1) + { + z->denominator = atom_getfloat(argv+1); + z->numgroups = 0; + if(scope > 1) + { + for(i = 0;i < scope - 1;i++) + { + j = i + 1; + num = atom_getfloat(argv+(j*2)); + div = atom_getfloat(argv+(j*2+1)); + SETFLOAT(&z->groups[i*2],num); + SETFLOAT(&z->groups[i*2+1],div); + z->numgroups++; + } + } + } + if(z->numerator != prevnumer || z->denominator != prevdenom || z->allcount == 0) + { + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->denom, z->denominator); + outlet_float(z->numer, z->numerator); + } + z->barlen = (64 / z->denominator) * z->numerator; + } + z->nowgroup = 0; + z->groupcount = 0; + z->barcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->barrem = z->barlen; + outlet_float(z->debugger, z->allcount*z->allstep+z->offset); +} + +void gemnotes_counter_articulation(t_gemnotes_counter *z, t_floatarg art) +{ + z->articulation = art; +} + +void gemnotes_counter_dyn(t_gemnotes_counter *z, t_symbol *s, int argc, t_atom *argv) +{ + float terraced = 0; + float dynfirst = 0; + float dynlen = 0; + float dynlast = 0; + float hairpin = 0; + switch(argc) + // outlet_list(x->mapout, gensym("list"), x->max+1, x->x_map.nomap); + + { + case 1: + terraced = atom_getfloat(argv); + SETFLOAT(&z->terrace[0], z->allcount*z->allstep+z->offset); + SETFLOAT(&z->terrace[1], terraced); + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_list(z->dyn, gensym("list"), 2, z->terrace); + break; + case 3: + dynfirst = atom_getfloat(argv); + dynlen = atom_getfloat(argv+1) * z->stepdiv * z->allstep; + dynlast = atom_getfloat(argv+2); + hairpin = dynfirst > dynlast ? 0 : 1; + SETFLOAT(&z->dynamics[0], z->allcount*z->allstep+z->offset); + SETFLOAT(&z->dynamics[1], dynfirst); + SETFLOAT(&z->dynamics[2], dynlen); + SETFLOAT(&z->dynamics[3], dynlast); + SETFLOAT(&z->dynamics[4], hairpin); //bt + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_list(z->dyn, gensym("list"), 5, z->dynamics); +// outlet_float(z->off, z->allcount*z->allstep+z->offset); + break; + default: + break; + } +} + +// new method 6-1-11 +void gemnotes_counter_groups(t_gemnotes_counter *z, t_symbol *s, int argc, t_atom *argv) +{ + float argc2 = (float)argc * 0.5; + int iargc2 = (int)argc2; + int i,j,k; + z->numgroups = iargc2; + j = 0; + k = 0; + float num, div; + num = 4; + div = 16; + if(iargc2) + { + for(i=0;igroups[j],num); + SETFLOAT(&z->groups[k],div); + } + if((float)iargc2 < argc2) + { + z->numgroups++; + num = atom_getfloat(argv+(argc-1)); + SETFLOAT(&z->groups[j],num); + SETFLOAT(&z->groups[k],div); + } + } + else if(argc2) + { + num = atom_getfloat(argv); + div = 16; + SETFLOAT(&z->groups[j],num); + SETFLOAT(&z->groups[k],div); + } + z->nowgroup = 0; + z->groupcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; +} + +void gemnotes_counter_group(t_gemnotes_counter *z, t_floatarg f1, t_floatarg f2) +{ + int ipoly, gdiv, i; + float zpoly, polydiv; + if(f1 && f2) + { + z->groupcount = 0; + z->groupnum = f1; + z->groupdiv = f2; + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->polyrhythm = 0; + gdiv = z->groupdiv; + z->group_id++; + outlet_float(z->groupid, z->group_id); + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + } +} + +void gemnotes_counter_rest(t_gemnotes_counter *z, t_symbol *s, int argc, t_atom *argv) +{ + z->gnoterem = z->grouprem / z->stepdiv; + + float chunk, thischunk, thatchunk, prevnumer, prevdenom; + int i, j, x; + float zpoly, polydiv; + int ipoly, gdiv, prevstave; + float rdur = argc > 0 ? atom_getfloat(argv) : z->step; + z->restlen = argc > 1 ? atom_getfloat(argv+1) : z->restlen; + if(rdur > 0) + { + if(z->rested == 0 && z->prevrested == 1) + { + z->tailon = z->groupobject; + outlet_float(z->tail, z->tailon); + } + z->beam = 0; + j = 0; + chunk = rdur; + while(chunk > 0) + { + thischunk = z->gnoterem <= chunk ? z->gnoterem : chunk; + thischunk = thischunk > 32 ? 32 : thischunk; + chunk -= thischunk; + i = (int)thischunk; + x = gemnotes_counter_splits[j][i]; + if(x > 0) + { + /* prevstave = z->stavenum; + z->stavenum = (int)((z->allcount*z->allstep+z->offset) / z->stavelen); + z->fstavenum = (float)z->stavenum; + outlet_float(z->stave,z->fstavenum); + if(z->stavenum > prevstave) + { + z->objects = z->initobjects; + z->groupobject = z->objects; + outlet_float(z->g_obj, z->objects); + z->allcount = 0; + } */ + z->barlast = 0; + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->tuple, z->polyrhythm); + outlet_float(z->rhyrest, z->rhythm); + outlet_float(z->dur, (float)x); + outlet_float(z->rest, z->allcount*z->allstep+z->offset); + thatchunk = (float)x * z->stepdiv; + z->allcount += thatchunk * z->restlen; + z->lastdur = thatchunk * z->restlen; + // z->barrests += thatchunk * z->restlen; + z->barcount += thatchunk; + z->barrem -= thatchunk; + z->groupcount += (float)x; + thischunk -= (float)x; + z->grouprem -= thatchunk; + z->prevrested = z->rested; + z->rested = 1; + } + if(z->barrem < 1 && z->barlast == 0) + { + z->barlast = 1; + outlet_float(z->n_obj, z->objects); + // z->barpos += (z->barnotes + z->barrests) * z->allstep; + z->barpos = (z->allcount - (z->lastdur / 2)) * z->allstep + z->offset; + z->objects++; + outlet_float(z->bar, z->barpos); + z->barnotes = z->barrests = 0; + if(z->nextnumer) + { + prevnumer = z->numerator; + prevdenom = z->denominator; + z->numerator = z->nextnumer; + if(z->nextdenom) + { + z->denominator = z->nextdenom; + } + if(z->numerator != prevnumer || z->denominator != prevdenom) + { + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_float(z->denom, z->denominator); + outlet_float(z->numer, z->numerator); + } + z->nextnumer = z->nextdenom = 0; + z->barlen = (64 / z->denominator) * z->numerator; + } + + z->nowgroup = 0; + z->groupcount = 0; + z->barcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->barrem = z->barlen; + } + else if(z->grouprem < 1) + { + z->nowgroup = (z->nowgroup + 1) % z->numgroups; + z->groupcount = 0; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + // polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + // polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + post("ipoly = %d, zpoly = %f",ipoly,zpoly); + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + } + } + } + outlet_float(z->debugger, z->allcount*z->allstep+z->offset); +} + +void gemnotes_counter_nextbar(t_gemnotes_counter *z, t_symbol *s, int argc, t_atom *argv) +{ + if(argc) + { + z->nextnumer = atom_getfloat(argv); + if(argc > 1) z->nextdenom = atom_getfloat(argv+1); + else z->nextdenom = z->denominator; + } +} + +void gemnotes_counter_tempo(t_gemnotes_counter *z, t_symbol *s, int argc, t_atom *argv) +{ + float thisoffset, thisbpm, thisrhythm, thatbpm, thatrhythm; + thisrhythm = 4; + thisoffset = z->allcount*z->allstep; + if(argc) + { + thisbpm = atom_getfloat(argv); + if(argc > 1) + { + thisrhythm = atom_getfloat(argv+1); + } + // else thisrhythm = atom_getfloatarg(1,2,z->temposign); + // thatbpm = atom_getfloatarg(0,2,z->temposign); + // thatrhythm = atom_getfloatarg(1,2,z->temposign); + // if(thisbpm != thatbpm || thisrhythm != thatrhythm) + // { + outlet_float(z->n_obj, z->objects); + z->objects++; + // if(z->allcount == 0) + SETFLOAT(&z->temposign[0],thisoffset); + // else if (z->allcount > 0) SETFLOAT(&z->temposign[0],z->allcount*z->allstep+z->offset); + SETFLOAT(&z->temposign[1],thisbpm); + SETFLOAT(&z->temposign[2],thisrhythm); + outlet_list(z->bpm, gensym("list"), 3, z->temposign); + // } + } + post("thisoffset = %f", thisoffset); +} + +void gemnotes_counter_debug(t_gemnotes_counter *z, t_floatarg f) +{ + post("numer = %d,denom = %d,groupnum = %d,groupdiv = %d",(int)z->numerator,(int)z->denominator,(int)z->groupnum,(int)z->groupdiv); + post("allcount = %d, barcount = %d, groupcount = %d",(int)z->allcount,(int)z->barcount,(int)z->groupcount); + post("barlen = %d,barrem = %d,grouplen = %d,grouprem = %d",(int)z->barlen,(int)z->barrem,(int)z->grouplen,(int)z->grouprem); + int i = f; + int j, x; + for(j=0;j<6;j++) + { + x = gemnotes_counter_splits[j][i]; + post("j = %d, i = %d, x = %d",j,i,x); + } +} + +void gemnotes_counter_step(t_gemnotes_counter *z, t_floatarg f) +{ + z->step = f; + z->fractional = ((int)(z->step * 100) % 100) != 0 ? 1 : 0; +} + +void gemnotes_counter_offset(t_gemnotes_counter *z, t_floatarg f) +{ + if(f) + { + z->offset += f; + } + else if(!f) + { + z->offset = z->initoffset; + } +} + +void gemnotes_counter_chord(t_gemnotes_counter *z) +{ + outlet_float(z->artic, z->articulation); + z->articulation = 0; + outlet_float(z->n_obj, z->objects); + z->objects++; + outlet_bang(z->slave); +} + +void gemnotes_counter_hdsq(t_gemnotes_counter *z, t_floatarg f) +{ + if(f) + { + z->offset += z->allcount * z->allstep; + z->allstep = f; + z->allcount = 0; + } + else if(!f) + { + z->offset += z->allcount * z->allstep; + z->allstep = 0.15; + z->allcount = 0; + } +} + +void gemnotes_counter_reset(t_gemnotes_counter *z) +{ + int gdiv, ipoly, i; + float zpoly, polydiv; + z->group_id = 0; + z->allcount = 0; + z->nowgroup = 0; + z->groupcount = 0; + z->barcount = 0; + z->barnotes = z->barrests = z->barpos = 0; + z->offset = z->initoffset; + z->objects = z->initobjects; + z->groupnum = atom_getfloatarg(z->nowgroup * 2, 128, z->groups); + z->groupdiv = atom_getfloatarg(z->nowgroup * 2 + 1, 128, z->groups); + z->polyrhythm = 0; + gdiv = z->groupdiv; + if(gdiv != 64 && gdiv != 32 && gdiv != 16 && gdiv != 8 && gdiv != 4 && gdiv != 2 && gdiv != 1) + { + polydiv = 1; + zpoly = z->groupdiv; + ipoly = (int)zpoly; + + for(i=0;i<7;i++) + { + polydiv *= 0.5; + zpoly *= 0.5; + ipoly = (int)zpoly; + if(fabs(zpoly - (float)ipoly) < 0.1) z->polyrhythm = zpoly; + } + } + z->stepdiv = 64 / z->groupdiv; + z->grouplen = z->groupnum * z->stepdiv; + z->grouprem = z->grouplen; + z->rhythm = z->groupdiv >= 64 ? 64 : z->groupdiv >= 32 ? 32 : z->groupdiv >= 16 ? 16 : z->groupdiv >= 8 ? 8 : z->groupdiv >= 4 ? 4 : z->groupdiv >= 2 ? 2 : 1; + z->barrem = z->barlen; + // z->stavenum = 0; + // outlet_float(z->stave,0); + outlet_float(z->debugger, z->allcount); +} + +void *gemnotes_counter_new(t_symbol *s, int argc, t_atom *argv) +{ + t_gemnotes_counter *z = (t_gemnotes_counter *)pd_new(gemnotes_counter_class); + int i; + for(i=0;i<128;i++) + { + SETFLOAT(&z->groups[i],0); + } + SETFLOAT(&z->groups[0],4); + SETFLOAT(&z->groups[1],16); + + SETFLOAT(&z->temposign[0],0); + SETFLOAT(&z->temposign[1],120); + SETFLOAT(&z->temposign[2],4); + + z->group_id = 0; + z->numgroups = 1; + z->nowgroup = 0; + // z->lastgroup = 0; + z->stepdiv = 4; + z->allstep = 0.15; + z->allcount = z->barcount = z->groupcount = 0; + z->step = 1; + z->barrem = z->barlen = 48; + + z->grouprem = z->grouplen = 16; + z->groupnum = 4; + z->groupdiv = 16; + + z->barnotes = 0; + z->barrests = 0; + z->barpos = 0; + z->barlast = 0; + z->restlen = 0.5; + + z->beam = z->tied = 0; + z->rhythm = 16; + + z->numerator = argc > 0 ? atom_getfloat(argv) : 3; + z->denominator = argc > 1 ? atom_getfloat(argv+1) : 4; + z->nextnumer = z->nextdenom = 0; + + z->initobjects = argc > 2 ? atom_getfloat(argv+2) : 0; + z->objects = z->initobjects; + z->initoffset = argc > 3 ? atom_getfloat(argv+3) : 0; + z->offset = z->initoffset; + z->groupobject = -1; + z->stavelen = argc > 4 ? atom_getfloat(argv+4) : 18; + z->stavenum = 0; + z->fstavenum = 0; + z->articulation = 0; + + z->off = outlet_new(&z->x_obj, gensym("float")); + z->rhy = outlet_new(&z->x_obj, gensym("float")); + z->dur = outlet_new(&z->x_obj, gensym("float")); + z->grp = outlet_new(&z->x_obj, gensym("float")); + z->gcount = outlet_new(&z->x_obj, gensym("float")); + z->tie = outlet_new(&z->x_obj, gensym("float")); + z->bm = outlet_new(&z->x_obj, gensym("float")); + z->rest = outlet_new(&z->x_obj, gensym("float")); + z->rhyrest = outlet_new(&z->x_obj, gensym("float")); + z->bar = outlet_new(&z->x_obj, gensym("float")); + z->slave = outlet_new(&z->x_obj, gensym("bang")); + z->numer = outlet_new(&z->x_obj, gensym("float")); + z->denom = outlet_new(&z->x_obj, gensym("float")); + z->tail = outlet_new(&z->x_obj, gensym("float")); + z->tuple = outlet_new(&z->x_obj, gensym("float")); + z->bpm = outlet_new(&z->x_obj, gensym("list")); + z->g_obj = outlet_new(&z->x_obj, gensym("float")); + z->n_obj = outlet_new(&z->x_obj, gensym("float")); + z->debugger = outlet_new(&z->x_obj, gensym("float")); + z->groupid = outlet_new(&z->x_obj, gensym("float")); + z->artic = outlet_new(&z->x_obj, gensym("float")); + z->dyn = outlet_new(&z->x_obj, gensym("list")); + // z->stave = outlet_new(&z->x_obj, gensym("float")); + return(void *)z; +} + +void gemnotes_counter_setup(void) +{ + gemnotes_counter_class = class_new(gensym("gemnotes_counter"), + (t_newmethod)gemnotes_counter_new, + 0, sizeof(t_gemnotes_counter), + 0, A_GIMME, 0); + post("gemnotes_counter - segmented all / bar / beamgroup counter..."); + post("...for dynamic object creation of musical scores."); + post("version 0.6...by Ed Kelly 2012 - morph_2016@yahoo.co.uk"); + + class_addbang(gemnotes_counter_class, gemnotes_counter_bang); + class_addfloat(gemnotes_counter_class, gemnotes_counter_float); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_step, gensym("step"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_reset, gensym("reset"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_offset, gensym("offset"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_hdsq, gensym("hdsq"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_chord, gensym("chord"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_rest, gensym("rest"), A_GIMME, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_bar, gensym("bar"), A_GIMME, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_tempo, gensym("tempo"), A_GIMME, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_group, gensym("group"), A_DEFFLOAT, A_DEFFLOAT, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_debug, gensym("debug"), A_DEFFLOAT, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_nextbar, gensym("nextbar"), A_GIMME, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_dyn, gensym("dyn"), A_GIMME, 0); + class_addmethod(gemnotes_counter_class, (t_method)gemnotes_counter_articulation, gensym("articulation"), A_DEFFLOAT, 0); +} diff --git a/gemnotes_0.2.3/src/polyquant-help.pd b/gemnotes_0.2.3/src/polyquant-help.pd new file mode 100755 index 0000000..87de60f --- /dev/null +++ b/gemnotes_0.2.3/src/polyquant-help.pd @@ -0,0 +1,61 @@ +#N canvas 0 0 655 328 10; +#X text 286 48 creation arguments: tempo polyrhythm-depth; +#X text 294 92 depth 1: half \, quarter \, eighth notes etc; +#X text 294 105 depth 2: + triplets; +#X text 294 118 depth 3: + triplets and quintuplets; +#X text 294 132 depth 4: + triplets \, quintuplets and septuplets; +#X text 302 12 polyquant is a polyrhythmic quantizer; +#X text 294 148 and so on \, adding 11th \, 13th \, 17th \, 19th \, +23rd \, 29th \, 31th \, 37th \, 41th \, 43th \, 47th \, 53th \, 59th +and 61th divisions of the beat; +#X obj 66 88 timer; +#X floatatom 66 252 5 0 0 1 time - -; +#X floatatom 95 236 5 0 0 1 division - -; +#X floatatom 124 221 5 0 0 1 number - -; +#X floatatom 153 206 5 0 0 1 sign - -; +#X obj 66 187 polyquant 140 4; +#X obj 66 67 t b b; +#X obj 52 38 metro 200; +#X floatatom 66 110 5 0 0 0 - - -; +#X text 294 63 tempo is in beats-per-minute; +#X obj 52 14 loadbang; +#X msg 114 103 mode \$1; +#X obj 114 84 hradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 -1 +-1 1; +#X floatatom 173 116 5 1 18 2 polyrhythmic_depth - -; +#X text 295 77 polyrhythm depth is explained below; +#X obj 116 28 random 1800; +#X text 272 202 sign: -1 means the input time is less than the output +time \, 1 means the input time is greater than the output time; +#X text 272 229 number: number of notes of division value of the quantized +output; +#X text 272 257 division: division of the beat (8th \, 16th \, 6th +\, 20th etc); +#X text 272 275 time: quantized time value; +#X obj 116 50 + 50; +#X msg 173 132 plimit \$1; +#X text 162 64 0 = both; +#X text 162 75 1 = always lengthen; +#X text 162 86 2 = always shorten; +#X text 131 69 MODE:; +#X floatatom 240 136 5 60 180 2 BPM - -; +#X msg 240 152 bpm \$1; +#X connect 7 0 15 0; +#X connect 12 0 8 0; +#X connect 12 1 9 0; +#X connect 12 2 10 0; +#X connect 12 3 11 0; +#X connect 13 0 7 0; +#X connect 13 1 7 1; +#X connect 13 1 22 0; +#X connect 14 0 13 0; +#X connect 15 0 12 0; +#X connect 17 0 14 0; +#X connect 18 0 12 0; +#X connect 19 0 18 0; +#X connect 20 0 28 0; +#X connect 22 0 27 0; +#X connect 27 0 14 1; +#X connect 28 0 12 0; +#X connect 33 0 34 0; +#X connect 34 0 12 0; diff --git a/gemnotes_0.2.3/src/polyquant.c b/gemnotes_0.2.3/src/polyquant.c new file mode 100755 index 0000000..4d79e3b --- /dev/null +++ b/gemnotes_0.2.3/src/polyquant.c @@ -0,0 +1,178 @@ +/* + * polyquant: polyrhythmic notelength parser + * Copyright (C) 2010 edward kelly + * + * This software is BSD licensed. See LICENSE.txt for more details + */ + +#include "m_pd.h" +#include + +t_class *polyquant_class; + +typedef struct _polyquant { + t_object x_obj; + float dmatrix[18][9]; + float tmatrix[18][9][64]; + t_float bpm, qtime, wtime, plimit, dlimit, mode, sim_win, sim_sign, simile, bestsim, bestdiv, besttime, bestnum, bestsign, startoff, startnow; + t_outlet *time, *div, *num, *sign;//, *sta; +} t_polyquant; + +static float primes[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61}; + +void polyquant_float(t_polyquant *x, t_floatarg f) { + int i, j, k; + float sim_min; + x->bestsim = 0; + // x->sim_win = x->sim_win > 0 ? x->sim_win : 0.01; /* defaults to 0.01 so that we avoid /0 errors */ + for(i = 0;i < x->plimit;i++) { + for(j = x->dlimit;j < 9;j++) { + for(k=0;k<64;k++) { + float tvalue = x->tmatrix[i][j][k]; + sim_min = (f > tvalue) ? (f - tvalue) : (tvalue - f); + x->sim_sign = (f >= tvalue) ? 1 : -1; + x->simile = 1 / ((sim_min / x->sim_win) + 1); + if(x->mode == 0) { + if(x->simile >= x->bestsim){ + x->bestsim = x->simile; + x->bestdiv = x->dmatrix[i][j]; + x->besttime = tvalue; + x->bestnum = (float)k+1; + x->bestsign = x->sim_sign; + } + } + else if(x->mode == 1) { + if(x->simile >= x->bestsim && x->sim_sign == -1){ + x->bestsim = x->simile; + x->bestdiv = x->dmatrix[i][j]; + x->besttime = tvalue; + x->bestnum = (float)k+1; + x->bestsign = x->sim_sign; + } + } + else if(x->mode == 2) { + if(x->simile >= x->bestsim && x->sim_sign == 1){ + x->bestsim = x->simile; + x->bestdiv = x->dmatrix[i][j]; + x->besttime = tvalue; + x->bestnum = (float)k+1; + x->bestsign = x->sim_sign; + } + } + } + } + //so...the start time quantized, and then the quantized start becomes 0 + //so that the duration alone is quantized. + //build it into the gemnotes_counter, so that you can make a gemnotes_counter_live + } + outlet_float(x->sign, x->bestsign); + outlet_float(x->num, x->bestnum); + outlet_float(x->div, x->bestdiv); + outlet_float(x->time, x->besttime); +} + +/* + * The rarity of vintage instruments is a musician's cartel + */ + +void polyquant_bang(t_polyquant *x) { + outlet_float(x->sign, x->bestsign); + outlet_float(x->num, x->bestnum); + outlet_float(x->div, x->bestdiv); + outlet_float(x->time, x->besttime); +} + +void polyquant_bpm(t_polyquant *x, t_floatarg f) { + x->bpm = f > 0 ? f : 120; + x->qtime = 60000/x->bpm; + x->wtime = 4 * x->qtime; +} + +void polyquant_plimit(t_polyquant *x, t_floatarg f) { + x->plimit = f < 1 ? 1 : f > 18 ? 18 : f; +} + +void polyquant_dlimit(t_polyquant *x, t_floatarg f) { + x->dlimit = f < 0 ? 0 : f > 8 ? 8 : f; +} + +void polyquant_mode(t_polyquant *x, t_floatarg f) { + x->mode = f < 0 ? 0 : f > 2 ? 2 : f; +} + +void polyquant_win(t_polyquant *x, t_floatarg f) { + x->sim_win = f > 0 ? f : 10; +} + +void *polyquant_new(t_floatarg ibpm, t_floatarg flim) +{ + t_polyquant *x = (t_polyquant *)pd_new(polyquant_class); + x->mode = 0; + x->bpm = ibpm > 0 ? ibpm : 120; + x->qtime = 60000 / x->bpm; + x->wtime = x->qtime * 4; + x->plimit = flim < 1 ? 1 : flim > 18 ? 18 : flim; + x->dlimit = 4; + x->sim_win = 10; + x->time = outlet_new(&x->x_obj, gensym("float")); + x->div = outlet_new(&x->x_obj, gensym("float")); + x->num = outlet_new(&x->x_obj, gensym("float")); + x->sign = outlet_new(&x->x_obj, gensym("float")); + + int i, j, k; + float div, time; + //init dmatrix + for(i=0;i<18;i++) { + for(j=0;j<9;j++) { + x->dmatrix[i][j] = 0; + } + } + + j = 0; + div = 0; + for(i=0;i<18;i++) { + div = primes[i]; + while(div<=128) { + div *= 2; + } + x->dmatrix[i][0] = div; + while(div>=1) { + j++; + div *= 0.5; + x->dmatrix[i][j] = div; + } + } + //init tmatrix + for(i=0;i<18;i++) { + for(j=0;j<9;j++) { + div = x->dmatrix[i][j]; + if(div>0) { + k = 0; + time = x->wtime / div; + for(k=0;k<64;k++) { + x->tmatrix[i][j][k] = time * (k + 1); + } + } + } + } + return(void *)x; +} + + +void polyquant_setup(void) { + polyquant_class = class_new(gensym("polyquant"), + (t_newmethod)polyquant_new, + 0, sizeof(t_polyquant), + 0, A_DEFFLOAT, A_DEFFLOAT, 0); + post("|---------->polyquant<----------|"); + post("|---->polyrhythmic quantize<----|"); + post("|-->edward<--->kelly<--->2010<--|"); + + class_addbang(polyquant_class, polyquant_bang); + class_addfloat(polyquant_class, polyquant_float); + class_addmethod(polyquant_class, (t_method)polyquant_bpm, gensym("bpm"), A_DEFFLOAT, 0); + class_addmethod(polyquant_class, (t_method)polyquant_plimit, gensym("plimit"), A_DEFFLOAT, 0); + class_addmethod(polyquant_class, (t_method)polyquant_dlimit, gensym("dlimit"), A_DEFFLOAT, 0); + class_addmethod(polyquant_class, (t_method)polyquant_mode, gensym("mode"), A_DEFFLOAT, 0); + class_addmethod(polyquant_class, (t_method)polyquant_win, gensym("win"), A_DEFFLOAT, 0); +} diff --git a/gemnotes_0.2.3/stave.pd b/gemnotes_0.2.3/stave.pd new file mode 100755 index 0000000..b5a4801 --- /dev/null +++ b/gemnotes_0.2.3/stave.pd @@ -0,0 +1,172 @@ +#N canvas 0 22 486 625 10; +#X obj 96 195 l2s .; +#X msg 86 150 .; +#X msg 127 150 .; +#X obj 96 176 list; +#X obj 96 214 prepend text; +#X obj 86 112 t f b; +#X obj 86 131 kalashnikov; +#X obj 99 485 translateXYZ; +#X obj 16 203 gemhead; +#X obj 99 568 text3d; +#X msg 330 552 justify left top; +#X obj 242 527 loadbang; +#X obj 270 80 inlet; +#X obj 301 308 gemhead; +#X obj 301 393 translateXYZ; +#X msg 393 186 #; +#X msg 360 193 "; +#X obj 357 308 prepend text; +#X obj 296 259 > 0; +#X obj 375 156 sel 1 2; +#X obj 405 568 text3d; +#X obj 124 268 t b; +#X obj 122 352 outlet; +#X obj 81 516 color 1 1 1; +#X obj 389 261 pack f f f; +#X obj 398 226 t b; +#X obj 300 425 color 1 1 1; +#X obj 123 299 del 0; +#X obj 369 16 inlet; +#X obj 16 293 t b; +#X obj 122 331 pack f f f f f 1 1 1 f; +#X text 359 0 activate; +#X msg 158 522 11; +#X msg 224 588 justify; +#X obj 296 281 &&; +#X obj 320 239 t b f; +#X obj 19 313 spigot 1; +#X obj 67 250 == 0; +#X obj 270 99 route x y z fs len clef r g b slow; +#X obj 23 343 spigot; +#X obj 13 407 cup; +#X obj 45 389 >= 1; +#X obj 44 409 sel 1; +#X obj 44 430 del 0; +#X msg 46 451 0; +#X obj 82 279 > 0; +#X msg 153 84 0; +#X obj 153 61 loadbang; +#X obj 227 469 r font; +#X obj 223 492 sel 0 1; +#X obj 373 37 sel 0; +#X msg 451 138 0; +#X msg 400 75 0; +#X obj 373 56 t b b; +#X obj 310 467 scaleXYZ 1 1 1; +#X msg 420 380 1; +#X msg 421 437 0.86; +#X obj 8 265 metro 20; +#X msg 154 552 font fonts/Music7.ttf; +#X msg 271 509 font fonts/Music7chunky.ttf; +#X connect 0 0 3 1; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 0 0; +#X connect 4 0 9 0; +#X connect 5 0 6 0; +#X connect 5 1 2 0; +#X connect 6 0 1 0; +#X connect 7 0 23 0; +#X connect 8 0 7 0; +#X connect 10 0 9 0; +#X connect 10 0 20 0; +#X connect 11 0 58 0; +#X connect 11 0 10 0; +#X connect 11 0 32 0; +#X connect 12 0 38 0; +#X connect 13 0 14 0; +#X connect 14 0 26 0; +#X connect 15 0 17 0; +#X connect 16 0 17 0; +#X connect 17 0 20 0; +#X connect 18 0 34 0; +#X connect 19 0 16 0; +#X connect 19 1 15 0; +#X connect 19 1 55 0; +#X connect 19 1 56 0; +#X connect 21 0 27 0; +#X connect 23 0 9 0; +#X connect 24 0 23 1; +#X connect 24 0 26 1; +#X connect 25 0 24 0; +#X connect 26 0 54 0; +#X connect 27 0 30 0; +#X connect 28 0 8 0; +#X connect 28 0 35 0; +#X connect 28 0 50 0; +#X connect 29 0 36 0; +#X connect 29 0 39 0; +#X connect 30 0 22 0; +#X connect 32 0 9 1; +#X connect 32 0 20 1; +#X connect 33 0 9 0; +#X connect 34 0 13 0; +#X connect 35 0 34 0; +#X connect 35 1 34 1; +#X connect 36 0 30 0; +#X connect 37 0 36 1; +#X connect 38 0 7 1; +#X connect 38 0 14 1; +#X connect 38 0 30 0; +#X connect 38 1 7 2; +#X connect 38 1 21 0; +#X connect 38 1 14 2; +#X connect 38 1 30 1; +#X connect 38 2 7 3; +#X connect 38 2 21 0; +#X connect 38 2 14 3; +#X connect 38 2 30 2; +#X connect 38 3 20 1; +#X connect 38 3 21 0; +#X connect 38 4 5 0; +#X connect 38 4 21 0; +#X connect 38 4 30 3; +#X connect 38 5 19 0; +#X connect 38 5 18 0; +#X connect 38 5 21 0; +#X connect 38 5 30 4; +#X connect 38 6 24 0; +#X connect 38 6 21 0; +#X connect 38 6 30 5; +#X connect 38 7 24 1; +#X connect 38 7 25 0; +#X connect 38 7 21 0; +#X connect 38 7 30 6; +#X connect 38 8 24 2; +#X connect 38 8 25 0; +#X connect 38 8 21 0; +#X connect 38 8 30 7; +#X connect 38 9 37 0; +#X connect 38 9 45 0; +#X connect 38 9 41 1; +#X connect 39 0 40 0; +#X connect 40 0 41 0; +#X connect 41 0 42 0; +#X connect 42 0 43 0; +#X connect 42 0 30 0; +#X connect 43 0 44 0; +#X connect 44 0 40 0; +#X connect 45 0 39 1; +#X connect 46 0 8 0; +#X connect 46 0 35 0; +#X connect 47 0 46 0; +#X connect 48 0 49 0; +#X connect 49 0 58 0; +#X connect 49 1 59 0; +#X connect 50 0 53 0; +#X connect 50 1 30 8; +#X connect 50 1 57 0; +#X connect 51 0 30 8; +#X connect 52 0 30 8; +#X connect 52 0 57 0; +#X connect 53 0 30 0; +#X connect 53 1 52 0; +#X connect 54 0 20 0; +#X connect 55 0 54 1; +#X connect 56 0 54 1; +#X connect 57 0 29 0; +#X connect 58 0 9 0; +#X connect 58 0 20 0; +#X connect 59 0 9 0; diff --git a/gemnotes_0.2.3/tempo.pd b/gemnotes_0.2.3/tempo.pd new file mode 100755 index 0000000..59a8fb2 --- /dev/null +++ b/gemnotes_0.2.3/tempo.pd @@ -0,0 +1,261 @@ +#N canvas 362 206 1010 598 10; +#X obj 76 272 text3d; +#X obj 52 172 gemhead; +#N canvas 893 275 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 279 151 outlet; +#X msg 27 110 font fonts/Music8.ttf \, justify left top; +#X obj 150 57 r \$0-lbn; +#X msg 283 110 8; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X restore 129 247 pd inittext; +#X msg 257 156 text G; +#X msg 209 156 text 7; +#X msg 305 156 text W; +#X obj 48 247 color 0 0 0; +#X obj 56 223 translateXYZ 2 -40 -0.9; +#X obj 221 118 sel 1 2 4 8 16 32 64; +#X obj 203 66 moses 0; +#X msg 203 87 1; +#X msg 242 86 0; +#X obj 173 86 abs; +#N canvas 0 0 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 10 115 font fonts/Music8.ttf \, justify left top; +#X obj 157 78 r \$0-lbn; +#X msg 263 115 6; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X restore 371 236 pd inittext; +#X obj 360 268 text3d; +#X obj 370 129 gemhead; +#X msg 527 244 text g; +#X obj 360 212 color 0 0 0; +#X obj 527 225 r \$0-lbn; +#X obj 361 181 translateXYZ 2 -40 -0.9; +#X text 369 111 the dot; +#X text 109 171 the notehead; +#X obj 171 554 text3d; +#X obj 135 442 gemhead; +#X text 253 376 a tail; +#X msg 371 518 text ~; +#N canvas 22 321 450 300 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X msg 30 83 font fonts/Music8.ttf \, justify left top; +#X obj 225 52 r \$0-lbn; +#X msg 263 112 6; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X restore 267 525 pd inittext; +#X msg 411 518 text b; +#X msg 451 518 text c; +#X msg 126 381 1; +#X msg 154 417 0; +#X obj 155 398 t b; +#X msg 491 518 text |; +#X obj 300 500 r \$0-color; +#X obj 276 448 r \$0-z; +#X obj 171 528 color 0 0 0; +#X obj 371 497 r \$0-lbn; +#X obj 159 468 translateXYZ 2 -40 0; +#X obj 126 348 sel 8 16 32 64; +#X obj 467 381 gemhead; +#X text 480 303 a stem; +#X obj 622 419 r \$0-color; +#X obj 624 393 r \$0-z; +#X obj 496 436 color 0 0 0; +#X obj 496 414 translateXYZ 2 -40 0; +#X obj 26 10 inlet; +#X obj 94 57 pack f f f; +#X obj 96 88 s \$0-color; +#X obj 68 111 s \$0-z; +#X obj 26 29 unpack f f f f f f f f; +#X obj 99 201 +; +#X obj 189 194 r \$0-z; +#X obj 194 440 +; +#X obj 468 361 > 3.999; +#X obj 495 160 r \$0-z; +#X obj 419 30 \$1; +#X text 442 17 offset; +#X obj 665 40 \$2; +#X text 689 29 BPM; +#X obj 337 32 \$3; +#X text 360 21 rhythm; +#X obj 149 500 rotateXYZ 0 180 180; +#X obj 675 133 makefilename =%d; +#X obj 493 21 inlet; +#X obj 480 45 route \$4; +#X obj 457 69 route xoff bpm rhythm; +#X msg 230 28 0; +#X obj 174 28 spigot 1; +#X obj 291 26 t b; +#X obj 292 63 s \$0-lbn; +#N canvas 705 393 442 272 inittext 0; +#X obj 128 155 outlet; +#X obj 259 153 outlet; +#X obj 195 68 r \$0-lbn; +#X msg 33 92 font fonts/LucidaBrightRegular.ttf \, justify left top +; +#X msg 263 113 5; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 1 0; +#X restore 743 357 pd inittext; +#X msg 682 170 text \$1; +#X obj 438 209 r \$0-color; +#X obj 700 388 text3d; +#X obj 710 249 gemhead; +#X obj 608 313 +; +#X obj 700 332 color 0 0 0; +#X obj 701 301 translateXYZ 2 -40 -0.9; +#X obj 835 280 r \$0-z; +#X obj 778 329 r \$0-color; +#X text 787 388 tempo; +#X obj 769 257 + 0.1; +#X obj 404 160 + 0.28; +#X obj 533 392 + 0.17; +#X obj 496 480 rectangle 0.015 0.25; +#X obj 565 120 sel 0 1; +#X msg 587 139 0.1; +#X msg 565 139 0; +#X obj 122 145 + 0.35; +#X obj 450 154 - 0.45; +#X obj 818 260 - 1.18; +#X obj 575 393 - 1.14; +#X obj 237 445 - 2.42; +#X connect 1 0 7 0; +#X connect 2 0 0 0; +#X connect 2 1 0 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 6 0; +#X connect 8 0 4 0; +#X connect 8 1 3 0; +#X connect 8 2 5 0; +#X connect 8 3 5 0; +#X connect 8 4 5 0; +#X connect 8 5 5 0; +#X connect 8 6 5 0; +#X connect 9 0 10 0; +#X connect 9 0 12 0; +#X connect 9 1 11 0; +#X connect 9 1 8 0; +#X connect 9 1 38 0; +#X connect 9 1 53 0; +#X connect 10 0 15 0; +#X connect 10 0 85 0; +#X connect 11 0 15 0; +#X connect 11 0 85 0; +#X connect 12 0 8 0; +#X connect 12 0 38 0; +#X connect 12 0 53 0; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 15 0 19 0; +#X connect 16 0 14 0; +#X connect 17 0 14 0; +#X connect 18 0 16 0; +#X connect 19 0 17 0; +#X connect 23 0 37 0; +#X connect 25 0 22 0; +#X connect 26 0 22 0; +#X connect 26 1 22 1; +#X connect 27 0 22 0; +#X connect 28 0 22 0; +#X connect 29 0 23 0; +#X connect 30 0 23 0; +#X connect 31 0 30 0; +#X connect 32 0 22 0; +#X connect 33 0 35 1; +#X connect 34 0 37 3; +#X connect 35 0 22 0; +#X connect 36 0 25 0; +#X connect 37 0 61 0; +#X connect 38 0 25 0; +#X connect 38 0 29 0; +#X connect 38 1 27 0; +#X connect 38 1 29 0; +#X connect 38 2 28 0; +#X connect 38 2 29 0; +#X connect 38 3 32 0; +#X connect 38 3 29 0; +#X connect 38 4 31 0; +#X connect 39 0 44 0; +#X connect 41 0 43 1; +#X connect 42 0 44 3; +#X connect 43 0 84 0; +#X connect 44 0 43 0; +#X connect 45 0 49 0; +#X connect 45 0 67 0; +#X connect 46 0 47 0; +#X connect 46 0 6 1; +#X connect 49 0 50 0; +#X connect 49 1 75 0; +#X connect 49 1 88 0; +#X connect 49 1 89 0; +#X connect 49 1 90 0; +#X connect 49 1 91 0; +#X connect 49 2 48 0; +#X connect 49 5 46 0; +#X connect 49 6 46 1; +#X connect 49 7 46 2; +#X connect 50 0 7 1; +#X connect 50 0 82 0; +#X connect 50 0 83 0; +#X connect 51 0 7 3; +#X connect 52 0 37 1; +#X connect 53 0 39 0; +#X connect 54 0 19 3; +#X connect 55 0 50 1; +#X connect 57 0 62 0; +#X connect 59 0 9 0; +#X connect 61 0 35 0; +#X connect 62 0 71 0; +#X connect 63 0 64 0; +#X connect 64 0 65 0; +#X connect 65 0 50 1; +#X connect 65 1 62 0; +#X connect 65 2 9 0; +#X connect 66 0 67 1; +#X connect 67 0 66 0; +#X connect 67 0 68 0; +#X connect 68 0 59 0; +#X connect 68 0 55 0; +#X connect 68 0 57 0; +#X connect 68 0 69 0; +#X connect 70 0 73 0; +#X connect 70 1 73 1; +#X connect 71 0 73 0; +#X connect 72 0 17 1; +#X connect 74 0 77 0; +#X connect 76 0 73 0; +#X connect 77 0 76 0; +#X connect 78 0 77 3; +#X connect 79 0 76 1; +#X connect 81 0 77 1; +#X connect 82 0 19 1; +#X connect 82 0 81 0; +#X connect 83 0 44 1; +#X connect 83 0 52 0; +#X connect 85 0 87 0; +#X connect 85 1 86 0; +#X connect 86 0 81 1; +#X connect 87 0 81 1; +#X connect 88 0 7 2; +#X connect 89 0 19 2; +#X connect 90 0 77 2; +#X connect 91 0 44 2; +#X connect 91 0 92 0; +#X connect 92 0 37 2; diff --git a/gemnotes_0.2.3/timenq.pd b/gemnotes_0.2.3/timenq.pd new file mode 100755 index 0000000..3f4c7a3 --- /dev/null +++ b/gemnotes_0.2.3/timenq.pd @@ -0,0 +1,33 @@ +#N canvas 0 22 516 300 10; +#X obj 68 21 inlet; +#X obj 71 104 > 0; +#X obj 71 125 sel 1 0; +#X obj 71 146 timer; +#X obj 72 242 prepend \$1; +#X obj 69 276 outlet; +#X text 201 115 time notes; +#X obj 66 56 route \$1; +#X obj 115 102 moses 1; +#X obj 51 170 polyquant \$2 \$3; +#X obj 226 62 timer; +#X obj 227 31 inlet; +#X obj 71 215 pack f f f f; +#X obj 359 27 inlet; +#X obj 69 81 t f f; +#X connect 0 0 7 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 10 1; +#X connect 2 1 3 1; +#X connect 3 0 9 0; +#X connect 4 0 5 0; +#X connect 7 0 14 0; +#X connect 8 1 12 2; +#X connect 9 1 12 0; +#X connect 9 2 12 1; +#X connect 10 0 12 3; +#X connect 11 0 10 0; +#X connect 12 0 4 0; +#X connect 13 0 9 0; +#X connect 14 0 1 0; +#X connect 14 1 8 0; diff --git a/gemnotes_0.2.3/translate_midi.pd b/gemnotes_0.2.3/translate_midi.pd new file mode 100755 index 0000000..d22d619 --- /dev/null +++ b/gemnotes_0.2.3/translate_midi.pd @@ -0,0 +1,93 @@ +#N canvas 463 113 682 437 10; +#X obj 102 49 midifile; +#X obj 249 48 sel 1; +#X obj 102 149 pack f 0; +#X obj 102 320 prepend add; +#X obj 102 339 msgfile; +#X obj 214 275 print; +#X msg 200 344 print; +#X obj 271 303 savepanel; +#X msg 271 323 write \$1; +#X obj 271 265 bng 15 250 50 0 empty empty SAVE_SCORE 17 7 0 10 -262144 +-1 -1; +#X msg 249 70 clear; +#X msg 220 202 finished!; +#X obj 102 241 polytimeq; +#X obj 193 91 route 20 21; +#X obj 189 126 *; +#X floatatom 164 175 5 0 0 0 - - -; +#X msg 164 191 bpm \$1; +#X obj 102 99 route 128 144; +#X obj 131 70 route controller; +#X obj 218 110 t b f; +#X obj 210 151 change; +#X msg 289 82 set 1; +#X obj 303 58 loadbang; +#X obj 102 27 bng 15 250 50 0 empty empty OPEN_MIDI_FILE 17 7 0 10 +-262144 -1 -1; +#X obj 212 7 tgl 15 0 empty empty BEGIN_CONVERSION 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 212 27 t f f; +#X obj 165 150 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 22 450 300 (subpatch) 0; +#X obj 138 77 openpanel; +#X obj 132 54 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 37 105 loadbang; +#X obj 108 215 outlet; +#X obj 135 25 inlet; +#X msg 133 107 set \$1 \, bang; +#X msg 93 150 /media/sda3/Data/puredata/2010/vibra/M1_bars.txt; +#X obj 101 178 symbol; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 3 0; +#X restore 138 170 pd; +#X obj 102 125 unpack f; +#X text 299 130 This patch (attempts) to convert standard MIDI files +to text scores for use with Gemnotes.; +#X text 301 164 The files are rarely perfect and often need a little +editing after they are generated in order to produce really beautiful +scores.; +#X connect 0 0 17 0; +#X connect 0 1 18 0; +#X connect 0 2 11 0; +#X connect 1 0 12 1; +#X connect 1 0 21 0; +#X connect 1 0 10 0; +#X connect 2 0 12 0; +#X connect 3 0 4 0; +#X connect 6 0 4 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 9 0 7 0; +#X connect 10 0 4 0; +#X connect 11 0 5 0; +#X connect 12 0 3 0; +#X connect 12 0 5 0; +#X connect 13 0 14 0; +#X connect 13 1 19 0; +#X connect 14 0 20 0; +#X connect 15 0 16 0; +#X connect 16 0 12 2; +#X connect 16 0 3 0; +#X connect 17 0 28 0; +#X connect 17 1 12 0; +#X connect 18 0 13 0; +#X connect 19 0 14 0; +#X connect 19 1 14 1; +#X connect 20 0 15 0; +#X connect 21 0 20 0; +#X connect 22 0 21 0; +#X connect 22 0 10 0; +#X connect 23 0 0 0; +#X connect 24 0 25 0; +#X connect 25 0 0 1; +#X connect 25 1 1 0; +#X connect 26 0 27 0; +#X connect 27 0 12 3; +#X connect 28 0 2 0; diff --git a/gemnotes_0.2.3/tsig.pd b/gemnotes_0.2.3/tsig.pd new file mode 100755 index 0000000..d3a9ac3 --- /dev/null +++ b/gemnotes_0.2.3/tsig.pd @@ -0,0 +1,182 @@ +#N canvas 393 271 887 434 10; +#X obj 73 249 text3d; +#X msg 117 233 font fonts/LucidaBrightRegular.ttf; +#X obj 310 217 loadbang; +#X msg 330 233 justify left top; +#X obj 73 214 color 1 1 1; +#X obj 43 130 gemhead; +#X obj 298 137 pack f f f; +#X obj 186 155 +; +#X obj 151 9 inlet; +#X obj 194 176 prepend text; +#X obj 136 155 + -1.74; +#X obj 463 279 text3d; +#X obj 463 244 color 1 1 1; +#X obj 431 160 gemhead; +#X obj 576 185 +; +#X obj 279 176 prepend text; +#X obj 528 185 + -2.12; +#X obj 96 155 + 0.7; +#X obj 486 185 + 0.7; +#X obj 116 48 > 9; +#X obj 116 69 sel 0 1; +#X obj 516 48 > 9; +#X obj 516 69 sel 0 1; +#X obj 96 90 t b; +#X obj 486 90 t b; +#X msg 192 207 7; +#X obj 26 28 sel 1 7 4; +#X obj 449 32 sel 1 7 4; +#X obj 43 111 > 0; +#X obj 431 141 > 0; +#X obj 317 115 t b; +#X obj 280 262 pack f f; +#X obj 281 289 outlet; +#X obj 331 6 inlet; +#X obj 413 188 t b; +#X obj 185 33 unpack f f f f f f f f; +#X msg 116 133 0.1; +#X msg 138 133 0; +#X msg 160 133 0.12; +#X msg 192 133 0.08; +#X msg 516 163 0.1; +#X msg 538 163 0; +#X msg 560 163 0.12; +#X msg 594 163 0.08; +#X msg 636 116 xoff \$1; +#X msg 578 120 n \$1; +#X msg 613 139 d \$1; +#X obj 96 175 +; +#X obj 486 204 +; +#X obj 656 24 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 639 89 change; +#X obj 599 84 change; +#X obj 559 99 change; +#X obj 581 31 t b; +#X obj 581 57 \$2; +#X obj 617 57 \$3; +#X obj 645 57 \$1; +#X obj 685 55 \$4; +#X obj 121 176 +; +#X obj 383 9 route xoff fs n d yoff; +#X obj 514 206 +; +#X obj 688 87 change; +#X msg 695 117 yoff \$1; +#X obj 73 195 translateXYZ 0 -40 0; +#X obj 463 225 translateXYZ 0 -40 0; +#X connect 1 0 0 0; +#X connect 1 0 11 0; +#X connect 2 0 1 0; +#X connect 2 0 3 0; +#X connect 2 0 25 0; +#X connect 3 0 0 0; +#X connect 3 0 11 0; +#X connect 4 0 0 0; +#X connect 5 0 63 0; +#X connect 6 0 4 1; +#X connect 6 0 12 1; +#X connect 7 0 63 3; +#X connect 8 0 35 0; +#X connect 8 0 53 0; +#X connect 9 0 0 0; +#X connect 10 0 58 0; +#X connect 12 0 11 0; +#X connect 13 0 64 0; +#X connect 14 0 64 3; +#X connect 15 0 11 0; +#X connect 16 0 60 0; +#X connect 17 0 47 0; +#X connect 18 0 48 0; +#X connect 19 0 20 0; +#X connect 20 0 36 0; +#X connect 20 0 23 0; +#X connect 20 1 37 0; +#X connect 20 1 23 0; +#X connect 21 0 22 0; +#X connect 22 0 40 0; +#X connect 22 0 24 0; +#X connect 22 1 41 0; +#X connect 22 1 24 0; +#X connect 23 0 17 0; +#X connect 24 0 18 0; +#X connect 25 0 0 1; +#X connect 25 0 11 1; +#X connect 26 0 38 0; +#X connect 26 0 23 0; +#X connect 26 1 38 0; +#X connect 26 1 23 0; +#X connect 26 2 39 0; +#X connect 26 2 23 0; +#X connect 26 3 19 0; +#X connect 27 0 42 0; +#X connect 27 0 24 0; +#X connect 27 1 42 0; +#X connect 27 1 24 0; +#X connect 27 2 43 0; +#X connect 27 2 24 0; +#X connect 27 3 21 0; +#X connect 28 0 5 0; +#X connect 29 0 13 0; +#X connect 30 0 6 0; +#X connect 31 0 32 0; +#X connect 33 0 34 0; +#X connect 33 0 59 0; +#X connect 34 0 3 0; +#X connect 34 0 1 0; +#X connect 34 0 25 0; +#X connect 35 0 17 0; +#X connect 35 0 18 0; +#X connect 35 1 10 0; +#X connect 35 1 16 0; +#X connect 35 2 7 0; +#X connect 35 2 14 0; +#X connect 35 5 6 0; +#X connect 35 6 6 1; +#X connect 35 7 6 2; +#X connect 36 0 17 1; +#X connect 37 0 17 1; +#X connect 38 0 17 1; +#X connect 39 0 17 1; +#X connect 40 0 18 1; +#X connect 41 0 18 1; +#X connect 42 0 18 1; +#X connect 43 0 18 1; +#X connect 44 0 59 0; +#X connect 45 0 59 0; +#X connect 46 0 59 0; +#X connect 47 0 63 1; +#X connect 48 0 64 1; +#X connect 49 0 54 0; +#X connect 49 0 55 0; +#X connect 49 0 56 0; +#X connect 50 0 44 0; +#X connect 51 0 46 0; +#X connect 52 0 45 0; +#X connect 53 0 34 0; +#X connect 53 0 54 0; +#X connect 53 0 55 0; +#X connect 53 0 56 0; +#X connect 53 0 57 0; +#X connect 54 0 52 0; +#X connect 55 0 51 0; +#X connect 56 0 50 0; +#X connect 57 0 61 0; +#X connect 58 0 63 2; +#X connect 59 0 47 1; +#X connect 59 0 48 1; +#X connect 59 2 26 0; +#X connect 59 2 28 0; +#X connect 59 2 9 0; +#X connect 59 2 31 0; +#X connect 59 3 27 0; +#X connect 59 3 29 0; +#X connect 59 3 15 0; +#X connect 59 3 31 1; +#X connect 59 4 58 1; +#X connect 59 4 60 1; +#X connect 60 0 64 2; +#X connect 61 0 62 0; +#X connect 62 0 59 0; +#X connect 63 0 4 0; +#X connect 64 0 12 0; diff --git a/gemnotes_0.2.3/vera.ttf b/gemnotes_0.2.3/vera.ttf new file mode 100755 index 0000000..58cd6b5 Binary files /dev/null and b/gemnotes_0.2.3/vera.ttf differ -- cgit v1.2.1