25 #define SPEED_OF_SOUND 0.341
31 ShoeBox::ShoeBox() : mRoomSize(3, 4, 3), mSource(1, 2, 1), mListenerPosition(1.5, 2., 1.) {
146 float temp, pairTemp, anglesTemp;
149 while (increment > 0)
168 if (increment/2 != 0)
169 increment = increment/2;
170 else if (increment == 1)
217 float powOfXDelta, powOfMiusXDelta, powOfYDelta, powOfMiusYDelta, powOfZDelta, powOfMiusZDelta;
218 float distanceFromSource, initalDistance, initialDelay, reflections;
219 float reflectionAngleI, reflectionAngleII, reflectionAngleIII, reflectionAngleIV;
220 int reflXpos,reflXneg,reflYpos,reflYneg,reflZpos,reflZneg;
259 reflXneg = abs((
int)floor(-imageX[i]/
mRoomSize.
x));
264 reflYneg = abs((
int)floor(-imageY[j]/
mRoomSize.
y));
273 reflZneg = abs((
int)floor(-imageZ[k]/
mRoomSize.
z));
277 distanceFromSource = sqrt(powOfXDelta + powOfYDelta + powOfZDelta);
279 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
285 distanceFromSource = sqrt(powOfMiusXDelta + powOfYDelta + powOfZDelta);
287 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
293 distanceFromSource = sqrt(powOfXDelta + powOfMiusYDelta + powOfZDelta);
295 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
301 distanceFromSource = sqrt(powOfMiusXDelta + powOfMiusYDelta + powOfZDelta);
303 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
309 distanceFromSource = sqrt(powOfXDelta + powOfYDelta + powOfMiusZDelta);
311 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
317 distanceFromSource = sqrt(powOfMiusXDelta + powOfYDelta + powOfMiusZDelta);
319 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
325 distanceFromSource = sqrt(powOfXDelta + powOfMiusYDelta + powOfMiusZDelta);
327 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
333 distanceFromSource = sqrt(powOfMiusXDelta + powOfMiusYDelta + powOfMiusZDelta);
335 *
mGainsArray++ = reflections * initalDistance / distanceFromSource;
void logMsg(const char *format,...)
These are the public logging messages.
void findNumReflectionsFromTime()
void setWallMaterialsDamp(int dampX, int dampY, int dampZ)
AdditiveInstrument.h – Sum-of-sines synthesis instrument class.
void getReflections(float *ref, float *gains, float *angles, int num)
void setSourceLocation(float x, float y, float z)
float * mReflectionsArray
void setRoomSize(float x, float y, float z)
void calculateReflections()
bool checkPositionValues()
const float kGlassCoefficient
void setListenerLocation(float x, float y, float z)
const float kConcreteCoefficient
const float kMarbleCoefficient
const float kWoodCoefficient
const float kBrockCoefficient