<?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="tapin~" module="msp" category="MSP Delays">
	<digest>
		Input to a delay line
	</digest>
	<description>
		<o>tapin~</o> receives a signal in and copies into a delay line. Using <o>tapout~</o> objects, you can read from the delay line at various delay times. You must connect the outlet of a <o>tapin~</o> object to the <o>tapout~</o> objects you want to use with the delay line. Note that this is not a signal connection, since no signal travels between the objects. It is merely a way to indicate that the objects share the same delay memory.
	</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">
			<digest>
				(signal) Input Written To Delay Line
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="signal">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				Connect To One Or More tapout~ Objects
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="maximum-delay" optional="1" units="ms" type="number">
			<digest>
				Maximum delay time
			</digest>
			<description>
				The maximum delay time in milliseconds. This determines the size of the delay line memory. If the sampling rate is increased after the object has been created, <o>tapin~</o> will attempt to resize the delay line. If no argument is present, the default maximum delay time is 100 milliseconds.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="int">
			<arglist>
				<arg name="memory-size" optional="0" units="ms" type="int" />
			</arglist>
			<digest>
				In left inlet: An <m>int</m> Resize and clear the delay line memory
			</digest>
			<description>
				In left inlet: An <m>int</m> resizes the delay line memory with the new maximum delay time specified in milliseconds (this clears the memory of the delay line, which may produce a click in the output).
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="memory-size" optional="0" units="ms" type="float" />
			</arglist>
			<digest>
				Resize and clear the delay line memory
			</digest>
			<description>
				In left inlet: A <m>float</m> resizes the delay line memory with the new maximum delay time specified in milliseconds (this clears the memory of the delay line, which may produce a click in the output).
			</description>
		</method>
		<method name="clear">
			<arglist />
			<digest>
				Clear the delay line
			</digest>
			<description>
				Clears the memory of the delay line (which may produce a click in the output).
			</description>
		</method>
		<method name="freeze">
			<arglist>
				<arg name="behavioral-flag (0 or nonzero)" optional="0" type="int" />
			</arglist>
			<digest>
				Freeze the buffer memory
			</digest>
			<description>
				The word <m>freeze</m> followed by a non-zero number will cause <o>tapin~</o> to freeze its buffer memory. This means the object will keep echoing out of its output what has already been recorded into its memory at the point of freezing and no further input will be recorded. The word <m>freeze</m> followed by a 0 will reset the object to its default state of constantly recording and rerecording any given input into its memory buffer and outputting it after the specified delay time.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Write signal into a delay line
			</digest>
			<description>
				The signal is written into a delay line that can be read by the <o>tapout~</o> object.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="tapin~.png" caption="tapin~ creates a delay buffer from which to tap delayed signal" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="delay~" />
		<seealso name="tapout~" />
		<seealso name="15_delaychapter01" module="msp" type="tutorial" />
		<seealso name="15_delaychapter02" module="msp" type="tutorial" />
		<seealso name="15_delaychapter04" module="msp" type="tutorial" />
	</seealsolist>
	<misc name="Output">
		<entry name="tap">
			<description>
				In order for the delay line to function, the outlet of <o>tapin~</o> must be connected to the left inlet of <o>tapout~</o>. It cannot be connected to any other object.
			</description>
		</entry>
	</misc>
</c74object>
