فهرست منبع

Initial commit

Quite working version, needs cleaning and better interface
Etienne Landon 7 سال پیش
کامیت
febec9d1c3
100فایلهای تغییر یافته به همراه27241 افزوده شده و 0 حذف شده
  1. 341 0
      00_ev_blank_patch_template.pd
  2. 428 0
      cam2mouse.pd
  3. 4 0
      data/README.txt
  4. 88 0
      data/ev_example_360_degree_livecam.txt
  5. 1165 0
      data/ev_example_3d_preset.txt
  6. 616 0
      data/ev_example_data_storage_system.txt
  7. 1752 0
      data/ev_example_framebuffers_preset.txt
  8. 1087 0
      data/ev_example_grids_preset.txt
  9. 1853 0
      data/ev_example_masking_preset.txt
  10. 2269 0
      data/ev_example_panoramic_360_preset.txt
  11. 1267 0
      data/ev_example_panoramic_preset.txt
  12. 1000 0
      data/ev_example_preset_file_operations.txt
  13. 856 0
      data/ev_example_scene_transitions_main.txt
  14. 483 0
      data/ev_example_scene_transitions_special.txt
  15. 7555 0
      data/ev_example_shipping_containers_one.txt
  16. 190 0
      data/ev_example_shipping_containers_two.txt
  17. 1646 0
      data/ev_example_virtual_panoramic_3d.txt
  18. 81 0
      data/unnamed_preset.txt
  19. 6 0
      ev-glsl/README.txt
  20. 141 0
      ev-glsl/ev_glsl-help.pd
  21. 29 0
      ev-glsl/ev_glsl.pd
  22. 90 0
      ev-glsl/ev_glsl_buf-help.pd
  23. 40 0
      ev-glsl/ev_glsl_buf.pd
  24. 80 0
      ev-glsl/ev_glsl_buf2-help.pd
  25. 39 0
      ev-glsl/ev_glsl_buf2.pd
  26. 21 0
      ev-glsl/ev_glsl_buf2_dsp.pd
  27. 37 0
      ev-glsl/ev_glsl_buf_dsp.pd
  28. 37 0
      ev-glsl/ev_glsl_buf_gui.pd
  29. 140 0
      ev-glsl/ev_glsl_dsp.pd
  30. 18 0
      ev-glsl/ev_glsl_gui.pd
  31. 86 0
      ev-glsl/ev_glsl_mix2-help.pd
  32. 31 0
      ev-glsl/ev_glsl_mix2.pd
  33. 135 0
      ev-glsl/ev_glsl_mix2_dsp.pd
  34. 106 0
      ev-glsl/ev_glsl_mix3-help.pd
  35. 33 0
      ev-glsl/ev_glsl_mix3.pd
  36. 137 0
      ev-glsl/ev_glsl_mix3_dsp.pd
  37. 20 0
      ev-glsl/glsl/README.txt
  38. 66 0
      ev-glsl/glsl/contrast.ctl.pd
  39. 58 0
      ev-glsl/glsl/contrast.frag
  40. 10 0
      ev-glsl/glsl/contrast.gui.pd
  41. 26 0
      ev-glsl/glsl/contrast.reg.pd
  42. 6 0
      ev-glsl/glsl/contrast.vert
  43. 25 0
      ev-glsl/glsl/desaturation.ctl.pd
  44. 44 0
      ev-glsl/glsl/desaturation.frag
  45. 14 0
      ev-glsl/glsl/desaturation.reg.pd
  46. 6 0
      ev-glsl/glsl/desaturation.vert
  47. 30 0
      ev-glsl/glsl/gain.ctl.pd
  48. 21 0
      ev-glsl/glsl/gain.frag
  49. 14 0
      ev-glsl/glsl/gain.reg.pd
  50. 6 0
      ev-glsl/glsl/gain.vert
  51. 22 0
      ev-glsl/glsl/gain_hsl.ctl.pd
  52. 137 0
      ev-glsl/glsl/gain_hsl.frag
  53. 11 0
      ev-glsl/glsl/gain_hsl.reg.pd
  54. 6 0
      ev-glsl/glsl/gain_hsl.vert
  55. 17 0
      ev-glsl/glsl/gamma.ctl.pd
  56. 46 0
      ev-glsl/glsl/gamma.frag
  57. 11 0
      ev-glsl/glsl/gamma.reg.pd
  58. 6 0
      ev-glsl/glsl/gamma.vert
  59. 13 0
      ev-glsl/glsl/gaussian_blur.2-pass.reg.pd
  60. 19 0
      ev-glsl/glsl/gaussian_blur.h.ctl.pd
  61. 28 0
      ev-glsl/glsl/gaussian_blur.h.frag
  62. 11 0
      ev-glsl/glsl/gaussian_blur.h.reg.pd
  63. 6 0
      ev-glsl/glsl/gaussian_blur.h.vert
  64. 19 0
      ev-glsl/glsl/gaussian_blur.v.ctl.pd
  65. 28 0
      ev-glsl/glsl/gaussian_blur.v.frag
  66. 11 0
      ev-glsl/glsl/gaussian_blur.v.reg.pd
  67. 6 0
      ev-glsl/glsl/gaussian_blur.v.vert
  68. 32 0
      ev-glsl/glsl/invert.ctl.pd
  69. 42 0
      ev-glsl/glsl/invert.frag
  70. 12 0
      ev-glsl/glsl/invert.gui.pd
  71. 19 0
      ev-glsl/glsl/invert.reg.pd
  72. 6 0
      ev-glsl/glsl/invert.vert
  73. 51 0
      ev-glsl/glsl/levels.ctl.pd
  74. 59 0
      ev-glsl/glsl/levels.frag
  75. 21 0
      ev-glsl/glsl/levels.reg.pd
  76. 6 0
      ev-glsl/glsl/levels.vert
  77. 32 0
      ev-glsl/glsl/mix2.ctl.pd
  78. 16 0
      ev-glsl/glsl/mix2.frag
  79. 9 0
      ev-glsl/glsl/mix2.vert
  80. 27 0
      ev-glsl/glsl/mix3.ctl.pd
  81. 22 0
      ev-glsl/glsl/mix3.frag
  82. 12 0
      ev-glsl/glsl/mix3.vert
  83. 43 0
      ev-glsl/glsl/name.ctl.pd
  84. 8 0
      ev-in/README.txt
  85. 405 0
      ev-in/ev_cam-help.pd
  86. 117 0
      ev-in/ev_cam.pd
  87. 65 0
      ev-in/ev_pic-help.pd
  88. 141 0
      ev-in/ev_pic.pd
  89. 121 0
      ev-in/ev_vid-help.pd
  90. 743 0
      ev-in/ev_vid.pd
  91. 14 0
      ev-main/README.txt
  92. 91 0
      ev-main/ev_base-help.pd
  93. 126 0
      ev-main/ev_base.pd
  94. 118 0
      ev-main/ev_buf-help.pd
  95. 42 0
      ev-main/ev_buf.pd
  96. 131 0
      ev-main/ev_buf_dsp.pd
  97. 37 0
      ev-main/ev_buf_gui.pd
  98. 30 0
      ev-main/ev_declare-help.pd
  99. 13 0
      ev-main/ev_declare.pd
  100. 0 0
      ev-main/ev_gemwin-help.pd

+ 341 - 0
00_ev_blank_patch_template.pd

@@ -0,0 +1,341 @@
+#N canvas 108 81 1397 923 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl -lib Gem;
+#X obj 35 175 cnv 15 350 530 empty empty empty 20 12 0 14 -228992 -66577
+0;
+#X obj 41 186 gemhead;
+#X obj 73 449 pix_texture;
+#X msg 99 423 rectangle 1;
+#X obj 99 402 loadbang;
+#X obj 41 378 t a a;
+#X obj 41 585 pix_snap;
+#X obj 41 554 t b a;
+#X obj 41 647 pix_buffer_write cropbuf;
+#X obj 41 669 pix_buffer cropbuf 1;
+#X obj 41 607 t a b;
+#X msg 206 624 0;
+#X obj 304 318 s tex_size;
+#X msg 304 295 \$2 \$3;
+#X obj 94 562 r tex_size;
+#X obj 41 309 ev-in/ev_cam 1;
+#X obj 41 208 ev-main/ev_buf buf;
+#X obj 207 28 ev-main/ev_gemwin;
+#X obj 73 470 ev-pro/ev_pro_22 crop;
+#X obj 35 7 libs/kollabs/ds_logic 0;
+#X obj 35 29 libs/kollabs/ds_gui 0;
+#X text 753 276 maj mousemove avant mousedown sinon trait depuis derniere
+position;
+#X obj 395 175 cnv 15 350 400 empty empty empty 20 12 0 14 -261682
+-66577 0;
+#X obj 415 199 gemhead;
+#X obj 415 261 pix_buffer_read cropbuf;
+#X obj 414 501 pix_texture;
+#X msg 573 236 0;
+#X obj 415 221 t a b;
+#X obj 415 323 pix_threshold;
+#X floatatom 465 290 5 0 0 0 - - -, f 5;
+#X floatatom 427 393 3 0 100 2 threshold - -, f 3;
+#X obj 427 410 / 100;
+#X msg 427 431 threshold \$1;
+#X floatatom 517 393 3 0 100 2 blobsize - -, f 3;
+#X obj 517 410 / 100;
+#X msg 517 431 blobSize \$1;
+#X obj 551 482 route matrix;
+#X obj 414 465 pix_multiblob 1;
+#X obj 414 523 rectangle 5.33 4;
+#X obj 544 287 loadbang;
+#X msg 544 309 0.85;
+#X obj 551 730 s isTracked;
+#X obj 551 505 unpack f f f f f f f f;
+#X obj 594 528 * 1920;
+#X obj 647 570 * 1080;
+#X obj 647 548 -;
+#X msg 647 527 1 \$1;
+#X obj 594 592 pack f f;
+#X obj 594 614 s mousePos;
+#N canvas 1 59 450 300 once 0;
+#X obj 111 123 t a b;
+#X obj 111 145 outlet;
+#X obj 111 80 inlet;
+#X msg 154 122 0;
+#X obj 198 58 inlet;
+#X msg 198 80 1;
+#X obj 111 102 spigot 1;
+#X connect 0 0 1 0;
+#X connect 0 1 3 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 1;
+#X connect 6 0 0 0;
+#X restore 882 441 pd once;
+#X obj 850 372 r isTracked;
+#X obj 850 394 route 0;
+#X obj 850 416 t a a;
+#N canvas 1 59 450 300 once 0;
+#X obj 111 123 t a b;
+#X obj 111 145 outlet;
+#X obj 111 80 inlet;
+#X msg 154 122 0;
+#X obj 198 58 inlet;
+#X msg 198 80 1;
+#X obj 111 102 spigot 1;
+#X connect 0 0 1 0;
+#X connect 0 1 3 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 1;
+#X connect 6 0 0 0;
+#X restore 1076 439 pd once;
+#X obj 1044 370 r isTracked;
+#X obj 1044 414 t a a;
+#X obj 1044 392 route 1;
+#X obj 1076 461 t b b;
+#X obj 1133 460 r mousePos;
+#X obj 1108 482 list;
+#X msg 1108 504 xdotool mousemove \$1 \$2;
+#X obj 1108 575 s toShell;
+#X obj 877 790 ggee/shell;
+#X obj 877 768 r toShell;
+#X obj 1076 528 delay 10;
+#X msg 1076 548 xdotool mousedown 1;
+#X obj 1033 675 r mousePos;
+#X obj 1008 697 list;
+#X obj 1005 645 metro 50;
+#X msg 1020 604 1;
+#X msg 849 516 0;
+#X obj 551 707 spigot;
+#X obj 582 641 key;
+#X obj 582 663 route 339;
+#X obj 662 639 gemkeyboard;
+#X obj 662 661 route 49;
+#X obj 586 685 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#N canvas 1 57 450 498 oldlogic 0;
+#X obj 15 40 route 0;
+#X msg 190 399 xdotool mousemove \$1 \$2;
+#X obj 212 342 pack f f;
+#X obj 187 365 list;
+#X obj 191 172 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 249 163 key;
+#X obj 249 185 route 339;
+#X obj 329 161 gemkeyboard;
+#X obj 329 183 route 49;
+#X obj 211 284 * 1920;
+#X obj 270 308 * 1080;
+#X obj 273 269 -;
+#X msg 271 244 1 \$1;
+#X obj 192 214 metro 50;
+#X obj 211 308 + 0;
+#X msg 62 88 0;
+#X msg 271 52 0, f 2;
+#X msg 38 108 1;
+#X obj 174 28 t a a;
+#X msg 88 188 0;
+#X obj 14 210 t b a b, f 8;
+#X obj 15 62 t b b b;
+#X obj 207 75 t b b b, f 8;
+#X msg 233 99 1;
+#X obj 135 105 t b a;
+#X obj 167 151 unpack f f;
+#X msg 124 131 1;
+#X msg 167 129 \$3 \$4;
+#X obj 14 232 delay 10;
+#X msg 239 128 xdotool mousedown 1;
+#X msg 18 264 xdotool mouseup 1;
+#X obj 207 53 spigot 1;
+#X obj 14 188 spigot 1;
+#X obj 61 464 ggee/shell;
+#X obj 135 463 print;
+#X connect 0 0 21 0;
+#X connect 0 1 18 0;
+#X connect 1 0 33 0;
+#X connect 2 0 3 1;
+#X connect 3 0 1 0;
+#X connect 4 0 13 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 7 0 8 0;
+#X connect 8 0 4 0;
+#X connect 9 0 14 0;
+#X connect 10 0 2 1;
+#X connect 11 0 10 0;
+#X connect 12 0 11 0;
+#X connect 13 0 3 0;
+#X connect 14 0 2 0;
+#X connect 15 0 4 0;
+#X connect 16 0 31 1;
+#X connect 17 0 31 1;
+#X connect 18 0 31 0;
+#X connect 18 1 24 0;
+#X connect 19 0 32 1;
+#X connect 20 0 28 0;
+#X connect 20 2 19 0;
+#X connect 21 0 32 0;
+#X connect 21 1 17 0;
+#X connect 21 2 15 0;
+#X connect 22 0 29 0;
+#X connect 22 1 23 0;
+#X connect 22 2 16 0;
+#X connect 23 0 4 0;
+#X connect 24 0 26 0;
+#X connect 24 1 27 0;
+#X connect 25 0 9 0;
+#X connect 25 1 12 0;
+#X connect 26 0 32 1;
+#X connect 27 0 25 0;
+#X connect 28 0 30 0;
+#X connect 29 0 33 0;
+#X connect 30 0 33 0;
+#X connect 31 0 22 0;
+#X connect 32 0 20 0;
+#X restore 760 212 pd oldlogic;
+#N canvas 31 264 548 468 init 0;
+#X obj 56 92 loadbang;
+#X obj 83 138 del 1000;
+#X obj 56 114 t b b;
+#X obj 56 221 del 3000;
+#X obj 44 -23 cnv 15 400 100 empty empty IMPORTANT 20 12 0 14 -261234
+-66577 0;
+#X text 49 -3 Such a declare object should always be in the main patch
+of your project \, to set the pathes to the abstractions.;
+#X text 159 140 load the preset file on startup:;
+#X obj 158 43 ev-main/ev_declare;
+#X text 165 206 (pathes relative to libs/kollabs);
+#X text 66 262 Recall scene '0' from the loaded preset file:;
+#X msg 83 170 \; /ds/0/loadfile ../../data/unnamed_preset.txt;
+#X msg 56 288 \; /ds/0/scene 0 \;;
+#X obj 60 351 declare -path . -path .. -path data -path ../data -path
+ev-in -path ../ev-in -path ev-main -path ../ev-main -path ev-pano -path
+../ev-pano -path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil
+-path libs/kollabs -path ../libs/kollabs -path media -path ../media
+-path ev-glsl -path ../ev-glsl -lib Gem;
+#X connect 0 0 2 0;
+#X connect 1 0 10 0;
+#X connect 2 0 3 0;
+#X connect 2 1 1 0;
+#X connect 3 0 11 0;
+#X restore 211 113 pd init;
+#X msg 882 463 \; toShell xdotool mouseup 1;
+#X msg 1008 719 \; toShell xdotool mousemove \$1 \$2;
+#X obj 958 795 print;
+#X msg 548 338 1;
+#N canvas 1 59 450 300 once 0;
+#X obj 111 123 t a b;
+#X obj 111 145 outlet;
+#X obj 111 80 inlet;
+#X msg 154 122 0;
+#X obj 198 58 inlet;
+#X msg 198 80 1;
+#X obj 111 102 spigot 1;
+#X connect 0 0 1 0;
+#X connect 0 1 3 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 1;
+#X connect 6 0 0 0;
+#X restore 960 160 pd once;
+#X obj 971 132 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 1010 136 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 958 198 print;
+#X obj 797 587 key;
+#X obj 797 609 route 339;
+#X obj 877 585 gemkeyboard;
+#X obj 877 607 route 49;
+#X msg 814 641 0;
+#X connect 1 0 16 0;
+#X connect 2 0 18 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 7 0;
+#X connect 5 1 2 0;
+#X connect 6 0 10 0;
+#X connect 7 0 6 0;
+#X connect 7 1 6 0;
+#X connect 10 0 8 0;
+#X connect 10 1 11 0;
+#X connect 11 0 8 1;
+#X connect 13 0 12 0;
+#X connect 14 0 6 2;
+#X connect 15 0 5 0;
+#X connect 16 0 15 0;
+#X connect 16 1 13 0;
+#X connect 23 0 27 0;
+#X connect 24 0 28 0;
+#X connect 25 0 38 0;
+#X connect 26 0 24 1;
+#X connect 27 0 24 0;
+#X connect 27 1 26 0;
+#X connect 28 0 37 0;
+#X connect 29 0 28 1;
+#X connect 30 0 31 0;
+#X connect 31 0 32 0;
+#X connect 32 0 37 0;
+#X connect 33 0 34 0;
+#X connect 34 0 35 0;
+#X connect 35 0 37 0;
+#X connect 36 0 42 0;
+#X connect 37 0 25 0;
+#X connect 37 1 36 0;
+#X connect 39 0 40 0;
+#X connect 39 0 82 0;
+#X connect 40 0 28 1;
+#X connect 42 0 71 0;
+#X connect 42 2 43 0;
+#X connect 42 3 46 0;
+#X connect 43 0 47 0;
+#X connect 44 0 47 1;
+#X connect 45 0 44 0;
+#X connect 46 0 45 0;
+#X connect 47 0 48 0;
+#X connect 49 0 79 0;
+#X connect 50 0 51 0;
+#X connect 51 0 52 0;
+#X connect 51 1 49 1;
+#X connect 52 0 70 0;
+#X connect 52 1 49 0;
+#X connect 53 0 57 0;
+#X connect 54 0 56 0;
+#X connect 55 0 69 0;
+#X connect 55 1 53 0;
+#X connect 56 0 55 0;
+#X connect 56 1 53 1;
+#X connect 57 0 64 0;
+#X connect 57 1 59 0;
+#X connect 58 0 59 1;
+#X connect 59 0 60 0;
+#X connect 60 0 61 0;
+#X connect 63 0 62 0;
+#X connect 63 0 81 0;
+#X connect 64 0 65 0;
+#X connect 65 0 61 0;
+#X connect 66 0 67 1;
+#X connect 67 0 80 0;
+#X connect 68 0 67 0;
+#X connect 69 0 68 0;
+#X connect 70 0 68 0;
+#X connect 71 0 41 0;
+#X connect 72 0 73 0;
+#X connect 73 0 76 0;
+#X connect 74 0 75 0;
+#X connect 75 0 76 0;
+#X connect 76 0 71 1;
+#X connect 82 0 33 0;
+#X connect 82 0 30 0;
+#X connect 83 0 86 0;
+#X connect 84 0 83 0;
+#X connect 85 0 83 1;
+#X connect 87 0 88 0;
+#X connect 88 0 91 0;
+#X connect 89 0 90 0;
+#X connect 90 0 91 0;
+#X connect 91 0 68 0;
+#X coords 0 0 1 1 85 60 0;

+ 428 - 0
cam2mouse.pd

@@ -0,0 +1,428 @@
+#N canvas 145 90 871 639 10;
+#X text 451 6 GEM object;
+#X obj 8 46 cnv 15 540 100 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 559 47 cnv 15 280 500 empty empty empty 20 12 0 14 -228992 -66577
+0;
+#X text 71 21 Class: pix object (pix source);
+#X text 453 27 Example:;
+#X text 50 2 Synopsis: [pix_video];
+#X text 29 47 Description: open a camera and get input;
+#X obj 9 182 cnv 15 540 365 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 9 149 cnv 15 540 30 empty empty empty 20 12 0 14 -195568 -66577
+0;
+#X text 18 148 Arguments:;
+#X text 17 486 Outlet 1: gemlist;
+#X text 17 198 Inlet 1: gemlist;
+#X text 16 308 Inlet 1: colorspace "RGBA|YUV|Grey": decodes the current
+film into the specified colorspace.;
+#X text 64 159 none;
+#X text 33 184 Inlet:;
+#X text 33 472 Outlet:;
+#X obj 717 460 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
+0;
+#N canvas 1 55 450 300 gemwin 1;
+#X obj 132 136 gemwin;
+#X obj 67 89 outlet;
+#X obj 67 10 inlet;
+#X msg 67 70 set destroy;
+#X msg 205 149 destroy;
+#X msg 156 71 set create;
+#X obj 67 41 route create;
+#X msg 132 112 border 0 \, dimen 1920 1080 \, offset 1920 0 \, create
+\, 1;
+#X connect 2 0 6 0;
+#X connect 3 0 1 0;
+#X connect 4 0 0 0;
+#X connect 5 0 1 0;
+#X connect 6 0 3 0;
+#X connect 6 0 7 0;
+#X connect 6 1 5 0;
+#X connect 6 1 4 0;
+#X connect 7 0 0 0;
+#X restore 722 499 pd gemwin;
+#X msg 722 477 create;
+#X text 718 456 Create window:;
+#X obj 563 86 cnv 15 230 280 empty empty empty 20 12 0 14 -24198 -66577
+0;
+#X obj 567 526 rectangle 4 3;
+#X obj 567 502 pix_texture;
+#X text 17 216 Inlet 1: device <spec>: the number or file path to the
+input device;
+#X text 16 339 Inlet 1: dimen <number> <number>: set various dimensions
+for the image (does not work on all capture devices);
+#X text 15 371 Inlet 1: enumerate: list all devices to the console
+;
+#X text 17 245 Inlet 1: driver <number>: switch between different drivers
+\, e.g. v4l \, ieee1394 \, etc.;
+#X text 16 276 Inlet 1: driver <symbol>: switch between different drivers
+\, e.g. v4l \, v4l2 \, dv...;
+#X text 13 66 [pix_video] opens a wide array of cameras \, USB to FireWire
+to capture cards \, as long as the camera is supported by your operating
+system.;
+#X obj 567 53 gemhead;
+#X msg 596 124 dimen 64 64;
+#X msg 586 99 dimen 256 128;
+#X msg 635 261 enumerate;
+#X msg 641 283 dialog;
+#X msg 604 153 colorspace RGBA;
+#X msg 609 211 device 1;
+#X msg 642 312 driver dv;
+#N canvas 515 117 572 549 properties 0;
+#X msg 41 203 enumProps;
+#X obj 31 21 cnv 15 400 80 empty empty readProperties 20 12 0 14 -233017
+-66577 0;
+#X obj 39 47 hradio 15 1 0 8 \$0-propreadId \$0-propreadId empty 0
+-8 0 10 -262144 -1 -1 0;
+#X obj 40 70 cnv 15 260 20 empty \$0-propreadName <none> 10 9 0 14
+-203904 -66577 0;
+#N canvas 185 50 450 537 PropertyLogic 0;
+#N canvas 1408 84 774 460 id2property 0;
+#X obj 353 106 r \$0-info;
+#X obj 353 130 route proplist;
+#X obj 353 152 route read numread;
+#X obj 405 176 t b f;
+#X obj 353 174 list;
+#X obj 353 219 list prepend;
+#X msg 353 196 \$1;
+#X obj 353 239 t l l;
+#X obj 95 197 list prepend;
+#X obj 525 176 t b f;
+#X obj 473 174 list;
+#X obj 473 219 list prepend;
+#X msg 473 196 \$1;
+#X obj 473 239 t l l;
+#X obj 473 152 route write numwrite;
+#X obj 95 69 inlet readID;
+#X obj 225 70 inlet writeID;
+#X obj 123 378 outlet readName;
+#X obj 253 356 outlet writeName;
+#X obj 95 176 t b f;
+#X obj 95 219 list split;
+#X obj 123 266 symbol;
+#X msg 123 241 symbol \$1;
+#X obj 225 197 list prepend;
+#X obj 225 176 t b f;
+#X obj 225 219 list split;
+#X obj 253 266 symbol;
+#X msg 253 241 symbol \$1;
+#X obj 95 91 route float;
+#X obj 225 92 route float;
+#X msg 432 333 number \$1;
+#X msg 552 333 number \$1;
+#X obj 432 353 s \$0-propreadId;
+#X obj 552 353 s \$0-propwriteId;
+#X obj 602 254 t f f;
+#X msg 602 232 0;
+#X obj 602 211 loadbang;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 2 1 3 0;
+#X connect 2 2 14 0;
+#X connect 3 0 5 1;
+#X connect 3 1 30 0;
+#X connect 4 0 6 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 7 0 8 1;
+#X connect 7 1 5 1;
+#X connect 8 0 20 0;
+#X connect 9 0 11 1;
+#X connect 9 1 31 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 11 0;
+#X connect 13 0 23 1;
+#X connect 13 1 11 1;
+#X connect 14 0 10 0;
+#X connect 14 1 9 0;
+#X connect 15 0 28 0;
+#X connect 16 0 29 0;
+#X connect 19 0 8 0;
+#X connect 19 1 20 1;
+#X connect 20 1 22 0;
+#X connect 21 0 17 0;
+#X connect 22 0 21 0;
+#X connect 23 0 25 0;
+#X connect 24 0 23 0;
+#X connect 24 1 25 1;
+#X connect 25 1 27 0;
+#X connect 26 0 18 0;
+#X connect 27 0 26 0;
+#X connect 28 0 19 0;
+#X connect 29 0 24 0;
+#X connect 30 0 32 0;
+#X connect 31 0 33 0;
+#X connect 34 0 30 0;
+#X connect 34 1 31 0;
+#X connect 35 0 34 0;
+#X connect 36 0 35 0;
+#X restore 188 192 pd id2property;
+#X obj 320 407 list prepend set;
+#X obj 320 429 list trim;
+#X obj 320 451 t b a;
+#N canvas 437 141 450 300 getProp 0;
+#X obj 44 177 s \$0-propreadName;
+#X msg 44 156 label \$1;
+#X msg 165 156 get \$1;
+#X obj 44 81 inlet;
+#X obj 165 178 outlet;
+#X obj 290 57 r \$0-info;
+#X obj 290 79 route prop;
+#N canvas 3 50 450 300 sroute 0;
+#X obj 73 12 inlet;
+#X obj 312 9 inlet;
+#X obj 73 113 outlet;
+#X obj 73 34 list split 1;
+#X obj 73 56 select s;
+#X obj 73 78 list prepend;
+#X connect 0 0 3 0;
+#X connect 1 0 4 1;
+#X connect 3 0 4 0;
+#X connect 3 1 5 1;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X restore 290 113 pd sroute;
+#X obj 44 123 t s s s;
+#X msg 290 226 label \$1;
+#X obj 290 247 s \$0-propreadValue;
+#X obj 290 135 route float;
+#X obj 290 157 makefilename %g;
+#X obj 106 29 loadbang;
+#X obj 106 51 t b b;
+#X msg 106 73 symbol <none>;
+#X msg 196 74 symbol --;
+#X connect 1 0 0 0;
+#X connect 2 0 4 0;
+#X connect 3 0 8 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 11 0;
+#X connect 8 0 1 0;
+#X connect 8 1 2 0;
+#X connect 8 2 7 1;
+#X connect 9 0 10 0;
+#X connect 11 0 12 0;
+#X connect 12 0 9 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 14 1 16 0;
+#X connect 15 0 1 0;
+#X connect 16 0 9 0;
+#X restore 320 318 pd getProp;
+#X obj 172 158 r \$0-propreadId;
+#X obj 282 158 r \$0-propwriteId;
+#N canvas 432 95 450 467 setProp 0;
+#X msg 44 156 label \$1;
+#X msg 165 156 get \$1;
+#X obj 44 31 inlet;
+#X obj 218 324 outlet;
+#X obj 290 57 r \$0-info;
+#X obj 290 79 route prop;
+#N canvas 4 50 450 300 sroute 0;
+#X obj 73 12 inlet;
+#X obj 312 9 inlet;
+#X obj 73 113 outlet;
+#X obj 73 34 list split 1;
+#X obj 73 56 select s;
+#X obj 73 78 list prepend;
+#X connect 0 0 3 0;
+#X connect 1 0 4 1;
+#X connect 3 0 4 0;
+#X connect 3 1 5 1;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X restore 290 113 pd sroute;
+#X obj 290 135 route float;
+#X obj 44 177 s \$0-propwriteName;
+#X obj 290 247 s \$0-propwriteValue;
+#X msg 290 226 set \$1;
+#X obj 50 276 r \$0-propwriteValue;
+#X obj 50 298 route float;
+#X obj 50 320 pack 0 s;
+#X msg 50 342 set \$2 \$1;
+#X obj 44 73 t s s s s;
+#X obj 127 27 loadbang;
+#X obj 127 49 t b b;
+#X msg 127 71 symbol <none>;
+#X connect 0 0 8 0;
+#X connect 1 0 3 0;
+#X connect 2 0 15 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 10 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 3 0;
+#X connect 15 0 0 0;
+#X connect 15 1 1 0;
+#X connect 15 2 6 1;
+#X connect 15 3 13 1;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 0 0 0;
+#X restore 199 315 pd setProp;
+#X obj 199 404 list prepend set;
+#X obj 199 426 list trim;
+#X obj 199 448 t b a;
+#X obj 199 361 list prepend get;
+#X obj 199 339 route get set;
+#X obj 309 361 list prepend set;
+#X obj 199 477 s \$0-propset;
+#X obj 320 480 s \$0-propget;
+#X obj 54 38 inlet;
+#X obj 54 66 s \$0-ctl;
+#X connect 0 0 4 0;
+#X connect 0 1 7 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 15 0;
+#X connect 3 1 15 0;
+#X connect 4 0 12 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 1;
+#X connect 7 0 12 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 14 0;
+#X connect 10 1 14 0;
+#X connect 11 0 1 0;
+#X connect 12 0 11 0;
+#X connect 12 1 13 0;
+#X connect 13 0 8 0;
+#X connect 16 0 17 0;
+#X restore 41 526 pd PropertyLogic;
+#X obj 310 70 cnv 15 100 20 empty \$0-propreadValue -- 10 9 0 14 -261234
+-66577 0;
+#X obj 31 111 cnv 15 400 80 empty empty writeProperties 20 12 0 14
+-233017 -66577 0;
+#X obj 39 137 hradio 15 1 0 8 \$0-propwriteId \$0-propwriteId empty
+0 -8 0 10 -262144 -1 -1 0;
+#X obj 40 160 cnv 15 260 20 empty \$0-propwriteName <none> 10 9 0 14
+-203904 -66577 0;
+#X obj 311 160 nbx 5 20 -1e+37 1e+37 0 0 \$0-propwriteValue \$0-propwriteValue
+empty 0 -8 0 14 -204786 -1 -1 0 256;
+#X msg 66 315 get 50_fields;
+#X msg 83 392 set quality 5;
+#X obj 66 294 r \$0-propget;
+#X obj 83 372 r \$0-propset;
+#X msg 87 340 get Hue Saturation;
+#X text 208 340 you can query several properties at once;
+#X text 146 295 query a (readable) property via a message "get <propname>"
+;
+#X text 161 372 set a (writable) property via a message "set <prop>
+<value>";
+#X text 70 224 this will return 2 lists of readable and writeable properties
+through the "info" outlet of [pix_video].;
+#X text 72 257 NOTE that propertynames are always single symbols that
+might contain spaces (and other weird characters);
+#X text 103 203 INIT: query names of all available properties;
+#X text 83 423 ATOMIC setting of multiple properties;
+#X msg 99 441 clearProps;
+#X msg 99 503 applyProps;
+#X msg 99 481 setProps Hue 10;
+#X msg 99 461 setProps Contrast 40;
+#X text 247 443 clear the current property list;
+#X text 247 461 add values to the property list (don't apply yet);
+#X text 247 479 add values to the property list (don't apply yet);
+#X text 247 499 apply current property list;
+#X connect 0 0 4 0;
+#X connect 10 0 4 0;
+#X connect 11 0 4 0;
+#X connect 12 0 10 0;
+#X connect 13 0 11 0;
+#X connect 14 0 4 0;
+#X connect 22 0 4 0;
+#X connect 23 0 4 0;
+#X connect 24 0 4 0;
+#X connect 25 0 4 0;
+#X restore 336 430 pd properties;
+#X obj 618 459 t a a;
+#X obj 618 480 print info;
+#X obj 655 459 s \$0-info;
+#X obj 586 376 t a a;
+#N canvas 166 121 570 420 device 0;
+#X obj 204 60 cnv 20 20 20 empty \$0-open-canvas 1 4 10 0 16 -233017
+-1 0;
+#X obj 60 61 hradio 18 1 0 8 empty empty empty 0 -6 0 8 -225271 -1
+-1 1;
+#X obj 60 13 inlet;
+#X msg 160 254 label \$1;
+#X obj 160 232 makefilename %d;
+#X obj 60 108 int;
+#X obj 60 337 outlet;
+#X obj 160 277 send \$0-open-canvas;
+#X msg 130 170 device \$1;
+#X obj 60 130 t b f;
+#X obj 130 192 t a a;
+#X obj 130 298 list prepend set;
+#X obj 130 320 list trim;
+#X obj 160 211 route device;
+#X obj 130 116 loadbang;
+#X msg 130 138 0;
+#X connect 1 0 5 0;
+#X connect 2 0 1 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 9 0;
+#X connect 8 0 10 0;
+#X connect 9 0 6 0;
+#X connect 9 1 8 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 6 0;
+#X connect 13 0 4 0;
+#X connect 14 0 15 0;
+#X connect 15 0 8 0;
+#X coords 0 -1 1 1 165 20 1 60 60;
+#X restore 609 187 pd device;
+#X obj 36 565 cnv 15 400 30 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 48 565 NOTE: usually you cannot use a camera more than once
+at the same time!;
+#X obj 563 413 cnv 15 80 30 empty empty empty 20 12 0 14 -24198 -66577
+0;
+#X obj 567 418 pix_video;
+#X obj 657 393 print videoctl;
+#X obj 647 346 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 665 345 driver \$1;
+#X text 686 286 (if available);
+#X text 16 388 Inlet 1: dialog: open a dialog to configure the input
+device (depending on driver / Operating System);
+#X text 18 501 Outlet 2: info (for enumerating devices \, querying
+properties \, ...);
+#X text 15 423 Inlet 1: enumProps \, get \, set \, clearProps \, setProps
+\, applyProps: interact with driver/device properties;
+#X obj 657 374 r \$0-ctl;
+#X text 54 600 you can use [pix_buffer] to distribute the same pix
+to different parts of your render-chain;
+#X msg 625 235 device /dev/fw1;
+#X connect 17 0 18 0;
+#X connect 18 0 17 0;
+#X connect 22 0 21 0;
+#X connect 29 0 46 0;
+#X connect 30 0 41 0;
+#X connect 31 0 41 0;
+#X connect 32 0 41 0;
+#X connect 33 0 41 0;
+#X connect 34 0 41 0;
+#X connect 35 0 41 0;
+#X connect 36 0 41 0;
+#X connect 38 0 39 0;
+#X connect 38 1 40 0;
+#X connect 41 0 46 0;
+#X connect 41 1 47 0;
+#X connect 42 0 35 0;
+#X connect 46 0 22 0;
+#X connect 46 1 38 0;
+#X connect 48 0 49 0;
+#X connect 49 0 41 0;
+#X connect 54 0 41 0;
+#X connect 56 0 41 0;

+ 4 - 0
data/README.txt

@@ -0,0 +1,4 @@
+data
+====
+
+This folder contains the preset files of the state saving system.

+ 88 - 0
data/ev_example_360_degree_livecam.txt

@@ -0,0 +1,88 @@
+======================== GLOBAL ========================
+======================== SCENE 0 ========================
+# SETTINGS
+/ev/360/0/calib/ds/occupy 1
+/ev/360/0/calib/ds/delay 0
+/ev/360/0/calib/ds/slave 0
+/ev/360/0/shift/ds/occupy 1
+/ev/360/0/shift/ds/delay 0
+/ev/360/0/shift/ds/slave 0
+/ev/360/0/offset/y/ds/occupy 1
+/ev/360/0/offset/y/ds/delay 0
+/ev/360/0/offset/y/ds/slave 0
+/ev/360/0/rot/ds/occupy 1
+/ev/360/0/rot/ds/delay 0
+/ev/360/0/rot/ds/slave 0
+/ev/360/0/stretch/y/ds/occupy 1
+/ev/360/0/stretch/y/ds/delay 0
+/ev/360/0/stretch/y/ds/slave 0
+/ev/360/0/stretch/x/ds/occupy 1
+/ev/360/0/stretch/x/ds/delay 0
+/ev/360/0/stretch/x/ds/slave 0
+/ev/360/0/center/y/ds/occupy 1
+/ev/360/0/center/y/ds/delay 0
+/ev/360/0/center/y/ds/slave 0
+/ev/360/0/center/x/ds/occupy 1
+/ev/360/0/center/x/ds/delay 0
+/ev/360/0/center/x/ds/slave 0
+/ev/360/0/state/ds/occupy 0
+/ev/360/0/state/ds/delay 0
+/ev/360/0/state/ds/slave 0
+/ev/cam/0/state/ds/occupy 1
+/ev/cam/0/state/ds/delay 0
+/ev/cam/0/state/ds/slave 0
+/ev/cam/0/flip/vertical/ds/occupy 1
+/ev/cam/0/flip/vertical/ds/delay 0
+/ev/cam/0/flip/vertical/ds/slave 0
+/ev/cam/0/flip/horizontal/ds/occupy 1
+/ev/cam/0/flip/horizontal/ds/delay 0
+/ev/cam/0/flip/horizontal/ds/slave 0
+/ev/mouse/texture/sensitivity/ds/occupy 1
+/ev/mouse/texture/sensitivity/ds/delay 0
+/ev/mouse/texture/sensitivity/ds/slave 0
+/ev/mouse/select_radius/ds/occupy 1
+/ev/mouse/select_radius/ds/delay 0
+/ev/mouse/select_radius/ds/slave 0
+/ev/gemwin/border/ds/occupy 1
+/ev/gemwin/border/ds/delay 0
+/ev/gemwin/border/ds/slave 0
+/ev/gemwin/lighting/ds/occupy 1
+/ev/gemwin/lighting/ds/delay 0
+/ev/gemwin/lighting/ds/slave 0
+/ev/gemwin/frame/ds/occupy 1
+/ev/gemwin/frame/ds/delay 0
+/ev/gemwin/frame/ds/slave 0
+/ev/gemwin/offset/y/ds/occupy 1
+/ev/gemwin/offset/y/ds/delay 0
+/ev/gemwin/offset/y/ds/slave 0
+/ev/gemwin/offset/x/ds/occupy 1
+/ev/gemwin/offset/x/ds/delay 0
+/ev/gemwin/offset/x/ds/slave 0
+/ev/gemwin/dimen/y/ds/occupy 1
+/ev/gemwin/dimen/y/ds/delay 0
+/ev/gemwin/dimen/y/ds/slave 0
+/ev/gemwin/dimen/x/ds/occupy 1
+/ev/gemwin/dimen/x/ds/delay 0
+/ev/gemwin/dimen/x/ds/slave 0
+# DATA
+/ev/360/0/calib 0
+/ev/360/0/shift 0
+/ev/360/0/offset/y 0.2
+/ev/360/0/rot 0
+/ev/360/0/stretch/y 0.68
+/ev/360/0/stretch/x 0.4
+/ev/360/0/center/y -114
+/ev/360/0/center/x -116
+/ev/360/0/state 1
+/ev/cam/0/state 1
+/ev/cam/0/flip/vertical 0
+/ev/cam/0/flip/horizontal 0
+/ev/mouse/texture/sensitivity 50
+/ev/mouse/select_radius 0.202809
+/ev/gemwin/border 1
+/ev/gemwin/lighting 0
+/ev/gemwin/frame 25
+/ev/gemwin/offset/y 0
+/ev/gemwin/offset/x 0
+/ev/gemwin/dimen/y 600
+/ev/gemwin/dimen/x 800

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1165 - 0
data/ev_example_3d_preset.txt


+ 616 - 0
data/ev_example_data_storage_system.txt

@@ -0,0 +1,616 @@
+======================== GLOBAL ========================
+======================== SCENE 0 ========================
+# SETTINGS
+/i/am/also/a/variable/ds/occupy 1
+/i/am/also/a/variable/ds/delay 0
+/i/am/also/a/variable/ds/morph/timegrain 20
+/i/am/also/a/variable/ds/morph/curve/quality 0
+/i/am/also/a/variable/ds/slave 0
+/i/am/also/a/variable/ds/morph/curve/resolution 100
+/i/am/also/a/variable/ds/morph/curve/weight 0
+/i/am/also/a/variable/ds/morph/curve/shape 0
+/i/am/also/a/variable/ds/morph/time 0
+/i/am/also/a/variable/ds/morph 0
+/i/am/a/variable/ds/occupy 1
+/i/am/a/variable/ds/delay 0
+/i/am/a/variable/ds/morph/timegrain 20
+/i/am/a/variable/ds/morph/curve/quality 0
+/i/am/a/variable/ds/slave 0
+/i/am/a/variable/ds/morph/curve/resolution 100
+/i/am/a/variable/ds/morph/curve/weight 0
+/i/am/a/variable/ds/morph/curve/shape 0
+/i/am/a/variable/ds/morph/time 0
+/i/am/a/variable/ds/morph 0
+/ev/pro/projection/grid/res/y/ds/occupy 1
+/ev/pro/projection/grid/res/y/ds/delay 0
+/ev/pro/projection/grid/res/y/ds/slave 0
+/ev/pro/projection/grid/res/x/ds/occupy 1
+/ev/pro/projection/grid/res/x/ds/delay 0
+/ev/pro/projection/grid/res/x/ds/slave 0
+/ev/pro/projection/grid/width/ds/occupy 1
+/ev/pro/projection/grid/width/ds/delay 0
+/ev/pro/projection/grid/width/ds/slave 0
+/ev/pro/projection/grid/color/a/ds/occupy 1
+/ev/pro/projection/grid/color/a/ds/delay 0
+/ev/pro/projection/grid/color/a/ds/slave 0
+/ev/pro/projection/grid/color/v/ds/occupy 1
+/ev/pro/projection/grid/color/v/ds/delay 0
+/ev/pro/projection/grid/color/v/ds/slave 0
+/ev/pro/projection/grid/color/s/ds/occupy 1
+/ev/pro/projection/grid/color/s/ds/delay 0
+/ev/pro/projection/grid/color/s/ds/slave 0
+/ev/pro/projection/grid/color/h/ds/occupy 1
+/ev/pro/projection/grid/color/h/ds/delay 0
+/ev/pro/projection/grid/color/h/ds/slave 0
+/ev/pro/projection/grid/state/ds/occupy 1
+/ev/pro/projection/grid/state/ds/delay 0
+/ev/pro/projection/grid/state/ds/slave 0
+/ev/pro/projection/grid/tex/flip/vertical/ds/occupy 1
+/ev/pro/projection/grid/tex/flip/vertical/ds/delay 0
+/ev/pro/projection/grid/tex/flip/vertical/ds/slave 0
+/ev/pro/projection/grid/tex/flip/horizontal/ds/occupy 1
+/ev/pro/projection/grid/tex/flip/horizontal/ds/delay 0
+/ev/pro/projection/grid/tex/flip/horizontal/ds/slave 0
+/ev/pro/projection/grid/tex/filename/ds/occupy 1
+/ev/pro/projection/grid/tex/filename/ds/delay 0
+/ev/pro/projection/grid/tex/filename/ds/slave 0
+/ev/pro/projection/grid/tex/state/ds/occupy 1
+/ev/pro/projection/grid/tex/state/ds/delay 0
+/ev/pro/projection/grid/tex/state/ds/slave 0
+/ev/pro/projection/cursor/mode/ds/occupy 1
+/ev/pro/projection/cursor/mode/ds/delay 0
+/ev/pro/projection/cursor/mode/ds/slave 0
+/ev/pro/projection/state/ds/occupy 1
+/ev/pro/projection/state/ds/delay 0
+/ev/pro/projection/state/ds/slave 0
+/ev/pro/projection/vertex/top/left/x/ds/occupy 1
+/ev/pro/projection/vertex/top/left/x/ds/delay 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/left/x/ds/slave 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/time 0
+/ev/pro/projection/vertex/top/left/x/ds/morph 0
+/ev/pro/projection/vertex/top/left/y/ds/occupy 1
+/ev/pro/projection/vertex/top/left/y/ds/delay 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/left/y/ds/slave 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/time 0
+/ev/pro/projection/vertex/top/left/y/ds/morph 0
+/ev/pro/projection/vertex/top/right/x/ds/occupy 1
+/ev/pro/projection/vertex/top/right/x/ds/delay 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/right/x/ds/slave 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/time 0
+/ev/pro/projection/vertex/top/right/x/ds/morph 0
+/ev/pro/projection/vertex/top/right/y/ds/occupy 1
+/ev/pro/projection/vertex/top/right/y/ds/delay 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/right/y/ds/slave 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/time 0
+/ev/pro/projection/vertex/top/right/y/ds/morph 0
+/ev/pro/projection/vertex/bottom/left/x/ds/occupy 1
+/ev/pro/projection/vertex/bottom/left/x/ds/delay 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/left/x/ds/slave 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph 0
+/ev/pro/projection/vertex/bottom/left/y/ds/occupy 1
+/ev/pro/projection/vertex/bottom/left/y/ds/delay 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/left/y/ds/slave 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph 0
+/ev/pro/projection/vertex/bottom/right/x/ds/occupy 1
+/ev/pro/projection/vertex/bottom/right/x/ds/delay 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/right/x/ds/slave 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph 0
+/ev/pro/projection/vertex/bottom/right/y/ds/occupy 1
+/ev/pro/projection/vertex/bottom/right/y/ds/delay 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/right/y/ds/slave 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph 0
+/ev/mouse/texture/sensitivity/ds/occupy 1
+/ev/mouse/texture/sensitivity/ds/delay 0
+/ev/mouse/texture/sensitivity/ds/slave 0
+/ev/mouse/select_radius/ds/occupy 1
+/ev/mouse/select_radius/ds/delay 0
+/ev/mouse/select_radius/ds/slave 0
+/ev/gemwin/border/ds/occupy 0
+/ev/gemwin/border/ds/delay 0
+/ev/gemwin/border/ds/slave 0
+/ev/gemwin/lighting/ds/occupy 0
+/ev/gemwin/lighting/ds/delay 0
+/ev/gemwin/lighting/ds/slave 0
+/ev/gemwin/frame/ds/occupy 0
+/ev/gemwin/frame/ds/delay 0
+/ev/gemwin/frame/ds/slave 0
+/ev/gemwin/offset/y/ds/occupy 0
+/ev/gemwin/offset/y/ds/delay 0
+/ev/gemwin/offset/y/ds/slave 0
+/ev/gemwin/offset/x/ds/occupy 0
+/ev/gemwin/offset/x/ds/delay 0
+/ev/gemwin/offset/x/ds/slave 0
+/ev/gemwin/dimen/y/ds/occupy 0
+/ev/gemwin/dimen/y/ds/delay 0
+/ev/gemwin/dimen/y/ds/slave 0
+/ev/gemwin/dimen/x/ds/occupy 0
+/ev/gemwin/dimen/x/ds/delay 0
+/ev/gemwin/dimen/x/ds/slave 0
+# DATA
+/i/am/also/a/variable 2
+/i/am/a/variable 1
+/ev/pro/projection/grid/res/y 16
+/ev/pro/projection/grid/res/x 16
+/ev/pro/projection/grid/width 2
+/ev/pro/projection/grid/color/a 0.6
+/ev/pro/projection/grid/color/v 1
+/ev/pro/projection/grid/color/s 0.6
+/ev/pro/projection/grid/color/h 0.745098
+/ev/pro/projection/grid/state 1
+/ev/pro/projection/grid/tex/flip/vertical 0
+/ev/pro/projection/grid/tex/flip/horizontal 0
+/ev/pro/projection/grid/tex/filename ../media/grid.png
+/ev/pro/projection/grid/tex/state 0
+/ev/pro/projection/cursor/mode 2
+/ev/pro/projection/state 1
+/ev/pro/projection/vertex/top/left/x -1
+/ev/pro/projection/vertex/top/left/y 1
+/ev/pro/projection/vertex/top/right/x 2.97333
+/ev/pro/projection/vertex/top/right/y 2.73333
+/ev/pro/projection/vertex/bottom/left/x -2.57333
+/ev/pro/projection/vertex/bottom/left/y -1.90667
+/ev/pro/projection/vertex/bottom/right/x 1
+/ev/pro/projection/vertex/bottom/right/y -1
+/ev/mouse/texture/sensitivity 50
+/ev/mouse/select_radius 0.2
+/ev/gemwin/border 1
+/ev/gemwin/lighting 0
+/ev/gemwin/frame 25
+/ev/gemwin/offset/y 0
+/ev/gemwin/offset/x 0
+/ev/gemwin/dimen/y 600
+/ev/gemwin/dimen/x 800
+======================== SCENE 1 ========================
+# SETTINGS
+/i/am/also/a/variable/ds/occupy 1
+/i/am/also/a/variable/ds/delay 0
+/i/am/also/a/variable/ds/morph/timegrain 20
+/i/am/also/a/variable/ds/morph/curve/quality 0
+/i/am/also/a/variable/ds/slave 0
+/i/am/also/a/variable/ds/morph/curve/resolution 100
+/i/am/also/a/variable/ds/morph/curve/weight 0
+/i/am/also/a/variable/ds/morph/curve/shape 0
+/i/am/also/a/variable/ds/morph/time 0
+/i/am/also/a/variable/ds/morph 0
+/i/am/a/variable/ds/occupy 1
+/i/am/a/variable/ds/delay 0
+/i/am/a/variable/ds/morph/timegrain 20
+/i/am/a/variable/ds/morph/curve/quality 0
+/i/am/a/variable/ds/slave 0
+/i/am/a/variable/ds/morph/curve/resolution 100
+/i/am/a/variable/ds/morph/curve/weight 0
+/i/am/a/variable/ds/morph/curve/shape 0
+/i/am/a/variable/ds/morph/time 0
+/i/am/a/variable/ds/morph 0
+/ev/pro/projection/grid/res/y/ds/occupy 1
+/ev/pro/projection/grid/res/y/ds/delay 0
+/ev/pro/projection/grid/res/y/ds/slave 0
+/ev/pro/projection/grid/res/x/ds/occupy 1
+/ev/pro/projection/grid/res/x/ds/delay 0
+/ev/pro/projection/grid/res/x/ds/slave 0
+/ev/pro/projection/grid/width/ds/occupy 1
+/ev/pro/projection/grid/width/ds/delay 0
+/ev/pro/projection/grid/width/ds/slave 0
+/ev/pro/projection/grid/color/a/ds/occupy 1
+/ev/pro/projection/grid/color/a/ds/delay 0
+/ev/pro/projection/grid/color/a/ds/slave 0
+/ev/pro/projection/grid/color/v/ds/occupy 1
+/ev/pro/projection/grid/color/v/ds/delay 0
+/ev/pro/projection/grid/color/v/ds/slave 0
+/ev/pro/projection/grid/color/s/ds/occupy 1
+/ev/pro/projection/grid/color/s/ds/delay 0
+/ev/pro/projection/grid/color/s/ds/slave 0
+/ev/pro/projection/grid/color/h/ds/occupy 1
+/ev/pro/projection/grid/color/h/ds/delay 0
+/ev/pro/projection/grid/color/h/ds/slave 0
+/ev/pro/projection/grid/state/ds/occupy 1
+/ev/pro/projection/grid/state/ds/delay 0
+/ev/pro/projection/grid/state/ds/slave 0
+/ev/pro/projection/grid/tex/flip/vertical/ds/occupy 1
+/ev/pro/projection/grid/tex/flip/vertical/ds/delay 0
+/ev/pro/projection/grid/tex/flip/vertical/ds/slave 0
+/ev/pro/projection/grid/tex/flip/horizontal/ds/occupy 1
+/ev/pro/projection/grid/tex/flip/horizontal/ds/delay 0
+/ev/pro/projection/grid/tex/flip/horizontal/ds/slave 0
+/ev/pro/projection/grid/tex/filename/ds/occupy 1
+/ev/pro/projection/grid/tex/filename/ds/delay 0
+/ev/pro/projection/grid/tex/filename/ds/slave 0
+/ev/pro/projection/grid/tex/state/ds/occupy 1
+/ev/pro/projection/grid/tex/state/ds/delay 0
+/ev/pro/projection/grid/tex/state/ds/slave 0
+/ev/pro/projection/cursor/mode/ds/occupy 1
+/ev/pro/projection/cursor/mode/ds/delay 0
+/ev/pro/projection/cursor/mode/ds/slave 0
+/ev/pro/projection/state/ds/occupy 1
+/ev/pro/projection/state/ds/delay 0
+/ev/pro/projection/state/ds/slave 0
+/ev/pro/projection/vertex/top/left/x/ds/occupy 1
+/ev/pro/projection/vertex/top/left/x/ds/delay 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/left/x/ds/slave 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/time 0
+/ev/pro/projection/vertex/top/left/x/ds/morph 0
+/ev/pro/projection/vertex/top/left/y/ds/occupy 1
+/ev/pro/projection/vertex/top/left/y/ds/delay 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/left/y/ds/slave 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/time 0
+/ev/pro/projection/vertex/top/left/y/ds/morph 0
+/ev/pro/projection/vertex/top/right/x/ds/occupy 1
+/ev/pro/projection/vertex/top/right/x/ds/delay 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/right/x/ds/slave 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/time 0
+/ev/pro/projection/vertex/top/right/x/ds/morph 0
+/ev/pro/projection/vertex/top/right/y/ds/occupy 1
+/ev/pro/projection/vertex/top/right/y/ds/delay 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/right/y/ds/slave 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/time 0
+/ev/pro/projection/vertex/top/right/y/ds/morph 0
+/ev/pro/projection/vertex/bottom/left/x/ds/occupy 1
+/ev/pro/projection/vertex/bottom/left/x/ds/delay 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/left/x/ds/slave 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph 0
+/ev/pro/projection/vertex/bottom/left/y/ds/occupy 1
+/ev/pro/projection/vertex/bottom/left/y/ds/delay 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/left/y/ds/slave 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph 0
+/ev/pro/projection/vertex/bottom/right/x/ds/occupy 1
+/ev/pro/projection/vertex/bottom/right/x/ds/delay 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/right/x/ds/slave 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph 0
+/ev/pro/projection/vertex/bottom/right/y/ds/occupy 1
+/ev/pro/projection/vertex/bottom/right/y/ds/delay 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/right/y/ds/slave 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph 0
+/ev/mouse/texture/sensitivity/ds/occupy 1
+/ev/mouse/texture/sensitivity/ds/delay 0
+/ev/mouse/texture/sensitivity/ds/slave 0
+/ev/mouse/select_radius/ds/occupy 1
+/ev/mouse/select_radius/ds/delay 0
+/ev/mouse/select_radius/ds/slave 0
+/ev/gemwin/border/ds/occupy 0
+/ev/gemwin/border/ds/delay 0
+/ev/gemwin/border/ds/slave 0
+/ev/gemwin/lighting/ds/occupy 0
+/ev/gemwin/lighting/ds/delay 0
+/ev/gemwin/lighting/ds/slave 0
+/ev/gemwin/frame/ds/occupy 0
+/ev/gemwin/frame/ds/delay 0
+/ev/gemwin/frame/ds/slave 0
+/ev/gemwin/offset/y/ds/occupy 0
+/ev/gemwin/offset/y/ds/delay 0
+/ev/gemwin/offset/y/ds/slave 0
+/ev/gemwin/offset/x/ds/occupy 0
+/ev/gemwin/offset/x/ds/delay 0
+/ev/gemwin/offset/x/ds/slave 0
+/ev/gemwin/dimen/y/ds/occupy 0
+/ev/gemwin/dimen/y/ds/delay 0
+/ev/gemwin/dimen/y/ds/slave 0
+/ev/gemwin/dimen/x/ds/occupy 0
+/ev/gemwin/dimen/x/ds/delay 0
+/ev/gemwin/dimen/x/ds/slave 0
+# DATA
+/i/am/also/a/variable 58
+/i/am/a/variable 3
+/ev/pro/projection/grid/res/y 16
+/ev/pro/projection/grid/res/x 16
+/ev/pro/projection/grid/width 2
+/ev/pro/projection/grid/color/a 0.6
+/ev/pro/projection/grid/color/v 1
+/ev/pro/projection/grid/color/s 0.6
+/ev/pro/projection/grid/color/h 0.745098
+/ev/pro/projection/grid/state 1
+/ev/pro/projection/grid/tex/flip/vertical 0
+/ev/pro/projection/grid/tex/flip/horizontal 0
+/ev/pro/projection/grid/tex/filename ../media/grid.png
+/ev/pro/projection/grid/tex/state 0
+/ev/pro/projection/cursor/mode 2
+/ev/pro/projection/state 1
+/ev/pro/projection/vertex/top/left/x -2.56
+/ev/pro/projection/vertex/top/left/y 1.4
+/ev/pro/projection/vertex/top/right/x 1.25333
+/ev/pro/projection/vertex/top/right/y 0.786663
+/ev/pro/projection/vertex/bottom/left/x -2.57333
+/ev/pro/projection/vertex/bottom/left/y -1.90667
+/ev/pro/projection/vertex/bottom/right/x 1
+/ev/pro/projection/vertex/bottom/right/y -1
+/ev/mouse/texture/sensitivity 50
+/ev/mouse/select_radius 0.2
+/ev/gemwin/border 1
+/ev/gemwin/lighting 0
+/ev/gemwin/frame 25
+/ev/gemwin/offset/y 0
+/ev/gemwin/offset/x 0
+/ev/gemwin/dimen/y 600
+/ev/gemwin/dimen/x 800
+======================== SCENE 2 ========================
+# SETTINGS
+/i/am/also/a/variable/ds/occupy 1
+/i/am/also/a/variable/ds/delay 0
+/i/am/also/a/variable/ds/morph/timegrain 20
+/i/am/also/a/variable/ds/morph/curve/quality 0
+/i/am/also/a/variable/ds/slave 0
+/i/am/also/a/variable/ds/morph/curve/resolution 100
+/i/am/also/a/variable/ds/morph/curve/weight 0
+/i/am/also/a/variable/ds/morph/curve/shape 0
+/i/am/also/a/variable/ds/morph/time 0
+/i/am/also/a/variable/ds/morph 0
+/i/am/a/variable/ds/occupy 1
+/i/am/a/variable/ds/delay 0
+/i/am/a/variable/ds/morph/timegrain 20
+/i/am/a/variable/ds/morph/curve/quality 0
+/i/am/a/variable/ds/slave 0
+/i/am/a/variable/ds/morph/curve/resolution 100
+/i/am/a/variable/ds/morph/curve/weight 0
+/i/am/a/variable/ds/morph/curve/shape 0
+/i/am/a/variable/ds/morph/time 0
+/i/am/a/variable/ds/morph 0
+/ev/pro/projection/grid/res/y/ds/occupy 1
+/ev/pro/projection/grid/res/y/ds/delay 0
+/ev/pro/projection/grid/res/y/ds/slave 0
+/ev/pro/projection/grid/res/x/ds/occupy 1
+/ev/pro/projection/grid/res/x/ds/delay 0
+/ev/pro/projection/grid/res/x/ds/slave 0
+/ev/pro/projection/grid/width/ds/occupy 1
+/ev/pro/projection/grid/width/ds/delay 0
+/ev/pro/projection/grid/width/ds/slave 0
+/ev/pro/projection/grid/color/a/ds/occupy 1
+/ev/pro/projection/grid/color/a/ds/delay 0
+/ev/pro/projection/grid/color/a/ds/slave 0
+/ev/pro/projection/grid/color/v/ds/occupy 1
+/ev/pro/projection/grid/color/v/ds/delay 0
+/ev/pro/projection/grid/color/v/ds/slave 0
+/ev/pro/projection/grid/color/s/ds/occupy 1
+/ev/pro/projection/grid/color/s/ds/delay 0
+/ev/pro/projection/grid/color/s/ds/slave 0
+/ev/pro/projection/grid/color/h/ds/occupy 1
+/ev/pro/projection/grid/color/h/ds/delay 0
+/ev/pro/projection/grid/color/h/ds/slave 0
+/ev/pro/projection/grid/state/ds/occupy 1
+/ev/pro/projection/grid/state/ds/delay 0
+/ev/pro/projection/grid/state/ds/slave 0
+/ev/pro/projection/grid/tex/flip/vertical/ds/occupy 1
+/ev/pro/projection/grid/tex/flip/vertical/ds/delay 0
+/ev/pro/projection/grid/tex/flip/vertical/ds/slave 0
+/ev/pro/projection/grid/tex/flip/horizontal/ds/occupy 1
+/ev/pro/projection/grid/tex/flip/horizontal/ds/delay 0
+/ev/pro/projection/grid/tex/flip/horizontal/ds/slave 0
+/ev/pro/projection/grid/tex/filename/ds/occupy 1
+/ev/pro/projection/grid/tex/filename/ds/delay 0
+/ev/pro/projection/grid/tex/filename/ds/slave 0
+/ev/pro/projection/grid/tex/state/ds/occupy 1
+/ev/pro/projection/grid/tex/state/ds/delay 0
+/ev/pro/projection/grid/tex/state/ds/slave 0
+/ev/pro/projection/cursor/mode/ds/occupy 1
+/ev/pro/projection/cursor/mode/ds/delay 0
+/ev/pro/projection/cursor/mode/ds/slave 0
+/ev/pro/projection/state/ds/occupy 1
+/ev/pro/projection/state/ds/delay 0
+/ev/pro/projection/state/ds/slave 0
+/ev/pro/projection/vertex/top/left/x/ds/occupy 1
+/ev/pro/projection/vertex/top/left/x/ds/delay 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/left/x/ds/slave 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/left/x/ds/morph/time 0
+/ev/pro/projection/vertex/top/left/x/ds/morph 0
+/ev/pro/projection/vertex/top/left/y/ds/occupy 1
+/ev/pro/projection/vertex/top/left/y/ds/delay 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/left/y/ds/slave 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/left/y/ds/morph/time 0
+/ev/pro/projection/vertex/top/left/y/ds/morph 0
+/ev/pro/projection/vertex/top/right/x/ds/occupy 1
+/ev/pro/projection/vertex/top/right/x/ds/delay 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/right/x/ds/slave 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/right/x/ds/morph/time 0
+/ev/pro/projection/vertex/top/right/x/ds/morph 0
+/ev/pro/projection/vertex/top/right/y/ds/occupy 1
+/ev/pro/projection/vertex/top/right/y/ds/delay 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/top/right/y/ds/slave 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/top/right/y/ds/morph/time 0
+/ev/pro/projection/vertex/top/right/y/ds/morph 0
+/ev/pro/projection/vertex/bottom/left/x/ds/occupy 1
+/ev/pro/projection/vertex/bottom/left/x/ds/delay 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/left/x/ds/slave 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/left/x/ds/morph 0
+/ev/pro/projection/vertex/bottom/left/y/ds/occupy 1
+/ev/pro/projection/vertex/bottom/left/y/ds/delay 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/left/y/ds/slave 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/left/y/ds/morph 0
+/ev/pro/projection/vertex/bottom/right/x/ds/occupy 1
+/ev/pro/projection/vertex/bottom/right/x/ds/delay 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/right/x/ds/slave 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/right/x/ds/morph 0
+/ev/pro/projection/vertex/bottom/right/y/ds/occupy 1
+/ev/pro/projection/vertex/bottom/right/y/ds/delay 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/timegrain 20
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/quality 0
+/ev/pro/projection/vertex/bottom/right/y/ds/slave 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/weight 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/curve/shape 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph/time 0
+/ev/pro/projection/vertex/bottom/right/y/ds/morph 0
+/ev/mouse/texture/sensitivity/ds/occupy 1
+/ev/mouse/texture/sensitivity/ds/delay 0
+/ev/mouse/texture/sensitivity/ds/slave 0
+/ev/mouse/select_radius/ds/occupy 1
+/ev/mouse/select_radius/ds/delay 0
+/ev/mouse/select_radius/ds/slave 0
+/ev/gemwin/border/ds/occupy 0
+/ev/gemwin/border/ds/delay 0
+/ev/gemwin/border/ds/slave 0
+/ev/gemwin/lighting/ds/occupy 0
+/ev/gemwin/lighting/ds/delay 0
+/ev/gemwin/lighting/ds/slave 0
+/ev/gemwin/frame/ds/occupy 0
+/ev/gemwin/frame/ds/delay 0
+/ev/gemwin/frame/ds/slave 0
+/ev/gemwin/offset/y/ds/occupy 0
+/ev/gemwin/offset/y/ds/delay 0
+/ev/gemwin/offset/y/ds/slave 0
+/ev/gemwin/offset/x/ds/occupy 0
+/ev/gemwin/offset/x/ds/delay 0
+/ev/gemwin/offset/x/ds/slave 0
+/ev/gemwin/dimen/y/ds/occupy 0
+/ev/gemwin/dimen/y/ds/delay 0
+/ev/gemwin/dimen/y/ds/slave 0
+/ev/gemwin/dimen/x/ds/occupy 0
+/ev/gemwin/dimen/x/ds/delay 0
+/ev/gemwin/dimen/x/ds/slave 0
+# DATA
+/i/am/also/a/variable 114
+/i/am/a/variable 66
+/ev/pro/projection/grid/res/y 16
+/ev/pro/projection/grid/res/x 16
+/ev/pro/projection/grid/width 2
+/ev/pro/projection/grid/color/a 0.6
+/ev/pro/projection/grid/color/v 1
+/ev/pro/projection/grid/color/s 0.6
+/ev/pro/projection/grid/color/h 0.745098
+/ev/pro/projection/grid/state 1
+/ev/pro/projection/grid/tex/flip/vertical 0
+/ev/pro/projection/grid/tex/flip/horizontal 0
+/ev/pro/projection/grid/tex/filename ../media/grid.png
+/ev/pro/projection/grid/tex/state 0
+/ev/pro/projection/cursor/mode 2
+/ev/pro/projection/state 1
+/ev/pro/projection/vertex/top/left/x -1.58667
+/ev/pro/projection/vertex/top/left/y 2.82667
+/ev/pro/projection/vertex/top/right/x 2.97333
+/ev/pro/projection/vertex/top/right/y 2.73333
+/ev/pro/projection/vertex/bottom/left/x -0.279997
+/ev/pro/projection/vertex/bottom/left/y -2.16
+/ev/pro/projection/vertex/bottom/right/x 4.30667
+/ev/pro/projection/vertex/bottom/right/y -2.6
+/ev/mouse/texture/sensitivity 50
+/ev/mouse/select_radius 0.2
+/ev/gemwin/border 1
+/ev/gemwin/lighting 0
+/ev/gemwin/frame 25
+/ev/gemwin/offset/y 0
+/ev/gemwin/offset/x 0
+/ev/gemwin/dimen/y 600
+/ev/gemwin/dimen/x 800

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1752 - 0
data/ev_example_framebuffers_preset.txt


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1087 - 0
data/ev_example_grids_preset.txt


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1853 - 0
data/ev_example_masking_preset.txt


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 2269 - 0
data/ev_example_panoramic_360_preset.txt


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1267 - 0
data/ev_example_panoramic_preset.txt


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1000 - 0
data/ev_example_preset_file_operations.txt


+ 856 - 0
data/ev_example_scene_transitions_main.txt

@@ -0,0 +1,856 @@
+======================== GLOBAL ========================
+======================== SCENE 0 ========================
+# SETTINGS
+/ev/gemwin/dimen/x/ds/occupy 1
+/ev/gemwin/dimen/x/ds/delay 0
+/ev/gemwin/dimen/x/ds/morph/timegrain 20
+/ev/gemwin/dimen/x/ds/morph/curve/quality 0
+/ev/gemwin/dimen/x/ds/slave 0
+/ev/gemwin/dimen/x/ds/morph/curve/resolution 100
+/ev/gemwin/dimen/x/ds/morph/curve/weight 0
+/ev/gemwin/dimen/x/ds/morph/curve/shape 0
+/ev/gemwin/dimen/x/ds/morph/time 0
+/ev/gemwin/dimen/x/ds/morph 0
+/ev/gemwin/dimen/y/ds/occupy 1
+/ev/gemwin/dimen/y/ds/delay 0
+/ev/gemwin/dimen/y/ds/morph/timegrain 20
+/ev/gemwin/dimen/y/ds/morph/curve/quality 0
+/ev/gemwin/dimen/y/ds/slave 0
+/ev/gemwin/dimen/y/ds/morph/curve/resolution 100
+/ev/gemwin/dimen/y/ds/morph/curve/weight 0
+/ev/gemwin/dimen/y/ds/morph/curve/shape 0
+/ev/gemwin/dimen/y/ds/morph/time 0
+/ev/gemwin/dimen/y/ds/morph 0
+/ev/gemwin/offset/x/ds/occupy 1
+/ev/gemwin/offset/x/ds/delay 0
+/ev/gemwin/offset/x/ds/morph/timegrain 20
+/ev/gemwin/offset/x/ds/morph/curve/quality 0
+/ev/gemwin/offset/x/ds/slave 0
+/ev/gemwin/offset/x/ds/morph/curve/resolution 100
+/ev/gemwin/offset/x/ds/morph/curve/weight 0
+/ev/gemwin/offset/x/ds/morph/curve/shape 0
+/ev/gemwin/offset/x/ds/morph/time 0
+/ev/gemwin/offset/x/ds/morph 0
+/ev/gemwin/offset/y/ds/occupy 1
+/ev/gemwin/offset/y/ds/delay 0
+/ev/gemwin/offset/y/ds/morph/timegrain 20
+/ev/gemwin/offset/y/ds/morph/curve/quality 0
+/ev/gemwin/offset/y/ds/slave 0
+/ev/gemwin/offset/y/ds/morph/curve/resolution 100
+/ev/gemwin/offset/y/ds/morph/curve/weight 0
+/ev/gemwin/offset/y/ds/morph/curve/shape 0
+/ev/gemwin/offset/y/ds/morph/time 0
+/ev/gemwin/offset/y/ds/morph 0
+/ev/gemwin/frame/ds/occupy 1
+/ev/gemwin/frame/ds/delay 0
+/ev/gemwin/frame/ds/morph/timegrain 20
+/ev/gemwin/frame/ds/morph/curve/quality 0
+/ev/gemwin/frame/ds/slave 0
+/ev/gemwin/frame/ds/morph/curve/resolution 100
+/ev/gemwin/frame/ds/morph/curve/weight 0
+/ev/gemwin/frame/ds/morph/curve/shape 0
+/ev/gemwin/frame/ds/morph/time 0
+/ev/gemwin/frame/ds/morph 0
+/ev/gemwin/lighting/ds/occupy 1
+/ev/gemwin/lighting/ds/delay 0
+/ev/gemwin/lighting/ds/morph/timegrain 20
+/ev/gemwin/lighting/ds/morph/curve/quality 0
+/ev/gemwin/lighting/ds/slave 0
+/ev/gemwin/lighting/ds/morph/curve/resolution 100
+/ev/gemwin/lighting/ds/morph/curve/weight 0
+/ev/gemwin/lighting/ds/morph/curve/shape 0
+/ev/gemwin/lighting/ds/morph/time 0
+/ev/gemwin/lighting/ds/morph 0
+/ev/gemwin/border/ds/occupy 1
+/ev/gemwin/border/ds/delay 0
+/ev/gemwin/border/ds/morph/timegrain 20
+/ev/gemwin/border/ds/morph/curve/quality 0
+/ev/gemwin/border/ds/slave 0
+/ev/gemwin/border/ds/morph/curve/resolution 100
+/ev/gemwin/border/ds/morph/curve/weight 0
+/ev/gemwin/border/ds/morph/curve/shape 0
+/ev/gemwin/border/ds/morph/time 0
+/ev/gemwin/border/ds/morph 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/occupy 1
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/delay 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/slave 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/occupy 1
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/delay 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/slave 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph 0
+/ev/pro/projection_a/grid/tex/filename/ds/occupy 1
+/ev/pro/projection_a/grid/tex/filename/ds/delay 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/filename/ds/slave 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph 0
+/ev/pro/projection_a/grid/tex/state/ds/occupy 1
+/ev/pro/projection_a/grid/tex/state/ds/delay 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/state/ds/slave 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/state/ds/morph 0
+/ev/pro/projection_a/grid/res/y/ds/occupy 1
+/ev/pro/projection_a/grid/res/y/ds/delay 0
+/ev/pro/projection_a/grid/res/y/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/res/y/ds/slave 0
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/res/y/ds/morph/time 0
+/ev/pro/projection_a/grid/res/y/ds/morph 0
+/ev/pro/projection_a/grid/res/x/ds/occupy 1
+/ev/pro/projection_a/grid/res/x/ds/delay 0
+/ev/pro/projection_a/grid/res/x/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/res/x/ds/slave 0
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/res/x/ds/morph/time 0
+/ev/pro/projection_a/grid/res/x/ds/morph 0
+/ev/pro/projection_a/grid/width/ds/occupy 1
+/ev/pro/projection_a/grid/width/ds/delay 0
+/ev/pro/projection_a/grid/width/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/width/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/width/ds/slave 0
+/ev/pro/projection_a/grid/width/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/width/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/width/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/width/ds/morph/time 0
+/ev/pro/projection_a/grid/width/ds/morph 0
+/ev/pro/projection_a/grid/color/a/ds/occupy 1
+/ev/pro/projection_a/grid/color/a/ds/delay 0
+/ev/pro/projection_a/grid/color/a/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/a/ds/slave 0
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/a/ds/morph/time 0
+/ev/pro/projection_a/grid/color/a/ds/morph 0
+/ev/pro/projection_a/grid/color/v/ds/occupy 1
+/ev/pro/projection_a/grid/color/v/ds/delay 0
+/ev/pro/projection_a/grid/color/v/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/v/ds/slave 0
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/v/ds/morph/time 0
+/ev/pro/projection_a/grid/color/v/ds/morph 0
+/ev/pro/projection_a/grid/color/s/ds/occupy 1
+/ev/pro/projection_a/grid/color/s/ds/delay 0
+/ev/pro/projection_a/grid/color/s/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/s/ds/slave 0
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/s/ds/morph/time 0
+/ev/pro/projection_a/grid/color/s/ds/morph 0
+/ev/pro/projection_a/grid/color/h/ds/occupy 1
+/ev/pro/projection_a/grid/color/h/ds/delay 0
+/ev/pro/projection_a/grid/color/h/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/h/ds/slave 0
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/h/ds/morph/time 0
+/ev/pro/projection_a/grid/color/h/ds/morph 0
+/ev/pro/projection_a/grid/state/ds/occupy 1
+/ev/pro/projection_a/grid/state/ds/delay 0
+/ev/pro/projection_a/grid/state/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/state/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/state/ds/slave 0
+/ev/pro/projection_a/grid/state/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/state/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/state/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/state/ds/morph/time 0
+/ev/pro/projection_a/grid/state/ds/morph 0
+/ev/pro/projection_a/vertex/top/left/x/ds/occupy 1
+/ev/pro/projection_a/vertex/top/left/x/ds/delay 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/left/x/ds/slave 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph 0
+/ev/pro/projection_a/vertex/top/left/y/ds/occupy 1
+/ev/pro/projection_a/vertex/top/left/y/ds/delay 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/left/y/ds/slave 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph 0
+/ev/pro/projection_a/vertex/top/right/x/ds/occupy 1
+/ev/pro/projection_a/vertex/top/right/x/ds/delay 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/right/x/ds/slave 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph 0
+/ev/pro/projection_a/vertex/top/right/y/ds/occupy 1
+/ev/pro/projection_a/vertex/top/right/y/ds/delay 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/right/y/ds/slave 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/left/x/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/left/y/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/right/x/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/right/y/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph 0
+/ev/pro/projection_a/state/ds/occupy 1
+/ev/pro/projection_a/state/ds/delay 0
+/ev/pro/projection_a/state/ds/morph/timegrain 20
+/ev/pro/projection_a/state/ds/morph/curve/quality 0
+/ev/pro/projection_a/state/ds/slave 0
+/ev/pro/projection_a/state/ds/morph/curve/resolution 100
+/ev/pro/projection_a/state/ds/morph/curve/weight 0
+/ev/pro/projection_a/state/ds/morph/curve/shape 0
+/ev/pro/projection_a/state/ds/morph/time 0
+/ev/pro/projection_a/state/ds/morph 0
+# DATA
+/ev/gemwin/dimen/x 800
+/ev/gemwin/dimen/y 600
+/ev/gemwin/offset/x 0
+/ev/gemwin/offset/y 0
+/ev/gemwin/frame 25
+/ev/gemwin/lighting 0
+/ev/gemwin/border 1
+/ev/pro/projection_a/grid/tex/flip/vertical 0
+/ev/pro/projection_a/grid/tex/flip/horizontal 0
+/ev/pro/projection_a/grid/tex/filename ../media/grid.png
+/ev/pro/projection_a/grid/tex/state 0
+/ev/pro/projection_a/grid/res/y 16
+/ev/pro/projection_a/grid/res/x 16
+/ev/pro/projection_a/grid/width 2
+/ev/pro/projection_a/grid/color/a 1
+/ev/pro/projection_a/grid/color/v 1
+/ev/pro/projection_a/grid/color/s 1
+/ev/pro/projection_a/grid/color/h 0.609055
+/ev/pro/projection_a/grid/state 1
+/ev/pro/projection_a/vertex/top/left/x -4.28
+/ev/pro/projection_a/vertex/top/left/y 2.42667
+/ev/pro/projection_a/vertex/top/right/x -1.73333
+/ev/pro/projection_a/vertex/top/right/y 3.38667
+/ev/pro/projection_a/vertex/bottom/left/x -3.74667
+/ev/pro/projection_a/vertex/bottom/left/y -1.85333
+/ev/pro/projection_a/vertex/bottom/right/x -1.30667
+/ev/pro/projection_a/vertex/bottom/right/y -2.61333
+/ev/pro/projection_a/state 1
+======================== SCENE 1 ========================
+# SETTINGS
+/ev/mouse/texture/sensitivity/ds/occupy 1
+/ev/mouse/texture/sensitivity/ds/delay 0
+/ev/mouse/texture/sensitivity/ds/slave 0
+/ev/mouse/select_radius/ds/occupy 1
+/ev/mouse/select_radius/ds/delay 0
+/ev/mouse/select_radius/ds/slave 0
+/ev/gemwin/border/ds/occupy 1
+/ev/gemwin/border/ds/delay 0
+/ev/gemwin/border/ds/slave 0
+/ev/gemwin/lighting/ds/occupy 1
+/ev/gemwin/lighting/ds/delay 0
+/ev/gemwin/lighting/ds/slave 0
+/ev/gemwin/frame/ds/occupy 1
+/ev/gemwin/frame/ds/delay 0
+/ev/gemwin/frame/ds/slave 0
+/ev/gemwin/offset/y/ds/occupy 1
+/ev/gemwin/offset/y/ds/delay 0
+/ev/gemwin/offset/y/ds/slave 0
+/ev/gemwin/offset/x/ds/occupy 1
+/ev/gemwin/offset/x/ds/delay 0
+/ev/gemwin/offset/x/ds/slave 0
+/ev/gemwin/dimen/y/ds/occupy 1
+/ev/gemwin/dimen/y/ds/delay 0
+/ev/gemwin/dimen/y/ds/slave 0
+/ev/gemwin/dimen/x/ds/occupy 1
+/ev/gemwin/dimen/x/ds/delay 0
+/ev/gemwin/dimen/x/ds/slave 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/occupy 1
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/delay 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/slave 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/occupy 1
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/delay 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/slave 0
+/ev/pro/projection_a/grid/tex/filename/ds/occupy 1
+/ev/pro/projection_a/grid/tex/filename/ds/delay 0
+/ev/pro/projection_a/grid/tex/filename/ds/slave 0
+/ev/pro/projection_a/grid/tex/state/ds/occupy 1
+/ev/pro/projection_a/grid/tex/state/ds/delay 0
+/ev/pro/projection_a/grid/tex/state/ds/slave 0
+/ev/pro/projection_a/grid/res/y/ds/occupy 1
+/ev/pro/projection_a/grid/res/y/ds/delay 0
+/ev/pro/projection_a/grid/res/y/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/res/y/ds/slave 0
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/res/y/ds/morph/time 0
+/ev/pro/projection_a/grid/res/y/ds/morph 0
+/ev/pro/projection_a/grid/res/x/ds/occupy 1
+/ev/pro/projection_a/grid/res/x/ds/delay 0
+/ev/pro/projection_a/grid/res/x/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/res/x/ds/slave 0
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/res/x/ds/morph/time 0
+/ev/pro/projection_a/grid/res/x/ds/morph 0
+/ev/pro/projection_a/grid/width/ds/occupy 1
+/ev/pro/projection_a/grid/width/ds/delay 0
+/ev/pro/projection_a/grid/width/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/width/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/width/ds/slave 0
+/ev/pro/projection_a/grid/width/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/width/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/width/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/width/ds/morph/time 0
+/ev/pro/projection_a/grid/width/ds/morph 0
+/ev/pro/projection_a/grid/color/a/ds/occupy 1
+/ev/pro/projection_a/grid/color/a/ds/delay 0
+/ev/pro/projection_a/grid/color/a/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/a/ds/slave 0
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/a/ds/morph/time 0
+/ev/pro/projection_a/grid/color/a/ds/morph 0
+/ev/pro/projection_a/grid/color/v/ds/occupy 1
+/ev/pro/projection_a/grid/color/v/ds/delay 0
+/ev/pro/projection_a/grid/color/v/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/v/ds/slave 0
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/v/ds/morph/time 0
+/ev/pro/projection_a/grid/color/v/ds/morph 0
+/ev/pro/projection_a/grid/color/s/ds/occupy 1
+/ev/pro/projection_a/grid/color/s/ds/delay 0
+/ev/pro/projection_a/grid/color/s/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/s/ds/slave 0
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/s/ds/morph/time 0
+/ev/pro/projection_a/grid/color/s/ds/morph 0
+/ev/pro/projection_a/grid/color/h/ds/occupy 1
+/ev/pro/projection_a/grid/color/h/ds/delay 0
+/ev/pro/projection_a/grid/color/h/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/h/ds/slave 0
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/h/ds/morph/time 0
+/ev/pro/projection_a/grid/color/h/ds/morph 0
+/ev/pro/projection_a/grid/state/ds/occupy 1
+/ev/pro/projection_a/grid/state/ds/delay 0
+/ev/pro/projection_a/grid/state/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/state/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/state/ds/slave 0
+/ev/pro/projection_a/grid/state/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/state/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/state/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/state/ds/morph/time 0
+/ev/pro/projection_a/grid/state/ds/morph 0
+/ev/pro/projection_a/state/ds/occupy 1
+/ev/pro/projection_a/state/ds/delay 0
+/ev/pro/projection_a/state/ds/slave 0
+/ev/pro/projection_a/vertex/top/left/x/ds/occupy 1
+/ev/pro/projection_a/vertex/top/left/x/ds/delay 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/left/x/ds/slave 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph 0
+/ev/pro/projection_a/vertex/top/left/y/ds/occupy 1
+/ev/pro/projection_a/vertex/top/left/y/ds/delay 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/left/y/ds/slave 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph 0
+/ev/pro/projection_a/vertex/top/right/x/ds/occupy 1
+/ev/pro/projection_a/vertex/top/right/x/ds/delay 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/right/x/ds/slave 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph 0
+/ev/pro/projection_a/vertex/top/right/y/ds/occupy 1
+/ev/pro/projection_a/vertex/top/right/y/ds/delay 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/right/y/ds/slave 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/left/x/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/left/y/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/right/x/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/right/y/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph 0
+# DATA
+/ev/gemwin/border 1
+/ev/gemwin/lighting 0
+/ev/gemwin/frame 25
+/ev/gemwin/offset/y 0
+/ev/gemwin/offset/x 0
+/ev/gemwin/dimen/y 600
+/ev/gemwin/dimen/x 800
+/ev/pro/projection_a/grid/tex/flip/vertical 0
+/ev/pro/projection_a/grid/tex/flip/horizontal 0
+/ev/pro/projection_a/grid/tex/filename ../media/grid.png
+/ev/pro/projection_a/grid/tex/state 0
+/ev/pro/projection_a/grid/res/y 16
+/ev/pro/projection_a/grid/res/x 16
+/ev/pro/projection_a/grid/width 2
+/ev/pro/projection_a/grid/color/a 1
+/ev/pro/projection_a/grid/color/v 1
+/ev/pro/projection_a/grid/color/s 1
+/ev/pro/projection_a/grid/color/h 0.609055
+/ev/pro/projection_a/grid/state 1
+/ev/pro/projection_a/state 1
+/ev/pro/projection_a/vertex/top/left/x -4.61333
+/ev/pro/projection_a/vertex/top/left/y 3.14667
+/ev/pro/projection_a/vertex/top/right/x -1.58666
+/ev/pro/projection_a/vertex/top/right/y -0.0133266
+/ev/pro/projection_a/vertex/bottom/left/x -4.17334
+/ev/pro/projection_a/vertex/bottom/left/y -2.10666
+/ev/pro/projection_a/vertex/bottom/right/x -1.46667
+/ev/pro/projection_a/vertex/bottom/right/y -2.82666
+======================== SCENE 2 ========================
+# SETTINGS
+/ev/gemwin/dimen/x/ds/occupy 1
+/ev/gemwin/dimen/x/ds/delay 0
+/ev/gemwin/dimen/x/ds/morph/timegrain 20
+/ev/gemwin/dimen/x/ds/morph/curve/quality 0
+/ev/gemwin/dimen/x/ds/slave 0
+/ev/gemwin/dimen/x/ds/morph/curve/resolution 100
+/ev/gemwin/dimen/x/ds/morph/curve/weight 0
+/ev/gemwin/dimen/x/ds/morph/curve/shape 0
+/ev/gemwin/dimen/x/ds/morph/time 0
+/ev/gemwin/dimen/x/ds/morph 0
+/ev/gemwin/dimen/y/ds/occupy 1
+/ev/gemwin/dimen/y/ds/delay 0
+/ev/gemwin/dimen/y/ds/morph/timegrain 20
+/ev/gemwin/dimen/y/ds/morph/curve/quality 0
+/ev/gemwin/dimen/y/ds/slave 0
+/ev/gemwin/dimen/y/ds/morph/curve/resolution 100
+/ev/gemwin/dimen/y/ds/morph/curve/weight 0
+/ev/gemwin/dimen/y/ds/morph/curve/shape 0
+/ev/gemwin/dimen/y/ds/morph/time 0
+/ev/gemwin/dimen/y/ds/morph 0
+/ev/gemwin/offset/x/ds/occupy 1
+/ev/gemwin/offset/x/ds/delay 0
+/ev/gemwin/offset/x/ds/morph/timegrain 20
+/ev/gemwin/offset/x/ds/morph/curve/quality 0
+/ev/gemwin/offset/x/ds/slave 0
+/ev/gemwin/offset/x/ds/morph/curve/resolution 100
+/ev/gemwin/offset/x/ds/morph/curve/weight 0
+/ev/gemwin/offset/x/ds/morph/curve/shape 0
+/ev/gemwin/offset/x/ds/morph/time 0
+/ev/gemwin/offset/x/ds/morph 0
+/ev/gemwin/offset/y/ds/occupy 1
+/ev/gemwin/offset/y/ds/delay 0
+/ev/gemwin/offset/y/ds/morph/timegrain 20
+/ev/gemwin/offset/y/ds/morph/curve/quality 0
+/ev/gemwin/offset/y/ds/slave 0
+/ev/gemwin/offset/y/ds/morph/curve/resolution 100
+/ev/gemwin/offset/y/ds/morph/curve/weight 0
+/ev/gemwin/offset/y/ds/morph/curve/shape 0
+/ev/gemwin/offset/y/ds/morph/time 0
+/ev/gemwin/offset/y/ds/morph 0
+/ev/gemwin/frame/ds/occupy 1
+/ev/gemwin/frame/ds/delay 0
+/ev/gemwin/frame/ds/morph/timegrain 20
+/ev/gemwin/frame/ds/morph/curve/quality 0
+/ev/gemwin/frame/ds/slave 0
+/ev/gemwin/frame/ds/morph/curve/resolution 100
+/ev/gemwin/frame/ds/morph/curve/weight 0
+/ev/gemwin/frame/ds/morph/curve/shape 0
+/ev/gemwin/frame/ds/morph/time 0
+/ev/gemwin/frame/ds/morph 0
+/ev/gemwin/lighting/ds/occupy 1
+/ev/gemwin/lighting/ds/delay 0
+/ev/gemwin/lighting/ds/morph/timegrain 20
+/ev/gemwin/lighting/ds/morph/curve/quality 0
+/ev/gemwin/lighting/ds/slave 0
+/ev/gemwin/lighting/ds/morph/curve/resolution 100
+/ev/gemwin/lighting/ds/morph/curve/weight 0
+/ev/gemwin/lighting/ds/morph/curve/shape 0
+/ev/gemwin/lighting/ds/morph/time 0
+/ev/gemwin/lighting/ds/morph 0
+/ev/gemwin/border/ds/occupy 1
+/ev/gemwin/border/ds/delay 0
+/ev/gemwin/border/ds/morph/timegrain 20
+/ev/gemwin/border/ds/morph/curve/quality 0
+/ev/gemwin/border/ds/slave 0
+/ev/gemwin/border/ds/morph/curve/resolution 100
+/ev/gemwin/border/ds/morph/curve/weight 0
+/ev/gemwin/border/ds/morph/curve/shape 0
+/ev/gemwin/border/ds/morph/time 0
+/ev/gemwin/border/ds/morph 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/occupy 1
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/delay 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/slave 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/flip/vertical/ds/morph 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/occupy 1
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/delay 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/slave 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/flip/horizontal/ds/morph 0
+/ev/pro/projection_a/grid/tex/filename/ds/occupy 1
+/ev/pro/projection_a/grid/tex/filename/ds/delay 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/filename/ds/slave 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/filename/ds/morph 0
+/ev/pro/projection_a/grid/tex/state/ds/occupy 1
+/ev/pro/projection_a/grid/tex/state/ds/delay 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/tex/state/ds/slave 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/tex/state/ds/morph/time 0
+/ev/pro/projection_a/grid/tex/state/ds/morph 0
+/ev/pro/projection_a/grid/res/y/ds/occupy 1
+/ev/pro/projection_a/grid/res/y/ds/delay 0
+/ev/pro/projection_a/grid/res/y/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/res/y/ds/slave 0
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/res/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/res/y/ds/morph/time 0
+/ev/pro/projection_a/grid/res/y/ds/morph 0
+/ev/pro/projection_a/grid/res/x/ds/occupy 1
+/ev/pro/projection_a/grid/res/x/ds/delay 0
+/ev/pro/projection_a/grid/res/x/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/res/x/ds/slave 0
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/res/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/res/x/ds/morph/time 0
+/ev/pro/projection_a/grid/res/x/ds/morph 0
+/ev/pro/projection_a/grid/width/ds/occupy 1
+/ev/pro/projection_a/grid/width/ds/delay 0
+/ev/pro/projection_a/grid/width/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/width/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/width/ds/slave 0
+/ev/pro/projection_a/grid/width/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/width/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/width/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/width/ds/morph/time 0
+/ev/pro/projection_a/grid/width/ds/morph 0
+/ev/pro/projection_a/grid/color/a/ds/occupy 1
+/ev/pro/projection_a/grid/color/a/ds/delay 0
+/ev/pro/projection_a/grid/color/a/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/a/ds/slave 0
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/a/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/a/ds/morph/time 0
+/ev/pro/projection_a/grid/color/a/ds/morph 0
+/ev/pro/projection_a/grid/color/v/ds/occupy 1
+/ev/pro/projection_a/grid/color/v/ds/delay 0
+/ev/pro/projection_a/grid/color/v/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/v/ds/slave 0
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/v/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/v/ds/morph/time 0
+/ev/pro/projection_a/grid/color/v/ds/morph 0
+/ev/pro/projection_a/grid/color/s/ds/occupy 1
+/ev/pro/projection_a/grid/color/s/ds/delay 0
+/ev/pro/projection_a/grid/color/s/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/s/ds/slave 0
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/s/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/s/ds/morph/time 0
+/ev/pro/projection_a/grid/color/s/ds/morph 0
+/ev/pro/projection_a/grid/color/h/ds/occupy 1
+/ev/pro/projection_a/grid/color/h/ds/delay 0
+/ev/pro/projection_a/grid/color/h/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/color/h/ds/slave 0
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/color/h/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/color/h/ds/morph/time 0
+/ev/pro/projection_a/grid/color/h/ds/morph 0
+/ev/pro/projection_a/grid/state/ds/occupy 1
+/ev/pro/projection_a/grid/state/ds/delay 0
+/ev/pro/projection_a/grid/state/ds/morph/timegrain 20
+/ev/pro/projection_a/grid/state/ds/morph/curve/quality 0
+/ev/pro/projection_a/grid/state/ds/slave 0
+/ev/pro/projection_a/grid/state/ds/morph/curve/resolution 100
+/ev/pro/projection_a/grid/state/ds/morph/curve/weight 0
+/ev/pro/projection_a/grid/state/ds/morph/curve/shape 0
+/ev/pro/projection_a/grid/state/ds/morph/time 0
+/ev/pro/projection_a/grid/state/ds/morph 0
+/ev/pro/projection_a/vertex/top/left/x/ds/occupy 1
+/ev/pro/projection_a/vertex/top/left/x/ds/delay 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/left/x/ds/slave 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/left/x/ds/morph 0
+/ev/pro/projection_a/vertex/top/left/y/ds/occupy 1
+/ev/pro/projection_a/vertex/top/left/y/ds/delay 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/left/y/ds/slave 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/left/y/ds/morph 0
+/ev/pro/projection_a/vertex/top/right/x/ds/occupy 1
+/ev/pro/projection_a/vertex/top/right/x/ds/delay 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/right/x/ds/slave 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/right/x/ds/morph 0
+/ev/pro/projection_a/vertex/top/right/y/ds/occupy 1
+/ev/pro/projection_a/vertex/top/right/y/ds/delay 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/top/right/y/ds/slave 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/top/right/y/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/left/x/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/left/x/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/left/y/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/left/y/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/right/x/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/right/x/ds/morph 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/occupy 1
+/ev/pro/projection_a/vertex/bottom/right/y/ds/delay 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/timegrain 20
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/quality 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/slave 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/resolution 100
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/weight 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/curve/shape 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph/time 0
+/ev/pro/projection_a/vertex/bottom/right/y/ds/morph 0
+/ev/pro/projection_a/state/ds/occupy 1
+/ev/pro/projection_a/state/ds/delay 0
+/ev/pro/projection_a/state/ds/morph/timegrain 20
+/ev/pro/projection_a/state/ds/morph/curve/quality 0
+/ev/pro/projection_a/state/ds/slave 0
+/ev/pro/projection_a/state/ds/morph/curve/resolution 100
+/ev/pro/projection_a/state/ds/morph/curve/weight 0
+/ev/pro/projection_a/state/ds/morph/curve/shape 0
+/ev/pro/projection_a/state/ds/morph/time 0
+/ev/pro/projection_a/state/ds/morph 0
+# DATA
+/ev/gemwin/dimen/x 800
+/ev/gemwin/dimen/y 600
+/ev/gemwin/offset/x 0
+/ev/gemwin/offset/y 0
+/ev/gemwin/frame 25
+/ev/gemwin/lighting 0
+/ev/gemwin/border 1
+/ev/pro/projection_a/grid/tex/flip/vertical 0
+/ev/pro/projection_a/grid/tex/flip/horizontal 0
+/ev/pro/projection_a/grid/tex/filename ../media/grid.png
+/ev/pro/projection_a/grid/tex/state 0
+/ev/pro/projection_a/grid/res/y 16
+/ev/pro/projection_a/grid/res/x 16
+/ev/pro/projection_a/grid/width 2
+/ev/pro/projection_a/grid/color/a 1
+/ev/pro/projection_a/grid/color/v 1
+/ev/pro/projection_a/grid/color/s 1
+/ev/pro/projection_a/grid/color/h 0.609055
+/ev/pro/projection_a/grid/state 1
+/ev/pro/projection_a/vertex/top/left/x -4.28
+/ev/pro/projection_a/vertex/top/left/y -1.61333
+/ev/pro/projection_a/vertex/top/right/x -1.69333
+/ev/pro/projection_a/vertex/top/right/y -0.359996
+/ev/pro/projection_a/vertex/bottom/left/x -2.4
+/ev/pro/projection_a/vertex/bottom/left/y -3.18666
+/ev/pro/projection_a/vertex/bottom/right/x -1.46667
+/ev/pro/projection_a/vertex/bottom/right/y -2.82666
+/ev/pro/projection_a/state 1

+ 483 - 0
data/ev_example_scene_transitions_special.txt

@@ -0,0 +1,483 @@
+======================== GLOBAL ========================
+/print/debug/state 0
+/print/datastream/state 0
+/print/errors/state 1
+/print/info/state 1
+/store/tables/state 1
+/store/data/state 1
+/recall/tables/state 1
+/recall/data/state 1
+/dsp/mute 0
+/change 0
+/dispatch 1
+/transition/state 1
+/store/settings/state 1
+/recall/settings/state 1
+/slave 1
+/delay 1
+/morph 1
+/occupy/override 0
+/occupy 1
+/reg/settings/buffer/occupy 0
+/reg/settings/buffer/morph/curve/resolution 128
+/reg/settings/buffer/morph/curve/quality 2
+/reg/settings/buffer/morph/curve/weight 1
+/reg/settings/buffer/morph/curve/shape 0
+/reg/settings/buffer/morph/timegrain 20
+/reg/settings/buffer/morph/time 2
+/reg/settings/buffer/morph 1
+/reg/settings/buffer/delay 0
+/reg/settings/buffer/slave 0
+======================== SCENE 0 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+/ev/pro/projection_b/vertex/bottom/right/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/bottom/right/y/morph/time 5
+/ev/pro/projection_b/vertex/bottom/right/y/morph 1
+/ev/pro/projection_b/vertex/bottom/right/y/delay 0
+/ev/pro/projection_b/vertex/bottom/right/y/slave 0
+/ev/pro/projection_b/vertex/bottom/right/y/occupy 0
+/ev/pro/projection_b/vertex/bottom/right/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/bottom/right/x/morph/time 5
+/ev/pro/projection_b/vertex/bottom/right/x/morph 1
+/ev/pro/projection_b/vertex/bottom/right/x/delay 0
+/ev/pro/projection_b/vertex/bottom/right/x/slave 0
+/ev/pro/projection_b/vertex/bottom/right/x/occupy 0
+/ev/pro/projection_b/vertex/bottom/left/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/bottom/left/y/morph/time 5
+/ev/pro/projection_b/vertex/bottom/left/y/morph 1
+/ev/pro/projection_b/vertex/bottom/left/y/delay 0
+/ev/pro/projection_b/vertex/bottom/left/y/slave 0
+/ev/pro/projection_b/vertex/bottom/left/y/occupy 0
+/ev/pro/projection_b/vertex/bottom/left/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/bottom/left/x/morph/time 5
+/ev/pro/projection_b/vertex/bottom/left/x/morph 1
+/ev/pro/projection_b/vertex/bottom/left/x/delay 0
+/ev/pro/projection_b/vertex/bottom/left/x/slave 0
+/ev/pro/projection_b/vertex/bottom/left/x/occupy 0
+/ev/pro/projection_b/vertex/top/right/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/top/right/y/morph/time 5
+/ev/pro/projection_b/vertex/top/right/y/morph 1
+/ev/pro/projection_b/vertex/top/right/y/delay 0
+/ev/pro/projection_b/vertex/top/right/y/slave 0
+/ev/pro/projection_b/vertex/top/right/y/occupy 0
+/ev/pro/projection_b/vertex/top/right/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/top/right/x/morph/time 5
+/ev/pro/projection_b/vertex/top/right/x/morph 1
+/ev/pro/projection_b/vertex/top/right/x/delay 0
+/ev/pro/projection_b/vertex/top/right/x/slave 0
+/ev/pro/projection_b/vertex/top/right/x/occupy 0
+/ev/pro/projection_b/vertex/top/left/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/top/left/y/morph/time 5
+/ev/pro/projection_b/vertex/top/left/y/morph 1
+/ev/pro/projection_b/vertex/top/left/y/delay 0
+/ev/pro/projection_b/vertex/top/left/y/slave 0
+/ev/pro/projection_b/vertex/top/left/y/occupy 0
+/ev/pro/projection_b/vertex/top/left/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/shape 2.51969
+/ev/pro/projection_b/vertex/top/left/x/morph/time 5
+/ev/pro/projection_b/vertex/top/left/x/morph 1
+/ev/pro/projection_b/vertex/top/left/x/delay 0
+/ev/pro/projection_b/vertex/top/left/x/slave 0
+/ev/pro/projection_b/vertex/top/left/x/occupy 0
+/ev/pro/projection_b/state/delay 0
+/ev/pro/projection_b/state/slave 0
+/ev/pro/projection_b/state/occupy 0
+/ev/pro/projection_b/cursor/mode/delay 0
+/ev/pro/projection_b/cursor/mode/slave 0
+/ev/pro/projection_b/cursor/mode/occupy 0
+/ev/pro/projection_b/grid/tex/state/delay 0
+/ev/pro/projection_b/grid/tex/state/slave 0
+/ev/pro/projection_b/grid/tex/state/occupy 0
+/ev/pro/projection_b/grid/tex/filename/delay 0
+/ev/pro/projection_b/grid/tex/filename/slave 0
+/ev/pro/projection_b/grid/tex/filename/occupy 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/delay 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/slave 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/occupy 0
+/ev/pro/projection_b/grid/tex/flip/vertical/delay 0
+/ev/pro/projection_b/grid/tex/flip/vertical/slave 0
+/ev/pro/projection_b/grid/tex/flip/vertical/occupy 0
+/ev/pro/projection_b/grid/state/delay 0
+/ev/pro/projection_b/grid/state/slave 0
+/ev/pro/projection_b/grid/state/occupy 0
+/ev/pro/projection_b/grid/color/h/delay 0
+/ev/pro/projection_b/grid/color/h/slave 0
+/ev/pro/projection_b/grid/color/h/occupy 0
+/ev/pro/projection_b/grid/color/s/delay 0
+/ev/pro/projection_b/grid/color/s/slave 0
+/ev/pro/projection_b/grid/color/s/occupy 0
+/ev/pro/projection_b/grid/color/v/delay 0
+/ev/pro/projection_b/grid/color/v/slave 0
+/ev/pro/projection_b/grid/color/v/occupy 0
+/ev/pro/projection_b/grid/color/a/delay 0
+/ev/pro/projection_b/grid/color/a/slave 0
+/ev/pro/projection_b/grid/color/a/occupy 0
+/ev/pro/projection_b/grid/width/delay 0
+/ev/pro/projection_b/grid/width/slave 0
+/ev/pro/projection_b/grid/width/occupy 0
+/ev/pro/projection_b/grid/res/x/delay 0
+/ev/pro/projection_b/grid/res/x/slave 0
+/ev/pro/projection_b/grid/res/x/occupy 0
+/ev/pro/projection_b/grid/res/y/delay 0
+/ev/pro/projection_b/grid/res/y/slave 0
+/ev/pro/projection_b/grid/res/y/occupy 0
+# TABLES
+# DATA
+/ev/pro/projection_b/grid/res/y 16
+/ev/pro/projection_b/grid/res/x 16
+/ev/pro/projection_b/grid/width 2
+/ev/pro/projection_b/grid/color/a 1
+/ev/pro/projection_b/grid/color/v 1
+/ev/pro/projection_b/grid/color/s 1
+/ev/pro/projection_b/grid/color/h 1
+/ev/pro/projection_b/grid/state 1
+/ev/pro/projection_b/grid/tex/flip/vertical 0
+/ev/pro/projection_b/grid/tex/flip/horizontal 0
+/ev/pro/projection_b/grid/tex/filename ../media/grid.png
+/ev/pro/projection_b/grid/tex/state 0
+/ev/pro/projection_b/cursor/mode 2
+/ev/pro/projection_b/state 1
+/ev/pro/projection_b/vertex/top/left/x 1.10667
+/ev/pro/projection_b/vertex/top/left/y 1.45333
+/ev/pro/projection_b/vertex/top/right/x 2.90667
+/ev/pro/projection_b/vertex/top/right/y 2.65333
+/ev/pro/projection_b/vertex/bottom/left/x 0.4
+/ev/pro/projection_b/vertex/bottom/left/y -3.14667
+/ev/pro/projection_b/vertex/bottom/right/x 4.10667
+/ev/pro/projection_b/vertex/bottom/right/y -2.52
+======================== SCENE 1 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+/ev/pro/projection_b/vertex/bottom/right/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/bottom/right/y/morph/time 3
+/ev/pro/projection_b/vertex/bottom/right/y/morph 1
+/ev/pro/projection_b/vertex/bottom/right/y/delay 0
+/ev/pro/projection_b/vertex/bottom/right/y/slave 0
+/ev/pro/projection_b/vertex/bottom/right/y/occupy 0
+/ev/pro/projection_b/vertex/bottom/right/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/bottom/right/x/morph/time 3
+/ev/pro/projection_b/vertex/bottom/right/x/morph 1
+/ev/pro/projection_b/vertex/bottom/right/x/delay 0
+/ev/pro/projection_b/vertex/bottom/right/x/slave 0
+/ev/pro/projection_b/vertex/bottom/right/x/occupy 0
+/ev/pro/projection_b/vertex/bottom/left/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/bottom/left/y/morph/time 3
+/ev/pro/projection_b/vertex/bottom/left/y/morph 1
+/ev/pro/projection_b/vertex/bottom/left/y/delay 0
+/ev/pro/projection_b/vertex/bottom/left/y/slave 0
+/ev/pro/projection_b/vertex/bottom/left/y/occupy 0
+/ev/pro/projection_b/vertex/bottom/left/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/bottom/left/x/morph/time 3
+/ev/pro/projection_b/vertex/bottom/left/x/morph 1
+/ev/pro/projection_b/vertex/bottom/left/x/delay 0
+/ev/pro/projection_b/vertex/bottom/left/x/slave 0
+/ev/pro/projection_b/vertex/bottom/left/x/occupy 0
+/ev/pro/projection_b/vertex/top/right/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/top/right/y/morph/time 3
+/ev/pro/projection_b/vertex/top/right/y/morph 1
+/ev/pro/projection_b/vertex/top/right/y/delay 0
+/ev/pro/projection_b/vertex/top/right/y/slave 0
+/ev/pro/projection_b/vertex/top/right/y/occupy 0
+/ev/pro/projection_b/vertex/top/right/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/top/right/x/morph/time 3
+/ev/pro/projection_b/vertex/top/right/x/morph 1
+/ev/pro/projection_b/vertex/top/right/x/delay 0
+/ev/pro/projection_b/vertex/top/right/x/slave 0
+/ev/pro/projection_b/vertex/top/right/x/occupy 0
+/ev/pro/projection_b/vertex/top/left/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/top/left/y/morph/time 3
+/ev/pro/projection_b/vertex/top/left/y/morph 1
+/ev/pro/projection_b/vertex/top/left/y/delay 0
+/ev/pro/projection_b/vertex/top/left/y/slave 0
+/ev/pro/projection_b/vertex/top/left/y/occupy 0
+/ev/pro/projection_b/vertex/top/left/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/shape -4.25197
+/ev/pro/projection_b/vertex/top/left/x/morph/time 3
+/ev/pro/projection_b/vertex/top/left/x/morph 1
+/ev/pro/projection_b/vertex/top/left/x/delay 0
+/ev/pro/projection_b/vertex/top/left/x/slave 0
+/ev/pro/projection_b/vertex/top/left/x/occupy 0
+/ev/pro/projection_b/state/delay 0
+/ev/pro/projection_b/state/slave 0
+/ev/pro/projection_b/state/occupy 0
+/ev/pro/projection_b/cursor/mode/delay 0
+/ev/pro/projection_b/cursor/mode/slave 0
+/ev/pro/projection_b/cursor/mode/occupy 0
+/ev/pro/projection_b/grid/tex/state/delay 0
+/ev/pro/projection_b/grid/tex/state/slave 0
+/ev/pro/projection_b/grid/tex/state/occupy 0
+/ev/pro/projection_b/grid/tex/filename/delay 0
+/ev/pro/projection_b/grid/tex/filename/slave 0
+/ev/pro/projection_b/grid/tex/filename/occupy 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/delay 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/slave 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/occupy 0
+/ev/pro/projection_b/grid/tex/flip/vertical/delay 0
+/ev/pro/projection_b/grid/tex/flip/vertical/slave 0
+/ev/pro/projection_b/grid/tex/flip/vertical/occupy 0
+/ev/pro/projection_b/grid/state/delay 0
+/ev/pro/projection_b/grid/state/slave 0
+/ev/pro/projection_b/grid/state/occupy 0
+/ev/pro/projection_b/grid/color/h/delay 0
+/ev/pro/projection_b/grid/color/h/slave 0
+/ev/pro/projection_b/grid/color/h/occupy 0
+/ev/pro/projection_b/grid/color/s/delay 0
+/ev/pro/projection_b/grid/color/s/slave 0
+/ev/pro/projection_b/grid/color/s/occupy 0
+/ev/pro/projection_b/grid/color/v/delay 0
+/ev/pro/projection_b/grid/color/v/slave 0
+/ev/pro/projection_b/grid/color/v/occupy 0
+/ev/pro/projection_b/grid/color/a/delay 0
+/ev/pro/projection_b/grid/color/a/slave 0
+/ev/pro/projection_b/grid/color/a/occupy 0
+/ev/pro/projection_b/grid/width/delay 0
+/ev/pro/projection_b/grid/width/slave 0
+/ev/pro/projection_b/grid/width/occupy 0
+/ev/pro/projection_b/grid/res/x/delay 0
+/ev/pro/projection_b/grid/res/x/slave 0
+/ev/pro/projection_b/grid/res/x/occupy 0
+/ev/pro/projection_b/grid/res/y/delay 0
+/ev/pro/projection_b/grid/res/y/slave 0
+/ev/pro/projection_b/grid/res/y/occupy 0
+# TABLES
+# DATA
+/ev/pro/projection_b/grid/res/y 16
+/ev/pro/projection_b/grid/res/x 16
+/ev/pro/projection_b/grid/width 2
+/ev/pro/projection_b/grid/color/a 1
+/ev/pro/projection_b/grid/color/v 1
+/ev/pro/projection_b/grid/color/s 1
+/ev/pro/projection_b/grid/color/h 1
+/ev/pro/projection_b/grid/state 1
+/ev/pro/projection_b/grid/tex/flip/vertical 0
+/ev/pro/projection_b/grid/tex/flip/horizontal 0
+/ev/pro/projection_b/grid/tex/filename ../media/grid.png
+/ev/pro/projection_b/grid/tex/state 0
+/ev/pro/projection_b/cursor/mode 2
+/ev/pro/projection_b/state 1
+/ev/pro/projection_b/vertex/top/left/x 0.52
+/ev/pro/projection_b/vertex/top/left/y -1.73333
+/ev/pro/projection_b/vertex/top/right/x 4.10667
+/ev/pro/projection_b/vertex/top/right/y -0.813333
+/ev/pro/projection_b/vertex/bottom/left/x 1.41333
+/ev/pro/projection_b/vertex/bottom/left/y -3.52
+/ev/pro/projection_b/vertex/bottom/right/x 3.42666
+/ev/pro/projection_b/vertex/bottom/right/y -2.81333
+======================== SCENE 2 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+/ev/pro/projection_b/vertex/bottom/right/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/right/y/morph/curve/shape 0
+/ev/pro/projection_b/vertex/bottom/right/y/morph/time 2
+/ev/pro/projection_b/vertex/bottom/right/y/morph 1
+/ev/pro/projection_b/vertex/bottom/right/y/delay 0
+/ev/pro/projection_b/vertex/bottom/right/y/slave 0
+/ev/pro/projection_b/vertex/bottom/right/y/occupy 0
+/ev/pro/projection_b/vertex/bottom/right/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/right/x/morph/curve/shape 0
+/ev/pro/projection_b/vertex/bottom/right/x/morph/time 2
+/ev/pro/projection_b/vertex/bottom/right/x/morph 1
+/ev/pro/projection_b/vertex/bottom/right/x/delay 0
+/ev/pro/projection_b/vertex/bottom/right/x/slave 0
+/ev/pro/projection_b/vertex/bottom/right/x/occupy 0
+/ev/pro/projection_b/vertex/bottom/left/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/left/y/morph/curve/shape 0
+/ev/pro/projection_b/vertex/bottom/left/y/morph/time 2
+/ev/pro/projection_b/vertex/bottom/left/y/morph 1
+/ev/pro/projection_b/vertex/bottom/left/y/delay 0
+/ev/pro/projection_b/vertex/bottom/left/y/slave 0
+/ev/pro/projection_b/vertex/bottom/left/y/occupy 0
+/ev/pro/projection_b/vertex/bottom/left/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/bottom/left/x/morph/curve/shape 0
+/ev/pro/projection_b/vertex/bottom/left/x/morph/time 2
+/ev/pro/projection_b/vertex/bottom/left/x/morph 1
+/ev/pro/projection_b/vertex/bottom/left/x/delay 0
+/ev/pro/projection_b/vertex/bottom/left/x/slave 0
+/ev/pro/projection_b/vertex/bottom/left/x/occupy 0
+/ev/pro/projection_b/vertex/top/right/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/right/y/morph/curve/shape 0
+/ev/pro/projection_b/vertex/top/right/y/morph/time 2
+/ev/pro/projection_b/vertex/top/right/y/morph 1
+/ev/pro/projection_b/vertex/top/right/y/delay 0
+/ev/pro/projection_b/vertex/top/right/y/slave 0
+/ev/pro/projection_b/vertex/top/right/y/occupy 0
+/ev/pro/projection_b/vertex/top/right/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/right/x/morph/curve/shape 0
+/ev/pro/projection_b/vertex/top/right/x/morph/time 2
+/ev/pro/projection_b/vertex/top/right/x/morph 1
+/ev/pro/projection_b/vertex/top/right/x/delay 0
+/ev/pro/projection_b/vertex/top/right/x/slave 0
+/ev/pro/projection_b/vertex/top/right/x/occupy 0
+/ev/pro/projection_b/vertex/top/left/y/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/left/y/morph/curve/shape 0
+/ev/pro/projection_b/vertex/top/left/y/morph/time 2
+/ev/pro/projection_b/vertex/top/left/y/morph 1
+/ev/pro/projection_b/vertex/top/left/y/delay 0
+/ev/pro/projection_b/vertex/top/left/y/slave 0
+/ev/pro/projection_b/vertex/top/left/y/occupy 0
+/ev/pro/projection_b/vertex/top/left/x/morph/timegrain 20
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/quality 2
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/resolution 128
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/weight 1
+/ev/pro/projection_b/vertex/top/left/x/morph/curve/shape 0
+/ev/pro/projection_b/vertex/top/left/x/morph/time 2
+/ev/pro/projection_b/vertex/top/left/x/morph 1
+/ev/pro/projection_b/vertex/top/left/x/delay 0
+/ev/pro/projection_b/vertex/top/left/x/slave 0
+/ev/pro/projection_b/vertex/top/left/x/occupy 0
+/ev/pro/projection_b/state/delay 0
+/ev/pro/projection_b/state/slave 0
+/ev/pro/projection_b/state/occupy 0
+/ev/pro/projection_b/cursor/mode/delay 0
+/ev/pro/projection_b/cursor/mode/slave 0
+/ev/pro/projection_b/cursor/mode/occupy 0
+/ev/pro/projection_b/grid/tex/state/delay 0
+/ev/pro/projection_b/grid/tex/state/slave 0
+/ev/pro/projection_b/grid/tex/state/occupy 0
+/ev/pro/projection_b/grid/tex/filename/delay 0
+/ev/pro/projection_b/grid/tex/filename/slave 0
+/ev/pro/projection_b/grid/tex/filename/occupy 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/delay 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/slave 0
+/ev/pro/projection_b/grid/tex/flip/horizontal/occupy 0
+/ev/pro/projection_b/grid/tex/flip/vertical/delay 0
+/ev/pro/projection_b/grid/tex/flip/vertical/slave 0
+/ev/pro/projection_b/grid/tex/flip/vertical/occupy 0
+/ev/pro/projection_b/grid/state/delay 0
+/ev/pro/projection_b/grid/state/slave 0
+/ev/pro/projection_b/grid/state/occupy 0
+/ev/pro/projection_b/grid/color/h/delay 0
+/ev/pro/projection_b/grid/color/h/slave 0
+/ev/pro/projection_b/grid/color/h/occupy 0
+/ev/pro/projection_b/grid/color/s/delay 0
+/ev/pro/projection_b/grid/color/s/slave 0
+/ev/pro/projection_b/grid/color/s/occupy 0
+/ev/pro/projection_b/grid/color/v/delay 0
+/ev/pro/projection_b/grid/color/v/slave 0
+/ev/pro/projection_b/grid/color/v/occupy 0
+/ev/pro/projection_b/grid/color/a/delay 0
+/ev/pro/projection_b/grid/color/a/slave 0
+/ev/pro/projection_b/grid/color/a/occupy 0
+/ev/pro/projection_b/grid/width/delay 0
+/ev/pro/projection_b/grid/width/slave 0
+/ev/pro/projection_b/grid/width/occupy 0
+/ev/pro/projection_b/grid/res/x/delay 0
+/ev/pro/projection_b/grid/res/x/slave 0
+/ev/pro/projection_b/grid/res/x/occupy 0
+/ev/pro/projection_b/grid/res/y/delay 0
+/ev/pro/projection_b/grid/res/y/slave 0
+/ev/pro/projection_b/grid/res/y/occupy 0
+# TABLES
+# DATA
+/ev/pro/projection_b/grid/res/y 16
+/ev/pro/projection_b/grid/res/x 16
+/ev/pro/projection_b/grid/width 2
+/ev/pro/projection_b/grid/color/a 1
+/ev/pro/projection_b/grid/color/v 1
+/ev/pro/projection_b/grid/color/s 1
+/ev/pro/projection_b/grid/color/h 1
+/ev/pro/projection_b/grid/state 1
+/ev/pro/projection_b/grid/tex/flip/vertical 0
+/ev/pro/projection_b/grid/tex/flip/horizontal 0
+/ev/pro/projection_b/grid/tex/filename ../media/grid.png
+/ev/pro/projection_b/grid/tex/state 0
+/ev/pro/projection_b/cursor/mode 2
+/ev/pro/projection_b/state 1
+/ev/pro/projection_b/vertex/top/left/x -0.84
+/ev/pro/projection_b/vertex/top/left/y 1.17333
+/ev/pro/projection_b/vertex/top/right/x 2.28
+/ev/pro/projection_b/vertex/top/right/y 3.54666
+/ev/pro/projection_b/vertex/bottom/left/x -0.373333
+/ev/pro/projection_b/vertex/bottom/left/y -0.48
+/ev/pro/projection_b/vertex/bottom/right/x 4.56
+/ev/pro/projection_b/vertex/bottom/right/y -0.28

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 7555 - 0
data/ev_example_shipping_containers_one.txt


+ 190 - 0
data/ev_example_shipping_containers_two.txt

@@ -0,0 +1,190 @@
+======================== GLOBAL ========================
+/transition/state 1
+/store/settings/state 1
+/recall/settings/state 1
+/slave 1
+/delay 1
+/morph 1
+/occupy/override 0
+/occupy 1
+/reg/settings/buffer/occupy 0
+/reg/settings/buffer/morph/curve/resolution 128
+/reg/settings/buffer/morph/curve/quality 0
+/reg/settings/buffer/morph/curve/weight 0
+/reg/settings/buffer/morph/curve/shape 0
+/reg/settings/buffer/morph/timegrain 20
+/reg/settings/buffer/morph/time 2
+/reg/settings/buffer/morph 1
+/reg/settings/buffer/delay 0
+/reg/settings/buffer/slave 0
+/print/debug/state 0
+/print/datastream/state 0
+/print/errors/state 1
+/print/info/state 1
+/store/tables/state 1
+/store/data/state 1
+/recall/tables/state 1
+/recall/data/state 1
+/dsp/mute 0
+/change 0
+/dispatch 1
+======================== SCENE 0 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+/teapot/color/r/morph/timegrain 20
+/teapot/color/r/morph/curve/quality 0
+/teapot/color/r/morph/curve/resolution 128
+/teapot/color/r/morph/curve/weight 0
+/teapot/color/r/morph/curve/shape 0
+/teapot/color/r/morph/time 2
+/teapot/color/r/morph 1
+/teapot/color/r/delay 0
+/teapot/color/r/slave 0
+/teapot/color/r/occupy 0
+/teapot/color/g/morph/timegrain 20
+/teapot/color/g/morph/curve/quality 0
+/teapot/color/g/morph/curve/resolution 128
+/teapot/color/g/morph/curve/weight 0
+/teapot/color/g/morph/curve/shape 0
+/teapot/color/g/morph/time 2
+/teapot/color/g/morph 1
+/teapot/color/g/delay 0
+/teapot/color/g/slave 0
+/teapot/color/g/occupy 0
+/teapot/color/b/morph/timegrain 20
+/teapot/color/b/morph/curve/quality 0
+/teapot/color/b/morph/curve/resolution 128
+/teapot/color/b/morph/curve/weight 0
+/teapot/color/b/morph/curve/shape 0
+/teapot/color/b/morph/time 2
+/teapot/color/b/morph 1
+/teapot/color/b/delay 0
+/teapot/color/b/slave 0
+/teapot/color/b/occupy 0
+# TABLES
+# DATA
+/teapot/color/b 0.377953
+/teapot/color/g 0.614173
+/teapot/color/r 1
+======================== SCENE 1 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+/teapot/color/r/morph/timegrain 20
+/teapot/color/r/morph/curve/quality 0
+/teapot/color/r/morph/curve/resolution 128
+/teapot/color/r/morph/curve/weight 0
+/teapot/color/r/morph/curve/shape 0
+/teapot/color/r/morph/time 2
+/teapot/color/r/morph 1
+/teapot/color/r/delay 0
+/teapot/color/r/slave 0
+/teapot/color/r/occupy 0
+/teapot/color/g/morph/timegrain 20
+/teapot/color/g/morph/curve/quality 0
+/teapot/color/g/morph/curve/resolution 128
+/teapot/color/g/morph/curve/weight 0
+/teapot/color/g/morph/curve/shape 0
+/teapot/color/g/morph/time 2
+/teapot/color/g/morph 1
+/teapot/color/g/delay 0
+/teapot/color/g/slave 0
+/teapot/color/g/occupy 0
+/teapot/color/b/morph/timegrain 20
+/teapot/color/b/morph/curve/quality 0
+/teapot/color/b/morph/curve/resolution 128
+/teapot/color/b/morph/curve/weight 0
+/teapot/color/b/morph/curve/shape 0
+/teapot/color/b/morph/time 2
+/teapot/color/b/morph 1
+/teapot/color/b/delay 0
+/teapot/color/b/slave 0
+/teapot/color/b/occupy 0
+# TABLES
+# DATA
+/teapot/color/b 0
+/teapot/color/g 0
+/teapot/color/r 1
+======================== SCENE 2 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+/teapot/color/r/morph/timegrain 20
+/teapot/color/r/morph/curve/quality 0
+/teapot/color/r/morph/curve/resolution 128
+/teapot/color/r/morph/curve/weight 0
+/teapot/color/r/morph/curve/shape 0
+/teapot/color/r/morph/time 2
+/teapot/color/r/morph 1
+/teapot/color/r/delay 0
+/teapot/color/r/slave 0
+/teapot/color/r/occupy 0
+/teapot/color/g/morph/timegrain 20
+/teapot/color/g/morph/curve/quality 0
+/teapot/color/g/morph/curve/resolution 128
+/teapot/color/g/morph/curve/weight 0
+/teapot/color/g/morph/curve/shape 0
+/teapot/color/g/morph/time 2
+/teapot/color/g/morph 1
+/teapot/color/g/delay 0
+/teapot/color/g/slave 0
+/teapot/color/g/occupy 0
+/teapot/color/b/morph/timegrain 20
+/teapot/color/b/morph/curve/quality 0
+/teapot/color/b/morph/curve/resolution 128
+/teapot/color/b/morph/curve/weight 0
+/teapot/color/b/morph/curve/shape 0
+/teapot/color/b/morph/time 2
+/teapot/color/b/morph 1
+/teapot/color/b/delay 0
+/teapot/color/b/slave 0
+/teapot/color/b/occupy 0
+# TABLES
+# DATA
+/teapot/color/b 0
+/teapot/color/g 1
+/teapot/color/r 1
+======================== SCENE 3 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+/teapot/color/r/morph/timegrain 20
+/teapot/color/r/morph/curve/quality 0
+/teapot/color/r/morph/curve/resolution 128
+/teapot/color/r/morph/curve/weight 0
+/teapot/color/r/morph/curve/shape 0
+/teapot/color/r/morph/time 2
+/teapot/color/r/morph 1
+/teapot/color/r/delay 0
+/teapot/color/r/slave 0
+/teapot/color/r/occupy 0
+/teapot/color/g/morph/timegrain 20
+/teapot/color/g/morph/curve/quality 0
+/teapot/color/g/morph/curve/resolution 128
+/teapot/color/g/morph/curve/weight 0
+/teapot/color/g/morph/curve/shape 0
+/teapot/color/g/morph/time 2
+/teapot/color/g/morph 1
+/teapot/color/g/delay 0
+/teapot/color/g/slave 0
+/teapot/color/g/occupy 0
+/teapot/color/b/morph/timegrain 20
+/teapot/color/b/morph/curve/quality 0
+/teapot/color/b/morph/curve/resolution 128
+/teapot/color/b/morph/curve/weight 0
+/teapot/color/b/morph/curve/shape 0
+/teapot/color/b/morph/time 2
+/teapot/color/b/morph 1
+/teapot/color/b/delay 0
+/teapot/color/b/slave 0
+/teapot/color/b/occupy 0
+# TABLES
+# DATA
+/teapot/color/b 1
+/teapot/color/g 0.866142
+/teapot/color/r 0.622047

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1646 - 0
data/ev_example_virtual_panoramic_3d.txt


+ 81 - 0
data/unnamed_preset.txt

@@ -0,0 +1,81 @@
+======================== GLOBAL ========================
+/print/debug/state 0
+/print/datastream/state 0
+/print/errors/state 1
+/print/info/state 1
+/store/tables/state 1
+/store/data/state 1
+/recall/tables/state 1
+/recall/data/state 1
+/dsp/mute 0
+/change 0
+/dispatch 1
+======================== SCENE 0 ========================
+# PROPERTIES
+/duration 0
+/name <unnamed>
+# SETTINGS
+# TABLES
+# DATA
+/ev/pro/crop/grid/res/y 16
+/ev/pro/crop/grid/res/x 16
+/ev/pro/crop/grid/width 2
+/ev/pro/crop/grid/color/a 0.6
+/ev/pro/crop/grid/color/v 1
+/ev/pro/crop/grid/color/s 0.6
+/ev/pro/crop/grid/color/h 0.745098
+/ev/pro/crop/grid/state 0
+/ev/pro/crop/grid/tex/flip/vertical 0
+/ev/pro/crop/grid/tex/flip/horizontal 0
+/ev/pro/crop/grid/tex/filename ../../media/grid.png
+/ev/pro/crop/grid/tex/state 0
+/ev/pro/crop/set_alpha 1
+/ev/pro/crop/cursor/mode 2
+/ev/pro/crop/state 1
+/ev/pro/crop/texture/weight/y 0
+/ev/pro/crop/texture/weight/x 0
+/ev/pro/crop/shade/left 0
+/ev/pro/crop/shade/bottom 0
+/ev/pro/crop/shade/right 0
+/ev/pro/crop/shade/top 0
+/ev/pro/crop/texture/bottom/right/y 0
+/ev/pro/crop/texture/bottom/right/x 640
+/ev/pro/crop/texture/bottom/left/y 0
+/ev/pro/crop/texture/bottom/left/x 0
+/ev/pro/crop/texture/top/right/y 480
+/ev/pro/crop/texture/top/right/x 640
+/ev/pro/crop/texture/top/left/y 480
+/ev/pro/crop/texture/top/left/x 0
+/ev/pro/crop/vertex/bottom/right/y -4
+/ev/pro/crop/vertex/bottom/right/x 4
+/ev/pro/crop/vertex/bottom/left/y -4
+/ev/pro/crop/vertex/bottom/left/x -4
+/ev/pro/crop/vertex/top/right/y 4
+/ev/pro/crop/vertex/top/right/x 4
+/ev/pro/crop/vertex/top/left/y 4
+/ev/pro/crop/vertex/top/left/x -4
+/ev/mouse/texture/sensitivity 50
+/ev/mouse/select_radius 0.15
+/ev/gemwin/border 1
+/ev/gemwin/lighting 0
+/ev/gemwin/frame 25
+/ev/gemwin/offset/y 0
+/ev/gemwin/offset/x 0
+/ev/gemwin/dimen/y 600
+/ev/gemwin/dimen/x 800
+/ev/buf/buf/color 0 0 0 0
+/ev/buf/buf/shift/z 0
+/ev/buf/buf/scale/z 1
+/ev/buf/buf/state 1
+/ev/buf/buf/dimen/y 1024
+/ev/buf/buf/dimen/x 1024
+/ev/buf/buf/type BYTE
+/ev/buf/buf/format RGBA
+/ev/buf/buf/rectangle 1
+/ev/buf/buf/shift/y 0
+/ev/buf/buf/shift/x 0
+/ev/buf/buf/scale/y 1
+/ev/buf/buf/scale/x 1
+/ev/cam/1/state 1
+/ev/cam/1/flip/vertical 0
+/ev/cam/1/flip/horizontal 0

+ 6 - 0
ev-glsl/README.txt

@@ -0,0 +1,6 @@
+ev-glsl
+=======
+
+This folder contains abstractions to load individual Open GL Shaders for quick patching inside Pure Data.
+
+*  [ev_glsl] loads pairs of OpenGL Vertex- and Fragment-Shaders.

+ 141 - 0
ev-glsl/ev_glsl-help.pd

@@ -0,0 +1,141 @@
+#N canvas 263 22 1013 708 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl -lib Gem;
+#X obj 372 159 cnv 15 250 500 empty empty patch 20 12 0 14 -262130
+-66577 0;
+#X obj 6 -2 cnv 15 925 16 empty empty EXTENDED_VIEW_GLSL-MODULE 2 8
+0 14 -99865 -262144 0;
+#X text 61 540 (c)2012 Marian Weger \; part of EXTENDEDVIEW toolkit/
+gpl v3;
+#X obj 632 160 cnv 15 300 300 empty empty controls_for_shader 20 12
+0 14 -204800 -66577 0;
+#X obj 439 316 loadbang;
+#X obj 417 317 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 389 380 pix_image;
+#X obj 650 255 vsl 15 128 0 2 0 0 empty empty empty 0 -9 0 10 -258113
+-1 -1 7000 1;
+#X obj 670 255 vsl 15 128 0 2 0 0 empty empty empty 0 -9 0 10 -4034
+-1 -1 6350 1;
+#X obj 690 255 vsl 15 128 0 2 0 0 empty empty empty 0 -9 0 10 -4160
+-1 -1 6350 1;
+#X msg 417 344 open ../media/cam2.jpg;
+#X obj 389 225 gemhead;
+#X obj 650 195 loadbang;
+#X msg 650 428 gain \$1 \$2 \$3 \$4;
+#X obj 389 268 alpha;
+#X obj 710 255 vsl 15 128 0 2 0 0 empty empty empty 0 -9 0 10 -1 -262144
+-1 6350 1;
+#X msg 650 217 1;
+#N canvas 0 22 450 300 pack4 0;
+#X obj 141 102 t b f;
+#X obj 181 102 t b f;
+#X obj 221 102 t b f;
+#X obj 101 162 pack 1 1 1 1;
+#X obj 101 42 inlet;
+#X obj 141 42 inlet;
+#X obj 181 42 inlet;
+#X obj 221 42 inlet;
+#X obj 101 204 outlet;
+#X connect 0 0 3 0;
+#X connect 0 1 3 1;
+#X connect 1 0 3 0;
+#X connect 1 1 3 2;
+#X connect 2 0 3 0;
+#X connect 2 1 3 3;
+#X connect 3 0 8 0;
+#X connect 4 0 3 0;
+#X connect 5 0 0 0;
+#X connect 6 0 1 0;
+#X connect 7 0 2 0;
+#X restore 650 406 pd pack4;
+#X obj 372 470 cnv 15 560 230 empty empty empty 20 12 0 14 -262130
+-66577 0;
+#X text 432 266 needed only \, if the shader;
+#X text 432 279 works with alpha.;
+#X text 737 275 These controls are only for the;
+#X text 737 288 "gain" shader loaded in this;
+#X text 739 301 example.;
+#X text 739 331 Other shaders might need;
+#X text 739 344 different controls.;
+#X obj 6 24 cnv 15 360 250 empty empty description 5 12 0 12 -233017
+-66577 0;
+#X text 9 41 This abstraction loads pairs of GLSL Fragment and Vertex-Shaders
+\, and applies them to the gemlist.;
+#X text 18 142 <name>.frag contains the fragment shader.;
+#X text 18 158 <name>.vert contains the vertex shader.;
+#X text 8 92 This abstraction needs specific "<name>.frag" \, "<name>.vert"
+and "<name>.ctl.pd" files \, sitting in the "./glsl" folder \, where:
+;
+#X obj 6 286 cnv 15 360 60 empty empty creation_arguments: 5 12 0 12
+-162280 -1 0;
+#X text 9 308 1st: shader name;
+#X obj 6 359 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 11 379 Inlet 1: GEMlist;
+#X text 201 379 Outlet 1: GEMlist;
+#X text 11 394 Inlet 2: Shader controls;
+#X text 18 176 <name>.ctl.pd is a small pd abstraction with the controls
+of the shader. A template can be found in here:;
+#X obj 373 32 cnv 15 300 120 empty empty Create_Gem_Window 20 12 0
+14 -204786 -66577 0;
+#X obj 394 127 gemwin 20;
+#X msg 430 103 0 \, destroy;
+#X msg 394 77 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X text 437 59 CLICK HERE TO START:;
+#X obj 79 617 ../ev-main/ev_declare;
+#X text 81 596 load required pathes;
+#X obj 6 445 cnv 15 360 70 empty empty GUI_controls 5 12 0 12 -204800
+-66577 0;
+#X text 11 475 on/off --- on (shader active) \, off (shader inactive)
+;
+#X text 121 214 Template for "<name>.ctl.pd";
+#X obj 389 577 pix_texture;
+#X obj 389 679 rectangle 4 3;
+#X msg 464 610 \$3 \$2;
+#X obj 464 632 /;
+#X obj 464 654 * 4;
+#X text 514 616 scale rectangle automatically to the aspect ratio of
+the texture.;
+#X text 575 523 apply the shader that is specified by creation argument
+;
+#X msg 406 553 rectangle 1;
+#X obj 406 531 loadbang;
+#X text 486 554 "rectangle texturing" needed for this shader;
+#X obj 411 436 bng 15 250 50 0 empty empty bang_to_reload_shaders 17
+7 0 10 -262144 -1 -1;
+#X obj 151 236 glsl/name.ctl;
+#X text 69 236 Look inside:;
+#X obj 389 481 ev_glsl mygain dummy gain;
+#X connect 4 0 10 0;
+#X connect 5 0 10 0;
+#X connect 6 0 61 0;
+#X connect 7 0 17 0;
+#X connect 8 0 17 1;
+#X connect 9 0 17 2;
+#X connect 10 0 6 0;
+#X connect 11 0 14 0;
+#X connect 12 0 16 0;
+#X connect 13 0 61 2;
+#X connect 14 0 6 0;
+#X connect 15 0 17 3;
+#X connect 16 0 9 0;
+#X connect 16 0 8 0;
+#X connect 16 0 7 0;
+#X connect 16 0 15 0;
+#X connect 17 0 13 0;
+#X connect 40 0 39 0;
+#X connect 41 0 39 0;
+#X connect 48 0 49 0;
+#X connect 48 1 50 0;
+#X connect 50 0 51 0;
+#X connect 51 0 52 0;
+#X connect 52 0 49 2;
+#X connect 55 0 48 0;
+#X connect 56 0 55 0;
+#X connect 58 0 61 0;
+#X connect 61 0 48 0;
+#X coords 0 708 1 707 85 60 0;

+ 29 - 0
ev-glsl/ev_glsl.pd

@@ -0,0 +1,29 @@
+#N canvas 441 22 798 377 10;
+#X obj 10 11 cnv 15 600 18 empty empty EXTENDED_VIEW_GLSL_MODULE 3
+10 0 14 -99865 -262144 0;
+#X text 383 312 (c)2012 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 380 62 inlet gemlist;
+#X obj 380 257 outlet gemlist;
+#X obj 10 102 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X text 13 124 1st: shader name;
+#X obj 10 175 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 15 195 Inlet 1: GEMlist;
+#X text 205 195 Outlet 1: GEMlist;
+#X text 15 210 Inlet 2: Shader controls;
+#X obj 10 255 cnv 15 360 70 empty empty GUI_controls 5 12 0 12 -204800
+-66577 0;
+#X text 15 285 on/off --- on (shader active) \, off (shader inactive)
+;
+#X obj 594 58 inlet ctl;
+#X text 13 138 2nd: id;
+#X obj 40 55 ev_glsl_gui \$1 \$2;
+#X obj 380 144 ev_glsl_dsp \$1 \$2 \$3;
+#X obj 475 62 inlet texture-id;
+#X connect 2 0 15 0;
+#X connect 12 0 15 2;
+#X connect 15 0 3 0;
+#X connect 16 0 15 1;
+#X coords 0 -1 1 1 225 38 1 40 40;

+ 90 - 0
ev-glsl/ev_glsl_buf-help.pd

@@ -0,0 +1,90 @@
+#N canvas 367 54 807 706 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl -lib Gem;
+#X obj 372 157 cnv 15 380 400 empty empty media_input 20 12 0 14 -262130
+-66577 0;
+#X obj 6 -4 cnv 15 800 16 empty empty EXTENDED_VIEW_GLSL-BUFFER-MODULE
+2 8 0 14 -99865 -262144 0;
+#X obj 426 311 loadbang;
+#X obj 404 312 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 389 193 gemhead;
+#X obj 373 567 cnv 15 380 400 empty empty chained_GLSL_operations 20
+12 0 14 -261682 -66577 0;
+#X obj 6 22 cnv 15 360 100 empty empty description 5 12 0 12 -233017
+-66577 0;
+#X obj 6 134 cnv 15 360 70 empty empty creation_arguments: 5 12 0 12
+-162280 -1 0;
+#X obj 6 207 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X obj 373 30 cnv 15 380 120 empty empty Create_Gem_Window 20 12 0
+14 -204786 -66577 0;
+#X obj 394 125 gemwin 20;
+#X msg 430 101 0 \, destroy;
+#X msg 394 75 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X text 437 57 CLICK HERE TO START:;
+#X obj 79 465 ../ev-main/ev_declare;
+#X text 81 444 load required pathes;
+#X obj 6 293 cnv 15 360 70 empty empty GUI_controls 5 12 0 12 -204800
+-66577 0;
+#X obj 417 640 bng 15 250 50 0 empty empty reload_shaders 17 7 0 10
+-262144 -1 -1;
+#X obj 389 390 pix_texture;
+#X obj 389 597 gemhead 51;
+#X msg 464 413 \$3 \$2;
+#X obj 464 435 /;
+#X obj 464 457 * 4;
+#X obj 389 482 rectangle 4 3;
+#X text 493 438 calculate aspect ratio;
+#X obj 537 597 r /ev/buf/inputbuffer/texture_id;
+#X text 9 39 This abstraction creates a framebuffer and applies a specified
+shader to it.;
+#X obj 373 974 cnv 15 380 200 empty empty draw_result_into_gem_window
+20 12 0 14 -204786 -66577 0;
+#X obj 589 1024 gemhead;
+#X obj 589 1090 pix_texture;
+#X obj 589 1122 rectangle 4 4;
+#X text 391 503 draw content in right aspect ratio \; into square framebuffer
+;
+#X text 61 388 (c)2013 Marian Weger \; part of EXTENDEDVIEW toolkit/
+gpl v3;
+#X obj 389 215 ev_buf inputbuffer dummy;
+#X text 9 156 1st: id;
+#X text 9 169 2nd: domain;
+#X text 9 182 3rd: shader name;
+#X obj 515 768 hsl 128 15 0 5 0 0 /ev/glsl/colorbuf/contrast /ev/glsl/colorbuf/contrast
+contrast -2 -8 0 10 -203904 -1 -1 2540 1;
+#X obj 515 798 hsl 128 15 0 5 0 0 /ev/glsl/colorbuf/saturation /ev/glsl/colorbuf/saturation
+saturation -2 -8 0 10 -203904 -1 -1 2540 1;
+#X obj 515 828 hsl 128 15 0 5 0 0 /ev/glsl/colorbuf/brightness /ev/glsl/colorbuf/brightness
+brightness -2 -8 0 10 -203904 -1 -1 2540 1;
+#X msg 404 339 open ../media/cam2.jpg;
+#X text 409 784 play around:;
+#X obj 389 368 pix_image;
+#X obj 389 669 ev_glsl_buf colorbuf dummy contrast;
+#X obj 389 862 ev_glsl_buf colorbuf2 dummy invert;
+#X connect 2 0 40 0;
+#X connect 3 0 40 0;
+#X connect 4 0 33 0;
+#X connect 11 0 10 0;
+#X connect 12 0 10 0;
+#X connect 17 0 43 0;
+#X connect 18 0 23 0;
+#X connect 18 1 20 0;
+#X connect 19 0 43 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 2;
+#X connect 25 0 43 1;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 33 0 42 0;
+#X connect 40 0 42 0;
+#X connect 42 0 18 0;
+#X connect 43 0 44 0;
+#X connect 43 1 44 1;
+#X connect 44 1 29 1;
+#X coords 0 706 1 705 85 60 0;

+ 40 - 0
ev-glsl/ev_glsl_buf.pd

@@ -0,0 +1,40 @@
+#N canvas 387 22 1055 651 10;
+#X obj 99 318 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 99 381 cnv 15 360 90 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 102 334 1st: module ID;
+#X obj 102 200 cnv 15 200 100 empty empty gui_controls 5 8 0 12 -204800
+-66577 0;
+#X text 102 239 scale x/y: scales the buffers;
+#X text 168 228 content;
+#X text 102 217 shift x/y: translates the buffers;
+#X text 168 248 content;
+#X text 102 261 dimen x/y: dimension of the FB;
+#X text 102 273 on/off: toggles state;
+#X text 642 538 outlet 1: gemlist outlet;
+#X text 812 515 outlet 2: texture id;
+#X obj 550 538 outlet gemlist;
+#X obj 811 543 outlet texture_id;
+#X obj 538 60 cnv 15 200 40 empty empty inlets 1 8 0 12 -260097 -66577
+0;
+#X obj 549 78 inlet gemlist;
+#X text 102 286 rotate: rotate content;
+#X text 102 346 2nd: storage domain;
+#X obj 755 71 inlet texture_id;
+#N canvas 0 22 450 300 init 0;
+#X obj 147 59 loadbang;
+#X obj 147 81 list prepend \$1 \$2 \$3;
+#X connect 0 0 1 0;
+#X restore 387 230 pd init;
+#X text 102 359 3rd: shader name;
+#X text 103 492 (c)2013 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 595 241 ev_glsl_buf_dsp \$1 \$2 \$3;
+#X obj 784 282 glsl/\$3.reg \$1 \$2 \$3;
+#X obj 100 115 ev_glsl_buf_gui \$1 \$2 \$3;
+#X connect 15 0 22 0;
+#X connect 18 0 22 1;
+#X connect 22 0 12 0;
+#X connect 22 1 13 0;
+#X coords 0 -1 1 1 270 75 1 100 100;

+ 80 - 0
ev-glsl/ev_glsl_buf2-help.pd

@@ -0,0 +1,80 @@
+#N canvas 135 86 1082 620 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl -lib Gem;
+#X obj 372 71 cnv 15 300 400 empty empty media_input 20 12 0 14 -262130
+-66577 0;
+#X obj 6 -90 cnv 15 1000 16 empty empty EXTENDED_VIEW_GLSL-BUFFER-MODULE
+2 8 0 14 -99865 -262144 0;
+#X obj 426 225 loadbang;
+#X obj 404 226 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 389 282 pix_image;
+#X obj 389 107 gemhead;
+#X obj 683 -56 cnv 15 380 300 empty empty chained_GLSL_operations 20
+12 0 14 -261682 -66577 0;
+#X obj 6 -64 cnv 15 360 100 empty empty description 5 12 0 12 -233017
+-66577 0;
+#X obj 6 48 cnv 15 360 60 empty empty creation_arguments: 5 12 0 12
+-162280 -1 0;
+#X obj 6 121 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X obj 373 -56 cnv 15 300 120 empty empty Create_Gem_Window 20 12 0
+14 -204786 -66577 0;
+#X obj 394 39 gemwin 20;
+#X msg 430 15 0 \, destroy;
+#X msg 394 -11 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X text 437 -29 CLICK HERE TO START:;
+#X obj 79 379 ../ev-main/ev_declare;
+#X text 81 358 load required pathes;
+#X obj 6 207 cnv 15 360 70 empty empty GUI_controls 5 12 0 12 -204800
+-66577 0;
+#X obj 718 26 bng 15 250 50 0 empty empty reload_shaders 17 7 0 10
+-262144 -1 -1;
+#X msg 404 253 open ../media/cam3.jpg;
+#X obj 389 304 pix_texture;
+#X obj 699 -6 gemhead 51;
+#X msg 464 327 \$3 \$2;
+#X obj 464 349 /;
+#X obj 464 371 * 4;
+#X obj 389 396 rectangle 4 3;
+#X text 493 352 calculate aspect ratio;
+#X obj 847 -6 r /ev/buf/inputbuffer/texture_id;
+#X obj 683 271 cnv 15 250 200 empty empty draw_result_into_gem_window
+20 12 0 14 -204786 -66577 0;
+#X obj 781 321 gemhead;
+#X obj 781 387 pix_texture;
+#X obj 781 419 rectangle 4 4;
+#X text 391 417 draw content in right aspect ratio \; into square framebuffer
+;
+#X text 61 302 (c)2013 Marian Weger \; part of EXTENDEDVIEW toolkit/
+gpl v3;
+#X obj 389 129 ev_buf inputbuffer dummy;
+#X text 9 70 1st: id;
+#X text 9 83 2nd: domain;
+#X text 9 96 3rd: shader name;
+#X obj 743 193 hsl 128 15 0 1 0 0 /ev/glsl/blurbuf/blur /ev/glsl/blurbuf/blur
+blur -2 -8 0 10 -203904 -1 -1 0 1;
+#X obj 699 66 ev_glsl_buf2 blurbuf dummy gaussian_blur;
+#X connect 2 0 19 0;
+#X connect 3 0 19 0;
+#X connect 4 0 20 0;
+#X connect 5 0 34 0;
+#X connect 12 0 11 0;
+#X connect 13 0 11 0;
+#X connect 18 0 39 0;
+#X connect 19 0 4 0;
+#X connect 20 0 25 0;
+#X connect 20 1 22 0;
+#X connect 21 0 39 0;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 24 0 25 2;
+#X connect 27 0 39 1;
+#X connect 29 0 30 0;
+#X connect 30 0 31 0;
+#X connect 34 0 4 0;
+#X connect 39 1 30 1;
+#X coords 0 620 1 619 85 60 0;

+ 39 - 0
ev-glsl/ev_glsl_buf2.pd

@@ -0,0 +1,39 @@
+#N canvas 207 22 1055 651 10;
+#X obj 99 318 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 99 381 cnv 15 360 90 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 102 334 1st: module ID;
+#X obj 102 200 cnv 15 200 100 empty empty gui_controls 5 8 0 12 -204800
+-66577 0;
+#X text 102 239 scale x/y: scales the buffers;
+#X text 168 228 content;
+#X text 102 217 shift x/y: translates the buffers;
+#X text 168 248 content;
+#X text 102 261 dimen x/y: dimension of the FB;
+#X text 102 273 on/off: toggles state;
+#X text 642 538 outlet 1: gemlist outlet;
+#X text 812 515 outlet 2: texture id;
+#X obj 550 538 outlet gemlist;
+#X obj 811 543 outlet texture_id;
+#X obj 538 60 cnv 15 200 40 empty empty inlets 1 8 0 12 -260097 -66577
+0;
+#X obj 549 78 inlet gemlist;
+#X text 102 286 rotate: rotate content;
+#X text 102 346 2nd: storage domain;
+#X obj 755 71 inlet texture_id;
+#N canvas 0 22 450 300 init 0;
+#X obj 147 59 loadbang;
+#X obj 147 81 list prepend \$1 \$2 \$3;
+#X connect 0 0 1 0;
+#X restore 387 230 pd init;
+#X text 102 359 3rd: shader name;
+#X text 103 492 (c)2013 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 549 230 ev_glsl_buf2_dsp \$1 \$2 \$3;
+#X obj 100 115 ev_glsl_buf_gui \$1;
+#X connect 15 0 22 0;
+#X connect 18 0 22 1;
+#X connect 22 0 12 0;
+#X connect 22 1 13 0;
+#X coords 0 -1 1 1 270 75 1 100 100;

+ 21 - 0
ev-glsl/ev_glsl_buf2_dsp.pd

@@ -0,0 +1,21 @@
+#N canvas 207 22 1055 651 10;
+#X text 642 538 outlet 1: gemlist outlet;
+#X text 812 515 outlet 2: texture id;
+#X obj 550 538 outlet gemlist;
+#X obj 811 543 outlet texture_id;
+#X obj 538 60 cnv 15 200 40 empty empty inlets 1 8 0 12 -260097 -66577
+0;
+#X obj 549 78 inlet gemlist;
+#X obj 755 71 inlet texture_id;
+#X text 103 492 (c)2013 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 543 204 ev_glsl_buf_dsp \$1 \$2 \$3.v;
+#X obj 543 182 ev_glsl_buf_dsp \$1 \$2 \$3.h;
+#X obj 784 282 glsl/\$3.2-pass.reg \$1 \$2 \$3;
+#X connect 5 0 9 0;
+#X connect 6 0 9 1;
+#X connect 8 0 2 0;
+#X connect 8 1 3 0;
+#X connect 9 0 8 0;
+#X connect 9 1 8 1;
+#X coords 0 651 1 650 270 75 0;

+ 37 - 0
ev-glsl/ev_glsl_buf_dsp.pd

@@ -0,0 +1,37 @@
+#N canvas 207 22 1055 651 10;
+#X obj 99 318 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 99 381 cnv 15 360 90 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 102 334 1st: module ID;
+#X text 642 538 outlet 1: gemlist outlet;
+#X text 812 515 outlet 2: texture id;
+#X obj 550 538 outlet gemlist;
+#X obj 811 543 outlet texture_id;
+#X obj 538 60 cnv 15 200 40 empty empty inlets 1 8 0 12 -260097 -66577
+0;
+#X obj 549 78 inlet gemlist;
+#X text 102 346 2nd: storage domain;
+#X obj 755 71 inlet texture_id;
+#N canvas 0 22 450 300 init 0;
+#X obj 147 59 loadbang;
+#X obj 147 81 list prepend \$1 \$2 \$3;
+#X connect 0 0 1 0;
+#X restore 387 230 pd init;
+#X text 102 359 3rd: shader name;
+#X text 103 492 (c)2013 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 579 432 square 4;
+#X obj 549 100 t a a;
+#X obj 578 131 separator;
+#X obj 579 410 ev_glsl_dsp \$1 \$2 \$3;
+#X obj 579 237 ev_buf_dsp \$1 \$2;
+#X connect 8 0 15 0;
+#X connect 10 0 17 1;
+#X connect 15 0 5 0;
+#X connect 15 1 16 0;
+#X connect 16 0 18 0;
+#X connect 17 0 14 0;
+#X connect 18 0 17 0;
+#X connect 18 1 6 0;
+#X coords 0 651 1 650 270 75 0;

+ 37 - 0
ev-glsl/ev_glsl_buf_gui.pd

@@ -0,0 +1,37 @@
+#N canvas 77 123 694 524 10;
+#X obj 101 101 cnv 15 268 54 empty empty empty 20 12 0 14 -228856 -66577
+0;
+#X obj 310 118 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/dimen/x /ev/buf/\$1/dimen/x
+x -8 8 0 10 -204800 -1 -1 1024 256;
+#X obj 310 136 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/dimen/y /ev/buf/\$1/dimen/y
+y -8 8 0 10 -204800 -1 -1 1024 256;
+#X obj 104 102 tgl 15 0 /ev/buf/\$1/state /ev/buf/\$1/state on/off
+17 7 0 10 -4034 -1 -1 1 1;
+#X text 308 101 dimen;
+#X obj 100 10 cnv 15 850 16 empty empty EXTENDED_VIEW_FRAMEBUFFER 20
+8 0 14 -233017 -66577 0;
+#X obj 99 318 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 102 200 cnv 15 200 100 empty empty gui_controls 5 8 0 12 -204800
+-66577 0;
+#X obj 104 120 tgl 15 0 /ev/glsl/\$1/state /ev/glsl/\$1/state shader_on/off
+17 7 0 10 -257985 -1 -1 1 1;
+#X obj 224 123 tgl 15 0 /ev/glsl/\$1/rectangle /ev/glsl/\$1/rectangle
+tex_rect 17 7 0 10 -232576 -1 -1 1 1;
+#X obj 224 104 tgl 15 0 /ev/buf/\$1/rectangle /ev/buf/\$1/rectangle
+buf_rect 17 7 0 10 -232576 -1 -1 1 1;
+#X text 111 424 (c)2013 Marian Weger /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 104 138 bng 15 250 50 0 /ev/glsl/\$1/gui/vis /ev/glsl/\$1/gui/vis
+show_shader_settings 17 7 0 10 -4032 -1 -1;
+#X obj 482 108 r /ev/glsl/\$1/gui/vis;
+#X obj 482 130 b;
+#X msg 482 152 vis 1;
+#X obj 482 174 s pd-\$0-shader-gui;
+#N canvas 776 130 281 216 \$0-shader-gui 0;
+#X obj 1 1 glsl/\$3.gui \$1 \$2 \$3;
+#X restore 482 213 pd \$0-shader-gui;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X coords 0 -1 1 1 270 56 2 100 100;

+ 140 - 0
ev-glsl/ev_glsl_dsp.pd

@@ -0,0 +1,140 @@
+#N canvas 160 22 898 540 10;
+#X obj 10 202 cnv 15 600 18 empty empty EXTENDED_VIEW_GLSL_MODULE 3
+10 0 14 -99865 -262144 0;
+#X text 380 546 (c)2012 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 10 293 cnv 15 360 80 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 10 376 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 15 396 Inlet 1: GEMlist;
+#X text 205 396 Outlet 1: GEMlist;
+#X text 15 411 Inlet 2: Shader controls;
+#N canvas 0 22 450 300 init 0;
+#X obj 147 62 loadbang;
+#X obj 147 84 list prepend \$1 \$2;
+#X msg 147 116 \; /ev/glsl/\$1/state 1 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 282 249 pd init;
+#X obj 380 253 inlet gemlist;
+#N canvas 332 22 659 729 glsl 0;
+#X obj 188 289 glsl_vertex;
+#X msg 90 272 print;
+#X obj 188 576 glsl_program;
+#X obj 293 515 pack 0 0;
+#X msg 90 423 print;
+#X obj 293 471 change;
+#X obj 338 316 change;
+#X msg 293 539 link \$1 \$2;
+#X msg 90 559 print;
+#X obj 188 440 glsl_fragment;
+#X floatatom 293 495 2 0 0 0 ID - -;
+#X floatatom 338 369 2 0 0 0 ID - -;
+#X obj 51 34 route bang;
+#X obj 188 131 gemhead 1;
+#X msg 188 153 1;
+#X obj 188 177 change;
+#X obj 188 201 t b;
+#X obj 397 627 change;
+#X obj 397 648 t b;
+#X obj 421 368 symbol;
+#X obj 421 343 t b;
+#X msg 397 599 0;
+#X obj 51 55 t b b b;
+#X msg 471 395 open glsl/contrast.frag;
+#X obj 444 132 loadbang;
+#X obj 397 132 t b;
+#X obj 51 11 inlet gemlist;
+#X obj 188 670 outlet gemlist;
+#X obj 138 11 inlet shader-data;
+#X obj 398 670 outlet shader-init;
+#X msg 234 259 open glsl/contrast.vert;
+#X obj 70 458 t b;
+#X obj 90 210 t b;
+#X msg 234 226 set open glsl/\$1.vert;
+#X msg 471 368 set open glsl/\$1.frag;
+#X obj 444 175 t l l;
+#X obj 444 154 list append \$3;
+#X obj 293 567 print [glsl] \$1/\$3;
+#X connect 0 0 9 0;
+#X connect 0 1 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 27 0;
+#X connect 2 1 17 0;
+#X connect 3 0 7 0;
+#X connect 4 0 9 0;
+#X connect 5 0 10 0;
+#X connect 6 0 11 0;
+#X connect 6 0 20 0;
+#X connect 7 0 2 0;
+#X connect 7 0 37 0;
+#X connect 8 0 2 0;
+#X connect 9 0 2 0;
+#X connect 9 1 5 0;
+#X connect 10 0 3 0;
+#X connect 11 0 3 1;
+#X connect 12 0 22 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 30 0;
+#X connect 17 0 18 0;
+#X connect 18 0 29 0;
+#X connect 19 0 23 0;
+#X connect 20 0 19 0;
+#X connect 21 0 17 0;
+#X connect 22 0 25 0;
+#X connect 22 1 31 0;
+#X connect 22 2 32 0;
+#X connect 23 0 9 0;
+#X connect 24 0 36 0;
+#X connect 25 0 21 0;
+#X connect 26 0 12 0;
+#X connect 28 0 2 0;
+#X connect 30 0 0 0;
+#X connect 31 0 10 0;
+#X connect 32 0 30 0;
+#X connect 33 0 30 0;
+#X connect 34 0 23 0;
+#X connect 35 0 33 0;
+#X connect 35 1 34 0;
+#X connect 36 0 35 0;
+#X restore 579 417 pd glsl;
+#X obj 380 518 outlet gemlist;
+#X obj 380 379 kdemux2;
+#X obj 662 253 inlet ctl;
+#X obj 380 491 pix_texture;
+#X obj 490 253 inlet texture-id;
+#X obj 662 275 route float;
+#X obj 662 417 glsl/\$3.ctl \$1 \$2 \$3;
+#X obj 209 454 r /ev/glsl/\$1/texture;
+#X obj 579 324 s /ev/glsl/\$1/state;
+#X obj 579 351 r /ev/glsl/\$1/state;
+#X text 13 315 1st: id;
+#X text 13 331 2nd: domain;
+#X text 13 345 3rd: shader name;
+#X msg 509 476 dim0 \$2 \$3;
+#X obj 129 484 r /ev/glsl/\$1/rectangle;
+#X obj 129 506 int;
+#X msg 129 528 rectangle \$1;
+#X connect 8 0 11 0;
+#X connect 9 0 13 0;
+#X connect 9 1 16 0;
+#X connect 11 0 13 0;
+#X connect 11 1 9 0;
+#X connect 12 0 15 0;
+#X connect 13 0 10 0;
+#X connect 13 1 23 0;
+#X connect 14 0 13 1;
+#X connect 15 0 18 0;
+#X connect 15 1 16 1;
+#X connect 16 0 9 1;
+#X connect 17 0 13 0;
+#X connect 19 0 11 1;
+#X connect 23 0 16 1;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X connect 26 0 13 0;
+#X coords 0 540 1 539 225 38 0;

+ 18 - 0
ev-glsl/ev_glsl_gui.pd

@@ -0,0 +1,18 @@
+#N canvas 491 41 655 349 10;
+#X obj 10 11 cnv 15 600 18 empty empty EXTENDED_VIEW_GLSL_MODULE 3
+10 0 14 -99865 -262144 0;
+#X text 383 192 (c)2012 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 10 102 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X text 13 124 1st: shader name;
+#X obj 10 175 cnv 15 360 70 empty empty GUI_controls 5 12 0 12 -204800
+-66577 0;
+#X text 15 205 on/off --- on (shader active) \, off (shader inactive)
+;
+#X obj 41 41 cnv 15 223 17 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 46 42 tgl 15 0 /ev/glsl/\$1/state /ev/glsl/\$1/state on/off
+17 7 0 10 -4034 -1 -1 1 1;
+#X text 13 140 2nd: id;
+#X coords 0 -1 1 1 225 19 2 40 40;

+ 86 - 0
ev-glsl/ev_glsl_mix2-help.pd

@@ -0,0 +1,86 @@
+#N canvas 429 141 1083 565 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl -lib Gem;
+#X obj 100 -18 gemwin 20;
+#X msg 136 -42 0 \, destroy;
+#X obj 57 47 ../ev-main/ev_declare;
+#X obj 31 216 bng 15 250 50 0 empty empty bang_to_reload_shaders 17
+7 0 10 -262144 -1 -1;
+#X msg 658 349 \$1;
+#X floatatom 658 371 10 0 0 0 - - -;
+#X obj 887 83 loadbang;
+#X obj 865 84 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 837 147 pix_image;
+#X msg 900 291 \$1;
+#X floatatom 900 313 5 0 0 0 - - -;
+#X obj 861 199 loadbang;
+#X obj 595 207 pix_image;
+#X obj 650 140 loadbang;
+#X obj 628 141 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 837 264 pix_texture;
+#X obj 837 57 gemhead 11;
+#X obj 97 250 gemhead;
+#X obj 97 379 rectangle 4 3;
+#X msg 866 111 open ../media/container.jpg;
+#X obj 837 169 pix_resize;
+#X obj 595 -58 gemhead 99;
+#X obj 595 95 translateXYZ 0 0 -4;
+#X obj 595 54 gemframebuffer;
+#X msg 861 223 rectangle 0;
+#X obj 595 326 pix_texture;
+#X obj 616 -23 loadbang;
+#X msg 616 2 type BYTE \, color 0 0 0 0 \, dimen 512 512 \, mode 0
+\, rectangle 0 \, format RGBA;
+#X obj 595 397 rectangle 4 -4;
+#X obj 315 22 vsl 15 128 0 1 0 0 empty empty mix_between_textures 0
+-9 0 10 -260097 -1 -1 0 1;
+#X msg 629 168 open ../media/cam3.jpg;
+#X msg 315 158 amount \$1 \$1 \$1 \$1;
+#X text 692 400 why gets framebuffer content always flipped???;
+#X obj 621 255 loadbang;
+#X msg 621 279 rectangle 0;
+#X text 201 433 Why does this &#!§% [pix_multitexture] always crash
+my PD???;
+#X text 907 165 resize to next power of two;
+#X text 926 187 (no rectangle texturing!);
+#X msg 100 -68 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X obj 97 327 ev_glsl_mix2 mixer1 dummy mix2;
+#X connect 1 0 0 0;
+#X connect 3 0 39 0;
+#X connect 4 0 5 0;
+#X connect 6 0 19 0;
+#X connect 7 0 19 0;
+#X connect 8 0 20 0;
+#X connect 9 0 10 0;
+#X connect 11 0 24 0;
+#X connect 12 0 25 0;
+#X connect 13 0 30 0;
+#X connect 14 0 30 0;
+#X connect 15 1 9 0;
+#X connect 15 1 39 2;
+#X connect 16 0 8 0;
+#X connect 17 0 39 0;
+#X connect 19 0 8 0;
+#X connect 20 0 15 0;
+#X connect 21 0 23 0;
+#X connect 22 0 12 0;
+#X connect 23 0 22 0;
+#X connect 23 1 39 1;
+#X connect 24 0 15 0;
+#X connect 25 0 28 0;
+#X connect 25 1 4 0;
+#X connect 26 0 27 0;
+#X connect 27 0 23 0;
+#X connect 29 0 31 0;
+#X connect 30 0 12 0;
+#X connect 31 0 39 3;
+#X connect 33 0 34 0;
+#X connect 34 0 25 0;
+#X connect 38 0 0 0;
+#X connect 39 0 18 0;
+#X coords 0 565 1 564 85 60 0;

+ 31 - 0
ev-glsl/ev_glsl_mix2.pd

@@ -0,0 +1,31 @@
+#N canvas 104 257 798 377 10;
+#X obj 10 11 cnv 15 600 18 empty empty EXTENDED_VIEW_GLSL_MODULE 3
+10 0 14 -99865 -262144 0;
+#X text 383 312 (c)2012 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 380 62 inlet gemlist;
+#X obj 380 257 outlet gemlist;
+#X obj 10 102 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X text 13 124 1st: shader name;
+#X obj 10 175 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 15 195 Inlet 1: GEMlist;
+#X text 205 195 Outlet 1: GEMlist;
+#X text 15 210 Inlet 2: Shader controls;
+#X obj 10 255 cnv 15 360 70 empty empty GUI_controls 5 12 0 12 -204800
+-66577 0;
+#X text 15 285 on/off --- on (shader active) \, off (shader inactive)
+;
+#X obj 699 62 inlet ctl;
+#X text 13 138 2nd: id;
+#X obj 40 55 ev_glsl_gui \$1 \$2;
+#X obj 475 62 inlet texture-id;
+#X obj 380 144 ev_glsl_mix2_dsp \$1 \$2 \$3;
+#X obj 585 62 inlet texture-id;
+#X connect 2 0 16 0;
+#X connect 12 0 16 3;
+#X connect 15 0 16 1;
+#X connect 16 0 3 0;
+#X connect 17 0 16 2;
+#X coords 0 -1 1 1 225 38 1 40 40;

+ 135 - 0
ev-glsl/ev_glsl_mix2_dsp.pd

@@ -0,0 +1,135 @@
+#N canvas 547 22 877 491 10;
+#X obj 10 153 cnv 15 600 18 empty empty EXTENDED_VIEW_GLSL_MODULE 3
+10 0 14 -99865 -262144 0;
+#X text 380 497 (c)2012 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 10 244 cnv 15 360 80 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 10 327 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 15 347 Inlet 1: GEMlist;
+#X text 205 347 Outlet 1: GEMlist;
+#X text 15 362 Inlet 2: Shader controls;
+#N canvas 0 22 450 300 init 0;
+#X obj 147 62 loadbang;
+#X obj 147 84 list prepend \$1 \$2;
+#X msg 147 116 \; /ev/glsl/\$1/state 1 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 282 200 pd init;
+#X obj 380 204 inlet gemlist;
+#N canvas 332 22 659 729 glsl 0;
+#X obj 188 289 glsl_vertex;
+#X msg 90 272 print;
+#X obj 188 576 glsl_program;
+#X obj 293 515 pack 0 0;
+#X msg 90 423 print;
+#X obj 293 471 change;
+#X obj 338 316 change;
+#X msg 293 539 link \$1 \$2;
+#X msg 90 559 print;
+#X obj 188 440 glsl_fragment;
+#X floatatom 293 495 2 0 0 0 ID - -;
+#X floatatom 338 369 2 0 0 0 ID - -;
+#X obj 51 34 route bang;
+#X obj 188 131 gemhead 1;
+#X msg 188 153 1;
+#X obj 188 177 change;
+#X obj 188 201 t b;
+#X obj 397 627 change;
+#X obj 397 648 t b;
+#X obj 421 368 symbol;
+#X obj 421 343 t b;
+#X msg 397 599 0;
+#X obj 51 55 t b b b;
+#X msg 471 395 open glsl/v001/mix2/heat.frag;
+#X obj 444 132 loadbang;
+#X obj 397 132 t b;
+#X obj 51 11 inlet gemlist;
+#X obj 188 670 outlet gemlist;
+#X obj 138 11 inlet shader-data;
+#X obj 398 670 outlet shader-init;
+#X obj 70 458 t b;
+#X obj 90 210 t b;
+#X msg 471 368 set open glsl/\$1.frag;
+#X obj 444 154 list append \$3;
+#X obj 293 567 print [glsl] \$1/\$3;
+#X obj 444 175 t b l;
+#X msg 234 259 open glsl/mix2.vert;
+#X connect 0 0 9 0;
+#X connect 0 1 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 27 0;
+#X connect 2 1 17 0;
+#X connect 3 0 7 0;
+#X connect 4 0 9 0;
+#X connect 5 0 10 0;
+#X connect 6 0 11 0;
+#X connect 6 0 20 0;
+#X connect 7 0 2 0;
+#X connect 7 0 34 0;
+#X connect 8 0 2 0;
+#X connect 9 0 2 0;
+#X connect 9 1 5 0;
+#X connect 10 0 3 0;
+#X connect 11 0 3 1;
+#X connect 12 0 22 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 36 0;
+#X connect 17 0 18 0;
+#X connect 18 0 29 0;
+#X connect 19 0 23 0;
+#X connect 20 0 19 0;
+#X connect 21 0 17 0;
+#X connect 22 0 25 0;
+#X connect 22 1 30 0;
+#X connect 22 2 31 0;
+#X connect 23 0 9 0;
+#X connect 24 0 33 0;
+#X connect 25 0 21 0;
+#X connect 26 0 12 0;
+#X connect 28 0 2 0;
+#X connect 30 0 10 0;
+#X connect 31 0 36 0;
+#X connect 32 0 23 0;
+#X connect 33 0 35 0;
+#X connect 35 1 32 0;
+#X connect 36 0 0 0;
+#X restore 729 368 pd glsl;
+#X obj 380 469 outlet gemlist;
+#X obj 380 330 kdemux2;
+#X obj 812 204 inlet ctl;
+#X obj 490 204 inlet texture-id;
+#X obj 209 405 r /ev/glsl/\$1/texture;
+#X obj 419 283 r /ev/glsl/\$1/state;
+#X text 13 266 1st: id;
+#X text 13 282 2nd: domain;
+#X text 13 296 3rd: shader name;
+#X obj 380 442 pix_multitexture 2;
+#X obj 600 204 inlet texture-id;
+#X obj 812 226 route float;
+#X obj 696 280 s /ev/glsl/\$1/state;
+#X obj 812 368 glsl/mix2.ctl \$1 \$2 \$3;
+#X msg 101 454 mode 0;
+#X obj 101 431 loadbang;
+#X obj 101 476 s /ev/glsl/\$1/texture;
+#X connect 8 0 11 0;
+#X connect 9 0 19 0;
+#X connect 9 1 23 0;
+#X connect 11 0 19 0;
+#X connect 11 1 9 0;
+#X connect 12 0 21 0;
+#X connect 13 0 19 1;
+#X connect 14 0 19 0;
+#X connect 15 0 11 1;
+#X connect 19 0 10 0;
+#X connect 20 0 19 2;
+#X connect 21 0 22 0;
+#X connect 21 1 23 1;
+#X connect 23 0 9 1;
+#X connect 24 0 26 0;
+#X connect 25 0 24 0;
+#X coords 0 491 1 490 225 38 0;

+ 106 - 0
ev-glsl/ev_glsl_mix3-help.pd

@@ -0,0 +1,106 @@
+#N canvas 200 82 1083 565 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl -lib Gem;
+#X obj 100 -18 gemwin 20;
+#X msg 136 -42 0 \, destroy;
+#X msg 100 -68 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X obj 57 47 ../ev-main/ev_declare;
+#X obj 31 216 bng 15 250 50 0 empty empty bang_to_reload_shaders 17
+7 0 10 -262144 -1 -1;
+#X msg 658 349 \$1;
+#X floatatom 658 371 10 0 0 0 - - -;
+#X obj 887 83 loadbang;
+#X obj 865 84 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 837 147 pix_image;
+#X msg 900 291 \$1;
+#X floatatom 900 313 5 0 0 0 - - -;
+#X obj 861 199 loadbang;
+#X obj 595 207 pix_image;
+#X obj 650 140 loadbang;
+#X obj 628 141 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 837 264 pix_texture;
+#X obj 837 57 gemhead 11;
+#X obj 97 250 gemhead;
+#X obj 97 379 rectangle 4 3;
+#X msg 866 111 open ../media/container.jpg;
+#X obj 837 169 pix_resize;
+#X obj 595 -58 gemhead 99;
+#X obj 595 95 translateXYZ 0 0 -4;
+#X obj 595 54 gemframebuffer;
+#X msg 861 223 rectangle 0;
+#X obj 595 326 pix_texture;
+#X obj 616 -23 loadbang;
+#X msg 616 2 type BYTE \, color 0 0 0 0 \, dimen 512 512 \, mode 0
+\, rectangle 0 \, format RGBA;
+#X obj 595 397 rectangle 4 -4;
+#X msg 629 168 open ../media/cam3.jpg;
+#X text 692 400 why gets framebuffer content always flipped???;
+#X obj 621 255 loadbang;
+#X msg 621 279 rectangle 0;
+#X text 201 433 Why does this &#!§% [pix_multitexture] always crash
+my PD???;
+#X text 907 165 resize to next power of two;
+#X text 926 187 (no rectangle texturing!);
+#X obj 735 475 loadbang;
+#X obj 713 476 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 685 539 pix_image;
+#X msg 748 683 \$1;
+#X floatatom 748 705 5 0 0 0 - - -;
+#X obj 709 591 loadbang;
+#X obj 685 656 pix_texture;
+#X obj 685 449 gemhead 11;
+#X obj 685 561 pix_resize;
+#X msg 709 615 rectangle 0;
+#X text 755 557 resize to next power of two;
+#X text 774 579 (no rectangle texturing!);
+#X msg 714 503 open ../media/grid.png;
+#X obj 97 327 ev_glsl_mix3 mixer1 dummy mix3;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 4 0 50 0;
+#X connect 5 0 6 0;
+#X connect 7 0 20 0;
+#X connect 8 0 20 0;
+#X connect 9 0 21 0;
+#X connect 10 0 11 0;
+#X connect 12 0 25 0;
+#X connect 13 0 26 0;
+#X connect 14 0 30 0;
+#X connect 15 0 30 0;
+#X connect 16 1 10 0;
+#X connect 16 1 50 2;
+#X connect 17 0 9 0;
+#X connect 18 0 50 0;
+#X connect 20 0 9 0;
+#X connect 21 0 16 0;
+#X connect 22 0 24 0;
+#X connect 23 0 13 0;
+#X connect 24 0 23 0;
+#X connect 24 1 50 1;
+#X connect 25 0 16 0;
+#X connect 26 0 29 0;
+#X connect 26 1 5 0;
+#X connect 27 0 28 0;
+#X connect 28 0 24 0;
+#X connect 30 0 13 0;
+#X connect 32 0 33 0;
+#X connect 33 0 26 0;
+#X connect 37 0 49 0;
+#X connect 38 0 49 0;
+#X connect 39 0 45 0;
+#X connect 40 0 41 0;
+#X connect 42 0 46 0;
+#X connect 43 1 40 0;
+#X connect 43 1 50 3;
+#X connect 44 0 39 0;
+#X connect 45 0 43 0;
+#X connect 46 0 43 0;
+#X connect 49 0 39 0;
+#X connect 50 0 19 0;
+#X coords 0 565 1 564 85 60 0;

+ 33 - 0
ev-glsl/ev_glsl_mix3.pd

@@ -0,0 +1,33 @@
+#N canvas 104 257 891 378 10;
+#X obj 10 11 cnv 15 600 18 empty empty EXTENDED_VIEW_GLSL_MODULE 3
+10 0 14 -99865 -262144 0;
+#X text 383 312 (c)2012 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 380 62 inlet gemlist;
+#X obj 380 257 outlet gemlist;
+#X obj 10 102 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X text 13 124 1st: shader name;
+#X obj 10 175 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 15 195 Inlet 1: GEMlist;
+#X text 205 195 Outlet 1: GEMlist;
+#X text 15 210 Inlet 2: Shader controls;
+#X obj 10 255 cnv 15 360 70 empty empty GUI_controls 5 12 0 12 -204800
+-66577 0;
+#X text 15 285 on/off --- on (shader active) \, off (shader inactive)
+;
+#X obj 809 62 inlet ctl;
+#X text 13 138 2nd: id;
+#X obj 40 55 ev_glsl_gui \$1 \$2;
+#X obj 475 62 inlet texture-id;
+#X obj 585 62 inlet texture-id;
+#X obj 380 144 ev_glsl_mix3_dsp \$1 \$2 \$3;
+#X obj 695 62 inlet texture-id;
+#X connect 2 0 17 0;
+#X connect 12 0 17 4;
+#X connect 15 0 17 1;
+#X connect 16 0 17 2;
+#X connect 17 0 3 0;
+#X connect 18 0 17 3;
+#X coords 0 -1 1 1 225 38 1 40 40;

+ 137 - 0
ev-glsl/ev_glsl_mix3_dsp.pd

@@ -0,0 +1,137 @@
+#N canvas 160 22 877 491 10;
+#X obj 10 153 cnv 15 600 18 empty empty EXTENDED_VIEW_GLSL_MODULE 3
+10 0 14 -99865 -262144 0;
+#X text 380 497 (c)2012 Marian Weger \; /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 10 244 cnv 15 360 80 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 10 327 cnv 15 360 70 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 15 347 Inlet 1: GEMlist;
+#X text 205 347 Outlet 1: GEMlist;
+#X text 15 362 Inlet 2: Shader controls;
+#N canvas 0 22 450 300 init 0;
+#X obj 147 62 loadbang;
+#X obj 147 84 list prepend \$1 \$2;
+#X msg 147 116 \; /ev/glsl/\$1/state 1 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 282 200 pd init;
+#X obj 380 204 inlet gemlist;
+#N canvas 332 22 659 729 glsl 0;
+#X obj 188 289 glsl_vertex;
+#X msg 90 272 print;
+#X obj 188 576 glsl_program;
+#X obj 293 515 pack 0 0;
+#X msg 90 423 print;
+#X obj 293 471 change;
+#X obj 338 316 change;
+#X msg 293 539 link \$1 \$2;
+#X msg 90 559 print;
+#X obj 188 440 glsl_fragment;
+#X floatatom 293 495 2 0 0 0 ID - -;
+#X floatatom 338 369 2 0 0 0 ID - -;
+#X obj 51 34 route bang;
+#X obj 188 131 gemhead 1;
+#X msg 188 153 1;
+#X obj 188 177 change;
+#X obj 188 201 t b;
+#X obj 397 627 change;
+#X obj 397 648 t b;
+#X obj 421 368 symbol;
+#X obj 421 343 t b;
+#X msg 397 599 0;
+#X obj 51 55 t b b b;
+#X msg 471 395 open glsl/0.frag;
+#X obj 444 132 loadbang;
+#X obj 397 132 t b;
+#X obj 51 11 inlet gemlist;
+#X obj 188 670 outlet gemlist;
+#X obj 138 11 inlet shader-data;
+#X obj 398 670 outlet shader-init;
+#X msg 234 259 open glsl/mix3.vert;
+#X obj 70 458 t b;
+#X obj 90 210 t b;
+#X msg 471 368 set open glsl/\$1.frag;
+#X obj 444 154 list append \$3;
+#X obj 293 567 print [glsl] \$1/\$3;
+#X obj 444 175 t b l;
+#X connect 0 0 9 0;
+#X connect 0 1 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 27 0;
+#X connect 2 1 17 0;
+#X connect 3 0 7 0;
+#X connect 4 0 9 0;
+#X connect 5 0 10 0;
+#X connect 6 0 11 0;
+#X connect 6 0 20 0;
+#X connect 7 0 2 0;
+#X connect 7 0 35 0;
+#X connect 8 0 2 0;
+#X connect 9 0 2 0;
+#X connect 9 1 5 0;
+#X connect 10 0 3 0;
+#X connect 11 0 3 1;
+#X connect 12 0 22 0;
+#X connect 12 1 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 30 0;
+#X connect 17 0 18 0;
+#X connect 18 0 29 0;
+#X connect 19 0 23 0;
+#X connect 20 0 19 0;
+#X connect 21 0 17 0;
+#X connect 22 0 25 0;
+#X connect 22 1 31 0;
+#X connect 22 2 32 0;
+#X connect 23 0 9 0;
+#X connect 24 0 34 0;
+#X connect 25 0 21 0;
+#X connect 26 0 12 0;
+#X connect 28 0 2 0;
+#X connect 30 0 0 0;
+#X connect 31 0 10 0;
+#X connect 32 0 30 0;
+#X connect 33 0 23 0;
+#X connect 34 0 36 0;
+#X connect 36 1 33 0;
+#X restore 729 368 pd glsl;
+#X obj 380 469 outlet gemlist;
+#X obj 380 330 kdemux2;
+#X obj 812 204 inlet ctl;
+#X obj 490 204 inlet texture-id;
+#X obj 209 405 r /ev/glsl/\$1/texture;
+#X obj 419 283 r /ev/glsl/\$1/state;
+#X text 13 266 1st: id;
+#X text 13 282 2nd: domain;
+#X text 13 296 3rd: shader name;
+#X obj 600 204 inlet texture-id;
+#X obj 812 226 route float;
+#X obj 696 280 s /ev/glsl/\$1/state;
+#X obj 380 442 pix_multitexture 3;
+#X obj 707 204 inlet texture-id;
+#X obj 812 368 glsl/mix3.ctl \$1 \$2 \$3;
+#X obj 92 423 loadbang;
+#X msg 92 445 mode 0;
+#X obj 92 467 s /ev/glsl/\$1/texture;
+#X connect 8 0 11 0;
+#X connect 9 0 22 0;
+#X connect 9 1 24 0;
+#X connect 11 0 22 0;
+#X connect 11 1 9 0;
+#X connect 12 0 20 0;
+#X connect 13 0 22 1;
+#X connect 14 0 22 0;
+#X connect 15 0 11 1;
+#X connect 19 0 22 2;
+#X connect 20 0 21 0;
+#X connect 20 1 24 1;
+#X connect 22 0 10 0;
+#X connect 23 0 22 3;
+#X connect 24 0 9 1;
+#X connect 25 0 26 0;
+#X connect 26 0 27 0;
+#X coords 0 491 1 490 225 38 0;

+ 20 - 0
ev-glsl/glsl/README.txt

@@ -0,0 +1,20 @@
+ev-glsl/glsl
+============
+
+This folder contains the shader files for the [ev_glsl] abstraction.
+
+For each effect, there should always be a quadruplet of files:
+--------------------------------------------------------------
+
+*  "<name>.vert" contains the vertex shader
+
+*  "<name>.frag" contains the fragment shader
+
+*  "<name>.ctl.pd" is an abstaction to control the shader's variables from Pd.
+   This abstraction also contains the initial values
+   of the shader's variables.
+
+*  "<name>.reg.pd" is an abstaction containing the registers for state saving
+   and osc communication.
+   This abstraction also initializes these values,
+

+ 66 - 0
ev-glsl/glsl/contrast.ctl.pd

@@ -0,0 +1,66 @@
+#N canvas 129 88 963 499 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 378 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X obj 152 233 f 1;
+#X obj 272 233 f 1;
+#X obj 382 233 f 1;
+#X msg 506 279 AvgLumR \$1;
+#X msg 616 277 AvgLumG \$1;
+#X msg 731 278 AvgLumB \$1;
+#X obj 506 257 f 0.5;
+#X obj 616 255 f 0.5;
+#X obj 731 256 f 0.5;
+#X text 325 363 (c)2013 Marian Weger;
+#X msg 155 273 con \$1;
+#X msg 265 271 sat \$1;
+#X msg 380 272 brt \$1;
+#X obj 595 43 r /ev/glsl/\$1/contrast;
+#X obj 605 63 r /ev/glsl/\$1/saturation;
+#X obj 615 83 r /ev/glsl/\$1/brightness;
+#X obj 625 103 r /ev/glsl/\$1/AvgLumR;
+#X obj 635 123 r /ev/glsl/\$1/AvgLumG;
+#X obj 645 143 r /ev/glsl/\$1/AvgLumB;
+#X obj 152 65 route contrast saturation brightness AvgLumR AvgLumG
+AvgLumB tex0;
+#X obj 685 163 r /ev/glsl/\$1/tex0;
+#X obj 831 276 int 0;
+#X msg 831 298 tex0 \$1;
+#X connect 0 0 4 0;
+#X connect 0 0 5 0;
+#X connect 0 0 6 0;
+#X connect 0 0 10 0;
+#X connect 0 0 11 0;
+#X connect 0 0 12 0;
+#X connect 0 0 25 0;
+#X connect 1 0 0 0;
+#X connect 3 0 23 0;
+#X connect 4 0 14 0;
+#X connect 5 0 15 0;
+#X connect 6 0 16 0;
+#X connect 7 0 2 0;
+#X connect 8 0 2 0;
+#X connect 9 0 2 0;
+#X connect 10 0 7 0;
+#X connect 11 0 8 0;
+#X connect 12 0 9 0;
+#X connect 14 0 2 0;
+#X connect 15 0 2 0;
+#X connect 16 0 2 0;
+#X connect 17 0 4 0;
+#X connect 18 0 5 0;
+#X connect 19 0 6 0;
+#X connect 20 0 10 0;
+#X connect 21 0 11 0;
+#X connect 22 0 12 0;
+#X connect 23 0 4 0;
+#X connect 23 1 5 0;
+#X connect 23 2 6 0;
+#X connect 23 3 10 0;
+#X connect 23 4 11 0;
+#X connect 23 5 12 0;
+#X connect 23 6 25 0;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X connect 26 0 2 0;

+ 58 - 0
ev-glsl/glsl/contrast.frag

@@ -0,0 +1,58 @@
+/*
+** Copyright (c) 2012, Romain Dura romain@shazbits.com
+** 
+** Permission to use, copy, modify, and/or distribute this software for any 
+** purpose with or without fee is hereby granted, provided that the above 
+** copyright notice and this permission notice appear in all copies.
+** 
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
+** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
+** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 
+** SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
+** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 
+** IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+/*
+** Contrast, saturation, brightness
+** Code of this function is from TGM's shader pack
+** http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=21057
+*/
+
+/*
+** 2013 adapted for Extended View Toolkit by Marian Weger
+*/
+
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect tex0; 
+
+uniform float brt;
+uniform float sat;
+uniform float con;
+uniform float AvgLumR;
+uniform float AvgLumG;
+uniform float AvgLumB;
+
+
+void main(void)
+{
+
+vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y));
+	
+	const vec3 LumCoeff = vec3(0.2125, 0.7154, 0.0721);
+	
+	vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB);
+	vec3 brtColor = color_old.rgb * brt;
+	vec3 intensity = vec3(dot(brtColor, LumCoeff));
+	vec3 satColor = mix(intensity, brtColor, sat);
+	vec3 conColor = mix(AvgLumin, satColor, con);
+
+vec4 color_new = vec4(conColor.rgb, color_old.a);
+
+gl_FragColor = color_new;
+
+}

+ 10 - 0
ev-glsl/glsl/contrast.gui.pd

@@ -0,0 +1,10 @@
+#N canvas 77 123 498 334 10;
+#X text 67 211 (c)2013 Marian Weger /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 103 100 hsl 128 15 0 4 0 0 /ev/glsl/\$1/contrast /ev/glsl/\$1/contrast
+contrast 8 7 0 10 -232576 -1 -1 0 1;
+#X obj 103 115 hsl 128 15 0 4 0 0 /ev/glsl/\$1/saturation /ev/glsl/\$1/saturation
+saturation 8 7 0 10 -204786 -1 -1 0 1;
+#X obj 103 130 hsl 128 15 0 4 0 0 /ev/glsl/\$1/brightness /ev/glsl/\$1/brightness
+brightness 8 7 0 10 -262130 -1 -1 0 1;
+#X coords 0 -1 1 1 133 45 2 100 100;

+ 26 - 0
ev-glsl/glsl/contrast.reg.pd

@@ -0,0 +1,26 @@
+#N canvas 111 177 963 499 10;
+#X text 325 343 (c)2013 Marian Weger;
+#X obj 515 222 loadbang;
+#X obj 515 244 list prepend \$1 \$2 \$3;
+#X obj 116 52 ds_reg \$2 /ev/glsl/\$1/contrast;
+#X obj 116 72 ds_reg \$2 /ev/glsl/\$1/saturation;
+#X obj 116 92 ds_reg \$2 /ev/glsl/\$1/brightness;
+#X obj 116 112 ds_reg \$2 /ev/glsl/\$1/AvgLumR;
+#X obj 116 132 ds_reg \$2 /ev/glsl/\$1/AvgLumG;
+#X obj 116 152 ds_reg \$2 /ev/glsl/\$1/AvgLumB;
+#X obj 378 53 osc_bi \$2 /ev/glsl/\$1/contrast;
+#X obj 378 73 osc_bi \$2 /ev/glsl/\$1/saturation;
+#X obj 378 93 osc_bi \$2 /ev/glsl/\$1/brightness;
+#X obj 378 113 osc_bi \$2 /ev/glsl/\$1/AvgLumR;
+#X obj 378 133 osc_bi \$2 /ev/glsl/\$1/AvgLumG;
+#X obj 378 153 osc_bi \$2 /ev/glsl/\$1/AvgLumB;
+#X obj 378 173 osc_bi \$2 /ev/glsl/\$1/state;
+#X obj 116 172 ds_reg \$2 /ev/glsl/\$1/state nomorph;
+#X obj 116 192 ds_reg \$2 /ev/glsl/\$1/tex0 nomorph;
+#X obj 378 193 osc_bi \$2 /ev/glsl/\$1/tex0;
+#X msg 515 266 \; /ev/glsl/\$1/contrast 1 \; /ev/glsl/\$1/saturation
+1 \; /ev/glsl/\$1/brightness 1 \; /ev/glsl/\$1/AvgLumR 0.5 \; /ev/glsl/\$1/AvgLumG
+0.5 \; /ev/glsl/\$1/AvgLumB 0.5 \; /ev/glsl/\$1/tex0 0 \; /ev/glsl/\$1/rectangle
+1 \;;
+#X connect 1 0 2 0;
+#X connect 2 0 19 0;

+ 6 - 0
ev-glsl/glsl/contrast.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 25 - 0
ev-glsl/glsl/desaturation.ctl.pd

@@ -0,0 +1,25 @@
+#N canvas 129 88 963 499 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 338 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X text 325 323 (c)2013 Marian Weger;
+#X msg 155 233 desaturation \$1;
+#X obj 169 157 r /ev/glsl/\$1/desaturation;
+#X obj 152 65 route desaturation tex0;
+#X obj 342 193 f 0;
+#X obj 359 157 r /ev/glsl/\$1/tex0;
+#X msg 345 233 tex0 \$1;
+#X obj 152 193 f 0.5;
+#X connect 0 0 8 0;
+#X connect 0 0 11 0;
+#X connect 1 0 0 0;
+#X connect 3 0 7 0;
+#X connect 5 0 2 0;
+#X connect 6 0 11 0;
+#X connect 7 0 11 0;
+#X connect 7 1 8 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 10 0 2 0;
+#X connect 11 0 5 0;

+ 44 - 0
ev-glsl/glsl/desaturation.frag

@@ -0,0 +1,44 @@
+/*
+** Copyright (c) 2012, Romain Dura romain@shazbits.com
+** 
+** Permission to use, copy, modify, and/or distribute this software for any 
+** purpose with or without fee is hereby granted, provided that the above 
+** copyright notice and this permission notice appear in all copies.
+** 
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
+** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
+** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 
+** SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
+** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 
+** IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+/*
+** Desaturation
+*/
+
+/*
+** 2013 adapted for Extended View Toolkit by Marian Weger
+*/
+
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect tex0; 
+uniform float desaturation;
+
+
+void main(void)
+{
+
+vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y));
+	
+vec3 grayXfer = vec3(0.3, 0.59, 0.11);
+vec3 gray = vec3(dot(grayXfer, color_old.rgb));
+vec4 color_new = vec4(mix(color_old.rgb, gray, desaturation), color_old.a);
+
+gl_FragColor = color_new;
+
+}

+ 14 - 0
ev-glsl/glsl/desaturation.reg.pd

@@ -0,0 +1,14 @@
+#N canvas 129 88 963 499 10;
+#X text 325 303 (c)2013 Marian Weger;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/desaturation;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/desaturation;
+#X obj 530 223 loadbang;
+#X obj 530 245 list prepend \$1 \$2;
+#X obj 418 133 osc_bi \$2 /ev/glsl/\$1/state;
+#X obj 156 132 ds_reg \$2 /ev/glsl/\$1/state nomorph;
+#X obj 156 152 ds_reg \$2 /ev/glsl/\$1/tex0 nomorph;
+#X obj 418 153 osc_bi \$2 /ev/glsl/\$1/tex0;
+#X msg 530 267 \; /ev/glsl/\$1/desaturation 0.5 \; /ev/glsl/\$1/tex0
+0 \;;
+#X connect 3 0 4 0;
+#X connect 4 0 9 0;

+ 6 - 0
ev-glsl/glsl/desaturation.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 30 - 0
ev-glsl/glsl/gain.ctl.pd

@@ -0,0 +1,30 @@
+#N canvas 109 229 685 451 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 278 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X text 325 263 (c)2011 Marian Weger;
+#X obj 152 236 list trim;
+#X obj 152 164 list prepend gain;
+#X obj 152 133 list 1 1 1 1;
+#X obj 152 97 t b a;
+#X obj 338 60 r /ev/glsl/\$1/gain;
+#X obj 152 65 route gain tex0;
+#X obj 348 80 r /ev/glsl/\$1/tex0;
+#X obj 298 132 int 0;
+#X msg 298 154 tex0 \$1;
+#X connect 0 0 7 0;
+#X connect 0 0 12 0;
+#X connect 1 0 0 0;
+#X connect 3 0 10 0;
+#X connect 5 0 2 0;
+#X connect 6 0 5 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 8 1 7 1;
+#X connect 9 0 8 0;
+#X connect 10 0 8 0;
+#X connect 10 1 12 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 2 0;

+ 21 - 0
ev-glsl/glsl/gain.frag

@@ -0,0 +1,21 @@
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect tex0; 
+
+uniform vec4 gain;
+
+void main(void)
+{
+
+vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y));
+vec4 color_new = color_old;
+
+color_new.r = clamp(gain.r * color_old.r, 0., 1.);
+color_new.g = clamp(gain.g * color_old.g, 0., 1.);
+color_new.b = clamp(gain.b * color_old.b, 0., 1.);
+color_new.a = clamp(gain.a * color_old.a, 0., 1.);
+
+gl_FragColor = color_new;
+
+}

+ 14 - 0
ev-glsl/glsl/gain.reg.pd

@@ -0,0 +1,14 @@
+#N canvas 454 159 963 499 10;
+#X text 325 263 (c)2013 Marian Weger;
+#X obj 530 183 loadbang;
+#X obj 530 205 list prepend \$1 \$2;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/gain;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/gain;
+#X obj 398 123 osc_bi \$2 /ev/glsl/\$1/state;
+#X obj 136 122 ds_reg \$2 /ev/glsl/\$1/state nomorph;
+#X obj 136 152 ds_reg \$2 /ev/glsl/\$1/tex0 nomorph;
+#X obj 398 153 osc_bi \$2 /ev/glsl/\$1/tex0;
+#X msg 530 227 \; /ev/glsl/\$1/gain 1 1 1 1 \; /ev/glsl/\$1/tex0 0
+\;;
+#X connect 1 0 2 0;
+#X connect 2 0 9 0;

+ 6 - 0
ev-glsl/glsl/gain.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 22 - 0
ev-glsl/glsl/gain_hsl.ctl.pd

@@ -0,0 +1,22 @@
+#N canvas 104 182 685 451 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 318 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X obj 152 276 list trim;
+#X obj 152 204 list prepend gain;
+#X obj 152 65 route gain;
+#X obj 152 173 list 1 1 1 1;
+#X obj 152 137 t b a;
+#X text 325 303 (c)2013 Marian Weger;
+#X obj 184 102 r /ev/glsl/\$1/gain;
+#X connect 0 0 7 0;
+#X connect 1 0 0 0;
+#X connect 3 0 6 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 8 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 8 1 7 1;
+#X connect 10 0 8 0;

+ 137 - 0
ev-glsl/glsl/gain_hsl.frag

@@ -0,0 +1,137 @@
+/*
+** Copyright (c) 2012, Romain Dura romain@shazbits.com
+** 
+** Permission to use, copy, modify, and/or distribute this software for any 
+** purpose with or without fee is hereby granted, provided that the above 
+** copyright notice and this permission notice appear in all copies.
+** 
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
+** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
+** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 
+** SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
+** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 
+** IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+/*
+** Hue, saturation, luminance
+*/
+
+/*
+** 2013 adapted for Extended View Toolkit by Marian Weger
+*/
+
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect tex0; 
+
+uniform vec4 gain;
+
+vec3 RGBToHSL(vec3 color)
+{
+	vec3 hsl; // init to 0 to avoid warnings ? (and reverse if + remove first part)
+	
+	float fmin = min(min(color.r, color.g), color.b);    //Min. value of RGB
+	float fmax = max(max(color.r, color.g), color.b);    //Max. value of RGB
+	float delta = fmax - fmin;             //Delta RGB value
+
+	hsl.z = (fmax + fmin) / 2.0; // Luminance
+
+	if (delta == 0.0)		//This is a gray, no chroma...
+	{
+		hsl.x = 0.0;	// Hue
+		hsl.y = 0.0;	// Saturation
+	}
+	else                                    //Chromatic data...
+	{
+		if (hsl.z < 0.5)
+			hsl.y = delta / (fmax + fmin); // Saturation
+		else
+			hsl.y = delta / (2.0 - fmax - fmin); // Saturation
+		
+		float deltaR = (((fmax - color.r) / 6.0) + (delta / 2.0)) / delta;
+		float deltaG = (((fmax - color.g) / 6.0) + (delta / 2.0)) / delta;
+		float deltaB = (((fmax - color.b) / 6.0) + (delta / 2.0)) / delta;
+
+		if (color.r == fmax )
+			hsl.x = deltaB - deltaG; // Hue
+		else if (color.g == fmax)
+			hsl.x = (1.0 / 3.0) + deltaR - deltaB; // Hue
+		else if (color.b == fmax)
+			hsl.x = (2.0 / 3.0) + deltaG - deltaR; // Hue
+
+		if (hsl.x < 0.0)
+			hsl.x += 1.0; // Hue
+		else if (hsl.x > 1.0)
+			hsl.x -= 1.0; // Hue
+	}
+
+	return hsl;
+}
+
+
+float HueToRGB(float f1, float f2, float hue)
+{
+	if (hue < 0.0)
+		hue += 1.0;
+	else if (hue > 1.0)
+		hue -= 1.0;
+	float res;
+	if ((6.0 * hue) < 1.0)
+		res = f1 + (f2 - f1) * 6.0 * hue;
+	else if ((2.0 * hue) < 1.0)
+		res = f2;
+	else if ((3.0 * hue) < 2.0)
+		res = f1 + (f2 - f1) * ((2.0 / 3.0) - hue) * 6.0;
+	else
+		res = f1;
+	return res;
+}
+
+
+vec3 HSLToRGB(vec3 hsl)
+{
+	vec3 rgb;
+	
+	if (hsl.y == 0.0)
+		rgb = vec3(hsl.z); // Luminance
+	else
+	{
+		float f2;
+		
+		if (hsl.z < 0.5)
+			f2 = hsl.z * (1.0 + hsl.y);
+		else
+			f2 = (hsl.z + hsl.y) - (hsl.y * hsl.z);
+			
+		float f1 = 2.0 * hsl.z - f2;
+		
+		rgb.r = HueToRGB(f1, f2, hsl.x + (1.0/3.0));
+		rgb.g = HueToRGB(f1, f2, hsl.x);
+		rgb.b= HueToRGB(f1, f2, hsl.x - (1.0/3.0));
+	}
+	
+	return rgb;
+}
+
+
+void main(void)
+{
+
+vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y));
+
+vec4 color_hsl = vec4(RGBToHSL(color_old.rgb), color_old.a);
+
+color_hsl.r = clamp(gain.r * color_hsl.r, 0., 1.);
+color_hsl.g = clamp(gain.g * color_hsl.g, 0., 1.);
+color_hsl.b = clamp(gain.b * color_hsl.b, 0., 1.);
+color_hsl.a = clamp(gain.a * color_hsl.a, 0., 1.);
+
+vec4 color_new = vec4(HSLToRGB(color_hsl.rgb), color_hsl.a);
+
+gl_FragColor = color_new;
+
+}

+ 11 - 0
ev-glsl/glsl/gain_hsl.reg.pd

@@ -0,0 +1,11 @@
+#N canvas 454 159 963 499 10;
+#X text 325 263 (c)2013 Marian Weger;
+#X obj 530 183 loadbang;
+#X obj 530 205 list prepend \$1 \$2;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/gain;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/gain;
+#X msg 530 227 \; /ev/glsl/\$1/gain 1 1 1 1 \;;
+#X obj 116 132 ds_reg \$2 /ev/glsl/\$1/state;
+#X obj 378 133 osc_bi \$2 /ev/glsl/\$1/state;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;

+ 6 - 0
ev-glsl/glsl/gain_hsl.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 17 - 0
ev-glsl/glsl/gamma.ctl.pd

@@ -0,0 +1,17 @@
+#N canvas 129 88 963 499 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 278 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X text 325 263 (c)2013 Marian Weger;
+#X msg 155 173 gamma \$1;
+#X obj 152 65 route gamma;
+#X obj 152 133 f 1;
+#X obj 184 95 r /ev/glsl/\$1/gamma;
+#X connect 0 0 7 0;
+#X connect 1 0 0 0;
+#X connect 3 0 6 0;
+#X connect 5 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;

+ 46 - 0
ev-glsl/glsl/gamma.frag

@@ -0,0 +1,46 @@
+/*
+** Copyright (c) 2012, Romain Dura romain@shazbits.com
+** 
+** Permission to use, copy, modify, and/or distribute this software for any 
+** purpose with or without fee is hereby granted, provided that the above 
+** copyright notice and this permission notice appear in all copies.
+** 
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
+** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
+** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 
+** SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
+** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 
+** IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+/*
+** Gamma correction
+** Details: http://blog.mouaif.org/2009/01/22/photoshop-gamma-correction-shader/
+*/
+
+/*
+** 2013 adapted for Extended View Toolkit by Marian Weger
+*/
+
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect tex0; 
+
+uniform float gamma;
+
+
+
+void main(void)
+{
+
+vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y));
+
+
+vec4 color_new = vec4(pow(color_old.r, 1.0 / gamma), pow(color_old.g, 1.0 / gamma), pow(color_old.b, 1.0 / gamma), color_old.a);
+
+gl_FragColor = color_new;
+
+}

+ 11 - 0
ev-glsl/glsl/gamma.reg.pd

@@ -0,0 +1,11 @@
+#N canvas 454 159 963 499 10;
+#X text 325 263 (c)2013 Marian Weger;
+#X obj 530 183 loadbang;
+#X obj 530 205 list prepend \$1 \$2;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/gamma;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/gamma;
+#X msg 530 227 \; /ev/glsl/\$1/gamma 1 \;;
+#X obj 146 132 ds_reg \$2 /ev/glsl/\$1/state;
+#X obj 408 133 osc_bi \$2 /ev/glsl/\$1/state;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;

+ 6 - 0
ev-glsl/glsl/gamma.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 13 - 0
ev-glsl/glsl/gaussian_blur.2-pass.reg.pd

@@ -0,0 +1,13 @@
+#N canvas 211 87 450 300 10;
+#X obj 121 148 loadbang;
+#X obj 121 170 list prepend \$1 \$2;
+#X obj 214 145 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 118 67 ds_reg \$2 /ev/glsl/\$1/blur;
+#X obj 305 68 osc_bi \$2 /ev/glsl/\$1/blur;
+#X msg 121 192 \; /ev/glsl/\$1/blur 0.5 \;;
+#X obj 116 112 ds_reg \$2 /ev/glsl/\$1/state;
+#X obj 305 109 osc_bi \$2 /ev/glsl/\$1/state;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 2 0 1 0;

+ 19 - 0
ev-glsl/glsl/gaussian_blur.h.ctl.pd

@@ -0,0 +1,19 @@
+#N canvas 44 22 662 363 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 298 outlet shader_data;
+#X obj 152 192 f 0.001;
+#X obj 152 43 inlet shader_control;
+#X text 325 303 (c)2011 Marian Weger;
+#X msg 152 252 blur_size \$1;
+#X obj 152 224 * 7.5;
+#X obj 152 118 route blur;
+#X obj 167 147 r /ev/glsl/\$1/blur;
+#X connect 0 0 3 0;
+#X connect 1 0 0 0;
+#X connect 3 0 7 0;
+#X connect 4 0 8 0;
+#X connect 6 0 2 0;
+#X connect 7 0 6 0;
+#X connect 8 0 3 0;
+#X connect 9 0 3 0;

+ 28 - 0
ev-glsl/glsl/gaussian_blur.h.frag

@@ -0,0 +1,28 @@
+#extension GL_ARB_texture_rectangle : enable
+
+// Source: 
+// http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/
+
+uniform sampler2DRect tex0;
+uniform float blur_size; // blur size
+
+void main(void)
+{
+
+   vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+   vec4 sum = vec4(0.0);
+ 
+   // blur in x (horizontal)
+   // take nine samples, with the distance size between them
+   sum += texture2DRect(tex0, vec2(pos.x - 4.0*blur_size, pos.y)) * 0.05;
+   sum += texture2DRect(tex0, vec2(pos.x - 3.0*blur_size, pos.y)) * 0.09;
+   sum += texture2DRect(tex0, vec2(pos.x - 2.0*blur_size, pos.y)) * 0.12;
+   sum += texture2DRect(tex0, vec2(pos.x - blur_size, pos.y)) * 0.15;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y)) * 0.16;
+   sum += texture2DRect(tex0, vec2(pos.x + blur_size, pos.y)) * 0.15;
+   sum += texture2DRect(tex0, vec2(pos.x + 2.0*blur_size, pos.y)) * 0.12;
+   sum += texture2DRect(tex0, vec2(pos.x + 3.0*blur_size, pos.y)) * 0.09;
+   sum += texture2DRect(tex0, vec2(pos.x + 4.0*blur_size, pos.y)) * 0.05;
+ 
+   gl_FragColor = sum;
+}

+ 11 - 0
ev-glsl/glsl/gaussian_blur.h.reg.pd

@@ -0,0 +1,11 @@
+#N canvas 454 159 963 499 10;
+#X text 325 263 (c)2013 Marian Weger;
+#X obj 530 183 loadbang;
+#X obj 530 205 list prepend \$1 \$2;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/blur;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/blur;
+#X msg 530 227 \; /ev/glsl/\$1/blur 0.5 \;;
+#X obj 163 144 ds_reg \$2 /ev/glsl/\$1/state;
+#X obj 425 145 osc_bi \$2 /ev/glsl/\$1/state;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;

+ 6 - 0
ev-glsl/glsl/gaussian_blur.h.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 19 - 0
ev-glsl/glsl/gaussian_blur.v.ctl.pd

@@ -0,0 +1,19 @@
+#N canvas 0 22 574 329 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 258 outlet shader_data;
+#X obj 152 152 f 0.001;
+#X obj 152 43 inlet shader_control;
+#X text 325 263 (c)2011 Marian Weger;
+#X msg 152 212 blur_size \$1;
+#X obj 152 184 * 7.5;
+#X obj 173 123 r /ev/glsl/\$1/blur;
+#X obj 152 88 route blur;
+#X connect 0 0 3 0;
+#X connect 1 0 0 0;
+#X connect 3 0 7 0;
+#X connect 4 0 9 0;
+#X connect 6 0 2 0;
+#X connect 7 0 6 0;
+#X connect 8 0 3 0;
+#X connect 9 0 3 0;

+ 28 - 0
ev-glsl/glsl/gaussian_blur.v.frag

@@ -0,0 +1,28 @@
+#extension GL_ARB_texture_rectangle : enable
+
+// Source: 
+// http://www.gamerendering.com/2008/10/11/gaussian-blur-filter-shader/
+
+uniform sampler2DRect tex0; // the texture with the scene you want to blur
+uniform float blur_size; // blur size
+ 
+void main(void)
+{
+
+   vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+   vec4 sum = vec4(0.0);
+ 
+   // blur in y (vertical)
+   // take nine samples, with the distance blur_size between them
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y - 4.0*blur_size)) * 0.05;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y - 3.0*blur_size)) * 0.09;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y - 2.0*blur_size)) * 0.12;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y - blur_size)) * 0.15;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y)) * 0.16;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y + blur_size)) * 0.15;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y + 2.0*blur_size)) * 0.12;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y + 3.0*blur_size)) * 0.09;
+   sum += texture2DRect(tex0, vec2(pos.x, pos.y + 4.0*blur_size)) * 0.05;
+ 
+   gl_FragColor = sum;
+}

+ 11 - 0
ev-glsl/glsl/gaussian_blur.v.reg.pd

@@ -0,0 +1,11 @@
+#N canvas 454 159 963 499 10;
+#X text 325 263 (c)2013 Marian Weger;
+#X obj 530 183 loadbang;
+#X obj 530 205 list prepend \$1 \$2;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/blur;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/blur;
+#X msg 530 227 \; /ev/glsl/\$1/blur 0.5 \;;
+#X obj 156 139 ds_reg \$2 /ev/glsl/\$1/state;
+#X obj 418 140 osc_bi \$2 /ev/glsl/\$1/state;
+#X connect 1 0 2 0;
+#X connect 2 0 5 0;

+ 6 - 0
ev-glsl/glsl/gaussian_blur.v.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 32 - 0
ev-glsl/glsl/invert.ctl.pd

@@ -0,0 +1,32 @@
+#N canvas 360 217 685 451 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 428 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X obj 152 65 route invert;
+#X text 325 413 (c)2013 Marian Weger;
+#X obj 152 283 pack 1 1 1 0;
+#X obj 190 112 r /ev/glsl/\$1/invert/r;
+#X obj 200 132 r /ev/glsl/\$1/invert/g;
+#X obj 240 154 r /ev/glsl/\$1/invert/b;
+#X obj 280 176 r /ev/glsl/\$1/invert/a;
+#X obj 200 154 t b f;
+#X obj 240 176 t b f;
+#X obj 280 198 t b f;
+#X msg 152 305 invert \$1 \$2 \$3 \$4;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 3 0 4 0;
+#X connect 4 0 6 0;
+#X connect 6 0 14 0;
+#X connect 7 0 6 0;
+#X connect 8 0 11 0;
+#X connect 9 0 12 0;
+#X connect 10 0 13 0;
+#X connect 11 0 6 0;
+#X connect 11 1 6 1;
+#X connect 12 0 6 0;
+#X connect 12 1 6 2;
+#X connect 13 0 6 0;
+#X connect 13 1 6 3;
+#X connect 14 0 2 0;

+ 42 - 0
ev-glsl/glsl/invert.frag

@@ -0,0 +1,42 @@
+/*
+** Invert RGBA
+** (c)2013 Marian Weger
+*/
+
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect tex0; 
+
+uniform vec4 invert;
+
+void main(void)
+{
+
+vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y));
+vec4 color_new = color_old;
+
+if(invert.r == 1.0)
+{
+color_new.r = 1.0 - color_old.r;
+}
+
+if(invert.g == 1.0)
+{
+color_new.g = 1.0 - color_old.g;
+}
+
+if(invert.b == 1.0)
+{
+color_new.b = 1.0 - color_old.b;
+}
+
+if(invert.a == 1.0)
+{
+color_new.a = 1.0 - color_old.a;
+}
+
+gl_FragColor = color_new;
+
+}

+ 12 - 0
ev-glsl/glsl/invert.gui.pd

@@ -0,0 +1,12 @@
+#N canvas 77 123 498 334 10;
+#X text 67 211 (c)2013 Marian Weger /part of EXTENDED VIEW toolkit/
+gpl v3;
+#X obj 100 100 tgl 15 0 /ev/glsl/\$1/invert/r /ev/glsl/\$1/invert/r
+empty 17 7 0 10 -258113 -1 -1 0 1;
+#X obj 115 100 tgl 15 0 /ev/glsl/\$1/invert/g /ev/glsl/\$1/invert/g
+empty 17 7 0 10 -4034 -1 -1 0 1;
+#X obj 130 100 tgl 15 0 /ev/glsl/\$1/invert/b /ev/glsl/\$1/invert/b
+empty 17 7 0 10 -4160 -1 -1 0 1;
+#X obj 145 100 tgl 15 0 /ev/glsl/\$1/invert/a /ev/glsl/\$1/invert/a
+empty 17 7 0 10 -262144 -1 -1 0 1;
+#X coords 0 -1 1 1 60 15 2 100 100;

+ 19 - 0
ev-glsl/glsl/invert.reg.pd

@@ -0,0 +1,19 @@
+#N canvas 240 173 963 499 10;
+#X text 325 403 (c)2013 Marian Weger;
+#X obj 530 323 loadbang;
+#X obj 530 345 list prepend \$1 \$2;
+#X obj 167 205 ds_reg \$2 /ev/glsl/\$1/state;
+#X obj 429 206 osc_bi \$2 /ev/glsl/\$1/state;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/invert/r;
+#X obj 169 117 ds_reg \$2 /ev/glsl/\$1/invert/g;
+#X obj 169 137 ds_reg \$2 /ev/glsl/\$1/invert/g;
+#X obj 169 157 ds_reg \$2 /ev/glsl/\$1/invert/a;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/invert/r;
+#X obj 399 117 osc_bi \$2 /ev/glsl/\$1/invert/g;
+#X obj 399 137 osc_bi \$2 /ev/glsl/\$1/invert/b;
+#X obj 399 157 osc_bi \$2 /ev/glsl/\$1/invert/a;
+#X msg 530 367 \; /ev/glsl/\$1/invert/r 1 \; /ev/glsl/\$1/invert/g
+1 \; /ev/glsl/\$1/invert/b 1 \; /ev/glsl/\$1/invert/a 0 \; /ev/glsl/\$1/rectangle
+1 \;;
+#X connect 1 0 2 0;
+#X connect 2 0 13 0;

+ 6 - 0
ev-glsl/glsl/invert.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 51 - 0
ev-glsl/glsl/levels.ctl.pd

@@ -0,0 +1,51 @@
+#N canvas 129 88 963 499 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 328 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X text 319 454 (c)2013 Marian Weger;
+#X obj 152 65 route minInput maxInput minOutput maxOutput gamma;
+#X msg 731 288 gamma \$1;
+#X obj 152 300 list trim;
+#X obj 152 248 list prepend minInput;
+#X obj 292 248 list prepend maxInput;
+#X obj 432 248 list prepend minOutput;
+#X obj 572 248 list prepend maxOutput;
+#X obj 731 116 f 1;
+#X obj 152 218 pack 0 0 0;
+#X obj 292 218 pack 1 1 1;
+#X obj 432 218 pack 0 0 0;
+#X obj 572 218 pack 1 1 1;
+#X obj 631 13 r /ev/glsl/\$1/minInput;
+#X obj 651 33 r /ev/glsl/\$1/maxInput;
+#X obj 671 53 r /ev/glsl/\$1/minOutput;
+#X obj 691 73 r /ev/glsl/\$1/maxOutput;
+#X obj 731 93 r /ev/glsl/\$1/gamma;
+#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 1 0 0 0;
+#X connect 3 0 5 0;
+#X connect 5 0 13 0;
+#X connect 5 1 14 0;
+#X connect 5 2 15 0;
+#X connect 5 3 16 0;
+#X connect 5 4 12 0;
+#X connect 6 0 2 0;
+#X connect 7 0 2 0;
+#X connect 8 0 7 0;
+#X connect 9 0 7 0;
+#X connect 10 0 7 0;
+#X connect 11 0 7 0;
+#X connect 12 0 6 0;
+#X connect 13 0 8 0;
+#X connect 14 0 9 0;
+#X connect 15 0 10 0;
+#X connect 16 0 11 0;
+#X connect 17 0 13 0;
+#X connect 18 0 14 0;
+#X connect 19 0 15 0;
+#X connect 20 0 16 0;
+#X connect 21 0 12 0;

+ 59 - 0
ev-glsl/glsl/levels.frag

@@ -0,0 +1,59 @@
+/*
+** Copyright (c) 2012, Romain Dura romain@shazbits.com
+** 
+** Permission to use, copy, modify, and/or distribute this software for any 
+** purpose with or without fee is hereby granted, provided that the above 
+** copyright notice and this permission notice appear in all copies.
+** 
+** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 
+** WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 
+** MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 
+** SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 
+** WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 
+** ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR 
+** IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+/*
+** Gamma correction
+** Details: http://blog.mouaif.org/2009/01/22/photoshop-gamma-correction-shader/
+*/
+
+/*
+** Levels control (input (+gamma), output)
+** Details: http://blog.mouaif.org/2009/01/28/levels-control-shader/
+*/
+
+/*
+** 2013 adapted for Extended View Toolkit by Marian Weger
+*/
+
+
+#extension GL_ARB_texture_rectangle : enable
+
+uniform sampler2DRect tex0; 
+
+uniform float gamma;
+uniform vec3 minInput;
+uniform vec3 maxInput;
+uniform vec3 minOutput;
+uniform vec3 maxOutput;
+
+
+void main(void)
+{
+
+vec2 pos = (gl_TextureMatrix[0] * gl_TexCoord[0]).st;
+vec4 color_old = texture2DRect(tex0, vec2(pos.x, pos.y));
+	
+vec3 LevelsControlInputRange = min(max(color_old.rgb - minInput, vec3(0.0)) / (maxInput - minInput), vec3(1.0));
+
+vec3 LevelsControlInput = pow(LevelsControlInputRange, vec3(1.0 / gamma));
+
+vec3 LevelsControl = mix(minOutput, maxOutput, LevelsControlInput);
+
+vec4 color_new = vec4(LevelsControl, color_old.a);
+
+gl_FragColor = color_new;
+
+}

+ 21 - 0
ev-glsl/glsl/levels.reg.pd

@@ -0,0 +1,21 @@
+#N canvas 477 141 963 499 10;
+#X text 325 263 (c)2013 Marian Weger;
+#X obj 530 183 loadbang;
+#X obj 530 205 list prepend \$1 \$2;
+#X obj 169 57 ds_reg \$2 /ev/glsl/\$1/minInput;
+#X obj 399 57 osc_bi \$2 /ev/glsl/\$1/minInput;
+#X obj 169 77 ds_reg \$2 /ev/glsl/\$1/maxInput;
+#X obj 399 77 osc_bi \$2 /ev/glsl/\$1/maxInput;
+#X obj 169 97 ds_reg \$2 /ev/glsl/\$1/minOutput;
+#X obj 169 117 ds_reg \$2 /ev/glsl/\$1/maxOutput;
+#X obj 399 97 osc_bi \$2 /ev/glsl/\$1/minOutput;
+#X obj 399 117 osc_bi \$2 /ev/glsl/\$1/maxOutput;
+#X obj 169 137 ds_reg \$2 /ev/glsl/\$1/gamma;
+#X obj 399 137 osc_bi \$2 /ev/glsl/\$1/gamma;
+#X msg 530 227 \; /ev/glsl/\$1/gamma 1 \; /ev/glsl/\$1/minInput 0 0
+0 \; /ev/glsl/\$1/maxInput 1 1 1 \; /ev/glsl/\$1/minOutput 0 0 0 \;
+/ev/glsl/\$1/maxOutput 1 1 1 \;;
+#X obj 145 160 ds_reg \$2 /ev/glsl/\$1/state;
+#X obj 407 161 osc_bi \$2 /ev/glsl/\$1/state;
+#X connect 1 0 2 0;
+#X connect 2 0 13 0;

+ 6 - 0
ev-glsl/glsl/levels.vert

@@ -0,0 +1,6 @@
+void main()
+{
+    gl_TexCoord[0] = gl_MultiTexCoord0;
+    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+
+}

+ 32 - 0
ev-glsl/glsl/mix2.ctl.pd

@@ -0,0 +1,32 @@
+#N canvas 291 187 963 499 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 278 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X text 290 378 (c)2013 Marian Weger;
+#X obj 152 185 list prepend amount;
+#X obj 152 207 list trim;
+#X obj 152 127 t b a;
+#X obj 152 65 route amount tex0 tex1;
+#X obj 313 167 int 0;
+#X obj 389 162 int 1;
+#X msg 313 189 tex0 \$1;
+#X msg 390 189 tex1 \$1;
+#X obj 152 163 list 0.5 0.5 0.5 0.5;
+#X connect 0 0 9 0;
+#X connect 0 0 10 0;
+#X connect 0 0 13 0;
+#X connect 1 0 0 0;
+#X connect 3 0 8 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 7 0 13 0;
+#X connect 7 1 13 1;
+#X connect 8 0 7 0;
+#X connect 8 1 9 0;
+#X connect 8 2 10 0;
+#X connect 9 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 2 0;
+#X connect 12 0 2 0;
+#X connect 13 0 5 0;

+ 16 - 0
ev-glsl/glsl/mix2.frag

@@ -0,0 +1,16 @@
+uniform vec4 amount;
+
+uniform sampler2D tex0;
+uniform sampler2D tex1;
+
+varying vec2 texcoord0;
+varying vec2 texcoord1;
+
+void main(void) 
+{		
+	vec4 input0 = texture2D(tex0, texcoord0);
+	vec4 input1 = texture2D(tex1, texcoord1);	
+
+	gl_FragColor = mix(input0, input1, amount.x);
+} 
+

+ 9 - 0
ev-glsl/glsl/mix2.vert

@@ -0,0 +1,9 @@
+varying vec2 texcoord0;
+varying vec2 texcoord1;
+
+void main()
+{
+    gl_Position = ftransform();
+    texcoord0 = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0);
+    texcoord1 = vec2(gl_TextureMatrix[1] * gl_MultiTexCoord1);
+}

+ 27 - 0
ev-glsl/glsl/mix3.ctl.pd

@@ -0,0 +1,27 @@
+#N canvas 129 88 963 499 10;
+#X obj 30 65 t b;
+#X obj 30 43 inlet shader_init;
+#X obj 152 278 outlet shader_data;
+#X obj 152 43 inlet shader_control;
+#X text 290 378 (c)2013 Marian Weger;
+#X obj 313 167 int 0;
+#X obj 389 162 int 1;
+#X msg 313 189 tex0 \$1;
+#X msg 390 189 tex1 \$1;
+#X msg 477 189 tex2 \$1;
+#X obj 476 162 int 2;
+#X obj 152 65 route tex0 tex1 tex2;
+#X connect 0 0 5 0;
+#X connect 0 0 6 0;
+#X connect 0 0 10 0;
+#X connect 1 0 0 0;
+#X connect 3 0 11 0;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 7 0 2 0;
+#X connect 8 0 2 0;
+#X connect 9 0 2 0;
+#X connect 10 0 9 0;
+#X connect 11 0 5 0;
+#X connect 11 1 6 0;
+#X connect 11 2 10 0;

+ 22 - 0
ev-glsl/glsl/mix3.frag

@@ -0,0 +1,22 @@
+
+uniform vec4 amount;
+uniform sampler2D tex0;
+uniform sampler2D tex1;
+uniform sampler2D tex2;
+
+varying vec2 texcoord0;
+varying vec2 texcoord1;
+varying vec2 texcoord2;
+
+void main(void) 
+{ 
+	
+vec4 texture1 = texture2D(tex0, texcoord0);
+vec4 texture2 = texture2D(tex1, texcoord1);	
+vec4 lumamask = texture2D(tex2, texcoord2);
+
+float luminance = (max(max(lumamask.r, lumamask.g), lumamask.b) + min(min(lumamask.r, lumamask.g), lumamask.b)) / 2.0;
+
+gl_FragColor = mix(texture1, texture2, luminance);
+
+} 

+ 12 - 0
ev-glsl/glsl/mix3.vert

@@ -0,0 +1,12 @@
+varying vec2 texcoord0;
+varying vec2 texcoord1;
+varying vec2 texcoord2;
+
+void main()
+{
+    gl_Position = ftransform();
+
+    texcoord0 = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0);
+    texcoord1 = vec2(gl_TextureMatrix[1] * gl_MultiTexCoord1);
+    texcoord2 = vec2(gl_TextureMatrix[2] * gl_MultiTexCoord2);
+}

+ 43 - 0
ev-glsl/glsl/name.ctl.pd

@@ -0,0 +1,43 @@
+#N canvas 295 332 817 465 10;
+#X obj 180 122 cnv 15 600 220 empty empty edit_this_for_your_specific_shader:
+20 12 0 14 -261234 -66577 0;
+#X obj 60 165 t b;
+#X obj 60 63 inlet shader_init;
+#X obj 192 398 outlet shader_data;
+#X obj 192 63 inlet shader_control;
+#X obj 192 243 f 0;
+#X text 219 243 specify initial value;
+#X text 548 241 specify initial value;
+#X obj 192 165 route <variable_1> <variable_2>;
+#X obj 462 243 list 1 1 1 1;
+#X msg 192 295 <variabe_1> \$1;
+#X obj 462 285 list prepend <variable_2>;
+#X obj 462 307 list trim;
+#X text 314 399 data sent to shader.;
+#X text 402 163 Here \, <variable_1> is of type float \, while <variable_2>
+is a 4-dimensional vector.;
+#X text 74 90 Variables get;
+#X text 74 104 initialized;
+#X text 74 118 on startup.;
+#X text 207 84 Control from the patch (right inlet of [ev_glsl]);
+#X text 54 246 The initialization;
+#X text 54 260 is useful \, as there;
+#X text 54 274 is no way to init;
+#X text 54 288 inside the shaders.;
+#X obj 462 213 t b a;
+#X text 596 415 (c)2012 Marian Weger;
+#X text 37 19 This is a template for the "<name>.ctl.pd" file needed
+by [ev_glsl <name>].;
+#X connect 1 0 5 0;
+#X connect 1 0 9 0;
+#X connect 2 0 1 0;
+#X connect 4 0 8 0;
+#X connect 5 0 10 0;
+#X connect 8 0 5 0;
+#X connect 8 1 23 0;
+#X connect 9 0 11 0;
+#X connect 10 0 3 0;
+#X connect 11 0 12 0;
+#X connect 12 0 3 0;
+#X connect 23 0 9 0;
+#X connect 23 1 9 1;

+ 8 - 0
ev-in/README.txt

@@ -0,0 +1,8 @@
+ev-in
+=====
+
+This folder contains abstractions for video and image input.
+
+*  [ev_cam] provides live video input through usb-webcams, etc.
+*  [ev_vid] can play video files from harddrive.
+*  [ev_pic] can load image files from harddrive.

+ 405 - 0
ev-in/ev_cam-help.pd

@@ -0,0 +1,405 @@
+#N canvas -1177 182 798 564 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media;
+#X obj 41 17 cnv 15 748 16 empty empty EXTENDED_VIEW_Camera/VideoInput_MODULE
+2 8 0 14 -99865 -262144 0;
+#X obj 41 135 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 41 201 cnv 15 360 60 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 46 221 Inlet 1: GEMlist;
+#X obj 41 45 cnv 15 360 85 empty empty description 5 12 0 12 -233017
+-66577 0;
+#X text 46 233 Inlet 2: settings for [pix_video];
+#X obj 43 334 cnv 15 360 130 empty empty PARAMETER_LIST_for_ev_cam
+20 8 0 14 -233017 -66577 0;
+#X text 43 80 Contains specific storage_&_osc-subpatch which houses
+abstractions to register parameters for storage and osc communication
+;
+#X msg 419 64 create \, 1;
+#X msg 431 86 0 \, destroy;
+#X obj 550 49 loadbang;
+#X msg 511 74 dimen 800 600;
+#X text 406 41 CLICK HERE:;
+#X obj 415 288 gemhead;
+#X msg 599 74 color 0.5 0.5 0.5;
+#X text 45 427 (c)2011 Peter Venus & Marian Weger /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#N canvas 0 22 450 300 init 0;
+#X obj 122 67 ../ev-main/ev_declare;
+#X restore 349 50 pd init;
+#X obj 419 124 gemwin;
+#X obj 415 502 pix_texture;
+#X obj 415 524 rectangle 4 3;
+#X obj 415 433 ev_cam \$0;
+#X msg 598 139 dimen 64 64;
+#X msg 588 114 dimen 256 128;
+#X msg 637 276 enumerate;
+#X msg 643 298 dialog;
+#X msg 606 168 colorspace RGBA;
+#X msg 611 226 device 0;
+#X msg 644 327 driver dv;
+#N canvas 546 96 572 549 properties 0;
+#X msg 41 203 enumProps;
+#X obj 31 21 cnv 15 400 80 empty empty readProperties 20 12 0 14 -233017
+-66577 0;
+#X obj 39 47 hradio 15 1 0 1 \$0-propreadId \$0-propreadId empty 0
+-8 0 10 -262144 -1 -1 0;
+#X obj 40 70 cnv 15 260 20 empty \$0-propreadName <none> 10 9 0 14
+-203904 -66577 0;
+#N canvas 185 50 450 537 PropertyLogic 0;
+#N canvas 1408 84 774 460 id2property 0;
+#X obj 353 106 r \$0-info;
+#X obj 353 130 route proplist;
+#X obj 353 152 route read numread;
+#X obj 405 176 t b f;
+#X obj 353 174 list;
+#X obj 353 219 list prepend;
+#X msg 353 196 \$1;
+#X obj 353 239 t l l;
+#X obj 95 197 list prepend;
+#X obj 525 176 t b f;
+#X obj 473 174 list;
+#X obj 473 219 list prepend;
+#X msg 473 196 \$1;
+#X obj 473 239 t l l;
+#X obj 473 152 route write numwrite;
+#X obj 95 69 inlet readID;
+#X obj 225 70 inlet writeID;
+#X obj 123 378 outlet readName;
+#X obj 253 356 outlet writeName;
+#X obj 95 176 t b f;
+#X obj 95 219 list split;
+#X obj 123 266 symbol;
+#X msg 123 241 symbol \$1;
+#X obj 225 197 list prepend;
+#X obj 225 176 t b f;
+#X obj 225 219 list split;
+#X obj 253 266 symbol;
+#X msg 253 241 symbol \$1;
+#X obj 95 91 route float;
+#X obj 225 92 route float;
+#X msg 432 333 number \$1;
+#X msg 552 333 number \$1;
+#X obj 432 353 s \$0-propreadId;
+#X obj 552 353 s \$0-propwriteId;
+#X obj 602 254 t f f;
+#X msg 602 232 0;
+#X obj 602 211 loadbang;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 2 1 3 0;
+#X connect 2 2 14 0;
+#X connect 3 0 5 1;
+#X connect 3 1 30 0;
+#X connect 4 0 6 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 7 0 8 1;
+#X connect 7 1 5 1;
+#X connect 8 0 20 0;
+#X connect 9 0 11 1;
+#X connect 9 1 31 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 11 0;
+#X connect 13 0 23 1;
+#X connect 13 1 11 1;
+#X connect 14 0 10 0;
+#X connect 14 1 9 0;
+#X connect 15 0 28 0;
+#X connect 16 0 29 0;
+#X connect 19 0 8 0;
+#X connect 19 1 20 1;
+#X connect 20 1 22 0;
+#X connect 21 0 17 0;
+#X connect 22 0 21 0;
+#X connect 23 0 25 0;
+#X connect 24 0 23 0;
+#X connect 24 1 25 1;
+#X connect 25 1 27 0;
+#X connect 26 0 18 0;
+#X connect 27 0 26 0;
+#X connect 28 0 19 0;
+#X connect 29 0 24 0;
+#X connect 30 0 32 0;
+#X connect 31 0 33 0;
+#X connect 34 0 30 0;
+#X connect 34 1 31 0;
+#X connect 35 0 34 0;
+#X connect 36 0 35 0;
+#X restore 188 192 pd id2property;
+#X obj 320 407 list prepend set;
+#X obj 320 429 list trim;
+#X obj 320 451 t b a;
+#N canvas 437 141 450 300 getProp 0;
+#X obj 44 177 s \$0-propreadName;
+#X msg 44 156 label \$1;
+#X msg 165 156 get \$1;
+#X obj 44 81 inlet;
+#X obj 165 178 outlet;
+#X obj 290 57 r \$0-info;
+#X obj 290 79 route prop;
+#N canvas 3 45 450 300 sroute 0;
+#X obj 73 12 inlet;
+#X obj 312 9 inlet;
+#X obj 73 113 outlet;
+#X obj 73 34 list split 1;
+#X obj 73 56 select s;
+#X obj 73 78 list prepend;
+#X connect 0 0 3 0;
+#X connect 1 0 4 1;
+#X connect 3 0 4 0;
+#X connect 3 1 5 1;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X restore 290 113 pd sroute;
+#X obj 44 123 t s s s;
+#X msg 290 226 label \$1;
+#X obj 290 247 s \$0-propreadValue;
+#X obj 290 135 route float;
+#X obj 290 157 makefilename %g;
+#X obj 106 29 loadbang;
+#X obj 106 51 t b b;
+#X msg 106 73 symbol <none>;
+#X msg 196 74 symbol --;
+#X connect 1 0 0 0;
+#X connect 2 0 4 0;
+#X connect 3 0 8 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 11 0;
+#X connect 8 0 1 0;
+#X connect 8 1 2 0;
+#X connect 8 2 7 1;
+#X connect 9 0 10 0;
+#X connect 11 0 12 0;
+#X connect 12 0 9 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 14 1 16 0;
+#X connect 15 0 1 0;
+#X connect 16 0 9 0;
+#X restore 320 318 pd getProp;
+#X obj 172 158 r \$0-propreadId;
+#X obj 282 158 r \$0-propwriteId;
+#N canvas 432 95 450 467 setProp 0;
+#X msg 44 156 label \$1;
+#X msg 165 156 get \$1;
+#X obj 44 31 inlet;
+#X obj 218 324 outlet;
+#X obj 290 57 r \$0-info;
+#X obj 290 79 route prop;
+#N canvas 4 50 450 300 sroute 0;
+#X obj 73 12 inlet;
+#X obj 312 9 inlet;
+#X obj 73 113 outlet;
+#X obj 73 34 list split 1;
+#X obj 73 56 select s;
+#X obj 73 78 list prepend;
+#X connect 0 0 3 0;
+#X connect 1 0 4 1;
+#X connect 3 0 4 0;
+#X connect 3 1 5 1;
+#X connect 4 0 5 0;
+#X connect 5 0 2 0;
+#X restore 290 113 pd sroute;
+#X obj 290 135 route float;
+#X obj 44 177 s \$0-propwriteName;
+#X obj 290 247 s \$0-propwriteValue;
+#X msg 290 226 set \$1;
+#X obj 50 276 r \$0-propwriteValue;
+#X obj 50 298 route float;
+#X obj 50 320 pack 0 s;
+#X msg 50 342 set \$2 \$1;
+#X obj 44 73 t s s s s;
+#X obj 127 27 loadbang;
+#X obj 127 49 t b b;
+#X msg 127 71 symbol <none>;
+#X connect 0 0 8 0;
+#X connect 1 0 3 0;
+#X connect 2 0 15 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 10 0;
+#X connect 10 0 9 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 3 0;
+#X connect 15 0 0 0;
+#X connect 15 1 1 0;
+#X connect 15 2 6 1;
+#X connect 15 3 13 1;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 0 0 0;
+#X restore 199 315 pd setProp;
+#X obj 199 404 list prepend set;
+#X obj 199 426 list trim;
+#X obj 199 448 t b a;
+#X obj 199 361 list prepend get;
+#X obj 199 339 route get set;
+#X obj 309 361 list prepend set;
+#X obj 199 477 s \$0-propset;
+#X obj 320 480 s \$0-propget;
+#X obj 54 38 inlet;
+#X obj 54 66 s \$0-ctl;
+#X connect 0 0 4 0;
+#X connect 0 1 7 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 15 0;
+#X connect 3 1 15 0;
+#X connect 4 0 12 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 1;
+#X connect 7 0 12 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 14 0;
+#X connect 10 1 14 0;
+#X connect 11 0 1 0;
+#X connect 12 0 11 0;
+#X connect 12 1 13 0;
+#X connect 13 0 8 0;
+#X connect 16 0 17 0;
+#X restore 41 526 pd PropertyLogic;
+#X obj 310 70 cnv 15 100 20 empty \$0-propreadValue -- 10 9 0 14 -261234
+-66577 0;
+#X obj 31 111 cnv 15 400 80 empty empty writeProperties 20 12 0 14
+-233017 -66577 0;
+#X obj 39 137 hradio 15 1 0 1 \$0-propwriteId \$0-propwriteId empty
+0 -8 0 10 -262144 -1 -1 0;
+#X obj 40 160 cnv 15 260 20 empty \$0-propwriteName <none> 10 9 0 14
+-203904 -66577 0;
+#X obj 311 160 nbx 5 20 -1e+37 1e+37 0 0 \$0-propwriteValue \$0-propwriteValue
+empty 0 -8 0 14 -204786 -1 -1 0 256;
+#X msg 66 315 get 50_fields;
+#X msg 83 392 set quality 5;
+#X obj 66 294 r \$0-propget;
+#X obj 83 372 r \$0-propset;
+#X msg 87 340 get Hue Saturation;
+#X text 208 340 you can query several properties at once;
+#X text 146 295 query a (readable) property via a message "get <propname>"
+;
+#X text 161 372 set a (writable) property via a message "set <prop>
+<value>";
+#X text 70 224 this will return 2 lists of readable and writeable properties
+through the "info" outlet of [pix_video].;
+#X text 72 257 NOTE that propertynames are always single symbols that
+might contain spaces (and other weird characters);
+#X text 103 203 INIT: query names of all available properties;
+#X text 83 423 ATOMIC setting of multiple properties;
+#X msg 99 441 clearProps;
+#X msg 99 503 applyProps;
+#X msg 99 481 setProps Hue 10;
+#X msg 99 461 setProps Contrast 40;
+#X text 247 443 clear the current property list;
+#X text 247 461 add values to the property list (don't apply yet);
+#X text 247 479 add values to the property list (don't apply yet);
+#X text 247 499 apply current property list;
+#X connect 0 0 4 0;
+#X connect 10 0 4 0;
+#X connect 11 0 4 0;
+#X connect 12 0 10 0;
+#X connect 13 0 11 0;
+#X connect 14 0 4 0;
+#X connect 22 0 4 0;
+#X connect 23 0 4 0;
+#X connect 24 0 4 0;
+#X connect 25 0 4 0;
+#X restore 417 176 pd properties;
+#X obj 588 391 t a a;
+#N canvas 166 121 570 420 device 0;
+#X obj 204 60 cnv 20 20 20 empty \$0-open-canvas 0 4 10 0 16 -233017
+-1 0;
+#X obj 60 61 hradio 18 1 0 8 empty empty empty 0 -6 0 8 -225271 -1
+-1 0;
+#X obj 60 13 inlet;
+#X msg 160 254 label \$1;
+#X obj 160 232 makefilename %d;
+#X obj 60 108 int;
+#X obj 60 337 outlet;
+#X obj 160 277 send \$0-open-canvas;
+#X msg 130 170 device \$1;
+#X obj 60 130 t b f;
+#X obj 130 192 t a a;
+#X obj 130 298 list prepend set;
+#X obj 130 320 list trim;
+#X obj 160 211 route device;
+#X obj 130 116 loadbang;
+#X msg 130 138 0;
+#X connect 1 0 5 0;
+#X connect 2 0 1 0;
+#X connect 3 0 7 0;
+#X connect 4 0 3 0;
+#X connect 5 0 9 0;
+#X connect 8 0 10 0;
+#X connect 9 0 6 0;
+#X connect 9 1 8 0;
+#X connect 10 0 11 0;
+#X connect 10 1 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 6 0;
+#X connect 13 0 4 0;
+#X connect 14 0 15 0;
+#X connect 15 0 8 0;
+#X coords 0 -1 1 1 165 20 1 60 60;
+#X restore 611 202 pd device;
+#X obj 659 408 print videoctl;
+#X obj 649 361 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 667 360 driver \$1;
+#X text 688 301 (if available);
+#X obj 659 389 r \$0-ctl;
+#X msg 627 250 device /dev/fw1;
+#X obj 418 229 t a a;
+#X obj 418 250 print info;
+#X obj 455 229 s \$0-info;
+#X obj 418 202 r /ev/cam/\$1/info;
+#X text 44 151 1st: module ID (if float \, then it sets the device
+nr).;
+#X text 44 165 2nd: storage domain;
+#X text 46 354 /ev/cam/<id>/state --- toggle on/off \; /ev/cam/<id>/flip/horizontal
+--- flip horizontally \; /ev/cam/<id>/flip/vertical --- flip vertically
+\;;
+#X text 258 220 Outlet 1: GEMlist;
+#X obj 42 267 cnv 15 360 60 empty empty GUI_controls 5 8 0 12 -204800
+-66577 0;
+#X text 53 293 on/off: toggles state;
+#X text 213 267 flip: flip image;
+#X text 250 282 <-> horizontal;
+#X text 250 295 ^v vertical;
+#X text 419 149 PROPERTIES:;
+#X text 44 62 Camera module for live-video input.;
+#X connect 8 0 17 0;
+#X connect 9 0 17 0;
+#X connect 10 0 11 0;
+#X connect 10 0 14 0;
+#X connect 11 0 17 0;
+#X connect 13 0 20 0;
+#X connect 14 0 17 0;
+#X connect 18 0 19 0;
+#X connect 20 0 18 0;
+#X connect 21 0 29 0;
+#X connect 22 0 29 0;
+#X connect 23 0 29 0;
+#X connect 24 0 29 0;
+#X connect 25 0 29 0;
+#X connect 26 0 29 0;
+#X connect 27 0 29 0;
+#X connect 29 0 20 1;
+#X connect 29 1 31 0;
+#X connect 30 0 26 0;
+#X connect 32 0 33 0;
+#X connect 33 0 29 0;
+#X connect 35 0 29 0;
+#X connect 36 0 29 0;
+#X connect 37 0 38 0;
+#X connect 37 1 39 0;
+#X connect 40 0 37 0;

+ 117 - 0
ev-in/ev_cam.pd

@@ -0,0 +1,117 @@
+#N canvas 302 49 991 651 10;
+#X text 425 48 inlet 1: gemlist;
+#X obj 427 116 spigot 1;
+#X obj 427 296 pix_video;
+#X obj 42 28 cnv 15 920 16 empty empty EXTENDED_VIEW_Camera/VideoInput_MODULE
+2 8 0 14 -233017 -66577 0;
+#X obj 42 339 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 42 402 cnv 15 360 120 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 47 422 Inlet 1: GEMlist;
+#X text 45 355 1st: module ID;
+#X text 47 474 Inlet 2: settings for [pix_video];
+#X text 634 49 inlet 2: pix_video settings;
+#N canvas 499 138 387 328 init 0;
+#X obj 31 24 loadbang;
+#X obj 31 48 list append \$1;
+#X msg 31 75 \; /ev/cam/\$1/state 1 \; /ev/cam/\$1/flip/vertical 0
+\; /ev/cam/\$1/flip/horizontal 0 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X coords 0 328 1 327 85 60 0;
+#X restore 297 233 pd init;
+#X obj 101 133 cnv 15 178 35 empty empty empty 20 12 0 14 -228856 -66577
+0;
+#X obj 105 139 tgl 15 0 /ev/cam/\$1/state /ev/cam/\$1/state on/off
+17 7 0 10 -4034 -1 -1 1 1;
+#N canvas 292 79 638 358 storage_&_osc 0;
+#X obj 373 138 osc_bi \$2 /ev/cam/\$1/state;
+#X obj 373 158 osc_bi \$2 /ev/cam/\$1/flip/horizontal;
+#X obj 373 178 osc_bi \$2 /ev/cam/\$1/flip/vertical;
+#X obj 93 158 ds_reg \$2 /ev/cam/\$1/flip/horizontal nomorph;
+#X obj 93 178 ds_reg \$2 /ev/cam/\$1/flip/vertical nomorph;
+#X obj 93 138 ds_reg \$2 /ev/cam/\$1/state nomorph;
+#X restore 278 197 pd storage_&_osc;
+#X obj 472 94 r /ev/cam/\$1/state;
+#X obj 203 139 tgl 15 0 /ev/cam/\$1/flip/horizontal /ev/cam/\$1/flip/horizontal
+<-> 17 7 0 10 -204786 -1 -1 0 1;
+#X obj 239 139 tgl 15 0 /ev/cam/\$1/flip/vertical /ev/cam/\$1/flip/vertical
+^v 17 7 0 10 -204786 -1 -1 0 1;
+#X text 170 139 flip:;
+#X obj 427 67 inlet gemlist;
+#X obj 427 538 outlet gemlist;
+#X obj 427 397 pix_flip;
+#X obj 642 153 loadbang;
+#X obj 642 175 list prepend \$1;
+#X obj 642 197 route float;
+#X msg 642 239 device \$1;
+#X obj 636 67 inlet settings;
+#X obj 100 184 cnv 15 150 110 empty empty GUI_controls 5 8 0 12 -204800
+-66577 0;
+#X text 102 260 on/off: toggles state;
+#X text 102 201 flip: flip image;
+#X text 139 216 <-> horizontal;
+#X text 139 229 ^v vertical;
+#N canvas 46 408 499 288 flip_logic 0;
+#X obj 93 109 t b f;
+#X msg 73 201 both;
+#X obj 244 237 outlet;
+#X obj 194 109 t b f;
+#X obj 174 131 <;
+#X obj 174 153 sel 1;
+#X msg 174 175 vertical;
+#X obj 264 109 t b f;
+#X obj 244 153 sel 1;
+#X obj 244 131 >;
+#X msg 244 175 horizontal;
+#X obj 73 131 +;
+#X obj 73 153 sel 2 0;
+#X msg 92 176 none;
+#X obj 73 47 r /ev/cam/\$1/flip/horizontal;
+#X obj 194 73 r /ev/cam/\$1/flip/vertical;
+#X connect 0 0 11 0;
+#X connect 0 1 11 1;
+#X connect 1 0 2 0;
+#X connect 3 0 4 0;
+#X connect 3 1 4 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 7 0 9 0;
+#X connect 7 1 9 1;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 10 0 2 0;
+#X connect 11 0 12 0;
+#X connect 12 0 1 0;
+#X connect 12 1 13 0;
+#X connect 13 0 2 0;
+#X connect 14 0 11 0;
+#X connect 14 0 4 0;
+#X connect 14 0 9 0;
+#X connect 15 0 0 0;
+#X connect 15 0 3 0;
+#X connect 15 0 7 0;
+#X restore 443 371 pd flip_logic;
+#X obj 642 219 moses 999;
+#X obj 478 319 s /ev/cam/\$1/info;
+#X text 177 422 Outlet 1: GEMlist;
+#X obj 427 343 pix_separator;
+#X text 46 547 (c)2011 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X connect 1 0 2 0;
+#X connect 2 0 35 0;
+#X connect 2 1 33 0;
+#X connect 14 0 1 1;
+#X connect 18 0 1 0;
+#X connect 20 0 19 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 32 0;
+#X connect 24 0 2 0;
+#X connect 25 0 2 0;
+#X connect 31 0 20 0;
+#X connect 32 0 24 0;
+#X connect 35 0 20 0;
+#X coords 0 -1 1 1 180 54 1 100 118;

+ 65 - 0
ev-in/ev_pic-help.pd

@@ -0,0 +1,65 @@
+#N canvas 398 169 762 547 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl;
+#X obj 12 12 cnv 15 748 16 empty empty EXTENDED_VIEW_IMAGE_MODULE 2
+8 0 14 -99865 -262144 0;
+#X obj 13 345 cnv 15 360 180 empty empty PARAMETER_LIST_for_ev_vid
+20 8 0 14 -233017 -66577 0;
+#X obj 464 108 gemwin 20;
+#X msg 476 68 0 \, destroy;
+#X text 393 45 CLICK HERE:;
+#X obj 409 139 gemhead;
+#X obj 12 166 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 12 229 cnv 15 360 45 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 17 249 Inlet 1: GEMlist;
+#X obj 12 39 cnv 15 360 120 empty empty description 5 12 0 12 -233017
+-66577 0;
+#X text 14 107 Contains specific storage_&_osc-subpatch which houses
+abstractions to register parameters for storage and osc communication
+;
+#X obj 409 251 pix_texture;
+#X obj 409 277 rectangle 4 3;
+#N canvas 571 219 519 324 pathes 0;
+#X obj 122 67 ../ev-main/ev_declare;
+#X restore 612 106 pd pathes;
+#X obj 419 372 loadbang;
+#X obj 419 394 f \$0;
+#X obj 397 375 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 15 56 Module to load images for further processing. It features
+a flip function to mirror the image horizontally and vertically.;
+#X text 15 188 1st: unique module id;
+#X text 15 202 2nd: storage domain;
+#X text 147 249 Outlet 1: GEMlist;
+#X obj 13 279 cnv 15 360 60 empty empty GUI_controls 5 8 0 12 -204800
+-66577 0;
+#X text 15 295 on/off: toggles state;
+#X text 15 306 open / reload:;
+#X text 53 316 load/reload image;
+#X text 235 292 flip: flip image;
+#X text 272 307 <-> horizontal;
+#X text 272 320 ^v vertical;
+#X text 384 336 Load image files with the 'open' dialog \, or by sending
+a message:;
+#X text 20 481 (c)2011 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X msg 464 46 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X msg 419 420 \; /ev/pic/\$1/filename ../media/cam2.jpg \;;
+#X obj 409 170 ev_pic \$0;
+#X text 17 365 /ev/pic/<id>/flip/horizontal --- flip image horizontally
+\; /ev/pic/<id>/flip/vertical --- flip image vertically \; /ev/pic/<id>/filename
+--- load given filename \; /ev/pic/<id>/reload --- load last specified
+file \; /ev/pic/<id>/open --- start open dialog \;;
+#X connect 3 0 2 0;
+#X connect 5 0 32 0;
+#X connect 11 0 12 0;
+#X connect 14 0 15 0;
+#X connect 15 0 31 0;
+#X connect 16 0 15 0;
+#X connect 30 0 2 0;
+#X connect 32 0 11 0;

+ 141 - 0
ev-in/ev_pic.pd

@@ -0,0 +1,141 @@
+#N canvas 224 94 1023 663 10;
+#X obj 500 115 spigot 1;
+#X text 126 327 creation argument: id;
+#X obj 704 130 openpanel;
+#X obj 696 276 list trim;
+#X obj 100 18 cnv 15 820 16 empty empty EXTENDED_VIEW_IMAGE_MODULE
+2 8 0 14 -233017 -66577 0;
+#X obj 100 39 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 100 312 cnv 15 360 110 empty empty inlets/outlets 5 12 0 12
+-233017 -66577 0;
+#X text 105 332 Inlet 1: GEMlist;
+#X obj 316 118 cnv 15 150 145 empty empty GUI_controls 5 8 0 12 -204800
+-66577 0;
+#X text 318 194 on/off: toggles state;
+#X text 318 222 open / reload:;
+#X text 356 232 load/reload image;
+#N canvas 187 362 392 196 init 0;
+#X obj 81 -236 loadbang;
+#X obj 81 -212 list append \$1;
+#X msg 81 -185 \; /ev/pic/\$1/filename <no_file_specified> \; /ev/pic/\$1/flip/horizontal
+0 \; /ev/pic/\$1/flip/vertical 0 \; /ev/pic/\$1/state 1 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X restore 147 254 pd init;
+#X obj 101 133 cnv 15 178 48 empty empty empty 20 12 0 14 -162280 -66577
+0;
+#X obj 105 139 tgl 15 0 /ev/pic/\$1/state /ev/pic/\$1/state on/off
+17 7 0 10 -4034 -1 -1 1 1;
+#X obj 105 161 bng 15 250 50 0 /ev/pic/\$1/open /ev/pic/\$1/open open
+17 7 0 10 -262130 -1 -1;
+#X obj 155 161 bng 15 250 50 0 /ev/pic/\$1/load /ev/pic/\$1/load reload
+17 7 0 10 -204800 -1 -1;
+#X obj 696 254 list prepend set open;
+#N canvas 145 22 633 305 storage_&_osc 0;
+#X obj 343 98 osc_bi \$2 /ev/pic/\$1/state;
+#X obj 343 118 osc_bi \$2 /ev/pic/\$1/filename;
+#X obj 63 98 ds_reg \$2 /ev/pic/\$1/state nomorph;
+#X obj 63 118 ds_reg \$2 /ev/pic/\$1/filename nomorph;
+#X obj 63 58 ds_reg \$2 /ev/pic/\$1/flip/horizontal nomorph;
+#X obj 63 78 ds_reg \$2 /ev/pic/\$1/flip/vertical nomorph;
+#X obj 343 58 osc_bi \$2 /ev/pic/\$1/flip/horizontal;
+#X obj 343 78 osc_bi \$2 /ev/pic/\$1/flip/vertical;
+#X obj 343 138 osc_bi \$2 /ev/pic/\$1/open;
+#X obj 343 158 osc_bi \$2 /ev/pic/\$1/load;
+#X restore 147 230 pd storage_&_osc;
+#X text 318 135 flip: flip image;
+#X obj 500 555 outlet gemlist;
+#X obj 195 139 tgl 15 0 /ev/pic/\$1/flip/horizontal /ev/pic/\$1/flip/horizontal
+<-> 17 7 0 10 -204786 -1 -1 0 1;
+#X obj 231 139 tgl 15 0 /ev/pic/\$1/flip/vertical /ev/pic/\$1/flip/vertical
+^v 17 7 0 10 -204786 -1 -1 0 1;
+#X text 162 139 flip:;
+#X text 355 150 <-> horizontal;
+#X text 355 163 ^v vertical;
+#X obj 545 93 r /ev/pic/\$1/state;
+#N canvas 46 408 499 288 flip_logic 0;
+#X obj 93 109 t b f;
+#X msg 73 201 both;
+#X obj 244 237 outlet;
+#X obj 194 109 t b f;
+#X obj 174 131 <;
+#X obj 174 153 sel 1;
+#X msg 174 175 vertical;
+#X obj 264 109 t b f;
+#X obj 244 153 sel 1;
+#X obj 244 131 >;
+#X msg 244 175 horizontal;
+#X obj 73 131 +;
+#X obj 73 153 sel 2 0;
+#X msg 92 176 none;
+#X obj 73 47 r /ev/pic/\$1/flip/horizontal;
+#X obj 194 73 r /ev/pic/\$1/flip/vertical;
+#X connect 0 0 11 0;
+#X connect 0 1 11 1;
+#X connect 1 0 2 0;
+#X connect 3 0 4 0;
+#X connect 3 1 4 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 7 0 9 0;
+#X connect 7 1 9 1;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 10 0 2 0;
+#X connect 11 0 12 0;
+#X connect 12 0 1 0;
+#X connect 12 1 13 0;
+#X connect 13 0 2 0;
+#X connect 14 0 11 0;
+#X connect 14 0 4 0;
+#X connect 14 0 9 0;
+#X connect 15 0 0 0;
+#X connect 15 0 3 0;
+#X connect 15 0 7 0;
+#X restore 626 442 pd flip_logic;
+#X obj 522 178 r /ev/pic/\$1/filename;
+#X obj 711 297 r /ev/pic/\$1/load;
+#X obj 704 153 s /ev/pic/\$1/filename;
+#X obj 704 108 r /ev/pic/\$1/open;
+#X obj 500 56 inlet gemlist;
+#X text 235 332 Outlet 1: GEMlist;
+#X text 103 61 1st: unique module ID;
+#X text 103 77 2nd: save domain;
+#X text 106 449 (c)2011 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X obj 500 388 pix_image;
+#X msg 669 353 open ../media/cam1.jpg;
+#X obj 500 410 pix_separator;
+#X obj 500 137 separator;
+#X obj 500 523 pix_flip;
+#X obj 500 442 t a b;
+#X obj 527 469 list prepend none;
+#X text 636 471 Workaround for GEM bug.;
+#X obj 527 491 list trim;
+#X obj 669 230 t b a;
+#X obj 522 200 route <no_file_specified>;
+#X connect 0 0 40 0;
+#X connect 2 0 30 0;
+#X connect 3 0 38 0;
+#X connect 17 0 3 0;
+#X connect 26 0 0 1;
+#X connect 27 0 43 1;
+#X connect 28 0 47 0;
+#X connect 29 0 38 0;
+#X connect 31 0 2 0;
+#X connect 32 0 0 0;
+#X connect 37 0 39 0;
+#X connect 38 0 37 0;
+#X connect 39 0 42 0;
+#X connect 40 0 37 0;
+#X connect 41 0 20 0;
+#X connect 42 0 41 0;
+#X connect 42 1 43 0;
+#X connect 43 0 45 0;
+#X connect 45 0 41 0;
+#X connect 46 0 38 0;
+#X connect 46 1 17 0;
+#X connect 47 1 46 0;
+#X coords 0 -1 1 1 180 67 1 100 118;

+ 121 - 0
ev-in/ev_vid-help.pd

@@ -0,0 +1,121 @@
+#N canvas 364 151 775 650 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl;
+#X obj 12 12 cnv 15 740 16 empty empty EXTENDED_VIEW_VIDEOPLAYBACK_MODULE
+2 8 0 14 -99865 -262144 0;
+#X obj 392 563 cnv 15 360 45 empty empty PARAMETER_LIST_for_ev_vid
+3 8 0 12 -128992 -262144 0;
+#X obj 486 100 gemwin 20;
+#X msg 486 69 0 \, destroy;
+#X text 380 41 CLICK HERE:;
+#X obj 392 121 gemhead;
+#X obj 12 245 cnv 15 360 45 empty empty creation_arguments: 5 8 0 12
+-162280 -1 0;
+#X obj 12 296 cnv 15 360 40 empty empty inlets/outlets 5 8 0 12 -233017
+-66577 0;
+#X text 16 308 Inlet 1: GEMlist;
+#X obj 12 39 cnv 15 360 200 empty empty description 5 12 0 12 -233017
+-66577 0;
+#X text 17 193 Contains specific storage_&_osc-subpatch which houses
+abstractions to register parameters for storage and osc communication
+;
+#X obj 584 346 unpack f f;
+#X floatatom 584 368 5 0 0 0 - - -;
+#X floatatom 641 368 5 0 0 0 - - -;
+#X text 580 384 video resolution;
+#X floatatom 507 457 5 0 0 0 - - -;
+#X floatatom 546 414 5 0 0 0 - - -;
+#X text 486 469 elapsed time;
+#X text 522 429 video length;
+#N canvas 1 54 434 136 init 0;
+#X obj 122 67 ../ev-main/ev_declare;
+#X restore 704 70 pd init;
+#X obj 392 530 bng 15 250 50 0 empty empty bangs_when_fadeIN_ends 17
+7 0 10 -262144 -1 -1;
+#X obj 469 494 bng 15 250 50 0 empty empty bangs_when_end_is_reached
+17 7 0 10 -262144 -1 -1;
+#X obj 12 343 cnv 15 360 300 empty empty GUI_controls 5 8 0 12 -204800
+-66577 0;
+#X obj 392 323 route fIn fOut end elapsed length dimen;
+#X obj 430 512 bng 15 250 50 0 empty empty bangs_when_fadeout_starts
+17 7 0 10 -262144 -1 -1;
+#X obj 392 247 pix_texture;
+#X obj 392 269 rectangle 4 3;
+#X text 146 308 Outlet 1: GEMlist;
+#X text 17 257 1st: module ID \, needs to be unique \; 2nd: storage
+domain \, see [ev_storage-help] for details;
+#N canvas 712 224 379 208 explanation_modes 0;
+#X text 12 13 explanation of [time_accurate] and [frame_accurate] \;
+\; one deploys a counter that counts up to the end of the file \, which
+means \, if the cpu is under heavy load \, playback speed maybe gets
+slow. The [time accurate]-mode relies on the realtime-object and makes
+sure \, that the playback-speed of the file is constant. If CPU-Load
+is up \, it results in frames being dropped/jumped over. the visual
+output is still rather ok and looks fluid.;
+#X restore 225 428 pd explanation_modes;
+#X text 15 59 video playback module with controls over In/Out fades
+\, and time-adjustments \; All values for length are given in frames.
+Fade-length is given in frames as well. Fade-out-time-value displays
+the length of the fade-out in frames. \; The numberbox [sec:] displays
+entered or actively changed values in seconds. Framerate of loaded
+videos have to be entered manually \, but is saved within scenes of
+the Extended-view-storage system.;
+#X obj 636 253 loadbang;
+#X obj 636 323 s /ev/vid/\$0/filename;
+#X msg 636 301 ../media/diver.mov;
+#X obj 636 275 del 1000;
+#X text 396 615 (c)2011 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X msg 451 42 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X obj 392 143 ev_vid \$0;
+#X obj 392 298 r /ev/vid/\$0/info;
+#X text 15 356 on/off : switches the module and its processing on/off
+\; open : open file dialog \; loop_on/off : switch file looping on/off
+\; play & stop : should do what it says \; frame/time accurate : switches
+between 2 playback modes. open subpatch for further details \; \; fps
+: set framerate of loaded file \; settings : opens advanced settings
+\; \; __________________advanced settings________________________ start/end_time
+: set in and out points of loaded video \; fade_in/out_time : set fades
+directly in the player (compare to the transition-possibilities in
+[ev_storage].. see [ev_storage-help] for details) \; lvl : set gain/level
+for video (0...100) \; form : adjust shape of the fade-curve (0...100)
+\; weight : fade between linear and curved fade-behaviour (0-100) \;
+show_curve: shows the fade-curve \; flip: flips content horicontal
+and vertical;
+#N canvas 1 56 470 519 parameter_list 0;
+#X text 28 13 control parameters for [ev_vid];
+#X text 25 36 /ev/vid/<id>/fadeIn_time --- fadeIn-time in frames \;
+/ev/vid/<id>/fadeOut_time --- fadeOut-time in frames \; /ev/vid/<id>/start_time
+--- time offset in frames(adjusting length of file \, non destructive)
+\; /ev/vid/<id>/end_time --in frames \, adjusting endpoint of videofile
+\, in frames \, non destructive \; /ev/vid/<id>/filename --- set new
+video file path \; /ev/vid/<id>/start --- start video \; /ev/vid/<id>/stop
+--- stop video \; /ev/vid/<id>/open --- start open dialog \; /ev/vid/<id>/texture_id
+--- access as texture from outside \; /ev/vid/<id>/gain --- sets max
+gain level of video \; /ev/vid/<id>/weight --- adjusts weight of the
+fading-curve \; /ev/vid/<id>/form --- alters the shape of the fade
+curve \; /ev/vid/<id>/loop --- play video in a loop \; /ev/vid/<id>/flip/horicontal
+--- flip video horicontally \; /ev/vid/<id>/flip/vertical --- flip
+video vertically \; /ev/vid/<id>/curve/vis --- show fade curve \;;
+#X restore 574 582 pd parameter_list for ev_vid;
+#X text 395 582 open subpatch for list;
+#X connect 3 0 2 0;
+#X connect 5 0 37 0;
+#X connect 11 0 12 0;
+#X connect 11 1 13 0;
+#X connect 23 0 20 0;
+#X connect 23 1 24 0;
+#X connect 23 2 21 0;
+#X connect 23 3 15 0;
+#X connect 23 4 16 0;
+#X connect 23 5 11 0;
+#X connect 25 0 26 0;
+#X connect 31 0 34 0;
+#X connect 33 0 32 0;
+#X connect 34 0 33 0;
+#X connect 36 0 2 0;
+#X connect 37 0 25 0;
+#X connect 38 0 23 0;

+ 743 - 0
ev-in/ev_vid.pd

@@ -0,0 +1,743 @@
+#N canvas 334 77 767 716 10;
+#X obj 435 -26 r /ev/vid/\$1/state;
+#X obj 390 8 spigot 1;
+#X obj 20 -86 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 20 -23 cnv 15 360 45 empty empty inlets/outlets 5 12 0 12 -191407
+-66577 0;
+#X text 24 -7 Inlet 1: GEMlist;
+#X obj 417 216 pix_film;
+#X obj 417 107 alpha;
+#X obj 487 153 list trim;
+#X obj 487 109 r /ev/vid/\$1/filename;
+#X obj 625 131 openpanel;
+#X obj 625 109 r /ev/vid/\$1/open;
+#X obj 625 154 s /ev/vid/\$1/filename;
+#X text 487 92 open file______________________________;
+#X obj 20 142 cnv 15 360 80 empty empty empty 20 12 0 14 -261682 -66577
+0;
+#N canvas 857 22 394 265 init 0;
+#X obj 79 -253 loadbang;
+#X obj 45 -256 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 79 -229 list append \$1;
+#X msg 79 -202 \; /ev/vid/\$1/fadeIn_time 0 \; /ev/vid/\$1/fadeOut_time
+0 \; /ev/vid/\$1/start_time 0 \; /ev/vid/\$1/timebase 0 \; /ev/vid/\$1/state
+1 \; /ev/vid/\$1/form 50 \; /ev/vid/\$1/weight 100 \; /ev/vid/\$1/gain
+100 \; /ev/vid/\$1/framerate 25 \; /ev/vid/\$1/loop 0 \; /ev/vid/\$1/flip/horizontal
+0 \; /ev/vid/\$1/flip/vertical 0 \;;
+#X connect 0 0 2 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X restore 501 -84 pd init;
+#X obj 439 321 s /ev/vid/\$1/dimen;
+#X obj 644 291 s /ev/vid/\$1/stop;
+#X obj 487 131 list prepend open;
+#N canvas 96 296 589 450 storage_&_osc 0;
+#X obj 93 18 ds_reg \$2 /ev/vid/\$1/state nomorph;
+#X obj 93 38 ds_reg \$2 /ev/vid/\$1/filename nomorph;
+#X obj 93 58 ds_reg \$2 /ev/vid/\$1/framerate nomorph;
+#X obj 93 78 ds_reg \$2 /ev/vid/\$1/start_time nomorph;
+#X obj 93 98 ds_reg \$2 /ev/vid/\$1/end_time nomorph;
+#X obj 93 118 ds_reg \$2 /ev/vid/\$1/fadeIn_time nomorph;
+#X obj 93 138 ds_reg \$2 /ev/vid/\$1/fadeOut_time nomorph;
+#X obj 93 158 ds_reg \$2 /ev/vid/\$1/timebase nomorph;
+#X obj 93 178 ds_reg \$2 /ev/vid/\$1/gain;
+#X obj 93 198 ds_reg \$2 /ev/vid/\$1/form nomorph;
+#X obj 93 218 ds_reg \$2 /ev/vid/\$1/weight nomorph;
+#X obj 93 238 ds_reg \$2 /ev/vid/\$1/loop nomorph;
+#X obj 363 18 osc_bi \$2 /ev/vid/\$1/state;
+#X obj 363 38 osc_bi \$2 /ev/vid/\$1/filename;
+#X obj 363 58 osc_bi \$2 /ev/vid/\$1/framerate;
+#X obj 363 78 osc_bi \$2 /ev/vid/\$1/start_time;
+#X obj 363 98 osc_bi \$2 /ev/vid/\$1/end_time;
+#X obj 363 118 osc_bi \$2 /ev/vid/\$1/fadeIn_time;
+#X obj 363 138 osc_bi \$2 /ev/vid/\$1/fadeOut_time;
+#X obj 363 158 osc_bi \$2 /ev/vid/\$1/timebase;
+#X obj 363 178 osc_bi \$2 /ev/vid/\$1/gain;
+#X obj 363 198 osc_bi \$2 /ev/vid/\$1/form;
+#X obj 363 218 osc_bi \$2 /ev/vid/\$1/weight;
+#X obj 363 238 osc_bi \$2 /ev/vid/\$1/loop;
+#X obj 363 278 osc_bi \$2 /ev/vid/\$1/start;
+#X obj 363 298 osc_bi \$2 /ev/vid/\$1/stop;
+#X obj 363 318 osc_bi \$2 /ev/vid/\$1/open;
+#X restore 390 -84 pd storage_&_osc;
+#X obj 462 194 r /ev/vid/\$1/filmframe;
+#N canvas 225 55 1003 672 fadelogic 0;
+#X obj 27 33 cnv 15 250 400 empty empty fadeIN_machinery 20 12 0 14
+-261234 -66577 0;
+#X obj 586 17 cnv 15 400 500 empty empty fadeOut_machinery 20 8 0 14
+-233017 -66577 0;
+#X obj 280 184 cnv 15 300 230 empty empty communication_between_fader_and_number-boxes
+2 12 0 10 -233017 -66577 0;
+#X obj 42 639 outlet fade;
+#X obj 739 74 r /ev/vid/\$1/fadeOut_time;
+#X obj 95 112 r /ev/vid/\$1/fadeIn_time;
+#X msg 791 282 set \$1;
+#X msg 323 349 set \$1;
+#X obj 640 33 r /ev/vid/\$1/lengthNEW;
+#X obj 134 135 r /ev/vid/\$1/framerate;
+#X obj 42 480 line;
+#X msg 729 442 0 \$1;
+#X obj 35 341 f;
+#X obj 729 422 f;
+#X obj 289 206 r /ev/vid/\$1/fadeIn_timeFRr;
+#X obj 792 345 r /ev/vid/\$1/fadeOut_timeFRr;
+#X obj 122 211 /;
+#X msg 122 191 1000 \$1;
+#X obj 50 305 *;
+#X obj 50 209 *;
+#X obj 739 159 *;
+#X obj 744 271 *;
+#X obj 640 241 -;
+#X obj 590 293 r /ev/vid/\$1/elapsed;
+#X obj 655 215 t b f;
+#X obj 713 272 int;
+#X obj 684 53 r /ev/vid/\$1/framerate;
+#X obj 684 184 /;
+#X msg 684 159 1000 \$1;
+#X obj 791 316 s /ev/vid/\$1/fadeOut_timeFRs;
+#X obj 368 375 s /ev/vid/\$1/fadeIn_timeFRs;
+#X obj 288 327 int;
+#X obj 791 263 int;
+#X obj 792 415 s /ev/vid/\$1/fadeOut_time;
+#X obj 792 393 /;
+#X obj 289 256 s /ev/vid/\$1/fadeIn_time;
+#X obj 289 235 /;
+#X msg 368 349 range 0 \$1;
+#X msg 840 283 range 0 \$1;
+#X obj 698 493 s /ev/vid/\$1/fOut_start;
+#X obj 370 528 s /ev/vid/\$1/fIn_end;
+#X obj 119 639 s /ev/vid/\$1/fade_level;
+#X obj 42 606 * 1;
+#X obj 72 529 r /ev/vid/\$1/gain;
+#X text 180 529 set maximum gain level;
+#X obj 72 579 t b f;
+#X obj 72 552 / 100;
+#X text 182 503 fade curves are set inside;
+#X text 366 391 sets numberboxes according to fader;
+#X obj 370 424 r /ev/vid/\$1/elapsed;
+#X obj 122 171 f 25;
+#X obj 684 135 f 25;
+#X obj 370 478 change;
+#X obj 370 456 >= 0;
+#X obj 370 502 sel 1;
+#X obj 698 375 change;
+#X obj 698 395 sel 1;
+#X msg 90 375 1;
+#X obj 90 338 r /ev/vid/\$1/lengthNEW;
+#X obj 50 92 r /ev/vid/\$1/lengthNEW;
+#X obj 368 327 r /ev/vid/\$1/lengthNEW;
+#X obj 754 97 r /ev/vid/\$1/lengthNEW;
+#X obj 840 261 r /ev/vid/\$1/lengthNEW;
+#X obj 35 71 r /ev/vid/\$1/start;
+#X msg 35 376 0 \, 1 \$1;
+#X obj 360 225 r /ev/vid/\$1/lengthNEW;
+#X obj 95 134 t f b;
+#X obj 122 231 t b f;
+#X obj 50 231 t f f;
+#X obj 288 423 t f;
+#X obj 729 468 s \$0-fade_vid;
+#X obj 90 402 s \$0-fade_vid;
+#X obj 42 458 r \$0-fade_vid;
+#X obj 828 367 r /ev/vid/\$1/lengthNEW;
+#X obj 739 183 t f b f f;
+#X obj 754 127 t b f;
+#X obj 50 134 t b f;
+#X obj 698 355 > 1;
+#N canvas 1 83 410 202 shapes 0;
+#X obj -47 16 r /ev/vid/\$1/form;
+#X msg -47 108 shape \$1;
+#X obj 63 16 r /ev/vid/\$1/weight;
+#X msg 63 64 weight \$1;
+#X obj 63 36 / 100;
+#X obj 63 146 outlet;
+#X obj -47 62 - 1;
+#X obj -47 40 / 50;
+#X obj -47 85 * 3;
+#X msg 193 67 vis;
+#X obj 193 38 t b;
+#X obj 193 16 r /ev/vid/\$1/curve/vis;
+#X connect 0 0 7 0;
+#X connect 1 0 5 0;
+#X connect 2 0 4 0;
+#X connect 3 0 5 0;
+#X connect 4 0 3 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 8 0 1 0;
+#X connect 9 0 5 0;
+#X connect 10 0 9 0;
+#X connect 11 0 10 0;
+#X restore 171 480 pd shapes;
+#X obj 42 503 fadecurve \$1-vid 100 3;
+#X obj 591 319 r /ev/vid/\$1/start;
+#X msg 591 339 set 0;
+#X text 288 274 if time is changed within the numberboxes \; fader
+is set accordingly;
+#X connect 4 0 20 0;
+#X connect 5 0 66 0;
+#X connect 6 0 29 0;
+#X connect 7 0 30 0;
+#X connect 8 0 22 0;
+#X connect 9 0 50 0;
+#X connect 10 0 79 0;
+#X connect 11 0 70 0;
+#X connect 12 0 64 0;
+#X connect 13 0 11 0;
+#X connect 14 0 36 0;
+#X connect 15 0 34 0;
+#X connect 16 0 67 0;
+#X connect 17 0 16 0;
+#X connect 18 0 12 1;
+#X connect 19 0 68 0;
+#X connect 20 0 74 0;
+#X connect 21 0 13 1;
+#X connect 22 0 25 0;
+#X connect 23 0 77 0;
+#X connect 24 0 22 0;
+#X connect 24 1 22 1;
+#X connect 25 0 77 1;
+#X connect 26 0 51 0;
+#X connect 27 0 21 0;
+#X connect 28 0 27 0;
+#X connect 31 0 7 0;
+#X connect 31 0 69 0;
+#X connect 32 0 6 0;
+#X connect 34 0 33 0;
+#X connect 36 0 35 0;
+#X connect 37 0 30 0;
+#X connect 38 0 29 0;
+#X connect 42 0 41 0;
+#X connect 42 0 3 0;
+#X connect 43 0 46 0;
+#X connect 45 0 42 0;
+#X connect 45 1 42 1;
+#X connect 46 0 45 0;
+#X connect 49 0 53 0;
+#X connect 50 0 17 0;
+#X connect 51 0 28 0;
+#X connect 52 0 54 0;
+#X connect 53 0 52 0;
+#X connect 54 0 40 0;
+#X connect 55 0 56 0;
+#X connect 56 0 13 0;
+#X connect 56 0 39 0;
+#X connect 57 0 71 0;
+#X connect 58 0 57 0;
+#X connect 59 0 76 0;
+#X connect 60 0 37 0;
+#X connect 61 0 75 0;
+#X connect 62 0 38 0;
+#X connect 63 0 12 0;
+#X connect 64 0 71 0;
+#X connect 65 0 36 1;
+#X connect 66 0 19 0;
+#X connect 66 1 50 0;
+#X connect 67 0 18 0;
+#X connect 67 1 18 1;
+#X connect 68 0 18 0;
+#X connect 68 1 31 0;
+#X connect 69 0 53 1;
+#X connect 72 0 10 0;
+#X connect 73 0 34 1;
+#X connect 74 0 24 0;
+#X connect 74 1 21 0;
+#X connect 74 2 21 1;
+#X connect 74 3 32 0;
+#X connect 75 0 20 0;
+#X connect 75 1 20 1;
+#X connect 76 0 19 0;
+#X connect 76 1 19 1;
+#X connect 77 0 55 0;
+#X connect 78 0 79 1;
+#X connect 79 0 42 0;
+#X connect 80 0 81 0;
+#X connect 81 0 55 0;
+#X restore 530 351 pd fadelogic;
+#X obj 425 134 loadbang;
+#X obj 390 -53 inlet gemlist;
+#X obj 21 44 cnv 14 358 82 empty empty empty 20 12 0 14 -33289 -66577
+0;
+#X obj 29 44 tgl 14 0 /ev/vid/\$1/state /ev/vid/\$1/state on/off 17
+7 0 10 -228856 -1 -262144 1 1;
+#X obj 29 60 bng 14 250 50 0 /ev/vid/\$1/open /ev/vid/\$1/open open
+17 7 0 10 -4034 -1 -4034;
+#X obj 342 45 bng 35 250 50 0 /ev/vid/\$1/stop /ev/vid/\$1/stop stop
+4 17 0 12 -258113 -162280 -262144;
+#X obj 350 84 nbx 2 14 1 99 0 0 /ev/vid/\$1/framerate /ev/vid/\$1/framerate
+fps: -25 8 0 9 -262144 -1 -258113 25 256;
+#X obj 149 84 nbx 14 14 -1e+37 1e+37 0 0 empty /ev/vid/\$1/lengthNEW
+length/NEW 0 -5 0 9 -66577 -4034 -4034 351 256;
+#X obj 29 84 nbx 14 14 -1e+37 1e+37 0 0 empty /ev/vid/\$1/elapsed elapsed
+0 -5 0 9 -66577 -262144 -262144 0 256;
+#N canvas 363 215 530 292 frame-to-seconds_converter 0;
+#X obj 130 236 s /ev/vid/\$1/seconds;
+#X obj 343 41 r /ev/vid/\$1/fadeOut_time;
+#X obj 189 41 r /ev/vid/\$1/fadeIn_time;
+#X obj 189 87 t f;
+#X obj 34 87 r /ev/vid/\$1/framerate;
+#X obj 137 154 f;
+#X obj 189 112 t f b;
+#X obj 189 194 /;
+#X obj 337 108 f;
+#X obj 298 81 t f b;
+#X obj 298 131 *;
+#X floatatom 301 184 5 0 0 0 - - -;
+#X obj 337 16 r /ev/vid/\$1/length;
+#X obj 40 40 r /ev/vid/\$1/lengthNEW;
+#X connect 1 0 9 0;
+#X connect 2 0 9 0;
+#X connect 3 0 6 0;
+#X connect 4 0 5 1;
+#X connect 5 0 7 1;
+#X connect 6 0 7 0;
+#X connect 6 1 5 0;
+#X connect 7 0 0 0;
+#X connect 8 0 10 1;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 10 0 3 0;
+#X connect 10 0 11 0;
+#X connect 12 0 8 0;
+#X connect 13 0 3 0;
+#X restore 560 -84 pd frame-to-seconds_converter;
+#X obj 269 84 nbx 5 14 -1e+37 1e+37 0 0 empty /ev/vid/\$1/seconds sec
+35 8 0 10 -66577 -4034 -191407 14.04 256;
+#X obj 186 44 vradio 14 1 0 2 /ev/vid/\$1/timebase /ev/vid/\$1/timebase
+empty 0 -8 0 10 -262144 -1 -1 0;
+#X obj 417 371 pix_rgba;
+#X obj 417 442 pix_alpha;
+#X msg 493 414 1;
+#X msg 521 414 1 1 1;
+#X msg 560 414 0 0 0;
+#N canvas 243 494 372 243 vid_\$1 0;
+#X obj 1 -31 cnv 15 360 230 empty empty settings_for_ev_vid_\$1 3 8
+0 12 -128992 -262144 0;
+#X obj 6 154 tgl 15 0 /ev/vid/\$1/state /ev/vid/\$1/state on/off 17
+7 0 10 -228856 -1 -1 1 1;
+#X obj 6 138 bng 15 250 50 0 /ev/vid/\$1/open /ev/vid/\$1/open open
+17 7 0 10 -262130 -1 -1;
+#X obj 291 -25 bng 30 250 50 0 /ev/vid/\$1/start /ev/vid/\$1/start
+play 4 16 0 10 -4034 -260097 -1;
+#X obj 327 -25 bng 30 250 50 0 /ev/vid/\$1/stop /ev/vid/\$1/stop stop
+2 14 0 11 -258113 -162280 -262144;
+#X obj 88 138 nbx 2 13 1 99 0 0 /ev/vid/\$1/framerate /ev/vid/\$1/framerate
+fps: -25 7 0 10 -191407 -1 -262144 25 256;
+#X obj 8 100 hsl 276 15 0 351 0 0 /ev/vid/\$1/start_time /ev/vid/\$1/start_time
+start_time 15 9 1 12 -66577 -4034 -262144 0 1;
+#X obj 8 60 hsl 276 15 0 1 0 0 /ev/vid/\$1/fadeIn_time /ev/vid/\$1/fadeIn_time
+fadeIn_time 15 9 1 12 -66577 -4034 -262144 0 1;
+#X obj 8 80 hsl 276 15 1 0 0 1 /ev/vid/\$1/fadeOut_time /ev/vid/\$1/fadeOut_time
+fadeOut_time 15 9 1 12 -66577 -258113 -262144 27500 1;
+#X obj 96 8 nbx 9 14 -1e+37 1e+37 0 0 empty /ev/vid/\$1/length file_length
+0 -5 0 10 -1 -262144 -1 351 256;
+#X obj 287 60 nbx 8 15 0 351 0 0 /ev/vid/\$1/fadeIn_timeFRr /ev/vid/\$1/fadeIn_timeFRs
+empty 0 -8 0 9 -262144 -1 -1 0 256;
+#X obj 287 80 nbx 8 15 0 351 0 0 /ev/vid/\$1/fadeOut_timeFRr /ev/vid/\$1/fadeOut_timeFRs
+empty 0 -8 0 9 -262144 -1 -1 0 256;
+#X obj 287 100 nbx 8 15 0 351 0 0 /ev/vid/\$1/start_time /ev/vid/\$1/start_time
+empty 0 -8 0 9 -262144 -1 -1 0 256;
+#X obj 186 8 nbx 9 14 -1e+37 1e+37 0 0 empty /ev/vid/\$1/lengthNEW
+length/NEW 0 -5 0 10 -1 -4034 -1 351 256;
+#X obj 287 120 nbx 8 15 0 351 0 0 /ev/vid/\$1/end_time /ev/vid/\$1/end_time
+empty 0 -8 0 9 -262144 -1 -1 351 256;
+#X obj 5 8 nbx 9 14 -1e+37 1e+37 0 0 empty /ev/vid/\$1/elapsed elapsed
+0 -5 0 10 -1 -4034 -33289 0 256;
+#X obj 302 8 nbx 5 14 -1e+37 1e+37 0 0 empty /ev/vid/\$1/seconds sec:
+-25 8 0 10 -33289 -4034 -262144 14.04 256;
+#X obj 190 139 vradio 14 1 0 2 /ev/vid/\$1/timebase /ev/vid/\$1/timebase
+empty 0 -8 0 10 -262144 -1 -1 0;
+#X obj 88 153 tgl 14 0 /ev/vid/\$1/loop /ev/vid/\$1/loop loop_on/off
+17 7 0 10 -4160 -262144 -262144 0 1;
+#X text 205 138 frame acc.;
+#X text 205 151 time acc.;
+#X obj 8 120 hsl 276 15 0 351 0 0 /ev/vid/\$1/end_time /ev/vid/\$1/end_time
+end_time 15 8 0 12 -66577 -258113 -262144 27500 1;
+#X obj 281 152 nbx 8 12 0 100 0 0 /ev/vid/\$1/form /ev/vid/\$1/form
+form 49 7 0 10 -99865 -262144 -262144 50 256;
+#X obj 281 167 nbx 8 12 0 100 0 0 /ev/vid/\$1/weight /ev/vid/\$1/weight
+weight 39 7 0 10 -99865 -262144 -262144 100 256;
+#X obj 288 30 nbx 5 23 0 100 0 0 /ev/vid/\$1/gain /ev/vid/\$1/gain
+LVL 45 12 0 13 -99865 -257985 -262144 100 256;
+#X obj 8 30 hsl 276 23 0 100 0 0 /ev/vid/\$1/gain /ev/vid/\$1/gain
+Level 15 11 0 13 -99865 -257985 -262144 27500 1;
+#X obj 281 136 cnv 15 70 13 empty empty Fadecurve 0 8 0 12 -128992
+-66577 0;
+#X obj 282 182 bng 15 250 50 0 /ev/vid/\$1/curve/vis /ev/vid/\$1/curve/vis
+show_curve 17 7 0 10 -128992 -1 -262144;
+#X obj 88 177 tgl 15 0 /ev/vid/\$1/flip/horizontal /ev/vid/\$1/flip/horizontal
+<-> 17 7 0 10 -204786 -1 -1 0 1;
+#X obj 124 177 tgl 15 0 /ev/vid/\$1/flip/vertical /ev/vid/\$1/flip/vertical
+^v 17 7 0 10 -204786 -1 -1 0 1;
+#X text 55 177 flip:;
+#X restore 290 199 pd vid_\$1;
+#X msg 217 178 vis 1;
+#X obj 217 199 s pd-vid_\$1;
+#N canvas 164 32 351 692 timebase 0;
+#X obj 28 256 spigot 1;
+#X obj 84 255 spigot 0;
+#X msg 84 275 bang;
+#X obj 114 296 + 1;
+#X obj 84 296 f;
+#X text 174 258 Gate-Logic to switch \; between CPU-triggered- \; playback
+and frame- \; accurate playback;
+#X obj 129 216 - 1;
+#X obj 129 235 * -1;
+#N canvas 86 303 642 465 realtime 0;
+#X msg 380 212 0;
+#X obj 119 143 realtime;
+#X msg 170 30 1000 \$1;
+#X obj 170 50 /;
+#X obj 119 302 i;
+#X obj 119 115 t b;
+#X obj 119 163 / 33.3333;
+#X msg 202 253 0;
+#X msg 164 253 1;
+#X obj 119 323 spigot 1;
+#X obj 170 5 r /ev/vid/\$1/framerate;
+#X obj 202 71 r /ev/vid/\$1/stop;
+#X obj 3 11 r /ev/vid/\$1/start;
+#X obj 119 347 outlet spigot;
+#X obj 202 347 outlet zero;
+#X msg 42 158 0;
+#X obj 3 33 t b b b;
+#X obj 119 -19 inlet stopbang;
+#X obj 379 183 inlet stop;
+#X obj 255 97 inlet two;
+#X connect 0 0 4 1;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 3 0 6 1;
+#X connect 4 0 9 0;
+#X connect 5 0 1 0;
+#X connect 6 0 4 0;
+#X connect 7 0 9 1;
+#X connect 7 0 14 0;
+#X connect 8 0 9 1;
+#X connect 9 0 13 0;
+#X connect 10 0 2 0;
+#X connect 11 0 7 0;
+#X connect 11 0 5 0;
+#X connect 12 0 16 0;
+#X connect 15 0 14 0;
+#X connect 16 0 8 0;
+#X connect 16 1 5 0;
+#X connect 16 2 15 0;
+#X connect 17 0 5 0;
+#X connect 18 0 0 0;
+#X connect 19 0 1 1;
+#X restore 28 169 pd realtime;
+#X obj 27 86 inlet pix_film_outlet3;
+#X obj 28 348 outlet spigot;
+#X obj 28 18 cnv 15 300 52 empty empty empty 20 12 0 14 -191407 -66577
+0;
+#X text 31 19 following part is to adjust the framerate of the;
+#X text 32 31 video-file to the system framerate of GEM.;
+#X text 32 41 If set wrong \, playback-speed is not right.;
+#X text 32 53 set framerate of file with fps-parameter in GUI.;
+#X obj 67 490 r /ev/vid/\$1/loop;
+#X obj 164 141 r /ev/vid/\$1/timebase;
+#X obj 141 561 spigot;
+#X obj 141 581 del 1;
+#X obj 141 603 s /ev/vid/\$1/start;
+#X obj 30 470 change;
+#X obj 30 490 sel 1;
+#X obj 30 406 r /ev/vid/\$1/elapsed;
+#X obj 158 428 r /ev/vid/\$1/start;
+#X msg 158 448 set 0;
+#X obj 160 406 r /ev/vid/\$1/lengthNEW;
+#X obj 30 429 + 1;
+#X obj 30 450 >= 1;
+#X obj 30 580 spigot;
+#X obj 67 539 - 1;
+#X obj 67 558 * -1;
+#X obj 30 604 s \$0-stoptimebase;
+#X obj 163 117 r \$0-stoptimebase;
+#X text 94 384 looping&stop mechanism;
+#X obj 172 87 inlet two;
+#X obj 171 161 r /ev/vid/\$1/dimen;
+#X msg 171 234 0;
+#X obj 171 181 t b;
+#X text 198 180 resets counter on load;
+#X connect 0 0 10 0;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 3 0;
+#X connect 4 0 10 0;
+#X connect 6 0 7 0;
+#X connect 7 0 1 1;
+#X connect 8 0 0 0;
+#X connect 8 0 1 0;
+#X connect 8 1 4 1;
+#X connect 9 0 8 0;
+#X connect 16 0 18 1;
+#X connect 16 0 30 0;
+#X connect 17 0 6 0;
+#X connect 17 0 0 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 21 0 22 0;
+#X connect 22 0 18 0;
+#X connect 22 0 29 0;
+#X connect 23 0 27 0;
+#X connect 24 0 25 0;
+#X connect 25 0 21 0;
+#X connect 26 0 28 1;
+#X connect 27 0 28 0;
+#X connect 28 0 21 0;
+#X connect 29 0 32 0;
+#X connect 30 0 31 0;
+#X connect 31 0 29 1;
+#X connect 33 0 8 2;
+#X connect 35 0 8 1;
+#X connect 36 0 38 0;
+#X connect 37 0 4 1;
+#X connect 38 0 37 0;
+#X restore 501 244 pd timebase;
+#X obj 501 291 s /ev/vid/\$1/filmframe;
+#X obj 564 221 r /ev/vid/\$1/stop;
+#N canvas 198 263 529 310 for_the_data_outlet 0;
+#X msg 398 103 end;
+#X msg 242 103 length \$1;
+#X msg 320 103 dimen \$2 \$3;
+#X msg 168 103 elapsed \$1;
+#X obj 166 222 t a;
+#X obj 310 57 t a;
+#X obj 11 37 r /ev/vid/\$1/fOut_start;
+#X msg 11 57 fOut;
+#X obj 11 77 r /ev/vid/\$1/fIn_end;
+#X msg 11 97 fIn;
+#X obj 11 117 r /ev/vid/\$1/fade_level;
+#X msg 11 137 fade;
+#X obj 168 36 r /ev/vid/\$1/filmframe;
+#X obj 311 36 r /ev/vid/\$1/dimen;
+#X obj 398 71 r /ev/vid/\$1/stop;
+#X obj 167 253 outlet;
+#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 4 0 15 0;
+#X connect 5 0 2 0;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 4 0;
+#X connect 8 0 9 0;
+#X connect 9 0 4 0;
+#X connect 10 0 11 0;
+#X connect 11 0 4 0;
+#X connect 12 0 3 0;
+#X connect 13 0 5 0;
+#X connect 14 0 0 0;
+#X restore 25 157 pd for_the_data_outlet;
+#X obj 99 44 tgl 14 0 /ev/vid/\$1/loop /ev/vid/\$1/loop loop_on/off
+17 7 0 10 -262144 -1 -262144 0 1;
+#X obj 99 60 bng 14 250 50 0 /ev/vid/\$1/settings empty settings 17
+7 0 10 -257985 -1 -257985;
+#X obj 202 46 cnv 15 100 10 empty empty frame_accurate 0 6 0 10 -1
+-262144 0;
+#X obj 203 60 cnv 15 100 10 empty empty time_accurate 0 6 0 10 -1 -262144
+0;
+#X obj 298 45 bng 35 250 50 0 /ev/vid/\$1/start /ev/vid/\$1/start play
+5 17 0 11 -4034 -99865 -1;
+#X obj 217 156 r /ev/vid/\$1/settings;
+#X text 216 138 additional settings-dialog;
+#X obj 25 181 s /ev/vid/\$1/info;
+#X obj 417 563 outlet gemlist;
+#X obj 417 472 pix_flip;
+#N canvas 525 302 499 288 flip_logic 0;
+#X obj 93 109 t b f;
+#X msg 73 201 both;
+#X obj 244 237 outlet;
+#X obj 194 109 t b f;
+#X obj 174 131 <;
+#X obj 174 153 sel 1;
+#X msg 174 175 vertical;
+#X obj 264 109 t b f;
+#X obj 244 153 sel 1;
+#X obj 244 131 >;
+#X msg 244 175 horizontal;
+#X obj 73 131 +;
+#X obj 73 153 sel 2 0;
+#X msg 92 176 none;
+#X obj 73 47 r /ev/vid/\$1/flip/horizontal;
+#X obj 194 73 r /ev/vid/\$1/flip/vertical;
+#X connect 0 0 11 0;
+#X connect 0 1 11 1;
+#X connect 1 0 2 0;
+#X connect 3 0 4 0;
+#X connect 3 1 4 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 2 0;
+#X connect 7 0 9 0;
+#X connect 7 1 9 1;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 10 0 2 0;
+#X connect 11 0 12 0;
+#X connect 12 0 1 0;
+#X connect 12 1 13 0;
+#X connect 13 0 2 0;
+#X connect 14 0 11 0;
+#X connect 14 0 4 0;
+#X connect 14 0 9 0;
+#X connect 15 0 0 0;
+#X connect 15 0 3 0;
+#X connect 15 0 7 0;
+#X restore 496 442 pd flip_logic;
+#X obj 417 350 pix_separator;
+#N canvas 462 151 629 438 length_logic2 0;
+#X obj 13 16 inlet from_timebase_frames;
+#X obj 186 17 r /ev/vid/\$1/dimen;
+#X obj 186 36 unpack f f f;
+#X text 218 53 get length of movie;
+#X obj 13 376 outlet frame-number;
+#X obj 13 240 + 0;
+#X text 38 240 setframe offset to change start-time;
+#X obj 186 73 s /ev/vid/\$1/length;
+#X obj 374 17 cnv 15 200 150 empty empty empty 20 12 0 14 -233017 -66577
+0;
+#X obj 424 175 s /ev/vid/\$1/start_time;
+#X obj 436 156 s /ev/vid/\$1/end_time;
+#X msg 424 128 range 0 \$1;
+#X obj 424 46 r /ev/vid/\$1/length;
+#X text 393 22 set range of faders and nbx;
+#X obj 424 66 f;
+#X msg 384 150 set 0;
+#X obj 281 375 outlet stopbang;
+#X obj 269 232 t f f;
+#X obj 234 101 r /ev/vid/\$1/end_time;
+#X obj 29 141 int;
+#X obj 234 148 int;
+#X obj 66 141 r /ev/vid/\$1/length;
+#X msg 66 193 0;
+#X msg 93 193 \$1;
+#X obj 66 172 t b f;
+#X obj 29 92 r /ev/vid/\$1/start_time;
+#X obj 230 286 moses 1;
+#X obj 139 376 s /ev/vid/\$1/elapsed;
+#X obj 269 255 + 1;
+#X obj 281 310 >=;
+#X obj 281 355 sel 1;
+#X obj 281 334 change;
+#X obj 389 235 s /ev/vid/\$1/lengthNEW;
+#N canvas 97 326 450 300 newtime 0;
+#X obj 190 24 inlet start;
+#X obj 108 24 inlet end;
+#X obj 138 199 outlet;
+#X obj 138 163 -;
+#X obj 190 56 t b f;
+#X obj 108 57 t f b;
+#X obj 108 100 f;
+#X obj 217 97 f;
+#X connect 0 0 4 0;
+#X connect 1 0 5 0;
+#X connect 3 0 2 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 6 0 3 0;
+#X connect 7 0 3 1;
+#X restore 389 210 pd newtime;
+#X obj 29 114 route float;
+#X obj 424 88 t f f b;
+#X obj 473 313 r /ev/vid/\$1/end_time;
+#X obj 437 372 print slider;
+#X msg 495 129 set \$1;
+#X obj 234 123 route float set;
+#X connect 0 0 5 0;
+#X connect 0 0 27 0;
+#X connect 1 0 2 0;
+#X connect 2 0 7 0;
+#X connect 5 0 26 0;
+#X connect 5 0 4 0;
+#X connect 11 0 9 0;
+#X connect 11 0 10 0;
+#X connect 12 0 14 0;
+#X connect 14 0 35 0;
+#X connect 15 0 9 0;
+#X connect 17 0 28 0;
+#X connect 17 1 29 1;
+#X connect 18 0 39 0;
+#X connect 19 0 5 1;
+#X connect 19 0 33 1;
+#X connect 20 0 17 0;
+#X connect 20 0 33 0;
+#X connect 21 0 24 0;
+#X connect 22 0 5 1;
+#X connect 23 0 17 0;
+#X connect 24 0 22 0;
+#X connect 24 1 23 0;
+#X connect 25 0 34 0;
+#X connect 26 0 29 0;
+#X connect 28 0 26 1;
+#X connect 29 0 31 0;
+#X connect 30 0 16 0;
+#X connect 31 0 30 0;
+#X connect 33 0 32 0;
+#X connect 34 0 19 0;
+#X connect 35 0 38 0;
+#X connect 35 1 11 0;
+#X connect 35 2 15 0;
+#X connect 38 0 10 0;
+#X connect 39 0 20 0;
+#X connect 39 1 20 0;
+#X restore 501 268 pd length_logic2;
+#X msg 425 154 auto 0;
+#X obj 20 -107 cnv 15 740 18 empty empty EXTENDED_VIEW_VIDEO_PLAYBACK_MODULE
+2 8 0 14 -99865 -262144 0;
+#X text 25 138 video properties & end signal;
+#X obj 390 62 t b a;
+#X obj 660 380 loadbang;
+#X text 613 350 <---Fade Logic;
+#X text 623 266 <---Length Logic;
+#X text 154 -8 Outlet 1: GEMlist;
+#X obj 308 103 nbx 5 17 0 100 0 0 /ev/vid/\$1/gain /ev/vid/\$1/gain
+LVL 43 9 0 13 -99865 -257985 -262144 100 256;
+#X obj 32 103 hsl 270 17 0 100 0 0 /ev/vid/\$1/gain /ev/vid/\$1/gain
+Level 15 9 0 13 -99865 -257985 -262144 26900 1;
+#X text 21 501 (c)2012 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X text 27 -63 1st: module ID \, needs to be unique \; 2nd: storage
+domain \, see [ev_storage-help] for details;
+#X connect 0 0 1 1;
+#X connect 1 0 61 0;
+#X connect 5 0 56 0;
+#X connect 5 1 15 0;
+#X connect 5 2 41 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 8 0 17 0;
+#X connect 9 0 11 0;
+#X connect 10 0 9 0;
+#X connect 17 0 7 0;
+#X connect 19 0 5 1;
+#X connect 20 0 34 1;
+#X connect 21 0 58 0;
+#X connect 22 0 1 0;
+#X connect 33 0 34 0;
+#X connect 34 0 54 0;
+#X connect 35 0 34 2;
+#X connect 36 0 34 3;
+#X connect 37 0 34 4;
+#X connect 39 0 40 0;
+#X connect 41 0 57 0;
+#X connect 43 0 41 1;
+#X connect 44 0 52 0;
+#X connect 50 0 39 0;
+#X connect 54 0 53 0;
+#X connect 55 0 54 0;
+#X connect 56 0 33 0;
+#X connect 57 0 42 0;
+#X connect 57 1 16 0;
+#X connect 58 0 5 0;
+#X connect 61 0 41 1;
+#X connect 61 1 6 0;
+#X connect 62 0 37 0;
+#X connect 62 0 36 0;
+#X connect 62 0 35 0;
+#X coords 0 -1 1 1 360 100 1 20 30;

+ 14 - 0
ev-main/README.txt

@@ -0,0 +1,14 @@
+ev-main
+=======
+
+This folder contains general abstractions of the EXTENDED VIEW toolkit.
+
+*  [ev_base] is a template to build your own compatible modules.
+*  [ev_buf] creates a frame buffer
+*  [ev_declare] should be in every patch to specify the pathes.
+*  [ev_gemwin] GEM window module.
+*  [ev_grid] renders a basic grid.
+*  [ev_pix_fx] is an example implementation for [ev_base]
+*  [ev_record] lets you record a video and take snapshots.
+*  [ev_rectangle] shortcut for quick patching.
+*  [ev_storage] state saving system with scene transition features.

+ 91 - 0
ev-main/ev_base-help.pd

@@ -0,0 +1,91 @@
+#N canvas 309 22 788 747 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl;
+#X obj -194 8 cnv 15 740 16 empty empty EXTENDED_VIEW_BASE:_module/addon-template
+2 8 0 14 -99865 -262144 0;
+#X obj -194 659 cnv 15 360 120 empty empty PARAMETER_LIST_for_ev_base
+3 8 0 14 -162280 -1 0;
+#X obj 281 107 gemwin 20;
+#X msg 296 77 0 \, destroy;
+#X text 210 46 CLICK HERE:;
+#X obj -194 319 cnv 15 360 90 empty empty GUI_controls 5 8 0 12 -204800
+-66577 0;
+#X obj -194 209 cnv 15 360 60 empty empty creation_arguments: 5 12
+0 12 -162280 -1 0;
+#X obj -194 274 cnv 15 360 40 empty empty inlets/outlets 3 8 0 12 -233017
+-66577 0;
+#X obj -194 35 cnv 15 360 170 empty empty description 3 8 0 12 -233017
+-66577 0;
+#X text -192 161 Contains specific storage_&_osc-subpatch which houses
+abstractions to register parameters for storage and osc communication
+;
+#X text -189 229 1st: module ID \, needs to be unique \; 2nd: storage
+domain \, see [ev_storage-help] for details;
+#X text -192 290 Inlet 1: depending on what you build in;
+#X text -192 300 Outlet 1: depending on what you build in;
+#X text -193 343 0/1: bypassing the module \; 1 to 8: controlling parameters
+of (internally) connected FX all GUI-controls are ranging from 0 to
+1 \; either drag coursor in slider or in numberboxes;
+#X text -188 680 /ev/base/<id>/parameter/1 : control parameter [0...1]
+;
+#X text -188 690 /ev/base/<id>/parameter/2 : control parameter [0...1]
+;
+#X text -188 700 /ev/base/<id>/parameter/3 : control parameter [0...1]
+;
+#X text -188 710 /ev/base/<id>/parameter/4 : control parameter [0...1]
+;
+#X text -188 720 /ev/base/<id>/parameter/5 : control parameter [0...1]
+;
+#X text -188 730 /ev/base/<id>/parameter/6 : control parameter [0...1]
+;
+#X text -188 740 /ev/base/<id>/parameter/7 : control parameter [0...1]
+;
+#X text -188 750 /ev/base/<id>/parameter/8 : control parameter [0...1]
+;
+#X obj 183 167 ev_base \$0;
+#X text -188 762 /ev/base/<id>/state : bypass module [0/1];
+#X obj -194 414 cnv 15 360 240 empty empty USAGE 5 8 0 12 -258113 -262144
+0;
+#X obj 183 300 gemhead;
+#X obj 183 507 pix_texture;
+#X obj 183 529 rectangle 4 3;
+#X obj 243 331 loadbang;
+#X obj 221 332 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 183 385 pix_image;
+#X msg 221 359 open ../media/cam2.jpg;
+#X text -192 427 In your patch \, create a [ev_base] \, and save it
+under a new name within ./ev-main. Then create your just saved abstraction
+in you patch & program into it whatever you like \; Remember \, all
+storage and control related parameters still rely on the parameter-list
+below \, so you want to make sure \, that you create your own created
+effects with UNIQUE-IDs to avoid paramter-mixup \; What happens \,
+if you dont take care of this? \; Both \, the original [ev_base] and
+the [ev_pix_fx] are initialised with the same ID \, so changing a parameter
+on [ev_base] changes it on the other as well \; \; _______________________ADVANCED___________________________
+\; to add additional parameters \, please have a look in the helpfile
+for [ev_storage] under <Registering Variables>;
+#X obj 183 414 ev_pix_fx \$0;
+#X msg 281 47 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X obj 255 623 ../ev-main/ev_declare;
+#X text 218 602 set pathes to needed abstractions;
+#X text -191 51 [ev_base] is a module \, that lets you integrate PIX-effects
+\, other GEM-functions or whatever your needs are easily in your ExtendedViewToolkit-based-patches.
+It allows you to instantly take advantage of the built-in storage and
+transition features \, ultimately allowing for faster patching when
+preparing a show or installation \; There is a BYPASS-funtion and some
+parameters already integrated.;
+#X text 220 699 (c)2012 Peter Venus & Marian Weger \; /part of EXTENDEDVIEW
+toolkit/ gpl v3;
+#X connect 3 0 2 0;
+#X connect 25 0 30 0;
+#X connect 26 0 27 0;
+#X connect 28 0 31 0;
+#X connect 29 0 31 0;
+#X connect 30 0 33 0;
+#X connect 31 0 30 0;
+#X connect 33 0 26 0;
+#X connect 34 0 2 0;

+ 126 - 0
ev-main/ev_base.pd

@@ -0,0 +1,126 @@
+#N canvas 395 50 630 530 10;
+#N canvas 458 191 445 318 init 0;
+#X obj 81 -186 loadbang;
+#X obj 81 -162 list append \$1;
+#X obj 60 -184 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 81 -135 \; /ev/base/\$1/state 1 \; /ev/base/\$1/parameter/1
+0 \; /ev/base/\$1/parameter/2 0 \; /ev/base/\$1/parameter/3 0 \; /ev/base/\$1/parameter/4
+0 \; /ev/base/\$1/parameter/5 0 \; /ev/base/\$1/parameter/6 0 \; /ev/base/\$1/parameter/7
+0 \; /ev/base/\$1/parameter/8 0;
+#X text 38 -244 In here \, all parameters get initialised with a starting
+value. Add variables and change their init value in this list:;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X restore 323 27 pd init;
+#N canvas 45 192 841 403 storage_&_osc 0;
+#X obj 43 118 ds_reg \$2 /ev/base/\$1/parameter/1;
+#X obj 463 118 osc_bi \$2 /ev/base/\$1/parameter/1;
+#X obj 43 138 ds_reg \$2 /ev/base/\$1/parameter/2;
+#X obj 43 158 ds_reg \$2 /ev/base/\$1/parameter/3;
+#X obj 43 178 ds_reg \$2 /ev/base/\$1/parameter/4;
+#X obj 43 198 ds_reg \$2 /ev/base/\$1/parameter/5;
+#X obj 43 218 ds_reg \$2 /ev/base/\$1/parameter/6;
+#X obj 43 238 ds_reg \$2 /ev/base/\$1/parameter/7;
+#X obj 43 258 ds_reg \$2 /ev/base/\$1/parameter/8;
+#X obj 463 138 osc_bi \$2 /ev/base/\$1/parameter/2;
+#X obj 463 158 osc_bi \$2 /ev/base/\$1/parameter/3;
+#X obj 463 178 osc_bi \$2 /ev/base/\$1/parameter/4;
+#X obj 463 198 osc_bi \$2 /ev/base/\$1/parameter/5;
+#X obj 463 218 osc_bi \$2 /ev/base/\$1/parameter/6;
+#X obj 463 238 osc_bi \$2 /ev/base/\$1/parameter/7;
+#X obj 463 258 osc_bi \$2 /ev/base/\$1/parameter/8;
+#X obj 463 278 osc_bi \$2 /ev/base/\$1/state;
+#X obj 43 358 ds_reg \$2 /ev/base/\$1/state nomorph;
+#X text 28 14 In this subpatch \, all parameters are registered to
+the preset management system and osc communication.;
+#X text 28 64 For every parameter that needs state saving \, a [ds_reg]
+abstraction must be created. See [ev_storage-help] for more information.
+;
+#X text 27 289 As the "state" parameter of is only a toggle \, it makes
+no sense to fade it between two values. The "nomorph" argument disables
+scene morphing for this specific parameter permanently.;
+#X text 445 18 To enable osc comminication for a variable \, there
+are three [osc_...] abstractions available:;
+#X text 445 48 [osc_in] for receiving OSC messages;
+#X text 445 61 [osc_out] for sending OSC messages;
+#X text 445 75 [osc_bi] for bidirectional OSC communication without
+feedback.;
+#X restore 212 27 pd storage_&_osc;
+#X obj 11 66 cnv 15 358 65 empty empty empty 20 12 0 14 -13381 -66577
+0;
+#X obj 45 72 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/1 /ev/base/\$1/parameter/1
+empty -2 -8 0 10 -262144 -258113 -1 7900 1;
+#X obj 131 71 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/1 /ev/base/\$1/parameter/1
+1 58 7 0 10 -262144 -1 -4034 1 256;
+#X obj 45 87 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/2 /ev/base/\$1/parameter/2
+empty -2 -8 0 10 -262144 -258113 -1 7900 1;
+#X obj 131 86 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/2 /ev/base/\$1/parameter/2
+2 58 7 0 10 -262144 -1 -4034 1 256;
+#X obj 45 102 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/3 /ev/base/\$1/parameter/3
+empty -2 -8 0 10 -262144 -258113 -1 7900 1;
+#X obj 131 101 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/3 /ev/base/\$1/parameter/3
+3 58 7 0 10 -262144 -1 -4034 1 256;
+#X obj 45 117 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/4 /ev/base/\$1/parameter/4
+empty -2 -8 0 10 -262144 -258113 -1 7900 1;
+#X obj 131 116 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/4 /ev/base/\$1/parameter/4
+4 58 7 0 10 -262144 -1 -4034 1 256;
+#X obj 215 72 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/5 /ev/base/\$1/parameter/5
+empty -2 -8 0 10 -262144 -258113 -1 0 1;
+#X obj 301 71 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/5 /ev/base/\$1/parameter/5
+5 58 7 0 10 -262144 -1 -4034 0 256;
+#X obj 215 87 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/6 /ev/base/\$1/parameter/6
+empty -2 -8 0 10 -262144 -258113 -1 0 1;
+#X obj 301 86 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/6 /ev/base/\$1/parameter/6
+6 58 7 0 10 -262144 -1 -4034 0 256;
+#X obj 215 102 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/7 /ev/base/\$1/parameter/7
+empty -2 -8 0 10 -262144 -258113 -1 0 1;
+#X obj 301 101 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/7 /ev/base/\$1/parameter/7
+7 58 7 0 10 -262144 -1 -4034 0 256;
+#X obj 215 117 hsl 80 10 0 1 0 0 /ev/base/\$1/parameter/8 /ev/base/\$1/parameter/8
+empty -2 -8 0 10 -262144 -258113 -1 0 1;
+#X obj 301 116 nbx 5 12 0 1 0 0 /ev/base/\$1/parameter/8 /ev/base/\$1/parameter/8
+8 58 7 0 10 -262144 -1 -4034 0 256;
+#X obj 18 72 tgl 15 0 /ev/base/\$1/state /ev/base/\$1/state O/1 0 23
+0 10 -4034 -1 -262144 1 1;
+#X obj 375 7 cnv 15 235 110 empty empty how_to: 3 8 0 12 -233017 -66577
+0;
+#X text 375 94 all controls are normalised from 0 to 1;
+#X text 375 48 this container \, save it under another \; name and
+enjoy instant storage and \; transition-features of EVT :);
+#X obj 375 127 cnv 15 235 360 empty empty send_n_recieves_for_controller-values
+3 8 0 10 -203904 -66577 0;
+#X obj 396 163 r /ev/base/\$1/parameter/2;
+#X obj 406 183 r /ev/base/\$1/parameter/3;
+#X obj 416 203 r /ev/base/\$1/parameter/4;
+#X obj 426 223 r /ev/base/\$1/parameter/5;
+#X obj 436 243 r /ev/base/\$1/parameter/6;
+#X obj 446 263 r /ev/base/\$1/parameter/7;
+#X obj 456 283 r /ev/base/\$1/parameter/8;
+#X obj 456 320 s /ev/base/\$1/parameter/1;
+#X obj 446 340 s /ev/base/\$1/parameter/2;
+#X obj 436 360 s /ev/base/\$1/parameter/3;
+#X obj 426 380 s /ev/base/\$1/parameter/4;
+#X obj 416 400 s /ev/base/\$1/parameter/5;
+#X obj 406 420 s /ev/base/\$1/parameter/6;
+#X obj 396 440 s /ev/base/\$1/parameter/7;
+#X obj 386 460 s /ev/base/\$1/parameter/8;
+#X obj 386 143 r /ev/base/\$1/parameter/1;
+#X obj 124 176 r /ev/base/\$1/state;
+#X obj 10 -17 cnv 15 600 18 empty empty EXTENDED_VIEW_MODULE-BASE 3
+10 0 14 -99865 -262144 0;
+#X text 92 453 (c)2012 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X text 11 6 to be used as template for own EVT addons;
+#X text 385 297 ____________________________________;
+#X obj 91 201 spigot;
+#X text 141 201 (bypass);
+#X text 376 35 Build new compatible modules around;
+#X text 100 302 (put some processing here);
+#X obj 91 154 inlet gemlist;
+#X obj 91 420 outlet outlet;
+#X connect 40 0 45 1;
+#X connect 45 0 50 0;
+#X connect 49 0 45 0;
+#X coords 0 -1 1 1 360 85 1 10 50;

+ 118 - 0
ev-main/ev_buf-help.pd

@@ -0,0 +1,118 @@
+#N canvas 63 54 1116 756 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl;
+#X obj 716 156 gemwin 20;
+#X msg 729 118 0 \, destroy;
+#X text 712 74 CLICK HERE:;
+#X obj 599 205 pix_texture;
+#X obj 599 227 rectangle 3.9 3.9;
+#X obj 17 527 cnv 15 360 220 empty empty parameter_list_for_ev_buf
+20 12 0 14 -233017 -66577 0;
+#X text 20 562 /ev/buf/<id>/color --- background color (R G B) \; /ev/buf/<id>/format
+--- (default=RGBA) \; /ev/buf/<id>/rectangle --- (default=1) \; /ev/buf/<id>/type
+--- (default=BYTE) \; --> for further details \, see [gemframebuffer]
+help \; \; /ev/buf/<id>/shift/x --- shift content in x-direction \;
+/ev/buf/<id>/shift/y --- shift content in y-direction \; /ev/buf/<id>/scale/x
+--- scale content in x-direction \; /ev/buf/<id>/scale/y --- scale
+content in y-direction \; /ev/buf/<id>/dimen/x --- framebuffer x-dimension
+in pixels \; /ev/buf/<id>/dimen/y --- framebuffer y-dimension in pixels
+\; /ev/buf/<id>/state --- turn module on (1) and off (0) \;;
+#X obj 399 220 t a a;
+#X obj 599 183 gemhead;
+#X obj 10 10 cnv 15 850 16 empty empty EXTENDED_VIEW_FRAMEBUFFER 20
+8 0 14 -233017 -66577 0;
+#X obj 17 360 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 17 423 cnv 15 360 90 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X obj 17 157 cnv 15 360 200 empty empty description 5 12 0 12 -233017
+-66577 0;
+#X text 149 481 other content;
+#X text 20 376 1st: module ID;
+#X obj 17 43 cnv 15 200 100 empty empty gui_controls 5 8 0 12 -204800
+-66577 0;
+#X text 17 82 scale x/y: scales the buffers;
+#X text 17 60 shift x/y: translates the buffers;
+#X text 17 104 dimen x/y: dimension of the FB;
+#X text 17 116 on/off: toggles state;
+#X text 20 388 2nd: render priority;
+#X text 21 176 [gemframebuffer] renders a scene into a buffer to used
+and altered later. the EV-Framebuffer allows to combine different sources
+\, like [ev_cam] to be used as one texture within the /ev-projection
+modules. It makes it possible \, that different targets can use the
+same scene as their texture.;
+#X text 21 259 Can be controlled via OSC \, which uses the same syntax
+as the EV internal send/recieve message system see list below for additional
+information about the specific parameter-names.;
+#X text 19 317 Contains specific storage_&_osc-subpatch which houses
+abstractions to register parameters for storage and osc communication
+;
+#N canvas 138 22 458 667 init 0;
+#X obj 38 93 loadbang;
+#X text 54 166 This is only needed for this help file.;
+#X text 48 181 To store your settings \, it is recommended;
+#X text 54 196 to use the integrated data storage system [ev_storage].
+;
+#X obj 38 117 del 2000;
+#X msg 38 224 \; /ev/grid/id0/labeling/size 0.0025 \; /ev/grid/id0/grid/res/y
+16 \; /ev/grid/id0/grid/res/x 16 \; /ev/grid/id0/grid/state 1 \; /ev/grid/id0/size
+4 \; /ev/pano/group/id0/trim/bottom 0.07 \; /ev/pano/group/id0/trim/top
+-0.01 \; /ev/pano/group/id0/trim/state 1 \; /ev/pic/id3/filename ../media/cam4.jpg
+\; /ev/pano/stitch/id3/shift/y 0.0154839 \; /ev/pano/stitch/id3/shift/x
+-0.0677419 \; /ev/pano/stitch/id3/shade 16.129 \; /ev/pic/id2/filename
+../media/cam3.jpg \; /ev/pano/stitch/id2/shift/y 0.0322581 \; /ev/pano/stitch/id2/shift/x
+-0.103226 \; /ev/pano/stitch/id2/shade 25.8065 \; /ev/pic/id1/filename
+../media/cam2.jpg \; /ev/pano/stitch/id1/shift/y 0.0632258 \; /ev/pano/stitch/id1/shift/x
+-0.0412903 \; /ev/pano/stitch/id1/shade 35.4839 \; /ev/pic/id0/filename
+../media/cam1.jpg \; /ev/buf/id0/scale/y 1.05 \; /ev/buf/id0/scale/x
+1.05 \; /ev/buf/id0/shift/x 0.04 \; /ev/pic/id0/load bang \; /ev/pic/id1/load
+bang \; /ev/pic/id2/load bang \; /ev/pic/id3/load bang;
+#X obj 122 67 ../ev-main/ev_declare;
+#X obj 17 71 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X connect 0 0 4 0;
+#X connect 4 0 5 0;
+#X connect 7 0 4 0;
+#X restore 290 83 pd init;
+#X text 22 495 Outlet 2: texture id of the framebuffer;
+#X text 22 469 Outlet 1: gemlist \, to be connectet to input \, group
+or;
+#X obj 399 48 gemhead 20;
+#X text 22 453 Inlet 2: gemframebuffer settings (see gemframebuffer-help)
+;
+#X text 22 441 Inlet 1: gemlist \, to be connected to gemhead;
+#X text 416 709 (c)2011 Peter Venus & Marian Weger /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X obj 399 462 ev_pic id0;
+#X obj 399 555 ev_pano_stitch id0;
+#X obj 583 555 ev_pano_stitch id1;
+#X obj 767 555 ev_pano_stitch id2;
+#X obj 951 555 ev_pano_stitch id3;
+#X obj 399 86 ev_buf id0;
+#X obj 399 331 ev_grid id0;
+#X obj 613 331 ev_pano_group id0;
+#X obj 583 462 ev_pic id1;
+#X obj 767 462 ev_pic id2;
+#X obj 951 462 ev_pic id3;
+#X msg 716 96 dimen 800 600 \, color 0.5 0.5 0.5 \, create \, 1;
+#X connect 1 0 0 0;
+#X connect 3 0 4 0;
+#X connect 7 0 37 0;
+#X connect 7 1 38 0;
+#X connect 8 0 3 0;
+#X connect 27 0 36 0;
+#X connect 31 0 32 0;
+#X connect 36 0 7 0;
+#X connect 36 1 3 1;
+#X connect 38 1 31 0;
+#X connect 38 2 39 0;
+#X connect 38 3 40 0;
+#X connect 38 4 41 0;
+#X connect 39 0 33 0;
+#X connect 40 0 34 0;
+#X connect 41 0 35 0;
+#X connect 42 0 0 0;
+#X coords 0 756 1 755 85 60 0;

+ 42 - 0
ev-main/ev_buf.pd

@@ -0,0 +1,42 @@
+#N canvas 200 62 1055 651 10;
+#X obj 100 10 cnv 15 850 16 empty empty EXTENDED_VIEW_FRAMEBUFFER 20
+8 0 14 -233017 -66577 0;
+#X obj 99 318 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 99 381 cnv 15 360 90 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 231 441 other content;
+#X text 102 334 1st: module ID;
+#X obj 102 200 cnv 15 200 100 empty empty gui_controls 5 8 0 12 -204800
+-66577 0;
+#X text 102 239 scale x/y: scales the buffers;
+#X text 168 228 content;
+#X text 102 217 shift x/y: translates the buffers;
+#X text 168 248 content;
+#X text 102 261 dimen x/y: dimension of the FB;
+#X text 102 273 on/off: toggles state;
+#X text 682 591 outlet 1: gemlist outlet;
+#X text 895 568 outlet 2: texture id;
+#X text 104 429 Outlet 1: gemlist \, to be connectet to input \, group
+or;
+#X text 104 455 Outlet 2: texture id of the framebuffer;
+#X obj 590 591 outlet gemlist;
+#X obj 894 596 outlet texture_id;
+#X text 104 413 Inlet 2: gemframebuffer settings (see gemframebuffer-help)
+;
+#X text 105 400 Inlet 1: gemlist to be connected to gemhead;
+#X obj 492 60 cnv 15 200 40 empty empty inlets 1 8 0 12 -260097 -66577
+0;
+#X obj 503 78 inlet gemlist;
+#X obj 590 78 inlet settings;
+#X text 102 286 rotate: rotate content;
+#X text 102 346 2nd: storage domain;
+#X text 103 492 (c)2011 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X obj 570 216 ev_buf_dsp \$1 \$2;
+#X obj 100 115 ev_buf_gui \$1 \$2;
+#X connect 21 0 26 0;
+#X connect 22 0 26 1;
+#X connect 26 0 16 0;
+#X connect 26 1 17 0;
+#X coords 0 -1 1 1 270 75 1 100 100;

+ 131 - 0
ev-main/ev_buf_dsp.pd

@@ -0,0 +1,131 @@
+#N canvas 100 66 1055 651 10;
+#X obj 590 276 gemframebuffer;
+#X obj 669 194 pack;
+#X obj 685 167 t b f;
+#X msg 669 217 dimen \$1 \$2;
+#X obj 590 549 scaleXYZ 1 1 1;
+#X obj 536 125 r /ev/buf/\$1/state;
+#X obj 627 356 r /ev/buf/\$1/shift/x;
+#X obj 664 377 r /ev/buf/\$1/shift/y;
+#X obj 701 401 r /ev/buf/\$1/shift/z;
+#X obj 669 122 r /ev/buf/\$1/dimen/x;
+#X obj 685 145 r /ev/buf/\$1/dimen/y;
+#X obj 671 303 s /ev/buf/\$1/texture_id;
+#X obj 100 10 cnv 15 850 16 empty empty EXTENDED_VIEW_FRAMEBUFFER 20
+8 0 14 -233017 -66577 0;
+#X obj 99 318 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X obj 99 381 cnv 15 360 90 empty empty inlets/outlets 5 12 0 12 -233017
+-66577 0;
+#X text 231 441 other content;
+#X text 102 334 1st: module ID;
+#N canvas 354 176 247 337 init 0;
+#X obj 11 13 loadbang;
+#X obj 11 37 list append \$1;
+#X msg 11 64 \; /ev/buf/\$1/color 0 0 0 0 \; /ev/buf/\$1/format RGBA
+\; /ev/buf/\$1/rectangle 1 \; /ev/buf/\$1/type BYTE \; /ev/buf/\$1/shift/x
+0 \; /ev/buf/\$1/shift/y 0 \; /ev/buf/\$1/shift/z 0 \; /ev/buf/\$1/scale/x
+1 \; /ev/buf/\$1/scale/y 1 \; /ev/buf/\$1/scale/z 1 \; /ev/buf/\$1/dimen/x
+1024 \; /ev/buf/\$1/dimen/y 1024 \; /ev/buf/\$1/state 1 \;;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X coords 0 337 1 336 85 60 0;
+#X restore 111 61 pd init;
+#X obj 996 98 r /ev/buf/\$1/type;
+#X obj 977 53 r /ev/buf/\$1/rectangle;
+#X obj 850 52 r /ev/buf/\$1/format;
+#X obj 1015 153 r /ev/buf/\$1/color;
+#X obj 788 222 list trim;
+#X obj 617 478 r /ev/buf/\$1/scale/x;
+#X obj 644 498 r /ev/buf/\$1/scale/y;
+#X text 682 591 outlet 1: gemlist outlet;
+#X text 895 568 outlet 2: texture id;
+#X obj 850 77 list prepend format;
+#X obj 977 76 list prepend rectangle;
+#X obj 996 123 list prepend type;
+#X obj 1015 175 list prepend color;
+#N canvas 30 236 656 422 storage_&_osc 0;
+#X obj 58 85 ds_reg \$2 /ev/buf/\$1/scale/x;
+#X obj 58 105 ds_reg \$2 /ev/buf/\$1/scale/y;
+#X obj 58 145 ds_reg \$2 /ev/buf/\$1/shift/x;
+#X obj 58 165 ds_reg \$2 /ev/buf/\$1/shift/y;
+#X obj 58 225 ds_reg \$2 /ev/buf/\$1/rectangle nomorph;
+#X obj 58 245 ds_reg \$2 /ev/buf/\$1/format nomorph;
+#X obj 58 205 ds_reg \$2 /ev/buf/\$1/type nomorph;
+#X obj 58 45 ds_reg \$2 /ev/buf/\$1/dimen/x nomorph;
+#X obj 58 65 ds_reg \$2 /ev/buf/\$1/dimen/y nomorph;
+#X obj 58 25 ds_reg \$2 /ev/buf/\$1/state nomorph;
+#X obj 58 125 ds_reg \$2 /ev/buf/\$1/scale/z;
+#X obj 58 185 ds_reg \$2 /ev/buf/\$1/shift/z;
+#X obj 358 25 osc_bi \$2 /ev/buf/\$1/state;
+#X obj 358 45 osc_bi \$2 /ev/buf/\$1/dimen/x;
+#X obj 358 65 osc_bi \$2 /ev/buf/\$1/dimen/y;
+#X obj 358 85 osc_bi \$2 /ev/buf/\$1/scale/x;
+#X obj 358 105 osc_bi \$2 /ev/buf/\$1/scale/y;
+#X obj 358 125 osc_bi \$2 /ev/buf/\$1/scale/z;
+#X obj 358 145 osc_bi \$2 /ev/buf/\$1/shift/x;
+#X obj 358 165 osc_bi \$2 /ev/buf/\$1/shift/y;
+#X obj 358 185 osc_bi \$2 /ev/buf/\$1/shift/z;
+#X obj 358 205 osc_bi \$2 /ev/buf/\$1/type;
+#X obj 358 225 osc_bi \$2 /ev/buf/\$1/rectangle;
+#X obj 358 245 osc_bi \$2 /ev/buf/\$1/format;
+#X obj 358 265 osc_bi \$2 /ev/buf/\$1/color;
+#X obj 58 265 ds_reg \$2 /ev/buf/\$1/color nomorph;
+#X restore 180 61 pd storage_&_osc;
+#X text 104 429 Outlet 1: gemlist \, to be connectet to input \, group
+or;
+#X text 104 455 Outlet 2: texture id of the framebuffer;
+#X obj 590 591 outlet gemlist;
+#X obj 894 596 outlet texture_id;
+#X text 104 413 Inlet 2: gemframebuffer settings (see gemframebuffer-help)
+;
+#X text 105 400 Inlet 1: gemlist to be connected to gemhead;
+#X obj 503 174 spigot;
+#X obj 492 60 cnv 15 200 40 empty empty inlets 1 8 0 12 -260097 -66577
+0;
+#X obj 503 78 inlet gemlist;
+#X obj 590 78 inlet settings;
+#X text 932 451 [gemframebuffer] viewpoint: 0/0/0 \; [gemwin] viewpoint:
+0/0/4;
+#X text 716 451 "-4" because of viewpoint mismatch:;
+#X text 102 346 2nd: storage domain;
+#X obj 671 518 r /ev/buf/\$1/scale/z;
+#X obj 701 423 - 4;
+#X obj 590 450 translateXYZ 0 0 -4;
+#X text 103 492 (c)2011 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X obj 590 100 s /ev/buf/\$1/settings;
+#X obj 590 245 r /ev/buf/\$1/settings;
+#X connect 0 0 47 0;
+#X connect 0 1 11 0;
+#X connect 0 1 35 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 2 1 1 1;
+#X connect 3 0 0 0;
+#X connect 4 0 34 0;
+#X connect 5 0 38 1;
+#X connect 6 0 47 1;
+#X connect 7 0 47 2;
+#X connect 8 0 46 0;
+#X connect 9 0 1 0;
+#X connect 10 0 2 0;
+#X connect 18 0 29 0;
+#X connect 19 0 28 0;
+#X connect 20 0 27 0;
+#X connect 21 0 30 0;
+#X connect 22 0 0 0;
+#X connect 23 0 4 1;
+#X connect 24 0 4 2;
+#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 38 0 0 0;
+#X connect 40 0 38 0;
+#X connect 41 0 49 0;
+#X connect 45 0 4 3;
+#X connect 46 0 47 3;
+#X connect 47 0 4 0;
+#X connect 50 0 0 0;
+#X coords 0 651 1 650 270 75 0;

+ 37 - 0
ev-main/ev_buf_gui.pd

@@ -0,0 +1,37 @@
+#N canvas 113 37 694 524 10;
+#X obj 101 101 cnv 15 268 54 empty empty empty 20 12 0 14 -228856 -66577
+0;
+#X obj 245 118 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/scale/x /ev/buf/\$1/scale/x
+x -8 8 0 10 -261682 -1 -1 1 256;
+#X obj 310 118 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/dimen/x /ev/buf/\$1/dimen/x
+x -8 8 0 10 -204800 -1 -1 1024 256;
+#X obj 310 136 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/dimen/y /ev/buf/\$1/dimen/y
+y -8 8 0 10 -204800 -1 -1 1024 256;
+#X obj 245 136 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/scale/y /ev/buf/\$1/scale/y
+y -8 8 0 10 -261682 -1 -1 1 256;
+#X obj 180 118 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/shift/x /ev/buf/\$1/shift/x
+x -8 8 0 10 -262130 -1 -1 0 256;
+#X obj 180 135 nbx 5 14 -1e+37 1e+37 0 0 /ev/buf/\$1/shift/y /ev/buf/\$1/shift/y
+y -8 8 0 10 -262130 -1 -1 0 256;
+#X obj 104 118 tgl 15 1 /ev/buf/\$1/state /ev/buf/\$1/state on/off
+17 7 0 10 -4034 -1 -1 1 1;
+#X text 178 102 shift;
+#X text 243 102 scale;
+#X text 308 101 dimen;
+#X obj 100 10 cnv 15 850 16 empty empty EXTENDED_VIEW_FRAMEBUFFER 20
+8 0 14 -233017 -66577 0;
+#X obj 99 318 cnv 15 360 60 empty empty creation_arguments: 5 12 0
+12 -162280 -1 0;
+#X text 102 334 1st: module ID;
+#X obj 102 200 cnv 15 200 100 empty empty gui_controls 5 8 0 12 -204800
+-66577 0;
+#X text 102 239 scale x/y: scales the buffers;
+#X text 168 228 content;
+#X text 102 217 shift x/y: translates the buffers;
+#X text 168 248 content;
+#X text 102 261 dimen x/y: dimension of the FB;
+#X text 102 273 on/off: toggles state;
+#X text 102 286 rotate: rotate content;
+#X text 149 428 (c)2011 Peter Venus & Marian Weger \; /part of EXTENDED
+VIEW toolkit/ gpl v3;
+#X coords 0 -1 1 1 270 56 2 100 100;

+ 30 - 0
ev-main/ev_declare-help.pd

@@ -0,0 +1,30 @@
+#N canvas 226 123 526 338 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl;
+#X declare;
+#X obj 9 -61 cnv 15 500 30 empty empty pathes_declaration_module 20
+12 0 14 -233017 -66577 0;
+#X text 315 -61 (C) Marian Weger & Peter Venus \; part of Extended
+View Toolkit;
+#X obj 9 65 cnv 15 360 70 empty empty Important_note: 20 12 0 14 -261234
+-258113 0;
+#X text 19 95 Important note: This abstraction only gets effective
+\, if the parent patch gets saved and PD got restarted!;
+#X obj 9 -15 cnv 15 360 70 empty empty Description 20 12 0 14 -228856
+-1 0;
+#X text 11 22 Place it in your main patch to get all the pathes loaded.
+;
+#X obj 389 21 cnv 15 100 60 empty empty empty 20 12 0 14 -204786 -66577
+0;
+#X obj 402 51 ev_declare;
+#X text 398 32 look inside!;
+#X obj 9 146 cnv 15 360 100 empty empty Add_additional_pathes 20 12
+0 14 -204800 -66577 0;
+#X text 26 176 Additional pathes and libraries can be added by an individual
+[declare] object:;
+#X obj 123 213 declare;
+#X text 175 214 (right-click to open help);
+#X coords 0 338 1 337 85 60 0;

+ 13 - 0
ev-main/ev_declare.pd

@@ -0,0 +1,13 @@
+#N canvas 40 311 416 198 10;
+#X declare -path . -path .. -path data -path ../data -path ev-in -path
+../ev-in -path ev-main -path ../ev-main -path ev-pano -path ../ev-pano
+-path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil -path
+libs/kollabs -path ../libs/kollabs -path media -path ../media -path
+ev-glsl -path ../ev-glsl -lib Gem;
+#X text 23 21 ev_declare;
+#X text 34 147 part of Extended View Toolkit;
+#X obj 23 52 declare -path . -path .. -path data -path ../data -path
+ev-in -path ../ev-in -path ev-main -path ../ev-main -path ev-pano -path
+../ev-pano -path ev-pro -path ../ev-pro -path libs/gil -path ../libs/gil
+-path libs/kollabs -path ../libs/kollabs -path media -path ../media
+-path ev-glsl -path ../ev-glsl -lib Gem;

+ 0 - 0
ev-main/ev_gemwin-help.pd


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است