1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482
|
#N canvas 435 61 682 509 10;
#X declare -lib Gem;
#X text 433 9 GEM object;
#X obj 9 375 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577
0;
#X text 18 374 Arguments:;
#X obj 8 56 cnv 15 430 310 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 449 53 cnv 15 170 410 empty empty empty 20 12 0 14 -228992 -66577
0;
#X text 453 36 Example:;
#X obj 479 429 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
0;
#N canvas 0 0 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 484 468 pd gemwin;
#X msg 484 449 create;
#X text 480 428 Create window:;
#X obj 451 194 cnv 15 167 230 empty empty empty 20 12 0 14 -24198 -66577
0;
#X obj 451 59 gemhead;
#X obj 451 128 pix_film;
#X obj 515 128 t f;
#X obj 464 81 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#N canvas 0 0 450 300 open 0;
#X obj 85 49 inlet;
#X obj 85 237 outlet;
#X obj 85 145 openpanel;
#X msg 85 179 open \$1;
#X msg 259 213 auto 1;
#X obj 268 179 loadbang;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X restore 464 100 pd open;
#X text 485 74 open a supported;
#X text 486 85 movie-clip;
#X text 64 385 <none>;
#X text 50 12 Synopsis: [pix_record];
#X text 71 31 Class: pix object (output);
#X text 29 57 Description: write a sequence of pixes to a movie file
;
#X obj 451 403 pix_record;
#X obj 451 167 pix_draw;
#X obj 451 148 pix_invert;
#X text 18 104 You can choose the codec you want to use either via
a graphical dialog or by directly sending a "codec" with either the
name or the enumeration number of the codec. Use "codeclist" to query
the available codecs \, their names and their number.;
#X obj 470 343 cnv 15 145 25 empty empty empty 20 12 0 14 -225271 -66577
0;
#X msg 480 347 bang;
#X msg 552 347 auto \$1;
#X obj 533 348 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 470 199 cnv 15 145 65 empty empty empty 20 12 0 14 -225271 -66577
0;
#X msg 476 224 codeclist;
#X msg 472 203 dialog;
#X obj 472 244 t a;
#X obj 460 271 cnv 15 155 65 empty empty empty 20 12 0 14 -225271 -66577
0;
#X msg 463 292 file /tmp/mymovie.mov;
#X obj 464 273 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
-1;
#N canvas 0 0 450 300 savepanel 0;
#X obj 114 62 inlet;
#X obj 114 254 outlet;
#X obj 114 199 t b a;
#X obj 114 125 savepanel;
#X msg 114 162 set file \$1;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 2 1 1 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X restore 484 272 pd savepanel;
#X msg 520 315 record \$1;
#X obj 500 317 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 463 315 t a;
#X text 14 73 [pix_write] writes a series of pixes into a movie file.
You can set the file to write to via the "file" message.;
#X text 18 174 When file and codec are specified \, you can open the
writing connection with the message "record 1".;
#X text 18 202 To actually do record a frame into the file \, send
the object a "bang" message. If you want to record a consecutive number
of frames \, use the "auto" message. This allows you to have full control
on which frames are to be recorded.;
#X text 17 269 The recording is finished and the file flushed to disk
\, after a "record 0" message is received. You might not be able to
access the file for reading before recording has finished.;
#X text 526 150 (do something);
#X text 515 168 (monitoring);
#X text 22 339 NOTE: currently only quicktime MOVies can be recorded.
This might change in the future (watch the console!);
#X obj 8 414 cnv 15 430 30 empty empty empty 20 12 0 14 -233017 -66577
0;
#N canvas 6 49 459 361 MESSAGES 0;
#X obj 9 15 cnv 15 430 340 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 34 17 Inlets:;
#X text 34 293 Outlets:;
#X text 12 307 Outlet 1: gemlist;
#X text 18 31 Inlet 1: gemlist;
#X text 18 50 Inlet 1: file <filename>: specify the file for writing
;
#X text 18 62 Inlet 1: record <0|1>: start recording (no actual grabbing
is done!) or stop recording (flush movie to disk);
#X text 18 91 Inlet 1: bang: grab the next incoming pix.;
#X text 18 103 Inlet 1: auto <0|1>: start/stop grabbing all incoming
pixes;
#X text 12 321 Outlet 2: number of frames written;
#X text 12 335 Outlet 3: info on available codecs/properties;
#X text 18 148 Inlet 1: codeclist: enumerate a list of available codecs
to the outlet#3;
#X text 18 178 Inlet 1: codec <int>: select codec #<int> from the codec-list
(and enumerate codec-properties to outlet#3);
#X text 18 203 Inlet 1: codec <symbol>: select codec by short name
(and enumerate codec-properties to outlet#3);
#X text 18 233 Inlet 1: set <symbol> <float>: set a property named
<symbol> to the value <float>. properties are persistent across codec-changes.
properties unknown to the currently selected coded are ignored.;
#X text 18 123 Inlet 1: dialog: popup a dialog to select the codec
(if available);
#X restore 83 420 pd MESSAGES;
#X floatatom 527 405 3 0 0 0 - - -;
#X msg 532 244 codec mjpa;
#X msg 552 225 codec 3;
#N canvas 129 512 599 344 PROPERTIES 0;
#N canvas 607 622 561 319 PropertyLogic 0;
#X obj 54 6 inlet;
#X obj 293 70 r \$0-nfo;
#X obj 54 45 route codeclist codec;
#X obj 126 67 f;
#N canvas 82 113 577 363 codecs 0;
#X obj 54 222 i;
#X text 90 229 numcodecs;
#X obj 241 132 max;
#X obj 241 154 t f f;
#X obj 54 8 inlet bang;
#X obj 241 47 inlet info;
#X obj 241 69 route codec;
#X obj 241 91 unpack 0 s;
#X msg 154 76 0;
#N canvas 504 68 565 365 id2name 0;
#X obj 95 197 list prepend;
#X obj 95 176 t b f;
#X obj 95 219 list split;
#X obj 195 286 symbol;
#X msg 195 261 symbol \$1;
#X obj 95 91 route float;
#X obj 128 238 route bang;
#X obj 95 69 inlet ID;
#X obj 338 77 route reset;
#X obj 338 55 inlet name#N | reset;
#X obj 412 128 list prepend;
#X obj 412 150 t l l;
#X obj 195 308 outlet name;
#X obj 412 107 symbol;
#X obj 338 99 t b;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 2 1;
#X connect 2 1 6 0;
#X connect 3 0 12 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
#X connect 6 1 4 0;
#X connect 7 0 5 0;
#X connect 8 0 14 0;
#X connect 8 1 13 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 0 1;
#X connect 11 1 10 1;
#X connect 13 0 10 0;
#X connect 14 0 11 0;
#X restore 347 249 pd id2name;
#X obj 154 54 t b b;
#X msg 347 220 reset;
#X obj 77 76 s \$0-ctl;
#X msg 77 53 codeclist;
#X obj 54 30 t b b b;
#X obj 434 41 inlet query;
#X obj 434 63 t f;
#X obj 54 311 s \$0-numcodecs;
#X obj 347 292 s \$0-numcodecs;
#X msg 347 271 label \$1;
#X msg 146 113 label;
#X msg 54 292 set 0 \, number \$1;
#X connect 0 0 21 0;
#X connect 2 0 3 0;
#X connect 3 0 0 1;
#X connect 3 1 2 1;
#X connect 4 0 14 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 7 1 9 1;
#X connect 8 0 3 0;
#X connect 9 0 19 0;
#X connect 10 0 8 0;
#X connect 10 1 11 0;
#X connect 10 1 20 0;
#X connect 11 0 9 0;
#X connect 13 0 12 0;
#X connect 14 0 0 0;
#X connect 14 1 13 0;
#X connect 14 2 10 0;
#X connect 15 0 16 0;
#X connect 16 0 9 0;
#X connect 19 0 18 0;
#X connect 20 0 18 0;
#X connect 21 0 17 0;
#X restore 77 210 pd codecs;
#N canvas 1512 420 639 552 properties 0;
#X obj 283 56 inlet info;
#X obj 66 57 inlet codec;
#X msg 66 137 codec \$1;
#X obj 66 79 route float;
#X obj 66 159 s \$0-ctl;
#N canvas 506 60 565 365 id2name 0;
#X obj 95 197 list prepend;
#X obj 95 176 t b f;
#X obj 95 219 list split;
#X obj 195 286 symbol;
#X msg 195 261 symbol \$1;
#X obj 95 91 route float;
#X obj 128 238 route bang;
#X obj 95 69 inlet ID;
#X obj 338 77 route reset;
#X obj 338 55 inlet name#N | reset;
#X obj 412 128 list prepend;
#X obj 412 150 t l l;
#X obj 195 308 outlet name;
#X obj 412 107 symbol;
#X obj 338 99 t b;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 2 1;
#X connect 2 1 6 0;
#X connect 3 0 12 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
#X connect 6 1 4 0;
#X connect 7 0 5 0;
#X connect 8 0 14 0;
#X connect 8 1 13 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 0 1;
#X connect 11 1 10 1;
#X connect 13 0 10 0;
#X connect 14 0 11 0;
#X restore 347 249 pd id2name;
#X msg 347 200 reset;
#X msg 301 249 label;
#X obj 66 101 t b f b;
#X msg 347 271 label \$1;
#X obj 301 200 t b b;
#X obj 283 79 route numprops property;
#X obj 236 354 s \$0-numproperties;
#X msg 236 326 number \$1 \, set 0;
#X obj 283 100 t f;
#X obj 507 250 r \$0-selprop;
#X obj 507 277 route float;
#X obj 342 459 s \$0-makeprop;
#X msg 342 437 set set \$1 \, adddollar 1;
#X obj 507 299 t f f;
#N canvas 505 64 565 365 id2name 0;
#X obj 95 197 list prepend;
#X obj 95 176 t b f;
#X obj 95 219 list split;
#X obj 95 91 route float;
#X obj 128 238 route bang;
#X obj 95 69 inlet ID;
#X obj 338 77 route reset;
#X obj 338 55 inlet name#N | reset;
#X obj 412 128 list prepend;
#X obj 412 150 t l l;
#X obj 195 308 outlet name;
#X obj 412 107 symbol;
#X obj 338 99 t b;
#X obj 195 286 symbol;
#X msg 195 261 symbol \$1;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 2 1;
#X connect 2 1 4 0;
#X connect 3 0 1 0;
#X connect 4 1 14 0;
#X connect 5 0 3 0;
#X connect 6 0 12 0;
#X connect 6 1 11 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 0 1;
#X connect 9 1 8 1;
#X connect 11 0 8 0;
#X connect 12 0 9 0;
#X connect 13 0 10 0;
#X connect 14 0 13 0;
#X restore 427 249 pd id2name;
#X obj 347 222 t a a;
#X obj 397 126 list;
#X msg 397 181 symbol \$1(\$2:\$3);
#X obj 397 149 t l s;
#X connect 0 0 11 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 8 0;
#X connect 5 0 9 0;
#X connect 6 0 21 0;
#X connect 7 0 12 0;
#X connect 8 1 2 0;
#X connect 8 2 10 0;
#X connect 9 0 12 0;
#X connect 10 0 7 0;
#X connect 10 1 6 0;
#X connect 11 0 14 0;
#X connect 11 1 22 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 19 0;
#X connect 18 0 17 0;
#X connect 19 0 5 0;
#X connect 19 1 20 0;
#X connect 20 0 18 0;
#X connect 21 0 5 1;
#X connect 21 1 20 1;
#X connect 22 0 24 0;
#X connect 23 0 5 1;
#X connect 24 0 23 0;
#X connect 24 1 20 1;
#X restore 254 200 pd properties;
#X obj 126 95 t b f f b;
#X msg 186 116 2;
#X obj 293 92 list prepend 0;
#X msg 100 159 1;
#X obj 293 134 route 0 1 2;
#X obj 54 137 t b b b;
#X msg 54 159 0;
#X obj 100 181 t f;
#X msg 126 117 0;
#X obj 126 139 t f;
#X obj 293 156 s \$0-nfoprint;
#N canvas 4 49 450 300 reset 0;
#X obj 99 217 s \$0-numcodecs;
#X obj 99 195 t a a;
#X obj 219 217 s \$0-numproperties;
#X obj 99 28 inlet;
#X obj 99 50 t b b;
#X msg 99 173 number 0 \, label;
#X obj 270 180 s \$0-makeprop;
#X msg 270 154 set;
#X connect 1 0 0 0;
#X connect 1 1 2 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 1 7 0;
#X connect 5 0 1 0;
#X connect 7 0 6 0;
#X restore 174 266 pd reset;
#X msg 174 246 bang;
#X text 219 242 <-- clear for saving;
#X connect 0 0 2 0;
#X connect 1 0 8 0;
#X connect 2 0 11 0;
#X connect 2 1 3 0;
#X connect 3 0 6 0;
#X connect 6 0 14 0;
#X connect 6 1 5 0;
#X connect 6 2 4 2;
#X connect 6 3 7 0;
#X connect 7 0 15 0;
#X connect 8 0 10 0;
#X connect 9 0 13 0;
#X connect 10 0 16 0;
#X connect 10 1 4 1;
#X connect 10 2 5 1;
#X connect 11 0 12 0;
#X connect 11 1 4 0;
#X connect 11 2 9 0;
#X connect 12 0 13 0;
#X connect 13 0 8 1;
#X connect 14 0 15 0;
#X connect 15 0 8 1;
#X connect 18 0 17 0;
#X restore 68 269 pd PropertyLogic;
#X msg 68 25 codeclist;
#X text 142 25 INIT: query all available codecs;
#X text 86 51 select an available codec (and query available properties)
;
#X msg 96 245 set framerate \$1;
#X floatatom 96 227 3 0 100 0 - - -;
#X obj 82 71 cnv 15 100 60 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 87 80 hradio 15 1 0 1 empty \$0-numcodecs empty 0 -8 0 10 -262144
-1 -1 0;
#X msg 87 100 codec \$1;
#X obj 82 152 cnv 15 200 70 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 87 160 hradio 15 1 0 1 \$0-selprop \$0-numproperties empty 0
-8 0 10 -262144 -1 -1 0;
#X msg 87 202;
#X floatatom 87 182 0 0 0 0 - #0-propvalue -;
#X obj 297 185 r \$0-makeprop;
#X text 87 138 set a codec-property;
#X text 121 227 override the framerate (default: Gem's framerate);
#X connect 1 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 4 0;
#X connect 7 0 8 0;
#X connect 8 0 0 0;
#X connect 11 0 0 0;
#X connect 12 0 11 0;
#X connect 13 0 11 0;
#X restore 243 420 pd PROPERTIES;
#X obj 553 386 r \$0-ctl;
#X obj 621 261 s \$0-ctl;
#X obj 620 332 s \$0-ctl;
#N canvas 6 49 515 369 print 0;
#X obj 102 176 inlet;
#X obj 102 198 s \$0-nfo;
#X obj 102 220 r \$0-nfoprint;
#X obj 102 242 print INFO;
#X text 62 90 actually you can just hook a [print] to the 3rd outlet.
;
#X text 64 115 here it's a bit more complicated \, as we want to filter
out the messages generated from the [pd PROPERTIES] window.;
#X connect 0 0 1 0;
#X connect 2 0 3 0;
#X restore 553 403 pd print;
#X obj 518 8 declare -lib Gem;
#X connect 7 0 8 0;
#X connect 8 0 7 0;
#X connect 11 0 12 0;
#X connect 12 0 24 0;
#X connect 12 2 13 0;
#X connect 13 0 12 1;
#X connect 14 0 15 0;
#X connect 15 0 12 0;
#X connect 22 1 50 0;
#X connect 22 2 57 0;
#X connect 23 0 22 0;
#X connect 24 0 23 0;
#X connect 27 0 22 0;
#X connect 28 0 22 0;
#X connect 29 0 28 0;
#X connect 31 0 33 0;
#X connect 32 0 33 0;
#X connect 33 0 55 0;
#X connect 35 0 40 0;
#X connect 36 0 37 0;
#X connect 37 0 35 0;
#X connect 38 0 40 0;
#X connect 39 0 38 0;
#X connect 40 0 56 0;
#X connect 51 0 33 0;
#X connect 52 0 33 0;
#X connect 54 0 22 0;
|