From f7e11b792c1b54e4241eeb19a5b25d30c9efd998 Mon Sep 17 00:00:00 2001 From: benjamin Date: Mon, 9 Mar 2026 17:04:00 +0100 Subject: [PATCH] fix transpose warning --- .../songs/services/transpose.service.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/app/modules/songs/services/transpose.service.ts b/src/app/modules/songs/services/transpose.service.ts index 56c46f6..369d763 100644 --- a/src/app/modules/songs/services/transpose.service.ts +++ b/src/app/modules/songs/services/transpose.service.ts @@ -33,7 +33,25 @@ export class TransposeService { public getDistance(baseKey: string, targetKey: string): number { const scale = getScaleType(baseKey); - return scale ? (scale[0].indexOf(targetKey) - scale[0].indexOf(baseKey) ?? scale[1].indexOf(targetKey) - scale[1].indexOf(baseKey)) % 12 : 0; + if (!scale) { + return 0; + } + + const primaryBaseIndex = scale[0].indexOf(baseKey); + const primaryTargetIndex = scale[0].indexOf(targetKey); + + if (primaryBaseIndex !== -1 && primaryTargetIndex !== -1) { + return (primaryTargetIndex - primaryBaseIndex) % 12; + } + + const secondaryBaseIndex = scale[1].indexOf(baseKey); + const secondaryTargetIndex = scale[1].indexOf(targetKey); + + if (secondaryBaseIndex !== -1 && secondaryTargetIndex !== -1) { + return (secondaryTargetIndex - secondaryBaseIndex) % 12; + } + + return 0; } public getMap(baseKey: string, difference: number): TransposeMap | null {