<?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>bformdec1</title> <link rel="stylesheet" type="text/css" href="csound.css" /> <link rel="stylesheet" type="text/css" href="syntax-highlighting.css" /> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /> <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="bformenc1.html" title="bformenc1" /> <link rel="next" href="binit.html" title="binit" /> </head> <body> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">bformdec1</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="bformenc1.html">Prev</a> </td> <th width="60%" align="center">Orchestra Opcodes and Operators</th> <td width="20%" align="right"> <a accesskey="n" href="binit.html">Next</a></td> </tr> </table> <hr /> </div> <div class="refentry"> <a id="bformdec1"></a> <div class="titlepage"></div> <a id="IndexBformdec1" class="indexterm"></a> <div class="refnamediv"> <h2> <span class="refentrytitle">bformdec1</span> </h2> <p>bformdec1 — Decodes an ambisonic B format signal </p> </div> <div class="refsect1"> <a id="idm281472949228504"></a> <h2>Description</h2> <p> Decodes an ambisonic B format signal into loudspeaker specific signals. </p> </div> <div class="refsect1"> <a id="idm281472949227080"></a> <h2>Syntax</h2> <pre class="synopsis">ao1, ao2 <span class="command"><strong>bformdec1</strong></span> isetup, aw, ax, ay, az [, ar, as, at, au, av \ [, abk, al, am, an, ao, ap, aq]]</pre> <pre class="synopsis">ao1, ao2, ao3, ao4 <span class="command"><strong>bformdec1</strong></span> isetup, aw, ax, ay, az [, ar, as, at, \ au, av [, abk, al, am, an, ao, ap, aq]]</pre> <pre class="synopsis">ao1, ao2, ao3, ao4, ao5 <span class="command"><strong>bformdec1</strong></span> isetup, aw, ax, ay, az [, ar, as, \ at, au, av [, abk, al, am, an, ao, ap, aq]]</pre> <pre class="synopsis">ao1, ao2, ao3, ao4, ao5, ao6, ao7, ao8 <span class="command"><strong>bformdec1</strong></span> isetup, aw, ax, ay, az \ [, ar, as, at, au, av [, abk, al, am, an, ao, ap, aq]]]</pre> <pre class="synopsis">aout[] <span class="command"><strong>bformdec1</strong></span> isetup, abform[]</pre> </div> <div class="refsect1"> <a id="idm281472949139128"></a> <h2>Initialization</h2> <p> Note that horizontal angles are measured anticlockwise in this description. </p> <p> <span class="emphasis"><em>isetup</em></span> –- loudspeaker setup. There are five supported setups: </p> <div class="itemizedlist"> <ul class="itemizedlist" style="list-style-type: disc; "> <li class="listitem">1. Stereo - L(90), R(-90); this is an M+S style stereo decode.</li> <li class="listitem">2. Quad - FL(45), BL(135), BR(-135), FR(-45). This is a first-order `in-phase' decode.</li> <li class="listitem">3. 5.0 - L(30),R(-30),C(0),BL(110),BR(-110). Note that many people do not actually use the angles above for their speaker arrays and a good decode for DVD etc can be achieved using the Quad configuration to feed L, R, BL and BR (leaving C silent).</li> <li class="listitem">4. Octagon - FFL(22.5),FLL(67.5),BLL(112.5),BBL(157.5),BBR(-157.5),BRR(-112.5),FRR(-67.5),FFR(-22.5). This is a first-, second- or third-order `in-phase' decode, depending on the number of input channels.</li> <li class="listitem">5. Cube - FLD(45,-35.26),FLU(45,35.26),BLD(135,-35.26),BLU(135,35.26),BRD(-135,-35.26),BRU(-135,35.26),FRD(-45,-35.26),FRU(-45,35.26). This is a first-order `in-phase' decode.</li> </ul> </div> <p> </p> </div> <div class="refsect1"> <a id="idm281472949132824"></a> <h2>Performance</h2> <p> <span class="emphasis"><em>aw, ax, ay, ... </em></span> -- input signal in the B format. </p> <p> <span class="emphasis"><em>ao1 .. ao8</em></span> -– loudspeaker specific output signals. </p> </div> <div class="refsect1"> <a id="idm281472949130072"></a> <h2>Example</h2> <p> Here is an example of the bformdec1 opcode. It uses the file <a class="ulink" href="examples/bformenc1.csd" target="_top"><em class="citetitle">bformenc1.csd</em></a>. </p> <div class="example"> <a id="idm281472949128216"></a> <p class="title"> <strong>Example 90. Example of the bformdec1 opcode.</strong> </p> <div class="example-contents"> <p>See the sections <a class="link" href="UsingRealTime.html" title="Real-Time Audio"><em class="citetitle">Real-time Audio</em></a> and <a class="link" href="CommandFlags.html" title="Csound command line"><em class="citetitle">Command Line Flags</em></a> for more information on using command line flags.</p> <div class="refsect1"> <a id="idm281472783520392"></a> <pre class="programlisting"> <span class="nt"><CsoundSynthesizer></span> <span class="nt"><CsOptions></span> <span class="c1">; Select audio/midi flags here according to platform</span> <span class="c1">; Audio out Audio in No messages</span> <span class="c1">;-odac -iadc -d ;;;RT audio I/O</span> <span class="c1">; For Non-realtime ouput leave only the line below:</span> -o bformenc.wav -W <span class="c1">;;; for file output any platform</span> <span class="nt"></CsOptions></span> <span class="nt"><CsInstruments></span> <span class="vg">sr</span> <span class="o">=</span> <span class="mi">44100</span> <span class="vg">ksmps</span> <span class="o">=</span> <span class="mi">32</span> <span class="vg">nchnls</span> <span class="o">=</span> <span class="mi">8</span> <span class="vg">0dbfs</span> <span class="o">=</span> <span class="mi">1</span> <span class="kd">instr</span> <span class="nf">1</span> <span class="c1">;without arrays</span> <span class="c1">; generate pink noise</span> a<span class="n">noise</span> <span class="nb">pinkish</span> <span class="mi">1</span> <span class="c1">; two full turns</span> k<span class="n">alpha</span> <span class="nb">line</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">p3</span><span class="p">,</span> <span class="mi">720</span> k<span class="n">beta</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1">; generate B format</span> a<span class="n">w</span><span class="p">,</span> a<span class="n">x</span><span class="p">,</span> a<span class="n">y</span><span class="p">,</span> a<span class="n">z</span><span class="p">,</span> a<span class="n">r</span><span class="p">,</span> a<span class="n">s</span><span class="p">,</span> a<span class="n">t</span><span class="p">,</span> a<span class="n">u</span><span class="p">,</span> a<span class="n">v</span> <span class="nb">bformenc1</span> a<span class="n">noise</span><span class="p">,</span> k<span class="n">alpha</span><span class="p">,</span> k<span class="n">beta</span> <span class="c1">; decode B format for 8 channel circle loudspeaker setup</span> a<span class="n">1</span><span class="p">,</span> a<span class="n">2</span><span class="p">,</span> a<span class="n">3</span><span class="p">,</span> a<span class="n">4</span><span class="p">,</span> a<span class="n">5</span><span class="p">,</span> a<span class="n">6</span><span class="p">,</span> a<span class="n">7</span><span class="p">,</span> a<span class="n">8</span> <span class="nb">bformdec1</span> <span class="mi">4</span><span class="p">,</span> a<span class="n">w</span><span class="p">,</span> a<span class="n">x</span><span class="p">,</span> a<span class="n">y</span><span class="p">,</span> a<span class="n">z</span><span class="p">,</span> a<span class="n">r</span><span class="p">,</span> a<span class="n">s</span><span class="p">,</span> a<span class="n">t</span><span class="p">,</span> a<span class="n">u</span><span class="p">,</span> a<span class="n">v</span> <span class="c1">; write audio out</span> <span class="nb">outo</span> a<span class="n">1</span><span class="p">,</span> a<span class="n">2</span><span class="p">,</span> a<span class="n">3</span><span class="p">,</span> a<span class="n">4</span><span class="p">,</span> a<span class="n">5</span><span class="p">,</span> a<span class="n">6</span><span class="p">,</span> a<span class="n">7</span><span class="p">,</span> a<span class="n">8</span> <span class="kd">endin</span> <span class="kd">instr</span> <span class="nf">2</span> <span class="c1">;with arrays (csound6)</span> <span class="c1">;set file names for:</span> S<span class="n">_bform</span> <span class="o">=</span> <span class="s">"bform_out.wav"</span> <span class="c1">;b-format (2nd order) output</span> S<span class="n">_sound</span> <span class="o">=</span> <span class="s">"sound_out.wav"</span> <span class="c1">;sound output</span> <span class="c1">; generate pink noise</span> a<span class="n">noise</span> <span class="nb">pinkish</span> <span class="mi">1</span> <span class="c1">; two full turns</span> k<span class="n">alpha</span> <span class="nb">line</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">p3</span><span class="p">,</span> <span class="mi">720</span> k<span class="n">beta</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1">;create array for B-format 2nd order (9 chnls)</span> a<span class="n">Bform</span><span class="p">[]</span> <span class="nb">init</span> <span class="mi">9</span> <span class="c1">; generate B-format</span> a<span class="n">Bform</span> <span class="nb">bformenc1</span> a<span class="n">noise</span><span class="p">,</span> k<span class="n">alpha</span><span class="p">,</span> k<span class="n">beta</span> <span class="c1">;write out b-format</span> <span class="nb">fout</span> <span class="s">"fout.wav"</span><span class="p">,</span> <span class="mi">18</span><span class="p">,</span> a<span class="n">Bform</span> <span class="c1">;create array for audio output (8 channels)</span> a<span class="n">Audio</span><span class="p">[]</span> <span class="nb">init</span> <span class="mi">8</span> <span class="c1">;decode B format for 8 channel circle loudspeaker setup</span> a<span class="n">Audio</span> <span class="nb">bformdec1</span> <span class="mi">4</span><span class="p">,</span> a<span class="n">Bform</span> <span class="c1">; write audio out</span> <span class="nb">fout</span> S<span class="n">_sound</span><span class="p">,</span> <span class="mi">18</span><span class="p">,</span> a<span class="n">Audio</span> <span class="kd">endin</span> <span class="nt"></CsInstruments></span> <span class="nt"><CsScore></span> <span class="nb">i</span> <span class="mi">1</span> <span class="mi">0</span> <span class="mi">8</span> <span class="nb">i</span> <span class="mi">2</span> <span class="mi">8</span> <span class="mi">8</span> <span class="nb">e</span> <span class="nt"></CsScore></span> <span class="nt"></CsoundSynthesizer></span> </pre> </div> </div> </div> <p><br class="example-break" /> </p> </div> <div class="refsect1"> <a id="idm281472949123960"></a> <h2>See Also</h2> <p> <a class="link" href="bformenc1.html" title="bformenc1"><em class="citetitle">bformenc1</em></a> </p> </div> <div class="refsect1"> <a id="idm281472949121848"></a> <h2>Credits</h2> <p> </p> <table border="0" summary="Simple list" class="simplelist"> <tr> <td>Author: Richard Furse, Bruce Wiggins and Fons Adriaensen, following code by Samuel Groner</td> </tr> <tr> <td>2008</td> </tr> </table> <p> </p> <p>New in version 5.09</p> </div> </div> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="bformenc1.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="binit.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">bformenc1 </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> binit</td> </tr> </table> </div> </body> </html>