From 8ebd255cc8840bc976ebaae9b4754dc6c11898e5 Mon Sep 17 00:00:00 2001 From: dotmg Date: Fri, 25 Jul 2025 06:04:14 +0200 Subject: [PATCH] Bug: import XML missed replacing fi with F --- .../kotlin/mg/dot/feufaro/musicXML/MXPitch.kt | 2 +- .../kotlin/mg/dot/feufaro/solfa/Transpose.kt | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/musicXML/MXPitch.kt b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/musicXML/MXPitch.kt index 4754cf8..a0eaf5e 100644 --- a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/musicXML/MXPitch.kt +++ b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/musicXML/MXPitch.kt @@ -44,6 +44,6 @@ var unpitched: String? = null, } fun toKey(key: String, numPart: Int): String { if (unpitched != null) return "z" - return Transpose.transpose(toCNote(numPart), "C", key, alter ?: 0) + return Transpose.transpose(toCNote(numPart), "C", key, alter ?: 0, true) } } diff --git a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Transpose.kt b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Transpose.kt index fd9a553..a5ca321 100644 --- a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Transpose.kt +++ b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Transpose.kt @@ -46,7 +46,7 @@ class Transpose { } } } - fun transpose(note: String, fromKey: String, toKey: String, alter: Int = 0): String { + fun transpose(note: String, fromKey: String, toKey: String, alter: Int = 0, toSolfaCode: Boolean = false): String { val regexFound = REGEX_ONE_NOTE.find(note) if (regexFound == null) { return note @@ -67,7 +67,7 @@ class Transpose { suffix = "'" } val newNote = noteToNumber[newNoteNum] + regexFound.groupValues[2] + suffix - return newNote.replace("¹,", "") + val transposed = newNote.replace("¹,", "") .replace("¹'", "²") .replace("¹,", "") .replace("₁'", "") @@ -84,6 +84,15 @@ class Transpose { .replace("⁴,", "³") .replace(",", "₁") .replace("'", "¹") + regexFound.groupValues[3] + if (!toSolfaCode) { + return transposed + } + return transposed + .replace("di", "D") + .replace("ri", "R") + .replace("fi", "F") + .replace("si", "S") + .replace("ta", "T") } @OptIn(ExperimentalMaterial3Api::class) // Ajoutez cette annotation pour utiliser ExposedDropdownMenuBox @Composable