<?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="param" category="Communications">
<!--METADATA-->
<metadatalist>
<metadata name="author">Cycling '74</metadata>
<metadata name="tag">RNBO</metadata>
<metadata name="tag">RNBO Communications</metadata>
<metadata name="tag">RNBO Declare</metadata>
</metadatalist>
<digest>Define a parameter that can control RNBO externally</digest>
<description><p>
<o objname="rnbo_param">param</o>
 will create and expose a parameter within a RNBO patcher to the parent Max patch and to any target platform.
This allows for easy control of parameter values, as well as reference of parameter states outside of the RNBO patcher.
</p>
<p>
Unlike 
<o objname="rnbo_inport">inport</o>
, 
<o objname="rnbo_param">param</o>
 can only process numerical values. However, 
<o objname="rnbo_param">param</o>
 contains built-in bounding,
normalization, and enumeration that can be used to process and scale these incoming messages.
</p></description>
<!--ARGUMENTS-->
<objarglist>
<objarg name="name" optional="0" type="symbol">
<digest>Name of the parameter</digest>
<description><p>
A 
<o objname="rnbo_param">param</o>
 object will receive numerical messages sent to 
<o objname="rnbo~">rnbo~</o>
 in a format
containing the parameter name followed by the message to be sent. Each 
<o objname="rnbo_param">param</o>
 object within a RNBO patcher
must have a unique name.
</p>
<p>
Messages can also be sent and received using the parameter name once a RNBO patch is exported to an external
target. See the 
<a href="https://rnbo.cycling74.com/">RNBO API Reference</a>
 for guides on target specific syntax.
</p></description>
</objarg>
<objarg name="value" optional="1" type="number">
<digest>Parameter value</digest>
<description><p>
Pass values to the output of 
<o objname="rnbo_param">param</o>
 from within the RNBO patcher.
</p></description>
</objarg>
<objarg name="value" optional="1" type="number">
<digest>Set initial value</digest>
<description><p>
Sets an initial value to be sent to 
<o objname="rnbo_param">param</o>
's output on the initialization of a RNBO external target
</p></description>
</objarg>
</objarglist>
<!--OPTIONS-->
<rnbooptionlist>
<option name="ctlin" size="1" type="number">
<digest>MIDI controller number to control this parameter.</digest>

</option>
<option name="displayname" size="1" type="symbol">
<digest>A more readable name for the parameter in an external RNBO target</digest>

</option>
<option name="displayorder" size="1" type="symbol">
<digest>Order in which parameters will show up in a list of all parameters. The order can be numeric or symbolic ('first' and 'last')</digest>
<attributelist>
<attribute name="default" type="symbol" value="-"></attribute>
</attributelist>

</option>
<option name="enum" size="1" type="list">
<digest>Use an enumerated output</digest>
<description><p>
A list of enumerated values can be set using a list of symbols, e.g. 
<m>@enum zero one two</m>
. Sending a message that
contains the parameter name followed by any of the symbols provided will output the corresponding enumerated integer value..
</p>
<p>
Setting  
<m>@enum 0 1</m>
 exposes the parameter value of a 
<a href="https://rnbo.cycling74.com/learn/max-external-target-export-overview">RNBO generated Max External</a>
 as an on/off (0/1) toggle in the

<link module="max" name="inspector" type="vignette">Max Object Inspector</link>
 and connected attrui objects, rather than a symbol.
</p>
<p>
For more information on enums, see 
<a href="https://rnbo.cycling74.com/learn/using-parameters">RNBO parameters</a>
.
</p></description>
</option>
<option name="exponent" size="1" type="number">
<digest>Scale values exponentially</digest>
<attributelist>
<attribute name="default" type="number" value="1"></attribute>
</attributelist>
<description><p>
Using an 
<m>exponent</m>
 will scale the normalized output (right outlet) by a provided exponential degree.
</p></description>
</option>
<option name="fromnormalized" size="1" type="symbol">
<digest>Converts a normalized parameter into its actual parameter value.</digest>
<description><p>
<m>@fromnormalized</m>
 will modify the input of 
<o objname="rnbo_param">param</o>
 based on a provided mathematical expression. The
resulting output is sent to any 
<o objname="rnbo_fromnormalized">fromnormalized</o>
 objects that share the same parameter
