From 703b9965ac6c196424648e5c3bfa063fabdc4f71 Mon Sep 17 00:00:00 2001 From: Danielku15 Date: Tue, 11 Jul 2023 06:03:01 +0200 Subject: [PATCH 1/2] Handle empty voices on effect band extension --- src/rendering/EffectBand.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/rendering/EffectBand.ts b/src/rendering/EffectBand.ts index 001708dd0..badc87d14 100644 --- a/src/rendering/EffectBand.ts +++ b/src/rendering/EffectBand.ts @@ -110,11 +110,14 @@ export class EffectBand extends Glyph { // load the effect from the previous renderer if possible. let previousRenderer: EffectBarRenderer = this.renderer .previousRenderer as EffectBarRenderer; - let previousBand: EffectBand = previousRenderer.getBand(this.voice, this.info.effectId)!; - let voiceGlyphs: Map = previousBand._effectGlyphs[b.voice.index]; - if (voiceGlyphs.has(prevBeat.index)) { - prevEffect = voiceGlyphs.get(prevBeat.index)!; - } + let previousBand = previousRenderer.getBand(prevBeat.voice.index, this.info.effectId); + // it can happen that we have an empty voice and then we don't have an effect band + if(previousBand) { + let voiceGlyphs: Map = previousBand._effectGlyphs[prevBeat.voice.index]; + if (voiceGlyphs.has(prevBeat.index)) { + prevEffect = voiceGlyphs.get(prevBeat.index)!; + } + } } // if the effect cannot be expanded, create a new glyph // in case of expansion also create a new glyph, but also link the glyphs together From c3621f886b0e00251c1034e776de63960e305e39 Mon Sep 17 00:00:00 2001 From: Danielku15 Date: Tue, 11 Jul 2023 06:25:56 +0200 Subject: [PATCH 2/2] Handle missing effect bands --- src/rendering/EffectBand.ts | 4 ++-- .../visual-tests/issues/let-ring-empty-voice.gp | Bin 0 -> 8774 bytes .../issues/let-ring-empty-voice.png | Bin 0 -> 28535 bytes test/visualTests/issues/BrokenRenders.test.ts | 7 +++++++ 4 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 test-data/visual-tests/issues/let-ring-empty-voice.gp create mode 100644 test-data/visual-tests/issues/let-ring-empty-voice.png create mode 100644 test/visualTests/issues/BrokenRenders.test.ts diff --git a/src/rendering/EffectBand.ts b/src/rendering/EffectBand.ts index badc87d14..f58a70d43 100644 --- a/src/rendering/EffectBand.ts +++ b/src/rendering/EffectBand.ts @@ -110,14 +110,14 @@ export class EffectBand extends Glyph { // load the effect from the previous renderer if possible. let previousRenderer: EffectBarRenderer = this.renderer .previousRenderer as EffectBarRenderer; - let previousBand = previousRenderer.getBand(prevBeat.voice.index, this.info.effectId); + let previousBand = previousRenderer.getBand(prevBeat.voice, this.info.effectId); // it can happen that we have an empty voice and then we don't have an effect band if(previousBand) { let voiceGlyphs: Map = previousBand._effectGlyphs[prevBeat.voice.index]; if (voiceGlyphs.has(prevBeat.index)) { prevEffect = voiceGlyphs.get(prevBeat.index)!; } - } + } } // if the effect cannot be expanded, create a new glyph // in case of expansion also create a new glyph, but also link the glyphs together diff --git a/test-data/visual-tests/issues/let-ring-empty-voice.gp b/test-data/visual-tests/issues/let-ring-empty-voice.gp new file mode 100644 index 0000000000000000000000000000000000000000..c685455d270f22bcc3df4fbf39022f4bb406576d GIT binary patch literal 8774 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 T`WS%za}9!mfSCRn0s;9ip;HN$ literal 0 HcmV?d00001 diff --git a/test-data/visual-tests/issues/let-ring-empty-voice.png b/test-data/visual-tests/issues/let-ring-empty-voice.png new file mode 100644 index 0000000000000000000000000000000000000000..71c3ba03792bcf750a60bfa676605839b6d517d4 GIT binary patch literal 28535 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 CVgRH7 literal 0 HcmV?d00001 diff --git a/test/visualTests/issues/BrokenRenders.test.ts b/test/visualTests/issues/BrokenRenders.test.ts new file mode 100644 index 000000000..354f96d96 --- /dev/null +++ b/test/visualTests/issues/BrokenRenders.test.ts @@ -0,0 +1,7 @@ +import { VisualTestHelper } from "../VisualTestHelper"; + +describe('BrokenRendersTests', () => { + it('let-ring-empty-voice', async () =>{ + await VisualTestHelper.runVisualTest('issues/let-ring-empty-voice.gp'); + }) +}) \ No newline at end of file