AAX SDK  2.4.1
Avid Audio Extensions Development Kit
Namespaces | Enumerations | Functions | Variables
AAX Namespace Reference

Namespaces

 Exception
 AAX exception classes
 

Enumerations

enum  EStatusNibble {
  eStatusNibble_NoteOff = 0x80 ,
  eStatusNibble_NoteOn = 0x90 ,
  eStatusNibble_KeyPressure = 0xA0 ,
  eStatusNibble_ControlChange = 0xB0 ,
  eStatusNibble_ChannelMode = 0xB0 ,
  eStatusNibble_ProgramChange = 0xC0 ,
  eStatusNibble_ChannelPressure = 0xD0 ,
  eStatusNibble_PitchBend = 0xE0 ,
  eStatusNibble_SystemCommon = 0xF0 ,
  eStatusNibble_SystemRealTime = 0xF0
}
 Values for the status nibble in a MIDI packet. More...
 
enum  EStatusByte {
  eStatusByte_SysExBegin = 0xF0 ,
  eStatusByte_MTCQuarterFrame = 0xF1 ,
  eStatusByte_SongPosition = 0xF2 ,
  eStatusByte_SongSelect = 0xF3 ,
  eStatusByte_TuneRequest = 0xF6 ,
  eStatusByte_SysExEnd = 0xF7 ,
  eStatusByte_TimingClock = 0xF8 ,
  eStatusByte_Start = 0xFA ,
  eStatusByte_Continue = 0xFB ,
  eStatusByte_Stop = 0xFC ,
  eStatusByte_ActiveSensing = 0xFE ,
  eStatusByte_Reset = 0xFF
}
 Values for the status byte in a MIDI packet. More...
 
enum  EChannelModeData {
  eChannelModeData_AllSoundOff = 120 ,
  eChannelModeData_ResetControllers = 121 ,
  eChannelModeData_LocalControl = 122 ,
  eChannelModeData_AllNotesOff = 123 ,
  eChannelModeData_OmniOff = 124 ,
  eChannelModeData_OmniOn = 125 ,
  eChannelModeData_PolyOff = 126 ,
  eChannelModeData_PolyOn = 127
}
 Values for the first data byte in a Channel Mode Message MIDI packet. More...
 
enum  ESpecialData {
  eSpecialData_AccentedClick = 0x00 ,
  eSpecialData_UnaccentedClick = 0x01
}
 Special message data for the first data byte in a message. More...
 
enum  ESampleRates {
  e44100SampleRate = 44100 ,
  e48000SampleRate = 48000 ,
  e88200SampleRate = 88200 ,
  e96000SampleRate = 96000 ,
  e176400SampleRate = 176400 ,
  e192000SampleRate = 192000
}
 

Functions

std::string AsString (const char *inStr)
 
const std::string & AsString (const std::string &inStr)
 
const std::string & AsString (const Exception::Any &inStr)
 
bool IsNoteOn (const AAX_CMidiPacket *inPacket)
 Returns true if inPacket is a Note On message. More...
 
bool IsNoteOff (const AAX_CMidiPacket *inPacket)
 Returns true if inPacket is a Note Off message, or a Note On message with velocity zero. More...
 
bool IsAllNotesOff (const AAX_CMidiPacket *inPacket)
 Returns true if inPacket is an All Sound Off or All Notes Off message. More...
 
bool IsAccentedClick (const AAX_CMidiPacket *inPacket)
 Returns true if inPacket is a special Pro Tools accented click message. More...
 
bool IsUnaccentedClick (const AAX_CMidiPacket *inPacket)
 Returns true if inPacket is a special Pro Tools unaccented click message. More...
 
bool IsClick (const AAX_CMidiPacket *inPacket)
 Returns true if inPacket is a special Pro Tools click message. More...
 
template<class T1 , class T2 >
bool PageTableParameterMappingsAreEqual (const T1 &inL, const T2 &inR)
 
template<class T1 , class T2 >
bool PageTableParameterNameVariationsAreEqual (const T1 &inL, const T2 &inR)
 
template<class T1 , class T2 >
bool PageTablesAreEqual (const T1 &inL, const T2 &inR)
 
template<class T >
void CopyPageTable (T &to, const T &from)
 
template<class T >
std::vector< std::pair< int32_t, int32_t > > FindParameterMappingsInPageTable (const T &inTable, AAX_CParamID inParameterID)
 
template<class T >
void ClearMappedParameterByID (T &ioTable, AAX_CParamID inParameterID)
 
