# jit.matrix

## View image pixel by pixel

This example uses Jitter to reveal text pixel by pixel. The text is written into the jit.lcd and then revealed by increasing x value of the source and destination end positions sent out of the jit.matrix.

## Upsampling & downsampling video using Jitter

Techniques called upsampling and downsampling can be used to get a “mosaic-like effect.” This effect is achieved by reducing the resolution – via changing the frames-per-second and pixel size – as shown in the example.

This patch shows how to use a mask in the alpha channel to impose a non-rectangular image on top of another image. For this patch to work, you will need to download the mask file called "mask.png" (which was made using the patch in "Make an elliptical mask in Jitter").

Other Attachments:

## Import movie captures into jit.matrix to create a photo booth effect

How does one import multiple movie captures into a single matrix resembling a print from a photo booth? The trick is to use the dstdimstart and dstdimend attributes of jit.matrix. See Jitter Tutorial 14 – Matrix Positioning.

## Combine 2 Matrices

If you have a 3 plane matrix and a 4 plane matrix, and would like to combine these to create a 7 plane matrix, you would first unpack a multiple matrix into multiple single matrices using the jit.unpack object, and then combine again with the jit.pack object.

## Stretch 1D matrix to 2D matrix

This example shows how you can rotate the output of a jit.gradient object. jit.gradient makes a 1-D matrix. You can "stretch" that into a 2-D matrix with jit.matrix and then rotate it with a jit.rota object.

## Sync 2 jit.cellblocks

This example shows how to sync data between 2 jit.cellblocks, while being able to have different views/scrolling of the same data, by using either jit.matrix or a coll to store the data.

## Using Jitter to store numerical data

Storage of large quantities of numerical data is exactly what Jitter is for. You might commonly think of the data in Jitter matrices as representing pixels of a video image, but in fact you can use the jit.matrix object to store any large sets of (multi-dimensional arrays of) numbers, which can be used for any purpose.

## Resizing a matrix non-destructively

This example uses a 4-plane, 256×256 matrix for easy visualization, but it could be adapted to a 6-plane 1×1024 matrix.

## Copying one matrix to another

To set matrix “B” to have the contents of matrix “A”, you simply send “A” to “B”. (More specifically, you cause matrix “A” to send a jit_matrix message to matrix “B”.) The trick, though, is to suppress thruput on matrix “B” by setting its @thru attribute to 0 (it’s 1 by default), so that you can set and recall its contents independently.