@sudobility/music_drawing 0.0.35 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/keyboard-geometry.d.ts +6 -18
- package/dist/keyboard-geometry.d.ts.map +1 -1
- package/dist/keyboard-geometry.js.map +1 -1
- package/dist/keyboard-keys.d.ts +2 -2
- package/dist/keyboard-keys.d.ts.map +1 -1
- package/dist/keyboard-keys.js.map +1 -1
- package/dist/pagination.d.ts +1 -7
- package/dist/pagination.d.ts.map +1 -1
- package/dist/pagination.js +0 -4
- package/dist/pagination.js.map +1 -1
- package/dist/playback-binding.d.ts +2 -0
- package/dist/playback-binding.d.ts.map +1 -1
- package/dist/playback-binding.js +13 -0
- package/dist/playback-binding.js.map +1 -1
- package/dist/playback-scroll.d.ts +23 -1
- package/dist/playback-scroll.d.ts.map +1 -1
- package/dist/playback-scroll.js +0 -21
- package/dist/playback-scroll.js.map +1 -1
- package/dist/playing-pitches.d.ts +44 -0
- package/dist/playing-pitches.d.ts.map +1 -0
- package/dist/playing-pitches.js +50 -0
- package/dist/playing-pitches.js.map +1 -0
- package/dist/print-plan.d.ts +2 -19
- package/dist/print-plan.d.ts.map +1 -1
- package/dist/print-plan.js +1 -33
- package/dist/print-plan.js.map +1 -1
- package/dist/score-canvas.d.ts +20 -23
- package/dist/score-canvas.d.ts.map +1 -1
- package/dist/score-canvas.js +32 -2
- package/dist/score-canvas.js.map +1 -1
- package/dist/types.d.ts +5 -13
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
- package/dist/out-of-range.d.ts +0 -67
- package/dist/out-of-range.d.ts.map +0 -1
- package/dist/out-of-range.js +0 -101
- package/dist/out-of-range.js.map +0 -1
- package/dist/press.d.ts +0 -66
- package/dist/press.d.ts.map +0 -1
- package/dist/press.js +0 -64
- package/dist/press.js.map +0 -1
package/dist/score-canvas.d.ts
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
* apps therefore answer "where is tick N" and "what is under this point" with
|
|
10
10
|
* the same code.
|
|
11
11
|
*/
|
|
12
|
-
import type {
|
|
12
|
+
import type { LayoutMode, PitchDisplay, Score, ScoreCanvasHit, SoundingNote } from '@sudobility/music_types';
|
|
13
13
|
import type { CanvasRenderOptions, CanvasRenderResult } from './canvas-renderer.js';
|
|
14
14
|
import type { LayoutPlan } from './layout.js';
|
|
15
15
|
import type { PlaybackScrollTarget } from './playback-scroll.js';
|
|
16
|
-
import type {
|
|
16
|
+
import type { RenderTheme } from './types.js';
|
|
17
17
|
import type { CursorGeometry, CursorMotion, CursorPath } from './cursor.js';
|
|
18
18
|
import type { PaintFrame } from './layered-paint.js';
|
|
19
19
|
/** What the canvas is showing and at what size. `width`/`height` are view px. */
|
|
@@ -32,27 +32,6 @@ export type ViewPoint = {
|
|
|
32
32
|
x: number;
|
|
33
33
|
y: number;
|
|
34
34
|
};
|
|
35
|
-
export type ScoreCanvasHit = {
|
|
36
|
-
kind: 'trackGutter';
|
|
37
|
-
trackId: string;
|
|
38
|
-
} | {
|
|
39
|
-
kind: 'measureNumber';
|
|
40
|
-
measureIndex: number;
|
|
41
|
-
} | {
|
|
42
|
-
kind: 'note';
|
|
43
|
-
/** Every event sharing the notehead's box: a chord is one target. */
|
|
44
|
-
eventIds: string[];
|
|
45
|
-
trackId: string;
|
|
46
|
-
measureIndex: number;
|
|
47
|
-
tick: number;
|
|
48
|
-
} | {
|
|
49
|
-
kind: 'stave';
|
|
50
|
-
trackId: string;
|
|
51
|
-
measureIndex: number;
|
|
52
|
-
tick: number;
|
|
53
|
-
/** The pitch *as drawn* at that point, when the point is on a stave. */
|
|
54
|
-
pitch: Pitch | null;
|
|
55
|
-
};
|
|
56
35
|
/** What a platform provides. */
|
|
57
36
|
export interface ScoreCanvasSurface {
|
|
58
37
|
/**
|
|
@@ -152,6 +131,7 @@ export declare class ScoreCanvas {
|
|
|
152
131
|
private path;
|
|
153
132
|
private shownMotion;
|
|
154
133
|
private cancelWrap;
|
|
134
|
+
private readonly systemListeners;
|
|
155
135
|
/** The look-ahead preparation in progress, and the window it is for. */
|
|
156
136
|
private cancelLookahead;
|
|
157
137
|
private lookaheadKey;
|
|
@@ -235,6 +215,23 @@ export declare class ScoreCanvas {
|
|
|
235
215
|
*/
|
|
236
216
|
get highlightLatencySeconds(): number;
|
|
237
217
|
subscribeHighlightLatency(listener: (seconds: number) => void): () => void;
|
|
218
|
+
/**
|
|
219
|
+
* The moving cursor has crossed into a new system — told at the tick, before
|
|
220
|
+
* the new path is shown.
|
|
221
|
+
*
|
|
222
|
+
* Whoever follows the music has to hear about this *here* rather than from
|
|
223
|
+
* the next position report, because the caret is placed in content
|
|
224
|
+
* coordinates: a path in a system the view has not scrolled to is a caret
|
|
225
|
+
* drawn off screen. The canvas hands the path over on its own timeout, exact
|
|
226
|
+
* to the tick, while the reports arrive about 30 times a second — so the
|
|
227
|
+
* scroll used to land 8–44ms late (measured on the Mac, a dense eleven-track
|
|
228
|
+
* score) and the caret was simply missing for that long at every wrap, once
|
|
229
|
+
* every two seconds.
|
|
230
|
+
*
|
|
231
|
+
* Only the *when* is published: whether to follow at all, and where to, stay
|
|
232
|
+
* with the caller and `followTarget`.
|
|
233
|
+
*/
|
|
234
|
+
subscribeCursorSystem(listener: (tick: number) => void): () => void;
|
|
238
235
|
/** Paint now rather than on the next frame — for a host that must, like a resize. */
|
|
239
236
|
paintNow(): void;
|
|
240
237
|
dispose(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-canvas.d.ts","sourceRoot":"","sources":["../src/score-canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"score-canvas.d.ts","sourceRoot":"","sources":["../src/score-canvas.ts"],"names":[],"mappings":"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"}
|
package/dist/score-canvas.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { displayScore, measureAtTick, measureIndexOf, } from '@sudobility/music_types';
|
|
1
|
+
import { displayScore, measureAtTick, measureIndexOf, outOfRangeNoteIds, } from '@sudobility/music_types';
|
|
2
2
|
import { TRACK_INFO_WIDTH, boxForMeasureIndex, computeLayout, resolveZoom, } from './layout.js';
|
|
3
3
|
import { eventIdAtPoint, eventIdsAtPoint, eventIdsInBox, measureAtPoint, measureIndexAtGutterPoint, pitchAtStavePoint, } from './hit-test.js';
|
|
4
4
|
import { trackIdAtGutterPoint } from './track-gutter.js';
|
|
5
5
|
import { noteColorsFor } from './note-colors.js';
|
|
6
|
-
import { outOfRangeNoteIds } from './out-of-range.js';
|
|
7
6
|
import { playbackScrollTarget } from './playback-scroll.js';
|
|
8
7
|
import { tickForPoint } from './playhead.js';
|
|
9
8
|
import { shouldShowTrackInfo } from './types.js';
|
|
@@ -63,6 +62,7 @@ export class ScoreCanvas {
|
|
|
63
62
|
this.path = null;
|
|
64
63
|
this.shownMotion = null;
|
|
65
64
|
this.cancelWrap = null;
|
|
65
|
+
this.systemListeners = new Set();
|
|
66
66
|
/** The look-ahead preparation in progress, and the window it is for. */
|
|
67
67
|
this.cancelLookahead = null;
|
|
68
68
|
this.lookaheadKey = null;
|
|
@@ -387,6 +387,26 @@ export class ScoreCanvas {
|
|
|
387
387
|
this.highlightListeners.add(listener);
|
|
388
388
|
return () => this.highlightListeners.delete(listener);
|
|
389
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* The moving cursor has crossed into a new system — told at the tick, before
|
|
392
|
+
* the new path is shown.
|
|
393
|
+
*
|
|
394
|
+
* Whoever follows the music has to hear about this *here* rather than from
|
|
395
|
+
* the next position report, because the caret is placed in content
|
|
396
|
+
* coordinates: a path in a system the view has not scrolled to is a caret
|
|
397
|
+
* drawn off screen. The canvas hands the path over on its own timeout, exact
|
|
398
|
+
* to the tick, while the reports arrive about 30 times a second — so the
|
|
399
|
+
* scroll used to land 8–44ms late (measured on the Mac, a dense eleven-track
|
|
400
|
+
* score) and the caret was simply missing for that long at every wrap, once
|
|
401
|
+
* every two seconds.
|
|
402
|
+
*
|
|
403
|
+
* Only the *when* is published: whether to follow at all, and where to, stay
|
|
404
|
+
* with the caller and `followTarget`.
|
|
405
|
+
*/
|
|
406
|
+
subscribeCursorSystem(listener) {
|
|
407
|
+
this.systemListeners.add(listener);
|
|
408
|
+
return () => this.systemListeners.delete(listener);
|
|
409
|
+
}
|
|
390
410
|
/** Paint now rather than on the next frame — for a host that must, like a resize. */
|
|
391
411
|
paintNow() {
|
|
392
412
|
// A host paints now when its drawing surface itself changed — a resize
|
|
@@ -666,6 +686,16 @@ export class ScoreCanvas {
|
|
|
666
686
|
const path = systemIndex < 0
|
|
667
687
|
? null
|
|
668
688
|
: cursorPathFor(plan, score, this.zoom, this.starts, systemIndex, this.positions());
|
|
689
|
+
// 6. The page turn is part of the handover, not a consequence of it: told
|
|
690
|
+
// before the path is shown, a follower scrolls in this same turn and the
|
|
691
|
+
// caret never lands in a system the view is not showing.
|
|
692
|
+
if (path &&
|
|
693
|
+
this.motion.ticksPerSecond > 0 &&
|
|
694
|
+
this.path !== null &&
|
|
695
|
+
this.path.systemIndex !== path.systemIndex) {
|
|
696
|
+
for (const listener of this.systemListeners)
|
|
697
|
+
listener(tick);
|
|
698
|
+
}
|
|
669
699
|
this.show(path);
|
|
670
700
|
// 6. Hand over to the next system when the moving cursor gets there.
|
|
671
701
|
const rate = this.motion.ticksPerSecond;
|
package/dist/score-canvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score-canvas.js","sourceRoot":"","sources":["../src/score-canvas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"score-canvas.js","sourceRoot":"","sources":["../src/score-canvas.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* VexFlow renderer adapter contract (spec §7, §26): the shared shapes the
|
|
3
|
-
* layout pass (`layout.ts`), the canvas renderer (`canvas-renderer.ts`),
|
|
4
|
-
*
|
|
3
|
+
* layout pass (`layout.ts`), the canvas renderer (`canvas-renderer.ts`), the
|
|
4
|
+
* note colouring (`note-color.ts`, `note-colors.ts`) and the score canvas
|
|
5
|
+
* (`score-canvas.ts`) all agree on. There is no highlight overlay: a note's
|
|
6
|
+
* state is its colour. Downstream apps
|
|
5
7
|
* import these verbatim — keep them stable; add new capabilities alongside
|
|
6
8
|
* them rather than by editing their fields.
|
|
7
9
|
*/
|
|
10
|
+
import type { LayoutMode } from '@sudobility/music_types';
|
|
8
11
|
/** How a note is colored, by state. See `note-color.ts`'s `resolveNoteColorRole` for precedence. */
|
|
9
12
|
export type NoteColorRole = 'normal' | 'selected' | 'regenerated' | 'playing' | 'outOfRange';
|
|
10
13
|
export type RenderMode = 'screen' | 'print';
|
|
@@ -103,17 +106,6 @@ export declare const PRINT_INK = "#000000";
|
|
|
103
106
|
export declare const DEFAULT_SCREEN_RENDER_THEME: RenderTheme;
|
|
104
107
|
/** A monochrome theme for callers that render paper-first surfaces. */
|
|
105
108
|
export declare const DEFAULT_PRINT_RENDER_THEME: RenderTheme;
|
|
106
|
-
/**
|
|
107
|
-
* How a score is packed onto the surface it is drawn on.
|
|
108
|
-
*
|
|
109
|
-
* Declared as an array with the type read off it, not as a bare union: a
|
|
110
|
-
* TypeScript union has no runtime form, so a picker offering these — and there
|
|
111
|
-
* is one in each app's toolbar — would otherwise have to write the list out
|
|
112
|
-
* again, which is how one of them comes to offer a mode the renderer no longer
|
|
113
|
-
* has.
|
|
114
|
-
*/
|
|
115
|
-
export declare const LAYOUT_MODES: readonly ["page", "continuous"];
|
|
116
|
-
export type LayoutMode = (typeof LAYOUT_MODES)[number];
|
|
117
109
|
export type RenderOptions = {
|
|
118
110
|
/** Linear scale factor applied to the whole render (measure width, stave height, font size). */
|
|
119
111
|
zoom: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,oGAAoG;AACpG,MAAM,MAAM,aAAa,GACvB,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE5C,KAAK,oBAAoB,GAAG;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,UAAU,CAIvE;AAED,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAE1E;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;OAUG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,oHAAoH;IACpH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,uCAAuC;AACvC,eAAO,MAAM,SAAS,YAAY,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,EAAE,WAazC,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,EAAE,WAkBxC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAC;IACb,mGAAmG;IACnG,UAAU,EAAE,UAAU,CAAC;IACvB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kGAAkG;IAClG,KAAK,EAAE,MAAM,CAAC;IACd,sHAAsH;IACtH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAChD,sGAAsG;IACtG,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,4IAA4I;IAC5I,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VexFlow renderer adapter contract (spec §7, §26): the shared shapes the
|
|
3
|
-
* layout pass (`layout.ts`), the canvas renderer (`canvas-renderer.ts`),
|
|
4
|
-
* and the highlight overlay (`overlay.ts`) all agree on. Downstream apps
|
|
5
|
-
* import these verbatim — keep them stable; add new capabilities alongside
|
|
6
|
-
* them rather than by editing their fields.
|
|
7
|
-
*/
|
|
8
1
|
/**
|
|
9
2
|
* The drawing intent for a render.
|
|
10
3
|
*
|
|
@@ -60,14 +53,4 @@ export const DEFAULT_PRINT_RENDER_THEME = {
|
|
|
60
53
|
caret: PRINT_INK,
|
|
61
54
|
printForeground: PRINT_INK,
|
|
62
55
|
};
|
|
63
|
-
/**
|
|
64
|
-
* How a score is packed onto the surface it is drawn on.
|
|
65
|
-
*
|
|
66
|
-
* Declared as an array with the type read off it, not as a bare union: a
|
|
67
|
-
* TypeScript union has no runtime form, so a picker offering these — and there
|
|
68
|
-
* is one in each app's toolbar — would otherwise have to write the list out
|
|
69
|
-
* again, which is how one of them comes to offer a mode the renderer no longer
|
|
70
|
-
* has.
|
|
71
|
-
*/
|
|
72
|
-
export const LAYOUT_MODES = ['page', 'continuous'];
|
|
73
56
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsBA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,OAA6B;IACzD,OAAO,CACL,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC7E,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,OAAO,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;AACtE,CAAC;AA0ED,uCAAuC;AACvC,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAgB;IACtD,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,SAAS;IACtB,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,SAAS;IAC3B,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,SAAS;IACxB,KAAK,EAAE,SAAS;IAChB,eAAe,EAAE,SAAS;CAC3B,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,eAAe,EAAE,SAAS;IAC1B,WAAW,EAAE,SAAS;IACtB;;;;MAIE;IACF,cAAc,EAAE,SAAS;IACzB,gBAAgB,EAAE,SAAS;IAC3B,WAAW,EAAE,SAAS;IACtB,aAAa,EAAE,SAAS;IACxB,KAAK,EAAE,SAAS;IAChB,eAAe,EAAE,SAAS;CAC3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/music_drawing",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.37",
|
|
4
4
|
"description": "Canvas score rendering for Moosiac: layout, VexFlow drawing and the paint loop.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -44,11 +44,11 @@
|
|
|
44
44
|
"vexflow": "^4.2.5"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@sudobility/music_types": "^0.13.
|
|
47
|
+
"@sudobility/music_types": "^0.13.27"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@eslint/js": "^9.38.0",
|
|
51
|
-
"@sudobility/music_types": "^0.13.
|
|
51
|
+
"@sudobility/music_types": "^0.13.27",
|
|
52
52
|
"@sudobility/types": "^1.9.67",
|
|
53
53
|
"@tonejs/midi": "^2.0.28",
|
|
54
54
|
"@types/jsdom": "^30.0.0",
|
package/dist/out-of-range.d.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Notes an instrument cannot play, found in a score that already holds them.
|
|
3
|
-
*
|
|
4
|
-
* Here rather than in an app for the reason `note-colors.ts` beside it gives:
|
|
5
|
-
* two apps draw this score, and "which notes are lit, and why" having two
|
|
6
|
-
* answers is how the native app came to light nothing at all during playback.
|
|
7
|
-
*
|
|
8
|
-
* The compass lives in one place — `gm-catalogue.ts`, reached through
|
|
9
|
-
* `trackKeyboardRange` — and three of the four surfaces that care already read
|
|
10
|
-
* it: the keyboard shows exactly that span, generation now states it in the
|
|
11
|
-
* prompt, and `inspect.ts` judges a generated part against it. The notation is
|
|
12
|
-
* the exception, by design: it draws what the score holds, because a score is
|
|
13
|
-
* not only ever a generated one.
|
|
14
|
-
*
|
|
15
|
-
* That is the disagreement a reader actually meets. A timpani part written a
|
|
16
|
-
* fifth below its lowest drum draws perfectly well on the stave and cannot
|
|
17
|
-
* light a single key on the keyboard — measured on one project, 482 of 1,067
|
|
18
|
-
* notes. Nothing here rewrites those notes: they are marked, and moving them
|
|
19
|
-
* by an octave is a musical decision that belongs to the person reading, not
|
|
20
|
-
* to a scan.
|
|
21
|
-
*
|
|
22
|
-
* Gated on `trackRangeIsBinding`, the same condition the server applies, so the
|
|
23
|
-
* page and the server cannot disagree about what counts as out of range. A
|
|
24
|
-
* compass nobody verified marks nothing.
|
|
25
|
-
*
|
|
26
|
-
* ## Sounding pitch, and so the STORED score
|
|
27
|
-
*
|
|
28
|
-
* Every number in `gm-catalogue.ts` is sounding pitch, and `midiIsInRange` is
|
|
29
|
-
* documented as taking one. The score this package *draws* is not: the app
|
|
30
|
-
* hands `render` a `displayScore(score, pitchDisplay)`, which in written mode
|
|
31
|
-
* has moved a B-flat clarinet up a tone and, in every mode, has moved an
|
|
32
|
-
* `8va`'s noteheads down an octave. Scanning that would place a clarinet's
|
|
33
|
-
* whole part a tone above where it sounds and mark the top of it wrongly.
|
|
34
|
-
*
|
|
35
|
-
* So this takes the **stored** score — the one the app holds, before the
|
|
36
|
-
* lenses — and the result stays correct in either display mode because it is
|
|
37
|
-
* expressed as event **ids**, which both lenses preserve: `transposeEvents`
|
|
38
|
-
* and `ottavaScore` spread `...event` and replace only `pitch`. The renderer
|
|
39
|
-
* colours by id, so "which notes" survives a transposition that changes what
|
|
40
|
-
* those notes look like. `out-of-range.test.ts` pins that with a clarinet.
|
|
41
|
-
*/
|
|
42
|
-
import { type MidiRange, type Score } from '@sudobility/music_types';
|
|
43
|
-
export type OutOfRangeTrack = {
|
|
44
|
-
trackId: string;
|
|
45
|
-
name: string;
|
|
46
|
-
/** What the instrument can play. */
|
|
47
|
-
compass: MidiRange;
|
|
48
|
-
/** How many notes fall outside it. */
|
|
49
|
-
count: number;
|
|
50
|
-
/** The distinct pitches that do, lowest first. */
|
|
51
|
-
midis: number[];
|
|
52
|
-
};
|
|
53
|
-
export type OutOfRangeScan = {
|
|
54
|
-
/** Every offending note id, for the notation's colours. */
|
|
55
|
-
ids: string[];
|
|
56
|
-
/** One entry per track that has any, for the inspector's sentence. */
|
|
57
|
-
byTrack: OutOfRangeTrack[];
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Every note `score` holds that its own instrument cannot play.
|
|
61
|
-
*
|
|
62
|
-
* `score` is the **stored** score — sounding pitch, before `displayScore`. Do
|
|
63
|
-
* not pass the score handed to `render`; see this module's doc for why, and
|
|
64
|
-
* why the ids come back usable in either display mode anyway.
|
|
65
|
-
*/
|
|
66
|
-
export declare function outOfRangeNoteIds(score: Score | null): OutOfRangeScan;
|
|
67
|
-
//# sourceMappingURL=out-of-range.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"out-of-range.d.ts","sourceRoot":"","sources":["../src/out-of-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,KAAK,EACX,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,EAAE,SAAS,CAAC;IACnB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,2DAA2D;IAC3D,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,sEAAsE;IACtE,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B,CAAC;AAIF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,cAAc,CAiDrE"}
|
package/dist/out-of-range.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Notes an instrument cannot play, found in a score that already holds them.
|
|
3
|
-
*
|
|
4
|
-
* Here rather than in an app for the reason `note-colors.ts` beside it gives:
|
|
5
|
-
* two apps draw this score, and "which notes are lit, and why" having two
|
|
6
|
-
* answers is how the native app came to light nothing at all during playback.
|
|
7
|
-
*
|
|
8
|
-
* The compass lives in one place — `gm-catalogue.ts`, reached through
|
|
9
|
-
* `trackKeyboardRange` — and three of the four surfaces that care already read
|
|
10
|
-
* it: the keyboard shows exactly that span, generation now states it in the
|
|
11
|
-
* prompt, and `inspect.ts` judges a generated part against it. The notation is
|
|
12
|
-
* the exception, by design: it draws what the score holds, because a score is
|
|
13
|
-
* not only ever a generated one.
|
|
14
|
-
*
|
|
15
|
-
* That is the disagreement a reader actually meets. A timpani part written a
|
|
16
|
-
* fifth below its lowest drum draws perfectly well on the stave and cannot
|
|
17
|
-
* light a single key on the keyboard — measured on one project, 482 of 1,067
|
|
18
|
-
* notes. Nothing here rewrites those notes: they are marked, and moving them
|
|
19
|
-
* by an octave is a musical decision that belongs to the person reading, not
|
|
20
|
-
* to a scan.
|
|
21
|
-
*
|
|
22
|
-
* Gated on `trackRangeIsBinding`, the same condition the server applies, so the
|
|
23
|
-
* page and the server cannot disagree about what counts as out of range. A
|
|
24
|
-
* compass nobody verified marks nothing.
|
|
25
|
-
*
|
|
26
|
-
* ## Sounding pitch, and so the STORED score
|
|
27
|
-
*
|
|
28
|
-
* Every number in `gm-catalogue.ts` is sounding pitch, and `midiIsInRange` is
|
|
29
|
-
* documented as taking one. The score this package *draws* is not: the app
|
|
30
|
-
* hands `render` a `displayScore(score, pitchDisplay)`, which in written mode
|
|
31
|
-
* has moved a B-flat clarinet up a tone and, in every mode, has moved an
|
|
32
|
-
* `8va`'s noteheads down an octave. Scanning that would place a clarinet's
|
|
33
|
-
* whole part a tone above where it sounds and mark the top of it wrongly.
|
|
34
|
-
*
|
|
35
|
-
* So this takes the **stored** score — the one the app holds, before the
|
|
36
|
-
* lenses — and the result stays correct in either display mode because it is
|
|
37
|
-
* expressed as event **ids**, which both lenses preserve: `transposeEvents`
|
|
38
|
-
* and `ottavaScore` spread `...event` and replace only `pitch`. The renderer
|
|
39
|
-
* colours by id, so "which notes" survives a transposition that changes what
|
|
40
|
-
* those notes look like. `out-of-range.test.ts` pins that with a clarinet.
|
|
41
|
-
*/
|
|
42
|
-
import { isNoteEvent, isPercussionTrack, midiIsInRange, pitchToMidi, trackKeyboardRange, trackRangeIsBinding, } from '@sudobility/music_types';
|
|
43
|
-
const EMPTY = { ids: [], byTrack: [] };
|
|
44
|
-
/**
|
|
45
|
-
* Every note `score` holds that its own instrument cannot play.
|
|
46
|
-
*
|
|
47
|
-
* `score` is the **stored** score — sounding pitch, before `displayScore`. Do
|
|
48
|
-
* not pass the score handed to `render`; see this module's doc for why, and
|
|
49
|
-
* why the ids come back usable in either display mode anyway.
|
|
50
|
-
*/
|
|
51
|
-
export function outOfRangeNoteIds(score) {
|
|
52
|
-
if (!score)
|
|
53
|
-
return EMPTY;
|
|
54
|
-
const ids = [];
|
|
55
|
-
const byTrack = [];
|
|
56
|
-
for (const track of score.tracks) {
|
|
57
|
-
/*
|
|
58
|
-
* A drum pitch names a drum rather than a place in a compass, so this test
|
|
59
|
-
* comes FIRST and is not folded into the gate below it.
|
|
60
|
-
*
|
|
61
|
-
* `trackRangeIsBinding` answers **true** for percussion on purpose — a kit
|
|
62
|
-
* has the pieces it has, which is the right answer for note entry and for
|
|
63
|
-
* generation, where refusing an address no drum sits at is a service. It is
|
|
64
|
-
* the wrong answer here: `percussion.ts` already handles a drum outside
|
|
65
|
-
* `GM_PERCUSSION_RANGE` by parking it on the middle line as `UNMAPPED`, and
|
|
66
|
-
* colouring it as well would be two marks for one fact.
|
|
67
|
-
*/
|
|
68
|
-
if (isPercussionTrack(track))
|
|
69
|
-
continue;
|
|
70
|
-
if (!trackRangeIsBinding(track))
|
|
71
|
-
continue;
|
|
72
|
-
const compass = trackKeyboardRange(track);
|
|
73
|
-
const midis = new Set();
|
|
74
|
-
let count = 0;
|
|
75
|
-
for (const measure of track.measures) {
|
|
76
|
-
for (const voice of measure.voices) {
|
|
77
|
-
for (const event of voice.events) {
|
|
78
|
-
if (!isNoteEvent(event))
|
|
79
|
-
continue;
|
|
80
|
-
const midi = pitchToMidi(event.pitch);
|
|
81
|
-
if (midiIsInRange(midi, compass))
|
|
82
|
-
continue;
|
|
83
|
-
ids.push(event.id);
|
|
84
|
-
midis.add(midi);
|
|
85
|
-
count += 1;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (count > 0) {
|
|
90
|
-
byTrack.push({
|
|
91
|
-
trackId: track.id,
|
|
92
|
-
name: track.name,
|
|
93
|
-
compass,
|
|
94
|
-
count,
|
|
95
|
-
midis: [...midis].sort((a, b) => a - b),
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return ids.length > 0 ? { ids, byTrack } : EMPTY;
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=out-of-range.js.map
|
package/dist/out-of-range.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"out-of-range.js","sourceRoot":"","sources":["../src/out-of-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AAoBjC,MAAM,KAAK,GAAmB,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAmB;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC;;;;;;;;;;WAUG;QACH,IAAI,iBAAiB,CAAC,KAAK,CAAC;YAAE,SAAS;QACvC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAAE,SAAS;QAE1C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;wBAAE,SAAS;oBAClC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC;wBAAE,SAAS;oBAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACnB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAChB,KAAK,IAAI,CAAC,CAAC;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO;gBACP,KAAK;gBACL,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC"}
|
package/dist/press.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* What a press on the score was: a tap, a long press, or a drag.
|
|
3
|
-
*
|
|
4
|
-
* Both apps answer this at the end of every press, and they answered it with
|
|
5
|
-
* different numbers in different files — the web's `DRAG_THRESHOLD` inside the
|
|
6
|
-
* notation view, the native app's `LONG_PRESS_MS`/`LONG_PRESS_SLOP` inside its
|
|
7
|
-
* scrolling score. The question is about the canvas (did the press stay on the
|
|
8
|
-
* thing under it?), so it lives beside the hit-testing that answers the next
|
|
9
|
-
* question.
|
|
10
|
-
*
|
|
11
|
-
* ## Mouse and touch differ, on purpose
|
|
12
|
-
*
|
|
13
|
-
* A mouse is still: a click that moved more than 3px was meant to move, which
|
|
14
|
-
* is exactly where the web's box select has always started. A finger is not —
|
|
15
|
-
* a deliberate tap on a phone routinely lands several points from where it
|
|
16
|
-
* touched down, and holding a finger to 3px would turn a good share of taps
|
|
17
|
-
* into drags. So a touch gets `TOUCH_TAP_SLOP`, the same allowance a long press
|
|
18
|
-
* already had: a press that stays put long enough to be a long press would
|
|
19
|
-
* otherwise have been a *drag* had it been released a moment sooner, which is
|
|
20
|
-
* not a distinction a thumb can make.
|
|
21
|
-
*
|
|
22
|
-
* A mouse never long-presses. It has a secondary button for the context menu,
|
|
23
|
-
* and a click held while the reader looks at something is not a request for
|
|
24
|
-
* one — reading it as one would change what an ordinary slow click does on the
|
|
25
|
-
* web. React Native on macOS passes `'touch'`, because its gesture model is the
|
|
26
|
-
* touch one: the long press is how it opens the menu.
|
|
27
|
-
*
|
|
28
|
-
* ## Distance
|
|
29
|
-
*
|
|
30
|
-
* Measured per axis (the larger of |dx| and |dy|), which is the web's existing
|
|
31
|
-
* rule to the pixel. The native app used the straight-line distance; per axis
|
|
32
|
-
* lets a diagonal wander up to √2 further, which is under five points at a
|
|
33
|
-
* 12pt slop and not something a hand can aim at.
|
|
34
|
-
*
|
|
35
|
-
* The caller latches: once a press has classified as a drag it stays one even
|
|
36
|
-
* if the pointer comes back, which is how the web's `drag.moved` behaves. This
|
|
37
|
-
* function answers for one moment and keeps no state.
|
|
38
|
-
*/
|
|
39
|
-
/** What produced the press. */
|
|
40
|
-
export type PointerKind = 'mouse' | 'touch';
|
|
41
|
-
export type PressKind = 'tap' | 'longPress' | 'drag';
|
|
42
|
-
/** How far a mouse press may move and still be a click, in px (web). */
|
|
43
|
-
export declare const TAP_SLOP = 3;
|
|
44
|
-
/** How far a finger may move and still be a tap, in pt. */
|
|
45
|
-
export declare const TOUCH_TAP_SLOP = 12;
|
|
46
|
-
/** How long a press is held to be a long press — iOS's and Android's own threshold. */
|
|
47
|
-
export declare const LONG_PRESS_MS = 500;
|
|
48
|
-
/** How far a long press may wander — about a thumb's width. */
|
|
49
|
-
export declare const LONG_PRESS_SLOP = 12;
|
|
50
|
-
/** The tap slop for a pointer kind. */
|
|
51
|
-
export declare function tapSlopFor(pointer: PointerKind): number;
|
|
52
|
-
export type PressMeasure = {
|
|
53
|
-
/** Movement since the press began, either sign. */
|
|
54
|
-
dx: number;
|
|
55
|
-
dy: number;
|
|
56
|
-
/** How long the press has been (or was) held. */
|
|
57
|
-
heldMs: number;
|
|
58
|
-
/** Defaults to `'mouse'`, the web's rule. */
|
|
59
|
-
pointer?: PointerKind;
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* `'longPress'` if a touch was held `LONG_PRESS_MS` within `LONG_PRESS_SLOP`;
|
|
63
|
-
* otherwise `'tap'` if it moved no more than the tap slop; otherwise `'drag'`.
|
|
64
|
-
*/
|
|
65
|
-
export declare function classifyPress({ dx, dy, heldMs, pointer, }: PressMeasure): PressKind;
|
|
66
|
-
//# sourceMappingURL=press.d.ts.map
|
package/dist/press.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"press.d.ts","sourceRoot":"","sources":["../src/press.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC;AAErD,wEAAwE;AACxE,eAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,2DAA2D;AAC3D,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,uFAAuF;AACvF,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAEvD;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EACF,EAAE,EACF,MAAM,EACN,OAAiB,GAClB,EAAE,YAAY,GAAG,SAAS,CAU1B"}
|