Video mixer

Apr 3, 2006 at 3:45pm

Video mixer

Does anyone know of a FREE jitter object or abstraction for OS X AND
Windows XP that comes close to Kurt Ralske’s au.mix? The mixer in
09jMoreMixing has 10 modes while au.mix has 46!

Any help is greatly appreciated,

Georg

#25215
Apr 3, 2006 at 4:08pm

Not offhand, but it would be extremely simple to modify the
jit.alphablend SDK example and do a DIY thing. All you’d have to do
is change the inner for loops where the pixels from the 2 images
combine to me dependant on a mode message which is already an
attribute of jit.alphablend. Then, it’s just a matter of doing a
switch statement on the mode value.

best,
wes

#74017
Apr 3, 2006 at 7:37pm

thats why the Auvi plugins cost money. I suggest the jit.op method of
mixing, then you can use any operator as the mixing mode…its quite
nice…

I cant remember which example it is, but its in there…once you
extrapolate the info, you can soup it up for more options.

Computo

#74018
Apr 3, 2006 at 10:04pm

#74019
Apr 3, 2006 at 10:16pm

I might also recommend the jit.gl.slab based compositing operators
which provide the photoshop style blend modes, working with GPU
acceleration. The source for all files is provided and should
demonstrate the formulas that could be used with jit.op if you need
to apply them on the CPU.

See jit.gl.slab-composite.pat for an example.

-Joshua

#74020
Apr 3, 2006 at 11:48pm

Moving this thread to the Jitter forum/list…

w

#74021
Apr 4, 2006 at 7:28am

Hi Joshua,

Let me see whether I understood you correctly and use the main loop
for co.negate.jxs as an example.

vec4 one = vec4(1.0);

vec4 a = texture2DRect(tex0, texcoord0);
vec4 b = texture2DRect(tex1, texcoord1);

vec4 output = one – abs(one – a – b);

Obviously, vec4 one represents the output of the calculation. Now, I
looked at jit.op and jit.expr. Would it be possible to create the
required feedback without “physically” drawing a patch chord from the
output back into the input?

Georg

#74022
Apr 4, 2006 at 8:01am

You can do feedback on the GPU using jit.gl.slab which is really
nifty. You can also do it in software using op for instance. Here’s
an example.

best,
wes

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 27 248 27 196617 t b l;
#P message 151 163 33 196617 clear;
#P newex 59 433 97 196617 jit.matrix feedback;
#P newex 59 410 41 196617 jit.thin;
#P number 146 278 35 9 0 9 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 27 350 82 196617 jit.matrix delay;
#P newex 129 296 27 196617 – 0;
#P newex 129 337 34 196617 % 10;
#P newex 129 316 31 196617 + 10;
#P message 129 359 207 196617 srcdimstart 0 0 $1 , srcdimend 319 239 $1;
#P newex 27 380 204 196617 jit.matrix 4 char 320 240 1 @usesrcdim 1;
#N vpatcher 20 74 604 361;
#P window setfont “Sans Serif” 9.;
#P comment 399 87 55 196617 buffer size;
#B color 1;
#P comment 268 125 30 196617 dims;
#B color 1;
#P comment 409 212 30 196617 sync;
#B color 1;
#N comlet sync;
#P outlet 391 211 15 0;
#P newex 455 104 27 196617 – 1;
#P message 455 86 20 196617 10;
#P newex 296 62 45 196617 loadbang;
#P newex 333 142 27 196617 – 1;
#P message 333 124 26 196617 240;
#P message 296 124 26 196617 320;
#P newex 296 142 27 196617 – 1;
#P newex 259 167 123 196617 pak dstdimend 319 239 0;
#P newex 151 167 105 196617 pak dstdimstart 0 0 0;
#P newex 120 99 27 196617 t b l;
#N comlet video in;
#P inlet 120 80 15 0;
#N counter 0 0 20;
#X flags 0 0;
#P newobj 391 124 75 196617 counter 0 0 20;
#P newex 137 192 236 196617 jit.matrix delay 4 char 320 240 10 @usedstdim 1;
#P connect 2 0 3 0;
#P fasten 4 0 0 0 156 188 142 188;
#P fasten 5 0 0 0 264 188 142 188;
#P connect 3 1 0 0;
#P fasten 1 0 4 3 396 163 249 163;
#P connect 10 0 7 0;
#P connect 7 0 6 0;
#P connect 6 0 5 1;
#P fasten 10 0 8 0 301 116 338 116;
#P connect 8 0 9 0;
#P connect 9 0 5 2;
#P fasten 1 0 5 3 396 163 375 163;
#P fasten 3 0 1 0 125 120 396 120;
#P connect 1 0 13 0;
#P fasten 10 0 11 0 301 82 460 82;
#P connect 11 0 12 0;
#P connect 12 0 1 4;
#P pop;
#P newobj 44 276 53 196617 p delay3d;
#P button 40 185 15 0;
#P newex 80 202 97 196617 jit.matrix feedback;
#P user jit.pwindow 26 476 322 242 0 1 0 0 1 0;
#P newex 27 223 63 196617 jit.op @op -;
#P newex 27 160 103 196617 jit.op @op !- @val 1.;
#P flonum 226 61 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 226 82 42 196617 rate $1;
#P message 90 82 28 196617 read;
#P message 160 82 27 196617 stop;
#P message 126 82 31 196617 start;
#P flonum 69 61 35 9 0.5 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 27 61 15 0;
#P newex 27 81 52 196617 metro 30;
#P message 190 82 31 196617 clear;
#P newex 27 108 139 196617 jit.qt.movie 320 240 @vol 0;
#P connect 3 0 2 0;
#P fasten 8 0 0 0 231 103 32 103;
#P fasten 7 0 0 0 95 103 32 103;
#P fasten 6 0 0 0 165 103 32 103;
#P fasten 5 0 0 0 131 103 32 103;
#P fasten 1 0 0 0 195 103 32 103;
#P fasten 2 0 0 0 32 106 32 106;
#P connect 0 0 10 0;
#P connect 10 0 11 0;
#P connect 11 0 26 0;
#P connect 26 0 21 0;
#P connect 21 0 16 0;
#P connect 17 0 16 0;
#P connect 16 0 12 0;
#P connect 10 0 14 0;
#P connect 26 1 15 0;
#P connect 16 0 23 0;
#P connect 23 0 24 0;
#P connect 4 0 2 1;
#P connect 25 0 13 0;
#P connect 14 0 13 0;
#P connect 13 0 11 1;
#P connect 15 0 20 0;
#P connect 20 0 18 0;
#P connect 18 0 19 0;
#P connect 19 0 17 0;
#P connect 22 0 20 1;
#P connect 9 0 8 0;
#P window clipboard copycount 27;

