From 8deb84517752cde9cb07a5be207ff54d8e3144ec Mon Sep 17 00:00:00 2001 From: Danielku15 Date: Thu, 31 Dec 2020 03:14:50 +0100 Subject: [PATCH] Handle accidentals on tied notes across bars correctly --- src/rendering/ScoreBarRenderer.ts | 2 +- src/rendering/utils/AccidentalHelper.ts | 75 +++++++++++------- .../tied-note-accidentals-default.png | Bin 0 -> 35520 bytes .../tied-note-accidentals-songbook.png | Bin 0 -> 35310 bytes .../notation-legend/tied-note-accidentals.gp | Bin 0 -> 9749 bytes .../features/NotationLegend.test.ts | 7 +- 6 files changed, 53 insertions(+), 31 deletions(-) create mode 100644 test-data/visual-tests/notation-legend/tied-note-accidentals-default.png create mode 100644 test-data/visual-tests/notation-legend/tied-note-accidentals-songbook.png create mode 100644 test-data/visual-tests/notation-legend/tied-note-accidentals.gp diff --git a/src/rendering/ScoreBarRenderer.ts b/src/rendering/ScoreBarRenderer.ts index 7fe3f36f5..0e654a6ed 100644 --- a/src/rendering/ScoreBarRenderer.ts +++ b/src/rendering/ScoreBarRenderer.ts @@ -51,7 +51,7 @@ export class ScoreBarRenderer extends BarRendererBase { public constructor(renderer: ScoreRenderer, bar: Bar) { super(renderer, bar); this._startSpacing = false; - this.accidentalHelper = new AccidentalHelper(bar); + this.accidentalHelper = new AccidentalHelper(this); } public getBeatDirection(beat: Beat): BeamDirection { diff --git a/src/rendering/utils/AccidentalHelper.ts b/src/rendering/utils/AccidentalHelper.ts index cf19e0830..83ca32a74 100644 --- a/src/rendering/utils/AccidentalHelper.ts +++ b/src/rendering/utils/AccidentalHelper.ts @@ -6,6 +6,7 @@ import { Note } from '@src/model/Note'; import { NoteAccidentalMode } from '@src/model/NoteAccidentalMode'; import { ModelUtils } from '@src/model/ModelUtils'; import { PercussionMapper } from '../../model/PercussionMapper'; +import { ScoreBarRenderer } from '../ScoreBarRenderer'; class BeatLines { @@ -20,6 +21,7 @@ class BeatLines { */ export class AccidentalHelper { private _bar: Bar; + private _barRenderer: ScoreBarRenderer; /** * a lookup list containing an info whether the notes within an octave @@ -103,8 +105,9 @@ export class AccidentalHelper { */ public minLine: number = -1000; - public constructor(bar: Bar) { - this._bar = bar; + public constructor(barRenderer: ScoreBarRenderer) { + this._barRenderer = barRenderer; + this._bar = barRenderer.bar; } public static getPercussionLine(bar: Bar, noteValue: number): number { @@ -231,19 +234,15 @@ export class AccidentalHelper { switch (accidentalMode) { case NoteAccidentalMode.ForceSharp: accidentalToSet = AccidentalType.Sharp; - hasNoteAccidentalWithinOctave = true; break; case NoteAccidentalMode.ForceDoubleSharp: accidentalToSet = AccidentalType.DoubleSharp; - hasNoteAccidentalWithinOctave = true; break; case NoteAccidentalMode.ForceFlat: accidentalToSet = AccidentalType.Flat; - hasNoteAccidentalWithinOctave = true; break; case NoteAccidentalMode.ForceDoubleFlat: accidentalToSet = AccidentalType.DoubleFlat; - hasNoteAccidentalWithinOctave = true; break; default: // if note has an accidental in the octave, we place a symbol @@ -257,36 +256,56 @@ export class AccidentalHelper { break; } - // do we need an accidental on the note? - if (accidentalToSet !== AccidentalType.None) { - // if we already have an accidental on this line we will reset it if it's the same - if (this._registeredAccidentals.has(line)) { - if (this._registeredAccidentals.get(line) === accidentalToSet) { - accidentalToSet = AccidentalType.None; + // Issue #472: Tied notes across bars do not show the accidentals but also + // do not register them. + // https://ultimatemusictheory.com/tied-notes-with-accidentals/ + let skipAccidental = false; + if (note && note.isTieDestination && note.beat.index === 0) { + // candidate for skip, check further if start note is on the same line + const previousRenderer = this._barRenderer.previousRenderer as ScoreBarRenderer; + if (previousRenderer) { + const tieOriginLine = previousRenderer.accidentalHelper.getNoteLine(note.tieOrigin!); + if(tieOriginLine === line) { + skipAccidental = true; } } - // if there is no accidental on the line, and the key signature has it set already, we clear it on the note - else if (hasKeySignatureAccidentalSetForNote && accidentalToSet === accidentalForKeySignature) { - accidentalToSet = AccidentalType.None; - } + } - // register the new accidental on the line if any. - if (accidentalToSet != AccidentalType.None) { - this._registeredAccidentals.set(line, accidentalToSet); - } + + if (skipAccidental) { + accidentalToSet = AccidentalType.None; } else { - // if we don't want an accidental, but there is already one applied, we place a naturalize accidental - // and clear the registration - if (this._registeredAccidentals.has(line)) { - // if there is already a naturalize symbol on the line, we don't care. - if (this._registeredAccidentals.get(line) === AccidentalType.Natural) { + // do we need an accidental on the note? + if (accidentalToSet !== AccidentalType.None) { + // if we already have an accidental on this line we will reset it if it's the same + if (this._registeredAccidentals.has(line)) { + if (this._registeredAccidentals.get(line) === accidentalToSet) { + accidentalToSet = AccidentalType.None; + } + } + // if there is no accidental on the line, and the key signature has it set already, we clear it on the note + else if (hasKeySignatureAccidentalSetForNote && accidentalToSet === accidentalForKeySignature) { accidentalToSet = AccidentalType.None; - } else { - accidentalToSet = AccidentalType.Natural; + } + + // register the new accidental on the line if any. + if (accidentalToSet != AccidentalType.None) { this._registeredAccidentals.set(line, accidentalToSet); } } else { - this._registeredAccidentals.delete(line); + // if we don't want an accidental, but there is already one applied, we place a naturalize accidental + // and clear the registration + if (this._registeredAccidentals.has(line)) { + // if there is already a naturalize symbol on the line, we don't care. + if (this._registeredAccidentals.get(line) === AccidentalType.Natural) { + accidentalToSet = AccidentalType.None; + } else { + accidentalToSet = AccidentalType.Natural; + this._registeredAccidentals.set(line, accidentalToSet); + } + } else { + this._registeredAccidentals.delete(line); + } } } } diff --git a/test-data/visual-tests/notation-legend/tied-note-accidentals-default.png b/test-data/visual-tests/notation-legend/tied-note-accidentals-default.png new file mode 100644 index 0000000000000000000000000000000000000000..08373b5487d771a4bb270cb5fd8a7a4c5673144f GIT binary patch literal 35520 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

82B~KN%Ma?Ajn|W1{0-|;|FRGHKofV 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 Vi@NVc5m&&Ew77y;smP1h{|CcW7q9>T literal 0 HcmV?d00001 diff --git a/test-data/visual-tests/notation-legend/tied-note-accidentals-songbook.png b/test-data/visual-tests/notation-legend/tied-note-accidentals-songbook.png new file mode 100644 index 0000000000000000000000000000000000000000..9ddc3cc10a80515f835cb84fcf21d992c6cb298a GIT binary patch literal 35310 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 literal 0 HcmV?d00001 diff --git a/test-data/visual-tests/notation-legend/tied-note-accidentals.gp b/test-data/visual-tests/notation-legend/tied-note-accidentals.gp new file mode 100644 index 0000000000000000000000000000000000000000..7e4e02aff861d3f8191b3e6d290258106ff992cb GIT binary patch literal 9749 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 Ze_rJz!6E)QAb(#&z(7E3zg<8;{|~Y8=Vbr@ literal 0 HcmV?d00001 diff --git a/test/visualTests/features/NotationLegend.test.ts b/test/visualTests/features/NotationLegend.test.ts index 0ae1cedec..97bfd5106 100644 --- a/test/visualTests/features/NotationLegend.test.ts +++ b/test/visualTests/features/NotationLegend.test.ts @@ -96,7 +96,10 @@ describe('NotationLegend', () => { it('mixed-default', async () => { await runNotationLegendTest(`mixed-default.png`, 121, 7, false); }); it('mixed-songbook', async () => { await runNotationLegendTest(`mixed-songbook.png`, 121, 7, true); }); - async function runNotationLegendTest(referenceFileName: string, startBar: number, barCount: number, songBook: boolean): Promise { + it('tied-note-accidentals-default', async () => { await runNotationLegendTest(`tied-note-accidentals-default.png`, 1, -1, false, 'tied-note-accidentals.gp'); }); + it('tied-note-accidentals-songbook', async () => { await runNotationLegendTest(`tied-note-accidentals-songbook.png`, 1, -1, true, 'tied-note-accidentals.gp'); }); + + async function runNotationLegendTest(referenceFileName: string, startBar: number, barCount: number, songBook: boolean, fileName: string = 'notation-legend.gp'): Promise { let settings: Settings = new Settings(); settings.display.layoutMode = LayoutMode.Horizontal; settings.display.startBar = startBar; @@ -104,7 +107,7 @@ describe('NotationLegend', () => { if (songBook) { settings.setSongBookModeSettings(); } - const inputFileData = await TestPlatform.loadFile(`test-data/visual-tests/notation-legend/notation-legend.gp`); + const inputFileData = await TestPlatform.loadFile(`test-data/visual-tests/notation-legend/${fileName}`); let score: Score = ScoreLoader.loadScoreFromBytes(inputFileData, settings); await VisualTestHelper.runVisualTestScore(score, `notation-legend/${referenceFileName}`, settings, [0]); }