feat: add physically explicit narrowband MUSIC

This commit is contained in:
2026-08-29 12:40:48 +09:00
parent 044be3cf92
commit 11fee76280
40 changed files with 6473 additions and 275 deletions
+28 -1
View File
@@ -1,3 +1,5 @@
import { normalizedMusicPseudospectrum } from "/packages/acoustics-core/evaluation.js";
const DEFAULT_BACKGROUND = "#07110f";
const DEFAULT_DYNAMIC_RANGE_DB = 48;
const MAX_PIXEL_RATIO = 3;
@@ -269,11 +271,36 @@ function resolveBandMap(band, scan) {
const rows = map.rows ?? scan.rows;
const columns = map.columns ?? scan.columns;
if (rows !== scan.rows || columns !== scan.columns || values.length !== rows * columns) return null;
const scale = map.scale ?? band.displayScale ?? band.rawScale ?? "power";
const objectiveDirection =
map.objectiveDirection ??
band.objectiveDirection ??
(scale === "noise-projection" ? "minimum" : "maximum");
if (objectiveDirection === "minimum") {
let pseudospectrum;
try {
pseudospectrum = normalizedMusicPseudospectrum(values);
} catch {
return null;
}
return {
values: pseudospectrum.values,
rows,
columns,
scale: "score",
sourceScale: scale,
objectiveDirection,
displayTransform: pseudospectrum.transform,
};
}
return {
values,
rows,
columns,
scale: map.scale ?? band.displayScale ?? "power",
scale,
sourceScale: scale,
objectiveDirection,
displayTransform: "identity",
};
}