@sudobility/music_types 0.11.30 → 0.11.32
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/edit-commands.d.ts +3 -3
- package/dist/domain/commands/edit-commands.d.ts.map +1 -1
- package/dist/domain/commands/edit-commands.js +25 -25
- package/dist/domain/commands/edit-commands.js.map +1 -1
- package/dist/domain/commands/history.d.ts +32 -0
- package/dist/domain/commands/history.d.ts.map +1 -0
- package/dist/domain/commands/history.js +63 -0
- package/dist/domain/commands/history.js.map +1 -0
- package/dist/domain/commands/note-commands.d.ts +9 -12
- package/dist/domain/commands/note-commands.d.ts.map +1 -1
- package/dist/domain/commands/note-commands.js +42 -72
- 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/commands/reflow.d.ts +1 -1
- package/dist/domain/commands/reflow.js +17 -17
- package/dist/domain/commands/reflow.js.map +1 -1
- package/dist/domain/commands/region-commands.d.ts +4 -4
- package/dist/domain/commands/region-commands.d.ts.map +1 -1
- package/dist/domain/commands/region-commands.js +7 -7
- package/dist/domain/commands/region-commands.js.map +1 -1
- package/dist/domain/commands/relocate-commands.d.ts +3 -3
- package/dist/domain/commands/relocate-commands.js +15 -15
- package/dist/domain/commands/relocate-commands.js.map +1 -1
- package/dist/domain/commands/ripple-commands.d.ts +2 -2
- package/dist/domain/commands/ripple-commands.js +13 -13
- package/dist/domain/commands/ripple-commands.js.map +1 -1
- package/dist/domain/commands/snapshot.d.ts +3 -3
- package/dist/domain/commands/snapshot.js +5 -5
- package/dist/domain/commands/snapshot.js.map +1 -1
- package/dist/domain/commands/structure-commands.d.ts +86 -5
- package/dist/domain/commands/structure-commands.d.ts.map +1 -1
- package/dist/domain/commands/structure-commands.js +272 -36
- package/dist/domain/commands/structure-commands.js.map +1 -1
- package/dist/domain/commands/track-commands.d.ts +2 -2
- package/dist/domain/commands/track-commands.js +7 -7
- package/dist/domain/commands/track-commands.js.map +1 -1
- package/dist/domain/commands/types.d.ts +2 -2
- package/dist/domain/generation/replacement-region.d.ts +32 -0
- package/dist/domain/generation/replacement-region.d.ts.map +1 -0
- package/dist/domain/generation/replacement-region.js +79 -0
- package/dist/domain/generation/replacement-region.js.map +1 -0
- package/dist/domain/instruments/gm-icon.d.ts +12 -0
- package/dist/domain/instruments/gm-icon.d.ts.map +1 -0
- package/dist/domain/instruments/gm-icon.js +327 -0
- package/dist/domain/instruments/gm-icon.js.map +1 -0
- package/dist/domain/instruments/gm-kit.js +9 -9
- package/dist/domain/instruments/gm-kit.js.map +1 -1
- package/dist/domain/instruments/gm-percussion.js +48 -48
- package/dist/domain/instruments/gm-percussion.js.map +1 -1
- package/dist/domain/instruments/gm-polyphony.js +6 -6
- package/dist/domain/instruments/gm-range.js +6 -6
- package/dist/domain/instruments/gm-transposition.js +1 -1
- package/dist/domain/instruments/gm.d.ts +1 -1
- package/dist/domain/instruments/gm.js +161 -161
- package/dist/domain/instruments/gm.js.map +1 -1
- package/dist/domain/instruments/icon-art.d.ts +75 -0
- package/dist/domain/instruments/icon-art.d.ts.map +1 -0
- package/dist/domain/instruments/icon-art.js +93 -0
- package/dist/domain/instruments/icon-art.js.map +1 -0
- package/dist/domain/instruments/instrument-fit.d.ts +31 -0
- package/dist/domain/instruments/instrument-fit.d.ts.map +1 -0
- package/dist/domain/instruments/instrument-fit.js +117 -0
- package/dist/domain/instruments/instrument-fit.js.map +1 -0
- package/dist/domain/instruments/instrument-options.d.ts +62 -0
- package/dist/domain/instruments/instrument-options.d.ts.map +1 -0
- package/dist/domain/instruments/instrument-options.js +69 -0
- package/dist/domain/instruments/instrument-options.js.map +1 -0
- package/dist/domain/instruments/track-instrument.d.ts +80 -0
- package/dist/domain/instruments/track-instrument.d.ts.map +1 -0
- package/dist/domain/instruments/track-instrument.js +102 -0
- package/dist/domain/instruments/track-instrument.js.map +1 -0
- package/dist/domain/notation/chord-symbol.d.ts +26 -0
- package/dist/domain/notation/chord-symbol.d.ts.map +1 -0
- package/dist/domain/notation/chord-symbol.js +32 -0
- package/dist/domain/notation/chord-symbol.js.map +1 -0
- package/dist/domain/notation/lyric-syllables.d.ts +15 -0
- package/dist/domain/notation/lyric-syllables.d.ts.map +1 -0
- package/dist/domain/notation/lyric-syllables.js +15 -0
- package/dist/domain/notation/lyric-syllables.js.map +1 -0
- package/dist/domain/notation/music-vocabulary.d.ts +59 -0
- package/dist/domain/notation/music-vocabulary.d.ts.map +1 -0
- package/dist/domain/notation/music-vocabulary.js +164 -0
- package/dist/domain/notation/music-vocabulary.js.map +1 -0
- package/dist/domain/pitch/pitch.d.ts +1 -1
- package/dist/domain/pitch/pitch.js +29 -29
- package/dist/domain/pitch/transpose.d.ts +1 -1
- package/dist/domain/pitch/transpose.js +2 -2
- package/dist/domain/quantization/quantize.d.ts +2 -2
- package/dist/domain/quantization/quantize.js +9 -9
- package/dist/domain/quantization/quantize.js.map +1 -1
- package/dist/domain/score/articulation.d.ts +56 -0
- package/dist/domain/score/articulation.d.ts.map +1 -0
- package/dist/domain/score/articulation.js +56 -0
- package/dist/domain/score/articulation.js.map +1 -0
- package/dist/domain/score/bar-numbers.d.ts +38 -0
- package/dist/domain/score/bar-numbers.d.ts.map +1 -0
- package/dist/domain/score/bar-numbers.js +49 -0
- package/dist/domain/score/bar-numbers.js.map +1 -0
- package/dist/domain/score/collapse-rests.d.ts +23 -0
- package/dist/domain/score/collapse-rests.d.ts.map +1 -0
- package/dist/domain/score/collapse-rests.js +78 -0
- package/dist/domain/score/collapse-rests.js.map +1 -0
- package/dist/domain/score/cue-notes.d.ts +24 -0
- package/dist/domain/score/cue-notes.d.ts.map +1 -0
- package/dist/domain/score/cue-notes.js +105 -0
- package/dist/domain/score/cue-notes.js.map +1 -0
- package/dist/domain/score/dynamics.d.ts +62 -0
- package/dist/domain/score/dynamics.d.ts.map +1 -0
- package/dist/domain/score/dynamics.js +142 -0
- package/dist/domain/score/dynamics.js.map +1 -0
- package/dist/domain/score/effective-clef.d.ts +42 -0
- package/dist/domain/score/effective-clef.d.ts.map +1 -0
- package/dist/domain/score/effective-clef.js +39 -0
- package/dist/domain/score/effective-clef.js.map +1 -0
- package/dist/domain/score/extract-part.d.ts +10 -0
- package/dist/domain/score/extract-part.d.ts.map +1 -0
- package/dist/domain/score/extract-part.js +44 -0
- package/dist/domain/score/extract-part.js.map +1 -0
- package/dist/domain/score/factory.d.ts +1 -1
- package/dist/domain/score/factory.js +12 -12
- package/dist/domain/score/factory.js.map +1 -1
- package/dist/domain/score/fermata-tempo.d.ts +40 -0
- package/dist/domain/score/fermata-tempo.d.ts.map +1 -0
- package/dist/domain/score/fermata-tempo.js +95 -0
- package/dist/domain/score/fermata-tempo.js.map +1 -0
- package/dist/domain/score/flatten.d.ts +32 -0
- package/dist/domain/score/flatten.d.ts.map +1 -0
- package/dist/domain/score/flatten.js +132 -0
- package/dist/domain/score/flatten.js.map +1 -0
- package/dist/domain/score/fragment.d.ts +4 -8
- package/dist/domain/score/fragment.d.ts.map +1 -1
- package/dist/domain/score/fragment.js +8 -8
- package/dist/domain/score/fragment.js.map +1 -1
- package/dist/domain/score/ids.d.ts +1 -1
- package/dist/domain/score/ids.js +6 -6
- package/dist/domain/score/ottava.d.ts +41 -0
- package/dist/domain/score/ottava.d.ts.map +1 -0
- package/dist/domain/score/ottava.js +98 -0
- package/dist/domain/score/ottava.js.map +1 -0
- package/dist/domain/score/performance-timeline.d.ts +42 -0
- package/dist/domain/score/performance-timeline.d.ts.map +1 -0
- package/dist/domain/score/performance-timeline.js +78 -0
- package/dist/domain/score/performance-timeline.js.map +1 -0
- package/dist/domain/score/queries.d.ts +2 -2
- package/dist/domain/score/queries.js +7 -7
- package/dist/domain/score/queries.js.map +1 -1
- package/dist/domain/score/rehearsal-marks.d.ts +30 -0
- package/dist/domain/score/rehearsal-marks.d.ts.map +1 -0
- package/dist/domain/score/rehearsal-marks.js +126 -0
- package/dist/domain/score/rehearsal-marks.js.map +1 -0
- package/dist/domain/score/repeat-order.d.ts +21 -0
- package/dist/domain/score/repeat-order.d.ts.map +1 -0
- package/dist/domain/score/repeat-order.js +123 -0
- package/dist/domain/score/repeat-order.js.map +1 -0
- package/dist/domain/score/snapshot-tree.d.ts +23 -0
- package/dist/domain/score/snapshot-tree.d.ts.map +1 -0
- package/dist/domain/score/snapshot-tree.js +45 -0
- package/dist/domain/score/snapshot-tree.js.map +1 -0
- package/dist/domain/score/ties.d.ts +1 -1
- package/dist/domain/score/ties.js +7 -7
- package/dist/domain/score/ties.js.map +1 -1
- package/dist/domain/score/written-pitch.d.ts +33 -0
- package/dist/domain/score/written-pitch.d.ts.map +1 -0
- package/dist/domain/score/written-pitch.js +110 -0
- package/dist/domain/score/written-pitch.js.map +1 -0
- package/dist/domain/selection/range-select.d.ts +13 -0
- package/dist/domain/selection/range-select.d.ts.map +1 -0
- package/dist/domain/selection/range-select.js +40 -0
- package/dist/domain/selection/range-select.js.map +1 -0
- package/dist/domain/selection/selection-editing.d.ts +30 -0
- package/dist/domain/selection/selection-editing.d.ts.map +1 -0
- package/dist/domain/selection/selection-editing.js +31 -0
- package/dist/domain/selection/selection-editing.js.map +1 -0
- package/dist/domain/selection/selection.d.ts +2 -2
- package/dist/domain/selection/selection.js +7 -7
- package/dist/domain/selection/selection.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/domain/time/duration-modifiers.d.ts +40 -0
- package/dist/domain/time/duration-modifiers.d.ts.map +1 -0
- package/dist/domain/time/duration-modifiers.js +50 -0
- package/dist/domain/time/duration-modifiers.js.map +1 -0
- package/dist/domain/time/duration-selection.d.ts +23 -0
- package/dist/domain/time/duration-selection.d.ts.map +1 -0
- package/dist/domain/time/duration-selection.js +50 -0
- package/dist/domain/time/duration-selection.js.map +1 -0
- package/dist/domain/time/durations.js +6 -6
- package/dist/domain/time/durations.js.map +1 -1
- package/dist/domain/time/fraction.d.ts +1 -1
- package/dist/domain/time/fraction.js +1 -1
- package/dist/domain/time/tap-to-note.d.ts +21 -0
- package/dist/domain/time/tap-to-note.d.ts.map +1 -0
- package/dist/domain/time/tap-to-note.js +43 -0
- package/dist/domain/time/tap-to-note.js.map +1 -0
- package/dist/domain/time/tempo-map.d.ts +1 -1
- package/dist/domain/time/ticks.d.ts +1 -1
- package/dist/domain/time/ticks.d.ts.map +1 -1
- package/dist/domain/time/ticks.js +14 -14
- package/dist/domain/time/ticks.js.map +1 -1
- package/dist/domain/time/tuplets.d.ts +42 -0
- package/dist/domain/time/tuplets.d.ts.map +1 -0
- package/dist/domain/time/tuplets.js +53 -0
- package/dist/domain/time/tuplets.js.map +1 -0
- package/dist/domain/validation/issues.d.ts +1 -1
- package/dist/domain/validation/issues.js +20 -20
- package/dist/domain/validation/validator.d.ts +2 -2
- package/dist/domain/validation/validator.d.ts.map +1 -1
- package/dist/domain/validation/validator.js +31 -31
- package/dist/domain/validation/validator.js.map +1 -1
- package/dist/domain/voicing/allocate.d.ts +2 -2
- package/dist/domain/voicing/allocate.js +6 -6
- package/dist/domain/voicing/allocate.js.map +1 -1
- package/dist/index.d.ts +72 -5535
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -462
- 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/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/platform/audio.d.ts.map +1 -1
- package/dist/platform/file.d.ts.map +1 -1
- package/dist/platform/index.d.ts +7 -7
- package/dist/platform/index.js +7 -7
- package/dist/platform/midi-input.d.ts +2 -2
- package/dist/platform/midi.d.ts.map +1 -1
- package/dist/platform/mod.d.ts +2 -2
- package/dist/platform/playback.d.ts +7 -7
- package/dist/platform/xml.js +1 -1
- package/dist/services/regeneration/controller.d.ts +6 -6
- package/dist/services/regeneration/controller.js +12 -12
- package/dist/services/regeneration/controller.js.map +1 -1
- package/dist/test/fixtures.d.ts +1 -1
- package/dist/test/fixtures.js +103 -103
- package/dist/test/fixtures.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,55 +19,55 @@
|
|
|
19
19
|
/** The range General MIDI assigns drums to. Every number in it sounds something. */
|
|
20
20
|
export const GM_PERCUSSION_RANGE = { min: 35, max: 81 };
|
|
21
21
|
const TABLE = [
|
|
22
|
-
{ midi: 35, name:
|
|
23
|
-
{ midi: 36, name:
|
|
24
|
-
{ midi: 37, name:
|
|
25
|
-
{ midi: 38, name:
|
|
26
|
-
{ midi: 39, name:
|
|
27
|
-
{ midi: 40, name:
|
|
28
|
-
{ midi: 41, name:
|
|
29
|
-
{ midi: 42, name:
|
|
30
|
-
{ midi: 43, name:
|
|
31
|
-
{ midi: 44, name:
|
|
32
|
-
{ midi: 45, name:
|
|
33
|
-
{ midi: 46, name:
|
|
34
|
-
{ midi: 47, name:
|
|
35
|
-
{ midi: 48, name:
|
|
36
|
-
{ midi: 49, name:
|
|
37
|
-
{ midi: 50, name:
|
|
38
|
-
{ midi: 51, name:
|
|
39
|
-
{ midi: 52, name:
|
|
40
|
-
{ midi: 53, name:
|
|
41
|
-
{ midi: 54, name:
|
|
42
|
-
{ midi: 55, name:
|
|
43
|
-
{ midi: 56, name:
|
|
44
|
-
{ midi: 57, name:
|
|
45
|
-
{ midi: 58, name:
|
|
46
|
-
{ midi: 59, name:
|
|
47
|
-
{ midi: 60, name:
|
|
48
|
-
{ midi: 61, name:
|
|
49
|
-
{ midi: 62, name:
|
|
50
|
-
{ midi: 63, name:
|
|
51
|
-
{ midi: 64, name:
|
|
52
|
-
{ midi: 65, name:
|
|
53
|
-
{ midi: 66, name:
|
|
54
|
-
{ midi: 67, name:
|
|
55
|
-
{ midi: 68, name:
|
|
56
|
-
{ midi: 69, name:
|
|
57
|
-
{ midi: 70, name:
|
|
58
|
-
{ midi: 71, name:
|
|
59
|
-
{ midi: 72, name:
|
|
60
|
-
{ midi: 73, name:
|
|
61
|
-
{ midi: 74, name:
|
|
62
|
-
{ midi: 75, name:
|
|
63
|
-
{ midi: 76, name:
|
|
64
|
-
{ midi: 77, name:
|
|
65
|
-
{ midi: 78, name:
|
|
66
|
-
{ midi: 79, name:
|
|
67
|
-
{ midi: 80, name:
|
|
68
|
-
{ midi: 81, name:
|
|
22
|
+
{ midi: 35, name: "Acoustic Bass Drum", short: "Kick" },
|
|
23
|
+
{ midi: 36, name: "Bass Drum 1", short: "Kick 1" },
|
|
24
|
+
{ midi: 37, name: "Side Stick", short: "Stick" },
|
|
25
|
+
{ midi: 38, name: "Acoustic Snare", short: "Snare" },
|
|
26
|
+
{ midi: 39, name: "Hand Clap", short: "Clap" },
|
|
27
|
+
{ midi: 40, name: "Electric Snare", short: "El Snr" },
|
|
28
|
+
{ midi: 41, name: "Low Floor Tom", short: "Flr Lo" },
|
|
29
|
+
{ midi: 42, name: "Closed Hi-Hat", short: "Cl HH" },
|
|
30
|
+
{ midi: 43, name: "High Floor Tom", short: "Flr Hi" },
|
|
31
|
+
{ midi: 44, name: "Pedal Hi-Hat", short: "Pd HH" },
|
|
32
|
+
{ midi: 45, name: "Low Tom", short: "Tom Lo" },
|
|
33
|
+
{ midi: 46, name: "Open Hi-Hat", short: "Op HH" },
|
|
34
|
+
{ midi: 47, name: "Low-Mid Tom", short: "Tom Md" },
|
|
35
|
+
{ midi: 48, name: "Hi-Mid Tom", short: "Tom MHi" },
|
|
36
|
+
{ midi: 49, name: "Crash Cymbal 1", short: "Crash" },
|
|
37
|
+
{ midi: 50, name: "High Tom", short: "Tom Hi" },
|
|
38
|
+
{ midi: 51, name: "Ride Cymbal 1", short: "Ride" },
|
|
39
|
+
{ midi: 52, name: "Chinese Cymbal", short: "China" },
|
|
40
|
+
{ midi: 53, name: "Ride Bell", short: "Bell" },
|
|
41
|
+
{ midi: 54, name: "Tambourine", short: "Tamb" },
|
|
42
|
+
{ midi: 55, name: "Splash Cymbal", short: "Splash" },
|
|
43
|
+
{ midi: 56, name: "Cowbell", short: "Cowbell" },
|
|
44
|
+
{ midi: 57, name: "Crash Cymbal 2", short: "Crash 2" },
|
|
45
|
+
{ midi: 58, name: "Vibraslap", short: "Vibslap" },
|
|
46
|
+
{ midi: 59, name: "Ride Cymbal 2", short: "Ride 2" },
|
|
47
|
+
{ midi: 60, name: "Hi Bongo", short: "Bong Hi" },
|
|
48
|
+
{ midi: 61, name: "Low Bongo", short: "Bong Lo" },
|
|
49
|
+
{ midi: 62, name: "Mute Hi Conga", short: "Cong Mt" },
|
|
50
|
+
{ midi: 63, name: "Open Hi Conga", short: "Cong Hi" },
|
|
51
|
+
{ midi: 64, name: "Low Conga", short: "Cong Lo" },
|
|
52
|
+
{ midi: 65, name: "High Timbale", short: "Timb Hi" },
|
|
53
|
+
{ midi: 66, name: "Low Timbale", short: "Timb Lo" },
|
|
54
|
+
{ midi: 67, name: "High Agogo", short: "Agog Hi" },
|
|
55
|
+
{ midi: 68, name: "Low Agogo", short: "Agog Lo" },
|
|
56
|
+
{ midi: 69, name: "Cabasa", short: "Cabasa" },
|
|
57
|
+
{ midi: 70, name: "Maracas", short: "Maracas" },
|
|
58
|
+
{ midi: 71, name: "Short Whistle", short: "Whis" },
|
|
59
|
+
{ midi: 72, name: "Long Whistle", short: "Whis Lg" },
|
|
60
|
+
{ midi: 73, name: "Short Guiro", short: "Guiro" },
|
|
61
|
+
{ midi: 74, name: "Long Guiro", short: "Guiro L" },
|
|
62
|
+
{ midi: 75, name: "Claves", short: "Claves" },
|
|
63
|
+
{ midi: 76, name: "Hi Wood Block", short: "Wood Hi" },
|
|
64
|
+
{ midi: 77, name: "Low Wood Block", short: "Wood Lo" },
|
|
65
|
+
{ midi: 78, name: "Mute Cuica", short: "Cuic Mt" },
|
|
66
|
+
{ midi: 79, name: "Open Cuica", short: "Cuica" },
|
|
67
|
+
{ midi: 80, name: "Mute Triangle", short: "Tri Mt" },
|
|
68
|
+
{ midi: 81, name: "Open Triangle", short: "Tri" },
|
|
69
69
|
];
|
|
70
|
-
const BY_MIDI = new Map(TABLE.map(drum => [drum.midi, drum]));
|
|
70
|
+
const BY_MIDI = new Map(TABLE.map((drum) => [drum.midi, drum]));
|
|
71
71
|
export const GM_PERCUSSION = TABLE;
|
|
72
72
|
/** The drum `midi` sounds, or `null` outside the General MIDI percussion range. */
|
|
73
73
|
export function gmPercussion(midi) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gm-percussion.js","sourceRoot":"","sources":["../../../src/domain/instruments/gm-percussion.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gm-percussion.js","sourceRoot":"","sources":["../../../src/domain/instruments/gm-percussion.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* deliberately does NOT describe what a synthesizer patch can do — polyphony
|
|
12
12
|
* there is a setting, not a limit — so every synth family is unlimited.
|
|
13
13
|
*/
|
|
14
|
-
import { gmFamilyOf, gmInstrument } from
|
|
14
|
+
import { gmFamilyOf, gmInstrument } from "./gm.js";
|
|
15
15
|
/** No physical limit: keyboards, plucked strings, sections, synths, drums. */
|
|
16
16
|
export const UNLIMITED_POLYPHONY = Number.POSITIVE_INFINITY;
|
|
17
17
|
/**
|
|
@@ -24,7 +24,7 @@ export const UNLIMITED_POLYPHONY = Number.POSITIVE_INFINITY;
|
|
|
24
24
|
*/
|
|
25
25
|
const FAMILY_POLYPHONY = {
|
|
26
26
|
piano: UNLIMITED_POLYPHONY,
|
|
27
|
-
|
|
27
|
+
"chromatic-percussion": UNLIMITED_POLYPHONY,
|
|
28
28
|
organ: UNLIMITED_POLYPHONY,
|
|
29
29
|
guitar: 6,
|
|
30
30
|
bass: 4,
|
|
@@ -33,12 +33,12 @@ const FAMILY_POLYPHONY = {
|
|
|
33
33
|
brass: 1,
|
|
34
34
|
reed: 1,
|
|
35
35
|
pipe: 1,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
"synth-lead": UNLIMITED_POLYPHONY,
|
|
37
|
+
"synth-pad": UNLIMITED_POLYPHONY,
|
|
38
|
+
"synth-effects": UNLIMITED_POLYPHONY,
|
|
39
39
|
ethnic: UNLIMITED_POLYPHONY,
|
|
40
40
|
percussive: UNLIMITED_POLYPHONY,
|
|
41
|
-
|
|
41
|
+
"sound-effects": UNLIMITED_POLYPHONY,
|
|
42
42
|
};
|
|
43
43
|
/** Programs whose own limit differs from their family's. */
|
|
44
44
|
const PROGRAM_POLYPHONY = {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Nothing here restricts what can be written; it only decides which keys are
|
|
15
15
|
* worth showing.
|
|
16
16
|
*/
|
|
17
|
-
import { gmFamilyOf, gmInstrument } from
|
|
17
|
+
import { gmFamilyOf, gmInstrument } from "./gm.js";
|
|
18
18
|
/** A0 to C8 — the 88-key piano, and the widest range anything here returns. */
|
|
19
19
|
export const FULL_KEYBOARD = { min: 21, max: 108 };
|
|
20
20
|
/**
|
|
@@ -24,7 +24,7 @@ export const FULL_KEYBOARD = { min: 21, max: 108 };
|
|
|
24
24
|
*/
|
|
25
25
|
const FAMILY_RANGE = {
|
|
26
26
|
piano: { min: 21, max: 108 },
|
|
27
|
-
|
|
27
|
+
"chromatic-percussion": { min: 48, max: 96 },
|
|
28
28
|
organ: { min: 36, max: 96 },
|
|
29
29
|
guitar: { min: 40, max: 88 },
|
|
30
30
|
bass: { min: 28, max: 67 },
|
|
@@ -33,12 +33,12 @@ const FAMILY_RANGE = {
|
|
|
33
33
|
brass: { min: 34, max: 82 },
|
|
34
34
|
reed: { min: 44, max: 88 },
|
|
35
35
|
pipe: { min: 60, max: 98 },
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
"synth-lead": { min: 24, max: 96 },
|
|
37
|
+
"synth-pad": { min: 24, max: 96 },
|
|
38
|
+
"synth-effects": { min: 24, max: 96 },
|
|
39
39
|
ethnic: { min: 40, max: 84 },
|
|
40
40
|
percussive: { min: 48, max: 84 },
|
|
41
|
-
|
|
41
|
+
"sound-effects": { min: 21, max: 108 },
|
|
42
42
|
};
|
|
43
43
|
/** Instruments whose own compass differs enough from their family to matter. */
|
|
44
44
|
const PROGRAM_RANGE = {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* for the programs that actually transpose. Most do not, so the table below is
|
|
11
11
|
* only the exceptions.
|
|
12
12
|
*/
|
|
13
|
-
import { gmInstrument } from
|
|
13
|
+
import { gmInstrument } from "./gm.js";
|
|
14
14
|
/** Semitones to ADD to sounding pitch to get written pitch. */
|
|
15
15
|
const PROGRAM_TRANSPOSITION = {
|
|
16
16
|
// Octave-transposing tuned percussion: written an octave (or two) below
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* defend against a bad value from the schema — only against a hand-edited
|
|
8
8
|
* score, which is why `gmInstrument` returns `null` rather than throwing.
|
|
9
9
|
*/
|
|
10
|
-
export type GmFamily =
|
|
10
|
+
export type GmFamily = "piano" | "chromatic-percussion" | "organ" | "guitar" | "bass" | "strings" | "ensemble" | "brass" | "reed" | "pipe" | "synth-lead" | "synth-pad" | "synth-effects" | "ethnic" | "percussive" | "sound-effects";
|
|
11
11
|
export type GmInstrument = {
|
|
12
12
|
/** 0-127, matching `Track.midiProgram`. */
|
|
13
13
|
program: number;
|
|
@@ -9,40 +9,40 @@
|
|
|
9
9
|
*/
|
|
10
10
|
/** In program order: family `i` covers programs `i*8 .. i*8+7`. */
|
|
11
11
|
export const GM_FAMILIES = [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
"piano",
|
|
13
|
+
"chromatic-percussion",
|
|
14
|
+
"organ",
|
|
15
|
+
"guitar",
|
|
16
|
+
"bass",
|
|
17
|
+
"strings",
|
|
18
|
+
"ensemble",
|
|
19
|
+
"brass",
|
|
20
|
+
"reed",
|
|
21
|
+
"pipe",
|
|
22
|
+
"synth-lead",
|
|
23
|
+
"synth-pad",
|
|
24
|
+
"synth-effects",
|
|
25
|
+
"ethnic",
|
|
26
|
+
"percussive",
|
|
27
|
+
"sound-effects",
|
|
28
28
|
];
|
|
29
29
|
export const GM_FAMILY_LABELS = {
|
|
30
|
-
piano:
|
|
31
|
-
|
|
32
|
-
organ:
|
|
33
|
-
guitar:
|
|
34
|
-
bass:
|
|
35
|
-
strings:
|
|
36
|
-
ensemble:
|
|
37
|
-
brass:
|
|
38
|
-
reed:
|
|
39
|
-
pipe:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
ethnic:
|
|
44
|
-
percussive:
|
|
45
|
-
|
|
30
|
+
piano: "Piano",
|
|
31
|
+
"chromatic-percussion": "Chromatic Percussion",
|
|
32
|
+
organ: "Organ",
|
|
33
|
+
guitar: "Guitar",
|
|
34
|
+
bass: "Bass",
|
|
35
|
+
strings: "Strings",
|
|
36
|
+
ensemble: "Ensemble",
|
|
37
|
+
brass: "Brass",
|
|
38
|
+
reed: "Reed",
|
|
39
|
+
pipe: "Pipe",
|
|
40
|
+
"synth-lead": "Synth Lead",
|
|
41
|
+
"synth-pad": "Synth Pad",
|
|
42
|
+
"synth-effects": "Synth Effects",
|
|
43
|
+
ethnic: "Ethnic",
|
|
44
|
+
percussive: "Percussive",
|
|
45
|
+
"sound-effects": "Sound Effects",
|
|
46
46
|
};
|
|
47
47
|
/**
|
|
48
48
|
* The 128 names in program order. Families are NOT stored per row: they are a
|
|
@@ -51,149 +51,149 @@ export const GM_FAMILY_LABELS = {
|
|
|
51
51
|
*/
|
|
52
52
|
const GM_NAMES = [
|
|
53
53
|
// 0-7 Piano
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
"Acoustic Grand Piano",
|
|
55
|
+
"Bright Acoustic Piano",
|
|
56
|
+
"Electric Grand Piano",
|
|
57
|
+
"Honky-tonk Piano",
|
|
58
|
+
"Electric Piano 1",
|
|
59
|
+
"Electric Piano 2",
|
|
60
|
+
"Harpsichord",
|
|
61
|
+
"Clavinet",
|
|
62
62
|
// 8-15 Chromatic Percussion
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
"Celesta",
|
|
64
|
+
"Glockenspiel",
|
|
65
|
+
"Music Box",
|
|
66
|
+
"Vibraphone",
|
|
67
|
+
"Marimba",
|
|
68
|
+
"Xylophone",
|
|
69
|
+
"Tubular Bells",
|
|
70
|
+
"Dulcimer",
|
|
71
71
|
// 16-23 Organ
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
"Drawbar Organ",
|
|
73
|
+
"Percussive Organ",
|
|
74
|
+
"Rock Organ",
|
|
75
|
+
"Church Organ",
|
|
76
|
+
"Reed Organ",
|
|
77
|
+
"Accordion",
|
|
78
|
+
"Harmonica",
|
|
79
|
+
"Tango Accordion",
|
|
80
80
|
// 24-31 Guitar
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
81
|
+
"Acoustic Guitar (nylon)",
|
|
82
|
+
"Acoustic Guitar (steel)",
|
|
83
|
+
"Electric Guitar (jazz)",
|
|
84
|
+
"Electric Guitar (clean)",
|
|
85
|
+
"Electric Guitar (muted)",
|
|
86
|
+
"Overdriven Guitar",
|
|
87
|
+
"Distortion Guitar",
|
|
88
|
+
"Guitar Harmonics",
|
|
89
89
|
// 32-39 Bass
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
90
|
+
"Acoustic Bass",
|
|
91
|
+
"Electric Bass (finger)",
|
|
92
|
+
"Electric Bass (pick)",
|
|
93
|
+
"Fretless Bass",
|
|
94
|
+
"Slap Bass 1",
|
|
95
|
+
"Slap Bass 2",
|
|
96
|
+
"Synth Bass 1",
|
|
97
|
+
"Synth Bass 2",
|
|
98
98
|
// 40-47 Strings
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
99
|
+
"Violin",
|
|
100
|
+
"Viola",
|
|
101
|
+
"Cello",
|
|
102
|
+
"Contrabass",
|
|
103
|
+
"Tremolo Strings",
|
|
104
|
+
"Pizzicato Strings",
|
|
105
|
+
"Orchestral Harp",
|
|
106
|
+
"Timpani",
|
|
107
107
|
// 48-55 Ensemble
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
108
|
+
"String Ensemble 1",
|
|
109
|
+
"String Ensemble 2",
|
|
110
|
+
"Synth Strings 1",
|
|
111
|
+
"Synth Strings 2",
|
|
112
|
+
"Choir Aahs",
|
|
113
|
+
"Voice Oohs",
|
|
114
|
+
"Synth Voice",
|
|
115
|
+
"Orchestra Hit",
|
|
116
116
|
// 56-63 Brass
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
117
|
+
"Trumpet",
|
|
118
|
+
"Trombone",
|
|
119
|
+
"Tuba",
|
|
120
|
+
"Muted Trumpet",
|
|
121
|
+
"French Horn",
|
|
122
|
+
"Brass Section",
|
|
123
|
+
"Synth Brass 1",
|
|
124
|
+
"Synth Brass 2",
|
|
125
125
|
// 64-71 Reed
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
126
|
+
"Soprano Sax",
|
|
127
|
+
"Alto Sax",
|
|
128
|
+
"Tenor Sax",
|
|
129
|
+
"Baritone Sax",
|
|
130
|
+
"Oboe",
|
|
131
|
+
"English Horn",
|
|
132
|
+
"Bassoon",
|
|
133
|
+
"Clarinet",
|
|
134
134
|
// 72-79 Pipe
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
135
|
+
"Piccolo",
|
|
136
|
+
"Flute",
|
|
137
|
+
"Recorder",
|
|
138
|
+
"Pan Flute",
|
|
139
|
+
"Blown Bottle",
|
|
140
|
+
"Shakuhachi",
|
|
141
|
+
"Whistle",
|
|
142
|
+
"Ocarina",
|
|
143
143
|
// 80-87 Synth Lead
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
144
|
+
"Lead 1 (square)",
|
|
145
|
+
"Lead 2 (sawtooth)",
|
|
146
|
+
"Lead 3 (calliope)",
|
|
147
|
+
"Lead 4 (chiff)",
|
|
148
|
+
"Lead 5 (charang)",
|
|
149
|
+
"Lead 6 (voice)",
|
|
150
|
+
"Lead 7 (fifths)",
|
|
151
|
+
"Lead 8 (bass + lead)",
|
|
152
152
|
// 88-95 Synth Pad
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
153
|
+
"Pad 1 (new age)",
|
|
154
|
+
"Pad 2 (warm)",
|
|
155
|
+
"Pad 3 (polysynth)",
|
|
156
|
+
"Pad 4 (choir)",
|
|
157
|
+
"Pad 5 (bowed)",
|
|
158
|
+
"Pad 6 (metallic)",
|
|
159
|
+
"Pad 7 (halo)",
|
|
160
|
+
"Pad 8 (sweep)",
|
|
161
161
|
// 96-103 Synth Effects
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
162
|
+
"FX 1 (rain)",
|
|
163
|
+
"FX 2 (soundtrack)",
|
|
164
|
+
"FX 3 (crystal)",
|
|
165
|
+
"FX 4 (atmosphere)",
|
|
166
|
+
"FX 5 (brightness)",
|
|
167
|
+
"FX 6 (goblins)",
|
|
168
|
+
"FX 7 (echoes)",
|
|
169
|
+
"FX 8 (sci-fi)",
|
|
170
170
|
// 104-111 Ethnic
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
171
|
+
"Sitar",
|
|
172
|
+
"Banjo",
|
|
173
|
+
"Shamisen",
|
|
174
|
+
"Koto",
|
|
175
|
+
"Kalimba",
|
|
176
|
+
"Bagpipe",
|
|
177
|
+
"Fiddle",
|
|
178
|
+
"Shanai",
|
|
179
179
|
// 112-119 Percussive
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
180
|
+
"Tinkle Bell",
|
|
181
|
+
"Agogo",
|
|
182
|
+
"Steel Drums",
|
|
183
|
+
"Woodblock",
|
|
184
|
+
"Taiko Drum",
|
|
185
|
+
"Melodic Tom",
|
|
186
|
+
"Synth Drum",
|
|
187
|
+
"Reverse Cymbal",
|
|
188
188
|
// 120-127 Sound Effects
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
189
|
+
"Guitar Fret Noise",
|
|
190
|
+
"Breath Noise",
|
|
191
|
+
"Seashore",
|
|
192
|
+
"Bird Tweet",
|
|
193
|
+
"Telephone Ring",
|
|
194
|
+
"Helicopter",
|
|
195
|
+
"Applause",
|
|
196
|
+
"Gunshot",
|
|
197
197
|
];
|
|
198
198
|
/** The family a program belongs to. Arithmetic, because families are runs of eight. */
|
|
199
199
|
export function gmFamilyOf(program) {
|
|
@@ -212,6 +212,6 @@ export function gmInstrument(program) {
|
|
|
212
212
|
}
|
|
213
213
|
/** The eight programs of one family, in program order — what the picker groups by. */
|
|
214
214
|
export function gmInstrumentsByFamily(family) {
|
|
215
|
-
return GM_INSTRUMENTS.filter(instrument => instrument.family === family);
|
|
215
|
+
return GM_INSTRUMENTS.filter((instrument) => instrument.family === family);
|
|
216
216
|
}
|
|
217
217
|
//# sourceMappingURL=gm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gm.js","sourceRoot":"","sources":["../../../src/domain/instruments/gm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gm.js","sourceRoot":"","sources":["../../../src/domain/instruments/gm.ts"],"names":[],"mappings":"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"}
|