void GetCStringOfLength (char *stringOut, const char *stringIn, int32_t aMaxChars)
 ============================================================== More...
 
int32_t Caseless_strcmp (const char *cs, const char *ct)
 
std::string Binary2String (uint32_t binaryValue, int32_t numBits)
 
uint32_t String2Binary (const AAX_IString &s)
 
bool IsASCII (char inChar)
 
bool IsFourCharASCII (uint32_t inFourChar)
 
std::string AsStringFourChar (uint32_t inFourChar)
 
std::string AsStringPropertyValue (AAX_EProperty inProperty, AAX_CPropertyValue inPropertyValue)
 
std::string AsStringInt32 (int32_t inInt32)
 
std::string AsStringUInt32 (uint32_t inUInt32)
 
std::string AsStringIDTriad (const AAX_SPlugInIdentifierTriad &inIDTriad)
 
std::string AsStringStemFormat (AAX_EStemFormat inStemFormat, bool inAbbreviate=false)
 
std::string AsStringStemChannel (AAX_EStemFormat inStemFormat, uint32_t inChannelIndex, bool inAbbreviate)
 
std::string AsStringResult (AAX_Result inResult)
 
double SafeLog (double aValue)
 Double-precision safe log function. Returns zero for input values that are <= 0.0. More...
 
float SafeLogf (float aValue)
 Single-precision safe log function. Returns zero for input values that are <= 0.0. More...
 
AAX_CBoolean IsParameterIDEqual (AAX_CParamID iParam1, AAX_CParamID iParam2)
 Helper function to check if two parameter IDs are equivalent. More...
 
AAX_CBoolean IsEffectIDEqual (const AAX_IString *iEffectID1, const AAX_IString *iEffectID2)
 Helper function to check if two Effect IDs are equivalent. More...
 
AAX_CBoolean IsAvidNotification (AAX_CTypeID inNotificationID)
 Helper function to check if a notification ID is reserved for host notifications. More...
 
void alignFree (void *p)
 
template<class T >
T * alignMalloc (int iArraySize, int iAlignment)
 
void DeDenormal (double &iValue)
 Clamps very small floating point values to zero. More...
 
void DeDenormal (float &iValue)
 Clamps very small floating point values to zero. More...
 
void DeDenormalFine (float &iValue)
 
void FilterDenormals (float *inSamples, int32_t inLength)
 Round all denormal/subnormal samples in a buffer to zero. More...
 
template<class GFLOAT >
GFLOAT ClampToZero (GFLOAT iValue, GFLOAT iClampThreshold)
 
void ZeroMemory (void *iPointer, int iNumBytes)
 
void ZeroMemoryDW (void *iPointer, int iNumBytes)
 
template<typename T , int N>
void Fill (T *iArray, const T *iVal)
 
template<typename T , int M, int N>
void Fill (T *iArray, const T *iVal)
 
template<typename T , int L, int M, int N>
void Fill (T *iArray, const T *iVal)
 
double fabs (double iVal)
 
float fabs (float iVal)
 
float fabsf (float iVal)
 
template<class T >
AbsMax (const T &iValue, const T &iMax)
 
template<class T >
MinMax (const T &iValue, const T &iMin, const T &iMax)
 
template<class T >
Max (const T &iValue1, const T &iValue2)
 
template<class T >
Min (const T &iValue1, const T &iValue2)
 
template<class T >
Sign (const T &iValue)
 
double PolyEval (double x, const double *coefs, int numCoefs)
 
double CeilLog2 (double iValue)
 
void SinCosMix (float aLinearMix, float &aSinMix, float &aCosMix)
 
int32_t FastRound2Int32 (double iVal)
 Round to Int32. More...
 
int32_t FastRound2Int32 (float iVal)
 Round to Int32. More...
 
int32_t FastRndDbl2Int32 (double iVal)
 
int32_t FastTrunc2Int32 (double iVal)
 Float to Int conversion with truncation. More...
 
int32_t FastTrunc2Int32 (float iVal)
 Float to Int conversion with truncation. More...
 
int64_t FastRound2Int64 (double iVal)
 Round to Int64. More...
 
int32_t GetInt32RPDF (int32_t *iSeed)
 
int32_t GetFastInt32RPDF (int32_t *iSeed)
 CALL: Calculate pseudo-random 32 bit number based on linear congruential method. More...
 
float GetRPDFWithAmplitudeOneHalf (int32_t *iSeed)
 
