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
|
||||
N1:s,#l,ssfmdtdrtddfffslmmmrdr#rsttlsdsssslsssttlsdsmmmrdrs,sssfmd,d,fldlsmmfslsfmrffslts#t,sdrmfs-ldtdmrd
|
||||
N2:#s,smmrdssstssTllldddddllttr4mddt4ddt4dmd5tsmmmrddTldffmdD4-D-drrmffmsstddTddlssdts
|
||||
N3:#rsdtlsmrmfrmmfffmffF4frf4smmrrrfmmrfffmssF4ssddtlssmffltdsl4Tlsssr'r'dsmfsls-drrmsfm
|
||||
N4:#f,sd4ls4ddffld#s,ffrrrrss6dds4dds#l,sssd'ddllrr#f,ssd7f4ddD4-D-rs5dfmrdlm,-frs4d
|
||||
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.
|
||||
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
|
||||
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
|
||||
N2:#s,smmrdssstssTllldddddllttr4mddt4ddt4dmd5tsmmmrddTldffmdD4z-DdrrmffmsstddTddlssdts
|
||||
N3:#rsdtlsmrmfrmmfffmffF4frf4smmrrrfmmrfffmssF4ssddtlssmffltdsl4z-Tlsssr'r'dsmfsls-drrmsfm
|
||||
N4:#f,sd4ls4ddffld#s,ffrrrrss6dds4dds#l,sssd'ddllrr#f,ssd7f4ddD4z-Drs5df'mrdlm-f'r,s4d
|
||||
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 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 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")
|
||||
.replace("\$Q", "\uD834\uDD10")
|
||||
.replace(Regex("^[<=>]$"), "")
|
||||
.replace($$"$T", "")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@ class ParseULine (var line: String, var measure: Int) {
|
|||
'2' to listOf("." , ".-," , ":" , ":-,"),
|
||||
'3' 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()
|
||||
iterable.repeat(nTimes)
|
||||
}.replace("y", "2z11").toCharArray()
|
||||
|
||||
var actualComment = ""
|
||||
parsedChars.forEach {
|
||||
if (inComment) {
|
||||
|
|
@ -85,7 +87,7 @@ class ParseULine (var line: String, var measure: Int) {
|
|||
'G' -> repeat(4) { parseUStage2('4') }
|
||||
'C' -> repeat(3) { 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')}
|
||||
'9' -> repeat(3) { parseUStage2('3')}
|
||||
'A' -> run {
|
||||
|
|
@ -103,7 +105,12 @@ class ParseULine (var line: String, var measure: Int) {
|
|||
if (charX == 'z') {
|
||||
sequence = sequence.replace('-', charX)
|
||||
}
|
||||
cursorX += codeChar.toString().toInt()
|
||||
if (codeChar == 't') {
|
||||
cursorX += 4
|
||||
sequence = $$"$TDD:"
|
||||
} else {
|
||||
cursorX += codeChar.toString().toInt()
|
||||
}
|
||||
if (sequence.contains(':')) {
|
||||
val bar: Int = (cursorX / 4) % measure
|
||||
var replacement = ':'
|
||||
|
|
|
|||
|
|
@ -34,7 +34,10 @@ import androidx.compose.ui.unit.TextUnit
|
|||
import androidx.compose.ui.unit.sp
|
||||
import mg.dot.feufaro.data.GridTUOData
|
||||
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?) {
|
||||
var mutableNoteVersion: Int by mutableStateOf(0)
|
||||
private var lyrics: MutableList<POneStanzaLyrics> = mutableListOf()
|
||||
|
|
@ -82,6 +85,9 @@ class TimeUnitObject (val pTemplate: PTemplate, val prevTUO: TimeUnitObject?) {
|
|||
}
|
||||
return null
|
||||
}
|
||||
fun isTriolet(): Boolean {
|
||||
return pTemplate.hasMarker($$"$T")
|
||||
}
|
||||
fun addLyrics(lyricsIn: POneStanzaLyrics) {
|
||||
lyrics.add(lyricsIn)
|
||||
}
|
||||
|
|
@ -206,6 +212,23 @@ fun TimeUnitComposable(
|
|||
fontWeight = FontWeight.Bold
|
||||
}
|
||||
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)) {
|
||||
println("LastHairpin: ${TimeUnitObject.lastHairPinSymbol} ${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 xEnd = if (lastHairPinSymbol == '>') size.width/2 else -size.width * (tuo.numBlock - hairPinStart)
|
||||
val yHeight = with(density) { lineHeightDp.toPx()}
|
||||
drawLine(
|
||||
Color.DarkGray,
|
||||
start = Offset(x=xStart, y=0f),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue