--- linuxsampler/trunk/src/engines/gig/EngineChannel.cpp 2008/04/10 17:41:32 1722 +++ linuxsampler/trunk/src/engines/gig/EngineChannel.cpp 2008/04/20 08:53:39 1723 @@ -737,6 +737,7 @@ MidiVolume = 1.0; GlobalPanLeft = 1.0f; GlobalPanRight = 1.0f; + iLastPanRequest = 64; GlobalTranspose = 0; // set all MIDI controller values to zero memset(ControllerTable, 0x00, 129); @@ -875,6 +876,19 @@ bStatusChanged = true; // status of engine channel has changed, so set notify flag } + float EngineChannel::Pan() { + return float(iLastPanRequest - 64) / 64.0f; + } + + void EngineChannel::Pan(float f) { + int iMidiPan = int(f * 64.0f) + 64; + if (iMidiPan > 127) iMidiPan = 127; + else if (iMidiPan < 0) iMidiPan = 0; + GlobalPanLeft = Engine::PanCurve[128 - iMidiPan]; + GlobalPanRight = Engine::PanCurve[iMidiPan]; + iLastPanRequest = iMidiPan; + } + uint EngineChannel::Channels() { return 2; }