name. The output, which must be bounded within a 
<m>@min</m>
 and 
<m>@max</m>
 range, will be modified based on the mathematical
expression given an input between 0. and 1.
</p>
<p>
Expressions are written in 
<o objname="rnbo_expr">expr</o>
 format using the keyword 
<m>value</m>
 as the input variable. For instance,

<m>@fromnormalized pow(value, 2)+3</m>
 will produce the input value plus 3, raised to the 2nd power. For more info on
expr format, see 
<link module="max" name="basicchapter22" type="tutorial">Designing Equations</link>
.
</p></description>
</option>
<option name="max" size="1" type="number">
<digest>Maximum value</digest>
<attributelist>
<attribute name="default" type="number" value="1"></attribute>
<attribute name="alias" value="maximum"></attribute>
</attributelist>
<description><p>
Sets a bounded maximum value for the parameter output. Values sent to 
<o objname="rnbo_param">param</o>
 that are below the minimum value will not
be sent to the output.
</p></description>
</option>
<option name="maximum" size="1" type="number">
<digest>Maximum value</digest>
<attributelist>
<attribute name="default" type="number" value="1"></attribute>
</attributelist>
<description><p>
Sets a bounded maximum value for the parameter output. Values sent to 
<o objname="rnbo_param">param</o>
 that are below the minimum value will not
be sent to the output.
</p></description>
</option>
<option name="meta" size="1" type="symbol">
<digest>A JSON formatted string containing metadata for use by the exported code</digest>
<description><p>
A JSON formatted string containing metadata for use by the exported code.
</p>
<p>
<m>@meta</m>
 can be used to pass on any information for custom needs via the exported description.json file.
This has potential use for hardware mappings/routings, UI generation, advanced toolchain integration, etc.
</p></description>
</option>
<option name="min" size="1" type="number">
<digest>Minimum value</digest>
<attributelist>
<attribute name="default" type="number" value="0"></attribute>
<attribute name="alias" value="minimum"></attribute>
</attributelist>
<description><p>
Sets a bounded minimum value for the parameter output. Values sent to 
<o objname="rnbo_param">param</o>
 that are below the minimum value will not
be sent to the output.
</p></description>
</option>
<option name="minimum" size="1" type="number">
<digest>Minimum value</digest>
<attributelist>
<attribute name="default" type="number" value="0"></attribute>
</attributelist>
<description><p>
Sets a bounded minimum value for the parameter output. Values sent to 
<o objname="rnbo_param">param</o>
 that are below the minimum value will not
be sent to the output.
</p></description>
</option>
<option name="name" size="1" type="symbol">
<digest>Name of the parameter</digest>
<description><p>
A 
<o objname="rnbo_param">param</o>
 object will receive numerical messages sent to 
<o objname="rnbo~">rnbo~</o>
 in a format
containing the parameter name followed by the message to be sent. Each 
<o objname="rnbo_param">param</o>
 object within a RNBO patcher
must have a unique name.
</p>
<p>
Messages can also be sent and received using the parameter name once a RNBO patch is exported to an external
target. See the 
<a href="https://rnbo.cycling74.com/">RNBO API Reference</a>
 for guides on target specific syntax.
</p></description>
</option>
<option name="order" size="1" type="symbol">
<digest>Order in which initial parameter values will be sent out on patcher load. The order can be numeric or symbolic ('first' and 'last')</digest>
<attributelist>
<attribute name="default" type="symbol" value="0"></attribute>
</attributelist>

</option>
<option name="preset" size="1" type="bool">
<digest>Add this value to the preset.</digest>
<attributelist>
<attribute name="default" type="bool" value="true"></attribute>
</attributelist>

</option>
<option name="sendinit" size="1" type="bool">
<digest>Send initial value</digest>
<attributelist>
<attribute name="default" type="bool" value="true"></attribute>
</attributelist>
<description><p>
Set whether or not to send the 
<o objname="rnbo_param">param</o>
 object's initial value to the output
