251 |
*/ |
*/ |
252 |
virtual float GetResonance() = 0; |
virtual float GetResonance() = 0; |
253 |
|
|
254 |
|
/** Should return value in the range [-100, 100] (L <-> R) */ |
255 |
|
virtual float GetPan() = 0; |
256 |
|
|
257 |
virtual float CalculateFilterCutoff(float cutoff) { |
virtual float CalculateFilterCutoff(float cutoff) { |
258 |
cutoff *= GetFilterCutoff(); |
cutoff *= GetFilterCutoff(); |
259 |
return cutoff > 13500 ? 13500 : cutoff; |
return cutoff > 13500 ? 13500 : cutoff; |
266 |
virtual float CalculateResonance(float res) { |
virtual float CalculateResonance(float res) { |
267 |
return GetResonance() * res; |
return GetResonance() * res; |
268 |
} |
} |
269 |
|
|
270 |
|
/** Should return value in the range [0, 127] (L <-> R) */ |
271 |
|
virtual uint8_t CaluclatePan(uint8_t pan) { |
272 |
|
int p = pan + GetPan() * 0.63; |
273 |
|
if (p < 0) return 0; |
274 |
|
if (p > 127) return 127; |
275 |
|
return p; |
276 |
|
} |
277 |
}; |
}; |
278 |
|
|
279 |
/** |
/** |