<?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="ioscbank~" module="msp" category="MSP Synthesis">
	<digest>
		Interpolating oscillator bank
	</digest>
	<description>
		<o>ioscbank~</o> is an interpolated oscillator bank with signal inputs to set oscillator frequency and magnitude.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			oscillator
		</metadata>
		<metadata name="tag">
			MSP Synthesis
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="signal/float">
			<digest>
				(signal/float) Freq
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="signal/float">
			<digest>
				(signal/float) Mag
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="2" type="signal/float">
			<digest>
				(signal/float) Phase
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="3" type="signal/float">
			<digest>
				(signal/float) Index
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="signal">
			<digest>
				(signal) output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="number-of-oscillators" optional="1" type="int">
			<digest>
				Number of oscillators
			</digest>
			<description>
				The number of oscillators.
			</description>
		</objarg>
		<objarg name="frequency-smoothing-factor" optional="1" units="samples" type="int">
			<digest>
				Frequency smoothing factor
			</digest>
			<description>
				The number of samples across which frequency smoothing is done.
			</description>
		</objarg>
		<objarg name="amplitude-smoothing-factor" optional="1" units="samples" type="int">
			<digest>
				Amplitude smoothing factor
			</digest>
			<description>
				The number of samples across which amplitude smoothing is done.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="int">
			<arglist>
				<arg name="inlet-specific-parameter-settings" optional="0" type="int" />
			</arglist>
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In left inlet: Sets the frequency of the oscillator whose index is currently referenced to the current floating-point value of the signal. The default value is 0.
				<br />
				<br />
				In 2nd inlet: Sets the magnitude (amplitude) of the oscillator whose index is currently referenced.
				<br />
				<br />
				In 4th inlet: Sets the index of the oscillator currently being referenced.
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="inlet-specific-parameter-settings" optional="0" type="float" />
			</arglist>
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In left inlet: Sets the frequency of the oscillator whose index is currently referenced to the current floating-point value of the signal. The default value is 0.
				<br />
				<br />
				In 2nd inlet: Sets the magnitude (amplitude) of the oscillator whose index is currently referenced.
				<br />
				<br />
				In 3rd inlet: If <m>framesync</m> is enabled using the <m>framesync 1</m> message, a value in the range 0-1.0 sets the phase of the oscillator currently being referenced.
				<br />
				<br />
				In 4th inlet: Sets the index of the oscillator currently being referenced.
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Zero all frequencies and amplitudes
			</digest>
			<description>
				The word <m>clear</m> sets the frequency of all oscillators to zero and zeros all amplitudes.
			</description>
		</method>
		<method name="copybuf">
			<arglist>
				<arg name="buffer-object-name" optional="0" type="symbol" />
				<arg name="offset (samples)" optional="0" type="int" />
			</arglist>
			<digest>
				Copy samples from the buffer into the <o>ioscbank~</o> object's internal wavetable
			</digest>
			<description>
				In left inlet: The word <m>copybuf</m>, followed by a symbol that specifies a buffer, copies 4096 samples from the buffer into the <o>ioscbank~</o> object's internal wavetable. An optional second integer argument specifies the position in the buffer at which samples are loaded (offset).
			</description>
		</method>
		<method name="framesync">
			<arglist>
				<arg name="behavioral-flag (0 or nonzero)" optional="0" type="int" />
			</arglist>
			<digest>
				Enable frame synchronous operation
			</digest>
			<description>
				The word <m>framesync</m>, followed by a non-zero number, enables frame synchronous operation. When frame synchronous operation is enabled, a given index's values will only change or begin their interpolated ramps to the next value when the index input signal is 0 (or once per n sample frame). Otherwise, a given index's values will change or begin their interpolated ramps to the next value when the index input signal is equal to that index. The default is off.
			</description>
		</method>
		<method name="freqsmooth">
			<arglist>
				<arg name="frequency-smoothing-factor (samples)" optional="0" type="int" />
			</arglist>
			<digest>
				Set the number of samples used for frequency smoothing
			</digest>
			<description>
				The word <m>freqsmooth</m>, followed by a number, sets the number of samples across which frequency smoothing is done. The default is <m>1</m> (no smoothing).
			</description>
		</method>
		<method name="magsmooth">
			<arglist>
				<arg name="amplitude-smoothing-factor (samples)" optional="0" type="int" />
			</arglist>
			<digest>
				Set the number of samples used for amplitude smoothing
			</digest>
			<description>
				The word <m>magsmooth</m>, followed by a number, sets the number of samples across which magnitude (amplitude) smoothing is done on an oscillator. The default is <m>0</m> (no amplitude smoothing).
			</description>
		</method>
		<method name="set">
			<arglist>
				<arg name="frequency" optional="0" type="float" />
				<arg name="amplitude" optional="0" type="float" />
			</arglist>
			<digest>
				Set the frequency and amplitude of an oscillator
			</digest>
			<description>
				The word <m>set</m>, followed by pairs of floating-point values, sets the frequency and amplitude of an oscillator in the oscillator bank. A list of n pairs will set the first n oscillators in the <o>ioscbank~</o> object and zero the amplitude of all others.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In left inlet: Sets the frequency of the oscillator whose index is currently referenced to the current floating-point value of the signal. The default value is 0.
				<br />
				<br />
				In 2nd inlet: Sets the magnitude (amplitude) of the oscillator whose index is currently referenced.
				<br />
				<br />
				In 3rd inlet: If <m>framesync</m> is enabled using the <m>framesync 1</m> message, a signal in the range 0-1.0 sets the phase of the oscillator currently being referenced.
				<br />
				<br />
				In 4th inlet: Sets the index of the oscillator currently being referenced.
			</description>
		</method>
		<method name="silence">
			<arglist />
			<digest>
				Zero the amplitude of all oscillators
			</digest>
			<description>
				The word <m>silence</m> zeros the amplitude of all the oscillators.
			</description>
		</method>
		<method name="size">
			<arglist>
				<arg name="number-of-oscillators" optional="0" type="int" />
			</arglist>
			<digest>
				Set the number of oscillators
			</digest>
			<description>
				The word <m>size</m>, followed by a number, sets the number of oscillators. The default is 64. The maximum number of oscillators is set by the argument first argument to the object.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="ioscbank~.png" caption="ioscbank~ lets you sound multiple interpolated oscillators with one object" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="oscbank~" />
	</seealsolist>
	<misc name="Output">
		<entry name="signal">
			<description>
				A waveform consisting of the sum of the specified frequencies and amplitudes.
			</description>
		</entry>
	</misc>
</c74object>
