<?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.-->
<c74object module="rnbo" kind="rnboobject" name="groove~" category="Sampling">
<!--METADATA-->
<metadatalist>
<metadata name="author">Cycling '74</metadata>
<metadata name="tag">RNBO</metadata>
<metadata name="tag">RNBO Sampling</metadata>
</metadatalist>
<digest>Variable-rate looping sample playback of a sized buffer</digest>
<description><p>
The 
<o objname="rnbo_groove~">groove~</o>
 object is a variable-rate, looping, sample-playback object which references the audio
information stored in a 
<o objname="rnbo_buffer~">buffer~</o>
 object having the same name.
</p></description>
<!--ARGUMENTS-->
<objarglist>
<objarg name="buffername" optional="0" type="symbol">
<digest>Buffer to use</digest>
<description><p>
Names the 
<o objname="rnbo_buffer~">buffer~</o>
 object containing the sample to be used by 
<o objname="rnbo_groove~">groove~</o>
 for playback.
</p></description>
</objarg>
<objarg name="channels" optional="1" type="number">
<digest>Number of channels to read.</digest>
<description><p>
A second argument may specify the number of output channels. The default number of 		channels is 1. If the 
<o objname="rnbo_buffer~">buffer~</o>
 being played has fewer channels than the number of 
<o objname="rnbo_groove~">groove~</o>
 output 		channels, the extra channels output a zero signal. If the 
<o objname="rnbo_buffer~">buffer~</o>
 has more channels and is a 		multiple of 2 or 4, channels are mixed.
</p></description>
</objarg>
</objarglist>
<!--OPTIONS-->
<rnbooptionlist>
<option name="buffername" size="1" type="symbol">
<digest>Buffer to use</digest>
<description><p>
Names the 
<o objname="rnbo_buffer~">buffer~</o>
 object containing the sample to be used by 
<o objname="rnbo_groove~">groove~</o>
 for playback.
</p></description>
</option>
<option name="channels" size="1" type="number">
<digest>Number of channels to read.</digest>
<attributelist>
<attribute name="default" type="number" value="1"></attribute>
</attributelist>
<description><p>
A second argument may specify the number of output channels. The default number of 		channels is 1. If the 
<o objname="rnbo_buffer~">buffer~</o>
 being played has fewer channels than the number of 
<o objname="rnbo_groove~">groove~</o>
 output 		channels, the extra channels output a zero signal. If the 
<o objname="rnbo_buffer~">buffer~</o>
 has more channels and is a 		multiple of 2 or 4, channels are mixed.
</p></description>
</option>
<option name="syncmode" size="1" type="enum">
<digest>Determines if the sync outlet reports phase (0..1), samples or milliseconds.</digest>
<attributelist>
<attribute name="enumvals">
<enumlist get="1" set="1" type="atom">
<enum name="phase"></enum>
<enum name="samples"></enum>
<enum name="ms"></enum>
</enumlist>
</attribute>
<attribute name="default" type="enum" value="phase"></attribute>
</attributelist>

</option>
<option name="synctype" size="1" type="enum">
<digest>Set the sync signal to be relative to the loop length or absolute to the clip length.</digest>
<attributelist>
<attribute name="enumvals">
<enumlist get="1" set="1" type="atom">
<enum name="relative"></enum>
<enum name="absolute"></enum>
</enumlist>
</attribute>
<attribute name="default" type="enum" value="relative"></attribute>
</attributelist>

</option>
</rnbooptionlist>
<!--ATTRIBUTES-->
<rnboattributelist>
<attribute name="begin" size="1" type="auto">
<digest>Loop min (ms).</digest>
<description><p>
Sets the sample playback start position in milliseconds.
</p></description>
</attribute>
<attribute name="buffer" size="1" type="number">
<digest>If multiple buffer names are declared to be used, this sets the currently active buffer using an index [0 based].</digest>
<attributelist>
<attribute name="default" type="number" value="0"></attribute>
</attributelist>

