@sudobility/music_types 0.11.30 → 0.11.31

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 (229) hide show
  1. package/dist/domain/commands/edit-commands.d.ts +3 -3
  2. package/dist/domain/commands/edit-commands.d.ts.map +1 -1
  3. package/dist/domain/commands/edit-commands.js +25 -25
  4. package/dist/domain/commands/edit-commands.js.map +1 -1
  5. package/dist/domain/commands/history.d.ts +32 -0
  6. package/dist/domain/commands/history.d.ts.map +1 -0
  7. package/dist/domain/commands/history.js +63 -0
  8. package/dist/domain/commands/history.js.map +1 -0
  9. package/dist/domain/commands/note-commands.d.ts +147 -3
  10. package/dist/domain/commands/note-commands.d.ts.map +1 -1
  11. package/dist/domain/commands/note-commands.js +438 -46
  12. package/dist/domain/commands/note-commands.js.map +1 -1
  13. package/dist/domain/commands/reflow.d.ts +1 -1
  14. package/dist/domain/commands/reflow.js +17 -17
  15. package/dist/domain/commands/reflow.js.map +1 -1
  16. package/dist/domain/commands/region-commands.d.ts +4 -4
  17. package/dist/domain/commands/region-commands.d.ts.map +1 -1
  18. package/dist/domain/commands/region-commands.js +7 -7
  19. package/dist/domain/commands/region-commands.js.map +1 -1
  20. package/dist/domain/commands/relocate-commands.d.ts +3 -3
  21. package/dist/domain/commands/relocate-commands.js +15 -15
  22. package/dist/domain/commands/relocate-commands.js.map +1 -1
  23. package/dist/domain/commands/ripple-commands.d.ts +2 -2
  24. package/dist/domain/commands/ripple-commands.js +13 -13
  25. package/dist/domain/commands/ripple-commands.js.map +1 -1
  26. package/dist/domain/commands/snapshot.d.ts +3 -3
  27. package/dist/domain/commands/snapshot.js +5 -5
  28. package/dist/domain/commands/snapshot.js.map +1 -1
  29. package/dist/domain/commands/structure-commands.d.ts +86 -5
  30. package/dist/domain/commands/structure-commands.d.ts.map +1 -1
  31. package/dist/domain/commands/structure-commands.js +272 -36
  32. package/dist/domain/commands/structure-commands.js.map +1 -1
  33. package/dist/domain/commands/track-commands.d.ts +2 -2
  34. package/dist/domain/commands/track-commands.js +7 -7
  35. package/dist/domain/commands/track-commands.js.map +1 -1
  36. package/dist/domain/commands/types.d.ts +2 -2
  37. package/dist/domain/generation/replacement-region.d.ts +32 -0
  38. package/dist/domain/generation/replacement-region.d.ts.map +1 -0
  39. package/dist/domain/generation/replacement-region.js +79 -0
  40. package/dist/domain/generation/replacement-region.js.map +1 -0
  41. package/dist/domain/instruments/gm-icon.d.ts +12 -0
  42. package/dist/domain/instruments/gm-icon.d.ts.map +1 -0
  43. package/dist/domain/instruments/gm-icon.js +327 -0
  44. package/dist/domain/instruments/gm-icon.js.map +1 -0
  45. package/dist/domain/instruments/gm-kit.js +9 -9
  46. package/dist/domain/instruments/gm-kit.js.map +1 -1
  47. package/dist/domain/instruments/gm-percussion.js +48 -48
  48. package/dist/domain/instruments/gm-percussion.js.map +1 -1
  49. package/dist/domain/instruments/gm-polyphony.js +6 -6
  50. package/dist/domain/instruments/gm-range.js +6 -6
  51. package/dist/domain/instruments/gm-transposition.js +1 -1
  52. package/dist/domain/instruments/gm.d.ts +1 -1
  53. package/dist/domain/instruments/gm.js +161 -161
  54. package/dist/domain/instruments/gm.js.map +1 -1
  55. package/dist/domain/instruments/icon-art.d.ts +75 -0
  56. package/dist/domain/instruments/icon-art.d.ts.map +1 -0
  57. package/dist/domain/instruments/icon-art.js +93 -0
  58. package/dist/domain/instruments/icon-art.js.map +1 -0
  59. package/dist/domain/instruments/instrument-fit.d.ts +31 -0
  60. package/dist/domain/instruments/instrument-fit.d.ts.map +1 -0
  61. package/dist/domain/instruments/instrument-fit.js +117 -0
  62. package/dist/domain/instruments/instrument-fit.js.map +1 -0
  63. package/dist/domain/instruments/instrument-options.d.ts +62 -0
  64. package/dist/domain/instruments/instrument-options.d.ts.map +1 -0
  65. package/dist/domain/instruments/instrument-options.js +69 -0
  66. package/dist/domain/instruments/instrument-options.js.map +1 -0
  67. package/dist/domain/instruments/track-instrument.d.ts +80 -0
  68. package/dist/domain/instruments/track-instrument.d.ts.map +1 -0
  69. package/dist/domain/instruments/track-instrument.js +102 -0
  70. package/dist/domain/instruments/track-instrument.js.map +1 -0
  71. package/dist/domain/notation/chord-symbol.d.ts +26 -0
  72. package/dist/domain/notation/chord-symbol.d.ts.map +1 -0
  73. package/dist/domain/notation/chord-symbol.js +32 -0
  74. package/dist/domain/notation/chord-symbol.js.map +1 -0
  75. package/dist/domain/notation/lyric-syllables.d.ts +15 -0
  76. package/dist/domain/notation/lyric-syllables.d.ts.map +1 -0
  77. package/dist/domain/notation/lyric-syllables.js +15 -0
  78. package/dist/domain/notation/lyric-syllables.js.map +1 -0
  79. package/dist/domain/notation/music-vocabulary.d.ts +59 -0
  80. package/dist/domain/notation/music-vocabulary.d.ts.map +1 -0
  81. package/dist/domain/notation/music-vocabulary.js +164 -0
  82. package/dist/domain/notation/music-vocabulary.js.map +1 -0
  83. package/dist/domain/pitch/pitch.d.ts +1 -1
  84. package/dist/domain/pitch/pitch.js +29 -29
  85. package/dist/domain/pitch/transpose.d.ts +1 -1
  86. package/dist/domain/pitch/transpose.js +2 -2
  87. package/dist/domain/quantization/quantize.d.ts +2 -2
  88. package/dist/domain/quantization/quantize.js +9 -9
  89. package/dist/domain/quantization/quantize.js.map +1 -1
  90. package/dist/domain/score/articulation.d.ts +56 -0
  91. package/dist/domain/score/articulation.d.ts.map +1 -0
  92. package/dist/domain/score/articulation.js +56 -0
  93. package/dist/domain/score/articulation.js.map +1 -0
  94. package/dist/domain/score/bar-numbers.d.ts +38 -0
  95. package/dist/domain/score/bar-numbers.d.ts.map +1 -0
  96. package/dist/domain/score/bar-numbers.js +49 -0
  97. package/dist/domain/score/bar-numbers.js.map +1 -0
  98. package/dist/domain/score/collapse-rests.d.ts +23 -0
  99. package/dist/domain/score/collapse-rests.d.ts.map +1 -0
  100. package/dist/domain/score/collapse-rests.js +78 -0
  101. package/dist/domain/score/collapse-rests.js.map +1 -0
  102. package/dist/domain/score/cue-notes.d.ts +24 -0
  103. package/dist/domain/score/cue-notes.d.ts.map +1 -0
  104. package/dist/domain/score/cue-notes.js +105 -0
  105. package/dist/domain/score/cue-notes.js.map +1 -0
  106. package/dist/domain/score/dynamics.d.ts +62 -0
  107. package/dist/domain/score/dynamics.d.ts.map +1 -0
  108. package/dist/domain/score/dynamics.js +142 -0
  109. package/dist/domain/score/dynamics.js.map +1 -0
  110. package/dist/domain/score/effective-clef.d.ts +42 -0
  111. package/dist/domain/score/effective-clef.d.ts.map +1 -0
  112. package/dist/domain/score/effective-clef.js +39 -0
  113. package/dist/domain/score/effective-clef.js.map +1 -0
  114. package/dist/domain/score/extract-part.d.ts +10 -0
  115. package/dist/domain/score/extract-part.d.ts.map +1 -0
  116. package/dist/domain/score/extract-part.js +44 -0
  117. package/dist/domain/score/extract-part.js.map +1 -0
  118. package/dist/domain/score/factory.d.ts +1 -1
  119. package/dist/domain/score/factory.js +12 -12
  120. package/dist/domain/score/factory.js.map +1 -1
  121. package/dist/domain/score/fermata-tempo.d.ts +40 -0
  122. package/dist/domain/score/fermata-tempo.d.ts.map +1 -0
  123. package/dist/domain/score/fermata-tempo.js +95 -0
  124. package/dist/domain/score/fermata-tempo.js.map +1 -0
  125. package/dist/domain/score/flatten.d.ts +32 -0
  126. package/dist/domain/score/flatten.d.ts.map +1 -0
  127. package/dist/domain/score/flatten.js +132 -0
  128. package/dist/domain/score/flatten.js.map +1 -0
  129. package/dist/domain/score/fragment.d.ts +3 -3
  130. package/dist/domain/score/fragment.js +8 -8
  131. package/dist/domain/score/fragment.js.map +1 -1
  132. package/dist/domain/score/ids.d.ts +1 -1
  133. package/dist/domain/score/ids.js +6 -6
  134. package/dist/domain/score/ottava.d.ts +41 -0
  135. package/dist/domain/score/ottava.d.ts.map +1 -0
  136. package/dist/domain/score/ottava.js +98 -0
  137. package/dist/domain/score/ottava.js.map +1 -0
  138. package/dist/domain/score/performance-timeline.d.ts +42 -0
  139. package/dist/domain/score/performance-timeline.d.ts.map +1 -0
  140. package/dist/domain/score/performance-timeline.js +78 -0
  141. package/dist/domain/score/performance-timeline.js.map +1 -0
  142. package/dist/domain/score/queries.d.ts +2 -2
  143. package/dist/domain/score/queries.js +7 -7
  144. package/dist/domain/score/queries.js.map +1 -1
  145. package/dist/domain/score/rehearsal-marks.d.ts +30 -0
  146. package/dist/domain/score/rehearsal-marks.d.ts.map +1 -0
  147. package/dist/domain/score/rehearsal-marks.js +126 -0
  148. package/dist/domain/score/rehearsal-marks.js.map +1 -0
  149. package/dist/domain/score/repeat-order.d.ts +21 -0
  150. package/dist/domain/score/repeat-order.d.ts.map +1 -0
  151. package/dist/domain/score/repeat-order.js +123 -0
  152. package/dist/domain/score/repeat-order.js.map +1 -0
  153. package/dist/domain/score/snapshot-tree.d.ts +23 -0
  154. package/dist/domain/score/snapshot-tree.d.ts.map +1 -0
  155. package/dist/domain/score/snapshot-tree.js +45 -0
  156. package/dist/domain/score/snapshot-tree.js.map +1 -0
  157. package/dist/domain/score/ties.d.ts +1 -1
  158. package/dist/domain/score/ties.js +7 -7
  159. package/dist/domain/score/ties.js.map +1 -1
  160. package/dist/domain/score/written-pitch.d.ts +33 -0
  161. package/dist/domain/score/written-pitch.d.ts.map +1 -0
  162. package/dist/domain/score/written-pitch.js +110 -0
  163. package/dist/domain/score/written-pitch.js.map +1 -0
  164. package/dist/domain/selection/range-select.d.ts +13 -0
  165. package/dist/domain/selection/range-select.d.ts.map +1 -0
  166. package/dist/domain/selection/range-select.js +40 -0
  167. package/dist/domain/selection/range-select.js.map +1 -0
  168. package/dist/domain/selection/selection-editing.d.ts +30 -0
  169. package/dist/domain/selection/selection-editing.d.ts.map +1 -0
  170. package/dist/domain/selection/selection-editing.js +31 -0
  171. package/dist/domain/selection/selection-editing.js.map +1 -0
  172. package/dist/domain/selection/selection.d.ts +2 -2
  173. package/dist/domain/selection/selection.js +7 -7
  174. package/dist/domain/selection/selection.js.map +1 -1
  175. package/dist/domain/selection/types.d.ts +2 -2
  176. package/dist/domain/time/duration-modifiers.d.ts +40 -0
  177. package/dist/domain/time/duration-modifiers.d.ts.map +1 -0
  178. package/dist/domain/time/duration-modifiers.js +50 -0
  179. package/dist/domain/time/duration-modifiers.js.map +1 -0
  180. package/dist/domain/time/duration-selection.d.ts +23 -0
  181. package/dist/domain/time/duration-selection.d.ts.map +1 -0
  182. package/dist/domain/time/duration-selection.js +50 -0
  183. package/dist/domain/time/duration-selection.js.map +1 -0
  184. package/dist/domain/time/durations.js +6 -6
  185. package/dist/domain/time/durations.js.map +1 -1
  186. package/dist/domain/time/fraction.d.ts +1 -1
  187. package/dist/domain/time/fraction.js +1 -1
  188. package/dist/domain/time/tap-to-note.d.ts +21 -0
  189. package/dist/domain/time/tap-to-note.d.ts.map +1 -0
  190. package/dist/domain/time/tap-to-note.js +43 -0
  191. package/dist/domain/time/tap-to-note.js.map +1 -0
  192. package/dist/domain/time/tempo-map.d.ts +1 -1
  193. package/dist/domain/time/ticks.d.ts +1 -1
  194. package/dist/domain/time/ticks.d.ts.map +1 -1
  195. package/dist/domain/time/ticks.js +14 -14
  196. package/dist/domain/time/ticks.js.map +1 -1
  197. package/dist/domain/time/tuplets.d.ts +42 -0
  198. package/dist/domain/time/tuplets.d.ts.map +1 -0
  199. package/dist/domain/time/tuplets.js +53 -0
  200. package/dist/domain/time/tuplets.js.map +1 -0
  201. package/dist/domain/validation/issues.d.ts +1 -1
  202. package/dist/domain/validation/issues.js +20 -20
  203. package/dist/domain/validation/validator.d.ts +2 -2
  204. package/dist/domain/validation/validator.d.ts.map +1 -1
  205. package/dist/domain/validation/validator.js +31 -31
  206. package/dist/domain/validation/validator.js.map +1 -1
  207. package/dist/domain/voicing/allocate.d.ts +2 -2
  208. package/dist/domain/voicing/allocate.js +6 -6
  209. package/dist/domain/voicing/allocate.js.map +1 -1
  210. package/dist/index.d.ts +90 -59
  211. package/dist/index.d.ts.map +1 -1
  212. package/dist/index.js +151 -83
  213. package/dist/index.js.map +1 -1
  214. package/dist/platform/audio.d.ts.map +1 -1
  215. package/dist/platform/file.d.ts.map +1 -1
  216. package/dist/platform/index.d.ts +7 -7
  217. package/dist/platform/index.js +7 -7
  218. package/dist/platform/midi-input.d.ts +2 -2
  219. package/dist/platform/midi.d.ts.map +1 -1
  220. package/dist/platform/mod.d.ts +2 -2
  221. package/dist/platform/playback.d.ts +7 -7
  222. package/dist/platform/xml.js +1 -1
  223. package/dist/services/regeneration/controller.d.ts +6 -6
  224. package/dist/services/regeneration/controller.js +12 -12
  225. package/dist/services/regeneration/controller.js.map +1 -1
  226. package/dist/test/fixtures.d.ts +1 -1
  227. package/dist/test/fixtures.js +103 -103
  228. package/dist/test/fixtures.js.map +1 -1
  229. package/package.json +1 -1
