<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="jit.plur" module="jit" category="Jitter Special FX">
	<digest>
		Peace Love Unity Rave
	</digest>
	<description>
		<p>
			Use the <o>jit.plur</o> object to performs linear interpolation on incoming matrix frames. This object resamples an image and then interpolates back to the original size.
		</p>
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
		<metadata name="tag">
			Jitter Special FX
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="matrix">
			<digest>
				in
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="matrix">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="matrix">
			<digest>
				out
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="matrix">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--MOP-->
	<mop matrixinputcount="1" matrixoutputcount="1">
		<matrixoutput name="out" planelink="1" typelink="1" dimlink="1" minplanecount="1" maxplanecount="32" mindimcount="1" maxdimcount="32">
			<types>
				char long float32 float64
			</types>
		</matrixoutput>
	</mop>
	<!--MESSAGES-->
	<jittermethodlist>
		<jittermethod name="bang" />
		<jittermethod name="clear" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="importattrs" />
		<jittermethod name="outputmatrix" />
		<jittermethod name="summary" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="colormode" get="1" set="1" type="int" size="1">
			<digest>
				Color wrapping mode
			</digest>
			<description>
				Color wrapping mode (default = 0 (wrap))
				<br />
				0 = wrap: Values that exceed the limits are wrapped around to the opposite limit with a modulo operation. (256 wraps to 0, 257 wraps to 1, and -1 wraps to 255, -2 wraps to 254, etc.)
				<br />
				1 = clip: Values are limited not to exceed min or max. (E.g. numbers greater than 255 are set to 255, and numbers less than 0 are set to 0.)
				<br />
				2 = bounce: Values that exceed the limits are folded back in the opposite direction. (256 is folded back to 254, 257 is folded back to 253, and -1 is folded back to 1, -2 to 2, etc.)
				<br />
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Colormode" />
			</attributelist>
		</attribute>
		<attribute name="gang" get="1" set="1" type="int" size="1">
			<digest>
				Range value flag
			</digest>
			<description>
				Range value flag (default = 1) When the flag is set, the <at>x_range</at> and <at>y_range</at> values are used. Otherwise, the <at>x_step</at> and <at>y_step</at> values are used instead.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Gang" />
			</attributelist>
		</attribute>
		<attribute name="hi" get="1" set="1" type="float" size="1">
			<digest>
				Upper output range limit
			</digest>
			<description>
				The upper output range limit (default = 1.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Hi" />
			</attributelist>
		</attribute>
		<attribute name="lo" get="1" set="1" type="float" size="1">
			<digest>
				Lower output range limit
			</digest>
			<description>
				The lower output range limit (default = 0.)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Lo" />
			</attributelist>
		</attribute>
		<attribute name="mode" get="1" set="1" type="int" size="1">
			<digest>
				Interpolation mode
			</digest>
			<description>
				Interpolation mode (default = 0 (linear))
				<br />
				0 = linear interpolation
				<br />
				1 - 15 = interpolation variations (Try 'em and see!)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Mode" />
			</attributelist>
		</attribute>
		<attribute name="scale" get="1" set="1" type="int" size="1">
			<digest>
				Bit shift amount before output
			</digest>
			<description>
				The amount of bit shift before output (default = 8)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Scale" />
			</attributelist>
		</attribute>
		<attribute name="x_range" get="1" set="1" type="int" size="1">
			<digest>
				Horizontal distance between corner points used for interpolation
			</digest>
			<description>
				The horizontal distance between corner points used for interpolation (default = 2)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="X Range" />
			</attributelist>
		</attribute>
		<attribute name="x_step" get="1" set="1" type="int" size="1">
			<digest>
				Horizontal distance between resampled corner points
			</digest>
			<description>
				The horizontal distance between resampled corner points (default = 2)
				<br />
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="X Step" />
			</attributelist>
		</attribute>
		<attribute name="y_range" get="1" set="1" type="int" size="1">
			<digest>
				Vertical distance between corner points used for interpolation
			</digest>
			<description>
				The vertical distance between corner points used for interpolation (default = 2)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Y Range" />
			</attributelist>
		</attribute>
		<attribute name="y_step" get="1" set="1" type="int" size="1">
			<digest>
				Vertical distance between resampled corner points
			</digest>
			<description>
				The vertical distance between resampled corner points (default = 2)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Y Step" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="outputmode" />
		<jitterattribute name="adapt" />
		<jitterattribute name="out_name" />
		<jitterattribute name="type" />
		<jitterattribute name="dim" />
		<jitterattribute name="planecount" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.plur.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.ameba" />
	</seealsolist>
	<discussion>
		<p>
			The resampling process uses two different attributes along each axis of the matrix frame. The <at>_step</at> attributes determine how the frame is divided at output. For instance, with <at>x_step</at> set to 5, there will be a resampled rectangle every 5 cells along the horizontal axis. The <at>_range</at> attributes determine how that resampled rectangle is interpolated. If <at>x_range</at> is less than or greater than <at>x_step</at>, different corner points are used for the interpolation calculation, than are used in the resampling.
		</p>
		<p>
			When using other interpolation modes modes, the <o>jit.plur</o> object performs a wide variety of variations on theme.
		</p>
	</discussion>
</c74object>