float GetRPDFWithAmplitudeOne (int32_t *iSeed)
 
float GetFastRPDFWithAmplitudeOne (int32_t *iSeed)
 
float GetTPDFWithAmplitudeOne (int32_t *iSeed)
 
MIDI logging utilities
void AsStringMIDIStream_Debug (const AAX_CMidiStream &inStream, char *outBuffer, int32_t inBufferSize)
 
Filesystem utilities
bool GetPathToPlugInBundle (const char *iBundleName, int iMaxLength, char *oModuleName)
 Retrieve the file path of the .aaxplugin bundle. More...
 

Variables

const int cBigEndian =0
 
const int cLittleEndian =1
 
const double cPi = 3.1415926535897932384626433832795
 
const double cTwoPi = 6.2831853071795862319959269370884
 
const double cHalfPi = 1.5707963267948965579989817342721
 
const double cQuarterPi = 0.78539816339744827899949086713605
 
const double cRootTwo = 1.4142135623730950488016887242097
 
const double cOneOverRootTwo = 0.70710678118654752440084436210485
 
const double cPos3dB =1.4142135623730950488016887242097
 
const double cNeg3dB =0.70710678118654752440084436210485
 
const double cPos6dB =2.0
 
const double cNeg6dB =0.5
 
const double cNormalizeLongToAmplitudeOneHalf = 0.00000000023283064365386962890625
 
const double cNormalizeLongToAmplitudeOne = 1.0/double(1<<31)
 
const double cMilli =0.001
 
const double cMicro =0.001*0.001
 
const double cNano =0.001*0.001*0.001
 
const double cPico =0.001*0.001*0.001*0.001
 
const double cKilo =1000.0
 
const double cMega =1000.0*1000.0
 
const double cGiga =1000.0*1000.0*1000.0
 
const double cDenormalAvoidanceOffset =3.0e-34
 
const float cFloatDenormalAvoidanceOffset =3.0e-20f
 
const unsigned int kPowExtent = 9
 
const unsigned int kPowTableSize = 1 << kPowExtent
 
const float cSeedDivisor = 1/127773.0f
 
const int32_t cInitialSeedValue =0x00F54321
 

Enumeration Type Documentation

◆ EStatusNibble

Values for the status nibble in a MIDI packet.

Enumerator
eStatusNibble_NoteOff 
eStatusNibble_NoteOn 
eStatusNibble_KeyPressure 
eStatusNibble_ControlChange 
eStatusNibble_ChannelMode 
eStatusNibble_ProgramChange 
eStatusNibble_ChannelPressure 
eStatusNibble_PitchBend 
eStatusNibble_SystemCommon 
eStatusNibble_SystemRealTime 

◆ EStatusByte

Values for the status byte in a MIDI packet.

Enumerator
eStatusByte_SysExBegin 
eStatusByte_MTCQuarterFrame 
eStatusByte_SongPosition 
eStatusByte_SongSelect 
eStatusByte_TuneRequest 
eStatusByte_SysExEnd 
eStatusByte_TimingClock 
eStatusByte_Start 
eStatusByte_Continue 
eStatusByte_Stop 
eStatusByte_ActiveSensing 
eStatusByte_Reset 

◆ EChannelModeData

Values for the first data byte in a Channel Mode Message MIDI packet.

Enumerator
eChannelModeData_AllSoundOff 
eChannelModeData_ResetControllers 
eChannelModeData_LocalControl 
eChannelModeData_AllNotesOff 
eChannelModeData_OmniOff 
eChannelModeData_OmniOn 
eChannelModeData_PolyOff 
eChannelModeData_PolyOn 

◆ ESpecialData

Special message data for the first data byte in a message.

Enumerator
eSpecialData_AccentedClick 

For use when the high status nibble is eStatusNibble_NoteOn and the low status nibble is zero.

eSpecialData_UnaccentedClick 

For use when the high status nibble is eStatusNibble_NoteOn and the low status nibble is zero.

◆ ESampleRates

Enumerator
e44100SampleRate 
e48000SampleRate 
e88200SampleRate 
e96000SampleRate 
e176400SampleRate 
e192000SampleRate 

Function Documentation

◆ AsString() [1/3]

std::string AAX::AsString ( const char *  inStr)
inline

Generic conversion of a string-like object to a std::string

◆ AsString() [2/3]

const std::string & AAX::AsString ( const std::string &  inStr)
inline

Generic conversion of a string-like object to a std::string

◆ AsString() [3/3]

