summaryrefslogtreecommitdiff
path: root/opcodes/vcopy.xml
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/vcopy.xml')
-rw-r--r--opcodes/vcopy.xml207
1 files changed, 103 insertions, 104 deletions
diff --git a/opcodes/vcopy.xml b/opcodes/vcopy.xml
index 097216b..0ddedcd 100644
--- a/opcodes/vcopy.xml
+++ b/opcodes/vcopy.xml
@@ -1,105 +1,104 @@
-
-<refentry id="vcopy">
-<indexterm id="IndexVcopy"><primary>vcopy</primary></indexterm>
- <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
- <refmeta>
- <refentrytitle>vcopy</refentrytitle>
- </refmeta>
-
- <refnamediv>
- <refname>vcopy</refname>
- <refpurpose>
- Copies between two vectorial control signals
- </refpurpose>
- </refnamediv>
-
- <refsect1>
- <title>Description</title>
- <para>
- Copies between two vectorial control signals
- </para>
- </refsect1>
- <refsect1>
- <title>Syntax</title>
- <synopsis><command>vcopy</command> ifn, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis>
- </refsect1>
-
- <refsect1>
- <title>Initialization</title>
- <para>
- <emphasis>ifn1</emphasis> - number of the table where the vectorial signal will be copied (destination)
- </para>
- <para>
- <emphasis>ifn2</emphasis> - number of the table hosting the vectorial signal to be copied (source)
- </para>
- </refsect1>
-
- <refsect1>
- <title>Performance</title>
- <para>
- <emphasis>kelements</emphasis> - number of elements of the vector
- </para>
- <para>
- <emphasis>kdstoffset</emphasis> - index offset for the destination (ifn1) table (Default=0)
- </para>
- <para>
- <emphasis>ksrcoffset</emphasis> - index offset for the source (ifn2) table (Default=0)
- </para>
- <para>
- <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
- </para>
- <para>
- <emphasis>vcopy</emphasis> copies <emphasis>kelements</emphasis> elements from <emphasis>ifn2</emphasis> (starting from position <emphasis>isrcoffset</emphasis>) to <emphasis>ifn1</emphasis> (starting from position <emphasis>idstoffset</emphasis>). Useful to keep old vector values, by storing them in another table.
- </para>
- <para>
- Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>kdstoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
- </para>
- <para>
- If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
- </para>
- <warning>
- <para>
- Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
- </para>
- </warning>
- <para>
- This opcode works at k-rate (this means that every k-pass the vectors are copied). There's an i-rate version of this opcode called <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link>.
- </para>
- <note>
- <para>
- Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
- <programlisting>
- instr 1
-ielements = 10
-vadd 1, 1, ielements
-ielements = 20
-vadd 2, 1, ielements
-turnoff
- endin</programlisting>
- </para>
- </note>
- <para>
- All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>,<link linkend="vsubv"><citetitle>vsubv</citetitle></link>,<link linkend="vmultv"><citetitle>vmultv</citetitle></link>,<link linkend="vdivv"><citetitle>vdivv</citetitle></link>,<link linkend="vpowv"><citetitle>vpowv</citetitle></link>,<link linkend="vexp"><citetitle>vexp</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
- </para>
- <para><emphasis>Note:</emphasis> bmscan not yet available on Canonical Csound</para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
- Here is an example of the vcopy opcode. It uses the file <ulink url="examples/vcopy.csd"><citetitle>vcopy.csd</citetitle></ulink>.
-
- <example>
- <title>Example of the vcopy opcode.</title>
-
- <xi:include href="examples-xml/vcopy.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
- </example>
-
- </para>
- </refsect1>
- <refsect1>
- <title>Credits</title>
- <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
- <para>New in Csound 5 (Previously available only on CsoundAV)</para>
- </refsect1>
+
+<refentry id="vcopy">
+<indexterm id="IndexVcopy"><primary>vcopy</primary></indexterm>
+ <refentryinfo><title>Vectorial:Vectorial operations</title></refentryinfo>
+ <refmeta>
+ <refentrytitle>vcopy</refentrytitle>
+ </refmeta>
+
+ <refnamediv>
+ <refname>vcopy</refname>
+ <refpurpose>
+ Copies between two vectorial control signals
+ </refpurpose>
+ </refnamediv>
+
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Copies between two vectorial control signals
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Syntax</title>
+ <synopsis><command>vcopy</command> ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]</synopsis>
+ </refsect1>
+
+ <refsect1>
+ <title>Initialization</title>
+ <para>
+ <emphasis>ifn1</emphasis> - number of the table where the vectorial signal will be copied (destination)
+ </para>
+ <para>
+ <emphasis>ifn2</emphasis> - number of the table hosting the vectorial signal to be copied (source)
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Performance</title>
+ <para>
+ <emphasis>kelements</emphasis> - number of elements of the vector
+ </para>
+ <para>
+ <emphasis>kdstoffset</emphasis> - index offset for the destination (<emphasis>ifn1</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>ksrcoffset</emphasis> - index offset for the source (<emphasis>ifn2</emphasis>) table (Default=0)
+ </para>
+ <para>
+ <emphasis>kverbose</emphasis> - Selects whether or not warnings are printed (Default=0)
+ </para>
+ <para>
+ <emphasis>vcopy</emphasis> copies <emphasis>kelements</emphasis> elements from <emphasis>ifn2</emphasis> (starting from position <emphasis>ksrcoffset</emphasis>) to <emphasis>ifn1</emphasis> (starting from position <emphasis>kdstoffset</emphasis>). Useful to keep old vector values, by storing them in another table.
+ </para>
+ <para>
+ Negative values for <emphasis>kdstoffset</emphasis> and <emphasis>ksrcoffset</emphasis> are acceptable. If <emphasis>kdstoffset</emphasis> is negative, the out of range section of the vector will be discarded. If <emphasis>kdstoffset</emphasis> is negative, the out of range elements will be assumed to be 1 (i.e. the destination elements will not be changed). If elements for the destination vector are beyond the size of the table (including guard point), these elements are discarded (i.e. elements do not wrap around the tables). If elements for the source vector are beyond the table length, these elements are taken as 1 (i.e. the destination vector will not be changed for these elements).
+ </para>
+ <para>
+ If the optional <emphasis>kverbose</emphasis> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
+ </para>
+ <warning>
+ <para>
+ Using the same table as source and destination table in versions earlier than 5.04, might produce unexpected behavior, so use with care.
+ </para>
+ </warning>
+ <para>
+ This opcode works at k-rate (this means that every k-pass the vectors are copied). There's an i-rate version of this opcode called <link linkend="vcopy_i"><citetitle>vcopy_i</citetitle></link>.
+ </para>
+ <note>
+ <para>
+ Please note that the <emphasis>elements</emphasis> argument has changed in version 5.03 from i-rate to k-rate. This will change the opcode's behavior in the unusual cases where the i-rate variable <emphasis>ielements</emphasis> is changed inside the instrument, for example in:
+ <programlisting>
+ <emphasis role="oblock">instr</emphasis> 1
+ielements <emphasis role="op">=</emphasis> 10
+ <emphasis role="opc">vadd</emphasis> 1, 1, ielements
+ielements <emphasis role="op">=</emphasis> 20
+ <emphasis role="opc">vadd</emphasis> 2, 1, ielements
+ <emphasis role="opc">turnoff</emphasis>
+ <emphasis role="oblock">endin</emphasis></programlisting>
+ </para>
+ </note>
+ <para>
+ All these operators (<link linkend="vaddv"><citetitle>vaddv</citetitle></link>, <link linkend="vsubv"><citetitle>vsubv</citetitle></link>, <link linkend="vmultv"><citetitle>vmultv</citetitle></link>, <link linkend="vdivv"><citetitle>vdivv</citetitle></link>, <link linkend="vpowv"><citetitle>vpowv</citetitle></link>, <link linkend="vexp"><citetitle>vexp</citetitle></link>, <link linkend="vcopy"><citetitle>vcopy</citetitle></link> and <link linkend="vmap"><citetitle>vmap</citetitle></link>) are designed to be used together with other opcodes that operate with vectorial signals such as <emphasis>bmscan</emphasis>, <link linkend="vcella"><citetitle>vcella</citetitle></link>, <link linkend="adsynt"><citetitle>adsynt</citetitle></link>, <link linkend="adsynt2"><citetitle>adsynt2</citetitle></link> etc.
+ </para>
+ <para><emphasis>Note</emphasis>: <emphasis>bmscan</emphasis> not yet available on Canonical Csound</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Examples</title>
+ <para>
+ Here is an example of the vcopy opcode. It uses the file <ulink url="examples/vcopy.csd"><citetitle>vcopy.csd</citetitle></ulink>.
+ <example>
+ <title>Example of the vcopy opcode.</title>
+ <xi:include href="examples-xml/vcopy.csd.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1>
+ <title>Credits</title>
+ <para>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</para>
+ <para>New in Csound 5 (Previously available only on CsoundAV)</para>
+ </refsect1>
</refentry> \ No newline at end of file