Triolet
This commit is contained in:
parent
b9021a7e00
commit
c4cb836bd5
4 changed files with 41 additions and 11 deletions
|
|
@ -1,9 +1,9 @@
|
||||||
M0:|c:Eb|m:2/4|t:FFPM 546 Haleloia, Haleloia, Jeso No Mpamonjiko|a:H. Rabeony 1860 eo ho eo - 1956|h:H. Rabeony 1860 eo ho eo - 1956|r:8.7.8.7.D.
|
M0:|c:Eb|m:2/4|t:FF 33 Inty Aho Jesoa!|a:RATSIMBA Manahasaha|h:ANDRIAMAMPIANINA Landy
|
||||||
U0:z4:z224y62yy62yy62yy624t4yyy624t4yyy624t4yyy44t(111)18ty62yy(22)yyy6z2zG
|
U0:z4:z224y62yy62yy62yy624t4yyy624t4yyy624t4yyy44t(111)18ty62yy(22)yyy6z2zG
|
||||||
N1:s,#l,ssfmdtdrtddfffslmmmrdr#rsttlsdsssslsssttlsdsmmmrdrs,sssfmd,d,fldlsmmfslsfmrffslts#t,sdrmfs-ldtdmrd
|
N1:s,#l,ssfmdtdrtddfffslmmmrdr#rsttlsdsssslsssttlsdsmmmrdrs,sssfmd,d,fldlsmmfslsfmrffslts#t,sdrmfs-ldtdmrd
|
||||||
N2:#s,smmrdssstssTllldddddllttr4mddt4ddt4dmd5tsmmmrddTldffmdD4-D-drrmffmsstddTddlssdts
|
N2:#s,smmrdssstssTllldddddllttr4mddt4ddt4dmd5tsmmmrddTldffmdD4z-DdrrmffmsstddTddlssdts
|
||||||
N3:#rsdtlsmrmfrmmfffmffF4frf4smmrrrfmmrfffmssF4ssddtlssmffltdsl4Tlsssr'r'dsmfsls-drrmsfm
|
N3:#rsdtlsmrmfrmmfffmffF4frf4smmrrrfmmrfffmssF4ssddtlssmffltdsl4z-Tlsssr'r'dsmfsls-drrmsfm
|
||||||
N4:#f,sd4ls4ddffld#s,ffrrrrss6dds4dds#l,sssd'ddllrr#f,ssd7f4ddD4-D-rs5dfmrdlm,-frs4d
|
N4:#f,sd4ls4ddffld#s,ffrrrrss6dds4dds#l,sssd'ddllrr#f,ssd7f4ddD4z-Drs5df'mrdlm-f'r,s4d
|
||||||
Y1:Inty aho Jesoa !/Miantso ahy Hianao/Na dia tsy mendrika e/Manolo-tena izao/Hianao no nifidy/Tsy haiko ny handà/‘Ty antso sarobidy/Ry Tompo, mamelà/Ny heloko rehetra/Diovy aho, havaozy/Ho olom-baovao/Hanao ny sitrakao/Ho mendrika tokoa/Ny antsonao Jesoa.
|
Y1:Inty a\ho Jesoa!/Mi_antso a\hy Hianao/Na dia tsy mendrika\ e/Manolo-tena\ izao/Hiana_o no nifidy/Tsy haiko ny handà/‘Ty antso sarobidy/Ry Tompo, mamelà/Ny heloko rehetra/Di_ovy a\ho, havaozy/Ho olom-ba_ovao/Hanao ny sitrakao/Ho mendrika toko_a/Ny antsonao Jesoa.
|
||||||
Y2:Inty aho Jeso miantso ahy Hianao/Ny fahalemeko anie/Ry Tompo fantatrao/Hianao no nifidy/Sy maniraka ahy/Avy Aminao Jesoa/Ny herin’ny fanahy/Ho entiko manao/Ny asa atolotrao/Fa sarotra e ny dia/Ry Tompo manampia/Ho mendrika tokoa/Ny antsonao Jesoa
|
Y2:Inty a\ho Jeso mi_antso a\hy Hianao/Ny fa\halemeko\ anie/Ry Tompo fantatrao/Hiana_o no nifidy/Sy he maniraka\ a\hy/Avy\ Ami_2nao Jesoa/Ny herin’ny fana\hy/Ho entiko mana_o/Ny asa atolotrao/Fa sarotra\ e ny dia/Ry Tompo manampia/Ho mendrika toko_a/Ny antsonao Jesoa
|
||||||
Y3:Inty aho Jesoa/Miantso ahy Hianao/Mba ho fahazavan’/Izao tontolo izao/Hianao no nifidy ahy/Ho fanasina/Hanefa ny adidy/Lehibe sy masina/Koa hamasino, Tompo/Fa vonona aho hanompo/Hombay ny herinao/Hitondra aim-baovao/Ho mendrika tokoa/Ny antsonao Jesoa
|
Y3:Inty a\ho Jesoa/Mi_antso a\hy Hianao/Mba ho fahazava\n’/Izao tontolo\ izao/Hiana_o no nifidy ahy\Ho fanasina/Hanefa ny adidy/Le\hibe sy masina/Koa hamasino, Tompo/Fa vonona\ a\ho hanompo/Hombay ny herinao/Hitondra aim-baovao/Ho mendrika toko_a/Ny antsonao Jesoa
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ class PTemplate (val template: String, val separatorAfter: String, private val m
|
||||||
it.replace(Regex("^\\$\\{([a-z]:)?(.*)\\}"), "$2")
|
it.replace(Regex("^\\$\\{([a-z]:)?(.*)\\}"), "$2")
|
||||||
.replace("\$Q", "\uD834\uDD10")
|
.replace("\$Q", "\uD834\uDD10")
|
||||||
.replace(Regex("^[<=>]$"), "")
|
.replace(Regex("^[<=>]$"), "")
|
||||||
|
.replace($$"$T", "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,8 @@ class ParseULine (var line: String, var measure: Int) {
|
||||||
'2' to listOf("." , ".-," , ":" , ":-,"),
|
'2' to listOf("." , ".-," , ":" , ":-,"),
|
||||||
'3' to listOf(".-," , ".-:" , ":-," , ":-."),
|
'3' to listOf(".-," , ".-:" , ":-," , ":-."),
|
||||||
'4' to listOf(":" , ".-;-," , ":-." , ":-.-,"),
|
'4' to listOf(":" , ".-;-," , ":-." , ":-.-,"),
|
||||||
'y' to listOf(".,D:", ".-,:D,", ":,D.", ":-,.D,")
|
'y' to listOf(".,D:", ".-,:D,", ":,D.", ":-,.D,"),
|
||||||
|
't' to listOf("DD", "DD", "DD", "DD")
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -46,6 +47,7 @@ class ParseULine (var line: String, var measure: Int) {
|
||||||
val nTimes = nbIteration.toInt()
|
val nTimes = nbIteration.toInt()
|
||||||
iterable.repeat(nTimes)
|
iterable.repeat(nTimes)
|
||||||
}.replace("y", "2z11").toCharArray()
|
}.replace("y", "2z11").toCharArray()
|
||||||
|
|
||||||
var actualComment = ""
|
var actualComment = ""
|
||||||
parsedChars.forEach {
|
parsedChars.forEach {
|
||||||
if (inComment) {
|
if (inComment) {
|
||||||
|
|
@ -85,7 +87,7 @@ class ParseULine (var line: String, var measure: Int) {
|
||||||
'G' -> repeat(4) { parseUStage2('4') }
|
'G' -> repeat(4) { parseUStage2('4') }
|
||||||
'C' -> repeat(3) { parseUStage2('4') }
|
'C' -> repeat(3) { parseUStage2('4') }
|
||||||
'8' -> repeat(2) { parseUStage2('4') }
|
'8' -> repeat(2) { parseUStage2('4') }
|
||||||
'4', '3', '2', '1' -> parseUStage2(it)
|
'4', '3', '2', '1', 't' -> parseUStage2(it)
|
||||||
'6' -> repeat(2) { parseUStage2('3')}
|
'6' -> repeat(2) { parseUStage2('3')}
|
||||||
'9' -> repeat(3) { parseUStage2('3')}
|
'9' -> repeat(3) { parseUStage2('3')}
|
||||||
'A' -> run {
|
'A' -> run {
|
||||||
|
|
@ -103,7 +105,12 @@ class ParseULine (var line: String, var measure: Int) {
|
||||||
if (charX == 'z') {
|
if (charX == 'z') {
|
||||||
sequence = sequence.replace('-', charX)
|
sequence = sequence.replace('-', charX)
|
||||||
}
|
}
|
||||||
cursorX += codeChar.toString().toInt()
|
if (codeChar == 't') {
|
||||||
|
cursorX += 4
|
||||||
|
sequence = $$"$TDD:"
|
||||||
|
} else {
|
||||||
|
cursorX += codeChar.toString().toInt()
|
||||||
|
}
|
||||||
if (sequence.contains(':')) {
|
if (sequence.contains(':')) {
|
||||||
val bar: Int = (cursorX / 4) % measure
|
val bar: Int = (cursorX / 4) % measure
|
||||||
var replacement = ':'
|
var replacement = ':'
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,10 @@ import androidx.compose.ui.unit.TextUnit
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import mg.dot.feufaro.data.GridTUOData
|
import mg.dot.feufaro.data.GridTUOData
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
import androidx.compose.ui.geometry.Size
|
||||||
|
import androidx.compose.ui.graphics.drawscope.Stroke
|
||||||
|
|
||||||
|
val FEUFAROO_TRIOLET_COLOR = Color.DarkGray
|
||||||
class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?) {
|
class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?) {
|
||||||
var mutableNoteVersion: Int by mutableStateOf(0)
|
var mutableNoteVersion: Int by mutableStateOf(0)
|
||||||
private var lyrics: MutableList<POneStanzaLyrics> = mutableListOf()
|
private var lyrics: MutableList<POneStanzaLyrics> = mutableListOf()
|
||||||
|
|
@ -82,6 +85,9 @@ class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?) {
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
fun isTriolet(): Boolean {
|
||||||
|
return pTemplate.hasMarker($$"$T")
|
||||||
|
}
|
||||||
fun addLyrics(lyricsIn: POneStanzaLyrics) {
|
fun addLyrics(lyricsIn: POneStanzaLyrics) {
|
||||||
lyrics.add(lyricsIn)
|
lyrics.add(lyricsIn)
|
||||||
}
|
}
|
||||||
|
|
@ -206,6 +212,23 @@ fun TimeUnitComposable(
|
||||||
fontWeight = FontWeight.Bold
|
fontWeight = FontWeight.Bold
|
||||||
}
|
}
|
||||||
val hairPinSymbol = tuo.hasHairPin()
|
val hairPinSymbol = tuo.hasHairPin()
|
||||||
|
val yHeight = with(density) { lineHeightDp.toPx()}
|
||||||
|
|
||||||
|
if (tuo.isTriolet()) {
|
||||||
|
Canvas(modifier = Modifier.fillMaxSize()) {
|
||||||
|
val arcWidth = with(density) { size.width * 0.75f}
|
||||||
|
drawArc(
|
||||||
|
color = FEUFAROO_TRIOLET_COLOR,
|
||||||
|
startAngle = 200f,
|
||||||
|
sweepAngle = 140f,
|
||||||
|
useCenter = false,
|
||||||
|
topLeft = Offset(0f, yHeight / 2),
|
||||||
|
size = Size(arcWidth, yHeight),
|
||||||
|
style = Stroke(width = 2f)
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
if ((hairPinSymbol == '=') && (TimeUnitObject.lastHairPinSymbol != null)) {
|
if ((hairPinSymbol == '=') && (TimeUnitObject.lastHairPinSymbol != null)) {
|
||||||
println("LastHairpin: ${TimeUnitObject.lastHairPinSymbol} ${TimeUnitObject.lastHairPinStart}")
|
println("LastHairpin: ${TimeUnitObject.lastHairPinSymbol} ${TimeUnitObject.lastHairPinStart}")
|
||||||
val hairPinStart = TimeUnitObject.lastHairPinStart
|
val hairPinStart = TimeUnitObject.lastHairPinStart
|
||||||
|
|
@ -218,7 +241,6 @@ fun TimeUnitComposable(
|
||||||
) {
|
) {
|
||||||
val xStart = if (lastHairPinSymbol == '>') -size.width * (tuo.numBlock - hairPinStart) else size.width/2
|
val xStart = if (lastHairPinSymbol == '>') -size.width * (tuo.numBlock - hairPinStart) else size.width/2
|
||||||
val xEnd = if (lastHairPinSymbol == '>') size.width/2 else -size.width * (tuo.numBlock - hairPinStart)
|
val xEnd = if (lastHairPinSymbol == '>') size.width/2 else -size.width * (tuo.numBlock - hairPinStart)
|
||||||
val yHeight = with(density) { lineHeightDp.toPx()}
|
|
||||||
drawLine(
|
drawLine(
|
||||||
Color.DarkGray,
|
Color.DarkGray,
|
||||||
start = Offset(x=xStart, y=0f),
|
start = Offset(x=xStart, y=0f),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue