Spaces:
Sleeping
Sleeping
const POS_PRECISION = 0.25; | |
const SIZE_PRECISION = 0.05; | |
const STROKE_PRECISION = 0.01; | |
const CLOSED_NOTEHEAD_INTERVAL_FIRST_DEG = 1.3052; | |
const GLYPH_BASE_SCALE = 0.004; | |
const NOTE_TYPE_WIDTHS = [1.81, 1.3232, 1.257, 1.257, 1.38]; | |
const NOTE_TYPE_JOINT_Y = [0.2, 0.2, 0.2, 0.38, 0.2]; | |
// DEPRECATED | |
const MUSIC_FONT_NOTE_OFFSETS = [0.08, 0.05, -0.02, 0.3, -0.12]; | |
const ALTER_WIDTHS = { | |
[-2]: 1.80, | |
[-1]: 1.16, | |
[0]: 1.05, | |
[1]: 1.46, | |
[2]: 1.39, | |
}; | |
const constants = { | |
CLOSED_NOTEHEAD_INTERVAL_FIRST_DEG, | |
NOTE_TYPE_WIDTHS, | |
NOTE_TYPE_JOINT_Y, | |
ALTER_WIDTHS, | |
MUSIC_FONT_NOTE_OFFSETS, | |
EPSILON: 1e-9, | |
}; | |
const roundNumber = (x, precision, min = -Infinity) => Number(Math.max(Math.round(x / precision) * precision, min).toFixed(4)); | |
// empirical formula for basic staff line stroke width | |
const sizeToStrokeWidth1 = size => 0.342842872995173 + 13.1430019250855 / size; | |
const sizeToStrokeWidth2 = size => (0.1342842872995173 + 1.31430019250855 / size) / 0.2; | |
export { | |
POS_PRECISION, | |
SIZE_PRECISION, | |
STROKE_PRECISION, | |
GLYPH_BASE_SCALE, | |
constants, | |
roundNumber, | |
sizeToStrokeWidth1, | |
sizeToStrokeWidth2, | |
}; | |