#74023
Apr 4, 2006 at 8:02am

PS don’t use LSD and the previous patch together.

wes

#74024
Apr 4, 2006 at 8:38am

I can’t seem to open some of the patches pasted on this list…(they
open as text and never as patch)
I believe they might be from windows users? All the ones I can’t
open, don’t start with ‘max v2;’
If I manually ad that line in the beginning they do open as a patch,
but a the max window spews a nr. of ‘#p: no such object’ errors and
the patches don’t
do what they’re supposed to do or crash max completely…
any tips ?

b

#74025
Apr 4, 2006 at 8:58am

Hi Joshua,

Let me see whether I understood you correctly and use the main loop
for co.negate.jxs as an example.

vec4 one = vec4(1.0);

vec4 a = texture2DRect(tex0, texcoord0);
vec4 b = texture2DRect(tex1, texcoord1);

vec4 output = one – abs(one – a – b);

Obviously, vec4 one represents the output of the calculation. Now, I
looked at jit.op and jit.expr. Would it be possible to create the
required feedback without “physically” drawing a patch chord from the
output back into the input?

Georg

#74026
Apr 4, 2006 at 9:14am

On 4-Apr-2006, at 10:38, Brecht Debackere wrote:

> All the ones I can’t open, don’t start with ‘max v2;’

> any tips ?

Use “New from Clipboard”.

You will also find some other interesting “betcha didn’t know” stuff
by reading What’s New in Max 4.5.5.

————– http://www.bek.no/~pcastine/Litter/ ————-
Peter Castine +–> Litter Power & Litter Bundle for Jitter

iCE: Sequencing, Recording & |home | chez nous|
Interface Building for |bei uns | i nostri|
Max/MSP Extremely cool http://www.castine.de

http://www.dspaudio.com/

#74027
Apr 4, 2006 at 9:23am

since max 4.5 there is a “New from clipboard’ menu item under ‘file’
and that works fine in these cases. I also don’t quite understand why
the manual cut/paste method stopped working at some point in time, but
since upgrading to 4.5 I don’t worry about it anymore..

ciao,

Joost.

——————————————-

Joost Rekveld
———– http://www.lumen.nu/rekveld

——————————————-

“The mystery of the world is the visible, not the invisible”
(Oscar Wilde)

——————————————-

#74028
Apr 4, 2006 at 9:23am

Aaaah! Thanks… I new I shouldn’t ‘ve jumped straight to the part on
prototypes :)