</p></description>
</option>
<option name="steps" size="1" type="number">
<digest>Divide the output into a number of discrete steps</digest>
<attributelist>
<attribute name="default" type="number" value="0"></attribute>
</attributelist>
<description><p>
Setting the number of steps allows a numerical input to be divided into discrete steps. For instance, a step value of 5 will
divide input ranging from 0-100 into values of 0, 25, 50, 75, and 100.
</p></description>
</option>
<option name="tonormalized" size="1" type="symbol">
<digest>Converts a real parameter value to its normalized form.</digest>
<description><p>
<m>@tonormalized</m>
 will modify the input of 
<o objname="rnbo_param">param</o>
 based on a provided mathematical expression. The
resulting output is sent to the right outlet and to any 
<o objname="rnbo_tonormalized">tonormalized</o>
 objects that share the same parameter
name. The default normalized output between 0. and 1. is replaced with the output of the provided expression.
When used along side 
<m>@min</m>
 and 
<m>@max</m>
, the range (output) of the expression is unbounded, however, the domain (input) is bounded.
</p>
<p>
Expressions are written in 
<o objname="rnbo_expr">expr</o>
 format using the keyword 
<m>value</m>
 as the input variable. For instance,

<m>@tonormalized pow(value, 2)+3</m>
 will produce the input value plus 3, raised to the 2nd power. For more info on
expr format, see 
<link module="max" name="basicchapter22" type="tutorial">Designing Equations</link>
.
</p></description>
</option>
<option name="unit" size="1" type="symbol">
<digest>A symbol to describe the unit of the parameter in an external RNBO target</digest>

</option>
<option name="value" size="1" type="number">
<digest>Set initial value</digest>
<attributelist>
<attribute name="default" type="number" value="0"></attribute>
</attributelist>
<description><p>
Sets an initial value to be sent to 
<o objname="rnbo_param">param</o>
's output on the initialization of a RNBO external target
</p></description>
</option>
</rnbooptionlist>
<!--ATTRIBUTES-->
<rnboattributelist>
<attribute name="normalizedvalue" size="1" type="number">
<digest>Set value normalized. </digest>

</attribute>
<attribute name="reset" size="1" type="bang">
<digest>Reset param to initial value</digest>

</attribute>
<attribute name="value" size="1" type="number">
<digest>Parameter value</digest>
<description><p>
Pass values to the output of 
<o objname="rnbo_param">param</o>
 from within the RNBO patcher.
</p></description>
</attribute>
</rnboattributelist>
<!--INLETS-->
<rnboinletlist>
<inlet id="inlet_value" name="value" type="number">
<digest>Parameter value</digest>
<description><p>
Pass values to the output of 
<o objname="rnbo_param">param</o>
 from within the RNBO patcher.
</p></description>
</inlet>
<inlet id="inlet_normalizedvalue" name="normalizedvalue" type="number">
<digest>Set value normalized. </digest>

</inlet>
</rnboinletlist>
<!--OUTLETS-->
<rnbooutletlist>
<outlet id="outlet_value" name="value" type="number">
<digest>Parameter value</digest>
<description><p>
Pass values to the output of 
<o objname="rnbo_param">param</o>
 from within the RNBO patcher.
</p></description>
</outlet>
<outlet id="outlet_normalized" name="normalized" type="number">
<digest>Normalized parameter value.</digest>
<description><p>
The normalized output is used for processing and scaling the input of 
<o objname="rnbo_param">param</o>
.
The default output will be the bounded 
<m>@min</m>
 and 
<m>@max</m>
 range of the input scaled between
0. and 1.
</p>
<p>
The normalized output can also be processed with exponential scaling using 
<m>@exponent</m>
 and
with mathematical expressions in 
<link module="max" name="basicchapter22" type="tutorial">expr format</link>
 using 
<m>@tonormalized</m>
.
</p></description>
</outlet>
</rnbooutletlist>
<!--SEE ALSO-->
<seealsolist>
<seealso name="rnbo_param~" type="rnborefpage" module="RNBO" display="param~"></seealso>
<seealso name="rnbo_tonormalized" type="rnborefpage" module="RNBO" display="tonormalized"></seealso>
<seealso name="rnbo_fromnormalized" type="rnborefpage" module="RNBO" display="fromnormalized"></seealso>
<seealso name="rnbo_gen~" type="rnborefpage" module="RNBO" display="gen~"></seealso>
<seealso name="rnbo_set" type="rnborefpage" module="RNBO" display="set"></seealso>
</seealsolist>
</c74object>