Blend / Crossfade

We can blend two matrices together to form one matrix of blended data. This shows the simplest form of the jit.xfade object.
You can change the amount of much of each image with the number box. You will get unexpected results if the number goes below 0 or above 1. You can limit the number box with minimum 0 and maximum 1.
jittereffects01.jpg

Add an extra viewport for A track and B track
jittereffects02.jpg

Simple VJ package

Grab a horizontal slider, get info.., and set it to 2, 0, 100. Shape it smaller and put the text labels around it. This will make your main switch.
Put in the number box ‘Transition Time’ and give it a minimum of 0.
Connect these two to a ‘pack’ object, this packs the two numbers into a list.
Connect the pack object to a ‘line’ object. The line object slowly ramps from one number to the new number depending on the transition time in milliseconds.
Connect the line to a horizontal slider (100, 0, 1) for visual feedback.
This slider is outputting a number between 1 to 100, but the xfade object needs a float number between 0 and 1, so we multiply the output of the slider by 0.01.
Put in the prepend object, this adds the word xfade to the message.
Connect it to jit.xfade and test.

Set the transition time, try a number over 1000. Now flick the switch between A and B. It will take the transition time in milliseconds to fade between the video sources. You can also manually fade by moving the ‘Mixer’ slider bar.
jittereffects03.jpg
Advanced Crossfading

This patch does away with the jit.xfade object and replaces it with jit.op.
What the jit.xfade object does is takes both video sources and divides all the values in the matrix by a percentage of each, so when each video matrix is added together we get 100%, but from a mix of the two videos.
jit.op can do the same thing but requires more steps. This gives us more freedom, for example not using addition for mixing videos but other math functions.

Open the tutorial patch called ‘09jMoreMixing’ in UserApplications>JitterTutorialPatches.
Go to edit mode (unlock the patch). Select the ubumenu, this is the object under the word ‘Operator’. Copy and paste into your project. This saves some work in building an ubumenu. If you are curious, do a get info on the ubumenu.

Connect in the prepend object.

The A and B track still needs to add to 1 so on the B track we subtract the percent number from 1.
Add the ‘expr’ object with expr 1. – $f1

Connect the other objects, scale and jit.scalebias and connect them to the jit.op object.

Test it, play with the operator menu to see different results.

jittereffects04.jpg

Chromakey

Chromakeying is the method of masking out one colour, with a tolerance, and replacing it with other data/footage.

Load ‘10jChromakey’ from UserApplications>JitterTutorialPatches.
Unlock the patch, select all with A, Copy. Open your own project and Paste.
Please do not save over the original tutorial.

Expirement by loading in your own movies, or combine this project with other patches.
jittereffects05.jpg

Scissors

jit.scissors object can split a matrix into smaller pieces in a grid like fashion. Copy this patch using 9 jit.pwindow’s.

jittereffects06.jpg

and Glue

jit.glue can glue matracies together. They don’t have to be from a scissor split image but can come from many different sources.
jittereffects07.jpg

Rotation (and zoom)

jit.rota is a useful object. It can rotate and/or scale a matrix.

Copy this patch.

Anchor_x and anchor_y is the point where the video rotates from. If this is set to 0,0 then the video will rotate from the top left corner. If they are set at 50% width & height, eg 160,120, then the video will rotate from the centre.

Zoom_x and zoom_y will scale the video bigger or smaller. At a negative value the video will flip.

Offset_x and offset_y will move the video left, right, up and down.

Interp will attempt to smooth out any pixelization that can occur from rotating and scaling video.

Boundmode can be 1 of 5 different states, so you should set this number box to min 0 and max 4.
Scale your video down so that it is smaller than the display and try different bound modes to see what they do.

The rotation of jit.rota is calculated in radians, which is a different way of expressing angles. We want to rotate in a convention most of us understand, degrees. Here is the formula for converting degrees to radians.
copy and paste the line below.
expr ($f1/360.)*6.283185
jittereffects08.jpg

Fullscreen

fullscreen is a command that can be sent to a jit.window object.
This feature is not built into jit.pwindow so a seperate window must be used for displaying a matrix at fullscreen.

Once in fullscreen mode, we will need a way out of fullscreen mode as we will not be able to click on the patch. The key object takes keyboard input and select 32 recognises the space bar and sends on a bang message to the fullscreen toggle box.

We also want to hide the dock and menu bar in fullscreen mode as these are not done automatically.

The floating command is a ‘always on top’ type of feature, handy when working with external video windows.
jittereffects09.jpg

Other Effect Objects to research

jit.brosca
jit.plume
jit.repos
jit.sprinkle
jit.streak
jit.robcross
jit.brass
jit.sobel
jit.hatch
jit.qt.effect