@@ -5,10 +5,10 @@
5
5
  * selection to full measures), and turns an accepted candidate back into a
6
6
  * single undoable `ScoreCommand`.
7
7
  */
8
- import { findTrack } from '../../domain/score/queries.js';
9
- import { selectionToRange } from '../../domain/selection/selection.js';
10
- import { extractFragment } from '../../domain/score/fragment.js';
11
- import { replaceRegionCommand } from '../../domain/commands/region-commands.js';
8
+ import { findTrack } from "../../domain/score/queries.js";
9
+ import { selectionToRange } from "../../domain/selection/selection.js";
10
+ import { extractFragment } from "../../domain/score/fragment.js";
11
+ import { replaceRegionCommand } from "../../domain/commands/region-commands.js";
12
12
  /**
13
13
  * One, always. Generation is a background job now: nobody is present to pick
14
14
  * between alternatives when it lands, so a result that needed choosing would
@@ -51,7 +51,7 @@ function findEventTicks(score, eventId) {
51
51
  for (const track of score.tracks) {
52
52
  for (const measure of track.measures) {
53
53
  for (const voice of measure.voices) {
54
- const event = voice.events.find(e => e.id === eventId);
54
+ const event = voice.events.find((e) => e.id === eventId);
55
55
  if (event)
56
56
  return {
57
57
  start: event.startTick,
@@ -64,7 +64,7 @@ function findEventTicks(score, eventId) {
64
64
  }
65
65
  function findMeasureTicks(score, measureId) {
66
66
  for (const track of score.tracks) {
67
- const measure = track.measures.find(m => m.id === measureId);
67
+ const measure = track.measures.find((m) => m.id === measureId);
68
68
  if (measure)
69
69
  return {
70
70
  start: measure.startTick,
@@ -75,14 +75,14 @@ function findMeasureTicks(score, measureId) {
75
75
  }
76
76
  /** Up to `maxMeasures` measures immediately preceding `range.startTick`, unioned across `range`'s tracks (all tracks if `range.trackIds` is empty). */