</attribute>
<attribute name="crossfade" size="1" type="number">
<digest>Enable an attempted crossfade on loop jumpback. The fade depends on available sample material (ms).</digest>
<attributelist>
<attribute name="default" type="number" value="0"></attribute>
</attributelist>

</attribute>
<attribute name="end" size="1" type="auto">
<digest>Loop max (ms).</digest>
<description><p>
Sets the sample playback end position in milliseconds.
</p></description>
</attribute>
<attribute name="loop" size="1" type="number">
<digest>The word loop, followed by a `0` or `1`, disables/enables looping.</digest>
<attributelist>
<attribute name="default" type="number" value="1"></attribute>
</attributelist>

</attribute>
<attribute name="rate" size="1" type="bang, auto">
<digest>Playback rate.</digest>
<description><p>
Defines the sample increment for playback of a sound from a 
<o objname="rnbo_buffer~">buffer~</o>
. A sample increment of 		
<m>0</m>
 stops playback. A sample increment of 1 plays the sample at normal speed. A sample increment of 
<m>-1</m>
 		plays the sample backwards at normal speed. A sample increment of 
<m>2</m>
 plays the sample at twice the normal 		speed. A sample increment of 
<m>0.5</m>
 plays the sample at half the normal speed. The sample increment can 		change over time for vibrato or other types of speed effects. The 
<o objname="rnbo_groove~">groove~</o>
 object uses the 
<o objname="rnbo_buffer~">buffer~</o>
 sampling 		rate to determine playback speed.
</p></description>
</attribute>
<attribute name="stop" size="1" type="bang">
<digest>Stops the playback of the buffer.</digest>

</attribute>
</rnboattributelist>
<!--INLETS-->
<rnboinletlist>
<inlet id="inlet_rate" name="rate" type="bang, auto">
<digest>Playback rate.</digest>
<description><p>
Defines the sample increment for playback of a sound from a 
<o objname="rnbo_buffer~">buffer~</o>
. A sample increment of 		
<m>0</m>
 stops playback. A sample increment of 1 plays the sample at normal speed. A sample increment of 
<m>-1</m>
 		plays the sample backwards at normal speed. A sample increment of 
<m>2</m>
 plays the sample at twice the normal 		speed. A sample increment of 
<m>0.5</m>
 plays the sample at half the normal speed. The sample increment can 		change over time for vibrato or other types of speed effects. The 
<o objname="rnbo_groove~">groove~</o>
 object uses the 
<o objname="rnbo_buffer~">buffer~</o>
 sampling 		rate to determine playback speed.
</p></description>
</inlet>
<inlet id="inlet_begin" name="begin" type="auto">
<digest>Loop min (ms).</digest>
<description><p>
Sets the sample playback start position in milliseconds.
</p></description>
</inlet>
<inlet id="inlet_end" name="end" type="auto">
<digest>Loop max (ms).</digest>
<description><p>
Sets the sample playback end position in milliseconds.
</p></description>
</inlet>
</rnboinletlist>
<!--OUTLETS-->
<rnbooutletlist>
<outlet id="outlet_out" name="out" type="signal">
<digest>The sample output.</digest>

</outlet>
<outlet id="outlet_sync" name="sync" type="signal">
<digest>Sync output (phase, samples, ms)</digest>
<description><p>
Outputs the current playback location samples, phase (0..1), or milliseconds depending on the 
<m>syncmode</m>
 attribute. 		Location is relative to the 
<m>synctype</m>
 attribute, which either scales the sync output to the current loop range or keeps it in the 		range of the buffer's length.
</p></description>
</outlet>
</rnbooutletlist>
<!--SEE ALSO-->
<seealsolist>
<seealso name="rnbo_buffer~" type="rnborefpage" module="RNBO" display="buffer~"></seealso>
<seealso name="rnbo_wave~" type="rnborefpage" module="RNBO" display="wave~"></seealso>
<seealso name="rnbo_poke~" type="rnborefpage" module="RNBO" display="poke~"></seealso>
<seealso name="rnbo_lookup~" type="rnborefpage" module="RNBO" display="lookup~"></seealso>
</seealsolist>
</c74object>