[PD] emulating early video synths - sync

Paris Treantafeles paris at parisgraphics.com
Thu May 4 23:36:01 CEST 2006


Hi,

Great pix!
They really capture the look of those early units!
I have just returned from a week residency at the Experimental  
Television Center where I worked with analog video units exclusively  
and so now improving on earlier pd experiments is really on my mind.

I don't have GridFlow on this machine, but when I get to my desktop  
machine, I will be checking out your patch for sure.

Thanks for sharing and for the tip,
p


On May 4, 2006, at 5:27 PM, Claude Heiland-Allen wrote:

> Hi Paris, all,
>
> I've been experimenting with audio->video in Gridflow, see attached  
> example patches, they're not brilliant but might give you some  
> ideas. [#import~] is currently a (slow!!) abstraction I made, but  
> maybe one day I'll learn enough C, C++, Ruby, and Gridflow  
> internals to be able to make it a zillion times faster...
>
>
> Here's some I made earlier:  </BluePeter>
>
> http://claudiusmaximus.goto10.org/index.php?page=gallery/digital/CM- 
> v-CM
>
> (Stills from a DVD I'm working on, from time to time, it may even  
> get finished one day...)  The corresponding audio is here:
>
> http://www.archive.org/details/ClaudiusMaximus_-_Soft_Rock_EP
>
> Working from pre-recorded audio meant I couldn't do anything easy  
> to "sync" the frames and stop the "rolling", but I happen to like  
> temporal aliasing a great deal - flickery trippiness is go!
>
>
> The right inlet of an [osc~] or [phasor~] sets the phase between 0  
> and 1, but only once (as you have found).  Here's a bonus tip:
>
>  |
> [mtof]
>  |
> [phasor~]
>  |\
>  | [*~ 1.5]  <<< vary this >= 1, maybe using an envelope
>  |  |
>  | [wrap~]
>  |  |
> [dac~]
>
> ...for that classic osc sync sound ;-)
>
>
>
> Paris Treantafeles wrote:
>> haha... i can't be the only one who has hit "send" then figured  
>> out  the problem.
>> basically i wasn't really resetting the oscillators since sending  
>> a  number to the right inlet of the oscillator wasn't enough.
>> once i added a metro and "banged" the input, the sync worked.
>> still... if there's anything that comes to mind regarding best  
>> block~  to use, please feel free to share.
>> best,
>> p
>> On May 4, 2006, at 11:48 AM, Paris Treantafeles wrote:
>>> Hello List,
>>>
>>> I've created a few patches with PD/GEM to emulate early video   
>>> synths such as the Sandin, etc. which I'm quite happy with.
>>> At the heart of these patches is pix_sig2pix~
>>> One thing I can't figure out though has to do with preventing  
>>> the  image from "rolling" - i.e. to stand still.
>>> The early video synths did this by having a "sync" input to   
>>> oscillators.
>>> So if you fed one oscillator a vertical sync (~60 Hz) you would  
>>> get  stationary vertical bars whose width would depend on the  
>>> main  frequency of the oscillator. Doing this with another  
>>> oscillator  receiving a horizontal sync (~1500 Hz) results in  
>>> horizontal bars.
>>> By mixing these and perhaps another (and adjusting the  
>>> attenuation  of these), various shapes appear.
>>> I can get all of this and more (e.g. add some filters for   
>>> subtractive synthesis) but what I'm missing is how to do the  
>>> sync  correctly.
>>> Trying various values as reset inputs to say "phasor~" doesn't do  
>>> it.
>>> I'm wondering if this is in fact related to blocksize~ instead.
>>> e.g. should the reset values of the oscillators be related in   
>>> someway to the value set in blocksize~
>>>
>>> Does anyone have any ideas about this?
>>>
>>> Thanks for any suggestions!
>>>
>>> Best,
>>> p
> #N canvas 599 365 451 375 10;
> #X obj 152 169 metro 1000;
> #X obj 154 150 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
> 1;
> #X floatatom 179 151 5 0 0 0 - - -;
> #X obj 12 316 #greyscale_to_rgb;
> #X obj 14 201 *~ 128;
> #X obj 13 222 +~ 128;
> #X obj 12 343 #out window;
> #X obj 14 172 osc~;
> #X floatatom 25 83 5 0 0 0 - - -;
> #X obj 127 43 bang~;
> #X msg 116 121 0;
> #X obj 12 296 #redim ( 256 256 1 );
> #X obj 116 67 f 0;
> #X obj 195 55 + 1;
> #X obj 116 95 select 0;
> #X obj 117 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
> -1;
> #X obj 14 148 lop~ 1;
> #X obj 129 150 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
> -1;
> #X obj 7 27 metro 1000;
> #X obj 5 6 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1;
> #X obj 152 192 t b b;
> #X obj 14 61 random 36;
> #X floatatom 75 4 5 0 0 0 - - -;
> #X text 139 24 <<< nudge this to adjust sync;
> #X text 225 149 <<< ms per frame;
> #X text 126 3 <<< automation;
> #X text 94 231 <<< scale and grab;
> #X text 165 291 <<< make an image out of one vectors;
> #X obj 195 79 mod 1024;
> #X obj 28 126 sig~;
> #X obj 13 245 clip~ 0 255;
> #X obj 13 266 #import~ 65536;
> #X obj 29 103 / 5;
> #X text 260 79 <<< import value/blocksize;
> #X connect 0 0 20 0;
> #X connect 1 0 0 0;
> #X connect 2 0 0 1;
> #X connect 3 0 6 0;
> #X connect 4 0 5 0;
> #X connect 5 0 30 0;
> #X connect 7 0 4 0;
> #X connect 8 0 32 0;
> #X connect 9 0 12 0;
> #X connect 10 0 7 1;
> #X connect 11 0 3 0;
> #X connect 12 0 13 0;
> #X connect 12 0 14 0;
> #X connect 13 0 28 0;
> #X connect 14 0 10 0;
> #X connect 15 0 12 0;
> #X connect 16 0 7 0;
> #X connect 17 0 20 0;
> #X connect 18 0 21 0;
> #X connect 19 0 18 0;
> #X connect 20 0 31 1;
> #X connect 21 0 8 0;
> #X connect 22 0 18 1;
> #X connect 28 0 12 1;
> #X connect 29 0 16 0;
> #X connect 30 0 31 0;
> #X connect 31 0 11 0;
> #X connect 32 0 29 0;
> #N canvas 428 155 463 521 10;
> #X obj 231 169 metro 1000;
> #X obj 233 150 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1
> 1;
> #X floatatom 258 151 5 0 0 0 - - -;
> #X obj 12 316 #greyscale_to_rgb;
> #X obj 14 201 *~ 128;
> #X obj 13 222 +~ 128;
> #X obj 118 202 *~ 128;
> #X obj 117 221 +~ 128;
> #X obj 13 468 #out window;
> #X msg 30 370 256 256 256;
> #X obj 30 391 # rand;
> #X obj 50 346 loadbang;
> #X obj 14 172 osc~;
> #X obj 117 174 osc~;
> #X floatatom 22 106 5 0 0 0 - - -;
> #X floatatom 128 107 5 0 0 0 - - -;
> #X obj 206 43 bang~;
> #X msg 195 121 0;
> #X obj 12 296 #redim ( 256 256 1 );
> #X obj 14 243 #import~ 256;
> #X obj 115 242 #import~ 256;
> #X obj 195 67 f 0;
> #X obj 274 55 + 1;
> #X obj 274 79 mod 4;
> #X obj 195 95 select 0;
> #X obj 196 25 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
> -1;
> #X obj 13 128 mtof~;
> #X obj 13 419 # ^;
> #X obj 12 276 #outer *>>8;
> #X obj 115 127 mtof~;
> #X obj 114 150 lop~ 1;
> #X obj 208 150 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
> -1;
> #X obj 13 83 + 60;
> #X obj 114 86 + 60;
> #X obj 7 27 metro 1000;
> #X obj 5 6 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1;
> #X obj 231 192 t b b;
> #X obj 14 61 random 36;
> #X obj 114 61 random 36;
> #X floatatom 75 4 5 0 0 0 - - -;
> #X text 218 24 <<< nudge this to adjust sync;
> #X text 304 149 <<< ms per frame;
> #X text 126 3 <<< automation;
> #X text 60 106 <<< f >>>;
> #X text 121 373 <<< false colour;
> #X text 228 225 <<< scale and grab;
> #X text 168 296 <<< make an image out of two vectors;
> #X obj 14 148 lop~ 25;
> #X connect 0 0 36 0;
> #X connect 1 0 0 0;
> #X connect 2 0 0 1;
> #X connect 3 0 27 0;
> #X connect 4 0 5 0;
> #X connect 5 0 19 0;
> #X connect 6 0 7 0;
> #X connect 7 0 20 0;
> #X connect 9 0 10 0;
> #X connect 10 0 27 1;
> #X connect 11 0 9 0;
> #X connect 12 0 4 0;
> #X connect 13 0 6 0;
> #X connect 14 0 26 0;
> #X connect 15 0 29 0;
> #X connect 16 0 21 0;
> #X connect 17 0 12 1;
> #X connect 17 0 13 1;
> #X connect 18 0 3 0;
> #X connect 19 0 28 0;
> #X connect 20 0 28 1;
> #X connect 21 0 22 0;
> #X connect 21 0 24 0;
> #X connect 22 0 23 0;
> #X connect 23 0 21 1;
> #X connect 24 0 17 0;
> #X connect 25 0 21 0;
> #X connect 26 0 47 0;
> #X connect 27 0 8 0;
> #X connect 28 0 18 0;
> #X connect 29 0 30 0;
> #X connect 30 0 13 0;
> #X connect 31 0 36 0;
> #X connect 32 0 14 0;
> #X connect 33 0 15 0;
> #X connect 34 0 9 0;
> #X connect 34 0 37 0;
> #X connect 34 0 38 0;
> #X connect 35 0 34 0;
> #X connect 36 0 19 1;
> #X connect 36 1 20 1;
> #X connect 37 0 32 0;
> #X connect 38 0 33 0;
> #X connect 39 0 34 1;
> #X connect 47 0 12 0;
> #N canvas 845 80 226 411 10;
> #X obj 127 49 metro 1000;
> #X obj 13 176 #outer *>>8;
> #X obj 129 30 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
> ;
> #X floatatom 192 27 5 0 0 0 - - -;
> #X obj 11 225 #greyscale_to_rgb;
> #X obj 13 101 *~ 128;
> #X obj 12 120 +~ 128;
> #X obj 106 100 *~ 128;
> #X obj 105 119 +~ 128;
> #X obj 12 374 #out window;
> #X obj 45 60 adc~;
> #X obj 127 75 t b b;
> #X msg 29 277 256 256 256;
> #X obj 29 298 # rand;
> #X obj 13 325 # ^;
> #X obj 12 202 #redim ( 256 256 1 );
> #X obj 13 141 #import~ 256;
> #X obj 103 141 #import~ 256;
> #X obj 92 33 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
> -1;
> #X obj 49 253 loadbang;
> #X connect 0 0 11 0;
> #X connect 1 0 15 0;
> #X connect 2 0 0 0;
> #X connect 3 0 0 1;
> #X connect 4 0 14 0;
> #X connect 5 0 6 0;
> #X connect 6 0 16 0;
> #X connect 7 0 8 0;
> #X connect 8 0 17 0;
> #X connect 10 0 5 0;
> #X connect 10 1 7 0;
> #X connect 11 0 16 1;
> #X connect 11 1 17 1;
> #X connect 12 0 13 0;
> #X connect 13 0 14 1;
> #X connect 14 0 9 0;
> #X connect 15 0 4 0;
> #X connect 16 0 1 0;
> #X connect 17 0 1 1;
> #X connect 18 0 12 0;
> #X connect 19 0 12 0;
> #N canvas 12 35 295 168 10;
> #X obj 153 122 outlet grid;
> #X obj 17 22 inlet~ signal;
> #X obj 17 42 tabsend~ \$0-block;
> #X obj 153 22 inlet;
> #X obj 153 42 t b;
> #X obj 153 82 tabread \$0-block;
> #X obj 17 62 table \$0-block \$1;
> #X obj 153 62 for 0 \$1 1;
> #X obj 153 102 #import ( \$1 );
> #X obj 17 122 block~ \$1 \$2 \$3;
> #X connect 1 0 2 0;
> #X connect 3 0 4 0;
> #X connect 4 0 7 0;
> #X connect 5 0 8 0;
> #X connect 7 0 5 0;
> #X connect 8 0 0 0;





More information about the Pd-list mailing list