<?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="uzi" module="max" category="Control">
	<digest>
		Send many bang messages
	</digest>
	<description>
		Outputs a specified number of bang messages quickly. <o>uzi</o> is designed for rapid-fire output of a large number of <m>bang</m> messages.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
		<metadata name="tag">
			Control
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				Start shooting bangs (bang or int)
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				How many bangs to shoot (int)
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				Watch out
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				Done banging bang (carry)
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				Current Index
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="initial" optional="1" type="int">
			<digest>
				Number of bangs to output
			</digest>
			<description>
				Sets an initial number of <m>bang</m> messages to be sent out in response to a <m>bang</m> in the left inlet. If no argument is present, <o>uzi</o> is initially set to send out one <m>bang</m>.
			</description>
		</objarg>
		<objarg name="base" optional="1" type="int">
			<digest>
				Base value for count
			</digest>
			<description>
				An optional second argument sets the base value for the right outlet count. The base value defaults to 1 when no second argument is given.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Output many bangs
			</digest>
			<description>
				In left inlet: Begins sending out <m>bang</m> messages as fast as possible, one after another. The number of <m>bang</m> messages to send is determined by the last number received in either inlet.
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="input" optional="0" type="int" />
			</arglist>
			<digest>
				Set the number of bangs, cause output
			</digest>
			<description>
				In left inlet: Sets the number of <m>bang</m> messages to send, then begins sending them out as fast as possible, one after another.
			</description>
		</method>
		<method name="break">
			<arglist />
			<digest>
				Pause bang output
			</digest>
			<description>
				Same as <m>pause</m>.
			</description>
		</method>
		<method name="continue">
			<arglist />
			<digest>
				Continue bang output
			</digest>
			<description>
				Same as <m>resume</m>.
			</description>
		</method>
		<method name="in1">
			<arglist>
				<arg name="bangs-without-output" optional="0" type="int" />
			</arglist>
			<digest>
				Set the number of bangs with no output
			</digest>
			<description>
				In right inlet: Sets the number of <m>bang</m> messages to send, without causing output.
			</description>
		</method>
		<method name="offset">
			<arglist>
				<arg name="start" optional="0" type="int" />
			</arglist>
			<digest>
				Offset bang count
			</digest>
			<description>
				The word <m>offset</m> followed by a number of bangs will set the object to output a count of bangs which is offset by the given number (the number is subtracted from the previously assigned number of bangs to equal the new total number of bangs).
			</description>
		</method>
		<method name="pause">
			<arglist />
			<digest>
				Pause bang output
			</digest>
			<description>
				In left inlet: Causes <o>uzi</o> to stop in the midst of sending its output. (Since <o>uzi</o> sends its output as fast as possible, this message must be triggered in some way by the output of <o>uzi</o> itself.) <o>uzi</o> keeps track of how many <m>bang</m> messages it has sent, and if it receives the <m>pause</m> message before sending out all its <m>bang</m> messages, it can then be caused to send out the rest of its <m>bang</m> messages with a <m>resume</m> or <m>continue</m> message.
			</description>
		</method>
		<method name="resume">
			<arglist />
			<digest>
				Continue bang output
			</digest>
			<description>
				In left inlet: If <o>uzi</o> has been stopped by a <m>pause</m> message in the midst of sending its output, <m>resume</m> causes it to send out the rest of its output.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="uzi.png" caption="Count as fast as possible using uzi... Count at a specific rate, not using uzi... Use uzi to perform many calculations quickly" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="bline" />
		<seealso name="counter" />
		<seealso name="line" />
		<seealso name="metro" />
		<seealso name="basicchapter17" module="max" type="tutorial" />
	</seealsolist>
	<misc name="Output">
		<entry name="bang">
			<description>
				Out left outlet: When <o>uzi</o> receives a <m>bang</m> or int in its left inlet, a certain number of <m>bang</m> messages are sent out as fast as possible, one after another. The number of <m>bang</m> messages is determined by the most recent number received in either inlet.
				<br />
				<br />
				Out middle outlet: After the last <m>bang</m> is sent out its left outlet, <o>uzi</o> sends one <m>bang</m> out its middle outlet. This can be used as a signal that all the <m>bang</m> messages have been sent, much like the &quot;carry&quot; outlet on the <o>counter</o> object.
			</description>
		</entry>
		<entry name="int">
			<description>
				Out right outlet: The number of each <m>bang</m> is sent out. Numbering begins from 1 (or from the base value specified by the optional second argument) each time an int or <m>bang</m> is received in the left inlet. If <o>uzi</o> is being restarted with a <m>resume</m> or <m>continue</m> message, numbering begins wherever it left off.
			</description>
		</entry>
	</misc>
</c74object>