#74029
Apr 4, 2006 at 11:40am

Pretty cool, thanks.

Georg

#74030
Apr 4, 2006 at 5:25pm

Massive Max secret: Cycling ’74 documents with titles like
“Getting Started With….” or “What’s New In….” often and
intentionally contain real and useful information. The clever
person may notice that the Installation information [which is,
in many cases, all that is in documents with those titles]
lives somewhere else.

#74031
Apr 4, 2006 at 5:31pm

On Apr 4, 2006, at 1:58 AM, Georg Hajdu wrote:

> Let me see whether I understood you correctly and use the main loop
> for co.negate.jxs as an example.
>
> vec4 one = vec4(1.0);
>
> vec4 a = texture2DRect(tex0, texcoord0);
> vec4 b = texture2DRect(tex1, texcoord1);
>
> vec4 output = one – abs(one – a – b);
>
> Obviously, vec4 one represents the output of the calculation. Now,
> I looked at jit.op and jit.expr. Would it be possible to create
> the required feedback without “physically” drawing a patch chord
> from the output back into the input?

No. There is no feedback. vec4 converts the scalar 1.0 to the RGBA
vector (1.0 1.0 1.0 1.0). There is no “history” maintained within any
shader. Any shader feedback must be accomplished by caching in an
externals texture and passing in additional input, though note that
such feedback is unnecessary in this case. Please see OpenGL Orange
Book and/or online tutorials in GLSL for more info.

Below is the negate operator ,1.0 – abs(1.0-a-b), as demonstrated
with jit.op. Creative use of charmap can also prove useful for
improving efficiency of these blend mode calculations. see the
jit.charmap math subpatcher for a demonstration of the use of uzi-
>expr to generate appropriate lookup tables for char input 0-255.

-Joshua

#P window setfont “Sans Serif” 18.;
#P window linecount 2;
#P comment 43 145 147 196626 blend mode: negate;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P newex 440 141 109 196617 jit.op @op !- @val 1.;
#P newex 206 149 64 196617 jit.op @op ~;
#P window linecount 4;
#P comment 318 132 110 196617 bitwise inverse for char is equivalent
to -> (1.0 – left input) , but faster;
#P window linecount 2;
#P comment 318 189 110 196617 absdiff is equivalent to abs(left-right);
#P window linecount 1;
#P newex 441 241 109 196617 jit.op @op !- @val 1.;
#P newex 206 240 64 196617 jit.op @op ~;
#P user jit.pwindow 205 277 322 242 0 1 0 0 1 0;
#P user jit.fpsgui 206 537 60 196617 0;
#P toggle 206 35 15 0;
#P message 383 69 83 196617 read dishes.mov;
#P message 292 68 80 196617 read dozer.mov;
#P newex 206 60 57 196617 qmetro 10;
#P newex 285 104 63 196617 jit.qt.movie;
#P newex 206 102 63 196617 jit.qt.movie;
#P newex 206 191 89 196617 jit.op @op absdiff;
#P window linecount 4;
#P comment 317 224 110 196617 bitwise inverse for char is equivalent
to -> (1.0 – left input) , but faster;
#P window setfont “Sans Serif” 18.;
#P window linecount 1;
#P comment 44 205 165 196626 1. – abs(1.0-a-b);
#P user panel 38 133 267 133;
#X brgb 191 191 191;
#X frgb 0 0 0;
#X border 1;
#X rounded 0;
#X shadow 0;
#X done;
#P connect 9 0 6 0;
#P connect 6 0 4 0;
#P connect 7 0 4 0;
#P connect 4 0 16 0;
#P connect 16 0 3 0;
#P connect 3 0 12 0;
#P connect 12 0 11 0;
#P connect 11 0 10 0;
#P connect 6 0 5 0;
#P connect 8 0 5 0;
#P connect 5 0 3 1;
#P window clipboard copycount 19;

#74032
Apr 4, 2006 at 6:56pm

#74033
Apr 4, 2006 at 8:55pm

Interesting… interesting… I’m learning…Personally I’m more of a
mummy returns kind of guy (or any title with the rock or vin diesel)
but yes… matrix reloaded was a sublime example of what I’m
ultimately trying to accomplish using jitter…
I do believe that it is possible to do things with images nowadays
right ? I’ve read something like that on VJs-r-us.com that you can
like play clips and stuff with find-edges and emboss…

cheers big ears.

#74034
Apr 6, 2006 at 4:55am

VJs-r-us.com is still unregistered, ladies and gentlemen….. :D


***
http://danwinckler.com
http://share.dj

http://gunshowimprov.com

#74035

You must be logged in to reply to this topic.