77
77
  function precedingContextRange(score, range, maxMeasures) {
78
- const trackIds = range.trackIds.length > 0 ? range.trackIds : score.tracks.map(t => t.id);
78
+ const trackIds = range.trackIds.length > 0 ? range.trackIds : score.tracks.map((t) => t.id);
79
79
  let earliestStart = range.startTick;
80
80
  for (const trackId of trackIds) {
81
81
  const track = findTrack(score, trackId);
82
82
  if (!track)
83
83
  continue;
84
84
  const priorMeasures = track.measures
85
- .filter(m => m.startTick < range.startTick)
85
+ .filter((m) => m.startTick < range.startTick)
86
86
  .slice(-maxMeasures);
87
87
  if (priorMeasures.length > 0) {
88
88
  earliestStart = Math.min(earliestStart, priorMeasures[0].startTick);
@@ -96,14 +96,14 @@ function precedingContextRange(score, range, maxMeasures) {
96
96
  }
97
97
  /** Up to `maxMeasures` measures immediately following `range.endTick`, unioned across `range`'s tracks (all tracks if `range.trackIds` is empty). */
98
98
  function followingContextRange(score, range, maxMeasures) {
99
- const trackIds = range.trackIds.length > 0 ? range.trackIds : score.tracks.map(t => t.id);
99
+ const trackIds = range.trackIds.length > 0 ? range.trackIds : score.tracks.map((t) => t.id);
100
100
  let latestEnd = range.endTick;
101
101
  for (const trackId of trackIds) {
102
102
  const track = findTrack(score, trackId);
103
103
  if (!track)
104
104
  continue;
105
105
  const nextMeasures = track.measures
106
- .filter(m => m.startTick >= range.endTick)
106
+ .filter((m) => m.startTick >= range.endTick)
107
107
  .slice(0, maxMeasures);
108
108
  if (nextMeasures.length > 0) {
109
109
  const last = nextMeasures[nextMeasures.length - 1];
@@ -128,7 +128,7 @@ function followingContextRange(score, range, maxMeasures) {
128
128
  export function prepareRegenerationRequest(score, selection, instruction, options = {}) {
129
129
  const alignedRange = selectionToRange(score, selection);
130
130
  if (!alignedRange) {
131
- throw new Error('prepareRegenerationRequest: selection has no resolvable tick range.');
131
+ throw new Error("prepareRegenerationRequest: selection has no resolvable tick range.");
132
132
  }
133
133
  const raw = rawTickExtent(score, selection);
134
134
  const expandedToFullMeasures = raw !== null &&
@@ -193,7 +193,7 @@ export function prepareRegenerationRequestForRange(score, range, instruction, op
193
193
  */
194
194
  export function applyCandidate(score, candidate) {
195
195
  const { range } = candidate.fragment;
196
- const missingTrackId = range.trackIds.find(id => findTrack(score, id) === null);
196
+ const missingTrackId = range.trackIds.find((id) => findTrack(score, id) === null);
197
197
  if (missingTrackId) {
198
198
  throw new Error(`applyCandidate: candidate references track "${missingTrackId}", which is not present in the score.`);
199
199
  }
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/services/regeneration/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/services/regeneration/controller.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  * every call with the same arguments produces a structurally identical
13
13
  * `Score`.
14
14
  */
15
- import type { Score } from '../index.js';
15
+ import type { Score } from "../index.js";
16
16
  /** An 8-measure C-major "Twinkle Twinkle Little Star" melody on a single piano track. */
17
17
  export declare function twinkleScore(): Score;
18
18
  /** A 4-measure two-track score: a treble melody and a supporting bass line. */
@@ -5,8 +5,8 @@
5
5
  * `testRenderTheme` — that one needs a `RenderTheme`, and nothing in this
6
6
  * package renders anything.
7
7
  */
8
- import { measureDurationTicks, ticksFor } from '../index.js';
9
- const FIXED_TIMESTAMP = '2024-01-01T00:00:00.000Z';
8
+ import { measureDurationTicks, ticksFor } from "../index.js";
9
+ const FIXED_TIMESTAMP = "2024-01-01T00:00:00.000Z";
10
10
  /** A per-call, per-prefix incrementing id generator (deterministic, cheap). */
11
11
  function makeIdFactory() {
12
12
  const counters = new Map();
@@ -23,12 +23,12 @@ function buildMelodyMeasures(measuresOfNotes, ppq, timeSignature, keySignature,
23
23
  const measureTicks = measureDurationTicks(timeSignature, ppq);
24
24
  return measuresOfNotes.map((notes, index) => {
25
25
  const startTick = index * measureTicks;
26
- const voiceId = ids.next('voice');
26
+ const voiceId = ids.next("voice");
27
27
  let cursor = startTick;
28
- const events = notes.map(spec => {
28
+ const events = notes.map((spec) => {
29
29
  const durationTicks = ticksFor(spec.duration, ppq);
30
30
  const event = {
31
- id: ids.next('note'),
31
+ id: ids.next("note"),
32
32
  pitch: spec.pitch,
33
33
  startTick: cursor,
34
34
  durationTicks,
@@ -40,13 +40,13 @@ function buildMelodyMeasures(measuresOfNotes, ppq, timeSignature, keySignature,
40
40
  return event;
41
41
  });
42
42
  return {
43
- id: ids.next('measure'),
43
+ id: ids.next("measure"),
44
44
  index,
45
45
  startTick,
46
46
  durationTicks: measureTicks,
47
47
  timeSignature,
48
48
  keySignature,
49
- voices: [{ id: voiceId, name: 'Voice 1', events }],
49
+ voices: [{ id: voiceId, name: "Voice 1", events }],
50
50
  };
51
51
  });
52
52
  }
@@ -55,9 +55,9 @@ function buildChordMeasures(chordsByMeasure, ppq, timeSignature, keySignature, t
55
55
  const measureTicks = measureDurationTicks(timeSignature, ppq);
56
56
  return chordsByMeasure.map((pitches, index) => {
57
57
  const startTick = index * measureTicks;
58
- const voiceId = ids.next('voice');
59
- const events = pitches.map(pitch => ({
60
- id: ids.next('note'),
58
+ const voiceId = ids.next("voice");
59
+ const events = pitches.map((pitch) => ({
60
+ id: ids.next("note"),
61
61
  pitch,
62
62
  startTick,
63
63
  durationTicks: measureTicks,
@@ -66,17 +66,17 @@ function buildChordMeasures(chordsByMeasure, ppq, timeSignature, keySignature, t
66
66
  trackId,
67
67
  }));
68
68
  return {
69
- id: ids.next('measure'),
69
+ id: ids.next("measure"),
70
70
  index,
71
71
  startTick,
72
72
  durationTicks: measureTicks,
73
73
  timeSignature,
74
74
  keySignature,
75
- voices: [{ id: voiceId, name: 'Voice 1', events }],
75
+ voices: [{ id: voiceId, name: "Voice 1", events }],
76
76
  };
77
77
  });
78
78
  }
79
- const C_MAJOR = { fifths: 0, mode: 'major' };
79
+ const C_MAJOR = { fifths: 0, mode: "major" };
80
80
  const FOUR_FOUR = { numerator: 4, denominator: 4 };
81
81
  function naturalPitch(step, octave) {
82
82
  return { step, accidental: 0, octave };
@@ -87,30 +87,30 @@ export function twinkleScore() {
87
87
  const ppq = 480;
88
88
  const q = (step, octave = 4) => ({
89
89
  pitch: naturalPitch(step, octave),
90
- duration: 'quarter',
90
+ duration: "quarter",
91
91
  });
92
92
  const h = (step, octave = 4) => ({
93
93
  pitch: naturalPitch(step, octave),
94
- duration: 'half',
94
+ duration: "half",
95
95
  });
96
96
  const measures = [
97
- [q('C'), q('C'), q('G'), q('G')],
98
- [q('A'), q('A'), h('G')],
99
- [q('F'), q('F'), q('E'), q('E')],
100
- [q('D'), q('D'), h('C')],
101
- [q('G'), q('G'), q('F'), q('F')],
102
- [q('E'), q('E'), h('D')],
103
- [q('G'), q('G'), q('F'), q('F')],
104
- [q('E'), q('E'), h('D')],
97
+ [q("C"), q("C"), q("G"), q("G")],
98
+ [q("A"), q("A"), h("G")],
99
+ [q("F"), q("F"), q("E"), q("E")],
100
+ [q("D"), q("D"), h("C")],
101
+ [q("G"), q("G"), q("F"), q("F")],
102
+ [q("E"), q("E"), h("D")],
103
+ [q("G"), q("G"), q("F"), q("F")],
104
+ [q("E"), q("E"), h("D")],
105
105
  ];
106
- const trackId = ids.next('track');
106
+ const trackId = ids.next("track");
107
107
  const track = {
108
108
  id: trackId,
109
- name: 'Piano',
110
- instrumentName: 'Piano',
109
+ name: "Piano",
110
+ instrumentName: "Piano",
111
111
  midiProgram: 0,
112
112
  midiChannel: 0,
113
- clef: 'treble',
113
+ clef: "treble",
114
114
  volume: 1,
115
115
  pan: 0,
116
116
  muted: false,
@@ -118,15 +118,15 @@ export function twinkleScore() {
118
118
  measures: buildMelodyMeasures(measures, ppq, FOUR_FOUR, C_MAJOR, trackId, ids),
119
119
  };
120
120
  return {
121
- id: ids.next('score'),
121
+ id: ids.next("score"),
122
122
  version: 1,
123
123
  ppq,
124
124
  metadata: {
125
- title: 'Twinkle Twinkle Little Star',
125
+ title: "Twinkle Twinkle Little Star",
126
126
  createdAt: FIXED_TIMESTAMP,
127
127
  updatedAt: FIXED_TIMESTAMP,
128
128
  },
129
- tempoMap: [{ id: ids.next('tempo'), tick: 0, bpm: 120 }],
129
+ tempoMap: [{ id: ids.next("tempo"), tick: 0, bpm: 120 }],
130
130
  tracks: [track],
131
131
  };
132
132
  }
@@ -136,33 +136,33 @@ export function twoTrackScore() {
136
136
  const ppq = 480;
137
137
  const q = (step, octave) => ({
138
138
  pitch: naturalPitch(step, octave),
139
- duration: 'quarter',
139
+ duration: "quarter",
140
140
  });
141
141
  const w = (step, octave) => ({
142
142
  pitch: naturalPitch(step, octave),
143
- duration: 'whole',
143
+ duration: "whole",
144
144
  });
145
145
  const trebleMeasures = [
146
- [q('C', 4), q('D', 4), q('E', 4), q('F', 4)],
147
- [q('G', 4), q('F', 4), q('E', 4), q('D', 4)],
148
- [q('C', 4), q('D', 4), q('E', 4), q('F', 4)],
149
- [q('G', 4), q('F', 4), q('E', 4), q('D', 4)],
146
+ [q("C", 4), q("D", 4), q("E", 4), q("F", 4)],
147
+ [q("G", 4), q("F", 4), q("E", 4), q("D", 4)],
148
+ [q("C", 4), q("D", 4), q("E", 4), q("F", 4)],
149
+ [q("G", 4), q("F", 4), q("E", 4), q("D", 4)],
150
150
  ];
151
151
  const bassMeasures = [
152
- [w('C', 2)],
153
- [w('G', 2)],
154
- [w('C', 2)],
155
- [w('G', 2)],
152
+ [w("C", 2)],
153
+ [w("G", 2)],
154
+ [w("C", 2)],
155
+ [w("G", 2)],
156
156
  ];
157
- const trebleId = ids.next('track');
158
- const bassId = ids.next('track');
157
+ const trebleId = ids.next("track");
158
+ const bassId = ids.next("track");
159
159
  const treble = {
160
160
  id: trebleId,
161
- name: 'Treble',
162
- instrumentName: 'Piano',
161
+ name: "Treble",
162
+ instrumentName: "Piano",
163
163
  midiProgram: 0,
164
164
  midiChannel: 0,
165
- clef: 'treble',
165
+ clef: "treble",
166
166
  volume: 1,
167
167
  pan: 0,
168
168
  muted: false,
@@ -171,11 +171,11 @@ export function twoTrackScore() {
171
171
  };
172
172
  const bass = {
173
173
  id: bassId,
174
- name: 'Bass',
175
- instrumentName: 'Acoustic Bass',
174
+ name: "Bass",
175
+ instrumentName: "Acoustic Bass",
176
176
  midiProgram: 32,
177
177
  midiChannel: 1,
178
- clef: 'bass',
178
+ clef: "bass",
179
179
  volume: 1,
180
180
  pan: 0,
181
181
  muted: false,
@@ -183,15 +183,15 @@ export function twoTrackScore() {
183
183
  measures: buildMelodyMeasures(bassMeasures, ppq, FOUR_FOUR, C_MAJOR, bassId, ids),
184
184
  };
185
185
  return {
186
- id: ids.next('score'),
186
+ id: ids.next("score"),
187
187
  version: 1,
188
188
  ppq,
189
189
  metadata: {
190
- title: 'Two Track Demo',
190
+ title: "Two Track Demo",
191
191
  createdAt: FIXED_TIMESTAMP,
192
192
  updatedAt: FIXED_TIMESTAMP,
193
193
  },
194
- tempoMap: [{ id: ids.next('tempo'), tick: 0, bpm: 120 }],
194
+ tempoMap: [{ id: ids.next("tempo"), tick: 0, bpm: 120 }],
195
195
  tracks: [treble, bass],
196
196
  };
197
197
  }
@@ -208,21 +208,21 @@ export function threeTrackScore() {
208
208
  const ppq = 480;
209
209
  const q = (step, octave) => ({
210
210
  pitch: naturalPitch(step, octave),
211
- duration: 'quarter',
211
+ duration: "quarter",
212
212
  });
213
213
  const measures = [
214
- [q('C', 4), q('D', 4), q('E', 4), q('F', 4)],
215
- [q('G', 4), q('F', 4), q('E', 4), q('D', 4)],
214
+ [q("C", 4), q("D", 4), q("E", 4), q("F", 4)],
215
+ [q("G", 4), q("F", 4), q("E", 4), q("D", 4)],
216
216
  ];
217
- const tracks = ['Alpha', 'Beta', 'Gamma'].map((name, index) => {
218
- const trackId = ids.next('track');
217
+ const tracks = ["Alpha", "Beta", "Gamma"].map((name, index) => {
218
+ const trackId = ids.next("track");
219
219
  return {
220
220
  id: trackId,
221
221
  name,
222
- instrumentName: 'Piano',
222
+ instrumentName: "Piano",
223
223
  midiProgram: 0,
224
224
  midiChannel: index,
225
- clef: 'treble',
225
+ clef: "treble",
226
226
  volume: 1,
227
227
  pan: 0,
228
228
  muted: false,
@@ -231,15 +231,15 @@ export function threeTrackScore() {
231
231
  };
232
232
  });
233
233
  return {
234
- id: ids.next('score'),
234
+ id: ids.next("score"),
235
235
  version: 1,
236
236
  ppq,
237
237
  metadata: {
238
- title: 'Three Track Demo',
238
+ title: "Three Track Demo",
239
239
  createdAt: FIXED_TIMESTAMP,
240
240
  updatedAt: FIXED_TIMESTAMP,
241
241
  },
242
- tempoMap: [{ id: ids.next('tempo'), tick: 0, bpm: 120 }],
242
+ tempoMap: [{ id: ids.next("tempo"), tick: 0, bpm: 120 }],
243
243
  tracks,
244
244
  };
245
245
  }
@@ -255,31 +255,31 @@ export function denseVsSparseScore() {
255
255
  const ppq = 480;
256
256
  const s = (step, octave) => ({
257
257
  pitch: naturalPitch(step, octave),
258
- duration: 'sixteenth',
258
+ duration: "sixteenth",
259
259
  });
260
260
  const w = (step, octave) => ({
261
261
  pitch: naturalPitch(step, octave),
262
- duration: 'whole',
262
+ duration: "whole",
263
263
  });
264
- const runUp = ['C', 'D', 'E', 'F', 'G', 'A', 'B']
265
- .flatMap(step => [s(step, 4), s(step, 4)])
266
- .concat([s('C', 5), s('C', 5)]);
264
+ const runUp = ["C", "D", "E", "F", "G", "A", "B"]
265
+ .flatMap((step) => [s(step, 4), s(step, 4)])
266
+ .concat([s("C", 5), s("C", 5)]);
267
267
  const denseMeasures = [runUp, runUp, runUp, runUp];
268
268
  const sparseMeasures = [
269
- [w('C', 2)],
270
- [w('G', 2)],
271
- [w('C', 2)],
272
- [w('G', 2)],
269
+ [w("C", 2)],
270
+ [w("G", 2)],
271
+ [w("C", 2)],
272
+ [w("G", 2)],
273
273
  ];
274
- const denseId = ids.next('track');
275
- const sparseId = ids.next('track');
274
+ const denseId = ids.next("track");
275
+ const sparseId = ids.next("track");
276
276
  const dense = {
277
277
  id: denseId,
278
- name: 'Dense',
279
- instrumentName: 'Piano',
278
+ name: "Dense",
279
+ instrumentName: "Piano",
280
280
  midiProgram: 0,
281
281
  midiChannel: 0,
282
- clef: 'treble',
282
+ clef: "treble",
283
283
  volume: 1,
284
284
  pan: 0,
285
285
  muted: false,
@@ -288,11 +288,11 @@ export function denseVsSparseScore() {
288
288
  };
289
289
  const sparse = {
290
290
  id: sparseId,
291
- name: 'Sparse',
292
- instrumentName: 'Acoustic Bass',
291
+ name: "Sparse",
292
+ instrumentName: "Acoustic Bass",
293
293
  midiProgram: 32,
294
294
  midiChannel: 1,
295
- clef: 'bass',
295
+ clef: "bass",
296
296
  volume: 1,
297
297
  pan: 0,
298
298
  muted: false,
@@ -300,15 +300,15 @@ export function denseVsSparseScore() {
300
300
  measures: buildMelodyMeasures(sparseMeasures, ppq, FOUR_FOUR, C_MAJOR, sparseId, ids),
301
301
  };
302
302
  return {
303
- id: ids.next('score'),
303
+ id: ids.next("score"),
304
304
  version: 1,
305
305
  ppq,
306
306
  metadata: {
307
- title: 'Dense vs Sparse',
307
+ title: "Dense vs Sparse",
308
308
  createdAt: FIXED_TIMESTAMP,
309
309
  updatedAt: FIXED_TIMESTAMP,
310
310
  },
311
- tempoMap: [{ id: ids.next('tempo'), tick: 0, bpm: 120 }],
311
+ tempoMap: [{ id: ids.next("tempo"), tick: 0, bpm: 120 }],
312
312
  tracks: [dense, sparse],
313
313
  };
314
314
  }
@@ -317,19 +317,19 @@ export function chordScore() {
317
317
  const ids = makeIdFactory();
318
318
  const ppq = 480;
319
319
  const chords = [
320
- [naturalPitch('C', 4), naturalPitch('E', 4), naturalPitch('G', 4)], // I
321
- [naturalPitch('F', 4), naturalPitch('A', 4), naturalPitch('C', 5)], // IV
322
- [naturalPitch('G', 4), naturalPitch('B', 4), naturalPitch('D', 5)], // V
323
- [naturalPitch('C', 4), naturalPitch('E', 4), naturalPitch('G', 4)], // I
320
+ [naturalPitch("C", 4), naturalPitch("E", 4), naturalPitch("G", 4)], // I
321
+ [naturalPitch("F", 4), naturalPitch("A", 4), naturalPitch("C", 5)], // IV
322
+ [naturalPitch("G", 4), naturalPitch("B", 4), naturalPitch("D", 5)], // V
323
+ [naturalPitch("C", 4), naturalPitch("E", 4), naturalPitch("G", 4)], // I
324
324
  ];
325
- const trackId = ids.next('track');
325
+ const trackId = ids.next("track");
326
326
  const track = {
327
327
  id: trackId,
328
- name: 'Piano',
329
- instrumentName: 'Piano',
328
+ name: "Piano",
329
+ instrumentName: "Piano",
330
330
  midiProgram: 0,
331
331
  midiChannel: 0,
332
- clef: 'treble',
332
+ clef: "treble",
333
333
  volume: 1,
334
334
  pan: 0,
335
335
  muted: false,
@@ -337,19 +337,19 @@ export function chordScore() {
337
337
  measures: buildChordMeasures(chords, ppq, FOUR_FOUR, C_MAJOR, trackId, ids),
338
338
  };
339
339
  return {
340
- id: ids.next('score'),
340
+ id: ids.next("score"),
341
341
  version: 1,
342
342
  ppq,
343
343
  metadata: {
344
- title: 'Chord Progression Demo',
344
+ title: "Chord Progression Demo",
345
345
  createdAt: FIXED_TIMESTAMP,
346
346
  updatedAt: FIXED_TIMESTAMP,
347
347
  },
348
- tempoMap: [{ id: ids.next('tempo'), tick: 0, bpm: 90 }],
348
+ tempoMap: [{ id: ids.next("tempo"), tick: 0, bpm: 90 }],
349
349
  tracks: [track],
350
350
  };
351
351
  }
352
- const STRESS_SCALE = ['C', 'D', 'E', 'F', 'G', 'A', 'B'];
352
+ const STRESS_SCALE = ["C", "D", "E", "F", "G", "A", "B"];
353
353
  /**
354
354
  * Generates a score with `trackCount` tracks of `measureCount` measures
355
355
  * each (4 quarter notes per measure, cycling through a C-major scale), for
@@ -359,19 +359,19 @@ export function stressScore(trackCount, measureCount) {
359
359
  const ids = makeIdFactory();
360
360
  const ppq = 480;
361
361
  const measureTicks = measureDurationTicks(FOUR_FOUR, ppq);
362
- const quarterTicks = ticksFor('quarter', ppq);
362
+ const quarterTicks = ticksFor("quarter", ppq);
363
363
  const tracks = [];
364
364
  for (let t = 0; t < trackCount; t += 1) {
365
- const trackId = ids.next('track');
365
+ const trackId = ids.next("track");
366
366
  const measures = [];
367
367
  for (let m = 0; m < measureCount; m += 1) {
368
368
  const startTick = m * measureTicks;
369
- const voiceId = ids.next('voice');
369
+ const voiceId = ids.next("voice");
370
370
  const events = [];
371
371
  for (let beat = 0; beat < 4; beat += 1) {
372
372
  const step = STRESS_SCALE[(t + m + beat) % STRESS_SCALE.length];
373
373
  events.push({
374
- id: ids.next('note'),
374
+ id: ids.next("note"),
375
375
  pitch: naturalPitch(step, 4),
376
376
  startTick: startTick + beat * quarterTicks,
377
377
  durationTicks: quarterTicks,
@@ -381,22 +381,22 @@ export function stressScore(trackCount, measureCount) {
381
381
  });
382
382
  }
383
383
  measures.push({
384
- id: ids.next('measure'),
384
+ id: ids.next("measure"),
385
385
  index: m,
386
386
  startTick,
387
387
  durationTicks: measureTicks,
388
388
  timeSignature: FOUR_FOUR,
389
389
  keySignature: C_MAJOR,
390
- voices: [{ id: voiceId, name: 'Voice 1', events }],
390
+ voices: [{ id: voiceId, name: "Voice 1", events }],
391
391
  });
392
392
  }
393
393
  tracks.push({
394
394
  id: trackId,
395
395
  name: `Track ${t + 1}`,
396
- instrumentName: 'Piano',
396
+ instrumentName: "Piano",
397
397
  midiProgram: 0,
398
398
  midiChannel: t % 16,
399
- clef: 'treble',
399
+ clef: "treble",
400
400
  volume: 1,
401
401
  pan: 0,
402
402
  muted: false,
@@ -405,7 +405,7 @@ export function stressScore(trackCount, measureCount) {
405
405
  });
406
406
  }
407
407
  return {
408
- id: ids.next('score'),
408
+ id: ids.next("score"),
409
409
  version: 1,
410
410
  ppq,
411
411
  metadata: {
@@ -413,7 +413,7 @@ export function stressScore(trackCount, measureCount) {
413
413
  createdAt: FIXED_TIMESTAMP,
414
414
  updatedAt: FIXED_TIMESTAMP,
415
415
  },
416
- tempoMap: [{ id: ids.next('tempo'), tick: 0, bpm: 120 }],
416
+ tempoMap: [{ id: ids.next("tempo"), tick: 0, bpm: 120 }],
417
417
  tracks,
418
418
  };
419
419
  }