const std::string & AAX::AsString ( const Exception::Any inStr)
inline

Generic conversion of a string-like object to a std::string

References AAX::Exception::Any::What().

Here is the call graph for this function:

◆ IsNoteOn()

bool AAX::IsNoteOn ( const AAX_CMidiPacket inPacket)
inline

Returns true if inPacket is a Note On message.

References eStatusNibble_NoteOn, and AAX_CMidiPacket::mData.

◆ IsNoteOff()

bool AAX::IsNoteOff ( const AAX_CMidiPacket inPacket)
inline

Returns true if inPacket is a Note Off message, or a Note On message with velocity zero.

References eStatusNibble_NoteOff, eStatusNibble_NoteOn, and AAX_CMidiPacket::mData.

◆ IsAllNotesOff()

bool AAX::IsAllNotesOff ( const AAX_CMidiPacket inPacket)
inline

◆ IsAccentedClick()

bool AAX::IsAccentedClick ( const AAX_CMidiPacket inPacket)
inline

Returns true if inPacket is a special Pro Tools accented click message.

References eSpecialData_AccentedClick, eStatusNibble_NoteOn, and AAX_CMidiPacket::mData.

Referenced by IsClick().

Here is the caller graph for this function:

◆ IsUnaccentedClick()

bool AAX::IsUnaccentedClick ( const AAX_CMidiPacket inPacket)
inline

Returns true if inPacket is a special Pro Tools unaccented click message.

References eSpecialData_UnaccentedClick, eStatusNibble_NoteOn, and AAX_CMidiPacket::mData.

Referenced by IsClick().

Here is the caller graph for this function:

◆ IsClick()

bool AAX::IsClick ( const AAX_CMidiPacket inPacket)
inline

Returns true if inPacket is a special Pro Tools click message.

References IsAccentedClick(), and IsUnaccentedClick().

Here is the call graph for this function:

◆ PageTableParameterMappingsAreEqual()

template<class T1 , class T2 >
bool AAX::PageTableParameterMappingsAreEqual ( const T1 &  inL,
const T2 &  inR 
)
inline

Compare the parameter mappings in two page tables

T1 and T2: Page table class types (e.g. AAX_IACFPageTable, AAX_IPageTable)

References AAX_SUCCESS.

Referenced by PageTablesAreEqual().

Here is the caller graph for this function:

◆ PageTableParameterNameVariationsAreEqual()

template<class T1 , class T2 >
bool AAX::PageTableParameterNameVariationsAreEqual ( const T1 &  inL,
const T2 &  inR 
)
inline

References AAX_SUCCESS, and AAX_CString::Get().

Referenced by PageTablesAreEqual().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PageTablesAreEqual()

template<class T1 , class T2 >
bool AAX::PageTablesAreEqual ( const T1 &  inL,
const T2 &  inR 
)
inline

References PageTableParameterMappingsAreEqual(), and PageTableParameterNameVariationsAreEqual().

Here is the call graph for this function:

◆ CopyPageTable()

template<class T >
void AAX::CopyPageTable ( T &  to,
const T &  from 
)
inline

Copy a page table

T: A page table class type (e.g. AAX_IACFPageTable, AAX_IPageTable)

References AAX_SUCCESS, AAX_CString::CString(), and AAX_CString::Get().

Here is the call graph for this function:

◆ FindParameterMappingsInPageTable()

template<class T >
std::vector<std::pair<int32_t, int32_t> > AAX::FindParameterMappingsInPageTable ( const T &  inTable,
AAX_CParamID  inParameterID 
)
inline

Find all slots where a particular parameter is mapped

T: A page table class type (e.g. AAX_IACFPageTable, AAX_IPageTable)

Returns
A vector of pairs of [page index, slot index] each representing a single mapping of the parameter

References AAX_SUCCESS.

Referenced by ClearMappedParameterByID().

Here is the caller graph for this function:

◆ ClearMappedParameterByID()

template<class T >
void AAX::ClearMappedParameterByID ( T &  ioTable,
AAX_CParamID  inParameterID 
)
inline

Remove all mappings of a particular from a page table

T: A page table class type (e.g. AAX_IACFPageTable, AAX_IPageTable)

References FindParameterMappingsInPageTable().

Here is the call graph for this function:

◆ GetCStringOfLength()

void AAX::GetCStringOfLength ( char *  stringOut,
const char *  stringIn,
int32_t  aMaxChars 
)
inline

==============================================================

References AAX_ASSERT.

◆ Caseless_strcmp()

