<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<c74object name="fftz.cavoc27~">
	<digest>
		Cellular Automata-generated spectra
	</digest>
	<description>
Spectra are generated by an 27-rule cellular automaton.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Eric Lyon
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			FFTease
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" name="INLET_NAME">
			<digest>
				(signal) messages
			</digest>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" name="OUTLET_NAME">
			<digest>
				(signal) output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<!--MESSAGES-->
	<methodlist>
		<method name="capture_spectrum">
			<arglist>
				<arg name="flag" type="float" optional="0" id="0" />
			</arglist>
			<description>
				Sample input spectrum and use that as a tuning basis. Turned on when flag is non-zero.
			</description>
		</method>
		<method name="fftinfo">
			<description>
				Print FFT information to Max window.
			</description>
		</method>
		<method name="freeze">
			<arglist>
				<arg name="flag" type="float" optional="0" id="0" />
			</arglist>
			<description>
				Freezes input spectrum. Turned on when flag is non-zero.
			</description>
		</method>
		<method name="interpolate">
			<arglist>
				<arg name="flag" type="float" optional="0" id="0" />
			</arglist>
			<description>
				Interpolates bewteen successive spectra. Turned on when flag is non-zero.
			</description>
		</method>
		<method name="manual">
			<arglist>
				<arg name="flag" type="float" optional="0" id="0" />
			</arglist>
			<description>
				Non-zero argument turns on flag. Then each new spectrum must be triggered manually with a bang.
			</description>
		</method>
		<method name="mute">
			<arglist>
                <arg name="flag" type="float" optional="0" id="0" />
            </arglist>
			<description>
				Non-zero flag mutes the object.
			</description>
		</method>
		<method name="noalias">
			<arglist>
                <arg name="flag" type="float" optional="0" id="0" />
            </arglist>
			<description>
				Non-zero flag mutes the object.
			</description>
		</method>
		<method name="oscbank">
			<arglist>
                <arg name="flag" type="float" optional="0" id="0" />
            </arglist>
			<description>
				Non-zero flag switches to oscillator bank resynthesis.
			</description>
		</method>
		<method name="retune">
			<arglist>
				<arg name="minmult" type="float" optional="0" id="0" />
				<arg name="maxmult" type="float" optional="0" id="1" />
			</arglist>
			<description>
				Retunes the spectrum (oscillator bank resynthesis only).
			</description>
		</method>
		<method name="rule">
			<arglist>
                <arg name="rule" type="list" optional="0" id="0" />
            </arglist>
			<description>
				A list of 27 integers (each valued 0, 1, or 2) defines the CA rule.
			</description>
		</method>

		<method name="tranpose">
			<arglist>
				<arg name="factor" type="float" optional="0" id="0" />
			</arglist>
			<description>
				Multiply all frequency components by transposition factor. (Oscillator bank resynthesis only.)
			</description>
		</method>
        <method name="trigger">
            <description>
                Trigger a new spectrum when manual flag is set.
            </description>
        </method>
	</methodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="density" get="1" set="1" type="float" size="10">
			<description>
				Density of bins with energy in the starting spectrum. Valid values are between 0-1.
			</description>
		</attribute>
		<attribute name="fftsize" get="1" set="1" type="int" size="10">
			<description>
				FFT size (default is 1024)
			</description>
		</attribute>
		<attribute name="holdtime" get="1" set="1" type="float" size="10">
			<description>
				Time in milliseconds between spectral updates
			</description>
		</attribute>
		<attribute name="overlap" get="1" set="1" type="int" size="10">
			<description>
				Overlap factor (default is 8)
			</description>
        </attribute>
	</attributelist>
	<!--EXAMPLE-->

	<!--SEEALSO-->
	<seealsolist>
		<seealso name="fftz.cavoc~" />
	</seealsolist>

</c74object>
