diff --git a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt index 61871df..19f3593 100644 --- a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt +++ b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt @@ -2051,6 +2051,9 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository sharedScreenModel.setSongRhythm(meta["r"] ?: "") sharedScreenModel.setBpmFlow(meta["p"]?.toFloat() ?: 120.0f) sharedScreenModel.setOptimColGrid(meta["k"]?.toIntOrNull() ?: 0) + val fallbackBpm = getBpmFromMeasure(meta["m"]) + val bpm = meta["p"]?.toFloatOrNull() ?: fallb ackBpm + sharedScreenModel.setBpmFlow(bpm) } private fun loadN(voiceNumber: Int, line: String, templateComments: MutableList) { @@ -2827,4 +2830,108 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository println("Erreur lors de la création du fichier temporaire : ${e.message}") } } +} +private fun getBpmFromMeasure(measure: String?): Float { + if (measure.isNullOrBlank()) return 120.0f + val cleanedMeasure = measure + ?.replace("\"", "") + ?.replace("(", "") + ?.replace(")", "") + ?.trim() + + println("je suis $cleanedMeasure") + return when (cleanedMeasure) { + "1/4" -> 70.0f + "12/4 Mively in-efatra isam-bara" -> 130.0f + "12/4 Mively in-eftra isam-bara." -> 150.0f + "12/8" -> 105.0f + + "2/4" -> 91.4f + "2/4 Allegro" -> 105.0f + "2/4 Faingampaigana" -> 120.0f + "2/4 Faingampaingana" -> 100.0f + "2/4 Manainga" -> 150.0f + "2/4 Matomatotra" -> 110.0f + "2/4 Miadana" -> 75f + "2/4 Miadanadana" -> 86.0f + "2/4 Milantolanto" -> 90.0f + + // 3/4 + "3/4" -> 103.0f + "3/4 Largo", "3/4 Largo =" -> 105.0f + "3/4 Faingampaigana" -> 105.0f + "3/4 Faingampaingana" -> 104.0f + "3/4 Faingana" -> 105.0f + "3/4 Manainga" -> 95.0f + "3/4 Matomatotra" -> 110.0f + "3/4 Miadana" -> 90.0f + "3/4 Miadana dia miadana" -> 80.0f + "3/4 Miadana sy malemy" -> 102.0f + "3/4 Miadanadana" -> 100.0f + "3/4 Milamina" -> 130.0f + "3/4 Milamindamina" -> 115.0f + "3/4 Milanto" -> 95.0f + "3/4 Milantolanto" -> 110.0f + + // 4/4 + "4/4" -> 102.0f + "4/4 Faingampaingana" -> 105.0f + "4/4 Faingana" -> 121.0f + "4/4 Falifaly" -> 90.0f + "4/4 Famindrana miadana" -> 110.0f + "4/4 Manaraka ny famakian-teny fahatelo" -> 95.0f + "4/4 Mangingina" -> 80.0f + "4/4 Marisidrisika" -> 110.0f + "4/4 Marisika" -> 100.0f + "4/4 Matomatotra" -> 100.0f + "4/4 Miadana" -> 90.0f + "4/4 Miadana Milamina" -> 91.0f + "4/4 Miadana.", "4/4 Miadana. =" -> 85.0f + "4/4 Miadanadana" -> 95.0f + "4/4 Miadanadana =" -> 130.0f + "4/4 Mientanentana milamina" -> 103.0f + "4/4 Milamina" -> 95.0f + "4/4 Milamina =" -> 75.0f + "4/4 Milamindamina" -> 90.0f + "4/4 Milanto" -> 85.0f + "4/4 Milantolanto" -> 95.0f + "4/4 Milantolanto =" -> 80.0f + "4/4 Moderato" -> 105.0f + + // 6/4 + "6/4" -> 135.0f + "6/4 Faingampaingana" -> 126.0f + "6/4 Faingampaingana. Alohan'ny isan'andininy" -> 175.0f + "6/4 Faingampaingana. Mively indroa isam-bara" -> 160.0f + "6/4 Faingampaingana. Mively roa isam-bara" -> 170.0f + "6/4 Faingana" -> 215.0f + "6/4 Faingana. Mively indroa isam-bara" -> 175.0f + "6/4 Manainga" -> 165.0f + "6/4 Miadana" -> 125.0f + "6/4 Miadana be" -> 90.0f + "6/4 Miadana. Mively in-droa isam-bara" -> 90.0f + "6/4 Miadana. Mively indroa isam-bara" -> 100.0f + "6/4 Miadana. Mively roa isam-bara" -> 125.0f + "6/4 Miadanadana" -> 125.0f + "6/4 Miadanadana. Mively roa isam-bara" -> 100.0f + "6/4 Milanto" -> 90.0f + "6/4 Milantolanto" -> 130.0f + "6/4 Mively in-droa isam-bara" -> 170.0f + "6/4 Mively isam-bara" -> 175.0f + + // 7/4 + "7/4" -> 90.0f + + // 9/4 + "9/4 Miadanadana" -> 137.0f + "9/4 Milamindamina" -> 100.0f + "9/4 Mively in-telo isam -bara", "9/4 Mively in-telo isam-bara" -> 153.0f + "9/4 Mively in-telo isam-bara) Milantolanto" -> 165.0f + "9/4 Mively in-telo. Faingampaingana" -> 191.0f + + // Divers + "Malefaka" -> 93.0f + + else -> 120.0f + } } \ No newline at end of file