/[svn]/linuxsampler/trunk/src/engines/gig/Voice.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/gig/Voice.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 830 by persson, Sun Jan 15 18:23:11 2006 UTC revision 831 by persson, Sat Jan 28 16:55:30 2006 UTC
# Line 136  namespace LinuxSampler { namespace gig { Line 136  namespace LinuxSampler { namespace gig {
136                  CrossfadeVolume = 1.0f;                  CrossfadeVolume = 1.0f;
137          }          }
138    
139          PanLeft  = 1.0f - float(RTMath::Max(pDimRgn->Pan, 0)) /  63.0f;          PanLeft  = Engine::PanCurve[64 - pDimRgn->Pan];
140          PanRight = 1.0f - float(RTMath::Min(pDimRgn->Pan, 0)) / -64.0f;          PanRight = Engine::PanCurve[64 + pDimRgn->Pan];
141    
142          finalSynthesisParameters.dPos = pDimRgn->SampleStartOffset; // offset where we should start playback of sample (0 - 2000 sample points)          finalSynthesisParameters.dPos = pDimRgn->SampleStartOffset; // offset where we should start playback of sample (0 - 2000 sample points)
143          Pos = pDimRgn->SampleStartOffset;          Pos = pDimRgn->SampleStartOffset;
# Line 225  namespace LinuxSampler { namespace gig { Line 225  namespace LinuxSampler { namespace gig {
225    
226          // setup initial volume in synthesis parameters          // setup initial volume in synthesis parameters
227          fFinalVolume = getVolume() * EG1.getLevel();          fFinalVolume = getVolume() * EG1.getLevel();
228          finalSynthesisParameters.fFinalVolumeLeft  = fFinalVolume * PanLeft;          finalSynthesisParameters.fFinalVolumeLeft  = fFinalVolume * PanLeft * pEngineChannel->GlobalPanLeft;
229          finalSynthesisParameters.fFinalVolumeRight = fFinalVolume * PanRight;          finalSynthesisParameters.fFinalVolumeRight = fFinalVolume * PanRight * pEngineChannel->GlobalPanRight;
230    
231    
232          // setup EG 2 (VCF Cutoff EG)          // setup EG 2 (VCF Cutoff EG)
# Line 763  namespace LinuxSampler { namespace gig { Line 763  namespace LinuxSampler { namespace gig {
763          uint killPos;          uint killPos;
764          if (itKillEvent) killPos = RTMath::Min(itKillEvent->FragmentPos(), pEngine->MaxFadeOutPos);          if (itKillEvent) killPos = RTMath::Min(itKillEvent->FragmentPos(), pEngine->MaxFadeOutPos);
765    
766            float fFinalPanLeft = PanLeft * pEngineChannel->GlobalPanLeft;
767            float fFinalPanRight = PanRight * pEngineChannel->GlobalPanRight;
768    
769          uint i = Skip;          uint i = Skip;
770          while (i < Samples) {          while (i < Samples) {
771              int iSubFragmentEnd = RTMath::Min(i + CONFIG_DEFAULT_SUBFRAGMENT_SIZE, Samples);              int iSubFragmentEnd = RTMath::Min(i + CONFIG_DEFAULT_SUBFRAGMENT_SIZE, Samples);
# Line 832  namespace LinuxSampler { namespace gig { Line 835  namespace LinuxSampler { namespace gig {
835              finalSynthesisParameters.uiToGo            = iSubFragmentEnd - i;              finalSynthesisParameters.uiToGo            = iSubFragmentEnd - i;
836  #ifdef CONFIG_INTERPOLATE_VOLUME  #ifdef CONFIG_INTERPOLATE_VOLUME
837              finalSynthesisParameters.fFinalVolumeDeltaLeft  =              finalSynthesisParameters.fFinalVolumeDeltaLeft  =
838                  (fFinalVolume * PanLeft - finalSynthesisParameters.fFinalVolumeLeft) / finalSynthesisParameters.uiToGo;                  (fFinalVolume * fFinalPanLeft - finalSynthesisParameters.fFinalVolumeLeft) / finalSynthesisParameters.uiToGo;
839              finalSynthesisParameters.fFinalVolumeDeltaRight =              finalSynthesisParameters.fFinalVolumeDeltaRight =
840                  (fFinalVolume * PanRight - finalSynthesisParameters.fFinalVolumeRight) / finalSynthesisParameters.uiToGo;                  (fFinalVolume * fFinalPanRight - finalSynthesisParameters.fFinalVolumeRight) / finalSynthesisParameters.uiToGo;
841  #else  #else
842              finalSynthesisParameters.fFinalVolumeLeft  = fFinalVolume * PanLeft;              finalSynthesisParameters.fFinalVolumeLeft  = fFinalVolume * fFinalPanLeft;
843              finalSynthesisParameters.fFinalVolumeRight = fFinalVolume * PanRight;              finalSynthesisParameters.fFinalVolumeRight = fFinalVolume * fFinalPanRight;
844  #endif  #endif
845              // render audio for one subfragment              // render audio for one subfragment
846              RunSynthesisFunction(SynthesisMode, &finalSynthesisParameters, &loop);              RunSynthesisFunction(SynthesisMode, &finalSynthesisParameters, &loop);

Legend:
Removed from v.830  
changed lines
  Added in v.831

  ViewVC Help
Powered by ViewVC