<?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="fffb~" module="msp" category="MSP Filters">
	<digest>
		Fast fixed filter bank
	</digest>
	<description>
		The <o>fffb~</o> object implements a bank of bandpass filter objects, each of which is similar to the <o>reson~</o> filter object. An input signal is applied to all filters, and the outputs of each filter are available separately.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			MSP Filters
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				signal input, lists for setting parameters
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				signal input, lists for setting parameters
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				signal output from filter 0
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="number-of-filters" optional="0" type="int">
			<digest>
				Number of filters
			</digest>
			<description>
				The first argument specifies the number of filters.
			</description>
		</objarg>
		<objarg name="1st-filter-frequency" optional="1" type="float">
			<digest>
				Frequency of the first filter
			</digest>
			<description>
				Three additional float arguments may be used to specify the frequency of the first filter, the ratio of frequencies between successive filters, and the Q factor for all of the filters.
			</description>
		</objarg>
		<objarg name="filter-frequency-ratios (float)" optional="1" type="float">
			<digest>
				TEXT_HERE
			</digest>
			<description>
				Following the initial first filter frequency, a list is used to specify the ratio of frequencies between successive filters.
			</description>
		</objarg>
		<objarg name="Q" optional="1" type="list">
			<digest>
				Q factor for all filters
			</digest>
			<description>
				Following the initial first filter frequency and frequency ratio arguments, a third argument specifies the Q applied to all filters.
			</description>
		</objarg>
		<objarg name="harmonic-series-flag (H)" optional="1" type="symbol">
			<digest>
				Harmonic series flag
			</digest>
			<description>
				If you use the letter H as the second argument rather than a float, the filters will be tuned to a harmonic series rather using frequency ratios.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="list">
			<arglist>
				<arg name="filter-index and settings" optional="0" type="list" />
			</arglist>
			<digest>
				Set values for a specified filter
			</digest>
			<description>
				A filter index followed by just a frequency or a frequency and a Q setting will set the particular filter addressed by the index number to the settings which follow it.
			</description>
		</method>
		<method name="anything">
			<arglist>
				<arg name="filter-index and settings" optional="0" type="list" />
			</arglist>
			<digest>
				Set values for a specified filter
			</digest>
			<description>
				A filter index followed by just a frequency or a frequency and a Q setting will set the particular filter addressed by the index number to the settings which follow it.
			</description>
		</method>
		<method name="Q">
			<arglist>
				<arg name="bandwidths" optional="0" type="list" />
			</arglist>
			<digest>
				Set the Q values to be applied to each filter
			</digest>
			<description>
				In left inlet: The symbol <m>Q</m>, followed by a list consisting of an int and one or more floats, sets the Q factors of the filters, starting with the filter whose index is given by the first number. This filter's Q factor is set to the second number in the list. Any following numbers in the list set the Q factors of filters following the first designated one. Indices are zero-based.
			</description>
		</method>
		<method name="QAll">
			<arglist>
				<arg name="general-bandwidth" optional="0" type="float" />
			</arglist>
			<digest>
				Set the Q of all filters to a value
			</digest>
			<description>
				In left inlet: The word <m>QAll</m>, followed by a float, sets the Q of all of the filters to the given floating-point value.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Clear the memory of previous inputs/outputs
			</digest>
			<description>
				Clears the <o>fffb~</o> object's memory of previous inputs and outputs.
			</description>
		</method>
		<method name="freq">
			<arglist>
				<arg name="filter-frequencies" optional="0" type="list" />
			</arglist>
			<digest>
				Set the center frequency for each filter
			</digest>
			<description>
				In left inlet: The word <m>freq</m>, followed by a list consisting of an int and one or more floats, sets the center frequencies of the filters starting with the filter whose index is given by the first number. This filter's frequency is set to the second number in the list. Any following numbers in the list set the frequencies of filters following the first designated one. Indices are zero-based.
				<br />
				<br />
				For example, the message <m>freq 3 1974.0 333.0 1234.0</m> sets the frequency of the fourth filter to 1974Hz, the fifth filter to 333Hz, and the sixth filter to 1234Hz.
			</description>
		</method>
		<method name="gain">
			<arglist>
				<arg name="amplitudes" optional="0" type="list" />
			</arglist>
			<digest>
				Set the gain values to be applied to each filter
			</digest>
			<description>
				In left inlet: The word <m>gain</m>, followed by a list consisting of an int and one or more floats, sets the gains of the filters starting with the filter whose index is given by the first number. This filter's gain is set to the second number in the list. Any following numbers in the list set the gains of filters following the first designated one. Indices are zero-based.
			</description>
		</method>
		<method name="freqAll">
			<arglist>
				<arg name="general-center-frequency" optional="0" type="float" />
			</arglist>
			<digest>
				Set the center frequency of all filters to a value
			</digest>
			<description>
				in left inlet: The word <m>freqAll</m>, followed by a float, sets the center frequencies of all of the filters to the given floating-point value.
			</description>
		</method>
		<method name="freqRatio">
			<arglist>
				<arg name="frequency-ratios" optional="0" type="list" />
			</arglist>
			<digest>
				Set the center frequencies of filters as ratios
			</digest>
			<description>
				In left inlet: The word <m>freqRatio</m>, followed by a list of two or more numbers sets the center frequency of the first filter to the first value in the list, and sets the frequencies of the remaining filters by repeatedly multiplying the first value by the second, so that the ratio of frequencies of successive filters is the second value. For example, the message <m>freqRatio 440. 2.</m> sets the frequency of the first filter to 440Hz, the frequency of the second to 880Hz, the frequency of the third to 1760Hz, and so on.
				<br />
				<br />
				If the second item in the list is the letter <m>H</m> rather than a number, the filters will be tuned in a harmonic series. For example, the message <m>freqRatio 100 H</m> sets the frequencies of the filters to 100Hz, 200Hz, 300Hz, 400Hz, and so on.
			</description>
		</method>
		<method name="gainAll">
			<arglist>
				<arg name="general-amplitude" optional="0" type="float" />
			</arglist>
			<digest>
				Set the gain of all filters to a value
			</digest>
			<description>
				In left inlet: The word <m>gainAll</m>, followed by a float, sets the gain of all of the filters to the given floating-point value.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Input signal sent to all filters
			</digest>
			<description>
				The signal present at the left inlet is sent to all of the filters.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="fffb~.png" caption="Stereo expansion by altering the base frequency and frequency ratio" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="reson~" />
		<seealso name="audio_filtering" module="core" type="vignette" />
	</seealsolist>
	<discussion>
		This object is more efficient than using a number of <o>reson~</o> objects, but for the sake of speed does not accept signals for parameter changes.
	</discussion>
	<misc name="Output">
		<entry name="signal">
			<description>
				The output of each filter is provided at a separate outlet. The leftmost outlet is the output of the first filter.
			</description>
		</entry>
	</misc>
</c74object>
