--- linuxsampler/trunk/src/engines/common/SignalUnit.h 2011/07/28 08:05:57 2218 +++ linuxsampler/trunk/src/engines/common/SignalUnit.h 2011/07/28 12:35:49 2219 @@ -251,6 +251,9 @@ */ virtual float GetResonance() = 0; + /** Should return value in the range [-100, 100] (L <-> R) */ + virtual float GetPan() = 0; + virtual float CalculateFilterCutoff(float cutoff) { cutoff *= GetFilterCutoff(); return cutoff > 13500 ? 13500 : cutoff; @@ -263,6 +266,14 @@ virtual float CalculateResonance(float res) { return GetResonance() * res; } + + /** Should return value in the range [0, 127] (L <-> R) */ + virtual uint8_t CaluclatePan(uint8_t pan) { + int p = pan + GetPan() * 0.63; + if (p < 0) return 0; + if (p > 127) return 127; + return p; + } }; /**