<?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="fftin~" module="msp" category="MSP FFT">
	<digest>
		Input for a patcher loaded by pfft~
	</digest>
	<description>
		The <o>fftin~</o> object provides an signal input to a patcher loaded by a <o>pfft~</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>
				Dummy
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="signal">
			<digest>
				Dummy
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="signal">
			<digest>
				Real Input 1 to Patcher
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="signal">
			<digest>
				Imaginary Input 1 to Patcher
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="signal">
			<digest>
				FFT Bin Index
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="inlet-assignment" optional="0" type="int">
			<digest>
				Inlet number
			</digest>
			<description>
				Determines the inlet number of the <o>pfft~</o> which will be routed into the <o>fftin~</o> object. Inlet assignment starts at one, for the leftmost inlet in the <o>pfft~</o>. Multiple <o>fftin~</o> objects will typically have different inlet numbers.
			</description>
		</objarg>
		<objarg name="window-envelope-function" optional="1" type="symbol">
			<digest>
				Envelope function
			</digest>
			<description>
				Specifies the window envelope function the <o>fftin~</o> object will apply to overlapping FFTs on the input signal. The options are <m>square</m> (i.e. no window envelope), <m>hanning</m> (the default), <m>triangle</m>, <m>hamming</m> and <m>blackman</m> (Note: The Blackman window should be used with an overlap of 4 or more). If the symbol <m>nofft</m> is used, then the <o>fftin~</o> object will not use a windowing envelope and will not perform a Fast Fourier Transform -- it will echo the first half of its input sample window to its real output and the second half of its input sample window to its imaginary output. This can allow you to input raw control signals from outside the parent patcher through inlets in the <o>pfft~</o> object, provided its overlap is set to 2. Other overlap values may not yield useful results.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="signal">
			<arglist />
			<digest>
				Dummy inlet
			</digest>
			<description>
				Dummy inlet. The signal input for an <o>fftin~</o> object is an inlet in the <o>pfft~</o> subpatcher which contains the object.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="fftin~.png" caption="fftin~ outputs a frequency/domain signal pair and a sync signal that indicates the bin number" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="cartopol" />
		<seealso name="cartopol~" />
		<seealso name="fft~" />
		<seealso name="fftinfo~" />
		<seealso name="fftout~" />
		<seealso name="frameaccum~" />
		<seealso name="framedelta~" />
		<seealso name="ifft~" />
		<seealso name="in" />
		<seealso name="out" />
		<seealso name="pfft~" />
		<seealso name="poltocar" />
		<seealso name="poltocar~" />
		<seealso name="vectral~" />
		<seealso name="14_analysischapter04" module="msp" type="tutorial" />
	</seealsolist>
	<discussion>
		Where the <o>pfft~</o> object manages the windowing and overlap of the incoming signal, <o>fftin~</o> applies the windowing function (the envelope) and performs the Fast Fourier Transform.
	</discussion>
	<misc name="Output">
		<entry name="signal">
			<description>
				Out left outlet: This output contains the real-values resulting from the Fast Fourier transform performed on the corresponding inlet of the <o>pfft~</o>. This output frame is only half the size of the parent <o>pfft~</o> object's FFT size because the spectrum of a real input signal is symmetrical and therefore half of it is redundant. The real and imaginary pairs for one spectrum are called a spectral frame.
				<br />
				<br />
				Out middle outlet: This output contains the imaginary-values resulting from the Fast Fourier transform performed on the corresponding inlet of the <o>pfft~</o>. This output frame is only half the size of the parent <o>pfft~</o> object's FFT size because the spectrum of a real input signal is symmetrical and therefore half of it is redundant. The real and imaginary pairs for one spectrum are called a spectral frame.
				<br />
				<br />
				Out right outlet: A stream of samples corresponding to the index of the current bin whose data is being sent out the first two outlets. This is a number from 0 - (frame size - 1). The spectral frame size inside a <o>pfft~</o> object's subpatch is equal to half the FFT window size.
			</description>
		</entry>
	</misc>
</c74object>
