csound-expression-0.3.3: Csound combinator library

Safe HaskellSafe-Infered

CsoundExpr.Opcodes.Sigmod.Panspatl

Description

Panning and Spatialization

Synopsis

Documentation

locsend :: MultiOutSource

  • opcode : locsend
  • syntax :
   a1, a2 locsend
   a1, a2, a3, a4 locsend
  • description :

locsend depends upon the existence of a previously defined locsig. The number of output signals must match the number in the previous locsig. The output signals from locsend are derived from the values given for distance and reverb in the locsig and are ready to be sent to local or global reverb units (see example below). The reverb amount and the balance between the 2 or 4 channels are calculated in the same way as described in the Dodge book (an essential text!).

locsig :: (K k0, K k1, K k2) => Arate -> k0 -> k1 -> k2 -> MultiOutSource

  • opcode : locsig
  • syntax :
   a1, a2 locsig asig, kdegree, kdistance, kreverbsend
   a1, a2, a3, a4 locsig asig, kdegree, kdistance, kreverbsend
  • description :

locsig takes an input signal and distributes it among 2 or 4 channels using values in degrees to calculate the balance between adjacent channels. It also takes arguments for distance (used to attenuate signals that are to sound as if they are some distance further than the loudspeaker itself), and for the amount the signal that will be sent to reverberators. This unit is based upon the example in the Charles Dodge/Thomas Jerse book, Computer Music, page 320.

pan :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Irate -> MultiOutSource

  • opcode : pan
  • syntax :
   a1, a2, a3, a4 pan asig, kx, ky, ifn [, imode] [, ioffset]
  • description :

Distribute an audio signal amongst four channels with localization control.

pan2 :: X x0 => [Irate] -> Arate -> x0 -> MultiOutSource

  • opcode : pan2
  • syntax :
   a1, a2 pan2 asig, xp [, imode]
  • description :

Distribute an audio signal across two channels with a choice of methods.

space :: (K k0, K k1, K k2, K k3) => Arate -> Irate -> k0 -> k1 -> k2 -> k3 -> MultiOutSource

  • opcode : space
  • syntax :
   a1, a2, a3, a4 space asig, ifn, ktime, kreverbsend, kx, ky
  • description :

space takes an input signal and distributes it among 4 channels using Cartesian xy coordinates to calculate the balance of the outputs. The xy coordinates can be defined in a separate text file and accessed through a Function statement in the score using Gen28, or they can be specified using the optional kx, ky arguments. The advantages to the former are:

spdist :: (K k0, K k1, K k2) => Irate -> k0 -> k1 -> k2 -> KrateSource

  • opcode : spdist
  • syntax :
   k1 spdist ifn, ktime, kx, ky
  • description :

spdist uses the same xy data as space, also either from a text file using Gen28 or from x and y arguments given to the unit directly. The purpose of this unit is to make available the values for distance that are calculated from the xy coordinates.

spsend :: MultiOutSource

  • opcode : spsend
  • syntax :
   a1, a2, a3, a4 spsend
  • description :

spsend depends upon the existence of a previously defined space. The output signals from spsend are derived from the values given for xy and reverb in the space and are ready to be sent to local or global reverb units (see example below).

spat3d :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOutSource

  • opcode : spat3d
  • syntax :
   aW, aX, aY, aZ spat3d ain, kX, kY, kZ, idist, ift, imode, imdel, iovr [, istor]
  • description :

This opcode positions the input sound in a 3D space, with optional simulation of room acoustics, in various output formats. spat3d allows moving the sound at k-rate (this movement is interpolated internally to eliminate zipper noise if sr not equal to kr).

spat3di :: [Irate] -> Arate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOutSource

  • opcode : spat3di
  • syntax :
   aW, aX, aY, aZ spat3di ain, iX, iY, iZ, idist, ift, imode [, istor]
  • description :

This opcode positions the input sound in a 3D space, with optional simulation of room acoustics, in various output formats. With spat3di, sound source position is set at i-time.

spat3dt :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOutSource

  • opcode : spat3dt
  • syntax :
   spat3dt ioutft, iX, iY, iZ, idist, ift, imode, irlen [, iftnocl]
  • description :

This opcode positions the input sound in a 3D space, with optional simulation of room acoustics, in various output formats. spat3dt can be used to render the impulse response at i-time, storing output in a function table, suitable for convolution.

vbap16 :: (K k0, K k1) => [k0] -> Arate -> k1 -> MultiOutSource

  • opcode : vbap16
  • syntax :
   ar1,..., ar16 vbap16 asig, kazim [, kelev] [, kspread]
  • description :

Distributes an audio signal among 16 channels.

vbap16move :: Arate -> Irate -> Irate -> Irate -> [Irate] -> MultiOutSource

  • opcode : vbap16move
  • syntax :
   ar1,..., ar16 vbap16move asig, idur, ispread, ifldnum, ifld1 
       [, ifld2] [...]
  • description :

Distribute an audio signal among 16 channels with moving virtual sources.

vbap4 :: (K k0, K k1) => [k0] -> Arate -> k1 -> MultiOutSource

  • opcode : vbap4
  • syntax :
   ar1, ar2, ar3, ar4 vbap4 asig, kazim [, kelev] [, kspread]
  • description :

Distributes an audio signal among 4 channels.

vbap4move :: Arate -> Irate -> Irate -> Irate -> [Irate] -> MultiOutSource

  • opcode : vbap4move
  • syntax :
   ar1, ar2, ar3, ar4 vbap4move asig, idur, ispread, ifldnum, ifld1 
       [, ifld2] [...]
  • description :

Distributes an audio signal among 4 channels with moving virtual sources.

