Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > b707d9a4ee443103660a75ccb6e51334 > files > 2848

csound-doc-5.19.01-10.mga5.noarch.rpm

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>vmult</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.76.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="vmirror.html" title="vmirror" />
    <link rel="next" href="vmult_i.html" title="vmult_i" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">vmult</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="vmirror.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="vmult_i.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry" title="vmult">
      <a id="vmult"></a>
      <div class="titlepage"></div>
      <a id="IndexVmult" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">vmult</span>
        </h2>
        <p>vmult — 
      Multiplies a vector in a table by a scalar value.
    </p>
      </div>
      <div class="refsect1" title="Description">
        <a id="idp52201080"></a>
        <h2>Description</h2>
        <p>
      Multiplies a vector in a table by a scalar value.
    </p>
      </div>
      <div class="refsect1" title="Syntax">
        <a id="idp52201744"></a>
        <h2>Syntax</h2>
        <pre class="synopsis"><span class="command"><strong>vmult</strong></span>  ifn, kval, kelements [, kdstoffset] [, kverbose]</pre>
      </div>
      <div class="refsect1" title="Initialization">
        <a id="idp52247008"></a>
        <h2>Initialization</h2>
        <p>
      <span class="emphasis"><em>ifn</em></span> - number of the table hosting the vectorial signal to be processed
    </p>
      </div>
      <div class="refsect1" title="Performance">
        <a id="idp52247880"></a>
        <h2>Performance</h2>
        <p>
      <span class="emphasis"><em>kval</em></span> - scalar value to be multiplied
      </p>
        <p>
      <span class="emphasis"><em>kelements</em></span> - number of elements of the vector
    </p>
        <p>
      <span class="emphasis"><em>kdstoffset</em></span> - index offset for the destination table (Optional, default = 0)
    </p>
        <p>
      <span class="emphasis"><em>kverbose</em></span> - Selects whether or not warnings are printed (Default=0)
    </p>
        <p>
      <span class="emphasis"><em>vmult</em></span> multiplies each element of the vector contained in the table <span class="emphasis"><em>ifn</em></span> by <span class="emphasis"><em>kval</em></span>, starting from table index <span class="emphasis"><em>kdstoffset</em></span>. This enables you to process a specific section of a table by specifying the offset and the number of elements to be processed. Offset is counted starting from 0, so if no offset is specified (or set to 0), the table will be modified from the beginning.
    </p>
        <p>
      Note that this opcode runs at k-rate so the value of <span class="emphasis"><em>kval</em></span> is multiplied every control period. Use with care or you will end up with very large numbers (or use <a class="link" href="vmult_i.html" title="vmult_i"><em class="citetitle">vmult_i</em></a>).
    </p>
        <p>
      These opcodes (<a class="link" href="vadd.html" title="vadd"><em class="citetitle">vadd</em></a>, <a class="link" href="vmult.html" title="vmult"><em class="citetitle">vmult</em></a>, <a class="link" href="vpow.html" title="vpow"><em class="citetitle">vpow</em></a> and <a class="link" href="vexp.html" title="vexp"><em class="citetitle">vexp</em></a>) perform numeric operations between a vectorial control signal (hosted by the table <span class="emphasis"><em>ifn</em></span>), and a scalar signal (<span class="emphasis"><em>kval</em></span>). Result is a new vector that overrides old values of <span class="emphasis"><em>ifn</em></span>. All these opcodes work at k-rate.
    </p>
        <p>
      Negative values for <span class="emphasis"><em>kdstoffset</em></span> are valid. Elements from the vector that are outside the table, will be discarded, and they will not wrap around the table.
    </p>
        <p>
      If the optional <span class="emphasis"><em>kverbose</em></span> argument is different to 0, the opcode will print warning messages every k-pass if table lengths are exceeded.
    </p>
        <p>
      In all these opcodes, the resulting vectors are stored in <span class="emphasis"><em>ifn</em></span>, overriding the initial vectors. If you want to keep initial vector, use <a class="link" href="vcopy.html" title="vcopy"><em class="citetitle">vcopy</em></a> or <a class="link" href="vcopy_i.html" title="vcopy_i"><em class="citetitle">vcopy_i</em></a> to copy it in another table. All these operators are designed to be used together with other opcodes that operate with vectorial signals such as <span class="emphasis"><em>bmscan</em></span>, <a class="link" href="vcella.html" title="vcella"><em class="citetitle">vcella</em></a>, <a class="link" href="adsynt.html" title="adsynt"><em class="citetitle">adsynt</em></a>, <a class="link" href="adsynt2.html" title="adsynt2"><em class="citetitle">adsynt2</em></a>, etc.  They can also be useful in conjunction with the spectral opcodes <a class="link" href="pvsftw.html" title="pvsftw"><em class="citetitle">pvsftw</em></a> and <a class="link" href="pvsftr.html" title="pvsftr"><em class="citetitle">pvsftr</em></a>.
    </p>
        <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
          <table border="0" summary="Note">
            <tr>
              <td rowspan="2" align="center" valign="top" width="25">
                <img alt="[Note]" src="images/note.png" />
              </td>
              <th align="left">Note</th>
            </tr>
            <tr>
              <td align="left" valign="top">
                <p>
        Please note that the <span class="emphasis"><em>elements</em></span> 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 <span class="emphasis"><em>ielements</em></span> is changed inside the instrument, for example in:
        </p>
                <pre class="programlisting">
    <span class="oblock">instr</span> 1