int32_t AAX::Caseless_strcmp ( const char *  cs,
const char *  ct 
)
inline

◆ Binary2String()

std::string AAX::Binary2String ( uint32_t  binaryValue,
int32_t  numBits 
)
inline

Referenced by AsStringPropertyValue().

Here is the caller graph for this function:

◆ String2Binary()

uint32_t AAX::String2Binary ( const AAX_IString s)
inline

References AAX_ASSERT, AAX_IString::Get(), and AAX_IString::Length().

Here is the call graph for this function:

◆ IsASCII()

bool AAX::IsASCII ( char  inChar)
inline

Referenced by AsStringFourChar(), and IsFourCharASCII().

Here is the caller graph for this function:

◆ IsFourCharASCII()

bool AAX::IsFourCharASCII ( uint32_t  inFourChar)
inline

References IsASCII().

Referenced by AsStringPropertyValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AsStringFourChar()

std::string AAX::AsStringFourChar ( uint32_t  inFourChar)
inline

References IsASCII().

Referenced by AsStringIDTriad(), and AsStringPropertyValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AsStringPropertyValue()

std::string AAX::AsStringPropertyValue ( AAX_EProperty  inProperty,
AAX_CPropertyValue  inPropertyValue 
)
inline

References AAX_eProperty_Constraint_Location, AAX_eProperty_SampleRate, AsStringFourChar(), Binary2String(), and IsFourCharASCII().

Here is the call graph for this function:

◆ AsStringInt32()

std::string AAX::AsStringInt32 ( int32_t  inInt32)
inline

Referenced by AAX::Exception::ResultError::FormatResult().

Here is the caller graph for this function:

◆ AsStringUInt32()

std::string AAX::AsStringUInt32 ( uint32_t  inUInt32)
inline

◆ AsStringIDTriad()

std::string AAX::AsStringIDTriad ( const AAX_SPlugInIdentifierTriad inIDTriad)
inline

References AsStringFourChar(), AAX_SPlugInIdentifierTriad::mManufacturerID, AAX_SPlugInIdentifierTriad::mPlugInID, and AAX_SPlugInIdentifierTriad::mProductID.

Here is the call graph for this function:

◆ AsStringStemFormat()

std::string AAX::AsStringStemFormat ( AAX_EStemFormat  inStemFormat,
bool  inAbbreviate = false 
)
inline

◆ AsStringStemChannel()

std::string AAX::AsStringStemChannel ( AAX_EStemFormat  inStemFormat,
uint32_t  inChannelIndex,
bool  inAbbreviate 
)
inline

◆ AsStringResult()

std::string AAX::AsStringResult ( AAX_Result  inResult)
inline

References AAX_ERROR_ACF_ERROR, AAX_ERROR_ARGUMENT_BUFFER_OVERFLOW, AAX_ERROR_CONTEXT_ALREADY_HAS_METERS, AAX_ERROR_DIRECT_ACCESS_OUT_OF_BOUNDS, AAX_ERROR_DUPLICATE_EFFECT_ID, AAX_ERROR_DUPLICATE_TYPE_ID, AAX_ERROR_EMPTY_EFFECT_NAME, AAX_ERROR_FIELD_TYPE_DOES_NOT_SUPPORT_DIRECT_ACCESS, AAX_ERROR_FIFO_FULL, AAX_ERROR_INCORRECT_CHUNK_SIZE, AAX_ERROR_INITIALIZING_PACKET_STREAM_THREAD, AAX_ERROR_INVALID_ARGUMENT, AAX_ERROR_INVALID_CHUNK_ID, AAX_ERROR_INVALID_CHUNK_INDEX, AAX_ERROR_INVALID_FIELD_INDEX, AAX_ERROR_INVALID_INTERNAL_DATA, AAX_ERROR_INVALID_METER_INDEX, AAX_ERROR_INVALID_METER_TYPE, AAX_ERROR_INVALID_PARAMETER_ID, AAX_ERROR_INVALID_PARAMETER_INDEX, AAX_ERROR_INVALID_PATH, AAX_ERROR_INVALID_STRING_CONVERSION, AAX_ERROR_INVALID_VIEW_SIZE, AAX_ERROR_MALFORMED_CHUNK, AAX_ERROR_MIXER_THREAD_FALLING_BEHIND, AAX_ERROR_NO_COMPONENTS, AAX_ERROR_NOT_INITIALIZED, AAX_ERROR_NOTIFICATION_FAILED, AAX_ERROR_NULL_ARGUMENT, AAX_ERROR_NULL_COMPONENT, AAX_ERROR_NULL_OBJECT, AAX_ERROR_OLDER_VERSION, AAX_ERROR_PLUGIN_BEGIN, AAX_ERROR_PLUGIN_END, AAX_ERROR_PLUGIN_NOT_AUTHORIZED, AAX_ERROR_PLUGIN_NULL_PARAMETER, AAX_ERROR_PORT_ID_OUT_OF_RANGE, AAX_ERROR_POST_PACKET_FAILED, AAX_ERROR_PROPERTY_UNDEFINED, AAX_ERROR_SIGNED_INT_OVERFLOW, AAX_ERROR_TOD_BEHIND, AAX_ERROR_UNIMPLEMENTED, AAX_ERROR_UNKNOWN_EXCEPTION, AAX_ERROR_UNKNOWN_ID, AAX_ERROR_UNKNOWN_PLUGIN, AAX_RESULT_ADD_FIELD_UNSUPPORTED_FIELD_TYPE, AAX_RESULT_NEW_PACKET_POSTED, AAX_RESULT_PACKET_STREAM_NOT_EMPTY, AAX_SUCCESS, and DEFINE_AAX_ERROR_STRING.

