FrequencyBand.java
package org.hammer.audio.experimental.acoustic;
/** Frequency range in Hz used by experimental insect/source-separation stages. */
public record FrequencyBand(double lowHz, double highHz) {
/** Create a closed frequency band. */
public FrequencyBand {
if (!(lowHz >= 0.0)
|| !(highHz > lowHz)
|| !Double.isFinite(lowHz)
|| !Double.isFinite(highHz)) {
throw new IllegalArgumentException(
"frequency band must be finite and satisfy 0 <= low < high");
}
}
/** Return whether {@code frequencyHz} is inside this band. */
public boolean contains(double frequencyHz) {
return frequencyHz >= lowHz && frequencyHz <= highHz;
}
}