ielements  <span class="op">=</span>        10
           <span class="opc">vadd</span>     1, 1, ielements
ielements  <span class="op">=</span>        20
           <span class="opc">vadd</span>     2, 1, ielements
           <span class="opc">turnoff</span>
    <span class="oblock">endin</span></pre>
                <p>
      </p>
              </td>
            </tr>
          </table>
        </div>
      </div>
      <div class="refsect1" title="Example">
        <a id="idp52264712"></a>
        <h2>Example</h2>
        <p>
      Here is an example of the vmult opcode. It uses the file <a class="ulink" href="examples/vmult-2.csd" target="_top"><em class="citetitle">vmult-2.csd</em></a>.
      </p>
        <div class="example">
          <a id="idp52265688"></a>
          <p class="title">
            <strong>Example 957. Example of the vmult opcode.</strong>
          </p>
          <div class="example-contents">
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
<span class="comment">; Audio out   Audio in</span>
-odac           -iadc     <span class="comment">;;;RT audio I/O</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o cigoto.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span><span class="op">=</span>44100
<span class="ohdr">ksmps</span><span class="op">=</span>128
<span class="ohdr">nchnls</span><span class="op">=</span>2

	<span class="oblock">instr</span> 1
ifn1 <span class="op">=</span> p4
ival <span class="op">=</span> p5
ielements <span class="op">=</span> p6
idstoffset <span class="op">=</span> p7
kval <span class="opc">init</span> 25
<span class="opc">vmult</span> ifn1, ival, ielements, idstoffset, 1
	<span class="oblock">endin</span>

	<span class="oblock">instr</span> 2	<span class="comment">;Printtable</span>
itable <span class="op">=</span> p4
isize <span class="op">=</span> <span class="opc">ftlen</span>(itable)
kcount <span class="opc">init</span> 0
kval <span class="opc">table</span> kcount, itable
<span class="opc">printk2</span> kval

<span class="octrl">if</span> (kcount <span class="op">==</span> isize) then
  <span class="opc">turnoff</span>
<span class="octrl">endif</span>

kcount <span class="op">=</span> kcount <span class="op">+</span> 1 
	<span class="oblock">endin</span>


<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>

<span class="stamnt">f</span> 1 0 16 -7 1 16 17

