webdaw-modules
Version:
a set of modules for building a web-based DAW
26 lines (24 loc) • 787 B
text/typescript
import { OpenSheetMusicDisplay } from "opensheetmusicdisplay";
import { GraphicalMeasureShim } from "./type_shims";
import { BoundingBoxMeasure } from "../types";
// return the bounding boxes of all staves per measure
export const getBoundingBoxesOfGraphicalMeasures = (
osmd: OpenSheetMusicDisplay
): BoundingBoxMeasure[][] => {
return osmd.GraphicSheet.MeasureList.map(arr => {
return arr.map(measure => {
const { stave, measureNumber } = (measure as unknown) as GraphicalMeasureShim;
return {
measureNumber,
x: stave.x,
y: stave.y,
width: stave.width,
height: stave.height,
top: stave.y,
right: stave.x + stave.width,
bottom: stave.y + stave.height,
left: stave.x,
};
});
});
};