bformenc1
Prev | Orchestra Opcodes and Operators | Next

## bformenc1

bformenc1 — Codes a signal into the ambisonic B format.

## Description

Codes a signal into the ambisonic B format

## Syntax

    aw, ax, ay, az bformenc1 asig, kalpha, kbeta

    aw, ax, ay, az, ar, as, at, au, av bformenc1 asig, kalpha, kbeta

    aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq bformenc1 \
          asig, kalpha, kbeta

    aarray[] bformenc1 asig, kalpha, kbeta

## Performance

aw, ax, ay, ... -- output cells of the B format.

aarray -- output array to hold cells of the B format.

asig -- input signal.

kalpha –- azimuth angle in degrees (anticlockwise).

kbeta -- altitude angle in degrees.

## Example

Here is an example of the bformenc1 opcode. It uses the file bformenc1.csd.

Example 99. Example of the bformenc1 opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    ; Audio out   Audio in    No messages
    ;-odac           -iadc     -d     ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
     -o bformenc.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>
    sr = 44100
    ksmps = 32
    nchnls = 8
    0dbfs = 1

    instr 1 ;without arrays
    ; generate pink noise
    anoise pinkish 1

    ; two full turns
    kalpha line 0, p3, 720
    kbeta = 0

    ; generate B format
    aw, ax, ay, az, ar, as, at, au, av bformenc1 anoise, kalpha, kbeta

    ; decode B format for 8 channel circle loudspeaker setup
    a1, a2, a3, a4, a5, a6, a7, a8 bformdec1 4, aw, ax, ay, az, ar, as, at, au, av

    ; write audio out
    outo a1, a2, a3, a4, a5, a6, a7, a8
    endin

    instr 2 ;with arrays (csound6)
    ;set file names for:
    S_bform = "bform_out.wav" ;b-format (2nd order) output
    S_sound = "sound_out.wav" ;sound output

    ; generate pink noise
    anoise pinkish 1

    ; two full turns
    kalpha line 0, p3, 720
    kbeta = 0

    ;create array for B-format 2nd order (9 chnls)
    aBform[] init 9

    ; generate B-format
    aBform bformenc1 anoise, kalpha, kbeta

    ;write out b-format
    fout "fout.wav", 18, aBform

    ;create array for audio output (8 channels)
    aAudio[] init 8

    ;decode B format for 8 channel circle loudspeaker setup
    aAudio bformdec1 4, aBform

    ; write audio out
    fout S_sound, 18, aAudio
    endin

    </CsInstruments>
    <CsScore>
    i 1 0 8
    i 2 8 8
    e
    </CsScore>
    </CsoundSynthesizer>

## See also

Panning and Spatialization: Ambisonics

## Credits

Author: Richard Furse, Bruce Wiggins and Fons Adriaensen, following code by Samuel Groner
2008

New in version 5.09

Array output new in version 6.01

Prev | Up | Next
bexprnd | Home | bformdec1