<?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="tapout~" module="msp" category="MSP Delays">
	<digest>
		Output from a delay line
	</digest>
	<description>
		The outlet of a <o>tapin~</o> object must be connected to the left inlet of <o>tapout~</o> in order for the delay line to function.
		<br />
		<br />
		The <o>tapout~</o> object has one or more inlets and one or more outlets. A delay time signal or number received in an inlet affects the output signal coming out of the outlet directly below the inlet.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			MSP
		</metadata>
		<metadata name="tag">
			MSP Delays
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="signal/float">
			<digest>
				(signal/float) Delay Time in ms. Signal-based delay uses interpolation, which introduces a one-sample delay
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="signal/float">
			<digest>
				(signal/float) Delay Time in ms. Signal-based delay uses interpolation, which introduces a one-sample delay
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="signal">
			<digest>
				(signal) Delayed Output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="initial-delay" optional="1" units="ms" type="number">
			<digest>
				Initial delay time(s)
			</digest>
			<description>
				One or more initial delay times in milliseconds, one for each delay &quot;tap&quot; inlet-outlet pair desired. For example, the arguments <m>50 100 300</m> would create a <o>tapout~</o> object with three independent &quot;taps&quot; corresponding to three inlets and three outlets. If a <m>signal</m> is connected to an inlet, the initial delay time corresponding to that inlet-outlet pair is ignored. The minimum delay time that can be used is determined by the current signal vector size (Options-&gt;Audio Status).  If the Signal Vector Size is set to 64, any delay less than 64 samples will be limited to a minimum of 64 samples.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="int">
			<arglist>
				<arg name="delay-time" optional="0" units="ms" type="int" />
			</arglist>
			<digest>
				Set a fixed delay for the corresponding outlet
			</digest>
			<description>
				If a <m>signal</m> is not connected to an inlet of <o>tapout~</o>, a fixed delay algorithm is used, and a <m>float</m> or <m>int</m> received in the inlet sets the delay time of the signal coming out of the corresponding outlet. This may cause clicks to appear in the output when the delay time is changed. However, fixed delay is suitable for many applications such as reverberation where delay times do not change dynamically, and it is computationally less expensive than the continuous delay algorithm.
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="delay-time" optional="0" units="ms" type="float" />
			</arglist>
			<digest>
				Set a fixed delay for the corresponding outlet
			</digest>
			<description>
				If a <m>signal</m> is not connected to an inlet of <o>tapout~</o>, a fixed delay algorithm is used, and a <m>float</m> or <m>int</m> received in the inlet sets the delay time of the signal coming out of the corresponding outlet. This may cause clicks to appear in the output when the delay time is changed. However, fixed delay is suitable for many applications such as reverberation where delay times do not change dynamically, and it is computationally less expensive than the continuous delay algorithm.
			</description>
		</method>
		<method name="list">
			<arglist>
				<arg name="delay-times-corresponding-to-outlets" optional="0" units="ms" type="list" />
			</arglist>
			<digest>
				Simultaneously set multiple fixed delay times
			</digest>
			<description>
				In left inlet: Allows several fixed delay times to be changed at the same time. The first number in the list sets the delay time for the first outlet, and so on. If any inlets corresponding to <m>list</m> values have <m>signals</m> connected to them, the values are skipped.
			</description>
		</method>
		<method name="tapconnect">
			<arglist />
			<digest>
				Remotely connect a <o>tapout~</o> object to an available <o>tapin~</o> object
			</digest>
			<description>
				The word <m>tapconnect</m> will connect a <o>tapout~</o> object to an available <o>tapin~</o> object remotely.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Use a continuous delay algorithm for the corresponding outlet
			</digest>
			<description>
				If a <m>signal</m> is connected to an inlet of <o>tapout~</o>, the signal coming out of the outlet below it will use a continuous delay algorithm. Incoming signal values represent the delay time in milliseconds. If the signal increases slowly enough, the pitch of the output will decrease, while, if the signal decreases slowly, the pitch of the output will increase. The continuous delay algorithm is more computationally expensive than the fixed delay algorithm that is used when a signal is not connected to a <o>tapout~</o> inlet.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="tapout~.png" caption="tapout~ sends out the signal tapin~ receives, delayed by some amount of time" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="delay~" />
		<seealso name="tapin~" />
		<seealso name="15_delaychapter01" module="msp" type="tutorial" />
		<seealso name="15_delaychapter02" module="msp" type="tutorial" />
		<seealso name="15_delaychapter04" module="msp" type="tutorial" />
		<seealso name="15_delaychapter05" module="msp" type="tutorial" />
	</seealsolist>
	<misc name="Output">
		<entry name="signal">
			<description>
				Each outlet of <o>tapout~</o> corresponds to an individually controlled &quot;tap&quot; of a delay line written by the <o>tapin~</o> object. The output signal coming out of a <o>tapout~</o> outlet is the input to <o>tapin~</o> delayed by the number of milliseconds specified by the numerical or signal control received in the inlet directly above the outlet.
			</description>
		</entry>
	</misc>
</c74object>
