#include <AmbisonicUtilities.h>
Inheritance diagram for csl::AmbisonicRotator:

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 |
| sample * | mSinAngle |
| sample * | mCosAngle |
| sample ** | mOutPtr |
| sample ** | mInPtr |
|
|
initializes with no rotation
|
|
||||||||||||
|
initializes with uniform Ambisonic order and no rotation
|
|
||||||||||||||||
|
initializes with hybrid Ambisonic order and no rotation
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.4.5-20051010