csl::VBAP Class Reference

Vector Base Amplitude Panning. More...

#include <VBAP.h>

Inheritance diagram for csl::VBAP:

csl::SpatialPanner csl::UnitGenerator csl::Observer csl::Model csl::StereoPanner csl::SurroundPanner

List of all members.

Public Member Functions

 VBAP (VBAPMode mode=kAuto, SpeakerLayout *layout=SpeakerLayout::defaultSpeakerLayout())
virtual ~VBAP ()
void nextBuffer (Buffer &outputBuffer, unsigned outBufNum) throw (CException)
 Just as any Effect in CSL, this method gets called at runtime by the audio driver. Here is where the actual processing happens.
void dump ()
 pretty-print the receiver

Protected Member Functions

virtual void * cache ()
 Returns an instance of it's cache data per sound source.
virtual void speakerLayoutChanged ()
 called when the speaker layout changes, so panners update precalculated data

Protected Attributes

VBAPMode mMode
 Prints useful information about this VBAP instance.
SpeakerSetLayoutmSpeakerSetLayout
 A reference to the layout that contains the speaker pairs or triplets.


Detailed Description

Vector Base Amplitude Panning.

A panning technique that uses amplitude as the method for sound placement (just as stereo panning does). When multiple speakers are present, sets of all possible adjacent speaker pairs or in triples (depending if doing 3D or only 2D panning) are found, reducing the "Active speakers" to two or three. See Pulkki for more info.


Constructor & Destructor Documentation

VBAP::VBAP ( VBAPMode  mode = kAuto,
SpeakerLayout layout = SpeakerLayout::defaultSpeakerLayout() 
)

Initializer for a VBAP Panner. Optionally a speaker layout can be specified. Defaults to auto, decided according to layout. If not specified uses the default speaker layout.

The two parameters are optional.
The mode defines wether to consider elevation (full 3D) positions, or horizontal only (kPantophonic). If not specified, the mode is chosen automatically. If the SpeakerLayout contains speakers at different elevations, then it sets the mode to 3D. Otherwise, it is set to 2D.
The layout parameter allows to specify a different layout than the default. The recomended use is to create a layout and set it as default. Then any Panner can make use of it.
This parameter overrides the use of the default layout, using the layout passed here.

References csl::SpeakerLayout::isPeriphonic(), csl::kAuto, csl::kIgnore, csl::kPantophonic, csl::kPeriphonic, mMode, csl::SpatialPanner::mSpeakerLayout, mSpeakerSetLayout, csl::SpeakerLayout::numSpeakers(), csl::UnitGenerator::setCopyPolicy(), and csl::UnitGenerator::setNumChannels().

VBAP::~VBAP (  )  [virtual]

References mSpeakerSetLayout.


Member Function Documentation

void VBAP::nextBuffer ( Buffer outputBuffer,
unsigned  outBufNum 
) throw (CException) [virtual]

void csl::VBAP::dump ( void   )  [inline, virtual]

pretty-print the receiver

Reimplemented from csl::UnitGenerator.

void * VBAP::cache (  )  [protected, virtual]

Returns an instance of it's cache data per sound source.

Implements csl::SpatialPanner.

void VBAP::speakerLayoutChanged (  )  [protected, virtual]

called when the speaker layout changes, so panners update precalculated data

Reimplemented from csl::SpatialPanner.

References csl::SpatialPanner::mSpeakerLayout, mSpeakerSetLayout, csl::SpeakerLayout::numSpeakers(), and csl::UnitGenerator::setNumChannels().


Member Data Documentation

Prints useful information about this VBAP instance.

Represents the dimensionality of the panner, either 2 or 3. 2D meaning horizontal panning only.

Referenced by VBAP().

A reference to the layout that contains the speaker pairs or triplets.

Referenced by speakerLayoutChanged(), VBAP(), and ~VBAP().


The documentation for this class was generated from the following files:

Generated on Thu Sep 17 23:14:18 2009 for CSL by  doxygen 1.5.8