Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* final mix to audio stream */
- {
- int i;
- signed short *streamPointer = soundStream;
- for (i = 0; i < numSamples; i++)
- {
- const int delayOffset = wrap(delayPosition - delayLength);
- float mixL = masterBufferL[i];
- float mixR = masterBufferR[i];
- float delayedL = delayBufferL[delayOffset];
- float delayedR = delayBufferR[delayOffset];
- signed int finalL = ((mixL + delayedL) * s3m_mixMasterVol);
- signed int finalR = ((mixR + delayedR) * s3m_mixMasterVol);
- signed short outL = s3m_s32Clamp(finalL, -32768, 32767);
- signed short outR = s3m_s32Clamp(finalR, -32768, 32767);
- *streamPointer++ = outL;
- *streamPointer++ = outR;
- delayPosition = wrap(delayPosition + 1);
- /* for visualization */
- {
- float tempVolL = fabsf(outL) / (32768.0f + 16384.0f);
- float tempVolR = fabsf(outR) / (32768.0f + 16384.0f);
- if (currentLVol < tempVolL)
- currentLVol = tempVolL;
- if (currentRVol < tempVolR)
- currentRVol = tempVolR;
- }
- }
- }
Add Comment
Please, Sign In to add comment