<?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="svf~" module="msp" category="MSP Filters">
	<digest>
		State-variable filter with simultaneous outputs
	</digest>
	<description>
		The <o>svf~</o> object is an implementation of a state-variable filter algorithm described in Hal Chamberlin's book, &quot;Musical Applications of Microprocessors.&quot; A unique feature of this filter object is that it produces lowpass, highpass, bandpass, and bandreject (notch) output simultaneously - all four are available as outlets.
	</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="signal">
			<digest>
				(signal) Input
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="signal/float">
			<digest>
				(signal/float) Cutoff Frequency (Hz)
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="2" type="signal/float">
			<digest>
				(signal/float) Resonance (0-1)
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="signal">
			<digest>
				(signal) Low-pass Output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="signal">
			<digest>
				(signal) High-pass Output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="signal">
			<digest>
				(signal) Band-pass Output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="3" type="signal">
			<digest>
				(signal) Notch Output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="center-frequency" optional="1" units="hz" type="float">
			<digest>
				Center frequency for filter
			</digest>
			<description>
				Sets the initial center frequency for the filter. The default value is 0.
			</description>
		</objarg>
		<objarg name="Q" optional="1" type="float">
			<digest>
				Q for filter
			</digest>
			<description>
				Sets the initial Q value for the filter. The default value is 0.01.
			</description>
		</objarg>
		<objarg name="Hz" optional="1" type="symbol">
			<digest>
				Set Hz frequency input mode
			</digest>
			<description>
				Sets the frequency input mode to Hz (the default mode - hence this is the same as providing no mode argument).
			</description>
		</objarg>
		<objarg name="linear" optional="1" type="symbol">
			<digest>
				Set linear frequency input mode
			</digest>
			<description>
				Sets the frequency input mode to linear (0 -1).
			</description>
		</objarg>
		<objarg name="radians" optional="1" type="symbol">
			<digest>
				Set frequency input mode in radians
			</digest>
			<description>
				Sets the frequency input mode to radians (0 -1).
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="int">
			<arglist>
				<arg name="center-frequency/Q" optional="0" type="int" />
			</arglist>
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In middle and right inlets: Integer values are converted to floats and can be sent in the two right inlets to change the center frequency and Q of the filter. By default, the center frequency is expressed in Hz, where the allowable range is from 0 to one quarter of the current sampling rate. If a signal is connected to one of the inlets, a number received in that inlet is ignored. The values are sampled once every signal vector.
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="center-frequency/Q" optional="0" type="float" />
			</arglist>
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In middle and right inlets: A <m>float</m> can be sent in the two right inlets to change the center frequency and Q of the filter. By default, the center frequency is expressed in Hz, where the allowable range is from 0 to one quarter of the current sampling rate. For convenience, <o>svf~</o> has two additional input modes that use the more conventional input range, 0 - 1. (see the <m>linear</m> and <m>radians</m> messages). If a signal is connected to one of the inlets, a number received in that inlet is ignored. The values are sampled once every signal vector.
			</description>
		</method>
		<method name="Hz">
			<arglist />
			<digest>
				Set the frequency input mode to Hz
			</digest>
			<description>
				In either inlet: Sets the frequency input mode to Hz (the default).
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Clear the sample memory
			</digest>
			<description>
				Clears the object's sample-memory in case of a blow-up.
			</description>
		</method>
		<method name="linear">
			<arglist />
			<digest>
				Set the frequency input mode to linear
			</digest>
			<description>
				In any inlet: Sets the frequency input mode to linear (0 - 1). Linear mode is simply a scaled version of the standard Hz mode, except that values in the 0-1 range traverse the full frequency range.
			</description>
		</method>
		<method name="radians">
			<arglist />
			<digest>
				Set the frequency input mode to radians
			</digest>
			<description>
				In any inlet: Sets the frequency input mode to radians (0 - 1). Radians mode lets you set the center frequency directly -- while the input has the same range (0-1), the output has a curved frequency response that is closer to the exponential pitch scale of the human ear.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In left inlet: Signal to be filtered.
				<br />
				<br />
				In middle inlet: Sets the filter center frequency in Hz.
				<br />
				<br />
				In right inlet: Sets the bandpass filter &quot;Q&quot; - roughly, the sharpness of the filter - where Q is defined as the filter bandwidth divided by the center frequency. Useful Q values are typically between 0.01 and 500.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="svf~.png" caption="Four filter outputs are simultaneously available from the svf~ object" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="biquad~" />
		<seealso name="comb~" />
		<seealso name="cross~" />
		<seealso name="onepole~" />
		<seealso name="lores~" />
		<seealso name="reson~" />
		<seealso name="svf~" />
		<seealso name="audio_filtering" module="core" type="vignette" />
	</seealsolist>
	<misc name="Output">
		<entry name="signal">
			<description>
				The filtered input signal.
			</description>
		</entry>
	</misc>
</c74object>