Referenced by AAX::Exception::ResultError::FormatResult().

Here is the caller graph for this function:

◆ SafeLog()

double AAX::SafeLog ( double  aValue)
inline

Double-precision safe log function. Returns zero for input values that are <= 0.0.

Referenced by AAX_CLogTaperDelegate< T, RealPrecision >::NormalizedToReal(), and AAX_CLogTaperDelegate< T, RealPrecision >::RealToNormalized().

Here is the caller graph for this function:

◆ SafeLogf()

float AAX::SafeLogf ( float  aValue)
inline

Single-precision safe log function. Returns zero for input values that are <= 0.0.

◆ IsParameterIDEqual()

AAX_CBoolean AAX::IsParameterIDEqual ( AAX_CParamID  iParam1,
AAX_CParamID  iParam2 
)
inline

Helper function to check if two parameter IDs are equivalent.

◆ IsEffectIDEqual()

AAX_CBoolean AAX::IsEffectIDEqual ( const AAX_IString iEffectID1,
const AAX_IString iEffectID2 
)
inline

Helper function to check if two Effect IDs are equivalent.

References AAX_IString::Get().

Here is the call graph for this function:

◆ IsAvidNotification()

AAX_CBoolean AAX::IsAvidNotification ( AAX_CTypeID  inNotificationID)
inline

Helper function to check if a notification ID is reserved for host notifications.

◆ alignFree()

void AAX::alignFree ( void *  p)
inline

◆ alignMalloc()

template<class T >
T* AAX::alignMalloc ( int  iArraySize,
int  iAlignment 
)

◆ DeDenormal() [1/2]

void AAX::DeDenormal ( double &  iValue)
inline

Clamps very small floating point values to zero.

On Pentiums and Pentium IIs the generation of denormal floats causes enormous performance losses. This routine removes denormals by clamping very small values to zero. The clamping threshold is very small, but is not the absolute minimum. If absolute minimum clamping is desired, use AAX::DeDenormalFine()

References cDenormalAvoidanceOffset.

◆ DeDenormal() [2/2]

void AAX::DeDenormal ( float &  iValue)
inline

Clamps very small floating point values to zero.

On Pentiums and Pentium IIs the generation of denormal floats causes enormous performance losses. This routine removes denormals by clamping very small values to zero. The clamping threshold is very small, but is not the absolute minimum. If absolute minimum clamping is desired, use AAX::DeDenormalFine()

References cFloatDenormalAvoidanceOffset.

◆ DeDenormalFine()

void AAX::DeDenormalFine ( float &  iValue)
inline

Similar to AAX::DeDenormal(), but uses the minimum possible normal float value as the clamping threshold

◆ FilterDenormals()

void AAX::FilterDenormals ( float *  inSamples,
int32_t  inLength 
)
inline

Round all denormal/subnormal samples in a buffer to zero.

Parameters
[in]inSamplesSamples to convert
[in]inLengthNumber of samples in inSamples

References fabsf().

Here is the call graph for this function:

◆ ClampToZero()

template<class GFLOAT >
GFLOAT AAX::ClampToZero ( GFLOAT  iValue,
GFLOAT  iClampThreshold 
)
inline

◆ ZeroMemory()

