Skip to content

Commit 2afab25

Browse files
authored
fix: correct GP5 bass clef detection (#2531)
1 parent 8d3bc71 commit 2afab25

4 files changed

Lines changed: 19 additions & 3 deletions

File tree

packages/alphatab/src/importer/Gp3To5Importer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,9 +435,9 @@ export class Gp3To5Importer extends ScoreImporter {
435435
}
436436

437437
/**
438-
* Guitar Pro 3-6 changes to a bass clef if any string tuning is below B2;
438+
* Guitar Pro 3-6 changes to a bass clef if any string tuning is below B1
439439
*/
440-
private static readonly _bassClefTuningThreshold = ModelUtils.parseTuning('B2')!.realValue;
440+
private static readonly _bassClefTuningThreshold = ModelUtils.parseTuning('B1')!.realValue;
441441

442442
public readTrack(): void {
443443
const newTrack: Track = new Track();
42.5 KB
Loading

packages/alphatab/test/importer/Gp5Importer.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ describe('Gp5ImporterTest', () => {
548548

549549
it('tuning-bass-clef', async () => {
550550
const score = (await GpImporterTestHelper.prepareImporterWithFile('guitarpro5/bass-tuning.gp5')).readScore();
551-
expect(score.tracks[0].staves[0].bars[0].clef).to.equal(Clef.F4);
551+
expect(score.tracks[0].staves[0].bars[0].clef).to.equal(Clef.G2);
552552
expect(score.tracks[1].staves[0].bars[0].clef).to.equal(Clef.F4);
553553
expect(score.tracks[2].staves[0].bars[0].clef).to.equal(Clef.F4);
554554
expect(score.tracks[3].staves[0].bars[0].clef).to.equal(Clef.F4);

packages/alphatab/test/visualTests/features/MusicNotation.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { NotationElement } from '@coderline/alphatab/NotationSettings';
33
import { Settings } from '@coderline/alphatab/Settings';
44
import { StaveProfile } from '@coderline/alphatab/StaveProfile';
55
import { ScoreLoader } from '@coderline/alphatab/importer/ScoreLoader';
6+
import { TestPlatform } from 'test/TestPlatform';
67
import { VisualTestHelper, VisualTestOptions, VisualTestRun } from 'test/visualTests/VisualTestHelper';
78

89
describe('MusicNotationTests', () => {
@@ -21,6 +22,21 @@ describe('MusicNotationTests', () => {
2122
await VisualTestHelper.runVisualTest('music-notation/clefs.gp', settings);
2223
});
2324

25+
it('clefs-gp5', async () => {
26+
const score = ScoreLoader.loadScoreFromBytes(
27+
await TestPlatform.loadFile('test-data/guitarpro5/bass-tuning.gp5')
28+
);
29+
const settings: Settings = new Settings();
30+
settings.display.layoutMode = LayoutMode.Page;
31+
32+
const referenceFileName = 'test-data/visual-tests/music-notation/clefs-gp5.png';
33+
34+
const o = new VisualTestOptions(score, [new VisualTestRun(-1, referenceFileName)], settings);
35+
o.tracks = score.tracks.map(t => t.index);
36+
37+
await VisualTestHelper.runVisualTestFull(o);
38+
});
39+
2440
it('key-signatures-mixed', async () => {
2541
const settings: Settings = new Settings();
2642
settings.display.staveProfile = StaveProfile.Score;

0 commit comments

Comments
 (0)