<?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="mc.vectral~" module="msp" category="MSP FFT, Multichannel">
	<digest>
		Vector-based envelope follower  (multichannel)
	</digest>
	<description>
		Use the <o>vectral~</o> object to filter frame-based signal data such as the output of the <o>fft~</o> object.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			MSP FFT
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="signal">
			<digest>
				(signal) Output Index
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="signal">
			<digest>
				(signal) Input Index
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="2" type="signal">
			<digest>
				(signal) Input Value
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="signal">
			<digest>
				(signal) Output Value
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="vector-size" optional="1" type="int">
			<digest>
				Vector size
			</digest>
			<description>
				The argument is the vector size for the operation. It defaults to 512, but should be set appropriately for the size of the vectors you feed into the <o>vectral~</o> object.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="clear">
			<arglist />
			<digest>
				Clear the sample memory
			</digest>
			<description>
				Clears object's sample memory (in case of a blow-up).
			</description>
		</method>
		<method name="deltaclip">
			<arglist>
				<arg name="low-limit" optional="0" type="float" />
				<arg name="high-limit" optional="0" type="float" />
			</arglist>
			<digest>
				Limit the change in bins of successive vectors to a value range
			</digest>
			<description>
				In left inlet: The word <m>deltaclip</m>, followed by two floats, limits the change in bins of successive vectors to the values given. This is equivalent to the time-domain <o>deltaclip~</o> object.
			</description>
		</method>
		<method name="rampsmooth">
			<arglist>
				<arg name="number-of-interpolating-frames" optional="0" type="list" />
			</arglist>
			<digest>
				Perform linear vector smoothing across successive frames
			</digest>
			<description>
				In left inlet: The word <m>rampsmooth</m>, followed by two ints, causes the vector to be smoothed in a linear fashion across successive frames. The arguments specify the number of frames to use to interpolate values in both directions. This is equivalent to the time-domain filtering done by the <o>rampsmooth~</o> object.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In left inlet: A sync signal for the index of the output vector. This is typically in the range of 0 to n-1 (where n is the size of the vector).
				<br />
				<br />
				In middle inlet: A sync signal received in the middle inlet is used to synchronize the input index of the vector being processed. The sync signal will typically be in the range 0 to n-1 (where n is the size of the vector). If the left and middle inlets are &quot;out-of-sync&quot;, the incoming vector's bins will shift by the difference between the two signals.
				<br />
				<br />
				In right inlet: Signal data to be filtered. This will usually be frequency-domain information such as the output of an <o>fft~</o> or <o>fftin~</o> object.
			</description>
		</method>
		<method name="size">
			<arglist>
				<arg name="vector-size" optional="0" type="int" />
			</arglist>
			<digest>
				Set the vector size for the operation
			</digest>
			<description>
				In left inlet: The word <m>size</m>, followed by a number, sets the vector size for the operation. The default is 512.
			</description>
		</method>
		<method name="slide">
			<arglist>
				<arg name="slide-denominator-coefficients (2 floats)" optional="0" type="list" />
			</arglist>
			<digest>
				Perform log vector interpolations across successive frames (like <o>slide~</o>)
			</digest>
			<description>
				In left inlet: The word <m>slide</m>, followed by two floats, causes <o>vectral~</o> to do logarithmic interpolation of successive vectors in a manner equivalent to the time-domain <o>slide~</o> object. The two arguments determine the denominator coefficient for the amount of the slide.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="vectral~.png" caption="vectral~ performs different types of smoothing between frames of vectored data (e.g., FFT signals)" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="cartopol" />
		<seealso name="cartopol~" />
		<seealso name="deltaclip~" />
		<seealso name="fft~" />
		<seealso name="fftin~" />
		<seealso name="fftinfo~" />
		<seealso name="fftout~" />
		<seealso name="frameaccum~" />
		<seealso name="framedelta~" />
		<seealso name="ifft~" />
		<seealso name="pfft~" />
		<seealso name="poltocar" />
		<seealso name="poltocar~" />
		<seealso name="rampsmooth~" />
		<seealso name="slide~" />
		<seealso name="14_analysischapter04" module="msp" type="tutorial" />
	</seealsolist>
	<discussion>
		It may operate in one of the following modes:
		<br />
		<m>rampsmooth &lt;up&gt; &lt;down&gt;</m>- linear ramp across up/down frames to the new value
		<br />
		<m>slide &lt;up&gt; &lt;down&gt;</m>- logarithmic movement to new value
		<br />
		<m>deltaclip &lt;max&gt; &lt;min&gt;</m>- limits the change in samples to be in the given range
	</discussion>
	<misc name="Output">
		<entry name="signal">
			<description>
				A smoothed version of the signal input into the right inlet, according to the parameters given to the <o>vectral~</o> object.
			</description>
		</entry>
	</misc>
	<mcwrapper>
		<mcwrappermethod name="applymessages" />
		<mcwrappermethod name="applynvalues" />
		<mcwrappermethod name="applyvalues" />
		<mcwrappermethod name="decide" />
		<mcwrappermethod name="deviate" />
		<mcwrappermethod name="ease.in_back" />
		<mcwrappermethod name="ease.in_bounce" />
		<mcwrappermethod name="ease.in_circular" />
		<mcwrappermethod name="ease.in_cubic" />
		<mcwrappermethod name="ease.in_elastic" />
		<mcwrappermethod name="ease.in_exponential" />
		<mcwrappermethod name="ease.in_out_back" />
		<mcwrappermethod name="ease.in_out_bounce" />
		<mcwrappermethod name="ease.in_out_circular" />
		<mcwrappermethod name="ease.in_out_cubic" />
		<mcwrappermethod name="ease.in_out_elastic" />
		<mcwrappermethod name="ease.in_out_exponential" />
		<mcwrappermethod name="ease.in_out_quadratic" />
		<mcwrappermethod name="ease.in_out_quartic" />
		<mcwrappermethod name="ease.in_out_quintic" />
		<mcwrappermethod name="ease.in_out_sine" />
		<mcwrappermethod name="ease.in_quadratic" />
		<mcwrappermethod name="ease.in_quartic" />
		<mcwrappermethod name="ease.in_quintic" />
		<mcwrappermethod name="ease.in_sine" />
		<mcwrappermethod name="ease.linear" />
		<mcwrappermethod name="ease.out_back" />
		<mcwrappermethod name="ease.out_bounce" />
		<mcwrappermethod name="ease.out_circular" />
		<mcwrappermethod name="ease.out_cubic" />
		<mcwrappermethod name="ease.out_elastic" />
		<mcwrappermethod name="ease.out_quadratic" />
		<mcwrappermethod name="ease.out_quartic" />
		<mcwrappermethod name="ease.out_quintic" />
		<mcwrappermethod name="ease.out_sine" />
		<mcwrappermethod name="exponential" />
		<mcwrappermethod name="generate" />
		<mcwrappermethod name="harmonic" />
		<mcwrappermethod name="increment" />
		<mcwrappermethod name="randomrange" />
		<mcwrappermethod name="replicatenvalues" />
		<mcwrappermethod name="replicatevalues" />
		<mcwrappermethod name="scaledexponential" />
		<mcwrappermethod name="setvalue" />
		<mcwrappermethod name="setvaluerange" />
		<mcwrappermethod name="smoothstep" />
		<mcwrappermethod name="spread" />
		<mcwrappermethod name="spreadexclusive" />
		<mcwrappermethod name="spreadincludefirst" />
		<mcwrappermethod name="spreadincludesecond" />
		<mcwrappermethod name="spreadinclusive" />
		<mcwrappermethod name="subharmonic" />
		<mcwrapperattr name="busymapname" />
		<mcwrapperattr name="bz" />
		<mcwrapperattr name="bzname" />
		<mcwrapperattr name="chans" />
		<mcwrapperattr name="fun" />
		<mcwrapperattr name="initialvalues" />
		<mcwrapperattr name="op" />
		<mcwrapperattr name="replicate" />
		<mcwrapperattr name="target" />
		<mcwrapperattr name="usebusymap" />
		<mcwrapperattr name="values" />
		<mcwrapperattr name="voiceprob" />
		<mcwrapperattr name="zero" />
	</mcwrapper>
</c74object>
