@sudobility/music_types 0.13.3 → 0.13.5

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.
Files changed (63) hide show
  1. package/CLAUDE.md +4 -0
  2. package/dist/bytes/base64.js +6 -6
  3. package/dist/domain/generation/replacement-region.d.ts +10 -0
  4. package/dist/domain/generation/replacement-region.d.ts.map +1 -1
  5. package/dist/domain/generation/replacement-region.js +22 -0
  6. package/dist/domain/generation/replacement-region.js.map +1 -1
  7. package/dist/domain/instruments/midi-protocol.d.ts +24 -0
  8. package/dist/domain/instruments/midi-protocol.d.ts.map +1 -0
  9. package/dist/domain/instruments/midi-protocol.js +24 -0
  10. package/dist/domain/instruments/midi-protocol.js.map +1 -0
  11. package/dist/domain/instruments/track-instrument.d.ts +17 -1
  12. package/dist/domain/instruments/track-instrument.d.ts.map +1 -1
  13. package/dist/domain/instruments/track-instrument.js +37 -0
  14. package/dist/domain/instruments/track-instrument.js.map +1 -1
  15. package/dist/domain/notation/display-lens.d.ts +32 -0
  16. package/dist/domain/notation/display-lens.d.ts.map +1 -0
  17. package/dist/domain/notation/display-lens.js +41 -0
  18. package/dist/domain/notation/display-lens.js.map +1 -0
  19. package/dist/domain/score/defaults.d.ts +21 -0
  20. package/dist/domain/score/defaults.d.ts.map +1 -0
  21. package/dist/domain/score/defaults.js +9 -0
  22. package/dist/domain/score/defaults.js.map +1 -0
  23. package/dist/domain/score/factory.d.ts.map +1 -1
  24. package/dist/domain/score/factory.js +2 -7
  25. package/dist/domain/score/factory.js.map +1 -1
  26. package/dist/domain/score/queries.d.ts +46 -0
  27. package/dist/domain/score/queries.d.ts.map +1 -1
  28. package/dist/domain/score/queries.js +94 -0
  29. package/dist/domain/score/queries.js.map +1 -1
  30. package/dist/domain/selection/clipboard-prompts.d.ts +34 -0
  31. package/dist/domain/selection/clipboard-prompts.d.ts.map +1 -0
  32. package/dist/domain/selection/clipboard-prompts.js +74 -0
  33. package/dist/domain/selection/clipboard-prompts.js.map +1 -0
  34. package/dist/domain/time/tempo-map.d.ts.map +1 -1
  35. package/dist/domain/time/tempo-map.js +1 -1
  36. package/dist/domain/time/tempo-map.js.map +1 -1
  37. package/dist/domain/time/tuplets.d.ts +3 -0
  38. package/dist/domain/time/tuplets.d.ts.map +1 -1
  39. package/dist/domain/time/tuplets.js +2 -2
  40. package/dist/domain/time/tuplets.js.map +1 -1
  41. package/dist/index.d.ts +4 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +4 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/model/generation.d.ts +335 -0
  46. package/dist/model/generation.d.ts.map +1 -1
  47. package/dist/model/generation.js +7 -0
  48. package/dist/model/generation.js.map +1 -1
  49. package/dist/model/score.d.ts +32 -14
  50. package/dist/model/score.d.ts.map +1 -1
  51. package/dist/model/score.js +104 -1
  52. package/dist/model/score.js.map +1 -1
  53. package/dist/platform/playback.d.ts.map +1 -1
  54. package/dist/position/singleton.d.ts +1 -1
  55. package/dist/position/singleton.js +1 -1
  56. package/dist/services/regeneration/controller.d.ts.map +1 -1
  57. package/dist/services/regeneration/controller.js +33 -0
  58. package/dist/services/regeneration/controller.js.map +1 -1
  59. package/dist/test/fixtures.d.ts +27 -1
  60. package/dist/test/fixtures.d.ts.map +1 -1
  61. package/dist/test/fixtures.js +25 -6
  62. package/dist/test/fixtures.js.map +1 -1
  63. package/package.json +6 -1
@@ -129,4 +129,98 @@ export function scoreWithTracks(score, trackIds) {
129
129
  return score;
130
130
  return { ...score, tracks };
131
131
  }
