#include <VBAP.h>

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. | |
| SpeakerSetLayout * | mSpeakerSetLayout |
| A reference to the layout that contains the speaker pairs or triplets. | |
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.
| 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.
| void VBAP::nextBuffer | ( | Buffer & | outputBuffer, | |
| unsigned | outBufNum | |||
| ) | throw (CException) [virtual] |
Just as any Effect in CSL, this method gets called at runtime by the audio driver. Here is where the actual processing happens.
Reimplemented from csl::UnitGenerator.
References csl::VBAPSourceCache::gains, csl::UnitGenerator::isActive(), testkiss::j, csl::CPoint::len(), csl::logMsg(), csl::SpatialSource::nextBuffer(), csl::SpeakerSet::nodes, csl::CPoint::normalize(), csl::SpatialSource::position(), csl::SpatialSource::positionChanged(), csl::VBAPSourceCache::tripletIndex, vectorMultiply(), csl::CPoint::x, csl::CPoint::y, and csl::CPoint::z.
| void csl::VBAP::dump | ( | void | ) | [inline, virtual] |
| void * VBAP::cache | ( | ) | [protected, virtual] |
| 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().
VBAPMode csl::VBAP::mMode [protected] |
SpeakerSetLayout* csl::VBAP::mSpeakerSetLayout [protected] |
A reference to the layout that contains the speaker pairs or triplets.
Referenced by speakerLayoutChanged(), VBAP(), and ~VBAP().
1.5.8