diff --git a/src/accidental.ts b/src/accidental.ts index 54ed05b26f..5993a616b7 100644 --- a/src/accidental.ts +++ b/src/accidental.ts @@ -456,7 +456,7 @@ export class Accidental extends Modifier { const accidental = new Accidental(accidentalString); // Attach the accidental to the StaveNote - staveNote.addModifier(keyIndex, accidental); + staveNote.addModifier(accidental, keyIndex); // Add the pitch to list of pitches that modified accidentals modifiedPitches.push(keyString); diff --git a/src/articulation.ts b/src/articulation.ts index b51fb3ad99..bd6595f5f4 100644 --- a/src/articulation.ts +++ b/src/articulation.ts @@ -285,7 +285,7 @@ export class Articulation extends Modifier { if (position) artic.position = Modifier.PositionString[position]; return builder.getFactory().Articulation(artic); }) - .map((artic) => note.addModifier(0, artic)); + .map((artic) => note.addModifier(artic, 0)); } /** diff --git a/src/dot.ts b/src/dot.ts index 8ef32345fe..faa1e184d6 100644 --- a/src/dot.ts +++ b/src/dot.ts @@ -33,16 +33,16 @@ export class Dot extends Modifier { for (let i = 0; i < note.keys.length; i++) { const dot = new Dot(); dot.setDotShiftY(note.glyph.dot_shiftY); - note.addModifier(i, dot); + note.addModifier(dot, i); } } else if (options?.index != undefined) { const dot = new Dot(); dot.setDotShiftY(note.glyph.dot_shiftY); - note.addModifier(options?.index, dot); + note.addModifier(dot, options?.index); } else { const dot = new Dot(); dot.setDotShiftY(note.glyph.dot_shiftY); - note.addModifier(0, dot); + note.addModifier(dot, 0); } } } diff --git a/src/easyscore.ts b/src/easyscore.ts index 9a61e84646..a690c418df 100644 --- a/src/easyscore.ts +++ b/src/easyscore.ts @@ -372,7 +372,7 @@ export class Builder { const accid = notePiece.accid; if (typeof accid === 'string') { const accidental = factory.Accidental({ type: accid }); - note.addModifier(index, accidental); + note.addModifier(accidental, index); accidentals.push(accidental); } else { accidentals.push(undefined); diff --git a/src/frethandfinger.ts b/src/frethandfinger.ts index 708fcfd2cd..1c45d9a726 100644 --- a/src/frethandfinger.ts +++ b/src/frethandfinger.ts @@ -111,7 +111,7 @@ export class FretHandFinger extends Modifier { if (split[1]) params.position = split[1]; return builder.getFactory().Fingering(params); }) - .map((fingering: Modifier, index: number) => note.addModifier(index, fingering)); + .map((fingering: Modifier, index: number) => note.addModifier(fingering, index)); } protected finger: string; diff --git a/src/note.ts b/src/note.ts index 4b3a7f305a..7344faea50 100644 --- a/src/note.ts +++ b/src/note.ts @@ -532,30 +532,23 @@ export abstract class Note extends Tickable { * @param index of the key to modify. * @returns this */ - addModifier(index: number, modifier: Modifier): this { + addModifier(modifier: Modifier, index: number = 0): this { + const signature = 'Note.addModifier(modifier: Modifier, index: number=0)'; // Backwards compatibility with 3.0.9. if (typeof index === 'string') { index = parseInt(index); // eslint-disable-next-line - console.warn( - 'Note.addModifier(modifier: Modifier, index?: number) ' + - 'expected a number for `index`, but received a string. ' + - 'Please provide a number for the `index` argument.' - ); + console.warn(signature + ' expected a number for `index`, but received a string.'); } - // Legacy versions of VexFlow had the two parameters swapped. - // We check here and throw an error if the argument types are not correct. + // Some versions of VexFlow had the two parameters reversed. + // Check here and throw an error if the argument types are not correct. if (typeof modifier !== 'object' || typeof index !== 'number') { - throw new RuntimeError( - 'WrongParams', - 'Call signature to addModifier not supported, use addModifier(modifier: Modifier, index) instead.' - ); + throw new RuntimeError('WrongParams', 'Incorrect call signature. Use ' + signature + ' instead.'); } modifier.setNote(this); modifier.setIndex(index); - this.modifiers.push(modifier); - this.preFormatted = false; + super.addModifier(modifier, index); return this; } diff --git a/src/parenthesis.ts b/src/parenthesis.ts index 094b32c60a..fc40bd09ce 100644 --- a/src/parenthesis.ts +++ b/src/parenthesis.ts @@ -20,8 +20,8 @@ export class Parenthesis extends Modifier { static buildAndAttach(notes: Note[]): void { for (const note of notes) { for (let i = 0; i < note.keys.length; i++) { - note.addModifier(i, new Parenthesis(ModifierPosition.LEFT)); - note.addModifier(i, new Parenthesis(ModifierPosition.RIGHT)); + note.addModifier(new Parenthesis(ModifierPosition.LEFT), i); + note.addModifier(new Parenthesis(ModifierPosition.RIGHT), i); } } } diff --git a/src/tickable.ts b/src/tickable.ts index d1869953d1..720a300f52 100644 --- a/src/tickable.ts +++ b/src/tickable.ts @@ -278,7 +278,7 @@ export abstract class Tickable extends Element { * @param mod the modifier */ // eslint-disable-next-line - addModifier(index: number, mod: Modifier): this { + addModifier(mod: Modifier, index: number = 0): this { this.modifiers.push(mod); this._preFormatted = false; return this; diff --git a/tests/accidental_tests.ts b/tests/accidental_tests.ts index 868aed6112..2c00b692a7 100644 --- a/tests/accidental_tests.ts +++ b/tests/accidental_tests.ts @@ -161,11 +161,11 @@ function formatAccidentalSpaces(options: TestOptions): void { new StaveNote({ keys: ['e##/5'], duration: '8d', - }).addModifier(0, new Accidental('##')), + }).addModifier(new Accidental('##'), 0), new StaveNote({ keys: ['b/4'], duration: '16', - }).addModifier(0, new Accidental('b')), + }).addModifier(new Accidental('b'), 0), new StaveNote({ keys: ['f/3'], duration: '8', @@ -178,8 +178,8 @@ function formatAccidentalSpaces(options: TestOptions): void { keys: ['e/4', 'g/4'], duration: '16', }) - .addModifier(0, new Accidental('bb')) - .addModifier(1, new Accidental('bb')), + .addModifier(new Accidental('bb'), 0) + .addModifier(new Accidental('bb'), 1), new StaveNote({ keys: ['d/4'], duration: '16', @@ -188,8 +188,8 @@ function formatAccidentalSpaces(options: TestOptions): void { keys: ['e/4', 'g/4'], duration: '16', }) - .addModifier(0, new Accidental('#')) - .addModifier(1, new Accidental('#')), + .addModifier(new Accidental('#'), 0) + .addModifier(new Accidental('#'), 1), new StaveNote({ keys: ['g/4'], duration: '32', @@ -236,37 +236,37 @@ function basic(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], duration: '1' }) - .addModifier(0, accid('b')) - .addModifier(1, accid('#')), + .addModifier(accid('b'), 0) + .addModifier(accid('#'), 1), f .StaveNote({ keys: ['d/4', 'e/4', 'f/4', 'a/4', 'c/5', 'e/5', 'g/5'], duration: '2' }) - .addModifier(0, accid('##')) - .addModifier(1, accid('n')) - .addModifier(2, accid('bb')) - .addModifier(3, accid('b')) - .addModifier(4, accid('#')) - .addModifier(5, accid('n')) - .addModifier(6, accid('bb')), + .addModifier(accid('##'), 0) + .addModifier(accid('n'), 1) + .addModifier(accid('bb'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('#'), 4) + .addModifier(accid('n'), 5) + .addModifier(accid('bb'), 6), f .StaveNote({ keys: ['f/4', 'g/4', 'a/4', 'b/4', 'c/5', 'e/5', 'g/5'], duration: '16' }) - .addModifier(0, accid('n')) - .addModifier(1, accid('#')) - .addModifier(2, accid('#')) - .addModifier(3, accid('b')) - .addModifier(4, accid('bb')) - .addModifier(5, accid('##')) - .addModifier(6, accid('#')), + .addModifier(accid('n'), 0) + .addModifier(accid('#'), 1) + .addModifier(accid('#'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('bb'), 4) + .addModifier(accid('##'), 5) + .addModifier(accid('#'), 6), f .StaveNote({ keys: ['a/3', 'c/4', 'e/4', 'b/4', 'd/5', 'g/5'], duration: '1' }) - .addModifier(0, accid('#')) - .addModifier(1, accid('##').setAsCautionary()) - .addModifier(2, accid('#').setAsCautionary()) - .addModifier(3, accid('b')) - .addModifier(4, accid('bb').setAsCautionary()) - .addModifier(5, accid('b').setAsCautionary()), + .addModifier(accid('#'), 0) + .addModifier(accid('##').setAsCautionary(), 1) + .addModifier(accid('#').setAsCautionary(), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('bb').setAsCautionary(), 4) + .addModifier(accid('b').setAsCautionary(), 5), ]; Formatter.SimpleFormat(notes, 10, { paddingBetween: 45 }); @@ -307,7 +307,7 @@ function cautionary(options: TestOptions): void { const notes = rowMap.map((accidType: string) => f .StaveNote({ keys: ['a/4'], duration: '4', stem_direction: Stem.UP }) - .addModifier(0, f.Accidental({ type: accidType })) + .addModifier(f.Accidental({ type: accidType }), 0) ); const voice = score.voice(notes, { time: rowMap.length + '/4' }); voice.getTickables().forEach((tickable) => { @@ -330,40 +330,40 @@ function specialCases(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['f/4', 'd/5'], duration: '1' }) - .addModifier(0, accid('#')) - .addModifier(1, accid('b')), + .addModifier(accid('#'), 0) + .addModifier(accid('b'), 1), f .StaveNote({ keys: ['c/4', 'g/4'], duration: '2' }) - .addModifier(0, accid('##')) - .addModifier(1, accid('##')), + .addModifier(accid('##'), 0) + .addModifier(accid('##'), 1), f .StaveNote({ keys: ['b/3', 'd/4', 'f/4'], duration: '16' }) - .addModifier(0, accid('#')) - .addModifier(1, accid('#')) - .addModifier(2, accid('##')), + .addModifier(accid('#'), 0) + .addModifier(accid('#'), 1) + .addModifier(accid('##'), 2), f .StaveNote({ keys: ['g/4', 'a/4', 'c/5', 'e/5'], duration: '16' }) - .addModifier(0, accid('b')) - .addModifier(1, accid('b')) - .addModifier(3, accid('n')), + .addModifier(accid('b'), 0) + .addModifier(accid('b'), 1) + .addModifier(accid('n'), 3), f .StaveNote({ keys: ['e/4', 'g/4', 'b/4', 'c/5'], duration: '4' }) - .addModifier(0, accid('b').setAsCautionary()) - .addModifier(1, accid('b').setAsCautionary()) - .addModifier(2, accid('bb')) - .addModifier(3, accid('b')), + .addModifier(accid('b').setAsCautionary(), 0) + .addModifier(accid('b').setAsCautionary(), 1) + .addModifier(accid('bb'), 2) + .addModifier(accid('b'), 3), f .StaveNote({ keys: ['b/3', 'e/4', 'a/4', 'd/5', 'g/5'], duration: '8' }) - .addModifier(0, accid('bb')) - .addModifier(1, accid('b').setAsCautionary()) - .addModifier(2, accid('n').setAsCautionary()) - .addModifier(3, accid('#')) - .addModifier(4, accid('n').setAsCautionary()), + .addModifier(accid('bb'), 0) + .addModifier(accid('b').setAsCautionary(), 1) + .addModifier(accid('n').setAsCautionary(), 2) + .addModifier(accid('#'), 3) + .addModifier(accid('n').setAsCautionary(), 4), ]; Formatter.SimpleFormat(notes, 0, { paddingBetween: 20 }); @@ -391,28 +391,28 @@ function basicStemDown(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], duration: 'w', stem_direction: -1 }) - .addModifier(0, accid('b')) - .addModifier(1, accid('#')), + .addModifier(accid('b'), 0) + .addModifier(accid('#'), 1), f .StaveNote({ keys: ['d/4', 'e/4', 'f/4', 'a/4', 'c/5', 'e/5', 'g/5'], duration: '2', stem_direction: -1 }) - .addModifier(0, accid('##')) - .addModifier(1, accid('n')) - .addModifier(2, accid('bb')) - .addModifier(3, accid('b')) - .addModifier(4, accid('#')) - .addModifier(5, accid('n')) - .addModifier(6, accid('bb')), + .addModifier(accid('##'), 0) + .addModifier(accid('n'), 1) + .addModifier(accid('bb'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('#'), 4) + .addModifier(accid('n'), 5) + .addModifier(accid('bb'), 6), f .StaveNote({ keys: ['f/4', 'g/4', 'a/4', 'b/4', 'c/5', 'e/5', 'g/5'], duration: '16', stem_direction: -1 }) - .addModifier(0, accid('n')) - .addModifier(1, accid('#')) - .addModifier(2, accid('#')) - .addModifier(3, accid('b')) - .addModifier(4, accid('bb')) - .addModifier(5, accid('##')) - .addModifier(6, accid('#')), + .addModifier(accid('n'), 0) + .addModifier(accid('#'), 1) + .addModifier(accid('#'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('bb'), 4) + .addModifier(accid('##'), 5) + .addModifier(accid('#'), 6), ]; Formatter.SimpleFormat(notes, 0, { paddingBetween: 30 }); @@ -457,44 +457,44 @@ function multiVoice(options: TestOptions): void { let note1 = f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], duration: '2', stem_direction: -1 }) - .addModifier(0, accid('b')) - .addModifier(1, accid('n')) - .addModifier(2, accid('#')) + .addModifier(accid('b'), 0) + .addModifier(accid('n'), 1) + .addModifier(accid('#'), 2) .setStave(stave); let note2 = f .StaveNote({ keys: ['d/5', 'a/5', 'b/5'], duration: '2', stem_direction: 1 }) - .addModifier(0, accid('b')) - .addModifier(1, accid('bb')) - .addModifier(2, accid('##')) + .addModifier(accid('b'), 0) + .addModifier(accid('bb'), 1) + .addModifier(accid('##'), 2) .setStave(stave); showNotes(note1, note2, stave, ctx, 60); note1 = f .StaveNote({ keys: ['c/4', 'e/4', 'c/5'], duration: '2', stem_direction: -1 }) - .addModifier(0, accid('b')) - .addModifier(1, accid('n')) - .addModifier(2, accid('#')) + .addModifier(accid('b'), 0) + .addModifier(accid('n'), 1) + .addModifier(accid('#'), 2) .setStave(stave); note2 = f .StaveNote({ keys: ['d/5', 'a/5', 'b/5'], duration: '4', stem_direction: 1 }) - .addModifier(0, accid('b')) + .addModifier(accid('b'), 0) .setStave(stave); showNotes(note1, note2, stave, ctx, 150); note1 = f .StaveNote({ keys: ['d/4', 'c/5', 'd/5'], duration: '2', stem_direction: -1 }) - .addModifier(0, accid('b')) - .addModifier(1, accid('n')) - .addModifier(2, accid('#')) + .addModifier(accid('b'), 0) + .addModifier(accid('n'), 1) + .addModifier(accid('#'), 2) .setStave(stave); note2 = f .StaveNote({ keys: ['d/5', 'a/5', 'b/5'], duration: '4', stem_direction: 1 }) - .addModifier(0, accid('b')) + .addModifier(accid('b'), 0) .setStave(stave); showNotes(note1, note2, stave, ctx, 250); @@ -512,46 +512,46 @@ function microtonal(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], duration: '1' }) - .addModifier(0, accid('db')) - .addModifier(1, accid('d')), + .addModifier(accid('db'), 0) + .addModifier(accid('d'), 1), f .StaveNote({ keys: ['d/4', 'e/4', 'f/4', 'a/4', 'c/5', 'e/5', 'g/5'], duration: '2' }) - .addModifier(0, accid('bbs')) - .addModifier(1, accid('++')) - .addModifier(2, accid('+')) - .addModifier(3, accid('d')) - .addModifier(4, accid('db')) - .addModifier(5, accid('+')) - .addModifier(6, accid('##')), + .addModifier(accid('bbs'), 0) + .addModifier(accid('++'), 1) + .addModifier(accid('+'), 2) + .addModifier(accid('d'), 3) + .addModifier(accid('db'), 4) + .addModifier(accid('+'), 5) + .addModifier(accid('##'), 6), f .StaveNote({ keys: ['f/4', 'g/4', 'a/4', 'b/4', 'c/5', 'e/5', 'g/5'], duration: '16' }) - .addModifier(0, accid('++')) - .addModifier(1, accid('bbs')) - .addModifier(2, accid('+')) - .addModifier(3, accid('b')) - .addModifier(4, accid('db')) - .addModifier(5, accid('##')) - .addModifier(6, accid('#')), + .addModifier(accid('++'), 0) + .addModifier(accid('bbs'), 1) + .addModifier(accid('+'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('db'), 4) + .addModifier(accid('##'), 5) + .addModifier(accid('#'), 6), f .StaveNote({ keys: ['a/3', 'c/4', 'e/4', 'b/4', 'd/5', 'g/5'], duration: '1' }) - .addModifier(0, accid('#')) - .addModifier(1, accid('db').setAsCautionary()) - .addModifier(2, accid('bbs').setAsCautionary()) - .addModifier(3, accid('b')) - .addModifier(4, accid('++').setAsCautionary()) - .addModifier(5, accid('d').setAsCautionary()), + .addModifier(accid('#'), 0) + .addModifier(accid('db').setAsCautionary(), 1) + .addModifier(accid('bbs').setAsCautionary(), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('++').setAsCautionary(), 4) + .addModifier(accid('d').setAsCautionary(), 5), f .StaveNote({ keys: ['f/4', 'g/4', 'a/4', 'b/4', 'd/5', 'g/5'], duration: '16' }) - .addModifier(0, accid('++-')) - .addModifier(1, accid('+-')) - .addModifier(2, accid('bs')) - .addModifier(3, accid('bss')) - .addModifier(4, accid('afhf')) - .addModifier(5, accid('ashs')), + .addModifier(accid('++-'), 0) + .addModifier(accid('+-'), 1) + .addModifier(accid('bs'), 2) + .addModifier(accid('bss'), 3) + .addModifier(accid('afhf'), 4) + .addModifier(accid('ashs'), 5), ]; Formatter.SimpleFormat(notes, 0, { paddingBetween: 35 }); @@ -579,43 +579,43 @@ function microtonal_iranian(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], duration: '1' }) - .addModifier(0, accid('k')) - .addModifier(1, accid('o')), + .addModifier(accid('k'), 0) + .addModifier(accid('o'), 1), f .StaveNote({ keys: ['d/4', 'e/4', 'f/4', 'a/4', 'c/5', 'e/5', 'g/5'], duration: '2' }) - .addModifier(0, accid('b')) - .addModifier(1, accid('k')) - .addModifier(2, accid('n')) - .addModifier(3, accid('o')) - .addModifier(4, accid('#')) - .addModifier(5, accid('bb')) - .addModifier(6, accid('##')), + .addModifier(accid('b'), 0) + .addModifier(accid('k'), 1) + .addModifier(accid('n'), 2) + .addModifier(accid('o'), 3) + .addModifier(accid('#'), 4) + .addModifier(accid('bb'), 5) + .addModifier(accid('##'), 6), f .StaveNote({ keys: ['f/4', 'g/4', 'a/4', 'b/4', 'c/5', 'e/5', 'g/5'], duration: '16' }) - .addModifier(0, accid('o')) - .addModifier(1, accid('k')) - .addModifier(2, accid('n')) - .addModifier(3, accid('b')) - .addModifier(4, accid('bb')) - .addModifier(5, accid('##')) - .addModifier(6, accid('#')), + .addModifier(accid('o'), 0) + .addModifier(accid('k'), 1) + .addModifier(accid('n'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('bb'), 4) + .addModifier(accid('##'), 5) + .addModifier(accid('#'), 6), f .StaveNote({ keys: ['a/3', 'c/4', 'e/4', 'b/4', 'd/5', 'g/5'], duration: '1' }) - .addModifier(0, accid('#')) - .addModifier(1, accid('o').setAsCautionary()) - .addModifier(2, accid('n').setAsCautionary()) - .addModifier(3, accid('b')) - .addModifier(4, accid('k').setAsCautionary()), + .addModifier(accid('#'), 0) + .addModifier(accid('o').setAsCautionary(), 1) + .addModifier(accid('n').setAsCautionary(), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('k').setAsCautionary(), 4), f .StaveNote({ keys: ['f/4', 'g/4', 'a/4', 'b/4'], duration: '16' }) - .addModifier(0, accid('k')) - .addModifier(1, accid('k')) - .addModifier(2, accid('k')) - .addModifier(3, accid('k')), + .addModifier(accid('k'), 0) + .addModifier(accid('k'), 1) + .addModifier(accid('k'), 2) + .addModifier(accid('k'), 3), ]; Formatter.SimpleFormat(notes, 0, { paddingBetween: 35 }); @@ -643,39 +643,39 @@ function sagittal(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['d/4', 'f/4', 'b/4', 'b/4'], duration: '4' }) - .addModifier(1, accid('accSagittal11MediumDiesisUp')) - .addModifier(2, accid('accSagittal5CommaDown')) - .addModifier(3, accid('b')) - .addModifier(3, accid('accSagittal7CommaDown')), + .addModifier(accid('accSagittal11MediumDiesisUp'), 1) + .addModifier(accid('accSagittal5CommaDown'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('accSagittal7CommaDown'), 3), f .StaveNote({ keys: ['d/4', 'f/4', 'a/4', 'b/4'], duration: '4' }) - .addModifier(2, accid('accSagittal35LargeDiesisDown')), + .addModifier(accid('accSagittal35LargeDiesisDown'), 2), - f.StaveNote({ keys: ['c/4', 'e/4', 'g/4', 'c/5'], duration: '8' }).addModifier(1, accid('accSagittal5CommaDown')), + f.StaveNote({ keys: ['c/4', 'e/4', 'g/4', 'c/5'], duration: '8' }).addModifier(accid('accSagittal5CommaDown'), 1), f .StaveNote({ keys: ['c/4', 'e/4', 'g/4', 'b/4'], duration: '8' }) - .addModifier(1, accid('b')) - .addModifier(1, accid('accSagittal7CommaDown')) - .addModifier(3, accid('accSagittal11LargeDiesisDown')), + .addModifier(accid('b'), 1) + .addModifier(accid('accSagittal7CommaDown'), 1) + .addModifier(accid('accSagittal11LargeDiesisDown'), 3), f .StaveNote({ keys: ['d/4', 'f/4', 'b/4', 'b/4'], duration: '4' }) - .addModifier(1, accid('accSagittal11MediumDiesisUp')) - .addModifier(2, accid('accSagittal5CommaDown')) - .addModifier(3, accid('accSagittalFlat7CDown')), + .addModifier(accid('accSagittal11MediumDiesisUp'), 1) + .addModifier(accid('accSagittal5CommaDown'), 2) + .addModifier(accid('accSagittalFlat7CDown'), 3), f .StaveNote({ keys: ['d/4', 'f/4', 'a/4', 'b/4'], duration: '4' }) - .addModifier(2, accid('accSagittal35LargeDiesisDown')), + .addModifier(accid('accSagittal35LargeDiesisDown'), 2), - f.StaveNote({ keys: ['c/4', 'e/4', 'g/4', 'c/5'], duration: '8' }).addModifier(1, accid('accSagittal5CommaDown')), + f.StaveNote({ keys: ['c/4', 'e/4', 'g/4', 'c/5'], duration: '8' }).addModifier(accid('accSagittal5CommaDown'), 1), f .StaveNote({ keys: ['c/4', 'e/4', 'g/4', 'b/4'], duration: '8' }) - .addModifier(1, accid('accSagittalFlat7CDown')) - .addModifier(3, accid('accSagittal11LargeDiesisDown')), + .addModifier(accid('accSagittalFlat7CDown'), 1) + .addModifier(accid('accSagittal11LargeDiesisDown'), 3), ]; f.StaveTie({ @@ -751,7 +751,7 @@ function automaticAccidentals0(options: TestOptions): void { ].map(f.StaveNote.bind(f)); const gracenotes = [{ keys: ['d#/4'], duration: '16', slash: true }].map(f.GraceNote.bind(f)); - notes[0].addModifier(0, f.GraceNoteGroup({ notes: gracenotes }).beamNotes()); + notes[0].addModifier(f.GraceNoteGroup({ notes: gracenotes }).beamNotes(), 0); const voice = f .Voice() @@ -1149,37 +1149,37 @@ function factoryAPI(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], duration: 'w' }) - .addModifier(0, accid('b')) - .addModifier(1, accid('#')), + .addModifier(accid('b'), 0) + .addModifier(accid('#'), 1), f .StaveNote({ keys: ['d/4', 'e/4', 'f/4', 'a/4', 'c/5', 'e/5', 'g/5'], duration: 'h' }) - .addModifier(0, accid('##')) - .addModifier(1, accid('n')) - .addModifier(2, accid('bb')) - .addModifier(3, accid('b')) - .addModifier(4, accid('#')) - .addModifier(5, accid('n')) - .addModifier(6, accid('bb')), + .addModifier(accid('##'), 0) + .addModifier(accid('n'), 1) + .addModifier(accid('bb'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('#'), 4) + .addModifier(accid('n'), 5) + .addModifier(accid('bb'), 6), f .StaveNote({ keys: ['f/4', 'g/4', 'a/4', 'b/4', 'c/5', 'e/5', 'g/5'], duration: '16' }) - .addModifier(0, accid('n')) - .addModifier(1, accid('#')) - .addModifier(2, accid('#')) - .addModifier(3, accid('b')) - .addModifier(4, accid('bb')) - .addModifier(5, accid('##')) - .addModifier(6, accid('#')), + .addModifier(accid('n'), 0) + .addModifier(accid('#'), 1) + .addModifier(accid('#'), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('bb'), 4) + .addModifier(accid('##'), 5) + .addModifier(accid('#'), 6), f .StaveNote({ keys: ['a/3', 'c/4', 'e/4', 'b/4', 'd/5', 'g/5'], duration: 'w' }) - .addModifier(0, accid('#')) - .addModifier(1, accid('##').setAsCautionary()) - .addModifier(2, accid('#').setAsCautionary()) - .addModifier(3, accid('b')) - .addModifier(4, accid('bb').setAsCautionary()) - .addModifier(5, accid('b').setAsCautionary()), + .addModifier(accid('#'), 0) + .addModifier(accid('##').setAsCautionary(), 1) + .addModifier(accid('#').setAsCautionary(), 2) + .addModifier(accid('b'), 3) + .addModifier(accid('bb').setAsCautionary(), 4) + .addModifier(accid('b').setAsCautionary(), 5), ]; Formatter.SimpleFormat(notes); diff --git a/tests/annotation_tests.ts b/tests/annotation_tests.ts index fd9646ed16..c949e0f10b 100644 --- a/tests/annotation_tests.ts +++ b/tests/annotation_tests.ts @@ -84,7 +84,7 @@ function lyrics(options: TestOptions): void { const noteGroup = registry.getElementById(noteGroupID) as Tickable; const lyricsAnnotation = f.Annotation({ text }).setFont('Roboto Slab', fontSize); lyricsAnnotation.setPosition(ModifierPosition.BELOW); - noteGroup.addModifier(verse, lyricsAnnotation); + noteGroup.addModifier(lyricsAnnotation, verse); }); // Second row doesn't have any lyrics. @@ -116,13 +116,13 @@ function simple(options: TestOptions, contextBuilder: ContextBuilder): void { { str: 4, fret: 9 }, ], duration: 'h', - }).addModifier(0, new Annotation('T')), + }).addModifier(new Annotation('T'), 0), tabNote({ positions: [{ str: 2, fret: 10 }], duration: 'h', }) - .addModifier(0, new Annotation('T').setVerticalJustification(AnnotationVerticalJustify.TOP)) - .addModifier(0, new Bend('Full')), + .addModifier(new Annotation('T').setVerticalJustification(AnnotationVerticalJustify.TOP), 0) + .addModifier(new Bend('Full'), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -139,8 +139,8 @@ function standard(options: TestOptions, contextBuilder: ContextBuilder): void { const annotation = (text: string) => new Annotation(text).setFont(Font.SERIF, FONT_SIZE, 'normal', 'italic'); const notes = [ - staveNote({ keys: ['c/4', 'e/4'], duration: 'h' }).addModifier(0, annotation('quiet')), - staveNote({ keys: ['c/4', 'e/4', 'c/5'], duration: 'h' }).addModifier(2, annotation('Allegro')), + staveNote({ keys: ['c/4', 'e/4'], duration: 'h' }).addModifier(annotation('quiet'), 0), + staveNote({ keys: ['c/4', 'e/4', 'c/5'], duration: 'h' }).addModifier(annotation('Allegro'), 2), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -162,13 +162,13 @@ function harmonic(options: TestOptions, contextBuilder: ContextBuilder): void { { str: 3, fret: 12 }, ], duration: 'h', - }).addModifier(0, new Annotation('Harm.')), + }).addModifier(new Annotation('Harm.'), 0), tabNote({ positions: [{ str: 2, fret: 9 }], duration: 'h', }) - .addModifier(0, new Annotation('(8va)').setFont(Font.SERIF, FONT_SIZE, FontWeight.NORMAL, FontStyle.ITALIC)) - .addModifier(0, new Annotation('A.H.')), + .addModifier(new Annotation('(8va)').setFont(Font.SERIF, FONT_SIZE, FontWeight.NORMAL, FontStyle.ITALIC), 0) + .addModifier(new Annotation('A.H.'), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -195,23 +195,23 @@ function picking(options: TestOptions, contextBuilder: ContextBuilder): void { { str: 5, fret: 0 }, ], duration: 'h', - }).addModifier(0, new Vibrato().setVibratoWidth(40)), + }).addModifier(new Vibrato().setVibratoWidth(40), 0), tabNote({ positions: [{ str: 6, fret: 9 }], duration: '8', - }).addModifier(0, annotation('p').setVerticalJustification(AnnotationVerticalJustify.TOP)), + }).addModifier(annotation('p').setVerticalJustification(AnnotationVerticalJustify.TOP), 0), tabNote({ positions: [{ str: 3, fret: 9 }], duration: '8', - }).addModifier(0, annotation('i').setVerticalJustification(AnnotationVerticalJustify.TOP)), + }).addModifier(annotation('i').setVerticalJustification(AnnotationVerticalJustify.TOP), 0), tabNote({ positions: [{ str: 2, fret: 9 }], duration: '8', - }).addModifier(0, annotation('m').setVerticalJustification(AnnotationVerticalJustify.TOP)), + }).addModifier(annotation('m').setVerticalJustification(AnnotationVerticalJustify.TOP), 0), tabNote({ positions: [{ str: 1, fret: 9 }], duration: '8', - }).addModifier(0, annotation('a').setVerticalJustification(AnnotationVerticalJustify.TOP)), + }).addModifier(annotation('a').setVerticalJustification(AnnotationVerticalJustify.TOP), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -228,53 +228,53 @@ function placement(options: TestOptions, contextBuilder: ContextBuilder): void { const notes = [ staveNote({ keys: ['e/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, annotation('v1', 10, AnnotationVerticalJustify.TOP)) - .addModifier(0, annotation('v2', 10, AnnotationVerticalJustify.TOP)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(annotation('v1', 10, AnnotationVerticalJustify.TOP), 0) + .addModifier(annotation('v2', 10, AnnotationVerticalJustify.TOP), 0), staveNote({ keys: ['b/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, annotation('v1', 10, AnnotationVerticalJustify.TOP)) - .addModifier(0, annotation('v2', 10, AnnotationVerticalJustify.TOP)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(annotation('v1', 10, AnnotationVerticalJustify.TOP), 0) + .addModifier(annotation('v2', 10, AnnotationVerticalJustify.TOP), 0), staveNote({ keys: ['c/5'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, annotation('v1', 10, AnnotationVerticalJustify.TOP)) - .addModifier(0, annotation('v2', 10, AnnotationVerticalJustify.TOP)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(annotation('v1', 10, AnnotationVerticalJustify.TOP), 0) + .addModifier(annotation('v2', 10, AnnotationVerticalJustify.TOP), 0), staveNote({ keys: ['f/4'], duration: 'q' }) - .addModifier(0, annotation('v1', 14, AnnotationVerticalJustify.TOP)) - .addModifier(0, annotation('v2', 14, AnnotationVerticalJustify.TOP)), + .addModifier(annotation('v1', 14, AnnotationVerticalJustify.TOP), 0) + .addModifier(annotation('v2', 14, AnnotationVerticalJustify.TOP), 0), staveNote({ keys: ['f/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('am').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, annotation('v1', 10, AnnotationVerticalJustify.TOP)) - .addModifier(0, annotation('v2', 20, AnnotationVerticalJustify.TOP)), + .addModifier(new Articulation('am').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(annotation('v1', 10, AnnotationVerticalJustify.TOP), 0) + .addModifier(annotation('v2', 20, AnnotationVerticalJustify.TOP), 0), staveNote({ keys: ['f/5'], duration: 'q' }) - .addModifier(0, annotation('v1', 11, AnnotationVerticalJustify.TOP)) - .addModifier(0, annotation('v2', 11, AnnotationVerticalJustify.TOP)), + .addModifier(annotation('v1', 11, AnnotationVerticalJustify.TOP), 0) + .addModifier(annotation('v2', 11, AnnotationVerticalJustify.TOP), 0), staveNote({ keys: ['f/5'], duration: 'q' }) - .addModifier(0, annotation('v1', 11, AnnotationVerticalJustify.TOP)) - .addModifier(0, annotation('v2', 20, AnnotationVerticalJustify.TOP)), + .addModifier(annotation('v1', 11, AnnotationVerticalJustify.TOP), 0) + .addModifier(annotation('v2', 20, AnnotationVerticalJustify.TOP), 0), staveNote({ keys: ['f/4'], duration: 'q' }) - .addModifier(0, annotation('v1', 12, AnnotationVerticalJustify.BOTTOM)) - .addModifier(0, annotation('v2', 12, AnnotationVerticalJustify.BOTTOM)), + .addModifier(annotation('v1', 12, AnnotationVerticalJustify.BOTTOM), 0) + .addModifier(annotation('v2', 12, AnnotationVerticalJustify.BOTTOM), 0), staveNote({ keys: ['f/5'], duration: 'q' }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.BELOW)) - .addModifier(0, annotation('v1', 11, AnnotationVerticalJustify.BOTTOM)) - .addModifier(0, annotation('v2', 20, AnnotationVerticalJustify.BOTTOM)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.BELOW), 0) + .addModifier(annotation('v1', 11, AnnotationVerticalJustify.BOTTOM), 0) + .addModifier(annotation('v2', 20, AnnotationVerticalJustify.BOTTOM), 0), staveNote({ keys: ['f/5'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('am').setPosition(ModifierPosition.BELOW)) - .addModifier(0, annotation('v1', 10, AnnotationVerticalJustify.BOTTOM)) - .addModifier(0, annotation('v2', 20, AnnotationVerticalJustify.BOTTOM)), + .addModifier(new Articulation('am').setPosition(ModifierPosition.BELOW), 0) + .addModifier(annotation('v1', 10, AnnotationVerticalJustify.BOTTOM), 0) + .addModifier(annotation('v2', 20, AnnotationVerticalJustify.BOTTOM), 0), staveNote({ keys: ['f/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, annotation('v1', 10, AnnotationVerticalJustify.BOTTOM)) - .addModifier(0, annotation('v2', 20, AnnotationVerticalJustify.BOTTOM)), + .addModifier(annotation('v1', 10, AnnotationVerticalJustify.BOTTOM), 0) + .addModifier(annotation('v2', 20, AnnotationVerticalJustify.BOTTOM), 0), staveNote({ keys: ['f/5'], duration: 'w' }) - .addModifier(0, new Articulation('a@u').setPosition(ModifierPosition.BELOW)) - .addModifier(0, annotation('v1', 11, AnnotationVerticalJustify.BOTTOM)) - .addModifier(0, annotation('v2', 16, AnnotationVerticalJustify.BOTTOM)), + .addModifier(new Articulation('a@u').setPosition(ModifierPosition.BELOW), 0) + .addModifier(annotation('v1', 11, AnnotationVerticalJustify.BOTTOM), 0) + .addModifier(annotation('v2', 16, AnnotationVerticalJustify.BOTTOM), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -292,10 +292,10 @@ function bottom(options: TestOptions, contextBuilder: ContextBuilder): void { new Annotation(text).setFont(Font.SERIF, FONT_SIZE).setVerticalJustification(Annotation.VerticalJustify.BOTTOM); const notes = [ - staveNote({ keys: ['f/4'], duration: 'w' }).addModifier(0, annotation('F')), - staveNote({ keys: ['a/4'], duration: 'w' }).addModifier(0, annotation('A')), - staveNote({ keys: ['c/5'], duration: 'w' }).addModifier(0, annotation('C')), - staveNote({ keys: ['e/5'], duration: 'w' }).addModifier(0, annotation('E')), + staveNote({ keys: ['f/4'], duration: 'w' }).addModifier(annotation('F'), 0), + staveNote({ keys: ['a/4'], duration: 'w' }).addModifier(annotation('A'), 0), + staveNote({ keys: ['c/5'], duration: 'w' }).addModifier(annotation('C'), 0), + staveNote({ keys: ['e/5'], duration: 'w' }).addModifier(annotation('E'), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -311,19 +311,15 @@ function bottomWithBeam(options: TestOptions, contextBuilder: ContextBuilder): v const notes = [ new StaveNote({ keys: ['a/3'], duration: '8' }).addModifier( - 0, new Annotation('good').setVerticalJustification(Annotation.VerticalJustify.BOTTOM) ), new StaveNote({ keys: ['g/3'], duration: '8' }).addModifier( - 0, new Annotation('even').setVerticalJustification(Annotation.VerticalJustify.BOTTOM) ), new StaveNote({ keys: ['c/4'], duration: '8' }).addModifier( - 0, new Annotation('under').setVerticalJustification(Annotation.VerticalJustify.BOTTOM) ), new StaveNote({ keys: ['d/4'], duration: '8' }).addModifier( - 0, new Annotation('beam').setVerticalJustification(Annotation.VerticalJustify.BOTTOM) ), ]; @@ -351,10 +347,10 @@ function justificationStemUp(options: TestOptions, contextBuilder: ContextBuilde const stave = new Stave(10, (v - 1) * 150 + 40, 400).addClef('treble').setContext(ctx).draw(); const notes = [ - staveNote({ keys: ['c/3'], duration: 'q' }).addModifier(0, annotation('Text', 1, v)), - staveNote({ keys: ['c/4'], duration: 'q' }).addModifier(0, annotation('Text', 2, v)), - staveNote({ keys: ['c/5'], duration: 'q' }).addModifier(0, annotation('Text', 3, v)), - staveNote({ keys: ['c/6'], duration: 'q' }).addModifier(0, annotation('Text', 4, v)), + staveNote({ keys: ['c/3'], duration: 'q' }).addModifier(annotation('Text', 1, v), 0), + staveNote({ keys: ['c/4'], duration: 'q' }).addModifier(annotation('Text', 2, v), 0), + staveNote({ keys: ['c/5'], duration: 'q' }).addModifier(annotation('Text', 3, v), 0), + staveNote({ keys: ['c/6'], duration: 'q' }).addModifier(annotation('Text', 4, v), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -378,10 +374,10 @@ function justificationStemDown(options: TestOptions, contextBuilder: ContextBuil for (let v = 1; v <= 4; ++v) { const stave = new Stave(10, (v - 1) * 150 + 40, 400).addClef('treble').setContext(ctx).draw(); const notes = [ - staveNote({ keys: ['c/3'], duration: 'q', stem_direction: -1 }).addModifier(0, annotation('Text', 1, v)), - staveNote({ keys: ['c/4'], duration: 'q', stem_direction: -1 }).addModifier(0, annotation('Text', 2, v)), - staveNote({ keys: ['c/5'], duration: 'q', stem_direction: -1 }).addModifier(0, annotation('Text', 3, v)), - staveNote({ keys: ['c/6'], duration: 'q', stem_direction: -1 }).addModifier(0, annotation('Text', 4, v)), + staveNote({ keys: ['c/3'], duration: 'q', stem_direction: -1 }).addModifier(annotation('Text', 1, v), 0), + staveNote({ keys: ['c/4'], duration: 'q', stem_direction: -1 }).addModifier(annotation('Text', 2, v), 0), + staveNote({ keys: ['c/5'], duration: 'q', stem_direction: -1 }).addModifier(annotation('Text', 3, v), 0), + staveNote({ keys: ['c/6'], duration: 'q', stem_direction: -1 }).addModifier(annotation('Text', 4, v), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); } @@ -442,20 +438,20 @@ function tabNotes(options: TestOptions, contextBuilder: ContextBuilder): void { const notes3 = specs.map((noteSpec) => new TabNote(noteSpec)); - notes1[0].addModifier(0, new Annotation('Text').setJustification(1).setVerticalJustification(1)); // U - notes1[1].addModifier(0, new Annotation('Text').setJustification(2).setVerticalJustification(2)); // D - notes1[2].addModifier(0, new Annotation('Text').setJustification(3).setVerticalJustification(3)); // U - notes1[3].addModifier(0, new Annotation('Text').setJustification(4).setVerticalJustification(4)); // D + notes1[0].addModifier(new Annotation('Text').setJustification(1).setVerticalJustification(1)); // U + notes1[1].addModifier(new Annotation('Text').setJustification(2).setVerticalJustification(2)); // D + notes1[2].addModifier(new Annotation('Text').setJustification(3).setVerticalJustification(3)); // U + notes1[3].addModifier(new Annotation('Text').setJustification(4).setVerticalJustification(4)); // D - notes2[0].addModifier(0, new Annotation('Text').setJustification(3).setVerticalJustification(1)); // U - notes2[1].addModifier(0, new Annotation('Text').setJustification(3).setVerticalJustification(2)); // D - notes2[2].addModifier(0, new Annotation('Text').setJustification(3).setVerticalJustification(3)); // U - notes2[3].addModifier(0, new Annotation('Text').setJustification(3).setVerticalJustification(4)); // D + notes2[0].addModifier(new Annotation('Text').setJustification(3).setVerticalJustification(1)); // U + notes2[1].addModifier(new Annotation('Text').setJustification(3).setVerticalJustification(2)); // D + notes2[2].addModifier(new Annotation('Text').setJustification(3).setVerticalJustification(3)); // U + notes2[3].addModifier(new Annotation('Text').setJustification(3).setVerticalJustification(4)); // D - notes3[0].addModifier(0, new Annotation('Text').setVerticalJustification(1)); // U - notes3[1].addModifier(0, new Annotation('Text').setVerticalJustification(2)); // D - notes3[2].addModifier(0, new Annotation('Text').setVerticalJustification(3)); // U - notes3[3].addModifier(0, new Annotation('Text').setVerticalJustification(4)); // D + notes3[0].addModifier(new Annotation('Text').setVerticalJustification(1)); // U + notes3[1].addModifier(new Annotation('Text').setVerticalJustification(2)); // D + notes3[2].addModifier(new Annotation('Text').setVerticalJustification(3)); // U + notes3[3].addModifier(new Annotation('Text').setVerticalJustification(4)); // D const voice = new Voice(Flow.TIME4_4).setMode(Voice.Mode.SOFT); diff --git a/tests/articulation_tests.ts b/tests/articulation_tests.ts index 2222359319..5b9216e498 100644 --- a/tests/articulation_tests.ts +++ b/tests/articulation_tests.ts @@ -68,10 +68,10 @@ function drawArticulations(options: TestOptions): void { f.StaveNote({ keys: ['c/4'], duration: 'q', stem_direction: 1 }), f.StaveNote({ keys: ['a/4'], duration: 'q', stem_direction: 1 }), ]; - notesBar1[0].addModifier(0, new Articulation(sym1).setPosition(4)); - notesBar1[1].addModifier(0, new Articulation(sym1).setPosition(4)); - notesBar1[2].addModifier(0, new Articulation(sym1).setPosition(3)); - notesBar1[3].addModifier(0, new Articulation(sym1).setPosition(3)); + notesBar1[0].addModifier(new Articulation(sym1).setPosition(4), 0); + notesBar1[1].addModifier(new Articulation(sym1).setPosition(4), 0); + notesBar1[2].addModifier(new Articulation(sym1).setPosition(3), 0); + notesBar1[3].addModifier(new Articulation(sym1).setPosition(3), 0); // Helper function to justify and draw a 4/4 voice x += formatAndDrawToWidth(x, y, width, notesBar1, Barline.type.NONE); @@ -83,10 +83,10 @@ function drawArticulations(options: TestOptions): void { f.StaveNote({ keys: ['c/5'], duration: 'q', stem_direction: -1 }), f.StaveNote({ keys: ['a/5'], duration: 'q', stem_direction: -1 }), ]; - notesBar2[0].addModifier(0, new Articulation(sym1).setPosition(3)); - notesBar2[1].addModifier(0, new Articulation(sym1).setPosition(3)); - notesBar2[2].addModifier(0, new Articulation(sym1).setPosition(4)); - notesBar2[3].addModifier(0, new Articulation(sym1).setPosition(4)); + notesBar2[0].addModifier(new Articulation(sym1).setPosition(3), 0); + notesBar2[1].addModifier(new Articulation(sym1).setPosition(3), 0); + notesBar2[2].addModifier(new Articulation(sym1).setPosition(4), 0); + notesBar2[3].addModifier(new Articulation(sym1).setPosition(4), 0); // Helper function to justify and draw a 4/4 voice x += formatAndDrawToWidth(x, y, width, notesBar2, Barline.type.DOUBLE); @@ -98,10 +98,10 @@ function drawArticulations(options: TestOptions): void { f.StaveNote({ keys: ['c/4'], duration: 'q', stem_direction: 1 }), f.StaveNote({ keys: ['a/4'], duration: 'q', stem_direction: 1 }), ]; - notesBar3[0].addModifier(0, new Articulation(sym2).setPosition(4)); - notesBar3[1].addModifier(0, new Articulation(sym2).setPosition(4)); - notesBar3[2].addModifier(0, new Articulation(sym2).setPosition(3)); - notesBar3[3].addModifier(0, new Articulation(sym2).setPosition(3)); + notesBar3[0].addModifier(new Articulation(sym2).setPosition(4), 0); + notesBar3[1].addModifier(new Articulation(sym2).setPosition(4), 0); + notesBar3[2].addModifier(new Articulation(sym2).setPosition(3), 0); + notesBar3[3].addModifier(new Articulation(sym2).setPosition(3), 0); // Helper function to justify and draw a 4/4 voice x += formatAndDrawToWidth(x, y, width, notesBar3, Barline.type.NONE); @@ -112,10 +112,10 @@ function drawArticulations(options: TestOptions): void { f.StaveNote({ keys: ['c/5'], duration: 'q', stem_direction: -1 }), f.StaveNote({ keys: ['a/5'], duration: 'q', stem_direction: -1 }), ]; - notesBar4[0].addModifier(0, new Articulation(sym2).setPosition(3)); - notesBar4[1].addModifier(0, new Articulation(sym2).setPosition(3)); - notesBar4[2].addModifier(0, new Articulation(sym2).setPosition(4)); - notesBar4[3].addModifier(0, new Articulation(sym2).setPosition(4)); + notesBar4[0].addModifier(new Articulation(sym2).setPosition(3), 0); + notesBar4[1].addModifier(new Articulation(sym2).setPosition(3), 0); + notesBar4[2].addModifier(new Articulation(sym2).setPosition(4), 0); + notesBar4[3].addModifier(new Articulation(sym2).setPosition(4), 0); // Helper function to justify and draw a 4/4 voice formatAndDrawToWidth(x, y, width, notesBar4, Barline.type.END); @@ -154,10 +154,10 @@ function drawFermata(options: TestOptions): void { f.StaveNote({ keys: ['c/4'], duration: 'q', stem_direction: -1 }), f.StaveNote({ keys: ['a/4'], duration: 'q', stem_direction: -1 }), ]; - notesBar1[0].addModifier(0, new Articulation(sym1).setPosition(3)); - notesBar1[1].addModifier(0, new Articulation(sym1).setPosition(3)); - notesBar1[2].addModifier(0, new Articulation(sym2).setPosition(4)); - notesBar1[3].addModifier(0, new Articulation(sym2).setPosition(4)); + notesBar1[0].addModifier(new Articulation(sym1).setPosition(3), 0); + notesBar1[1].addModifier(new Articulation(sym1).setPosition(3), 0); + notesBar1[2].addModifier(new Articulation(sym2).setPosition(4), 0); + notesBar1[3].addModifier(new Articulation(sym2).setPosition(4), 0); x += formatAndDrawToWidth(x, y, width, notesBar1, Barline.type.NONE); // bar 2 - juxtaposing second bar next to first bar @@ -167,10 +167,10 @@ function drawFermata(options: TestOptions): void { f.StaveNote({ keys: ['c/5'], duration: 'q', stem_direction: -1 }), f.StaveNote({ keys: ['a/5'], duration: 'q', stem_direction: -1 }), ]; - notesBar2[0].addModifier(0, new Articulation(sym1).setPosition(3)); - notesBar2[1].addModifier(0, new Articulation(sym1).setPosition(3)); - notesBar2[2].addModifier(0, new Articulation(sym2).setPosition(4)); - notesBar2[3].addModifier(0, new Articulation(sym2).setPosition(4)); + notesBar2[0].addModifier(new Articulation(sym1).setPosition(3), 0); + notesBar2[1].addModifier(new Articulation(sym1).setPosition(3), 0); + notesBar2[2].addModifier(new Articulation(sym2).setPosition(4), 0); + notesBar2[3].addModifier(new Articulation(sym2).setPosition(4), 0); // Helper function to justify and draw a 4/4 voice formatAndDrawToWidth(x, y, width, notesBar2, Barline.type.DOUBLE); @@ -185,53 +185,53 @@ function verticalPlacement(options: TestOptions, contextBuilder: ContextBuilder) const notes = [ staveNote({ keys: ['f/4'], duration: 'q' }) - .addModifier(0, new Articulation('a@u').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.BELOW)), + .addModifier(new Articulation('a@u').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a.').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.BELOW), 0), staveNote({ keys: ['g/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a@u').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.BELOW)), + .addModifier(new Articulation('a@u').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a.').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.BELOW), 0), staveNote({ keys: ['c/5'], duration: 'q' }) - .addModifier(0, new Articulation('a@u').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.BELOW)), + .addModifier(new Articulation('a@u').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a.').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.BELOW), 0), staveNote({ keys: ['f/4'], duration: 'q' }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a@u').setPosition(ModifierPosition.BELOW)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a@u').setPosition(ModifierPosition.BELOW), 0), staveNote({ keys: ['g/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a@u').setPosition(ModifierPosition.BELOW)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a@u').setPosition(ModifierPosition.BELOW), 0), staveNote({ keys: ['c/5'], duration: 'q' }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.BELOW)) - .addModifier(0, new Articulation('a@u').setPosition(ModifierPosition.BELOW)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.BELOW), 0) + .addModifier(new Articulation('a@u').setPosition(ModifierPosition.BELOW), 0), staveNote({ keys: ['a/5'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a@a').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)), + .addModifier(new Articulation('a@a').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0), staveNote({ keys: ['f/5'], duration: 'q' }) - .addModifier(0, new Articulation('a@a').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)), + .addModifier(new Articulation('a@a').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0), staveNote({ keys: ['b/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a@a').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)), + .addModifier(new Articulation('a@a').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0), staveNote({ keys: ['a/5'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a@a').setPosition(ModifierPosition.ABOVE)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a@a').setPosition(ModifierPosition.ABOVE), 0), staveNote({ keys: ['f/5'], duration: 'q' }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a@a').setPosition(ModifierPosition.ABOVE)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a@a').setPosition(ModifierPosition.ABOVE), 0), staveNote({ keys: ['b/4'], duration: 'q', stem_direction: Stem.DOWN }) - .addModifier(0, new Articulation('a.').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a-').setPosition(ModifierPosition.ABOVE)) - .addModifier(0, new Articulation('a@a').setPosition(ModifierPosition.ABOVE)), + .addModifier(new Articulation('a.').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a-').setPosition(ModifierPosition.ABOVE), 0) + .addModifier(new Articulation('a@a').setPosition(ModifierPosition.ABOVE), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -295,11 +295,11 @@ function drawArticulations2(options: TestOptions): void { ]; let i; for (i = 0; i < 16; i++) { - notesBar1[i].addModifier(0, new Articulation('a.').setPosition(4)); - notesBar1[i].addModifier(0, new Articulation('a>').setPosition(4)); + notesBar1[i].addModifier(new Articulation('a.').setPosition(4), 0); + notesBar1[i].addModifier(new Articulation('a>').setPosition(4), 0); if (i === 15) { - notesBar1[i].addModifier(0, new Articulation('a@u').setPosition(4)); + notesBar1[i].addModifier(new Articulation('a@u').setPosition(4), 0); } } const beam1 = new Beam(notesBar1.slice(0, 8)); @@ -330,11 +330,11 @@ function drawArticulations2(options: TestOptions): void { f.StaveNote({ keys: ['g/5'], duration: '16', stem_direction: -1 }), ]; for (i = 0; i < 16; i++) { - notesBar2[i].addModifier(0, new Articulation('a-').setPosition(3)); - notesBar2[i].addModifier(0, new Articulation('a^').setPosition(3)); + notesBar2[i].addModifier(new Articulation('a-').setPosition(3), 0); + notesBar2[i].addModifier(new Articulation('a^').setPosition(3), 0); if (i === 15) { - notesBar2[i].addModifier(0, new Articulation('a@u').setPosition(4)); + notesBar2[i].addModifier(new Articulation('a@u').setPosition(4), 0); } } const beam3 = new Beam(notesBar2.slice(0, 8)); @@ -343,9 +343,9 @@ function drawArticulations2(options: TestOptions): void { // bar 3 - juxtaposing second bar next to first bar const notesBar3 = [f.StaveNote({ keys: ['c/4'], duration: 'w', stem_direction: 1 })]; - notesBar3[0].addModifier(0, new Articulation('a-').setPosition(3)); - notesBar3[0].addModifier(0, new Articulation('a>').setPosition(3)); - notesBar3[0].addModifier(0, new Articulation('a@a').setPosition(3)); + notesBar3[0].addModifier(new Articulation('a-').setPosition(3), 0); + notesBar3[0].addModifier(new Articulation('a>').setPosition(3), 0); + notesBar3[0].addModifier(new Articulation('a@a').setPosition(3), 0); // Helper function to justify and draw a 4/4 voice x += formatAndDrawToWidth(x, y, width, notesBar3, Barline.type.NONE, []); @@ -362,7 +362,7 @@ function drawArticulations2(options: TestOptions): void { if (i > 1) { position1 = 4; } - notesBar4[i].addModifier(0, new Articulation('a-').setPosition(position1)); + notesBar4[i].addModifier(new Articulation('a-').setPosition(position1), 0); } // Helper function to justify and draw a 4/4 voice @@ -422,20 +422,20 @@ function tabNotes(options: TestOptions, contextBuilder: ContextBuilder): void { const notes3 = specs.map((noteSpec) => new TabNote(noteSpec)); - notes1[0].addModifier(0, new Articulation('a>').setPosition(3)); // U - notes1[1].addModifier(0, new Articulation('a>').setPosition(4)); // D - notes1[2].addModifier(0, new Articulation('a.').setPosition(3)); // U - notes1[3].addModifier(0, new Articulation('a.').setPosition(4)); // D + notes1[0].addModifier(new Articulation('a>').setPosition(3), 0); // U + notes1[1].addModifier(new Articulation('a>').setPosition(4), 0); // D + notes1[2].addModifier(new Articulation('a.').setPosition(3), 0); // U + notes1[3].addModifier(new Articulation('a.').setPosition(4), 0); // D - notes2[0].addModifier(0, new Articulation('a>').setPosition(3)); - notes2[1].addModifier(0, new Articulation('a>').setPosition(4)); - notes2[2].addModifier(0, new Articulation('a.').setPosition(3)); - notes2[3].addModifier(0, new Articulation('a.').setPosition(4)); + notes2[0].addModifier(new Articulation('a>').setPosition(3), 0); + notes2[1].addModifier(new Articulation('a>').setPosition(4), 0); + notes2[2].addModifier(new Articulation('a.').setPosition(3), 0); + notes2[3].addModifier(new Articulation('a.').setPosition(4), 0); - notes3[0].addModifier(0, new Articulation('a>').setPosition(3)); - notes3[1].addModifier(0, new Articulation('a>').setPosition(4)); - notes3[2].addModifier(0, new Articulation('a.').setPosition(3)); - notes3[3].addModifier(0, new Articulation('a.').setPosition(4)); + notes3[0].addModifier(new Articulation('a>').setPosition(3), 0); + notes3[1].addModifier(new Articulation('a>').setPosition(4), 0); + notes3[2].addModifier(new Articulation('a.').setPosition(3), 0); + notes3[3].addModifier(new Articulation('a.').setPosition(4), 0); const voice = new Voice(Flow.TIME4_4).setMode(Voice.Mode.SOFT); diff --git a/tests/bach_tests.ts b/tests/bach_tests.ts index 3ed7a89015..3c5a8070f9 100644 --- a/tests/bach_tests.ts +++ b/tests/bach_tests.ts @@ -64,7 +64,7 @@ function minuet1(options: TestOptions): void { system.addConnector('singleRight'); system.addConnector('singleLeft'); - id('m1a').addModifier(0, f.Fingering({ number: '5' })); + id('m1a').addModifier(f.Fingering({ number: '5' }), 0); /* Measure 2 */ system = appendSystem(150); @@ -72,9 +72,9 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice(notes('B3/h.', { clef: 'bass' }))] }); system.addConnector('singleRight'); - id('m2a').addModifier(0, f.Articulation({ type: 'a.', position: 'above' })); - id('m2b').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); - id('m2c').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); + id('m2a').addModifier(f.Articulation({ type: 'a.', position: 'above' }), 0); + id('m2b').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); + id('m2c').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); f.Curve({ from: id('m1a'), @@ -92,7 +92,7 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice([notes('E5/q[id="m3a"]'), beam(notes('C5/8, D5, E5, F5', { stem: 'down' }))].reduce(concat))], }); - id('m3a').addModifier(0, f.Fingering({ number: '3', position: 'above' })); + id('m3a').addModifier(f.Fingering({ number: '3', position: 'above' }), 0); system.addStave({ voices: [voice(notes('C4/h.', { clef: 'bass' }))] }); system.addConnector('singleRight'); @@ -104,9 +104,9 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice(notes('B3/h.', { clef: 'bass' }))] }); system.addConnector('singleRight'); - id('m4a').addModifier(0, f.Articulation({ type: 'a.', position: 'above' })); - id('m4b').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); - id('m4c').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); + id('m4a').addModifier(f.Articulation({ type: 'a.', position: 'above' }), 0); + id('m4b').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); + id('m4c').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); f.Curve({ from: id('m3a'), @@ -124,7 +124,7 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice([notes('C5/q[id="m5a"]'), beam(notes('D5/8, C5, B4, A4', { stem: 'down' }))].reduce(concat))], }); - id('m5a').addModifier(0, f.Fingering({ number: '4', position: 'above' })); + id('m5a').addModifier(f.Fingering({ number: '4', position: 'above' }), 0); system.addStave({ voices: [voice(notes('A3/h.', { clef: 'bass' }))] }); system.addConnector('singleRight'); @@ -174,9 +174,9 @@ function minuet1(options: TestOptions): void { system.addConnector('singleRight'); system.addConnector('singleLeft'); - id('m7a').addModifier(0, f.Fingering({ number: '2', position: 'below' })); - id('m7b').addModifier(0, f.Fingering({ number: '1' })); - id('m7c').addModifier(0, f.Fingering({ number: '3', position: 'above' })); + id('m7a').addModifier(f.Fingering({ number: '2', position: 'below' }), 0); + id('m7b').addModifier(f.Fingering({ number: '1' }), 0); + id('m7c').addModifier(f.Fingering({ number: '3', position: 'above' }), 0); /* Measure 8 */ system = appendSystem(180); @@ -192,8 +192,8 @@ function minuet1(options: TestOptions): void { }); system.addConnector('singleRight'); - id('m8b').addModifier(0, f.Fingering({ number: '1', position: 'above' })); - id('m8c').addModifier(0, f.GraceNoteGroup({ notes: [grace] })); + id('m8b').addModifier(f.Fingering({ number: '1', position: 'above' }), 0); + id('m8c').addModifier(f.GraceNoteGroup({ notes: [grace] }), 0); f.Curve({ from: id('m7a'), @@ -224,7 +224,7 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice(notes('B3/h, A3/q', { clef: 'bass' }))] }); system.addConnector('singleRight'); - id('m9a').addModifier(0, f.Fingering({ number: '5' })); + id('m9a').addModifier(f.Fingering({ number: '5' }), 0); /* Measure 10 */ system = appendSystem(170); @@ -232,10 +232,10 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice(notes('G3/q[id="m10d"], B3, G3', { clef: 'bass' }))] }); system.addConnector('singleRight'); - id('m10a').addModifier(0, f.Articulation({ type: 'a.', position: 'above' })); - id('m10b').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); - id('m10c').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); - id('m10d').addModifier(0, f.Fingering({ number: '4' })); + id('m10a').addModifier(f.Articulation({ type: 'a.', position: 'above' }), 0); + id('m10b').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); + id('m10c').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); + id('m10d').addModifier(f.Fingering({ number: '4' }), 0); f.Curve({ from: id('m9a'), @@ -253,7 +253,7 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice([notes('E5/q[id="m11a"]'), beam(notes('C5/8, D5, E5, F5', { stem: 'down' }))].reduce(concat))], }); - id('m11a').addModifier(0, f.Fingering({ number: '3', position: 'above' })); + id('m11a').addModifier(f.Fingering({ number: '3', position: 'above' }), 0); system.addStave({ voices: [voice(notes('C4/h.', { clef: 'bass' }))] }); system.addConnector('singleRight'); @@ -271,12 +271,12 @@ function minuet1(options: TestOptions): void { }); system.addConnector('singleRight'); - id('m12a').addModifier(0, f.Articulation({ type: 'a.', position: 'above' })); - id('m12b').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); - id('m12c').addModifier(0, f.Articulation({ type: 'a.', position: 'below' })); + id('m12a').addModifier(f.Articulation({ type: 'a.', position: 'above' }), 0); + id('m12b').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); + id('m12c').addModifier(f.Articulation({ type: 'a.', position: 'below' }), 0); - id('m12d').addModifier(0, f.Fingering({ number: '2', position: 'above' })); - id('m12e').addModifier(0, f.Fingering({ number: '4', position: 'above' })); + id('m12d').addModifier(f.Fingering({ number: '2', position: 'above' }), 0); + id('m12e').addModifier(f.Fingering({ number: '4', position: 'above' }), 0); f.Curve({ from: id('m11a'), @@ -314,9 +314,9 @@ function minuet1(options: TestOptions): void { system.addConnector('singleRight'); system.addConnector('singleLeft'); - id('m13a').addModifier(0, f.Fingering({ number: '4', position: 'above' })); - id('m13b').addModifier(0, f.Fingering({ number: '1' })); - id('m13c').addModifier(0, f.Fingering({ number: '3', position: 'above' })); + id('m13a').addModifier(f.Fingering({ number: '4', position: 'above' }), 0); + id('m13b').addModifier(f.Fingering({ number: '1' }), 0); + id('m13c').addModifier(f.Fingering({ number: '3', position: 'above' }), 0); /* Measure 14 */ system = appendSystem(180); @@ -331,8 +331,8 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice(notes('g3/h[id="m14a"], b3/q[id="m14b"]', { clef: 'bass' }))] }); system.addConnector('singleRight'); - id('m14a').addModifier(0, f.Fingering({ number: '2' })); - id('m14b').addModifier(0, f.Fingering({ number: '1' })); + id('m14a').addModifier(f.Fingering({ number: '2' }), 0); + id('m14b').addModifier(f.Fingering({ number: '1' }), 0); /* Measure 15 */ system = appendSystem(180); @@ -347,8 +347,8 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice(notes('c4/q[id="m15b"], d4, d3', { clef: 'bass' }))] }); system.addConnector('singleRight'); - id('m15a').addModifier(0, f.Fingering({ number: '2' })); - id('m15b').addModifier(0, f.Fingering({ number: '2' })); + id('m15a').addModifier(f.Fingering({ number: '2' }), 0); + id('m15b').addModifier(f.Fingering({ number: '2' }), 0); /* Measure 16 */ system = appendSystem(130); @@ -363,8 +363,8 @@ function minuet1(options: TestOptions): void { .setEndBarType(BarlineType.REPEAT_END); system.addConnector('boldDoubleRight'); - id('m16a').addModifier(0, f.Fingering({ number: '1' })); - id('m16b').addModifier(0, f.Fingering({ number: '1' })); + id('m16a').addModifier(f.Fingering({ number: '1' }), 0); + id('m16b').addModifier(f.Fingering({ number: '1' }), 0); f.Curve({ from: id('m13a'), @@ -397,7 +397,7 @@ function minuet1(options: TestOptions): void { system.addConnector('boldDoubleLeft'); system.addConnector('singleRight'); - id('m17a').addModifier(0, f.Fingering({ number: '5', position: 'above' })); + id('m17a').addModifier(f.Fingering({ number: '5', position: 'above' }), 0); /* Measure 18 */ system = appendSystem(180); @@ -412,7 +412,7 @@ function minuet1(options: TestOptions): void { system.addStave({ voices: [voice(notes('f3/h.', { clef: 'bass' }))] }); system.addConnector('singleRight'); - id('m18a').addModifier(0, f.Fingering({ number: '4', position: 'above' })); + id('m18a').addModifier(f.Fingering({ number: '4', position: 'above' }), 0); f.Curve({ from: id('m17a'), diff --git a/tests/barline_tests.ts b/tests/barline_tests.ts index 68d16dd935..e07a2a3493 100644 --- a/tests/barline_tests.ts +++ b/tests/barline_tests.ts @@ -36,8 +36,8 @@ function simple(options: TestOptions): void { f.BarNote({ type: 'single' }), f .StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: -1, duration: '2' }) - .addModifier(0, f.Accidental({ type: 'n' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'n' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), ]; const voice = f.Voice().addTickables(notes); @@ -56,8 +56,8 @@ function style(options: TestOptions): void { f.BarNote({ type: 'single' }), f .StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: -1, duration: '2' }) - .addModifier(0, f.Accidental({ type: 'n' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'n' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), ]; notes[1].setStyle({ shadowBlur: 15, shadowColor: 'blue', fillStyle: 'blue', strokeStyle: 'blue' }); diff --git a/tests/beam_tests.ts b/tests/beam_tests.ts index 506d4776b9..82473c7f4e 100644 --- a/tests/beam_tests.ts +++ b/tests/beam_tests.ts @@ -748,13 +748,13 @@ function complexWithAnnotation(options: TestOptions): void { const notes1 = s1.map((struct) => factory .StaveNote(struct) // - .addModifier(0, factory.Annotation({ text: '1', vJustify: AnnotationVerticalJustify.TOP, font })) + .addModifier(factory.Annotation({ text: '1', vJustify: AnnotationVerticalJustify.TOP, font }), 0) ); const notes2 = s2.map((struct) => factory .StaveNote(struct) // - .addModifier(0, factory.Annotation({ text: '3', vJustify: AnnotationVerticalJustify.BOTTOM, font })) + .addModifier(factory.Annotation({ text: '3', vJustify: AnnotationVerticalJustify.BOTTOM, font }), 0) ); factory.Beam({ notes: notes1 }); @@ -794,10 +794,10 @@ function complexWithArticulation(options: TestOptions): void { ]; const notes1 = s1.map((struct) => - f.StaveNote(struct).addModifier(0, f.Articulation({ type: 'am', position: 'above' })) + f.StaveNote(struct).addModifier(f.Articulation({ type: 'am', position: 'above' }), 0) ); const notes2 = s2.map((struct) => - f.StaveNote(struct).addModifier(0, f.Articulation({ type: 'a>', position: 'below' })) + f.StaveNote(struct).addModifier(f.Articulation({ type: 'a>', position: 'below' }), 0) ); f.Beam({ notes: notes1 }); diff --git a/tests/bend_tests.ts b/tests/bend_tests.ts index 41a1481533..a5743c31db 100644 --- a/tests/bend_tests.ts +++ b/tests/bend_tests.ts @@ -52,8 +52,8 @@ function doubleBends(options: TestOptions, contextBuilder: ContextBuilder): void ], duration: 'q', }) - .addModifier(0, bendWithText('Full')) - .addModifier(1, bendWithText('1/2')), + .addModifier(bendWithText('Full'), 0) + .addModifier(bendWithText('1/2'), 1), note({ positions: [ @@ -62,8 +62,8 @@ function doubleBends(options: TestOptions, contextBuilder: ContextBuilder): void ], duration: 'q', }) - .addModifier(0, bendWithText('1/4')) - .addModifier(1, bendWithText('1/4')), + .addModifier(bendWithText('1/4'), 0) + .addModifier(bendWithText('1/4'), 1), // This note is not visible because it is pushed off to the right by the ctx.scale(1.5, 1.5) at the top. note({ @@ -93,8 +93,8 @@ function doubleBendsWithRelease(options: TestOptions, contextBuilder: ContextBui ], duration: 'q', }) - .addModifier(0, bendWithText('1/2', true)) - .addModifier(1, bendWithText('Full', true)), + .addModifier(bendWithText('1/2', true), 0) + .addModifier(bendWithText('Full', true), 1), note({ positions: [ @@ -104,9 +104,9 @@ function doubleBendsWithRelease(options: TestOptions, contextBuilder: ContextBui ], duration: 'q', }) - .addModifier(0, bendWithText('1/4', true)) - .addModifier(1, bendWithText('Monstrous', true)) - .addModifier(2, bendWithText('1/4', true)), + .addModifier(bendWithText('1/4', true), 0) + .addModifier(bendWithText('Monstrous', true), 1) + .addModifier(bendWithText('1/4', true), 2), note({ positions: [{ str: 4, fret: 7 }], @@ -146,8 +146,8 @@ function reverseBends(options: TestOptions, contextBuilder: ContextBuilder): voi ], duration: 'w', }) - .addModifier(1, bendWithText('Full')) - .addModifier(0, bendWithText('1/2')), + .addModifier(bendWithText('Full'), 1) + .addModifier(bendWithText('1/2'), 0), note({ positions: [ @@ -156,8 +156,8 @@ function reverseBends(options: TestOptions, contextBuilder: ContextBuilder): voi ], duration: 'w', }) - .addModifier(1, bendWithText('1/4')) - .addModifier(0, bendWithText('1/4')), + .addModifier(bendWithText('1/4'), 1) + .addModifier(bendWithText('1/4'), 0), note({ positions: [{ str: 4, fret: 7 }], @@ -202,7 +202,7 @@ function bendPhrase(options: TestOptions, contextBuilder: ContextBuilder): void note({ positions: [{ str: 2, fret: 10 }], duration: 'w', - }).addModifier(0, bend1), + }).addModifier(bend1, 0), ]; for (let i = 0; i < notes.length; ++i) { @@ -254,8 +254,8 @@ function whackoBends(options: TestOptions, contextBuilder: ContextBuilder): void ], duration: 'q', }) - .addModifier(0, bendWithPhrase(phrase1)) - .addModifier(1, bendWithPhrase(phrase2)), + .addModifier(bendWithPhrase(phrase1), 0) + .addModifier(bendWithPhrase(phrase2), 1), ]; Formatter.FormatAndDraw(ctx, stave, notes); diff --git a/tests/chordsymbol_tests.ts b/tests/chordsymbol_tests.ts index 1d16db766f..d3bd18dd83 100644 --- a/tests/chordsymbol_tests.ts +++ b/tests/chordsymbol_tests.ts @@ -32,7 +32,7 @@ const subscript = { symbolModifier: ChordSymbol.symbolModifiers.SUBSCRIPT }; // Helper function for creating StaveNotes. const note = (factory: Factory, keys: string[], duration: string, chordSymbol: ChordSymbol) => - factory.StaveNote({ keys, duration }).addModifier(0, chordSymbol); + factory.StaveNote({ keys, duration }).addModifier(chordSymbol, 0); function fontSize(options: TestOptions): void { const f = VexFlowTests.makeFactory(options, 750, 580); @@ -199,7 +199,7 @@ function top(options: TestOptions): void { function draw(c1: ChordSymbol, c2: ChordSymbol, y: number) { const stave = f.Stave({ x: 10, y, width: 450 }).addClef('treble').setContext(ctx).draw(); const notes = [ - note(f, ['e/4', 'a/4', 'd/5'], 'h', c1).addModifier(0, new Accidental('b')), + note(f, ['e/4', 'a/4', 'd/5'], 'h', c1).addModifier(new Accidental('b'), 0), note(f, ['c/4', 'e/4', 'b/4'], 'h', c2), ]; const score = f.EasyScore(); @@ -253,7 +253,7 @@ function topJustify(options: TestOptions): void { const stave = new Stave(10, y, 450).addClef('treble').setContext(ctx).draw(); const notes = [ - note(f, ['e/4', 'a/4', 'd/5'], 'h', chord1).addModifier(0, new Accidental('b')), + note(f, ['e/4', 'a/4', 'd/5'], 'h', chord1).addModifier(new Accidental('b'), 0), note(f, ['c/4', 'e/4', 'B/4'], 'h', chord2), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -304,9 +304,9 @@ function bottom(options: TestOptions): void { const notes = [ note(f, ['c/4', 'f/4', 'a/4'], 'q', chords[0]), - note(f, ['c/4', 'e/4', 'b/4'], 'q', chords[1]).addModifier(2, new Accidental('b')), + note(f, ['c/4', 'e/4', 'b/4'], 'q', chords[1]).addModifier(new Accidental('b'), 2), note(f, ['c/4', 'e/4', 'g/4'], 'q', chords[2]), - note(f, ['c/4', 'f/4', 'a/4'], 'q', chords[3]).addModifier(1, new Accidental('#')), + note(f, ['c/4', 'f/4', 'a/4'], 'q', chords[3]).addModifier(new Accidental('#'), 1), ]; Formatter.FormatAndDraw(ctx, stave, notes); } @@ -332,14 +332,14 @@ function bottomStemDown(options: TestOptions): void { function draw(chords: ChordSymbol[], y: number) { // Helper function to create a StaveNote with a ChordSymbol and the stem pointing down. const note = (keys: string[], duration: string, chordSymbol: ChordSymbol) => - new StaveNote({ keys, duration, stem_direction: -1 }).addModifier(0, chordSymbol); + new StaveNote({ keys, duration, stem_direction: -1 }).addModifier(chordSymbol, 0); const stave = new Stave(10, y, 400).addClef('treble').setContext(ctx).draw(); const notes = [ note(['c/4', 'f/4', 'a/4'], 'q', chords[0]), - note(['c/4', 'e/4', 'b/4'], 'q', chords[1]).addModifier(2, new Accidental('b')), + note(['c/4', 'e/4', 'b/4'], 'q', chords[1]).addModifier(new Accidental('b'), 2), note(['c/4', 'e/4', 'g/4'], 'q', chords[2]), - note(['c/4', 'f/4', 'a/4'], 'q', chords[3]).addModifier(1, new Accidental('#')), + note(['c/4', 'f/4', 'a/4'], 'q', chords[3]).addModifier(new Accidental('#'), 1), ]; Formatter.FormatAndDraw(ctx, stave, notes); } @@ -365,14 +365,14 @@ function doubleBottom(options: TestOptions): void { function draw(chords: ChordSymbol[], chords2: ChordSymbol[], y: number) { // Helper function to create a StaveNote with two ChordSymbols attached. const note = (keys: string[], duration: string, chordSymbol1: ChordSymbol, chordSymbol2: ChordSymbol) => - new StaveNote({ keys, duration }).addModifier(0, chordSymbol1).addModifier(0, chordSymbol2); + new StaveNote({ keys, duration }).addModifier(chordSymbol1, 0).addModifier(chordSymbol2, 0); const stave = new Stave(10, y, 450).addClef('treble').setContext(ctx).draw(); const notes = [ note(['c/4', 'f/4', 'a/4'], 'q', chords[0], chords2[0]), - note(['c/4', 'e/4', 'b/4'], 'q', chords[1], chords2[1]).addModifier(2, new Accidental('b')), + note(['c/4', 'e/4', 'b/4'], 'q', chords[1], chords2[1]).addModifier(new Accidental('b'), 2), note(['c/4', 'e/4', 'g/4'], 'q', chords[2], chords2[2]), - note(['c/4', 'f/4', 'a/4'], 'q', chords[3], chords2[3]).addModifier(1, new Accidental('#')), + note(['c/4', 'f/4', 'a/4'], 'q', chords[3], chords2[3]).addModifier(new Accidental('#'), 1), ]; Formatter.FormatAndDraw(ctx, stave, notes); } diff --git a/tests/formatter/tests.js b/tests/formatter/tests.js index dedc99dcb0..0986311d54 100644 --- a/tests/formatter/tests.js +++ b/tests/formatter/tests.js @@ -50,10 +50,10 @@ function subgroup(el, iterations, params) { f.StaveConnector({ top_stave: stave1, bottom_stave: stave2, type: 'singleRight' }); function addAccidental(note, acc) { - return note.addModifier(0, f.Accidental({ type: acc })); + return note.addModifier(f.Accidental({ type: acc }), 0); } function addSubGroup(note, subNotes) { - return note.addModifier(0, f.NoteSubGroup({ notes: subNotes })); + return note.addModifier(f.NoteSubGroup({ notes: subNotes }), 0); } f.Beam({ notes: notes3.slice(1, 4) }); diff --git a/tests/formatter_tests.ts b/tests/formatter_tests.ts index 102d15d7e1..ffee9a175a 100644 --- a/tests/formatter_tests.ts +++ b/tests/formatter_tests.ts @@ -334,17 +334,17 @@ function alignedMixedElements(options: TestOptions): void { const stave = new Stave(10, 40, 400); const notes = [ new StaveNote({ keys: ['c/5'], duration: '8' }) - .addModifier(0, new Accidental('##')) - .addModifier(0, new FretHandFinger('4').setPosition(4)) - .addModifier(0, new StringNumber('3').setPosition(4)) - .addModifier(0, new Articulation('a.').setPosition(4)) - .addModifier(0, new Articulation('a>').setPosition(4)) - .addModifier(0, new Articulation('a^').setPosition(4)) - .addModifier(0, new Articulation('am').setPosition(4)) - .addModifier(0, new Articulation('a@u').setPosition(4)) - .addModifier(0, new Annotation('yyyy').setVerticalJustification(3)) - .addModifier(0, new Annotation('xxxx').setVerticalJustification(3).setFont('Sans-serif', 20, '')) - .addModifier(0, new Annotation('ttt').setVerticalJustification(3).setFont('Sans-serif', 20, '')), + .addModifier(new Accidental('##'), 0) + .addModifier(new FretHandFinger('4').setPosition(4), 0) + .addModifier(new StringNumber('3').setPosition(4), 0) + .addModifier(new Articulation('a.').setPosition(4), 0) + .addModifier(new Articulation('a>').setPosition(4), 0) + .addModifier(new Articulation('a^').setPosition(4), 0) + .addModifier(new Articulation('am').setPosition(4), 0) + .addModifier(new Articulation('a@u').setPosition(4), 0) + .addModifier(new Annotation('yyyy').setVerticalJustification(3), 0) + .addModifier(new Annotation('xxxx').setVerticalJustification(3).setFont('Sans-serif', 20, ''), 0) + .addModifier(new Annotation('ttt').setVerticalJustification(3).setFont('Sans-serif', 20, ''), 0), new StaveNote({ keys: ['c/5'], duration: '8' }), new StaveNote({ keys: ['c/5'], duration: '8' }), ]; @@ -415,7 +415,7 @@ function notesWithTab(options: TestOptions): void { f.TabStave({ y: y }).addTabGlyph().setNoteStartX(stave.getNoteStartX()); const tabVoice = score.voice([ - f.TabNote({ positions: [{ str: 3, fret: 6 }], duration: '2' }).addModifier(0, new Bend('Full')), + f.TabNote({ positions: [{ str: 3, fret: 6 }], duration: '2' }).addModifier(new Bend('Full'), 0), f .TabNote({ positions: [ @@ -424,7 +424,7 @@ function notesWithTab(options: TestOptions): void { ], duration: '8', }) - .addModifier(1, new Bend('Unison')), + .addModifier(new Bend('Unison'), 1), f.TabNote({ positions: [{ str: 3, fret: 7 }], duration: '8' }), f.TabNote({ positions: [ @@ -765,7 +765,6 @@ function annotations(options: TestOptions): void { } if (sm.lyrics.length > iii) { note.addModifier( - 0, new Annotation(sm.lyrics[iii]) .setVerticalJustification(Annotation.VerticalJustify.BOTTOM) .setFont(Font.SERIF, 12, FontWeight.NORMAL) diff --git a/tests/ghostnote_tests.ts b/tests/ghostnote_tests.ts index 9f4624a5d0..5aa240d694 100644 --- a/tests/ghostnote_tests.ts +++ b/tests/ghostnote_tests.ts @@ -55,7 +55,7 @@ const basic = createTest((f: Factory, score: EasyScore) => { f.GhostNote({ duration: '4' }), f.StaveNote({ keys: ['e/4'], stem_direction: -1, duration: '4' }), f.GhostNote({ duration: '8' }), - f.StaveNote({ keys: ['d/4'], stem_direction: -1, duration: '8' }).addModifier(0, f.Accidental({ type: '##' })), + f.StaveNote({ keys: ['d/4'], stem_direction: -1, duration: '8' }).addModifier(f.Accidental({ type: '##' }), 0), f.StaveNote({ keys: ['c/4'], stem_direction: -1, duration: '8' }), f.StaveNote({ keys: ['c/4'], stem_direction: -1, duration: '8' }), ], @@ -101,7 +101,7 @@ const dotted = createTest((f: Factory, score: EasyScore) => { const notes2 = voice2.getTickables() as StemmableNote[]; const addAccidental = (note: StemmableNote, type: string) => - (note as StaveNote).addModifier(0, f.Accidental({ type })); + (note as StaveNote).addModifier(f.Accidental({ type }), 0); addAccidental(notes1[1], 'bb'); addAccidental(notes1[4], '#'); diff --git a/tests/glyphnote_tests.ts b/tests/glyphnote_tests.ts index c90fab08b5..063129630d 100644 --- a/tests/glyphnote_tests.ts +++ b/tests/glyphnote_tests.ts @@ -55,8 +55,8 @@ function chordChanges(options: TestOptions): void { .addGlyphOrText('#11', { symbolModifier: ChordSymbol.symbolModifiers.SUPERSCRIPT }) .addGlyphOrText('b9', { symbolModifier: ChordSymbol.symbolModifiers.SUBSCRIPT }); - notes[0].addModifier(0, chord1); - notes[2].addModifier(0, chord2); + notes[0].addModifier(chord1, 0); + notes[2].addModifier(chord2, 0); const voice = score.voice(notes); system.addStave({ voices: [voice], debugNoteMetrics: options.params.debug }); system.addConnector().setType(StaveConnector.type.BRACKET); diff --git a/tests/gracenote_tests.ts b/tests/gracenote_tests.ts index 3787e7c191..49e9797613 100644 --- a/tests/gracenote_tests.ts +++ b/tests/gracenote_tests.ts @@ -75,27 +75,27 @@ function basic(options: TestOptions): void { { keys: ['g/4'], duration: '16' }, ].map(f.GraceNote.bind(f)); - gracenotes[1].addModifier(0, f.Accidental({ type: '##' })); - gracenotes3[3].addModifier(0, f.Accidental({ type: 'bb' })); + gracenotes[1].addModifier(f.Accidental({ type: '##' }), 0); + gracenotes3[3].addModifier(f.Accidental({ type: 'bb' }), 0); Dot.buildAndAttach([gracenotes4[0]], { all: true }); const notes = [ f .StaveNote({ keys: ['b/4'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes }).beamNotes(), 0), f .StaveNote({ keys: ['c/5'], duration: '4', auto_stem: true }) - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes1 }).beamNotes()), + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.GraceNoteGroup({ notes: gracenotes1 }).beamNotes(), 0), f .StaveNote({ keys: ['c/5', 'd/5'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes2 }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes2 }).beamNotes(), 0), f .StaveNote({ keys: ['a/4'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes3 }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes3 }).beamNotes(), 0), f .StaveNote({ keys: ['a/4'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes4 }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes4 }).beamNotes(), 0), ]; const voice = f.Voice().setStrict(false).addTickables(notes); @@ -136,28 +136,28 @@ function basicSlurred(options: TestOptions): void { { keys: ['a/4'], duration: '16' }, ].map(f.GraceNote.bind(f)); - gracenotes0[1].addModifier(0, f.Accidental({ type: '#' })); - gracenotes3[3].addModifier(0, f.Accidental({ type: 'b' })); - gracenotes3[2].addModifier(0, f.Accidental({ type: 'n' })); + gracenotes0[1].addModifier(f.Accidental({ type: '#' }), 0); + gracenotes3[3].addModifier(f.Accidental({ type: 'b' }), 0); + gracenotes3[2].addModifier(f.Accidental({ type: 'n' }), 0); Dot.buildAndAttach([gracenotes4[0]], { all: true }); const notes = [ f .StaveNote({ keys: ['b/4'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes0, slur: true }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes0, slur: true }).beamNotes(), 0), f .StaveNote({ keys: ['c/5'], duration: '4', auto_stem: true }) - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes1, slur: true }).beamNotes()), + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.GraceNoteGroup({ notes: gracenotes1, slur: true }).beamNotes(), 0), f .StaveNote({ keys: ['c/5', 'd/5'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes2, slur: true }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes2, slur: true }).beamNotes(), 0), f .StaveNote({ keys: ['a/4'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes3, slur: true }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes3, slur: true }).beamNotes(), 0), f .StaveNote({ keys: ['a/4'], duration: '4', auto_stem: true }) - .addModifier(0, f.GraceNoteGroup({ notes: gracenotes4, slur: true }).beamNotes()), + .addModifier(f.GraceNoteGroup({ notes: gracenotes4, slur: true }).beamNotes(), 0), f.StaveNote({ keys: ['a/4'], duration: '4', auto_stem: true }), ]; @@ -204,7 +204,7 @@ function stem(options: TestOptions): void { const staveNotes = createNotes(f.StaveNote.bind(f), keys, stem_direction); const gracenotes = createNotes(f.GraceNote.bind(f), keys, stem_direction); // Add a bunch of GraceNotes in front of the first StaveNote. - staveNotes[0].addModifier(0, f.GraceNoteGroup({ notes: gracenotes })); + staveNotes[0].addModifier(f.GraceNoteGroup({ notes: gracenotes }), 0); return staveNotes; } @@ -253,7 +253,7 @@ function stemWithBeamed(options: TestOptions): void { const gracenotes = createBeamedNotes(f.GraceNote.bind(f), keys, stem_direction, beams, true, notesToBeam); const graceNoteGroup = f.GraceNoteGroup({ notes: gracenotes }); notesToBeam.map(graceNoteGroup.beamNotes.bind(graceNoteGroup)); - bnotes[0].addModifier(0, graceNoteGroup); + bnotes[0].addModifier(graceNoteGroup, 0); return bnotes; } @@ -306,7 +306,7 @@ function slash(options: TestOptions): void { const graceNoteGroup = f.GraceNoteGroup({ notes: graceNotes }); notesToBeam.forEach((notes) => graceNoteGroup.beamNotes(notes)); - notes[0].addModifier(0, graceNoteGroup); + notes[0].addModifier(graceNoteGroup, 0); return notes; } @@ -352,7 +352,7 @@ function slashWithBeams(options: TestOptions): void { graceNotesToBeam.forEach((g) => graceNoteGroup.beamNotes(g)); - notes[0].addModifier(0, graceNoteGroup); + notes[0].addModifier(graceNoteGroup, 0); return notes; } @@ -409,12 +409,12 @@ function multipleVoices(options: TestOptions): void { ].map(f.GraceNote.bind(f)); gracenotes2[0].setStemDirection(-1); - gracenotes2[0].addModifier(0, f.Accidental({ type: '#' })); + gracenotes2[0].addModifier(f.Accidental({ type: '#' }), 0); - notes[1].addModifier(0, f.GraceNoteGroup({ notes: gracenotes4 }).beamNotes()); - notes[3].addModifier(0, f.GraceNoteGroup({ notes: gracenotes1 })); - notes2[1].addModifier(0, f.GraceNoteGroup({ notes: gracenotes2 }).beamNotes()); - notes2[5].addModifier(0, f.GraceNoteGroup({ notes: gracenotes3 }).beamNotes()); + notes[1].addModifier(f.GraceNoteGroup({ notes: gracenotes4 }).beamNotes(), 0); + notes[3].addModifier(f.GraceNoteGroup({ notes: gracenotes1 }), 0); + notes2[1].addModifier(f.GraceNoteGroup({ notes: gracenotes2 }).beamNotes(), 0); + notes2[5].addModifier(f.GraceNoteGroup({ notes: gracenotes3 }).beamNotes(), 0); const voice = f.Voice().setStrict(false).addTickables(notes); @@ -474,12 +474,12 @@ function multipleVoicesMultipleDraws(options: TestOptions): void { ].map(f.GraceNote.bind(f)); gracenotes2[0].setStemDirection(-1); - gracenotes2[0].addModifier(0, f.Accidental({ type: '#' })); + gracenotes2[0].addModifier(f.Accidental({ type: '#' }), 0); - notes[1].addModifier(0, f.GraceNoteGroup({ notes: gracenotes4 }).beamNotes()); - notes[3].addModifier(0, f.GraceNoteGroup({ notes: gracenotes1 })); - notes2[1].addModifier(0, f.GraceNoteGroup({ notes: gracenotes2 }).beamNotes()); - notes2[5].addModifier(0, f.GraceNoteGroup({ notes: gracenotes3 }).beamNotes()); + notes[1].addModifier(f.GraceNoteGroup({ notes: gracenotes4 }).beamNotes(), 0); + notes[3].addModifier(f.GraceNoteGroup({ notes: gracenotes1 }), 0); + notes2[1].addModifier(f.GraceNoteGroup({ notes: gracenotes2 }).beamNotes(), 0); + notes2[5].addModifier(f.GraceNoteGroup({ notes: gracenotes3 }).beamNotes(), 0); const voice = f.Voice().setStrict(false).addTickables(notes); diff --git a/tests/gracetabnote_tests.ts b/tests/gracetabnote_tests.ts index 2aa91f42d9..78aea2c54b 100644 --- a/tests/gracetabnote_tests.ts +++ b/tests/gracetabnote_tests.ts @@ -66,10 +66,10 @@ function simple(options: TestOptions, contextBuilder: ContextBuilder): void { gracenotes2[0].setGhost(true); const gracenotes3 = gracenote_group3.map(graceTabNote); - note0.addModifier(0, new GraceNoteGroup(gracenotes0)); - note1.addModifier(0, new GraceNoteGroup(gracenotes1)); - note2.addModifier(0, new GraceNoteGroup(gracenotes2)); - note3.addModifier(0, new GraceNoteGroup(gracenotes3)); + note0.addModifier(new GraceNoteGroup(gracenotes0), 0); + note1.addModifier(new GraceNoteGroup(gracenotes1), 0); + note2.addModifier(new GraceNoteGroup(gracenotes2), 0); + note3.addModifier(new GraceNoteGroup(gracenotes3), 0); const voice = new Voice(Flow.TIME4_4); voice.addTickables([note0, note1, note2, note3]); @@ -101,8 +101,8 @@ function slurred(options: TestOptions, contextBuilder: ContextBuilder): void { const gracenotes0 = gracenote_group0.map(graceTabNote); const gracenotes1 = gracenote_group1.map(graceTabNote); - note0.addModifier(0, new GraceNoteGroup(gracenotes0, true)); - note1.addModifier(0, new GraceNoteGroup(gracenotes1, true)); + note0.addModifier(new GraceNoteGroup(gracenotes0, true), 0); + note1.addModifier(new GraceNoteGroup(gracenotes1, true), 0); const voice = new Voice(Flow.TIME4_4); voice.addTickables([note0, note1]); diff --git a/tests/notesubgroup_tests.ts b/tests/notesubgroup_tests.ts index e411553c99..8fb534e8fc 100644 --- a/tests/notesubgroup_tests.ts +++ b/tests/notesubgroup_tests.ts @@ -27,8 +27,8 @@ const NoteSubGroupTests = { function createShortcuts(f: Factory) { return { createStaveNote: (noteStruct: StaveNoteStruct) => f.StaveNote(noteStruct), - addAccidental: (note: StaveNote, accid: string) => note.addModifier(0, f.Accidental({ type: accid })), - addSubGroup: (note: StaveNote, subNotes: Note[]) => note.addModifier(0, f.NoteSubGroup({ notes: subNotes })), + addAccidental: (note: StaveNote, accid: string) => note.addModifier(f.Accidental({ type: accid }), 0), + addSubGroup: (note: StaveNote, subNotes: Note[]) => note.addModifier(f.NoteSubGroup({ notes: subNotes }), 0), }; } diff --git a/tests/ornament_tests.ts b/tests/ornament_tests.ts index a24e02733c..eae42bc4fa 100644 --- a/tests/ornament_tests.ts +++ b/tests/ornament_tests.ts @@ -57,19 +57,19 @@ function drawOrnaments(options: TestOptions, contextBuilder: ContextBuilder): vo new StaveNote({ keys: ['f/4'], duration: '4', stem_direction: 1 }), ]; - notes[0].addModifier(0, new Ornament('mordent')); - notes[1].addModifier(0, new Ornament('mordent_inverted')); - notes[2].addModifier(0, new Ornament('turn')); - notes[3].addModifier(0, new Ornament('turn_inverted')); - notes[4].addModifier(0, new Ornament('tr')); - notes[5].addModifier(0, new Ornament('upprall')); - notes[6].addModifier(0, new Ornament('downprall')); - notes[7].addModifier(0, new Ornament('prallup')); - notes[8].addModifier(0, new Ornament('pralldown')); - notes[9].addModifier(0, new Ornament('upmordent')); - notes[10].addModifier(0, new Ornament('downmordent')); - notes[11].addModifier(0, new Ornament('lineprall')); - notes[12].addModifier(0, new Ornament('prallprall')); + notes[0].addModifier(new Ornament('mordent'), 0); + notes[1].addModifier(new Ornament('mordent_inverted'), 0); + notes[2].addModifier(new Ornament('turn'), 0); + notes[3].addModifier(new Ornament('turn_inverted'), 0); + notes[4].addModifier(new Ornament('tr'), 0); + notes[5].addModifier(new Ornament('upprall'), 0); + notes[6].addModifier(new Ornament('downprall'), 0); + notes[7].addModifier(new Ornament('prallup'), 0); + notes[8].addModifier(new Ornament('pralldown'), 0); + notes[9].addModifier(new Ornament('upmordent'), 0); + notes[10].addModifier(new Ornament('downmordent'), 0); + notes[11].addModifier(new Ornament('lineprall'), 0); + notes[12].addModifier(new Ornament('prallprall'), 0); // Helper function to justify and draw a 4/4 voice Formatter.FormatAndDraw(ctx, stave, notes); @@ -99,20 +99,20 @@ function drawOrnamentsDisplaced(options: TestOptions, contextBuilder: ContextBui new StaveNote({ keys: ['a/4'], duration: '4', stem_direction: 1 }), ]; - notes[0].addModifier(0, new Ornament('mordent')); - notes[1].addModifier(0, new Ornament('mordent_inverted')); - notes[1].addModifier(0, new Ornament('mordent_inverted')); - notes[2].addModifier(0, new Ornament('turn')); - notes[3].addModifier(0, new Ornament('turn_inverted')); - notes[4].addModifier(0, new Ornament('tr')); - notes[5].addModifier(0, new Ornament('upprall')); - notes[6].addModifier(0, new Ornament('downprall')); - notes[7].addModifier(0, new Ornament('prallup')); - notes[8].addModifier(0, new Ornament('pralldown')); - notes[9].addModifier(0, new Ornament('upmordent')); - notes[10].addModifier(0, new Ornament('downmordent')); - notes[11].addModifier(0, new Ornament('lineprall')); - notes[12].addModifier(0, new Ornament('prallprall')); + notes[0].addModifier(new Ornament('mordent'), 0); + notes[1].addModifier(new Ornament('mordent_inverted'), 0); + notes[1].addModifier(new Ornament('mordent_inverted'), 0); + notes[2].addModifier(new Ornament('turn'), 0); + notes[3].addModifier(new Ornament('turn_inverted'), 0); + notes[4].addModifier(new Ornament('tr'), 0); + notes[5].addModifier(new Ornament('upprall'), 0); + notes[6].addModifier(new Ornament('downprall'), 0); + notes[7].addModifier(new Ornament('prallup'), 0); + notes[8].addModifier(new Ornament('pralldown'), 0); + notes[9].addModifier(new Ornament('upmordent'), 0); + notes[10].addModifier(new Ornament('downmordent'), 0); + notes[11].addModifier(new Ornament('lineprall'), 0); + notes[12].addModifier(new Ornament('prallprall'), 0); // Helper function to justify and draw a 4/4 voice Formatter.FormatAndDraw(ctx, stave, notes); @@ -136,10 +136,10 @@ const addDelayedTurns = (options: TestOptions, contextBuilder: ContextBuilder) = new StaveNote({ keys: ['a/4'], duration: '4', stem_direction: 1 }), ]; - notes[0].addModifier(0, new Ornament('turn').setDelayed(true)); - notes[1].addModifier(0, new Ornament('turn_inverted').setDelayed(true)); - notes[2].addModifier(0, new Ornament('turn_inverted').setDelayed(true)); - notes[3].addModifier(0, new Ornament('turn').setDelayed(true)); + notes[0].addModifier(new Ornament('turn').setDelayed(true), 0); + notes[1].addModifier(new Ornament('turn_inverted').setDelayed(true), 0); + notes[2].addModifier(new Ornament('turn_inverted').setDelayed(true), 0); + notes[3].addModifier(new Ornament('turn').setDelayed(true), 0); return { context, stave, notes }; }; @@ -179,15 +179,15 @@ function drawOrnamentsStacked(options: TestOptions, contextBuilder: ContextBuild new StaveNote({ keys: ['a/4'], duration: '4', stem_direction: 1 }), ]; - notes[0].addModifier(0, new Ornament('mordent')); - notes[1].addModifier(0, new Ornament('turn_inverted')); - notes[2].addModifier(0, new Ornament('turn')); - notes[3].addModifier(0, new Ornament('turn_inverted')); + notes[0].addModifier(new Ornament('mordent'), 0); + notes[1].addModifier(new Ornament('turn_inverted'), 0); + notes[2].addModifier(new Ornament('turn'), 0); + notes[3].addModifier(new Ornament('turn_inverted'), 0); - notes[0].addModifier(0, new Ornament('turn')); - notes[1].addModifier(0, new Ornament('prallup')); - notes[2].addModifier(0, new Ornament('upmordent')); - notes[3].addModifier(0, new Ornament('lineprall')); + notes[0].addModifier(new Ornament('turn'), 0); + notes[1].addModifier(new Ornament('prallup'), 0); + notes[2].addModifier(new Ornament('upmordent'), 0); + notes[3].addModifier(new Ornament('lineprall'), 0); // Helper function to justify and draw a 4/4 voice Formatter.FormatAndDraw(ctx, stave, notes); @@ -215,18 +215,18 @@ function drawOrnamentsWithAccidentals(options: TestOptions, contextBuilder: Cont new StaveNote({ keys: ['f/4'], duration: '4', stem_direction: 1 }), ]; - notes[0].addModifier(0, new Ornament('mordent').setUpperAccidental('#').setLowerAccidental('#')); - notes[1].addModifier(0, new Ornament('turn_inverted').setLowerAccidental('b').setUpperAccidental('b')); - notes[1].addModifier(0, new Ornament('turn_inverted').setLowerAccidental('b').setUpperAccidental('b')); - notes[2].addModifier(0, new Ornament('turn').setUpperAccidental('##').setLowerAccidental('##')); - notes[3].addModifier(0, new Ornament('mordent_inverted').setLowerAccidental('db').setUpperAccidental('db')); - notes[4].addModifier(0, new Ornament('turn_inverted').setUpperAccidental('++').setLowerAccidental('++')); - notes[5].addModifier(0, new Ornament('tr').setUpperAccidental('n').setLowerAccidental('n')); - notes[6].addModifier(0, new Ornament('prallup').setUpperAccidental('d').setLowerAccidental('d')); - notes[7].addModifier(0, new Ornament('lineprall').setUpperAccidental('db').setLowerAccidental('db')); - notes[8].addModifier(0, new Ornament('upmordent').setUpperAccidental('bbs').setLowerAccidental('bbs')); - notes[9].addModifier(0, new Ornament('prallprall').setUpperAccidental('bb').setLowerAccidental('bb')); - notes[10].addModifier(0, new Ornament('turn_inverted').setUpperAccidental('+').setLowerAccidental('+')); + notes[0].addModifier(new Ornament('mordent').setUpperAccidental('#').setLowerAccidental('#'), 0); + notes[1].addModifier(new Ornament('turn_inverted').setLowerAccidental('b').setUpperAccidental('b'), 0); + notes[1].addModifier(new Ornament('turn_inverted').setLowerAccidental('b').setUpperAccidental('b'), 0); + notes[2].addModifier(new Ornament('turn').setUpperAccidental('##').setLowerAccidental('##'), 0); + notes[3].addModifier(new Ornament('mordent_inverted').setLowerAccidental('db').setUpperAccidental('db'), 0); + notes[4].addModifier(new Ornament('turn_inverted').setUpperAccidental('++').setLowerAccidental('++'), 0); + notes[5].addModifier(new Ornament('tr').setUpperAccidental('n').setLowerAccidental('n'), 0); + notes[6].addModifier(new Ornament('prallup').setUpperAccidental('d').setLowerAccidental('d'), 0); + notes[7].addModifier(new Ornament('lineprall').setUpperAccidental('db').setLowerAccidental('db'), 0); + notes[8].addModifier(new Ornament('upmordent').setUpperAccidental('bbs').setLowerAccidental('bbs'), 0); + notes[9].addModifier(new Ornament('prallprall').setUpperAccidental('bb').setLowerAccidental('bb'), 0); + notes[10].addModifier(new Ornament('turn_inverted').setUpperAccidental('+').setLowerAccidental('+'), 0); // Helper function to justify and draw a 4/4 voice Formatter.FormatAndDraw(ctx, stave, notes); @@ -240,8 +240,8 @@ function jazzOrnaments(options: TestOptions): void { // Helper function to create a StaveNote. const note = (keys: string[], duration: string, modifier: Ornament, stemDirection?: number) => { const n = new StaveNote({ keys, duration, stem_direction: stemDirection }) - .addModifier(0, modifier) - .addModifier(0, new Accidental('b')); + .addModifier(modifier, 0) + .addModifier(new Accidental('b'), 0); const dot = duration.indexOf('d') >= 0; if (dot) { Dot.buildAndAttach([n], { all: true }); @@ -259,7 +259,7 @@ function jazzOrnaments(options: TestOptions): void { ]; if (modifiers.length > 4) { - notes[3].addModifier(0, modifiers[4]); + notes[3].addModifier(modifiers[4], 0); } Beam.generateBeams(notes); diff --git a/tests/percussion_tests.ts b/tests/percussion_tests.ts index 0f98722ed6..d2d956a607 100644 --- a/tests/percussion_tests.ts +++ b/tests/percussion_tests.ts @@ -196,29 +196,29 @@ const snare0 = createSingleMeasureTest((f) => { f.Voice().addTickables([ f .StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }) - .addModifier(0, f.Articulation({ type: 'a>' })) - .addModifier(0, f.Annotation({ text: 'L', font })), - f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(0, f.Annotation({ text: 'R', font })), - f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(0, f.Annotation({ text: 'L', font })), - f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(0, f.Annotation({ text: 'L', font })), + .addModifier(f.Articulation({ type: 'a>' }), 0) + .addModifier(f.Annotation({ text: 'L', font }), 0), + f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(f.Annotation({ text: 'R', font }), 0), + f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(f.Annotation({ text: 'L', font }), 0), + f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(f.Annotation({ text: 'L', font }), 0), ]); }); const snare1 = createSingleMeasureTest((f) => { f.Voice().addTickables([ - f.StaveNote({ keys: ['g/5/x2'], duration: '4', stem_direction: -1 }).addModifier(0, f.Articulation({ type: 'ah' })), + f.StaveNote({ keys: ['g/5/x2'], duration: '4', stem_direction: -1 }).addModifier(f.Articulation({ type: 'ah' }), 0), f.StaveNote({ keys: ['g/5/x2'], duration: '4', stem_direction: -1 }), - f.StaveNote({ keys: ['g/5/x2'], duration: '4', stem_direction: -1 }).addModifier(0, f.Articulation({ type: 'ah' })), - f.StaveNote({ keys: ['a/5/x3'], duration: '4', stem_direction: -1 }).addModifier(0, f.Articulation({ type: 'a,' })), + f.StaveNote({ keys: ['g/5/x2'], duration: '4', stem_direction: -1 }).addModifier(f.Articulation({ type: 'ah' }), 0), + f.StaveNote({ keys: ['a/5/x3'], duration: '4', stem_direction: -1 }).addModifier(f.Articulation({ type: 'a,' }), 0), ]); }); const snare2 = createSingleMeasureTest((f) => { f.Voice().addTickables([ - f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(0, new Tremolo(1)), - f.GraceNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(0, new Tremolo(1)), - f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(0, new Tremolo(3)), - f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(0, new Tremolo(5)), + f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(new Tremolo(1), 0), + f.GraceNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(new Tremolo(1), 0), + f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(new Tremolo(3), 0), + f.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: -1 }).addModifier(new Tremolo(5), 0), ]); }); @@ -226,10 +226,10 @@ const snare3 = createSingleMeasureTest((factory) => { factory .Voice() .addTickables([ - factory.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(0, new Tremolo(2)), - factory.GraceNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(0, new Tremolo(2)), - factory.GraceNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(0, new Tremolo(3)), - factory.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(0, new Tremolo(5)), + factory.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(new Tremolo(2), 0), + factory.GraceNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(new Tremolo(2), 0), + factory.GraceNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(new Tremolo(3), 0), + factory.StaveNote({ keys: ['c/5'], duration: '4', stem_direction: 1 }).addModifier(new Tremolo(5), 0), ]); }); diff --git a/tests/rhythm_tests.ts b/tests/rhythm_tests.ts index b47b8f4ce2..9b7053f370 100644 --- a/tests/rhythm_tests.ts +++ b/tests/rhythm_tests.ts @@ -271,7 +271,7 @@ function drawSlashAndBeamAndRests(options: TestOptions, contextBuilder: ContextB new StaveNote({ keys: ['b/4'], duration: '8s', stem_direction: -1 }), ]; - notesBar1_part1[0].addModifier(0, new Annotation('C7').setFont('Times', VexFlowTests.Font.size + 2)); + notesBar1_part1[0].addModifier(new Annotation('C7').setFont('Times', VexFlowTests.Font.size + 2), 0); const notesBar1_part2 = [ new StaveNote({ @@ -327,7 +327,7 @@ function drawSlashAndBeamAndRests(options: TestOptions, contextBuilder: ContextB }), ]; - notesBar2[0].addModifier(0, new Annotation('F').setFont('Times', VexFlowTests.Font.size + 2)); + notesBar2[0].addModifier(new Annotation('F').setFont('Times', VexFlowTests.Font.size + 2), 0); // Helper function to justify and draw a 4/4 voice Formatter.FormatAndDraw(ctx, staveBar2, notesBar2); @@ -393,7 +393,7 @@ function drawSixtenthWithScratches(options: TestOptions, contextBuilder: Context }), ]; - notesBar1_part1[0].addModifier(0, new Annotation('C7').setFont('Times', VexFlowTests.Font.size + 3)); + notesBar1_part1[0].addModifier(new Annotation('C7').setFont('Times', VexFlowTests.Font.size + 3), 0); // create the beams for 8th notes in 2nd measure const beam1 = new Beam(notesBar1_part1); @@ -465,7 +465,7 @@ function drawThirtySecondWithScratches(options: TestOptions, contextBuilder: Con }), ]; - notesBar1_part1[0].addModifier(0, new Annotation('C7').setFont('Times', VexFlowTests.Font.size + 3)); + notesBar1_part1[0].addModifier(new Annotation('C7').setFont('Times', VexFlowTests.Font.size + 3), 0); // Create the beams for 8th notes in 2nd measure. const beam1 = new Beam(notesBar1_part1); diff --git a/tests/stave_tests.ts b/tests/stave_tests.ts index fe33a7634a..ebdce4b4dc 100644 --- a/tests/stave_tests.ts +++ b/tests/stave_tests.ts @@ -238,9 +238,9 @@ function drawRepeats(options: TestOptions, contextBuilder: ContextBuilder): void new StaveNote({ keys: ['g/4'], duration: '8' }), new StaveNote({ keys: ['e/4'], duration: '8' }), ]; - notesBar2_part2[0].addModifier(0, new Accidental('#')); - notesBar2_part2[1].addModifier(0, new Accidental('#')); - notesBar2_part2[3].addModifier(0, new Accidental('b')); + notesBar2_part2[0].addModifier(new Accidental('#'), 0); + notesBar2_part2[1].addModifier(new Accidental('#'), 0); + notesBar2_part2[3].addModifier(new Accidental('b'), 0); // create the beams for 8th notes in 2nd measure const beam1 = new Beam(notesBar2_part1); const beam2 = new Beam(notesBar2_part2); diff --git a/tests/stavehairpin_tests.ts b/tests/stavehairpin_tests.ts index 35174450a0..7f711c0dd5 100644 --- a/tests/stavehairpin_tests.ts +++ b/tests/stavehairpin_tests.ts @@ -57,8 +57,8 @@ function createTest(drawTwoHairpins: (ctx: RenderContext, notes: StaveNote[]) => const notes = [ factory .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], stem_direction: 1, duration: '4' }) - .addModifier(0, factory.Accidental({ type: 'b' })) - .addModifier(1, factory.Accidental({ type: '#' })), + .addModifier(factory.Accidental({ type: 'b' }), 0) + .addModifier(factory.Accidental({ type: '#' }), 1), factory.StaveNote({ keys: ['d/4'], stem_direction: 1, duration: '4' }), factory.StaveNote({ keys: ['e/4'], stem_direction: 1, duration: '4' }), factory.StaveNote({ keys: ['f/4'], stem_direction: 1, duration: '4' }), diff --git a/tests/staveline_tests.ts b/tests/staveline_tests.ts index 3f8549d811..d6ca087e81 100644 --- a/tests/staveline_tests.ts +++ b/tests/staveline_tests.ts @@ -62,17 +62,17 @@ function simple1(options: TestOptions): void { const notes = [ f.StaveNote({ keys: ['c#/5', 'd/5'], duration: '4', clef: 'treble', stem_direction: -1 }), - f.StaveNote({ keys: ['c/4'], duration: '4', clef: 'treble' }).addModifier(0, f.Accidental({ type: '#' })), + f.StaveNote({ keys: ['c/4'], duration: '4', clef: 'treble' }).addModifier(f.Accidental({ type: '#' }), 0), f.StaveNote({ keys: ['c/4', 'e/4', 'g/4'], duration: '4', clef: 'treble' }), f .StaveNote({ keys: ['f/4', 'a/4', 'c/5'], duration: '4', clef: 'treble' }) - .addModifier(2, f.Accidental({ type: '#' })), - f.StaveNote({ keys: ['c/4'], duration: '4', clef: 'treble' }).addModifier(0, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: '#' }), 2), + f.StaveNote({ keys: ['c/4'], duration: '4', clef: 'treble' }).addModifier(f.Accidental({ type: '#' }), 0), f.StaveNote({ keys: ['c#/5', 'd/5'], duration: '4', clef: 'treble', stem_direction: -1 }), f.StaveNote({ keys: ['c/4', 'd/4', 'g/4'], duration: '4', clef: 'treble' }), f .StaveNote({ keys: ['f/4', 'a/4', 'c/5'], duration: '4', clef: 'treble' }) - .addModifier(2, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: '#' }), 2), ]; Dot.buildAndAttach([notes[0]], { all: true }); diff --git a/tests/stavenote_tests.ts b/tests/stavenote_tests.ts index 7a4179d207..5cba64fdbc 100644 --- a/tests/stavenote_tests.ts +++ b/tests/stavenote_tests.ts @@ -666,7 +666,7 @@ function drawKeyStyles(options: TestOptions, contextBuilder: ContextBuilder): vo const note = new StaveNote({ keys: ['g/4', 'bb/4', 'd/5'], duration: 'q' }) .setStave(stave) - .addModifier(1, new Accidental('b')) + .addModifier(new Accidental('b'), 1) .setKeyStyle(1, { shadowBlur: 2, shadowColor: 'blue', fillStyle: 'blue' }); new TickContext().addTickable(note).preFormat().setX(25); @@ -685,7 +685,7 @@ function drawNoteStyles(options: TestOptions, contextBuilder: ContextBuilder): v const note = new StaveNote({ keys: ['g/4', 'bb/4', 'd/5'], duration: '8' }) .setStave(stave) - .addModifier(1, new Accidental('b')); + .addModifier(new Accidental('b'), 1); note.setStyle({ shadowBlur: 2, shadowColor: 'blue', fillStyle: 'blue', strokeStyle: 'blue' }); @@ -705,7 +705,7 @@ function drawNoteStemStyles(options: TestOptions, contextBuilder: ContextBuilder const note = new StaveNote({ keys: ['g/4', 'bb/4', 'd/5'], duration: 'q' }) .setStave(stave) - .addModifier(1, new Accidental('b')); + .addModifier(new Accidental('b'), 1); note.setStemStyle({ shadowBlur: 2, shadowColor: 'blue', fillStyle: 'blue', strokeStyle: 'blue' }); @@ -778,7 +778,7 @@ function drawNoteStylesWithFlag(options: TestOptions, contextBuilder: ContextBui const note = new StaveNote({ keys: ['g/4', 'bb/4', 'd/5'], duration: '8' }) .setStave(stave) - .addModifier(1, new Accidental('b')); + .addModifier(new Accidental('b'), 1); note.setFlagStyle({ shadowBlur: 2, shadowColor: 'blue', fillStyle: 'blue', strokeStyle: 'blue' }); @@ -1012,7 +1012,7 @@ function centerAlignedRestFermata(options: TestOptions): void { const note = f .StaveNote({ keys: ['b/4'], duration: '1r', align_center: true }) - .addModifier(0, new Articulation('a@a').setPosition(3)); + .addModifier(new Articulation('a@a').setPosition(3), 0); const voice = f.Voice().setStrict(false).addTickables([note]); @@ -1030,7 +1030,7 @@ function centerAlignedRestAnnotation(options: TestOptions): void { const note = f .StaveNote({ keys: ['b/4'], duration: '1r', align_center: true }) - .addModifier(0, new Annotation('Whole measure rest').setVerticalJustification(AnnotationVerticalJustify.TOP)); + .addModifier(new Annotation('Whole measure rest').setVerticalJustification(AnnotationVerticalJustify.TOP), 0); const voice = f.Voice().setStrict(false).addTickables([note]); @@ -1052,13 +1052,13 @@ function centerAlignedNoteMultiModifiers(options: TestOptions): void { const note = f .StaveNote({ keys: ['c/4', 'e/4', 'g/4'], duration: '4', align_center: true }) - .addModifier(0, new Annotation('Test').setPosition(3)) + .addModifier(new Annotation('Test').setPosition(3), 0) .addStroke(0, new Stroke(2)) - .addModifier(1, new Accidental('#')) - .addModifier(0, newFinger('3', Modifier.Position.LEFT)) - .addModifier(2, newFinger('2', Modifier.Position.LEFT)) - .addModifier(1, newFinger('1', Modifier.Position.RIGHT)) - .addModifier(2, new StringNumber('4').setPosition(Modifier.Position.BELOW)); + .addModifier(new Accidental('#'), 1) + .addModifier(newFinger('3', Modifier.Position.LEFT), 0) + .addModifier(newFinger('2', Modifier.Position.LEFT), 2) + .addModifier(newFinger('1', Modifier.Position.RIGHT), 1) + .addModifier(new StringNumber('4').setPosition(Modifier.Position.BELOW), 2); Dot.buildAndAttach([note], { all: true }); const voice = f.Voice().setStrict(false).addTickables([note]); @@ -1094,7 +1094,7 @@ function centerAlignedMultiVoice(options: TestOptions): void { { keys: ['b/4'], duration: '8' }, ].map(createStaveNote); - notes1[1].addModifier(0, f.Accidental({ type: '#' })); + notes1[1].addModifier(f.Accidental({ type: '#' }), 0); f.Beam({ notes: notes1 }); diff --git a/tests/stringnumber_tests.ts b/tests/stringnumber_tests.ts index 08e7731ba8..e3914e4fb0 100644 --- a/tests/stringnumber_tests.ts +++ b/tests/stringnumber_tests.ts @@ -33,31 +33,31 @@ function drawMultipleMeasures(options: TestOptions): void { const notes1 = score.notes('(c4 e4 g4)/4., (c5 e5 g5)/8, (c4 f4 g4)/4, (c4 f4 g4)/4', { stem: 'down' }); notes1[0] - .addModifier(0, f.StringNumber({ number: '5', position: 'right' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'left' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'right' })); + .addModifier(f.StringNumber({ number: '5', position: 'right' }), 0) + .addModifier(f.StringNumber({ number: '4', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '3', position: 'right' }), 2); notes1[1] - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(0, f.StringNumber({ number: '5', position: 'below' })) - .addModifier(1, f.Accidental({ type: '#' }).setAsCautionary()) + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.StringNumber({ number: '5', position: 'below' }), 0) + .addModifier(f.Accidental({ type: '#' }).setAsCautionary(), 1) .addModifier( - 2, f .StringNumber({ number: '3', position: 'above' }) .setLastNote(notes1[3]) - .setLineEndType(Renderer.LineEndType.DOWN) + .setLineEndType(Renderer.LineEndType.DOWN), + 2 ); notes1[2] - .addModifier(0, f.StringNumber({ number: '5', position: 'left' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'left' })) - .addModifier(1, f.Accidental({ type: '#' })); + .addModifier(f.StringNumber({ number: '5', position: 'left' }), 0) + .addModifier(f.StringNumber({ number: '3', position: 'left' }), 2) + .addModifier(f.Accidental({ type: '#' }), 1); notes1[3] - .addModifier(0, f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7)) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6)) - .addModifier(2, f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6)); + .addModifier(f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7), 0) + .addModifier(f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6), 1) + .addModifier(f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6), 2); const voice1 = score.voice(notes1); @@ -71,24 +71,24 @@ function drawMultipleMeasures(options: TestOptions): void { const notes2 = score.notes('(c4 e4 g4)/4, (c5 e5 g5), (c4 f4 g4), (c4 f4 g4)', { stem: 'up' }); notes2[0] - .addModifier(0, f.StringNumber({ number: '5', position: 'right' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'left' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'right' })); + .addModifier(f.StringNumber({ number: '5', position: 'right' }), 0) + .addModifier(f.StringNumber({ number: '4', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '3', position: 'right' }), 2); notes2[1] - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(0, f.StringNumber({ number: '5', position: 'below' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'above' }).setLastNote(notes2[3]).setDashed(false)); + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.StringNumber({ number: '5', position: 'below' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.StringNumber({ number: '3', position: 'above' }).setLastNote(notes2[3]).setDashed(false), 2); notes2[2] - .addModifier(2, f.StringNumber({ number: '3', position: 'left' })) - .addModifier(1, f.Accidental({ type: '#' })); + .addModifier(f.StringNumber({ number: '3', position: 'left' }), 2) + .addModifier(f.Accidental({ type: '#' }), 1); notes2[3] - .addModifier(0, f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7)) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6)) - .addModifier(2, f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6)); + .addModifier(f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7), 0) + .addModifier(f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6), 1) + .addModifier(f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6), 2); const voice2 = score.voice(notes2); @@ -102,10 +102,10 @@ function drawMultipleMeasures(options: TestOptions): void { const notesBar3 = score.notes('(c4 e4 g4 a4)/1.'); notesBar3[0] - .addModifier(0, f.StringNumber({ number: '5', position: 'below' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'left' })) - .addModifier(3, f.StringNumber({ number: '2', position: 'above' })); + .addModifier(f.StringNumber({ number: '5', position: 'below' }), 0) + .addModifier(f.StringNumber({ number: '4', position: 'right' }), 1) + .addModifier(f.StringNumber({ number: '3', position: 'left' }), 2) + .addModifier(f.StringNumber({ number: '2', position: 'above' }), 3); const voice3 = score.voice(notesBar3, { time: '6/4' }); @@ -126,31 +126,31 @@ function drawFretHandFingers(options: TestOptions): void { const notes1 = score.notes('(c4 e4 g4)/4, (c5 e5 g5), (c4 f4 g4), (c4 f4 g4)', { stem: 'down' }); notes1[0] - .addModifier(0, f.Fingering({ number: '3', position: 'left' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(2, f.Fingering({ number: '0', position: 'left' })); + .addModifier(f.Fingering({ number: '3', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 2); notes1[1] - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(0, f.Fingering({ number: '3', position: 'left' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Fingering({ number: '0', position: 'left' })); + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Fingering({ number: '3', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 2); notes1[2] - .addModifier(0, f.Fingering({ number: '3', position: 'below' })) - .addModifier(1, f.Fingering({ number: '4', position: 'left' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'left' })) - .addModifier(2, f.Fingering({ number: '0', position: 'above' })) - .addModifier(1, f.Accidental({ type: '#' })); + .addModifier(f.Fingering({ number: '3', position: 'below' }), 0) + .addModifier(f.Fingering({ number: '4', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '4', position: 'left' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'above' }), 2) + .addModifier(f.Accidental({ type: '#' }), 1); notes1[3] - .addModifier(0, f.Fingering({ number: '3', position: 'right' })) - .addModifier(0, f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7)) - .addModifier(1, f.Fingering({ number: '4', position: 'right' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6)) - .addModifier(2, f.Fingering({ number: '0', position: 'right' }).setOffsetY(-5)) - .addModifier(2, f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6)); + .addModifier(f.Fingering({ number: '3', position: 'right' }), 0) + .addModifier(f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7), 0) + .addModifier(f.Fingering({ number: '4', position: 'right' }), 1) + .addModifier(f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6), 1) + .addModifier(f.Fingering({ number: '0', position: 'right' }).setOffsetY(-5), 2) + .addModifier(f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6), 2); const voice1 = score.voice(notes1); @@ -166,32 +166,32 @@ function drawFretHandFingers(options: TestOptions): void { }); notes2[0] - .addModifier(0, f.Fingering({ number: '3', position: 'right' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' })) - .addModifier(2, f.Fingering({ number: '0', position: 'above' })); + .addModifier(f.Fingering({ number: '3', position: 'right' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '4', position: 'right' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'above' }), 2); notes2[1] - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(0, f.Fingering({ number: '3', position: 'right' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Fingering({ number: '0', position: 'left' })); + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Fingering({ number: '3', position: 'right' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 2); notes2[2] - .addModifier(0, f.Fingering({ number: '3', position: 'below' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'left' })) - .addModifier(2, f.Fingering({ number: '1', position: 'right' })) - .addModifier(2, f.Accidental({ type: '#' })); + .addModifier(f.Fingering({ number: '3', position: 'below' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '4', position: 'left' }), 1) + .addModifier(f.Fingering({ number: '1', position: 'right' }), 2) + .addModifier(f.Accidental({ type: '#' }), 2); notes2[3] - .addModifier(0, f.Fingering({ number: '3', position: 'right' })) - .addModifier(0, f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7)) - .addModifier(1, f.Fingering({ number: '4', position: 'right' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6)) - .addModifier(2, f.Fingering({ number: '1', position: 'right' }).setOffsetY(-6)) - .addModifier(2, f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6)); + .addModifier(f.Fingering({ number: '3', position: 'right' }), 0) + .addModifier(f.StringNumber({ number: '5', position: 'right' }).setOffsetY(7), 0) + .addModifier(f.Fingering({ number: '4', position: 'right' }), 1) + .addModifier(f.StringNumber({ number: '4', position: 'right' }).setOffsetY(6), 1) + .addModifier(f.Fingering({ number: '1', position: 'right' }).setOffsetY(-6), 2) + .addModifier(f.StringNumber({ number: '3', position: 'right' }).setOffsetY(-6), 2); const voice2 = score.voice(notes2); @@ -211,45 +211,45 @@ function multi(options: TestOptions): void { notes1[0] .addStroke(0, new Stroke(5)) - .addModifier(0, f.Fingering({ number: '3', position: 'left' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(2, f.Fingering({ number: '0', position: 'left' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'left' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'above' })); + .addModifier(f.Fingering({ number: '3', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 2) + .addModifier(f.StringNumber({ number: '4', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '3', position: 'above' }), 2); notes1[1] .addStroke(0, new Stroke(6)) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'above' })) - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Accidental({ type: '#' })); + .addModifier(f.StringNumber({ number: '4', position: 'right' }), 1) + .addModifier(f.StringNumber({ number: '3', position: 'above' }), 2) + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Accidental({ type: '#' }), 2); notes1[2] .addStroke(0, new Stroke(2)) - .addModifier(0, f.Fingering({ number: '3', position: 'left' })) - .addModifier(1, f.Fingering({ number: '0', position: 'right' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' })) - .addModifier(2, f.Fingering({ number: '1', position: 'left' })) - .addModifier(2, f.StringNumber({ number: '3', position: 'right' })); + .addModifier(f.Fingering({ number: '3', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '0', position: 'right' }), 1) + .addModifier(f.StringNumber({ number: '4', position: 'right' }), 1) + .addModifier(f.Fingering({ number: '1', position: 'left' }), 2) + .addModifier(f.StringNumber({ number: '3', position: 'right' }), 2); notes1[3] .addStroke(0, new Stroke(1)) - .addModifier(2, f.StringNumber({ number: '3', position: 'left' })) - .addModifier(1, f.StringNumber({ number: '4', position: 'right' })); + .addModifier(f.StringNumber({ number: '3', position: 'left' }), 2) + .addModifier(f.StringNumber({ number: '4', position: 'right' }), 1); const notes2 = score.notes('e3/8, e3, e3, e3, e3, e3, e3, e3', { stem: 'down' }); notes2[0] - .addModifier(0, f.Fingering({ number: '0', position: 'left' })) - .addModifier(0, f.StringNumber({ number: '6', position: 'below' })); + .addModifier(f.Fingering({ number: '0', position: 'left' }), 0) + .addModifier(f.StringNumber({ number: '6', position: 'below' }), 0); - notes2[2].addModifier(0, f.Accidental({ type: '#' })); + notes2[2].addModifier(f.Accidental({ type: '#' }), 0); - notes2[4].addModifier(0, f.Fingering({ number: '0', position: 'left' })); + notes2[4].addModifier(f.Fingering({ number: '0', position: 'left' }), 0); // Position string number 6 beneath the strum arrow: left (15) and down (18) - notes2[4].addModifier(0, f.StringNumber({ number: '6', position: 'left' }).setOffsetX(15).setOffsetY(18)); + notes2[4].addModifier(f.StringNumber({ number: '6', position: 'left' }).setOffsetX(15).setOffsetY(18), 0); // Important Note: notes2 must come first, otherwise ledger lines from notes2 will be drawn on top of notes from notes1! // BUG: VexFlow draws TWO ledger lines for middle C, because both notes1 and notes2 require the middle C ledger line. @@ -278,52 +278,52 @@ function drawAccidentals(options: TestOptions): void { ]; notes[0] - .addModifier(0, f.Fingering({ number: '3', position: 'left' })) - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(1, f.StringNumber({ number: '2', position: 'left' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Fingering({ number: '0', position: 'left' })) - .addModifier(2, f.Accidental({ type: '#' })) - .addModifier(3, f.Fingering({ number: '3', position: 'left' })) - .addModifier(3, f.Accidental({ type: '#' })) - .addModifier(4, f.Fingering({ number: '2', position: 'right' })) - .addModifier(4, f.StringNumber({ number: '3', position: 'right' })) - .addModifier(4, f.Accidental({ type: '#' })) - .addModifier(5, f.Fingering({ number: '0', position: 'left' })) - .addModifier(5, f.Accidental({ type: '#' })); + .addModifier(f.Fingering({ number: '3', position: 'left' }), 0) + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '2', position: 'left' }), 1) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 2) + .addModifier(f.Accidental({ type: '#' }), 2) + .addModifier(f.Fingering({ number: '3', position: 'left' }), 3) + .addModifier(f.Accidental({ type: '#' }), 3) + .addModifier(f.Fingering({ number: '2', position: 'right' }), 4) + .addModifier(f.StringNumber({ number: '3', position: 'right' }), 4) + .addModifier(f.Accidental({ type: '#' }), 4) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 5) + .addModifier(f.Accidental({ type: '#' }), 5); notes[1] - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Accidental({ type: '#' })) - .addModifier(3, f.Accidental({ type: '#' })) - .addModifier(4, f.Accidental({ type: '#' })) - .addModifier(5, f.Accidental({ type: '#' })); + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Accidental({ type: '#' }), 2) + .addModifier(f.Accidental({ type: '#' }), 3) + .addModifier(f.Accidental({ type: '#' }), 4) + .addModifier(f.Accidental({ type: '#' }), 5); notes[2] - .addModifier(0, f.Fingering({ number: '3', position: 'left' })) - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(1, f.Fingering({ number: '2', position: 'left' })) - .addModifier(1, f.StringNumber({ number: '2', position: 'left' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Fingering({ number: '0', position: 'left' })) - .addModifier(2, f.Accidental({ type: '#' })) - .addModifier(3, f.Fingering({ number: '3', position: 'left' })) - .addModifier(3, f.Accidental({ type: '#' })) - .addModifier(4, f.Fingering({ number: '2', position: 'right' })) - .addModifier(4, f.StringNumber({ number: '3', position: 'right' })) - .addModifier(4, f.Accidental({ type: '#' })) - .addModifier(5, f.Fingering({ number: '0', position: 'left' })) - .addModifier(5, f.Accidental({ type: '#' })); + .addModifier(f.Fingering({ number: '3', position: 'left' }), 0) + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Fingering({ number: '2', position: 'left' }), 1) + .addModifier(f.StringNumber({ number: '2', position: 'left' }), 1) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 2) + .addModifier(f.Accidental({ type: '#' }), 2) + .addModifier(f.Fingering({ number: '3', position: 'left' }), 3) + .addModifier(f.Accidental({ type: '#' }), 3) + .addModifier(f.Fingering({ number: '2', position: 'right' }), 4) + .addModifier(f.StringNumber({ number: '3', position: 'right' }), 4) + .addModifier(f.Accidental({ type: '#' }), 4) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 5) + .addModifier(f.Accidental({ type: '#' }), 5); notes[3] - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Accidental({ type: '#' })) - .addModifier(3, f.Accidental({ type: '#' })) - .addModifier(4, f.Accidental({ type: '#' })) - .addModifier(5, f.Accidental({ type: '#' })); + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Accidental({ type: '#' }), 2) + .addModifier(f.Accidental({ type: '#' }), 3) + .addModifier(f.Accidental({ type: '#' }), 4) + .addModifier(f.Accidental({ type: '#' }), 5); const voice = f.Voice().addTickables(notes); const ctx = f.getContext(); diff --git a/tests/strokes_tests.ts b/tests/strokes_tests.ts index 8632b938cc..5c30c9d0e0 100644 --- a/tests/strokes_tests.ts +++ b/tests/strokes_tests.ts @@ -33,9 +33,9 @@ function brushRollRasquedo(options: TestOptions): void { notes1[0].addStroke(0, new Stroke(1)); notes1[1] .addStroke(0, new Stroke(2)) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Accidental({ type: '#' })) - .addModifier(0, f.Accidental({ type: '#' })); + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Accidental({ type: '#' }), 2) + .addModifier(f.Accidental({ type: '#' }), 0); notes1[2].addStroke(0, new Stroke(1)); notes1[3].addStroke(0, new Stroke(2)); @@ -55,9 +55,9 @@ function brushRollRasquedo(options: TestOptions): void { notes2[2].addStroke(0, new Stroke(5)); notes2[3] .addStroke(0, new Stroke(6)) - .addModifier(0, f.Accidental({ type: 'bb' })) - .addModifier(1, f.Accidental({ type: 'bb' })) - .addModifier(2, f.Accidental({ type: 'bb' })); + .addModifier(f.Accidental({ type: 'bb' }), 0) + .addModifier(f.Accidental({ type: 'bb' }), 1) + .addModifier(f.Accidental({ type: 'bb' }), 2); const voice2 = score.voice(notes2); @@ -90,19 +90,19 @@ function arpeggioDirectionless(options: TestOptions): void { notes1[0].addStroke(0, new Stroke(7)); notes1[1] .addStroke(0, new Stroke(7)) - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(1, f.Accidental({ type: '#' })) - .addModifier(2, f.Accidental({ type: '#' })) - .addModifier(3, f.Accidental({ type: '#' })); + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1) + .addModifier(f.Accidental({ type: '#' }), 2) + .addModifier(f.Accidental({ type: '#' }), 3); notes1[2] .addStroke(0, new Stroke(7)) - .addModifier(1, f.Accidental({ type: 'b' })) - .addModifier(0, graceNoteGroup); + .addModifier(f.Accidental({ type: 'b' }), 1) + .addModifier(graceNoteGroup, 0); notes1[3].addStroke(0, new Stroke(7)).addModifier( - 0, f.NoteSubGroup({ notes: [f.ClefNote({ type: 'treble', options: { size: 'default', annotation: '8va' } })], - }) + }), + 0 ); const voice1 = score.voice(notes1); @@ -124,8 +124,8 @@ function multiVoice(options: TestOptions): void { notes1[0].addStroke(0, new Stroke(5)); notes1[1] .addStroke(0, new Stroke(6)) - .addModifier(0, f.Accidental({ type: '#' })) - .addModifier(2, f.Accidental({ type: '#' })); + .addModifier(f.Accidental({ type: '#' }), 0) + .addModifier(f.Accidental({ type: '#' }), 2); notes1[2].addStroke(0, new Stroke(2)); notes1[3].addStroke(0, new Stroke(1)); @@ -315,18 +315,18 @@ function notesWithTab(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['b/4', 'd/5', 'g/5'], stem_direction: -1, duration: '4' }) - .addModifier(1, f.Accidental({ type: 'b' })) - .addModifier(0, f.Accidental({ type: 'b' })), + .addModifier(f.Accidental({ type: 'b' }), 1) + .addModifier(f.Accidental({ type: 'b' }), 0), f.StaveNote({ keys: ['c/5', 'd/5'], stem_direction: -1, duration: '4' }), f.StaveNote({ keys: ['b/3', 'e/4', 'a/4', 'd/5'], stem_direction: 1, duration: '8' }), f .StaveNote({ keys: ['a/3', 'e/4', 'a/4', 'c/5', 'e/5', 'a/5'], stem_direction: 1, duration: '8' }) - .addModifier(3, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: '#' }), 3), f.StaveNote({ keys: ['b/3', 'e/4', 'a/4', 'd/5'], stem_direction: 1, duration: '8' }), f .StaveNote({ keys: ['a/3', 'e/4', 'a/4', 'c/5', 'f/5', 'a/5'], stem_direction: 1, duration: '8' }) - .addModifier(3, f.Accidental({ type: '#' })) - .addModifier(4, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: '#' }), 3) + .addModifier(f.Accidental({ type: '#' }), 4), ]; const tabstave = f @@ -344,7 +344,7 @@ function notesWithTab(options: TestOptions): void { ], duration: '4', }) - .addModifier(0, new Bend('Full')), + .addModifier(new Bend('Full'), 0), f .TabNote({ positions: [ @@ -353,7 +353,7 @@ function notesWithTab(options: TestOptions): void { ], duration: '4', }) - .addModifier(1, new Bend('Unison')), + .addModifier(new Bend('Unison'), 1), f.TabNote({ positions: [ { str: 3, fret: 7 }, diff --git a/tests/style_tests.ts b/tests/style_tests.ts index 59fa8f899e..acb2b57b15 100644 --- a/tests/style_tests.ts +++ b/tests/style_tests.ts @@ -66,12 +66,12 @@ function stave(options: TestOptions): void { const notes = [ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], stem_direction: 1, duration: '4' }) - .addModifier(0, f.Accidental({ type: 'b' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'b' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], stem_direction: 1, duration: '4' }) - .addModifier(0, f.Accidental({ type: 'b' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'b' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), f.StaveNote({ keys: ['e/4'], stem_direction: 1, duration: '4' }), f.StaveNote({ keys: ['f/4'], stem_direction: 1, duration: '8' }), @@ -79,7 +79,7 @@ function stave(options: TestOptions): void { f.TextDynamics({ text: 'sfz', duration: '16' }).setStyle(FS('blue')), // GhostNote modifiers test. - f.GhostNote({ duration: '16' }).addModifier(0, new Annotation('GhostNote green text').setStyle(FS('green'))), + f.GhostNote({ duration: '16' }).addModifier(new Annotation('GhostNote green text').setStyle(FS('green')), 0), ]; const notes0 = notes[0] as StaveNote; @@ -91,11 +91,11 @@ function stave(options: TestOptions): void { // StaveNote modifiers test. const mods1 = notes1.getModifiers(); mods1[0].setStyle(FS('green')); - notes0.addModifier(0, new Articulation('a.').setPosition(4).setStyle(FS('green'))); - notes0.addModifier(0, new Ornament('mordent').setStyle(FS('lightgreen'))); + notes0.addModifier(new Articulation('a.').setPosition(4).setStyle(FS('green')), 0); + notes0.addModifier(new Ornament('mordent').setStyle(FS('lightgreen')), 0); - notes1.addModifier(0, new Annotation('blue').setStyle(FS('blue'))); - notes1.addModifier(0, new NoteSubGroup([f.ClefNote({ options: { size: 'small' } }).setStyle(FS('blue'))])); + notes1.addModifier(new Annotation('blue').setStyle(FS('blue')), 0); + notes1.addModifier(new NoteSubGroup([f.ClefNote({ options: { size: 'small' } }).setStyle(FS('blue'))]), 0); const voice = f.Voice().addTickables(notes); @@ -126,7 +126,7 @@ function tab(options: TestOptions, contextBuilder: ContextBuilder): void { { str: 4, fret: 9 }, ], duration: 'h', - }).addModifier(0, new Annotation('green text').setStyle(FS('green'))), + }).addModifier(new Annotation('green text').setStyle(FS('green')), 0), tabNote({ positions: [ { str: 2, fret: 10 }, @@ -134,7 +134,7 @@ function tab(options: TestOptions, contextBuilder: ContextBuilder): void { ], duration: 'h', }) - .addModifier(0, new Bend('Full').setStyle(FS('brown'))) + .addModifier(new Bend('Full').setStyle(FS('brown')), 0) .addStroke(0, new Stroke(1, { all_voices: false }).setStyle(FS('blue'))), ]; diff --git a/tests/tabtie_tests.ts b/tests/tabtie_tests.ts index f4f3b02a6e..07c03a619e 100644 --- a/tests/tabtie_tests.ts +++ b/tests/tabtie_tests.ts @@ -192,7 +192,7 @@ function tap(options: TestOptions, contextBuilder: ContextBuilder): void { options.contextBuilder = contextBuilder; const { context, stave } = setupContext(options); - const note1 = tabNote({ positions: [{ str: 4, fret: 12 }], duration: 'h' }).addModifier(0, new Annotation('T')); + const note1 = tabNote({ positions: [{ str: 4, fret: 12 }], duration: 'h' }).addModifier(new Annotation('T'), 0); const note2 = tabNote({ positions: [{ str: 4, fret: 10 }], duration: 'h' }); tieNotes([note1, note2], [0], stave, context, 'P'); diff --git a/tests/textnote_tests.ts b/tests/textnote_tests.ts index f22aa18697..97c022f433 100644 --- a/tests/textnote_tests.ts +++ b/tests/textnote_tests.ts @@ -34,13 +34,13 @@ function formatTextNotes(options: TestOptions): void { const voice1 = score.voice([ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], stem_direction: -1, duration: 'h' }) - .addModifier(0, f.Accidental({ type: 'b' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'b' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), f.StaveNote({ keys: ['d/4', 'e/4', 'f/4'], stem_direction: -1, duration: 'q' }), f .StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: -1, duration: 'q' }) - .addModifier(0, f.Accidental({ type: 'n' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'n' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), ]); const voice2 = score.voice([ @@ -118,13 +118,13 @@ function superscriptAndSubscript(options: TestOptions): void { const voice1 = score.voice([ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], stem_direction: 1, duration: 'h' }) - .addModifier(0, f.Accidental({ type: 'b' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'b' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), f.StaveNote({ keys: ['d/4', 'e/4', 'f/4'], stem_direction: 1, duration: 'q' }), f .StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: 1, duration: 'q' }) - .addModifier(0, f.Accidental({ type: 'n' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'n' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), ]); const voice2 = score.voice([ @@ -158,8 +158,8 @@ function formatTextGlyphs0(options: TestOptions): void { const voice1 = score.voice([ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], stem_direction: -1, duration: 'h' }) - .addModifier(0, f.Accidental({ type: 'b' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'b' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), f.StaveNote({ keys: ['d/4', 'e/4', 'f/4'], stem_direction: -1, duration: '8' }), f.StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: -1, duration: '8' }), f.StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: -1, duration: '8' }), @@ -196,8 +196,8 @@ function formatTextGlyphs1(options: TestOptions): void { const voice1 = score.voice([ f .StaveNote({ keys: ['c/4', 'e/4', 'a/4'], stem_direction: -1, duration: 'h' }) - .addModifier(0, f.Accidental({ type: 'b' })) - .addModifier(1, f.Accidental({ type: '#' })), + .addModifier(f.Accidental({ type: 'b' }), 0) + .addModifier(f.Accidental({ type: '#' }), 1), f.StaveNote({ keys: ['d/4', 'e/4', 'f/4'], stem_direction: -1, duration: '8' }), f.StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: -1, duration: '8' }), f.StaveNote({ keys: ['c/4', 'f/4', 'a/4'], stem_direction: -1, duration: '8' }), diff --git a/tests/threevoice_tests.ts b/tests/threevoice_tests.ts index ddce5818c7..7faacefcac 100644 --- a/tests/threevoice_tests.ts +++ b/tests/threevoice_tests.ts @@ -74,12 +74,12 @@ const threeVoices1 = createThreeVoicesTest( ['(d4 a4 d#5)/8, b4, (d4 a4 c5), b4, (d4 a4 c5), b4, (d4 a4 c5), b4', { stem: 'down' }], ['b3/4, e3, f3, a3', { stem: 'down' }], (f, voices) => { - voices[0].getTickables()[0].addModifier(0, f.Fingering({ number: '0', position: 'left' })); + voices[0].getTickables()[0].addModifier(f.Fingering({ number: '0', position: 'left' }), 0); voices[1] .getTickables()[0] - .addModifier(0, f.Fingering({ number: '0', position: 'left' })) - .addModifier(1, f.Fingering({ number: '4', position: 'left' })); + .addModifier(f.Fingering({ number: '0', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '4', position: 'left' }), 1); } ); @@ -93,13 +93,13 @@ const threeVoices2 = createThreeVoicesTest( (f, voices) => { voices[0] .getTickables()[0] - .addModifier(0, f.Fingering({ number: '2', position: 'left' })) - .addModifier(1, f.Fingering({ number: '0', position: 'above' })); + .addModifier(f.Fingering({ number: '2', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '0', position: 'above' }), 1); voices[1] .getTickables()[0] - .addModifier(0, f.Fingering({ number: '0', position: 'left' })) - .addModifier(1, f.Fingering({ number: '4', position: 'left' })); + .addModifier(f.Fingering({ number: '0', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '4', position: 'left' }), 1); } ); @@ -113,12 +113,12 @@ const threeVoices3 = createThreeVoicesTest( (f, voices) => { voices[0] .getTickables()[0] - .addModifier(0, f.Fingering({ number: '0', position: 'left' })) - .addModifier(1, f.Fingering({ number: '0', position: 'left' })); + .addModifier(f.Fingering({ number: '0', position: 'left' }), 0) + .addModifier(f.Fingering({ number: '0', position: 'left' }), 1); - voices[1].getTickables()[0].addModifier(0, f.Fingering({ number: '1', position: 'left' })); + voices[1].getTickables()[0].addModifier(f.Fingering({ number: '1', position: 'left' }), 0); - voices[2].getTickables()[0].addModifier(0, f.Fingering({ number: '3', position: 'left' })); + voices[2].getTickables()[0].addModifier(f.Fingering({ number: '3', position: 'left' }), 0); } ); diff --git a/tests/tremolo_tests.ts b/tests/tremolo_tests.ts index 86d21ba8e8..c467a00786 100644 --- a/tests/tremolo_tests.ts +++ b/tests/tremolo_tests.ts @@ -26,9 +26,9 @@ function tremoloBasic(options: TestOptions): void { const notes1 = score.notes('e4/4, e4, e4, e4', { stem: 'up' }); - notes1[0].addModifier(0, new Tremolo(3)); - notes1[1].addModifier(0, new Tremolo(2)); - notes1[2].addModifier(0, new Tremolo(1)); + notes1[0].addModifier(new Tremolo(3), 0); + notes1[1].addModifier(new Tremolo(2), 0); + notes1[2].addModifier(new Tremolo(1), 0); const voice1 = score.voice(notes1); @@ -41,9 +41,9 @@ function tremoloBasic(options: TestOptions): void { const notes2 = score.notes('e5/4, e5, e5, e5', { stem: 'down' }); - notes2[1].addModifier(0, new Tremolo(1)); - notes2[2].addModifier(0, new Tremolo(2)); - notes2[3].addModifier(0, new Tremolo(3)); + notes2[1].addModifier(new Tremolo(1), 0); + notes2[2].addModifier(new Tremolo(2), 0); + notes2[3].addModifier(new Tremolo(3), 0); const voice2 = score.voice(notes2); @@ -72,9 +72,9 @@ function tremoloBig(options: TestOptions): void { const tremolo3 = new Tremolo(1); tremolo3.extra_stroke_scale = 1.7; tremolo3.y_spacing_scale = 1.5; - notes1[0].addModifier(0, tremolo1); - notes1[1].addModifier(0, tremolo2); - notes1[2].addModifier(0, tremolo3); + notes1[0].addModifier(tremolo1, 0); + notes1[1].addModifier(tremolo2, 0); + notes1[2].addModifier(tremolo3, 0); const voice1 = score.voice(notes1); @@ -96,9 +96,9 @@ function tremoloBig(options: TestOptions): void { const tremolo6 = new Tremolo(3); tremolo6.extra_stroke_scale = 1.7; tremolo6.y_spacing_scale = 1.5; - notes2[1].addModifier(0, tremolo4); - notes2[2].addModifier(0, tremolo5); - notes2[3].addModifier(0, tremolo6); + notes2[1].addModifier(tremolo4, 0); + notes2[2].addModifier(tremolo5, 0); + notes2[3].addModifier(tremolo6, 0); const voice2 = score.voice(notes2); diff --git a/tests/vibrato_tests.ts b/tests/vibrato_tests.ts index ea33a561dc..a5f257ec2e 100644 --- a/tests/vibrato_tests.ts +++ b/tests/vibrato_tests.ts @@ -38,11 +38,11 @@ function simple(options: TestOptions, contextBuilder: ContextBuilder): void { { str: 4, fret: 9 }, ], duration: 'h', - }).addModifier(0, new Vibrato()), + }).addModifier(new Vibrato(), 0), tabNote({ positions: [{ str: 2, fret: 10 }], duration: 'h', - }).addModifier(0, new Vibrato()), + }).addModifier(new Vibrato(), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -69,11 +69,11 @@ function harsh(options: TestOptions, contextBuilder: ContextBuilder): void { { str: 4, fret: 9 }, ], duration: 'h', - }).addModifier(0, new Vibrato().setHarsh(true)), + }).addModifier(new Vibrato().setHarsh(true), 0), tabNote({ positions: [{ str: 2, fret: 10 }], duration: 'h', - }).addModifier(0, new Vibrato().setHarsh(true)), + }).addModifier(new Vibrato().setHarsh(true), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); @@ -96,19 +96,19 @@ function withBend(options: TestOptions, contextBuilder: ContextBuilder): void { ], duration: 'q', }) - .addModifier(0, new Bend('1/2', true)) - .addModifier(1, new Bend('1/2', true)) - .addModifier(0, new Vibrato()), + .addModifier(new Bend('1/2', true), 0) + .addModifier(new Bend('1/2', true), 1) + .addModifier(new Vibrato(), 0), tabNote({ positions: [{ str: 2, fret: 10 }], duration: 'q', }) - .addModifier(0, new Bend('Full', false)) - .addModifier(0, new Vibrato().setVibratoWidth(60)), + .addModifier(new Bend('Full', false), 0) + .addModifier(new Vibrato().setVibratoWidth(60), 0), tabNote({ positions: [{ str: 2, fret: 10 }], duration: 'h', - }).addModifier(0, new Vibrato().setVibratoWidth(120).setHarsh(true)), + }).addModifier(new Vibrato().setVibratoWidth(120).setHarsh(true), 0), ]; Formatter.FormatAndDraw(ctx, stave, notes); diff --git a/tsconfig.json b/tsconfig.json index 1b670dcb94..3b4299c499 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,5 +15,6 @@ "removeComments": false // "noImplicitOverride": true, /* Introduce in the future for more type safety. Will cause >= 217 errors due to lack of "override" keyword. */ }, + "include": ["./src", "./entry", "./tests"], "exclude": ["node_modules/**/*", "tools/fonts/legacy", "releases", "reference", "build"] }