#N canvas 235 64 871 639 10; #X declare -lib Gem; #X text 671 9 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 561 33 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 0 22 450 300 gemwin 0; #X obj 132 136 gemwin; #X obj 67 89 outlet; #X obj 67 10 inlet; #X msg 67 70 set destroy; #X msg 132 112 create \, 1; #X msg 198 112 destroy; #X msg 156 71 set create; #X obj 67 41 route create; #X connect 2 0 7 0; #X connect 3 0 1 0; #X connect 4 0 0 0; #X connect 5 0 0 0; #X connect 6 0 1 0; #X connect 7 0 3 0; #X connect 7 0 4 0; #X connect 7 1 6 0; #X connect 7 1 5 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 : the number or file path to the input device; #X text 16 339 Inlet 1: dimen : 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 : switch between different drivers \, e.g. v4l \, ieee1394 \, etc.; #X text 16 276 Inlet 1: driver : 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 58 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 0; #X msg 642 312 driver dv; #N canvas 516 113 572 565 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 10 9 0 14 -203904 -66577 0; #N canvas 186 49 450 537 PropertyLogic 0; #N canvas 586 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 180 378 outlet readName; #X obj 310 356 outlet writeName; #X obj 95 176 t b f; #X obj 95 219 list split; #X obj 180 316 symbol; #X msg 180 291 symbol \$1; #X obj 225 197 list prepend; #X obj 225 176 t b f; #X obj 225 219 list split; #X obj 310 316 symbol; #X msg 310 291 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 obj 123 258 route bang; #X obj 253 258 route bang; #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 37 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 38 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 connect 37 1 22 0; #X connect 38 1 27 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 438 137 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 ; #X msg 196 74 symbol --; #X obj 353 181 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 11 1 17 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 connect 17 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 ; #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 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 bus_info; #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 " ; #X text 161 372 set a (writable) property via a message "set "; #X text 70 224 this will return 2 lists of readable and writable 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 396 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 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 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; #N canvas 697 49 586 667 backend 0; #X obj 104 122 bng 15 250 50 0 \$0-backendinfo \$0-backendinfo <--show_info_on_drivers 17 8 0 10 -262144 -1 -1; #N canvas 15 49 450 300 \$0-backendinfo 0; #X restore 184 207 pd \$0-backendinfo; #X obj 184 240 r \$0-backendinfo; #X msg 223 331 clear; #X obj 223 351 s pd-\$0-backendinfo; #X obj 203 424 s \$0-ctl; #X msg 203 405 driver; #N canvas 4 49 685 300 fake 0; #X obj 178 5 inlet bang; #X msg 178 25 currentdriver v4l2 \, drivers 3 \, driver v4l2 analog \, driver v4l analog \, driver dc1394 iidc \, driver unicap analog \, driver vlc; #X obj 178 67 outlet; #X connect 0 0 1 0; #X connect 1 0 2 0; #X restore 265 414 pd fake; #X obj 265 434 s \$0-info; #N canvas 14 49 450 300 content 0; #X obj 123 124 route driver drivers currentdriver; #N canvas 509 196 644 372 numdrivers 0; #X obj 119 11 inlet; #X obj 119 316 outlet; #X obj 119 81 f; #X obj 277 69 inlet reset; #X msg 277 89 0; #X obj 119 298 list prepend text 50; #X msg 119 154 50 On this system you have \$1 drivers available; #X obj 119 101 t f f; #X obj 146 201 select 0; #X obj 119 31 route bang float; #X msg 191 223 90 Click on any of the patches below for information about a specific driver:; #X connect 0 0 9 0; #X connect 2 0 7 0; #X connect 3 0 4 0; #X connect 4 0 2 1; #X connect 5 0 1 0; #X connect 6 0 5 0; #X connect 7 0 6 0; #X connect 7 1 8 0; #X connect 8 1 10 0; #X connect 9 0 2 0; #X connect 9 1 2 1; #X connect 10 0 5 0; #X restore 190 179 pd numdrivers; #N canvas 12 49 638 300 currentdriver 0; #X obj 119 31 inlet; #X obj 119 186 outlet; #X obj 119 82 symbol ; #X obj 325 33 inlet reset; #X obj 325 53 symbol ; #X obj 119 102 select ; #X obj 119 164 list prepend text 50 65; #X obj 119 51 route bang; #X obj 202 54 symbol; #X msg 224 124 You are currently using the '\$1' driver; #X msg 119 144 Currently you are not using any specific driver...; #X connect 0 0 7 0; #X connect 2 0 5 0; #X connect 3 0 4 0; #X connect 4 0 2 1; #X connect 5 0 10 0; #X connect 5 1 9 0; #X connect 6 0 1 0; #X connect 7 0 2 0; #X connect 7 1 8 0; #X connect 8 0 2 1; #X connect 9 0 6 0; #X connect 10 0 6 0; #X restore 280 179 pd currentdriver; #N canvas 12 49 456 510 listdrivers 0; #X obj 149 61 inlet; #X obj 149 276 outlet; #X obj 241 61 inlet reset; #X obj 149 81 list split 1; #X obj 149 101 symbol unknown; #X obj 241 101 symbol unknown; #X obj 149 121 t b s; #X obj 149 141 i; #X obj 149 161 + 20; #X obj 149 181 t f f; #X msg 149 221 \$1 \$2-videoplugin \$3; #X msg 194 122 100; #X obj 149 253 list prepend obj 60; #X msg 291 143 0; #X obj 291 163 makefilename $%d; #X obj 149 201 pack 0 s s; #X obj 241 81 t b b b; #X connect 0 0 3 0; #X connect 2 0 16 0; #X connect 3 0 4 0; #X connect 4 0 6 0; #X connect 5 0 4 1; #X connect 6 0 7 0; #X connect 6 1 15 1; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 9 0 15 0; #X connect 9 1 7 1; #X connect 10 0 12 0; #X connect 11 0 7 1; #X connect 12 0 1 0; #X connect 13 0 14 0; #X connect 14 0 15 2; #X connect 15 0 10 0; #X connect 16 0 5 0; #X connect 16 1 11 0; #X connect 16 2 13 0; #X restore 123 149 pd listdrivers; #X obj 123 94 r \$0-info; #X obj 190 211 t a; #X obj 337 125 t b b b; #X obj 337 59 inlet reset; #X obj 190 251 s pd-\$0-backendinfo; #X obj 190 231 list trim; #X obj 140 25 inlet finalize; #X connect 0 0 3 0; #X connect 0 1 1 0; #X connect 0 2 2 0; #X connect 1 0 5 0; #X connect 2 0 5 0; #X connect 3 0 5 0; #X connect 4 0 0 0; #X connect 5 0 9 0; #X connect 6 0 3 1; #X connect 6 1 1 1; #X connect 6 2 2 1; #X connect 7 0 6 0; #X connect 9 0 8 0; #X connect 10 0 2 0; #X connect 10 0 1 0; #X restore 351 305 pd content; #X obj 203 375 t b; #X msg 265 388 bang; #X obj 184 280 t b b; #X obj 223 280 t b b; #X obj 184 260 t b b b; #X msg 184 311 loadbang \, vis 1; #X connect 2 0 14 0; #X connect 3 0 4 0; #X connect 6 0 5 0; #X connect 7 0 8 0; #X connect 10 0 6 0; #X connect 11 0 7 0; #X connect 12 0 15 0; #X connect 12 1 9 0; #X connect 13 0 3 0; #X connect 13 1 9 1; #X connect 14 0 12 0; #X connect 14 1 10 0; #X connect 14 2 13 0; #X connect 15 0 4 0; #X coords 0 -1 1 1 170 40 1 100 100; #X restore 156 103 pd backend specific information; #X obj 738 8 declare -lib Gem; #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;