musicxml-io 0.2.8 → 0.2.11
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/README.md +34 -5
- package/dist/{index-B-GcfEfL.d.ts → index-2mOfy1m5.d.ts} +116 -29
- package/dist/{index-BvwdY5YQ.d.mts → index-C9zaOJxW.d.mts} +116 -29
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3546 -51
- package/dist/index.mjs +3450 -51
- package/dist/operations/index.d.mts +1 -1
- package/dist/operations/index.d.ts +1 -1
- package/dist/operations/index.js +129 -0
- package/dist/operations/index.mjs +118 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-Bpq2o5JS.mjs';
|
|
2
|
-
export {
|
|
2
|
+
export { ba as AddArticulationOptions, bj as AddBeamOptions, c8 as AddBowingOptions, ch as AddBreathMarkOptions, ck as AddCaesuraOptions, aW as AddChordOptions, c2 as AddChordSymbolOptions, bS as AddCodaOptions, bc as AddDynamicsOptions, bM as AddEndingOptions, bz as AddFermataOptions, c5 as AddFingeringOptions, bU as AddGraceNoteOptions, b$ as AddHarmonyOptions, bX as AddLyricOptions, bT as AddNavigationOptions, cd as AddOctaveShiftOptions, bB as AddOrnamentOptions, b2 as AddPartOptions, bD as AddPedalOptions, bH as AddRehearsalMarkOptions, bI as AddRepeatBarlineOptions, bK as AddRepeatOptions, bR as AddSegnoOptions, b8 as AddSlurOptions, ca as AddStringNumberOptions, bu as AddTempoOptions, bF as AddTextDirectionOptions, bG as AddTextOptions, b6 as AddTieOptions, b1 as AddVoiceOptions, bx as AddWedgeOptions, bl as AutoBeamOptions, bQ as BarStyle, c7 as BowingType, cg as BreathMarkValue, cj as CaesuraValue, bO as ChangeBarlineOptions, bg as ChangeClefOptions, aX as ChangeNoteDurationOptions, bW as ConvertToGraceOptions, br as CopyNotesMultiMeasureOptions, bo as CopyNotesOptions, bh as CreateTupletOptions, bq as CutNotesOptions, b3 as DuplicatePartOptions, b_ as HarmonyKind, bf as InsertClefChangeOptions, aU as InsertNoteOptions, b0 as LowerAccidentalOptions, be as ModifyDynamicsOptions, bw as ModifyTempoOptions, b5 as MoveNoteToStaffOptions, bs as MultiMeasureSelection, bn as NoteSelection, cc as OctaveShiftType, aT as OperationErrorCode, aS as OperationResult, bt as PasteNotesMultiMeasureOptions, bp as PasteNotesOptions, a$ as RaiseAccidentalOptions, bb as RemoveArticulationOptions, bk as RemoveBeamOptions, c9 as RemoveBowingOptions, ci as RemoveBreathMarkOptions, cl as RemoveCaesuraOptions, c3 as RemoveChordSymbolOptions, bd as RemoveDynamicsOptions, bN as RemoveEndingOptions, bA as RemoveFermataOptions, c6 as RemoveFingeringOptions, bV as RemoveGraceNoteOptions, c0 as RemoveHarmonyOptions, bY as RemoveLyricOptions, aV as RemoveNoteOptions, cf as RemoveOctaveShiftOptions, bC as RemoveOrnamentOptions, bE as RemovePedalOptions, bJ as RemoveRepeatBarlineOptions, bL as RemoveRepeatOptions, b9 as RemoveSlurOptions, cb as RemoveStringNumberOptions, bv as RemoveTempoOptions, b7 as RemoveTieOptions, bi as RemoveTupletOptions, by as RemoveWedgeOptions, bP as SetBarlineOptions, bm as SetBeamingOptions, aZ as SetNotePitchBySemitoneOptions, aY as SetNotePitchOptions, b4 as SetStavesOptions, a_ as ShiftNotePitchOptions, ce as StopOctaveShiftOptions, c4 as UpdateChordSymbolOptions, c1 as UpdateHarmonyOptions, bZ as UpdateLyricOptions, cH as ValidationError, K as addArticulation, T as addBeam, aH as addBowing, aO as addBreathMark, aQ as addCaesura, b as addChord, j as addChordNote, p as addChordNoteChecked, aC as addChordSymbol, ao as addCoda, ap as addDaCapo, aq as addDalSegno, M as addDynamics, aj as addEnding, a6 as addFermata, ar as addFine, aF as addFingering, at as addGraceNote, az as addHarmony, aw as addLyric, g as addNote, n as addNoteChecked, aL as addOctaveShift, a8 as addOrnament, x as addPart, aa as addPedal, ae as addRehearsalMark, ah as addRepeat, af as addRepeatBarline, an as addSegno, I as addSlur, aJ as addStringNumber, a1 as addTempo, ad as addText, ac as addTextDirection, G as addTie, as as addToCoda, w as addVoice, a4 as addWedge, W as autoBeam, al as changeBarline, Q as changeClef, C as changeKey, e as changeNoteDuration, D as changeTime, av as convertToGrace, Y as copyNotes, $ as copyNotesMultiMeasure, R as createTuplet, _ as cutNotes, F as deleteMeasure, h as deleteNote, o as deleteNoteChecked, z as duplicatePart, P as insertClefChange, E as insertMeasure, i as insertNote, l as lowerAccidental, O as modifyDynamics, k as modifyNoteDuration, u as modifyNoteDurationChecked, m as modifyNotePitch, q as modifyNotePitchChecked, a3 as modifyTempo, B as moveNoteToStaff, Z as pasteNotes, a0 as pasteNotesMultiMeasure, f as raiseAccidental, L as removeArticulation, U as removeBeam, aI as removeBowing, aP as removeBreathMark, aR as removeCaesura, aD as removeChordSymbol, N as removeDynamics, ak as removeEnding, a7 as removeFermata, aG as removeFingering, au as removeGraceNote, aA as removeHarmony, ax as removeLyric, r as removeNote, aN as removeOctaveShift, a9 as removeOrnament, y as removePart, ab as removePedal, ai as removeRepeat, ag as removeRepeatBarline, J as removeSlur, aK as removeStringNumber, a2 as removeTempo, H as removeTie, S as removeTuplet, a5 as removeWedge, am as setBarline, X as setBeaming, s as setNotePitch, c as setNotePitchBySemitone, A as setStaves, d as shiftNotePitch, aM as stopOctaveShift, t as transpose, v as transposeChecked, aE as updateChordSymbol, aB as updateHarmony, ay as updateLyric } from '../index-C9zaOJxW.mjs';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import '../types-Bpq2o5JS.js';
|
|
2
|
-
export {
|
|
2
|
+
export { ba as AddArticulationOptions, bj as AddBeamOptions, c8 as AddBowingOptions, ch as AddBreathMarkOptions, ck as AddCaesuraOptions, aW as AddChordOptions, c2 as AddChordSymbolOptions, bS as AddCodaOptions, bc as AddDynamicsOptions, bM as AddEndingOptions, bz as AddFermataOptions, c5 as AddFingeringOptions, bU as AddGraceNoteOptions, b$ as AddHarmonyOptions, bX as AddLyricOptions, bT as AddNavigationOptions, cd as AddOctaveShiftOptions, bB as AddOrnamentOptions, b2 as AddPartOptions, bD as AddPedalOptions, bH as AddRehearsalMarkOptions, bI as AddRepeatBarlineOptions, bK as AddRepeatOptions, bR as AddSegnoOptions, b8 as AddSlurOptions, ca as AddStringNumberOptions, bu as AddTempoOptions, bF as AddTextDirectionOptions, bG as AddTextOptions, b6 as AddTieOptions, b1 as AddVoiceOptions, bx as AddWedgeOptions, bl as AutoBeamOptions, bQ as BarStyle, c7 as BowingType, cg as BreathMarkValue, cj as CaesuraValue, bO as ChangeBarlineOptions, bg as ChangeClefOptions, aX as ChangeNoteDurationOptions, bW as ConvertToGraceOptions, br as CopyNotesMultiMeasureOptions, bo as CopyNotesOptions, bh as CreateTupletOptions, bq as CutNotesOptions, b3 as DuplicatePartOptions, b_ as HarmonyKind, bf as InsertClefChangeOptions, aU as InsertNoteOptions, b0 as LowerAccidentalOptions, be as ModifyDynamicsOptions, bw as ModifyTempoOptions, b5 as MoveNoteToStaffOptions, bs as MultiMeasureSelection, bn as NoteSelection, cc as OctaveShiftType, aT as OperationErrorCode, aS as OperationResult, bt as PasteNotesMultiMeasureOptions, bp as PasteNotesOptions, a$ as RaiseAccidentalOptions, bb as RemoveArticulationOptions, bk as RemoveBeamOptions, c9 as RemoveBowingOptions, ci as RemoveBreathMarkOptions, cl as RemoveCaesuraOptions, c3 as RemoveChordSymbolOptions, bd as RemoveDynamicsOptions, bN as RemoveEndingOptions, bA as RemoveFermataOptions, c6 as RemoveFingeringOptions, bV as RemoveGraceNoteOptions, c0 as RemoveHarmonyOptions, bY as RemoveLyricOptions, aV as RemoveNoteOptions, cf as RemoveOctaveShiftOptions, bC as RemoveOrnamentOptions, bE as RemovePedalOptions, bJ as RemoveRepeatBarlineOptions, bL as RemoveRepeatOptions, b9 as RemoveSlurOptions, cb as RemoveStringNumberOptions, bv as RemoveTempoOptions, b7 as RemoveTieOptions, bi as RemoveTupletOptions, by as RemoveWedgeOptions, bP as SetBarlineOptions, bm as SetBeamingOptions, aZ as SetNotePitchBySemitoneOptions, aY as SetNotePitchOptions, b4 as SetStavesOptions, a_ as ShiftNotePitchOptions, ce as StopOctaveShiftOptions, c4 as UpdateChordSymbolOptions, c1 as UpdateHarmonyOptions, bZ as UpdateLyricOptions, cH as ValidationError, K as addArticulation, T as addBeam, aH as addBowing, aO as addBreathMark, aQ as addCaesura, b as addChord, j as addChordNote, p as addChordNoteChecked, aC as addChordSymbol, ao as addCoda, ap as addDaCapo, aq as addDalSegno, M as addDynamics, aj as addEnding, a6 as addFermata, ar as addFine, aF as addFingering, at as addGraceNote, az as addHarmony, aw as addLyric, g as addNote, n as addNoteChecked, aL as addOctaveShift, a8 as addOrnament, x as addPart, aa as addPedal, ae as addRehearsalMark, ah as addRepeat, af as addRepeatBarline, an as addSegno, I as addSlur, aJ as addStringNumber, a1 as addTempo, ad as addText, ac as addTextDirection, G as addTie, as as addToCoda, w as addVoice, a4 as addWedge, W as autoBeam, al as changeBarline, Q as changeClef, C as changeKey, e as changeNoteDuration, D as changeTime, av as convertToGrace, Y as copyNotes, $ as copyNotesMultiMeasure, R as createTuplet, _ as cutNotes, F as deleteMeasure, h as deleteNote, o as deleteNoteChecked, z as duplicatePart, P as insertClefChange, E as insertMeasure, i as insertNote, l as lowerAccidental, O as modifyDynamics, k as modifyNoteDuration, u as modifyNoteDurationChecked, m as modifyNotePitch, q as modifyNotePitchChecked, a3 as modifyTempo, B as moveNoteToStaff, Z as pasteNotes, a0 as pasteNotesMultiMeasure, f as raiseAccidental, L as removeArticulation, U as removeBeam, aI as removeBowing, aP as removeBreathMark, aR as removeCaesura, aD as removeChordSymbol, N as removeDynamics, ak as removeEnding, a7 as removeFermata, aG as removeFingering, au as removeGraceNote, aA as removeHarmony, ax as removeLyric, r as removeNote, aN as removeOctaveShift, a9 as removeOrnament, y as removePart, ab as removePedal, ai as removeRepeat, ag as removeRepeatBarline, J as removeSlur, aK as removeStringNumber, a2 as removeTempo, H as removeTie, S as removeTuplet, a5 as removeWedge, am as setBarline, X as setBeaming, s as setNotePitch, c as setNotePitchBySemitone, A as setStaves, d as shiftNotePitch, aM as stopOctaveShift, t as transpose, v as transposeChecked, aE as updateChordSymbol, aB as updateHarmony, ay as updateLyric } from '../index-2mOfy1m5.js';
|
package/dist/operations/index.js
CHANGED
|
@@ -28,6 +28,7 @@ __export(operations_exports, {
|
|
|
28
28
|
addChord: () => addChord,
|
|
29
29
|
addChordNote: () => addChordNote,
|
|
30
30
|
addChordNoteChecked: () => addChordNoteChecked,
|
|
31
|
+
addChordSymbol: () => addChordSymbol,
|
|
31
32
|
addCoda: () => addCoda,
|
|
32
33
|
addDaCapo: () => addDaCapo,
|
|
33
34
|
addDalSegno: () => addDalSegno,
|
|
@@ -46,11 +47,13 @@ __export(operations_exports, {
|
|
|
46
47
|
addPart: () => addPart,
|
|
47
48
|
addPedal: () => addPedal,
|
|
48
49
|
addRehearsalMark: () => addRehearsalMark,
|
|
50
|
+
addRepeat: () => addRepeat,
|
|
49
51
|
addRepeatBarline: () => addRepeatBarline,
|
|
50
52
|
addSegno: () => addSegno,
|
|
51
53
|
addSlur: () => addSlur,
|
|
52
54
|
addStringNumber: () => addStringNumber,
|
|
53
55
|
addTempo: () => addTempo,
|
|
56
|
+
addText: () => addText,
|
|
54
57
|
addTextDirection: () => addTextDirection,
|
|
55
58
|
addTie: () => addTie,
|
|
56
59
|
addToCoda: () => addToCoda,
|
|
@@ -58,6 +61,7 @@ __export(operations_exports, {
|
|
|
58
61
|
addWedge: () => addWedge,
|
|
59
62
|
autoBeam: () => autoBeam,
|
|
60
63
|
changeBarline: () => changeBarline,
|
|
64
|
+
changeClef: () => changeClef,
|
|
61
65
|
changeKey: () => changeKey,
|
|
62
66
|
changeNoteDuration: () => changeNoteDuration,
|
|
63
67
|
changeTime: () => changeTime,
|
|
@@ -74,10 +78,12 @@ __export(operations_exports, {
|
|
|
74
78
|
insertMeasure: () => insertMeasure,
|
|
75
79
|
insertNote: () => insertNote,
|
|
76
80
|
lowerAccidental: () => lowerAccidental,
|
|
81
|
+
modifyDynamics: () => modifyDynamics,
|
|
77
82
|
modifyNoteDuration: () => modifyNoteDuration,
|
|
78
83
|
modifyNoteDurationChecked: () => modifyNoteDurationChecked,
|
|
79
84
|
modifyNotePitch: () => modifyNotePitch,
|
|
80
85
|
modifyNotePitchChecked: () => modifyNotePitchChecked,
|
|
86
|
+
modifyTempo: () => modifyTempo,
|
|
81
87
|
moveNoteToStaff: () => moveNoteToStaff,
|
|
82
88
|
pasteNotes: () => pasteNotes,
|
|
83
89
|
pasteNotesMultiMeasure: () => pasteNotesMultiMeasure,
|
|
@@ -87,6 +93,7 @@ __export(operations_exports, {
|
|
|
87
93
|
removeBowing: () => removeBowing,
|
|
88
94
|
removeBreathMark: () => removeBreathMark,
|
|
89
95
|
removeCaesura: () => removeCaesura,
|
|
96
|
+
removeChordSymbol: () => removeChordSymbol,
|
|
90
97
|
removeDynamics: () => removeDynamics,
|
|
91
98
|
removeEnding: () => removeEnding,
|
|
92
99
|
removeFermata: () => removeFermata,
|
|
@@ -99,6 +106,7 @@ __export(operations_exports, {
|
|
|
99
106
|
removeOrnament: () => removeOrnament,
|
|
100
107
|
removePart: () => removePart,
|
|
101
108
|
removePedal: () => removePedal,
|
|
109
|
+
removeRepeat: () => removeRepeat,
|
|
102
110
|
removeRepeatBarline: () => removeRepeatBarline,
|
|
103
111
|
removeSlur: () => removeSlur,
|
|
104
112
|
removeStringNumber: () => removeStringNumber,
|
|
@@ -106,6 +114,8 @@ __export(operations_exports, {
|
|
|
106
114
|
removeTie: () => removeTie,
|
|
107
115
|
removeTuplet: () => removeTuplet,
|
|
108
116
|
removeWedge: () => removeWedge,
|
|
117
|
+
setBarline: () => setBarline,
|
|
118
|
+
setBeaming: () => setBeaming,
|
|
109
119
|
setNotePitch: () => setNotePitch,
|
|
110
120
|
setNotePitchBySemitone: () => setNotePitchBySemitone,
|
|
111
121
|
setStaves: () => setStaves,
|
|
@@ -113,6 +123,7 @@ __export(operations_exports, {
|
|
|
113
123
|
stopOctaveShift: () => stopOctaveShift,
|
|
114
124
|
transpose: () => transpose,
|
|
115
125
|
transposeChecked: () => transposeChecked,
|
|
126
|
+
updateChordSymbol: () => updateChordSymbol,
|
|
116
127
|
updateHarmony: () => updateHarmony,
|
|
117
128
|
updateLyric: () => updateLyric
|
|
118
129
|
});
|
|
@@ -2402,6 +2413,44 @@ function removeDynamics(score, options) {
|
|
|
2402
2413
|
measure.entries.splice(targetIndex, 1);
|
|
2403
2414
|
return success(result);
|
|
2404
2415
|
}
|
|
2416
|
+
function modifyDynamics(score, options) {
|
|
2417
|
+
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
2418
|
+
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
2419
|
+
}
|
|
2420
|
+
const part = score.parts[options.partIndex];
|
|
2421
|
+
if (options.measureIndex < 0 || options.measureIndex >= part.measures.length) {
|
|
2422
|
+
return failure([operationError("MEASURE_NOT_FOUND", `Measure index ${options.measureIndex} out of bounds`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
2423
|
+
}
|
|
2424
|
+
const result = cloneScore(score);
|
|
2425
|
+
const measure = result.parts[options.partIndex].measures[options.measureIndex];
|
|
2426
|
+
let dynamicsCount = 0;
|
|
2427
|
+
let targetIndex = -1;
|
|
2428
|
+
for (let i = 0; i < measure.entries.length; i++) {
|
|
2429
|
+
const entry = measure.entries[i];
|
|
2430
|
+
if (entry.type === "direction") {
|
|
2431
|
+
const hasDynamics = entry.directionTypes.some((dt) => dt.kind === "dynamics");
|
|
2432
|
+
if (hasDynamics) {
|
|
2433
|
+
if (dynamicsCount === options.directionIndex) {
|
|
2434
|
+
targetIndex = i;
|
|
2435
|
+
break;
|
|
2436
|
+
}
|
|
2437
|
+
dynamicsCount++;
|
|
2438
|
+
}
|
|
2439
|
+
}
|
|
2440
|
+
}
|
|
2441
|
+
if (targetIndex === -1) {
|
|
2442
|
+
return failure([operationError("DYNAMICS_NOT_FOUND", `Dynamics direction index ${options.directionIndex} not found`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
2443
|
+
}
|
|
2444
|
+
const direction = measure.entries[targetIndex];
|
|
2445
|
+
const dynamicsType = direction.directionTypes.find((dt) => dt.kind === "dynamics");
|
|
2446
|
+
if (dynamicsType && dynamicsType.kind === "dynamics") {
|
|
2447
|
+
dynamicsType.value = options.dynamics;
|
|
2448
|
+
}
|
|
2449
|
+
if (options.placement !== void 0) {
|
|
2450
|
+
direction.placement = options.placement;
|
|
2451
|
+
}
|
|
2452
|
+
return success(result);
|
|
2453
|
+
}
|
|
2405
2454
|
function insertClefChange(score, options) {
|
|
2406
2455
|
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
2407
2456
|
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
@@ -3295,6 +3344,66 @@ function removeTempo(score, options) {
|
|
|
3295
3344
|
measure.entries.splice(tempoDirectionIndices[targetIndex], 1);
|
|
3296
3345
|
return success(result);
|
|
3297
3346
|
}
|
|
3347
|
+
function modifyTempo(score, options) {
|
|
3348
|
+
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
3349
|
+
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
3350
|
+
}
|
|
3351
|
+
const part = score.parts[options.partIndex];
|
|
3352
|
+
if (options.measureIndex < 0 || options.measureIndex >= part.measures.length) {
|
|
3353
|
+
return failure([operationError("MEASURE_NOT_FOUND", `Measure index ${options.measureIndex} out of bounds`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
3354
|
+
}
|
|
3355
|
+
const result = cloneScore(score);
|
|
3356
|
+
const measure = result.parts[options.partIndex].measures[options.measureIndex];
|
|
3357
|
+
const tempoDirectionIndices = [];
|
|
3358
|
+
for (let i = 0; i < measure.entries.length; i++) {
|
|
3359
|
+
const entry = measure.entries[i];
|
|
3360
|
+
if (entry.type === "direction" && entry.directionTypes.some((dt) => dt.kind === "metronome")) {
|
|
3361
|
+
tempoDirectionIndices.push(i);
|
|
3362
|
+
}
|
|
3363
|
+
}
|
|
3364
|
+
if (tempoDirectionIndices.length === 0) {
|
|
3365
|
+
return failure([operationError("TEMPO_NOT_FOUND", "No tempo marking found in measure", { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
3366
|
+
}
|
|
3367
|
+
const targetIndex = options.directionIndex ?? 0;
|
|
3368
|
+
if (targetIndex < 0 || targetIndex >= tempoDirectionIndices.length) {
|
|
3369
|
+
return failure([operationError("TEMPO_NOT_FOUND", `Tempo direction index ${targetIndex} out of bounds`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
3370
|
+
}
|
|
3371
|
+
const direction = measure.entries[tempoDirectionIndices[targetIndex]];
|
|
3372
|
+
const metronome = direction.directionTypes.find((dt) => dt.kind === "metronome");
|
|
3373
|
+
if (metronome && metronome.kind === "metronome") {
|
|
3374
|
+
if (options.bpm !== void 0) {
|
|
3375
|
+
metronome.perMinute = options.bpm;
|
|
3376
|
+
}
|
|
3377
|
+
if (options.beatUnit !== void 0) {
|
|
3378
|
+
metronome.beatUnit = options.beatUnit;
|
|
3379
|
+
}
|
|
3380
|
+
if (options.beatUnitDot !== void 0) {
|
|
3381
|
+
metronome.beatUnitDot = options.beatUnitDot;
|
|
3382
|
+
}
|
|
3383
|
+
}
|
|
3384
|
+
if (options.text !== void 0) {
|
|
3385
|
+
const wordsIndex = direction.directionTypes.findIndex((dt) => dt.kind === "words");
|
|
3386
|
+
if (wordsIndex >= 0) {
|
|
3387
|
+
const words = direction.directionTypes[wordsIndex];
|
|
3388
|
+
if (words.kind === "words") {
|
|
3389
|
+
words.text = options.text;
|
|
3390
|
+
}
|
|
3391
|
+
} else if (options.text) {
|
|
3392
|
+
direction.directionTypes.push({
|
|
3393
|
+
kind: "words",
|
|
3394
|
+
text: options.text,
|
|
3395
|
+
fontWeight: "bold"
|
|
3396
|
+
});
|
|
3397
|
+
}
|
|
3398
|
+
}
|
|
3399
|
+
if (options.bpm !== void 0 && direction.sound) {
|
|
3400
|
+
direction.sound.tempo = options.bpm;
|
|
3401
|
+
}
|
|
3402
|
+
if (options.placement !== void 0) {
|
|
3403
|
+
direction.placement = options.placement;
|
|
3404
|
+
}
|
|
3405
|
+
return success(result);
|
|
3406
|
+
}
|
|
3298
3407
|
function addWedge(score, options) {
|
|
3299
3408
|
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
3300
3409
|
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
@@ -4838,6 +4947,15 @@ function removeCaesura(score, options) {
|
|
|
4838
4947
|
}
|
|
4839
4948
|
return success(result);
|
|
4840
4949
|
}
|
|
4950
|
+
var addText = addTextDirection;
|
|
4951
|
+
var setBeaming = autoBeam;
|
|
4952
|
+
var addChordSymbol = addHarmony;
|
|
4953
|
+
var removeChordSymbol = removeHarmony;
|
|
4954
|
+
var updateChordSymbol = updateHarmony;
|
|
4955
|
+
var changeClef = insertClefChange;
|
|
4956
|
+
var setBarline = changeBarline;
|
|
4957
|
+
var addRepeat = addRepeatBarline;
|
|
4958
|
+
var removeRepeat = removeRepeatBarline;
|
|
4841
4959
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4842
4960
|
0 && (module.exports = {
|
|
4843
4961
|
addArticulation,
|
|
@@ -4848,6 +4966,7 @@ function removeCaesura(score, options) {
|
|
|
4848
4966
|
addChord,
|
|
4849
4967
|
addChordNote,
|
|
4850
4968
|
addChordNoteChecked,
|
|
4969
|
+
addChordSymbol,
|
|
4851
4970
|
addCoda,
|
|
4852
4971
|
addDaCapo,
|
|
4853
4972
|
addDalSegno,
|
|
@@ -4866,11 +4985,13 @@ function removeCaesura(score, options) {
|
|
|
4866
4985
|
addPart,
|
|
4867
4986
|
addPedal,
|
|
4868
4987
|
addRehearsalMark,
|
|
4988
|
+
addRepeat,
|
|
4869
4989
|
addRepeatBarline,
|
|
4870
4990
|
addSegno,
|
|
4871
4991
|
addSlur,
|
|
4872
4992
|
addStringNumber,
|
|
4873
4993
|
addTempo,
|
|
4994
|
+
addText,
|
|
4874
4995
|
addTextDirection,
|
|
4875
4996
|
addTie,
|
|
4876
4997
|
addToCoda,
|
|
@@ -4878,6 +4999,7 @@ function removeCaesura(score, options) {
|
|
|
4878
4999
|
addWedge,
|
|
4879
5000
|
autoBeam,
|
|
4880
5001
|
changeBarline,
|
|
5002
|
+
changeClef,
|
|
4881
5003
|
changeKey,
|
|
4882
5004
|
changeNoteDuration,
|
|
4883
5005
|
changeTime,
|
|
@@ -4894,10 +5016,12 @@ function removeCaesura(score, options) {
|
|
|
4894
5016
|
insertMeasure,
|
|
4895
5017
|
insertNote,
|
|
4896
5018
|
lowerAccidental,
|
|
5019
|
+
modifyDynamics,
|
|
4897
5020
|
modifyNoteDuration,
|
|
4898
5021
|
modifyNoteDurationChecked,
|
|
4899
5022
|
modifyNotePitch,
|
|
4900
5023
|
modifyNotePitchChecked,
|
|
5024
|
+
modifyTempo,
|
|
4901
5025
|
moveNoteToStaff,
|
|
4902
5026
|
pasteNotes,
|
|
4903
5027
|
pasteNotesMultiMeasure,
|
|
@@ -4907,6 +5031,7 @@ function removeCaesura(score, options) {
|
|
|
4907
5031
|
removeBowing,
|
|
4908
5032
|
removeBreathMark,
|
|
4909
5033
|
removeCaesura,
|
|
5034
|
+
removeChordSymbol,
|
|
4910
5035
|
removeDynamics,
|
|
4911
5036
|
removeEnding,
|
|
4912
5037
|
removeFermata,
|
|
@@ -4919,6 +5044,7 @@ function removeCaesura(score, options) {
|
|
|
4919
5044
|
removeOrnament,
|
|
4920
5045
|
removePart,
|
|
4921
5046
|
removePedal,
|
|
5047
|
+
removeRepeat,
|
|
4922
5048
|
removeRepeatBarline,
|
|
4923
5049
|
removeSlur,
|
|
4924
5050
|
removeStringNumber,
|
|
@@ -4926,6 +5052,8 @@ function removeCaesura(score, options) {
|
|
|
4926
5052
|
removeTie,
|
|
4927
5053
|
removeTuplet,
|
|
4928
5054
|
removeWedge,
|
|
5055
|
+
setBarline,
|
|
5056
|
+
setBeaming,
|
|
4929
5057
|
setNotePitch,
|
|
4930
5058
|
setNotePitchBySemitone,
|
|
4931
5059
|
setStaves,
|
|
@@ -4933,6 +5061,7 @@ function removeCaesura(score, options) {
|
|
|
4933
5061
|
stopOctaveShift,
|
|
4934
5062
|
transpose,
|
|
4935
5063
|
transposeChecked,
|
|
5064
|
+
updateChordSymbol,
|
|
4936
5065
|
updateHarmony,
|
|
4937
5066
|
updateLyric
|
|
4938
5067
|
});
|
|
@@ -2282,6 +2282,44 @@ function removeDynamics(score, options) {
|
|
|
2282
2282
|
measure.entries.splice(targetIndex, 1);
|
|
2283
2283
|
return success(result);
|
|
2284
2284
|
}
|
|
2285
|
+
function modifyDynamics(score, options) {
|
|
2286
|
+
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
2287
|
+
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
2288
|
+
}
|
|
2289
|
+
const part = score.parts[options.partIndex];
|
|
2290
|
+
if (options.measureIndex < 0 || options.measureIndex >= part.measures.length) {
|
|
2291
|
+
return failure([operationError("MEASURE_NOT_FOUND", `Measure index ${options.measureIndex} out of bounds`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
2292
|
+
}
|
|
2293
|
+
const result = cloneScore(score);
|
|
2294
|
+
const measure = result.parts[options.partIndex].measures[options.measureIndex];
|
|
2295
|
+
let dynamicsCount = 0;
|
|
2296
|
+
let targetIndex = -1;
|
|
2297
|
+
for (let i = 0; i < measure.entries.length; i++) {
|
|
2298
|
+
const entry = measure.entries[i];
|
|
2299
|
+
if (entry.type === "direction") {
|
|
2300
|
+
const hasDynamics = entry.directionTypes.some((dt) => dt.kind === "dynamics");
|
|
2301
|
+
if (hasDynamics) {
|
|
2302
|
+
if (dynamicsCount === options.directionIndex) {
|
|
2303
|
+
targetIndex = i;
|
|
2304
|
+
break;
|
|
2305
|
+
}
|
|
2306
|
+
dynamicsCount++;
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
}
|
|
2310
|
+
if (targetIndex === -1) {
|
|
2311
|
+
return failure([operationError("DYNAMICS_NOT_FOUND", `Dynamics direction index ${options.directionIndex} not found`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
2312
|
+
}
|
|
2313
|
+
const direction = measure.entries[targetIndex];
|
|
2314
|
+
const dynamicsType = direction.directionTypes.find((dt) => dt.kind === "dynamics");
|
|
2315
|
+
if (dynamicsType && dynamicsType.kind === "dynamics") {
|
|
2316
|
+
dynamicsType.value = options.dynamics;
|
|
2317
|
+
}
|
|
2318
|
+
if (options.placement !== void 0) {
|
|
2319
|
+
direction.placement = options.placement;
|
|
2320
|
+
}
|
|
2321
|
+
return success(result);
|
|
2322
|
+
}
|
|
2285
2323
|
function insertClefChange(score, options) {
|
|
2286
2324
|
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
2287
2325
|
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
@@ -3175,6 +3213,66 @@ function removeTempo(score, options) {
|
|
|
3175
3213
|
measure.entries.splice(tempoDirectionIndices[targetIndex], 1);
|
|
3176
3214
|
return success(result);
|
|
3177
3215
|
}
|
|
3216
|
+
function modifyTempo(score, options) {
|
|
3217
|
+
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
3218
|
+
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
3219
|
+
}
|
|
3220
|
+
const part = score.parts[options.partIndex];
|
|
3221
|
+
if (options.measureIndex < 0 || options.measureIndex >= part.measures.length) {
|
|
3222
|
+
return failure([operationError("MEASURE_NOT_FOUND", `Measure index ${options.measureIndex} out of bounds`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
3223
|
+
}
|
|
3224
|
+
const result = cloneScore(score);
|
|
3225
|
+
const measure = result.parts[options.partIndex].measures[options.measureIndex];
|
|
3226
|
+
const tempoDirectionIndices = [];
|
|
3227
|
+
for (let i = 0; i < measure.entries.length; i++) {
|
|
3228
|
+
const entry = measure.entries[i];
|
|
3229
|
+
if (entry.type === "direction" && entry.directionTypes.some((dt) => dt.kind === "metronome")) {
|
|
3230
|
+
tempoDirectionIndices.push(i);
|
|
3231
|
+
}
|
|
3232
|
+
}
|
|
3233
|
+
if (tempoDirectionIndices.length === 0) {
|
|
3234
|
+
return failure([operationError("TEMPO_NOT_FOUND", "No tempo marking found in measure", { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
3235
|
+
}
|
|
3236
|
+
const targetIndex = options.directionIndex ?? 0;
|
|
3237
|
+
if (targetIndex < 0 || targetIndex >= tempoDirectionIndices.length) {
|
|
3238
|
+
return failure([operationError("TEMPO_NOT_FOUND", `Tempo direction index ${targetIndex} out of bounds`, { partIndex: options.partIndex, measureIndex: options.measureIndex })]);
|
|
3239
|
+
}
|
|
3240
|
+
const direction = measure.entries[tempoDirectionIndices[targetIndex]];
|
|
3241
|
+
const metronome = direction.directionTypes.find((dt) => dt.kind === "metronome");
|
|
3242
|
+
if (metronome && metronome.kind === "metronome") {
|
|
3243
|
+
if (options.bpm !== void 0) {
|
|
3244
|
+
metronome.perMinute = options.bpm;
|
|
3245
|
+
}
|
|
3246
|
+
if (options.beatUnit !== void 0) {
|
|
3247
|
+
metronome.beatUnit = options.beatUnit;
|
|
3248
|
+
}
|
|
3249
|
+
if (options.beatUnitDot !== void 0) {
|
|
3250
|
+
metronome.beatUnitDot = options.beatUnitDot;
|
|
3251
|
+
}
|
|
3252
|
+
}
|
|
3253
|
+
if (options.text !== void 0) {
|
|
3254
|
+
const wordsIndex = direction.directionTypes.findIndex((dt) => dt.kind === "words");
|
|
3255
|
+
if (wordsIndex >= 0) {
|
|
3256
|
+
const words = direction.directionTypes[wordsIndex];
|
|
3257
|
+
if (words.kind === "words") {
|
|
3258
|
+
words.text = options.text;
|
|
3259
|
+
}
|
|
3260
|
+
} else if (options.text) {
|
|
3261
|
+
direction.directionTypes.push({
|
|
3262
|
+
kind: "words",
|
|
3263
|
+
text: options.text,
|
|
3264
|
+
fontWeight: "bold"
|
|
3265
|
+
});
|
|
3266
|
+
}
|
|
3267
|
+
}
|
|
3268
|
+
if (options.bpm !== void 0 && direction.sound) {
|
|
3269
|
+
direction.sound.tempo = options.bpm;
|
|
3270
|
+
}
|
|
3271
|
+
if (options.placement !== void 0) {
|
|
3272
|
+
direction.placement = options.placement;
|
|
3273
|
+
}
|
|
3274
|
+
return success(result);
|
|
3275
|
+
}
|
|
3178
3276
|
function addWedge(score, options) {
|
|
3179
3277
|
if (options.partIndex < 0 || options.partIndex >= score.parts.length) {
|
|
3180
3278
|
return failure([operationError("PART_NOT_FOUND", `Part index ${options.partIndex} out of bounds`, { partIndex: options.partIndex })]);
|
|
@@ -4718,6 +4816,15 @@ function removeCaesura(score, options) {
|
|
|
4718
4816
|
}
|
|
4719
4817
|
return success(result);
|
|
4720
4818
|
}
|
|
4819
|
+
var addText = addTextDirection;
|
|
4820
|
+
var setBeaming = autoBeam;
|
|
4821
|
+
var addChordSymbol = addHarmony;
|
|
4822
|
+
var removeChordSymbol = removeHarmony;
|
|
4823
|
+
var updateChordSymbol = updateHarmony;
|
|
4824
|
+
var changeClef = insertClefChange;
|
|
4825
|
+
var setBarline = changeBarline;
|
|
4826
|
+
var addRepeat = addRepeatBarline;
|
|
4827
|
+
var removeRepeat = removeRepeatBarline;
|
|
4721
4828
|
export {
|
|
4722
4829
|
addArticulation,
|
|
4723
4830
|
addBeam,
|
|
@@ -4727,6 +4834,7 @@ export {
|
|
|
4727
4834
|
addChord,
|
|
4728
4835
|
addChordNote,
|
|
4729
4836
|
addChordNoteChecked,
|
|
4837
|
+
addChordSymbol,
|
|
4730
4838
|
addCoda,
|
|
4731
4839
|
addDaCapo,
|
|
4732
4840
|
addDalSegno,
|
|
@@ -4745,11 +4853,13 @@ export {
|
|
|
4745
4853
|
addPart,
|
|
4746
4854
|
addPedal,
|
|
4747
4855
|
addRehearsalMark,
|
|
4856
|
+
addRepeat,
|
|
4748
4857
|
addRepeatBarline,
|
|
4749
4858
|
addSegno,
|
|
4750
4859
|
addSlur,
|
|
4751
4860
|
addStringNumber,
|
|
4752
4861
|
addTempo,
|
|
4862
|
+
addText,
|
|
4753
4863
|
addTextDirection,
|
|
4754
4864
|
addTie,
|
|
4755
4865
|
addToCoda,
|
|
@@ -4757,6 +4867,7 @@ export {
|
|
|
4757
4867
|
addWedge,
|
|
4758
4868
|
autoBeam,
|
|
4759
4869
|
changeBarline,
|
|
4870
|
+
changeClef,
|
|
4760
4871
|
changeKey,
|
|
4761
4872
|
changeNoteDuration,
|
|
4762
4873
|
changeTime,
|
|
@@ -4773,10 +4884,12 @@ export {
|
|
|
4773
4884
|
insertMeasure,
|
|
4774
4885
|
insertNote,
|
|
4775
4886
|
lowerAccidental,
|
|
4887
|
+
modifyDynamics,
|
|
4776
4888
|
modifyNoteDuration,
|
|
4777
4889
|
modifyNoteDurationChecked,
|
|
4778
4890
|
modifyNotePitch,
|
|
4779
4891
|
modifyNotePitchChecked,
|
|
4892
|
+
modifyTempo,
|
|
4780
4893
|
moveNoteToStaff,
|
|
4781
4894
|
pasteNotes,
|
|
4782
4895
|
pasteNotesMultiMeasure,
|
|
@@ -4786,6 +4899,7 @@ export {
|
|
|
4786
4899
|
removeBowing,
|
|
4787
4900
|
removeBreathMark,
|
|
4788
4901
|
removeCaesura,
|
|
4902
|
+
removeChordSymbol,
|
|
4789
4903
|
removeDynamics,
|
|
4790
4904
|
removeEnding,
|
|
4791
4905
|
removeFermata,
|
|
@@ -4798,6 +4912,7 @@ export {
|
|
|
4798
4912
|
removeOrnament,
|
|
4799
4913
|
removePart,
|
|
4800
4914
|
removePedal,
|
|
4915
|
+
removeRepeat,
|
|
4801
4916
|
removeRepeatBarline,
|
|
4802
4917
|
removeSlur,
|
|
4803
4918
|
removeStringNumber,
|
|
@@ -4805,6 +4920,8 @@ export {
|
|
|
4805
4920
|
removeTie,
|
|
4806
4921
|
removeTuplet,
|
|
4807
4922
|
removeWedge,
|
|
4923
|
+
setBarline,
|
|
4924
|
+
setBeaming,
|
|
4808
4925
|
setNotePitch,
|
|
4809
4926
|
setNotePitchBySemitone,
|
|
4810
4927
|
setStaves,
|
|
@@ -4812,6 +4929,7 @@ export {
|
|
|
4812
4929
|
stopOctaveShift,
|
|
4813
4930
|
transpose,
|
|
4814
4931
|
transposeChecked,
|
|
4932
|
+
updateChordSymbol,
|
|
4815
4933
|
updateHarmony,
|
|
4816
4934
|
updateLyric
|
|
4817
4935
|
};
|