csl::AmbisonicRotator Class Reference

#include <AmbisonicUtilities.h>

Inheritance diagram for csl::AmbisonicRotator:

csl::AmbisonicUnitGenerator csl::UnitGenerator List of all members.

Detailed Description

AmbisonicRotator.h -- Higher Order Ambisonic rotator class See the copyright notice and acknowledgment of authors in the file COPYRIGHT Higher Order Ambisonic classes written by Jorge Castellanos, Graham Wakefield, Florian Hollerweger, 2005

Higher Order Ambisonic class for rotating an Ambisonic encoded sound field (e.g. the output of the HOA_Encoder) around any combination of x, y and z axes. Rotation is applied by using the method "setNthInput" with the flags HOA_TILT, HOA_TUMBLE, HOA_ROTATE as desired. The order of the incoming Ambisonic framestream can be degraded to match the maximum order of the available decoding system (number of available speakers). It is possible to specify either one uniform Ambisonic order or to define the horizontal and vertical order separately (hybrid order rotating). If no order(s) is/are specified, the order(s) of the Ambisonic encoded input framestream will be used.


Public Member Functions

 AmbisonicRotator (AmbisonicUnitGenerator &input)
 initializes with no rotation
 AmbisonicRotator (UnitGenerator &input, unsigned order)
 initializes with uniform Ambisonic order and no rotation
 AmbisonicRotator (UnitGenerator &input, unsigned vorder, unsigned horder)
 initializes with hybrid Ambisonic order and no rotation
 ~AmbisonicRotator ()
void setNthInput (float amount, Axes axis)
void setTilt (float amount)
void setTumble (float amount)
void setRotate (float amount)
virtual void nextBuffer (Buffer &outputBuffer, unsigned outBufNum) throw (CException)

Protected Attributes

unsigned mNumFrames
unsigned mGreaterOrder
unsigned mNumChannelsGreaterOrder
unsigned * mChannelIndex
unsigned * mInputChannelIndex
bool mShouldRotate
bool mShouldTurn
bool mShouldTilt

Private Member Functions

void initialize (UnitGenerator &input)
void tiltFirstOrder ()
void tiltSecondOrder ()
void tiltThirdOrder ()
void tumbleFirstOrder ()
void tumbleSecondOrder ()
void tumbleThirdOrder ()
void rotateZerothOrder ()
void rotateFirstOrderHorizontal ()
void rotateSecondOrderHorizontal ()
void rotateThirdOrderHorizontal ()
void rotateFirstOrderVertical ()
void rotateSecondOrderVertical ()
void rotateThirdOrderVertical ()

Private Attributes

UGenPort * mInputPort
sample mRotate
sample mTumble
sample mTilt
samplemSinAngle
samplemCosAngle
sample ** mOutPtr
sample ** mInPtr


Constructor & Destructor Documentation

AmbisonicRotator::AmbisonicRotator AmbisonicUnitGenerator input  ) 
 

initializes with no rotation

AmbisonicRotator::AmbisonicRotator UnitGenerator input,
unsigned  order
 

initializes with uniform Ambisonic order and no rotation

AmbisonicRotator::AmbisonicRotator UnitGenerator input,
unsigned  vorder,
unsigned  horder
 

initializes with hybrid Ambisonic order and no rotation

AmbisonicRotator::~AmbisonicRotator  ) 
 


Member Function Documentation

void AmbisonicRotator::setNthInput float  amount,
Axes  axis
 

void AmbisonicRotator::setTilt float  amount  ) 
 

void AmbisonicRotator::setTumble float  amount  ) 
 

void AmbisonicRotator::setRotate float  amount  ) 
 

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

void AmbisonicRotator::initialize UnitGenerator input  )  [private]
 

void AmbisonicRotator::tiltFirstOrder  )  [private]
 

void AmbisonicRotator::tiltSecondOrder  )  [private]
 

void AmbisonicRotator::tiltThirdOrder  )  [private]
 

void AmbisonicRotator::tumbleFirstOrder  )  [private]
 

void AmbisonicRotator::tumbleSecondOrder  )  [private]
 

void AmbisonicRotator::tumbleThirdOrder  )  [private]
 

void csl::AmbisonicRotator::rotateZerothOrder  )  [private]
 

void AmbisonicRotator::rotateFirstOrderHorizontal  )  [private]
 

void AmbisonicRotator::rotateSecondOrderHorizontal  )  [private]
 

void AmbisonicRotator::rotateThirdOrderHorizontal  )  [private]
 

void csl::AmbisonicRotator::rotateFirstOrderVertical  )  [private]
 

void AmbisonicRotator::rotateSecondOrderVertical  )  [private]
 

void AmbisonicRotator::rotateThirdOrderVertical  )  [private]
 


Member Data Documentation

unsigned csl::AmbisonicRotator::mNumFrames [protected]
 

unsigned csl::AmbisonicRotator::mGreaterOrder [protected]
 

unsigned csl::AmbisonicRotator::mNumChannelsGreaterOrder [protected]
 

unsigned* csl::AmbisonicRotator::mChannelIndex [protected]
 

unsigned* csl::AmbisonicRotator::mInputChannelIndex [protected]
 

bool csl::AmbisonicRotator::mShouldRotate [protected]
 

bool csl::AmbisonicRotator::mShouldTurn [protected]
 

bool csl::AmbisonicRotator::mShouldTilt [protected]
 

UGenPort* csl::AmbisonicRotator::mInputPort [private]
 

sample csl::AmbisonicRotator::mRotate [private]
 

sample csl::AmbisonicRotator::mTumble [private]
 

sample csl::AmbisonicRotator::mTilt [private]
 

sample* csl::AmbisonicRotator::mSinAngle [private]
 

sample * csl::AmbisonicRotator::mCosAngle [private]
 

sample** csl::AmbisonicRotator::mOutPtr [private]
 

sample ** csl::AmbisonicRotator::mInPtr [private]
 


The documentation for this class was generated from the following files:
Generated on Fri Apr 6 20:18:21 2007 for CSL by  doxygen 1.4.5-20051010