<?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="urn" category="Math">
<!--METADATA-->
<metadatalist>
<metadata name="author">Cycling '74</metadata>
<metadata name="tag">RNBO</metadata>
<metadata name="tag">RNBO Math</metadata>
</metadatalist>
<digest>Generate random numbers without duplicates</digest>
<description><p>
Outputs random numbers and keeps track of each number that has been generated. When all numbers up to the maximum (set via an argument or the right inlet) have been output, a bang is send out the right outlet.
</p></description>
<!--ARGUMENTS-->
<objarglist>
<objarg name="size" optional="1" type="number">
<digest>Maximum size of output chunk (default: 1)</digest>
<description><p>
Sets the range of possible output values. Output values are 0 indexed. Changing this value will clear the internal array of used numbers.
</p></description>
</objarg>
<objarg name="seed" optional="1" type="number">
<digest>Seed to get predictable results</digest>
<description><p>
Sets a seed state for the random values, so that randomized results will be predictable each time the code is run.
</p></description>
</objarg>
</objarglist>
<!--OPTIONS-->
<!--NONE-->
<!--ATTRIBUTES-->
<rnboattributelist>
<attribute name="autoclear" size="1" type="bool">
<digest>Automatically reset when the all numbers have been used</digest>
<attributelist>
<attribute name="default" type="bool" value="false"></attribute>
</attributelist>
<description><p>
When enabled the urn object will automatically clear itself once all numbers in the range have been used.
</p></description>
</attribute>
<attribute name="clear" size="1" type="bang">
<digest>Clear the list of already chosen numbers</digest>
<description><p>
Clear the list of already chosen numbers. Note that this does not reset the object to the original seed state.
</p></description>
</attribute>
<attribute name="norepeat" size="1" type="bool">
<digest>Remove duplicates at the beginning of a new series</digest>
<attributelist>
<attribute name="default" type="bool" value="false"></attribute>
</attributelist>
<description><p>
When enabled, the first number generated at the start of a new series (after the clear message) will never match the final number of the previous series.
</p></description>
</attribute>
<attribute name="seed" size="1" type="number">
<digest>Seed to get predictable results</digest>
<description><p>
Sets a seed state for the random values, so that randomized results will be predictable each time the code is run.
</p></description>
</attribute>
<attribute name="size" size="1" type="number">
<digest>Maximum size of output chunk (default: 1)</digest>
<description><p>
Sets the range of possible output values. Output values are 0 indexed. Changing this value will clear the internal array of used numbers.
</p></description>
</attribute>
<attribute name="trigger" size="1" type="bang">
<digest>Output a random number</digest>
<description><p>
A bang or number in the left inlet causes 
<m>urn</m>
 to output a number between 0 and one less than the value of the size attribute. Each number in the range can only be output once until the object is cleared.
</p></description>
</attribute>
</rnboattributelist>
<!--INLETS-->
<rnboinletlist>
<inlet id="inlet_trigger" name="trigger" type="bang">
<digest>Output a random number</digest>
<description><p>
A bang or number in the left inlet causes 
<m>urn</m>
 to output a number between 0 and one less than the value of the size attribute. Each number in the range can only be output once until the object is cleared.
</p></description>
</inlet>
<inlet id="inlet_size" name="size" type="number">
<digest>Maximum size of output chunk (default: 1)</digest>
<description><p>
Sets the range of possible output values. Output values are 0 indexed. Changing this value will clear the internal array of used numbers.
</p></description>
</inlet>
</rnboinletlist>
<!--OUTLETS-->
<rnbooutletlist>
<outlet id="outlet_out" name="out" type="number">
<digest>Random Number Output</digest>
<description><p>
The number chosen. This value will be between 0 and one less than the maximum value as determined by the 
<m>size</m>
 attribute.
</p></description>
</outlet>
<outlet id="outlet_bangout" name="bangout" type="bang">
<digest>Bang if All Numbers in Range Chosen</digest>
<description><p>
Send a bang when every number in the range has been chosen.
</p></description>
</outlet>
</rnbooutletlist>
<!--SEE ALSO-->
<seealsolist>
<seealso name="rnbo_drunk" type="rnborefpage" module="RNBO" display="drunk"></seealso>
<seealso name="rnbo_noise" type="rnborefpage" module="RNBO" display="noise"></seealso>
<seealso name="rnbo_random" type="rnborefpage" module="RNBO" display="random"></seealso>
<seealso name="urn" type="refpage" module="Max"></seealso>
</seealsolist>
</c74object>