diff --git a/composeApp/src/commonMain/composeResources/files/ffpm-57.txt b/composeApp/src/commonMain/composeResources/files/ffpm-57.txt index d4eba97..8e0b1fb 100644 --- a/composeApp/src/commonMain/composeResources/files/ffpm-57.txt +++ b/composeApp/src/commonMain/composeResources/files/ffpm-57.txt @@ -3,7 +3,8 @@ U0:zC:4 4444 442z2/4 6244 8${DC}2z2/4 4444 622z2/4 4444 622z2/4 4444 82z2/4 4444 N1:#s,slsdsrsm/ #l,smrddrm/ mdltdrmf/ smdrmfsl'/ rsdfmrm/ mdltdrmf/ smdrmfsl'/ rsdfmrd N2:#m,sls6/ tttlmss/ SmlSl4/ tsdtd4/ tdltdtt/ SmlSl4/ tsdtd4/ tdltdts N3:#s,slsdstsd/ rmmmdtd/ tdmrmrDr/ #t,rmsfsfmf/ ssffslS/ tdmrmrDr/ rmsfsfmf/ ssffsfm -N4:#d,slsmsrsd/ sSSllsd/ #m, mldtlflr/ sdmr#s,dldf/ fmmrdfm/ m, ldtlf, lr/ sdmrdldf/ fmmrdsd +N4:#d,slsmsrsd/ sSSllsd/ #m, mldtlflr/ sd#s,mrdldf/ fmmrdfm/ m, ldtlf, lr/ sdmrdldf/ fmmrdsd +O4:${N:New}N4:#d,slsmsrsd/ sSSllsd/ #m, mldtlflr/ sd#s,mrdldf/ fmfrdfm/ m, ldtlf, lr/ sdmrdldf/ fmfrdsd Y1:Izao No_ely mamy\ izao/No ihobi_antsika/${D:Fa noresen’ny aim-baovao/Ny fa\hafatesantsika:/}Ny Zanak’Andriamanitra,/I\zay Tompom-boninahitra,/Nandao ny lapan-dRainy/Nateraka ho olona/Hamonjy sy hamelona/Antsika sombin’ny\ ainy. Y2:Velomy ny fisaorana,/Na kely monja aza,/${D:Ka aoka\ izay navotana/Hi_ara-hankalaza/}Ny Zanak’Andriamanitra/Ni_ala tao an-danitra/Hanafaka\ alahelo;/Ry vo_avonjy ô! derao/Jesosy I\lay Mpanjakanao/He, gaina\ izao ny helo! Y3:Izao Andri_amanitra/Dia faly, amintsika:/${D:Jesosy, Tompon-danitra./No tonga namantsika;/}Ho re hatrany lavitra/Fa fo_in’Andriamanitra/I\lay sitraky ny fony/Hitondra fahori_ana,/Hi_ari-pijali_ana/Ho solon’ny mpikomy 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 efe9ced..a2a9393 100644 --- a/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt +++ b/composeApp/src/commonMain/kotlin/mg/dot/feufaro/solfa/Solfa.kt @@ -368,10 +368,10 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository } } } - if (voiceNumber == 1) { + /*if (voiceNumber == 1) { N.add(0, POneVoiceNote()) - } - N.add(voiceNumber, newN) + }*/ + N.addWithPadding(voiceNumber, newN) } private fun loadT(line: String) { templateString = line @@ -641,4 +641,19 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository L[i].appendDSLyrics(stanzaNumber, lyricsItem) } } + fun MutableList.addWithPadding(index: Int, element: POneVoiceNote) { + if (index < this.size) { + // L'index existe déjà, on remplace l'élément. + this[index] = element + } else { + // L'index n'existe pas encore. + // On remplit d'abord les "trous" avec des notes par défaut. + for (i in this.size until index) { + this.add(POneVoiceNote()) + } + // Puis on ajoute le nouvel élément à la fin de la liste, + // ce qui est maintenant l'index cible. + this.add(element) + } + } } \ No newline at end of file