Guest User

Untitled

a guest
Jun 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.01 KB | None | 0 0
  1.     /* final mix to audio stream */
  2.     {
  3.         int i;
  4.         signed short *streamPointer = soundStream;
  5.        
  6.         for (i = 0; i < numSamples; i++)
  7.         {
  8.             const int delayOffset = wrap(delayPosition - delayLength);
  9.  
  10.             float mixL = masterBufferL[i];
  11.             float mixR = masterBufferR[i];
  12.  
  13.             float delayedL = delayBufferL[delayOffset];
  14.             float delayedR = delayBufferR[delayOffset];
  15.  
  16.             signed int finalL = ((mixL + delayedL) * s3m_mixMasterVol);
  17.             signed int finalR = ((mixR + delayedR) * s3m_mixMasterVol);
  18.  
  19.             signed short outL = s3m_s32Clamp(finalL, -32768, 32767);
  20.             signed short outR = s3m_s32Clamp(finalR, -32768, 32767);
  21.            
  22.             *streamPointer++ = outL;
  23.             *streamPointer++ = outR;
  24.  
  25.             delayPosition = wrap(delayPosition + 1);
  26.  
  27.             /* for visualization */
  28.             {
  29.                 float tempVolL = fabsf(outL) / (32768.0f + 16384.0f);
  30.                 float tempVolR = fabsf(outR) / (32768.0f + 16384.0f);
  31.  
  32.                 if (currentLVol < tempVolL)
  33.                     currentLVol = tempVolL;
  34.  
  35.                 if (currentRVol < tempVolR)
  36.                     currentRVol = tempVolR;
  37.             }
  38.         }
  39.     }
Add Comment
Please, Sign In to add comment