getGainAtFrequency method
Get gain for a specific frequency (interpolated)
Implementation
double getGainAtFrequency(double frequency) {
if (bands.isEmpty) return 0.0;
// Find surrounding bands
for (int i = 0; i < bands.length - 1; i++) {
final lower = bands[i];
final upper = bands[i + 1];
if (frequency >= lower.centerFrequency && frequency <= upper.centerFrequency) {
// Linear interpolation
final ratio = (frequency - lower.centerFrequency) /
(upper.centerFrequency - lower.centerFrequency);
return lower.gain + (upper.gain - lower.gain) * ratio;
}
}
// Outside range, use nearest
if (frequency < bands.first.centerFrequency) {
return bands.first.gain;
}
return bands.last.gain;
}