<?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="bufferop~" category="Sampling">
<!--METADATA-->
<metadatalist>
<metadata name="author">Cycling '74</metadata>
<metadata name="tag">RNBO</metadata>
<metadata name="tag">RNBO Sampling</metadata>
</metadatalist>
<digest>Apply an expression to a buffer.</digest>
<description><p>
Act on buffers using expressions and Max-style apply syntax. Expressions fill (and overwrite) the contents of named buffer objects, while apply operations manipulate the existing contents of them. In expressions, x is a function that goes from 0 - 1 over the duration of the buffer.
</p></description>
<!--ARGUMENTS-->
<objarglist>
<objarg name="buffername" optional="0" type="symbol">
<digest>Buffer to operate on.</digest>
<description><p>
Sets the buffer that the object will operate on when triggered.
</p></description>
</objarg>
</objarglist>
<!--OPTIONS-->
<rnbooptionlist>
<option name="apply" size="1" type="symbol">
<digest>Max style buffer functions (hanning, hamming, gain etc.).</digest>
<description><p>
The apply attribute provides support for Max-style buffer functions and must be declared directly in the object box. These functions operate on the existing contents of a buffer and are destructive operations, meaning they alter the internal contents of the buffer on which they operate. Apply operations are cumulative and any number of them can operate on a given buffer.
</p>
<p>
The available functions are gain, for scaling the gain of the entire buffer by a certain amount, normalize, for scaling the buffer relative to a peak value (defined using the right inlet), and the windowing functions 
<m>blackman</m>
, 
<m>hamming</m>
, 
<m>hanning</m>
, 
<m>triangle</m>
, and 
<m>welch</m>
. All windowing functions support the optional 
<m>half</m>
 argument, which must be declared as argument after the name of the function. When used, 
<m>half</m>
 applies the function only to the second half of the buffer.
</p></description>
</option>
<option name="buffername" size="1" type="symbol">
<digest>Buffer to operate on.</digest>
<description><p>
Sets the buffer that the object will operate on when triggered.
</p></description>
</option>
<option name="expr" size="1" type="symbol">
<digest>Expression.</digest>
<description><p>
The expression that will be used to fill the associated buffer. Supports the full rnbo expression language and library of operators.
Some extra variables are provided to allow better access to the buffer:
</p>
<ol>
<li>x = 0 &#x3C;= x &#x3C;= 1,</li>
<li>value = the current value at the position,</li>
<li>index = current sample index,</li>
<li>bufsize = buffer size.
You can also access the buffer directly via buffer[i].</li>
</ol></description>
</option>
</rnbooptionlist>
<!--ATTRIBUTES-->
<rnboattributelist>
<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="channels" size="1" type="list">
<digest>Channel(s) to work on. Leave empty for all of them.</digest>
<description><p>
If a channel or list of channels is specified, the operation will only work on the specified channels. If none are specified, the operation will affect all channels in the associated buffer.
</p></description>
</attribute>
<attribute name="trigger" size="1" type="bang">
<digest>Trigger operation.</digest>
<description><p>
Sending a bang to the inlet evaluates the expression or apply method and applies it on the buffer specified using the buffername attribute.
</p></description>
</attribute>
</rnboattributelist>
<!--INLETS-->
<rnboinletlist>
<inlet id="inlet_trigger" name="trigger" type="bang">
<digest>Trigger operation.</digest>
<description><p>
Sending a bang to the inlet evaluates the expression or apply method and applies it on the buffer specified using the buffername attribute.
</p></description>
</inlet>
</rnboinletlist>
<!--OUTLETS-->
<!--NONE-->
<!--SEE ALSO-->
<seealsolist>
<seealso name="buffer~" type="refpage" module="MSP"></seealso>
<seealso name="rnbo_buffer~" type="rnborefpage" module="RNBO" display="buffer~"></seealso>
<seealso name="rnbo_multibuffer~" type="rnborefpage" module="RNBO" display="multibuffer~"></seealso>
<seealso name="rnbo_lookup~" type="rnborefpage" module="RNBO" display="lookup~"></seealso>
<seealso name="rnbo_dim" type="rnborefpage" module="RNBO" display="dim"></seealso>
<seealso name="rnbo_channels" type="rnborefpage" module="RNBO" display="channels"></seealso>
</seealsolist>
</c74object>