@sudobility/music_types 0.11.31 → 0.11.33
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/domain/commands/note-commands.d.ts +8 -155
- package/dist/domain/commands/note-commands.d.ts.map +1 -1
- package/dist/domain/commands/note-commands.js +1 -423
- package/dist/domain/commands/note-commands.js.map +1 -1
- package/dist/domain/commands/note-marks.d.ts +171 -0
- package/dist/domain/commands/note-marks.d.ts.map +1 -0
- package/dist/domain/commands/note-marks.js +427 -0
- package/dist/domain/commands/note-marks.js.map +1 -0
- package/dist/domain/score/fragment.d.ts +3 -7
- package/dist/domain/score/fragment.d.ts.map +1 -1
- package/dist/domain/score/fragment.js.map +1 -1
- package/dist/domain/selection/types.d.ts +2 -2
- package/dist/domain/selection/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -5499
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -461
- package/dist/index.js.map +1 -1
- package/dist/model/api.d.ts +1696 -0
- package/dist/model/api.d.ts.map +1 -0
- package/dist/model/api.js +125 -0
- package/dist/model/api.js.map +1 -0
- package/dist/model/generation.d.ts +2178 -0
- package/dist/model/generation.d.ts.map +1 -0
- package/dist/model/generation.js +142 -0
- package/dist/model/generation.js.map +1 -0
- package/dist/model/position.d.ts +82 -0
- package/dist/model/position.d.ts.map +1 -0
- package/dist/model/position.js +24 -0
- package/dist/model/position.js.map +1 -0
- package/dist/model/schemas.d.ts +1200 -0
- package/dist/model/schemas.d.ts.map +1 -0
- package/dist/model/schemas.js +200 -0
- package/dist/model/schemas.js.map +1 -0
- package/dist/model/score.d.ts +462 -0
- package/dist/model/score.d.ts.map +1 -0
- package/dist/model/score.js +34 -0
- package/dist/model/score.js.map +1 -0
- package/dist/model/selection-source.d.ts +53 -0
- package/dist/model/selection-source.d.ts.map +1 -0
- package/dist/model/selection-source.js +2 -0
- package/dist/model/selection-source.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/model/score.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The score model: what a piece of music *is* in this system.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `index.ts`, which had grown to 1,463 lines holding the whole
|
|
5
|
+
* model, every Zod schema and every API payload in one scroll. The index is
|
|
6
|
+
* now purely re-exports, so `@sudobility/music_types` still presents one
|
|
7
|
+
* surface while the declarations are findable.
|
|
8
|
+
*/
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// 1. Score model types
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
/** Softest first, which is the order a picker should offer them in. */
|
|
13
|
+
export const DYNAMICS = [
|
|
14
|
+
"ppp",
|
|
15
|
+
"pp",
|
|
16
|
+
"p",
|
|
17
|
+
"mp",
|
|
18
|
+
"mf",
|
|
19
|
+
"f",
|
|
20
|
+
"ff",
|
|
21
|
+
"fff",
|
|
22
|
+
];
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// 2. Type guards
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/** True for `NoteEvent`s (distinguished from `RestEvent` by the `pitch` property). */
|
|
27
|
+
export function isNoteEvent(event) {
|
|
28
|
+
return "pitch" in event;
|
|
29
|
+
}
|
|
30
|
+
/** True for `RestEvent`s (distinguished from `NoteEvent` by lacking a `pitch` property). */
|
|
31
|
+
export function isRestEvent(event) {
|
|
32
|
+
return !("pitch" in event);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=score.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../src/model/score.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAkK9E,uEAAuE;AACvE,MAAM,CAAC,MAAM,QAAQ,GAAuB;IAC1C,KAAK;IACL,IAAI;IACJ,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,IAAI;IACJ,KAAK;CACG,CAAC;AA4SX,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,sFAAsF;AACtF,MAAM,UAAU,WAAW,CAAC,KAAmB;IAC7C,OAAO,OAAO,IAAI,KAAK,CAAC;AAC1B,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,WAAW,CAAC,KAAmB;IAC7C,OAAO,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The current selection, as an interface rather than a store shape.
|
|
3
|
+
*
|
|
4
|
+
* Same reasoning as `IMusicPosition` next door. What the user has selected —
|
|
5
|
+
* notes, measures, the active track — is read by things that have no business
|
|
6
|
+
* knowing which state library holds it: the renderer colouring noteheads, a
|
|
7
|
+
* command deciding what it applies to, a toolbar deciding what to disable.
|
|
8
|
+
* Depending on the store for that couples every one of them to zustand and to
|
|
9
|
+
* this app's particular slice layout.
|
|
10
|
+
*
|
|
11
|
+
* The rule that keeps it honest is the same one the playhead follows: there is
|
|
12
|
+
* exactly **one writer**. The store's own selection actions feed this, so it
|
|
13
|
+
* mirrors rather than duplicates, and the two cannot drift apart. Nothing here
|
|
14
|
+
* is a second copy of the truth that somebody has to remember to update.
|
|
15
|
+
*/
|
|
16
|
+
import type { ScoreSelection, UUID } from "../index.js";
|
|
17
|
+
/** Undoes a `subscribe`. */
|
|
18
|
+
export type UnsubscribeSelection = () => void;
|
|
19
|
+
/** Read access to what is currently selected. */
|
|
20
|
+
export interface IMusicSelection {
|
|
21
|
+
/** Ids of the selected note events. Empty when nothing is selected. */
|
|
22
|
+
readonly noteIds: readonly UUID[];
|
|
23
|
+
/** Ids of the selected measures. */
|
|
24
|
+
readonly measureIds: readonly UUID[];
|
|
25
|
+
/** Ids of tracks selected outright — *not* the active track, which is separate. */
|
|
26
|
+
readonly trackIds: readonly UUID[];
|
|
27
|
+
/**
|
|
28
|
+
* The track edits are aimed at.
|
|
29
|
+
*
|
|
30
|
+
* Distinct from `trackIds`: one track is always active (it is what the
|
|
31
|
+
* caret writes into and what the piano keyboard shows), whereas selecting a
|
|
32
|
+
* track is something the user does to a track and usually does not.
|
|
33
|
+
*/
|
|
34
|
+
readonly activeTrackId: UUID | null;
|
|
35
|
+
/** The whole selection, in the shape commands already take. */
|
|
36
|
+
readonly selection: ScoreSelection;
|
|
37
|
+
/** Called after any of the above changes. */
|
|
38
|
+
subscribe(listener: () => void): UnsubscribeSelection;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The write side, held by the store and by nothing else.
|
|
42
|
+
*
|
|
43
|
+
* Split from `IMusicSelection` so that a consumer can be handed the reading
|
|
44
|
+
* half and be structurally unable to change what it is reading — the same
|
|
45
|
+
* split `IMusicPositionSource` makes, and for the same reason.
|
|
46
|
+
*/
|
|
47
|
+
export interface IMusicSelectionSource extends IMusicSelection {
|
|
48
|
+
/** Replaces the selection wholesale. */
|
|
49
|
+
setSelection(selection: ScoreSelection): void;
|
|
50
|
+
/** Records which track edits are aimed at. */
|
|
51
|
+
setActiveTrackId(trackId: UUID | null): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=selection-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-source.d.ts","sourceRoot":"","sources":["../../src/model/selection-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExD,4BAA4B;AAC5B,MAAM,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAE9C,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,IAAI,EAAE,CAAC;IAElC,oCAAoC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;IAErC,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;IAEnC;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAEpC,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IAEnC,6CAA6C;IAC7C,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,oBAAoB,CAAC;CACvD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,wCAAwC;IACxC,YAAY,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAE9C,8CAA8C;IAC9C,gBAAgB,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-source.js","sourceRoot":"","sources":["../../src/model/selection-source.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED