<?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="chucker~" module="m4l" category="M4L">
	<digest>
		Segment audio and reorder it on looped playback
	</digest>
	<description>
		<o>chucker~</o> takes a specified amount of audio data, stores the data in an internal buffer, divides the buffered data into equal sections, and allows the sections to be reordered on playback.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			TEXT_HERE
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				Left Audio Input
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
				Right Audio Input
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="2" type="INLET_TYPE">
			<digest>
				Audio Sync Input
			</digest>
			<description>
				The right inlet of the object accepts a signal input in the range 0. - 1.0 (typically from the right outlet of a <o>groove~</o> object) to control the playback of the object's buffered contents.
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				<i>signal:</i> Out left outlet: The segmented and reordered playback of the left channel of the <o>chucker~</o> object's buffered contents.
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				Right Audio Output
			</digest>
			<description>
				<i>signal:</i> Out middle outlet: The segmented and reordered playback of the right channel of the <o>chucker~</o> object's buffered contents.
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				Current Step Number
			</digest>
			<description>
				<i>signal:</i> Out right outlet: The current step number in the playback cycle is sent out the right outlet as a signal value.
				<br />
				Note: This is the <i>step number</i>, not the index of the segment being played back.
			</description>
		</outlet>
	</outletlist>
	<!--ARGUMENTS-->
	<objarglist>
		<objarg name="buffer-size-in-ms" optional="0" type="int">
			<digest>
				Buffer size
			</digest>
			<description>
				An optional integer argument can be used to set the number of milliseconds to allocate for the recorded sound. (e.g. an argument of 8000 will allocate enough memory for a stereo output of 8 seconds)
				<br />
				Note: The actual allocation will be larger than what is specified by the argument, since the <o>chucker~</o> object supports two buffers and provides for double-buffering.
			</description>
		</objarg>
	</objarglist>
	<!--MESSAGES-->
	<methodlist>
		<method name="directions">
			<arglist>
				<arg name="direction-specifier" optional="0" type="list" />
			</arglist>
			<digest>
				Set playback direction for steps
			</digest>
			<description>
				The word <m>directions</m>, followed by a 1 or 2 to indicate left or right channel and a list of integer values whose length is equal to the number of steps, sets the direction of playback for the sections. Playback direction is specified as follows:
				<br />
				<br />
				1: forward (the default)
				<br />
				0: mute
				<br />
				-1: reverse
			</description>
		</method>
		<method name="fademode">
			<arglist>
				<arg name="mode" optional="0" type="int" />
			</arglist>
			<digest>
				Set the fade method
			</digest>
			<description>
				Sets the fade method for segment smoothing. Modes include:
				<br />
				0: Classic (same as Max 5)
				<br />
				1: Pre-fade (fades use buffered audio, fade executes prior to segment transition)
				<br />
				2: Post-fade (fades use buffered audio, fade executes after segment transition)
				<br />
			</description>
		</method>
		<method name="freeze">
			<arglist>
				<arg name="buffer-segment" optional="0" type="int" />
			</arglist>
			<digest>
				Loop the current buffer segment on playback
			</digest>
			<description>
				The message <m>freeze 1</m> causes the current buffer segment to loop on playback. Sending the message <m>freeze 0</m> resumes normal playback.
			</description>
		</method>
		<method name="nstep">
			<arglist>
				<arg name="number-of-steps" optional="0" type="int" />
			</arglist>
			<digest>
				Set the number of buffer segments
			</digest>
			<description>
				The word <m>nsteps</m>, followed by an integer in the range 1 - 64, sets the number of equal portions into which the <o>chucker~</o> object's internal buffer is segmented for playback.
			</description>
		</method>
		<method name="signal">
			<arglist />
			<digest>
				Function depends on inlet
			</digest>
			<description>
				In left inlet: Left channel audio input.
				<br />
				In middle inlet: Right channel audio input.
				<br />
				In right inlet: An audio signal in the range 0. - 1.0 provides the audio sync input. This task is typically done using a <o>phasor~</o> object's output as input.
			</description>
		</method>
		<method name="smooth">
			<arglist>
				<arg name="smooth-amount" optional="0" type="float" />
			</arglist>
			<digest>
				Set a crossfade amount between segments
			</digest>
			<description>
				The word <m>smooth</m>, followed by a floating point number in the range 0. - 1.0, sets an amount of smoothing (crossfading) between the individual segments being reordered for playback.
			</description>
		</method>
		<method name="steps">
			<arglist>
				<arg name="channel and range" optional="0" type="list" />
			</arglist>
			<digest>
				Set the playback order for the sections
			</digest>
			<description>
				The word <m>steps</m>, followed by a 1 or 2 to indicate left or right channel and a list of integer values whose range is between 1 and the number of steps and whose length is equal to the number of steps, sets the order of playback for the sections.
				<br />
				e.g. the message <m>steps 1 4 3 2 1, steps 2 1 2 3 4</m>, when sent to a <o>chucker~</o> object whose number of steps is set to 4, will play the four left channel segments in reverse order, and the right channel in regular order. order
			</description>
		</method>
	</methodlist>
	<!--ATTRIBUTES-->
	<!--EXAMPLE-->
	<examplelist>
		<example img="chucker~.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="buffer~" />
		<seealso name="groove~" />
	</seealsolist>
</c74object>
