Fix! Inherit anchor octaves for split notes block
This commit is contained in:
parent
e60acce0c8
commit
8f3ab1ae80
1 changed files with 29 additions and 0 deletions
|
|
@ -1877,6 +1877,35 @@ class Solfa(val sharedScreenModel: SharedScreenModel, private val fileRepository
|
||||||
var anchorNote = ' '
|
var anchorNote = ' '
|
||||||
lineRepeated.toCharArray().forEach {
|
lineRepeated.toCharArray().forEach {
|
||||||
if (it == '§') {
|
if (it == '§') {
|
||||||
|
val rawSplit = splitBlocks.removeAt(0)
|
||||||
|
val anchorSuffix = anchor.replace(Regex("^[drmfslt]"), "")
|
||||||
|
val processedSplit = rawSplit.replace(Regex("\\{([^\\}]+)\\}")) { match ->
|
||||||
|
val innerContent = match.groupValues[1]
|
||||||
|
val updatedInner = innerContent.replace(Regex("([drmfsltDRFSTz])([,']*)")) { noteMatch ->
|
||||||
|
val n = noteMatch.groupValues[1]
|
||||||
|
val oct = noteMatch.groupValues[2]
|
||||||
|
var res = n
|
||||||
|
res += anchorSuffix
|
||||||
|
if (oct.isEmpty()) {
|
||||||
|
val noteChar = n[0]
|
||||||
|
if (
|
||||||
|
(anchorNote == 'r' && noteChar in listOf('d', 'D'))
|
||||||
|
|| (anchorNote == 'm' && noteChar in listOf('d', 'D', 'r', 'R'))
|
||||||
|
|| (anchorNote == 'f' && noteChar in listOf('d', 'D', 'r', 'R', 'm', 'M'))
|
||||||
|
|| (anchorNote == 's' && noteChar !in listOf('s', 'S', 'l', 'L', 't', 'T'))
|
||||||
|
|| (anchorNote == 'l' && noteChar !in listOf('l', 'L', 't', 'T'))
|
||||||
|
|| (anchorNote == 't' && noteChar !in listOf('t', 'T'))
|
||||||
|
) {
|
||||||
|
res += '\''
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
res += oct
|
||||||
|
}
|
||||||
|
res.replace(",'", "").replace("',", "").replace(",'", "").replace("',", "")
|
||||||
|
}
|
||||||
|
"{$updatedInner}"
|
||||||
|
}
|
||||||
|
splitBlocks.add(processedSplit)
|
||||||
noteChar2 += "§"
|
noteChar2 += "§"
|
||||||
return@forEach
|
return@forEach
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue