17#ifndef RESONANCE_AUDIO_BASE_CONSTANTS_AND_TYPES_H_
18#define RESONANCE_AUDIO_BASE_CONSTANTS_AND_TYPES_H_
22#define M_PI 3.14159265358979323846
34static const SourceId kInvalidSourceId = -1;
40const size_t kMemoryAlignmentBytes = 64;
47static const int kMaxSupportedAmbisonicOrder = 3;
50const size_t kMaxSupportedNumFrames = 16384;
53static const size_t kNumMonoChannels = 1;
56static const size_t kNumStereoChannels = 2;
59static const size_t kNumSurroundFiveDotOneChannels = 6;
62static const size_t kNumSurroundSevenDotOneChannels = 8;
65static const size_t kNumFirstOrderAmbisonicChannels = 4;
68static const size_t kNumSecondOrderAmbisonicChannels = 9;
71static const size_t kNumThirdOrderAmbisonicChannels = 16;
74static const size_t kNumFirstOrderAmbisonicWithNonDiegeticStereoChannels = 6;
77static const size_t kNumSecondOrderAmbisonicWithNonDiegeticStereoChannels = 11;
80static const size_t kNumThirdOrderAmbisonicWithNonDiegeticStereoChannels = 18;
83static const float kNegative60dbInAmplitude = 0.001f;
86static const double kEpsilonDouble = 1e-6;
87static const float kEpsilonFloat = 1e-6f;
90static const float kInverseSqrtTwo = 1.0f / std::sqrt(2.0f);
93static const float kSqrtTwo = std::sqrt(2.0f);
94static const float kSqrtThree = std::sqrt(3.0f);
97static const float kPi =
static_cast<float>(M_PI);
99static const float kHalfPi =
static_cast<float>(M_PI / 2.0);
101static const float kTwoPi =
static_cast<float>(2.0 * M_PI);
104static const float kRadiansFromDegrees =
static_cast<float>(M_PI / 180.0);
107static const float kDegreesFromRadians =
static_cast<float>(180.0 / M_PI);
110static const float kNegativeLog1000 = -std::log(1000.0f);
113static const float kLowestOctaveBandHz = 31.25f;
116static const size_t kNumReverbOctaveBands = 9;
132const float kOctaveBandCentres[kNumReverbOctaveBands] = {
133 31.25f, 62.5f, 125.0f, 250.0f, 500.0f, 1000.0f, 2000.0f, 4000.0f, 8000.0f};
136static const size_t kNumRoomSurfaces = 6;
140static const float kSpeedOfSound = 343.0f;
143static const float kStereoLeftDegrees = 90.0f;
144static const float kStereoRightDegrees = -90.0f;
147static const float kMillisecondsFromSeconds = 1000.0f;
150static const float kSecondsFromMilliseconds = 0.001f;
153static const double kMicrosecondsFromSeconds = 1e6;
156static const double kSecondsFromMicroseconds = 1e-6;
159static const float kNearFieldThreshold = 1.0f;
163static const float kMinNearFieldDistance = 0.1f;
166static const float kMaxNearFieldEffectGain = 9.0f;
171static const size_t kUnitRampLength = 2048;
175static const float kRotationQuantizationRad = 1.0f * kRadiansFromDegrees;