<span class="stamnt">i</span>2	0.0	0.2	1
<span class="stamnt">i</span>1	0.4	0.01	1	2	3	4
<span class="stamnt">i</span>2	0.8	0.2	1
<span class="stamnt">i</span>1	1.0	0.01	1	0.5	5	-3
<span class="stamnt">i</span>2	1.2	0.2	1
<span class="stamnt">i</span>1	1.4	0.01	1	1.5	10	12
<span class="stamnt">i</span>2	1.6	0.2	1
<span class="stamnt">e</span>

<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
        <p>
      Here is another example of the vmult opcode. It uses the file <a class="ulink" href="examples/vmult.csd" target="_top"><em class="citetitle">vmult.csd</em></a>.
      </p>
        <div class="example">
          <a id="idp52267240"></a>
          <p class="title">
            <strong>Example 958. Example of the vmult opcode.</strong>
          </p>
          <div class="example-contents">
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
<span class="comment">; Audio out   Audio in</span>
-odac           -iadc     <span class="comment">;;;RT audio I/O</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o cigoto.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>


<span class="ohdr">sr</span><span class="op">=</span>44100
<span class="ohdr">kr</span><span class="op">=</span>4410
<span class="ohdr">ksmps</span><span class="op">=</span>10
<span class="ohdr">nchnls</span><span class="op">=</span>2

	<span class="oblock">instr</span> 1 <span class="comment">;table playback</span>
ar <span class="opc">lposcil</span> 1, 1, 0, 262144, 1
<span class="opc">outs</span> ar,ar
	<span class="oblock">endin</span>

	<span class="oblock">instr</span> 2
<span class="opc">vcopy</span> 2, 1, 40000 <span class="comment">;copy vector from sample to empty table</span>
<span class="opc">vmult</span> 5, 10000, 262144 <span class="comment">;scale noise to make it audible</span>
<span class="opc">vcopy</span> 1, 5, 40000 <span class="comment">;put noise into sample</span>
<span class="opc">turnoff</span>
	<span class="oblock">endin</span>

	<span class="oblock">instr</span> 3
<span class="opc">vcopy</span> 1, 2, 40000 <span class="comment">;put original information back in</span>
<span class="opc">turnoff</span>
	<span class="oblock">endin</span>

<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span>1  0 262144   -1 "beats.wav" 0 4 0
<span class="stamnt">f</span>2  0 262144   2  0

<span class="stamnt">f</span>5  0 262144   21  3 30000

<span class="stamnt">i</span>1 0 4
<span class="stamnt">i</span>2 3 1

<span class="stamnt">s</span>
<span class="stamnt">i</span>1 0 4
<span class="stamnt">i</span>3 3 1
<span class="stamnt">s</span>

<span class="stamnt">i</span>1 0 4

<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
      </div>
      <div class="refsect1" title="See also">
        <a id="idp52268248"></a>
        <h2>See also</h2>
        <p>
      <a class="link" href="vadd_i.html" title="vadd_i"><em class="citetitle">vadd_i</em></a>, <a class="link" href="vadd.html" title="vadd"><em class="citetitle">vadd_i</em></a>, <a class="link" href="vmult_i.html" title="vmult_i"><em class="citetitle">vmult</em></a>, <a class="link" href="vpow.html" title="vpow"><em class="citetitle">vpow</em></a> and <a class="link" href="vexp.html" title="vexp"><em class="citetitle">vexp</em></a>.
    </p>
      </div>
      <div class="refsect1" title="Credits">
        <a id="idp52271152"></a>
        <h2>Credits</h2>
        <p>Written by Gabriel Maldonado. Optional arguments added by Andres Cabrera and Istvan Varga.</p>
        <p>Example by Andres Cabrera.</p>
        <p>New in Csound 5 (Previously available only on CsoundAV)</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="vmirror.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="vmult_i.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">vmirror </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> vmult_i</td>
        </tr>
      </table>
    </div>
  </body>
</html>