vbap8 :: (K k0, K k1) => [k0] -> Arate -> k1 -> MultiOutSource

  • opcode : vbap8
  • syntax :
   ar1,..., ar8 vbap8 asig, kazim [, kelev] [, kspread]
  • description :

Distributes an audio signal among 8 channels.

vbap8move :: Arate -> Irate -> Irate -> Irate -> [Irate] -> MultiOutSource

  • opcode : vbap8move
  • syntax :
   ar1,..., ar8 vbap8move asig, idur, ispread, ifldnum, ifld1 
       [, ifld2] [...]
  • description :

Distributes an audio signal among 8 channels with moving virtual sources.

vbaplsinit :: Irate -> Irate -> [Irate] -> SignalOutSource

  • opcode : vbaplsinit
  • syntax :
   vbaplsinit idim, ilsnum [, idir1] [, idir2] [...] [, idir32]
  • description :

Configures VBAP output according to loudspeaker parameters.

vbapz :: (K k0, K k1) => [k0] -> Irate -> Irate -> Arate -> k1 -> SignalOutSource

  • opcode : vbapz
  • syntax :
   vbapz inumchnls, istartndx, asig, kazim [, kelev] [, kspread]
  • description :

Writes a multi-channel audio signal to a ZAK array.

vbapzmove :: Irate -> Irate -> Arate -> Irate -> Irate -> Irate -> [Irate] -> SignalOutSource

  • opcode : vbapzmove
  • syntax :
   vbapzmove inumchnls, istartndx, asig, idur, ispread, ifldnum, ifld1, 
       ifld2, [...]
  • description :

Writes a multi-channel audio signal to a ZAK array with moving virtual sources.

hrtfer :: (K k0, K k1) => Arate -> k0 -> k1 -> MultiOutSource

  • opcode : hrtfer
  • syntax :
   aleft, aright hrtfer asig, kaz, kelev, “HRTFcompact”
  • description :

Output is binaural (headphone) 3D audio.

hrtfmove :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Irate -> Irate -> MultiOutSource

  • opcode : hrtfmove
  • syntax :
   aleft, aright hrtfmove asrc, kAz, kElev, ifilel, ifiler [, imode, ifade, isr]
  • description :

This opcode takes a source signal and spatialises it in the 3 dimensional space around a listener by convolving the source with stored head related transfer function (HRTF) based filters.

hrtfmove2 :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Irate -> Irate -> MultiOutSource

  • opcode : hrtfmove2
  • syntax :
   aleft, aright hrtfmove2 asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr]
  • description :

This opcode takes a source signal and spatialises it in the 3 dimensional space around a listener using head related transfer function (HRTF) based filters.

hrtfstat :: [Irate] -> Arate -> Irate -> Irate -> Irate -> Irate -> MultiOutSource

  • opcode : hrtfstat
  • syntax :
   aleft, aright hrtfstat asrc, iAz, iElev, ifilel, ifiler [,iradius, isr]
  • description :

This opcode takes a source signal and spatialises it in the 3 dimensional space around a listener using head related transfer function (HRTF) based filters. It produces a static output (azimuth and elevation parameters are i-rate), because a static source allows much more efficient processing than hrtfmove and hrtfmove2,.

bformdec :: [Arate] -> Irate -> Arate -> Arate -> Arate -> Arate -> MultiOutSource

  • opcode : bformdec
  • syntax :
   ao1, ao2 bformdec isetup, aw, ax, ay, az [, ar, as, at, au, av 
       [, abk, al, am, an, ao, ap, aq]]
   ao1, ao2, ao3, ao4 bformdec isetup, aw, ax, ay, az [, ar, as, at, 
       au, av [, abk, al, am, an, ao, ap, aq]]
   ao1, ao2, ao3, ao4, ao5 bformdec isetup, aw, ax, ay, az [, ar, as, 
       at, au, av [, abk, al, am, an, ao, ap, aq]]
   ao1, ao2, ao3, ao4, ao5, ao6, ao7, ao8 bformdec isetup, aw, ax, ay, az 
       [, ar, as, at, au, av [, abk, al, am, an, ao, ap, aq]]]
  • description :

Decodes an ambisonic B format signal into loudspeaker specific signals. Note that this opcode is deprecated as it is inaccurate, and is replaced by the much better opcode bformdec1 which replicates all the important features.

bformenc :: (K k0, K k1, K k2, K k3) => Arate -> k0 -> k1 -> k2 -> k3 -> MultiOutSource

  • opcode : bformenc
  • syntax :
   aw, ax, ay, az bformenc asig, kalpha, kbeta, kord0, kord1
   aw, ax, ay, az, ar, as, at, au, av bformenc asig, kalpha, kbeta, 
       kord0, kord1, kord2
   aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq bformenc 
       asig, kalpha, kbeta, kord0, kord1, kord2, kord3
  • description :

Codes a signal into the ambisonic B format. Note that this opcode is deprecated as it is inaccurate, and is replaced by the much better opcode bformenc1 which replicates all the important features; also note that the gain arguments are not available in bformenc1.

bformencK :: (K k0, K k1, K k2, K k3, K k4) => Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> MultiOutSource

  • opcode : bformenc
  • syntax :
   aw, ax, ay, az bformenc asig, kalpha, kbeta, kord0, kord1
   aw, ax, ay, az, ar, as, at, au, av bformenc asig, kalpha, kbeta, 
       kord0, kord1, kord2
   aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq bformenc 
       asig, kalpha, kbeta, kord0, kord1, kord2, kord3
  • description :

Codes a signal into the ambisonic B format. Note that this opcode is deprecated as it is inaccurate, and is replaced by the much better opcode bformenc1 which replicates all the important features; also note that the gain arguments are not available in bformenc1.