SpectralPeak.java
package org.hammer.audio.experimental.acoustic;
/** Peak detected in a frequency band. */
public record SpectralPeak(double frequencyHz, double magnitude, double confidence) {
/** Create a spectral peak. */
public SpectralPeak {
if (!Double.isFinite(frequencyHz) || frequencyHz < 0.0) {
throw new IllegalArgumentException("frequencyHz must be finite and >= 0");
}
if (!Double.isFinite(magnitude) || magnitude < 0.0) {
throw new IllegalArgumentException("magnitude must be finite and >= 0");
}
if (!Double.isFinite(confidence) || confidence < 0.0 || confidence > 1.0) {
throw new IllegalArgumentException("confidence must be finite and in [0,1]");
}
}
}