void AAX::ZeroMemory ( void *  iPointer,
int  iNumBytes 
)
inline

◆ ZeroMemoryDW()

void AAX::ZeroMemoryDW ( void *  iPointer,
int  iNumBytes 
)
inline

◆ Fill() [1/3]

template<typename T , int N>
void AAX::Fill ( T *  iArray,
const T *  iVal 
)

Referenced by Fill().

Here is the caller graph for this function:

◆ Fill() [2/3]

template<typename T , int M, int N>
void AAX::Fill ( T *  iArray,
const T *  iVal 
)
inline

References Fill().

Here is the call graph for this function:

◆ Fill() [3/3]

template<typename T , int L, int M, int N>
void AAX::Fill ( T *  iArray,
const T *  iVal 
)
inline

References Fill().

Here is the call graph for this function:

◆ fabs() [1/2]

double AAX::fabs ( double  iVal)
inline

References fabs().

Referenced by fabsf().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fabs() [2/2]

float AAX::fabs ( float  iVal)
inline

Referenced by AbsMax(), and fabs().

Here is the caller graph for this function:

◆ fabsf()

float AAX::fabsf ( float  iVal)
inline

References fabs().

Referenced by FilterDenormals(), and AAX_CUnitPrefixDisplayDelegateDecorator< T >::ValueToString().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AbsMax()

template<class T >
T AAX::AbsMax ( const T &  iValue,
const T &  iMax 
)
inline

References fabs().

Here is the call graph for this function:

◆ MinMax()

template<class T >
T AAX::MinMax ( const T &  iValue,
const T &  iMin,
const T &  iMax 
)
inline

◆ Max()

template<class T >
T AAX::Max ( const T &  iValue1,
const T &  iValue2 
)
inline

◆ Min()

template<class T >
T AAX::Min ( const T &  iValue1,
const T &  iValue2 
)
inline

◆ Sign()

template<class T >
T AAX::Sign ( const T &  iValue)
inline

◆ PolyEval()

double AAX::PolyEval ( double  x,
const double *  coefs,
int  numCoefs 
)
inline

◆ CeilLog2()

double AAX::CeilLog2 ( double  iValue)
inline

◆ SinCosMix()

void AAX::SinCosMix ( float  aLinearMix,
float &  aSinMix,
float &  aCosMix 
)
inline

References cHalfPi.

◆ FastRound2Int32() [1/2]

int32_t AAX::FastRound2Int32 ( double  iVal)
inline

Round to Int32.

Parameters
[in]iValValue to convert

Referenced by FastRndDbl2Int32(), FastRound2Int32(), and FastTrunc2Int32().

Here is the caller graph for this function:

◆ FastRound2Int32() [2/2]

int32_t AAX::FastRound2Int32 ( float  iVal)
inline

Round to Int32.

Parameters
[in]iValValue to convert

References FastRound2Int32().

Here is the call graph for this function:

◆ FastRndDbl2Int32()

int32_t AAX::FastRndDbl2Int32 ( double  iVal)
inline
Deprecated:

References FastRound2Int32().

Here is the call graph for this function:

◆ FastTrunc2Int32() [1/2]

int32_t AAX::FastTrunc2Int32 ( double  iVal)
inline

Float to Int conversion with truncation.

Parameters
[in]iValValue to convert
Note
This truncation is NOT identical to C style casting. Because the Intel (and I would assume PowerPC) processors use convergent rounding by default, exactly whole odd numbers will truncate down by 1.0 (e.g. 0.0->0, 1.0->0, 2.0->2, 3.0->2). Surprisingly, even with these limitations this fast float to int conversion is often very useful in practice, as long as one is aware of these issues.

References FastRound2Int32().

Referenced by AAX_FastInterpolatedTableLookup< TFLOAT, DFLOAT >::DoTableLookupExtraFast(), and AAX_FastInterpolatedTableLookup< TFLOAT, DFLOAT >::DoTableLookupExtraFastMulti().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FastTrunc2Int32() [2/2]

int32_t AAX::FastTrunc2Int32 ( float  iVal)
inline

Float to Int conversion with truncation.

Parameters
[in]iValValue to convert

◆ FastRound2Int64()

int64_t AAX::FastRound2Int64 ( double  iVal)
inline

Round to Int64.

Taken from Paul V's implementation in Sys_VecUtils. This only works on values smaller than 2^52.

Parameters
[in]iValValue to convert

◆ GetInt32RPDF()

int32_t AAX::GetInt32RPDF ( int32_t *  iSeed)
inline

