<?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="bline" module="max" category="Data, Timing">
	<digest>
		Generate ramps using <m>bang</m> 
	</digest>
	<description>
		Generates a linear ramp driven by incoming <m>bang</m> messages. It takes a list of breakpoint segments (and the number of events to span) and outputs a smooth ramp between values.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Max
		</metadata>
		<metadata name="tag">
			Data
		</metadata>
		<metadata name="tag">
			Timing
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				bang, list, stop
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				bang, list, stop
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				ramp output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				bang when bline reaches destination
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="initial-value" optional="1" type="number">
			<digest>
				The initial value
			</digest>
			<description>
				Optional. An argument may be used to set the initial value to be stored and the output type for the object--if the first argument is an int, the <o>bline</o> object outputs integer values, and a float will set the <o>bline</o> object to output floating point values. If there is no argument, the initial value is <m>0</m> and the output type is <m>int</m>.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Output a ramp step
			</digest>
			<description>
				Sends a new step in the breakpoint list out the left outlet. If the current list of ramp segments is finished, a <m>bang</m> message will be sent out the right outlet
			</description>
		</method>
		<method name="int">
			<arglist>
				<arg name="input" optional="0" type="int" />
			</arglist>
			<digest>
				Set the current value
			</digest>
			<description>
				Sets the <o>bline</o> object to the specified integer value. Any and all pending breakpoint segments are forgotten (i.e. the time is considered 0 and <o>bline</o> outputs the target value when it receives a <m>bang</m>).
			</description>
		</method>
		<method name="float">
			<arglist>
				<arg name="input" optional="0" type="float" />
			</arglist>
			<digest>
				Set the current value
			</digest>
			<description>
				Sets the <o>bline</o> object to the specified float value. Any and all pending breakpoint segments are forgotten (i.e. the time is considered 0 and <o>bline</o> outputs the target value when it receives a <m>bang</m>).
			</description>
		</method>
		<method name="list">
			<arglist>
				<arg name="segment-pairs" optional="0" type="list" />
			</arglist>
			<digest>
				Set segment values and event counts
			</digest>
			<description>
				The <o>bline</o> object sets breakpoint segment values using lists of data composed of pairs of numbers. The first number in each pair can be either an int or a float specifying a target value, followed by an integer that specifies the number of <m>bang</m> messages that will have to be received before reaching the target value--note that this differs from other Max breakpoint objects like <o>line</o>, which specify a time-to-target value in milliseconds.
			</description>
		</method>
		<method name="set">
			<arglist>
				<arg name="input" optional="0" type="number" />
			</arglist>
			<digest>
				Set the current value
			</digest>
			<description>
				Sets the <o>bline</o> object to the specified value. Any and all pending breakpoint segments are forgotten (i.e. the time is considered 0 and <o>bline</o> outputs the target value when it receives a <m>bang</m>).
			</description>
		</method>
		<method name="stop">
			<arglist />
			<digest>
				Stop output generation
			</digest>
			<description>
				Stops <o>bline</o> from sending out numbers, until a new list of ramp segments is received.
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="bline.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="funbuff" />
		<seealso name="line" />
		<seealso name="uzi" />
	</seealsolist>
	<discussion>
		<o>bline</o> is similar to the Max <o>line</o> object, except that it is driven by <m>bang</m> messages sent to its left inlet. This gives the object a flexible timebase, which is useful when working with events that have a variable processing time (such as rendering matrices in Jitter). It works with integer and floating point numbers, can be stopped (with the <m>stop</m> message), and can use multi-segment lists (similar to the MSP <o>line~</o> object).
	</discussion>
	<misc name="Output">
		<entry name="int">
			<description>
				Out left outlet: Numbers are sent out in response to received <m>bang</m> messages, describing a straight line toward a target value. If a list of breakpoint segments is specified before the line is completed, the new line starts from the most recent output value in order to avoid discontinuities.
				<br />
				<br />
				If a value is received in the left inlet without an accompanying time value, it is sent out immediately.
			</description>
		</entry>
		<entry name="bang">
			<description>
				Out right outlet: When <o>bline</o> has arrived at its target value, <m>bang</m> is sent out.
			</description>
		</entry>
	</misc>
</c74object>