132
+ /**
133
+ * A track's notes in tick order.
134
+ *
135
+ * Lyric entry walks these, and so does anything that means "the next note
136
+ * after here" — so the sort is part of the answer rather than something each
137
+ * caller remembers. Rests are dropped: they carry no syllable and nothing that
138
+ * steps through notes wants to stop on one.
139
+ */
140
+ export function trackNotesInOrder(score, trackId) {
141
+ const track = findTrack(score, trackId);
142
+ if (!track)
143
+ return [];
144
+ const notes = [];
145
+ for (const measure of track.measures) {
146
+ for (const voice of measure.voices) {
147
+ for (const event of voice.events) {
148
+ if (isNoteEvent(event))
149
+ notes.push(event);
150
+ }
151
+ }
152
+ }
153
+ return notes.sort((a, b) => a.startTick - b.startTick);
154
+ }
155
+ /**
156
+ * The index of the first note at or after `tick`, or 0 when the tick is past
157
+ * every note.
158
+ *
159
+ * Falling back to the start rather than to -1: "begin here" with the caret
160
+ * past the end means begin at the beginning, which is what a writer expects
161
+ * from a command that has to start somewhere.
162
+ */
163
+ export function noteIndexAtOrAfter(notes, tick) {
164
+ const at = notes.findIndex((note) => note.startTick >= tick);
165
+ return at === -1 ? 0 : at;
166
+ }
167
+ /**
168
+ * Which voice a note is in, counted from 1.
169
+ *
170
+ * From 1 because that is what the toolbar's own Voice 1 / Voice 2 buttons say;
171
+ * the same note used to read as "Voice 1" on the bar and `0` in the panel.
172
+ */
173
+ export function voiceNumberOf(score, note) {
174
+ for (const track of score.tracks) {
175
+ for (const measure of track.measures) {
176
+ const index = measure.voices.findIndex((v) => v.id === note.voiceId);
177
+ if (index >= 0)
178
+ return index + 1;
179
+ }
180
+ }
181
+ return 1;
182
+ }
183
+ /** The position of a measure in its own track, or `null` if it is not in the score. */
184
+ export function measureIndexOf(score, measureId) {
185
+ for (const track of score.tracks) {
186
+ const index = track.measures.findIndex((m) => m.id === measureId);
187
+ if (index >= 0)
188
+ return index;
189
+ }
190
+ return null;
191
+ }
192
+ /** The measure holding `tick` on `trackId`, clamped to the last one past the end. */
193
+ export function measureAtTick(score, trackId, tick) {
194
+ const track = findTrack(score, trackId);
195
+ if (!track || track.measures.length === 0)
196
+ return null;
197
+ return (track.measures.find((m) => tick >= m.startTick && tick < m.startTick + m.durationTicks) ?? track.measures[track.measures.length - 1]);
198
+ }
199
+ /**
200
+ * The ids of notes whose sound overlaps `range` on the range's own tracks.
201
+ *
202
+ * Overlap, not containment: a note that starts before the range and is still
203
+ * sounding inside it was replaced by whatever was written there, so it is part
204
+ * of what changed.
205
+ */
206
+ export function noteIdsOverlappingRange(score, range) {
207
+ return allNotes(score)
208
+ .filter((note) => range.trackIds.includes(note.trackId) &&
209
+ note.startTick < range.endTick &&
210
+ note.startTick + note.durationTicks > range.startTick)
211
+ .map((note) => note.id);
212
+ }
213
+ /** The track a measure belongs to, or `null` if it is not in the score. */
214
+ export function trackOfMeasure(score, measureId) {
215
+ return (score.tracks.find((t) => t.measures.some((m) => m.id === measureId)) ?? null);
216
+ }
217
+ /**
218
+ * How many bars the score has.
219
+ *
220
+ * Off track 0, because every track shares the measure grid — the convention
221
+ * the layout, the gutter and `measureIndexOf` all already rely on.
222
+ */
223
+ export function barCount(score) {
224
+ return score?.tracks[0]?.measures.length ?? 0;
225
+ }
132
226
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/domain/score/queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/domain/score/queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * When cut and paste need to ask, and what they are asking about.
3
+ *
4
+ * Pure over the score — no store, no DOM — because the interesting part is the
5
+ * rule for *not* asking. Both prompts follow the export dialog's precedent:
6
+ * ask only when the answers would differ. A dialog whose options do the same
7
+ * thing is a click the user cannot get wrong, so it should not appear.
8
+ */
9
+ import type { NoteEvent, Score } from "../../index.js";
10
+ /**
11
+ * Whether cutting `notes` should ask "leave silence, or close the gap?".
12
+ *
13
+ * Only when something actually follows the cut on that track: with nothing
14
+ * after it, sliding the rest of the track up moves nothing, so the two answers
15
+ * produce identical scores.
16
+ *
17
+ * A cut spanning several tracks never asks. Closing a gap in one track while
18
+ * the others stay put is exactly the desynchronisation `insert` mode exists
19
+ * for, and doing it to several at once by accident would be worse than not
20
+ * offering it.
21
+ */
22
+ export declare function cutNeedsPrompt(score: Score, notes: readonly NoteEvent[]): boolean;
23
+ /**
24
+ * Whether pasting `span` ticks at `anchorTick` on `trackId` should ask
25
+ * "replace, or insert?".
26
+ *
27
+ * Only when the target span already holds something: pasting into empty time
28
+ * replaces nothing and displaces nothing, so both answers land the same notes
29
+ * in the same place.
30
+ */
31
+ export declare function pasteNeedsPrompt(score: Score, trackId: string, anchorTick: number, span: number): boolean;
32
+ /** The tick span the clipboard occupies, measured from its own earliest start. */
33
+ export declare function clipboardSpan(events: readonly NoteEvent[]): number;
34
+ //# sourceMappingURL=clipboard-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard-prompts.d.ts","sourceRoot":"","sources":["../../../src/domain/selection/clipboard-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAkBvD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,OAAO,CAcT;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAiBT;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,MAAM,CAKlE"}
@@ -0,0 +1,74 @@
1
+ /** Notes on `trackId` that start at or after `tick`. */
2
+ function notesAfter(score, trackId, tick) {
3
+ const track = score.tracks.find((t) => t.id === trackId);
4
+ if (!track)
5
+ return [];
6
+ const found = [];
7
+ for (const measure of track.measures) {
8
+ for (const voice of measure.voices) {
9
+ for (const event of voice.events) {
10
+ if ("pitch" in event && event.startTick >= tick)
11
+ found.push(event);
12
+ }
13
+ }
14
+ }
15
+ return found;
16
+ }
17
+ /**
18
+ * Whether cutting `notes` should ask "leave silence, or close the gap?".
19
+ *
20
+ * Only when something actually follows the cut on that track: with nothing
21
+ * after it, sliding the rest of the track up moves nothing, so the two answers
22
+ * produce identical scores.
23
+ *
24
+ * A cut spanning several tracks never asks. Closing a gap in one track while
25
+ * the others stay put is exactly the desynchronisation `insert` mode exists
26
+ * for, and doing it to several at once by accident would be worse than not
27
+ * offering it.
28
+ */
29
+ export function cutNeedsPrompt(score, notes) {
30
+ if (notes.length === 0)
31
+ return false;
32
+ const trackId = notes[0].trackId;
33
+ if (!notes.every((note) => note.trackId === trackId))
34
+ return false;
35
+ const cutIds = new Set(notes.map((note) => note.id));
36
+ const cutEnd = Math.max(...notes.map((note) => note.startTick + note.durationTicks));
37
+ return notesAfter(score, trackId, cutEnd).some((note) => !cutIds.has(note.id));
38
+ }
39
+ /**
40
+ * Whether pasting `span` ticks at `anchorTick` on `trackId` should ask
41
+ * "replace, or insert?".
42
+ *
43
+ * Only when the target span already holds something: pasting into empty time
44
+ * replaces nothing and displaces nothing, so both answers land the same notes
45
+ * in the same place.
46
+ */
47
+ export function pasteNeedsPrompt(score, trackId, anchorTick, span) {
48
+ const track = score.tracks.find((t) => t.id === trackId);
49
+ if (!track)
50
+ return false;
51
+ for (const measure of track.measures) {
52
+ for (const voice of measure.voices) {
53
+ for (const event of voice.events) {
54
+ if (!("pitch" in event))
55
+ continue;
56
+ const note = event;
57
+ const overlaps = note.startTick < anchorTick + span &&
58
+ note.startTick + note.durationTicks > anchorTick;
59
+ if (overlaps)
60
+ return true;
61
+ }
62
+ }
63
+ }
64
+ return false;
65
+ }
66
+ /** The tick span the clipboard occupies, measured from its own earliest start. */
67
+ export function clipboardSpan(events) {
68
+ if (events.length === 0)
69
+ return 0;
70
+ const start = Math.min(...events.map((e) => e.startTick));
71
+ const end = Math.max(...events.map((e) => e.startTick + e.durationTicks));
72
+ return end - start;
73
+ }
74
+ //# sourceMappingURL=clipboard-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard-prompts.js","sourceRoot":"","sources":["../../../src/domain/selection/clipboard-prompts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tempo-map.d.ts","sourceRoot":"","sources":["../../../src/domain/time/tempo-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgBjD;;;;;GAKG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM;IAK7C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA6C/B,uFAAuF;IACvF,OAAO,CAAC,iBAAiB;IASzB,gFAAgF;IAChF,OAAO,CAAC,oBAAoB;IAS5B,2CAA2C;IAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B,oDAAoD;IACpD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKpC,2EAA2E;IAC3E,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAKxC"}
1
+ {"version":3,"file":"tempo-map.d.ts","sourceRoot":"","sources":["../../../src/domain/time/tempo-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAejD;;;;;GAKG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM;IAK7C,OAAO,CAAC,MAAM,CAAC,gBAAgB;IA6C/B,uFAAuF;IACvF,OAAO,CAAC,iBAAiB;IASzB,gFAAgF;IAChF,OAAO,CAAC,oBAAoB;IAS5B,2CAA2C;IAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI3B,oDAAoD;IACpD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKpC,2EAA2E;IAC3E,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAKxC"}
@@ -1,4 +1,4 @@
1
- const DEFAULT_BPM = 120;
1
+ import { DEFAULT_BPM } from "../score/defaults.js";
2
2
  /** Seconds elapsed for a given tick delta at a constant bpm. */
3
3
  function deltaTicksToSeconds(deltaTicks, ppq, bpm) {
4
4
  return (deltaTicks / ppq) * (60 / bpm);
@@ -1 +1 @@
1
- {"version":3,"file":"tempo-map.js","sourceRoot":"","sources":["../../../src/domain/time/tempo-map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tempo-map.js","sourceRoot":"","sources":["../../../src/domain/time/tempo-map.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,9 @@ export type TupletGroup = {
25
25
  /** How many plain notes that time is worth — 2 for a triplet. */
26
26
  normalNotes: number;
27
27
  };
28
+ /** Triplets are the only tuplet the duration table can express, so far. */
29
+ export declare const TRIPLET_ACTUAL = 3;
30
+ export declare const TRIPLET_NORMAL = 2;
28
31
  /**
29
32
  * Every tuplet in `events`, in order.
30
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tuplets.d.ts","sourceRoot":"","sources":["../../../src/domain/time/tuplets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IACxB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,GAAG,EAAE,MAAM,GACV,WAAW,EAAE,CAqCf"}
1
+ {"version":3,"file":"tuplets.d.ts","sourceRoot":"","sources":["../../../src/domain/time/tuplets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG;IACxB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,GAAG,EAAE,MAAM,GACV,WAAW,EAAE,CAqCf"}
@@ -1,7 +1,7 @@
1
1
  import { durationNameForTicks } from "./ticks.js";
2
2
  /** Triplets are the only tuplet the duration table can express, so far. */
3
- const TRIPLET_ACTUAL = 3;
4
- const TRIPLET_NORMAL = 2;
3
+ export const TRIPLET_ACTUAL = 3;
4
+ export const TRIPLET_NORMAL = 2;
5
5
  /**
6
6
  * Every tuplet in `events`, in order.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"tuplets.js","sourceRoot":"","sources":["../../../src/domain/time/tuplets.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAclD,2EAA2E;AAC3E,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA+B,EAC/B,GAAW;IAEX,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,+DAA+D;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,QAAQ,GAAG,CAAC;gBACnB,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,cAAc;gBAC3B,WAAW,EAAE,cAAc;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;QACf,SAAS,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE/D,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnC,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS,GAAG,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,KAAK,EAAE,CAAC;IAER,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"tuplets.js","sourceRoot":"","sources":["../../../src/domain/time/tuplets.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAclD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA+B,EAC/B,GAAW;IAEX,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,+DAA+D;QAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,QAAQ,GAAG,CAAC;gBACnB,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,cAAc;gBAC3B,WAAW,EAAE,cAAc;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;QACf,SAAS,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE/D,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACnC,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,SAAS;gBAAE,OAAO;YACvB,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS,GAAG,CAAC,CAAC;YACd,OAAO;QACT,CAAC;QACD,SAAS,IAAI,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,KAAK,EAAE,CAAC;IAER,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -36,6 +36,7 @@ export * from "./domain/pitch/pitch.js";
36
36
  export * from "./domain/pitch/transpose.js";
37
37
  export * from "./domain/quantization/options.js";
38
38
  export * from "./domain/quantization/quantize.js";
39
+ export * from "./domain/score/defaults.js";
39
40
  export * from "./domain/score/factory.js";
40
41
  export * from "./domain/score/fragment.js";
41
42
  export * from "./domain/score/ids.js";
@@ -64,6 +65,7 @@ export * from "./domain/commands/edit-commands.js";
64
65
  export * from "./domain/commands/relocate-commands.js";
65
66
  export * from "./domain/commands/ripple-commands.js";
66
67
  export * from "./domain/instruments/gm.js";
68
+ export * from "./domain/instruments/midi-protocol.js";
67
69
  export * from "./domain/instruments/gm-kit.js";
68
70
  export * from "./domain/instruments/gm-range.js";
69
71
  export * from "./domain/instruments/gm-polyphony.js";
@@ -98,6 +100,8 @@ export * from "./domain/score/snapshot-tree.js";
98
100
  export * from "./domain/score/written-pitch.js";
99
101
  export * from "./domain/selection/range-select.js";
100
102
  export * from "./domain/selection/selection-editing.js";
103
+ export * from "./domain/selection/clipboard-prompts.js";
104
+ export * from "./domain/notation/display-lens.js";
101
105
  export * from "./domain/time/duration-modifiers.js";
102
106
  export * from "./domain/time/duration-selection.js";
103
107
  export * from "./domain/time/tap-to-note.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAQ5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AAKnC,cAAc,qBAAqB,CAAC;AAMpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAM9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAItD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAQ5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AAKnC,cAAc,qBAAqB,CAAC;AAMpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAM9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAItD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AACvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -55,6 +55,7 @@ export * from "./domain/pitch/pitch.js";
55
55
  export * from "./domain/pitch/transpose.js";
56
56
  export * from "./domain/quantization/options.js";
57
57
  export * from "./domain/quantization/quantize.js";
58
+ export * from "./domain/score/defaults.js";
58
59
  export * from "./domain/score/factory.js";
59
60
  export * from "./domain/score/fragment.js";
60
61
  export * from "./domain/score/ids.js";
@@ -86,6 +87,7 @@ export * from "./domain/commands/edit-commands.js";
86
87
  export * from "./domain/commands/relocate-commands.js";
87
88
  export * from "./domain/commands/ripple-commands.js";
88
89
  export * from "./domain/instruments/gm.js";
90
+ export * from "./domain/instruments/midi-protocol.js";
89
91
  export * from "./domain/instruments/gm-kit.js";
90
92
  export * from "./domain/instruments/gm-range.js";
91
93
  export * from "./domain/instruments/gm-polyphony.js";
@@ -122,6 +124,8 @@ export * from "./domain/score/snapshot-tree.js";
122
124
  export * from "./domain/score/written-pitch.js";
123
125
  export * from "./domain/selection/range-select.js";
124
126
  export * from "./domain/selection/selection-editing.js";
127
+ export * from "./domain/selection/clipboard-prompts.js";
128
+ export * from "./domain/notation/display-lens.js";
125
129
  export * from "./domain/time/duration-modifiers.js";
126
130
  export * from "./domain/time/duration-selection.js";
127
131
  export * from "./domain/time/tap-to-note.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}