References cSeedDivisor.

Referenced by GetRPDFWithAmplitudeOne(), and GetRPDFWithAmplitudeOneHalf().

Here is the caller graph for this function:

◆ GetFastInt32RPDF()

int32_t AAX::GetFastInt32RPDF ( int32_t *  iSeed)
inline

CALL: Calculate pseudo-random 32 bit number based on linear congruential method.

This is required if you want our master bypass functionality in the host to hook up to your bypass parameters.

Parameters
[in]iSeedSeed for random generator
Note
This method produces lower quality random numbers (i.e. less random) than plain old GetInt32RPDF, but in many cases it should be plenty good.

Referenced by GetFastRPDFWithAmplitudeOne(), and GetTPDFWithAmplitudeOne().

Here is the caller graph for this function:

◆ GetRPDFWithAmplitudeOneHalf()

float AAX::GetRPDFWithAmplitudeOneHalf ( int32_t *  iSeed)
inline

References cNormalizeLongToAmplitudeOneHalf, and GetInt32RPDF().

Here is the call graph for this function:

◆ GetRPDFWithAmplitudeOne()

float AAX::GetRPDFWithAmplitudeOne ( int32_t *  iSeed)
inline

References cNormalizeLongToAmplitudeOne, and GetInt32RPDF().

Here is the call graph for this function:

◆ GetFastRPDFWithAmplitudeOne()

float AAX::GetFastRPDFWithAmplitudeOne ( int32_t *  iSeed)
inline

References cNormalizeLongToAmplitudeOne, and GetFastInt32RPDF().

Here is the call graph for this function:

◆ GetTPDFWithAmplitudeOne()

float AAX::GetTPDFWithAmplitudeOne ( int32_t *  iSeed)
inline

References cNormalizeLongToAmplitudeOne, and GetFastInt32RPDF().

Here is the call graph for this function:

Variable Documentation

◆ cBigEndian

const int AAX::cBigEndian =0

◆ cLittleEndian

const int AAX::cLittleEndian =1

◆ cPi

const double AAX::cPi = 3.1415926535897932384626433832795

◆ cTwoPi

const double AAX::cTwoPi = 6.2831853071795862319959269370884

◆ cHalfPi

const double AAX::cHalfPi = 1.5707963267948965579989817342721

Referenced by SinCosMix().

◆ cQuarterPi

const double AAX::cQuarterPi = 0.78539816339744827899949086713605

◆ cRootTwo

const double AAX::cRootTwo = 1.4142135623730950488016887242097

◆ cOneOverRootTwo

const double AAX::cOneOverRootTwo = 0.70710678118654752440084436210485

◆ cPos3dB

const double AAX::cPos3dB =1.4142135623730950488016887242097

◆ cNeg3dB

const double AAX::cNeg3dB =0.70710678118654752440084436210485

◆ cPos6dB

const double AAX::cPos6dB =2.0

◆ cNeg6dB

const double AAX::cNeg6dB =0.5

◆ cNormalizeLongToAmplitudeOneHalf

const double AAX::cNormalizeLongToAmplitudeOneHalf = 0.00000000023283064365386962890625

◆ cNormalizeLongToAmplitudeOne

const double AAX::cNormalizeLongToAmplitudeOne = 1.0/double(1<<31)

◆ cMilli

const double AAX::cMilli =0.001

◆ cMicro

const double AAX::cMicro =0.001*0.001

◆ cNano

const double AAX::cNano =0.001*0.001*0.001

◆ cPico

const double AAX::cPico =0.001*0.001*0.001*0.001

◆ cKilo

const double AAX::cKilo =1000.0

◆ cMega

const double AAX::cMega =1000.0*1000.0

◆ cGiga

const double AAX::cGiga =1000.0*1000.0*1000.0

◆ cDenormalAvoidanceOffset

const double AAX::cDenormalAvoidanceOffset =3.0e-34

Referenced by DeDenormal().

◆ cFloatDenormalAvoidanceOffset

const float AAX::cFloatDenormalAvoidanceOffset =3.0e-20f

Referenced by DeDenormal().

◆ kPowExtent

const unsigned int AAX::kPowExtent = 9

◆ kPowTableSize

const unsigned int AAX::kPowTableSize = 1 << kPowExtent

◆ cSeedDivisor

const float AAX::cSeedDivisor = 1/127773.0f

Referenced by GetInt32RPDF().

◆ cInitialSeedValue

const int32_t AAX::cInitialSeedValue =0x00F54321