Fix: DC Farany DC

This commit is contained in:
hasinarak3@gmail.com 2026-03-17 10:12:16 +03:00
parent 15d5674dfa
commit d4174635c4

View file

@ -250,10 +250,10 @@ actual class FMediaPlayer actual constructor(
navigationSteps.add( navigationSteps.add(
NavigationStep( NavigationStep(
marker, marker,
currentIndex, currentIndex,
targetGrid = target targetGrid = target
)) ))
println("Lien DS créé : Saut immédiat à $gridIndex vers Segno $target") println("Lien DS créé : Saut immédiat à $gridIndex vers Segno $target")
} }
@ -292,7 +292,7 @@ actual class FMediaPlayer actual constructor(
val hasDcAfter = metadataList.any { (_, gi, _, _, mk, _, _, _) -> val hasDcAfter = metadataList.any { (_, gi, _, _, mk, _, _, _) ->
(gi ?: 0) > currentIndex && (gi ?: 0) > currentIndex &&
(dcGPattern.matches(mk.trim()) || (dcGPattern.matches(mk.trim()) ||
dcRegex.matches(mk.trim())) dcRegex.matches(mk.trim()))
} }
if (hasDcAfter) { if (hasDcAfter) {
navigationSteps.add( navigationSteps.add(
@ -325,8 +325,8 @@ actual class FMediaPlayer actual constructor(
} }
// Soufflet // Soufflet
marker.trim() == "<" || marker.trim() == ">" || marker.trim() == "<" || marker.trim() == ">" ||
marker.trim().contains("cres", ignoreCase = true) || marker.trim().contains("cres", ignoreCase = true) ||
marker.trim().contains("dim", ignoreCase = true) -> { marker.trim().contains("dim", ignoreCase = true) -> {
val symbol = when { val symbol = when {
marker.trim() == "<" -> '<' marker.trim() == "<" -> '<'
marker.trim() == ">" -> '>' marker.trim() == ">" -> '>'
@ -350,7 +350,7 @@ actual class FMediaPlayer actual constructor(
val explicitDynAfter = metadataList val explicitDynAfter = metadataList
.filter { (_, gi, _, _, mk, _, _, _) -> .filter { (_, gi, _, _, mk, _, _, _) ->
(gi ?: 0) >= pair.endGrid && (gi ?: 0) >= pair.endGrid &&
extractDynamic(mk) != null extractDynamic(mk) != null
} }
.minByOrNull { it.gridIndex ?: 0 } .minByOrNull { it.gridIndex ?: 0 }
?.let { m -> extractDynamic(m.marker) } ?.let { m -> extractDynamic(m.marker) }
@ -411,7 +411,7 @@ actual class FMediaPlayer actual constructor(
val step = navigationSteps.find { val step = navigationSteps.find {
it.gridIndex == currentIndex && it.gridIndex == currentIndex &&
!it.alreadyDone !it.alreadyDone
} }
if (step != null) { if (step != null) {
@ -479,7 +479,7 @@ actual class FMediaPlayer actual constructor(
sequencer?.tempoFactor = 0.0001f sequencer?.tempoFactor = 0.0001f
delay(beatDuration) delay(beatDuration)
// println("et là je saut vers ${step.targetGrid}") // println("et là je saut vers ${step.targetGrid}")
seekToGrid(step.targetGrid) seekToGrid(step.targetGrid)
synthetizer?.channels?.forEach { it?.controlChange(64, 0) } synthetizer?.channels?.forEach { it?.controlChange(64, 0) }
sequencer?.tempoFactor = 1f sequencer?.tempoFactor = 1f
@ -493,7 +493,7 @@ actual class FMediaPlayer actual constructor(
sequencer?.tempoInBPM = targetBpm sequencer?.tempoInBPM = targetBpm
sequencer?.start() sequencer?.start()
} }
// println("Après de sauter bpm=$targetBpm") // println("Après de sauter bpm=$targetBpm")
} }
} }
} }
@ -697,17 +697,17 @@ actual class FMediaPlayer actual constructor(
synthetizer?.channels?.let { channels -> synthetizer?.channels?.let { channels ->
for (i in 0 until 4) { for (i in 0 until 4) {
if (i < channels.size) { if (i < channels.size) {
val userVol = voiceVolumes[i] / 127f val userVol = voiceVolumes[i] / 127f
val globalVol = currentGlobalVolume val globalVol = currentGlobalVolume
val finalVol = (127f * userVol * globalVol * currentDynamicFactor).toInt().coerceIn(0, 127) val finalVol = (127f * userVol * globalVol * currentDynamicFactor).toInt().coerceIn(0, 127)
// println("Voice[$i] user=${voiceVolumes[i]} global=$currentGlobalVolume dynFactor=$currentDynamicFactor → finalVol=$finalVol") // println("Voice[$i] user=${voiceVolumes[i]} global=$currentGlobalVolume dynFactor=$currentDynamicFactor → finalVol=$finalVol")
channels[i].controlChange(7, finalVol) channels[i].controlChange(7, finalVol)
channels[i].controlChange(11, finalVol) channels[i].controlChange(11, finalVol)
if (finalVol == 0) channels[i].controlChange(123, 0) if (finalVol == 0) channels[i].controlChange(123, 0)
/*val targetVolume = voiceVolumes[i].toInt() /*val targetVolume = voiceVolumes[i].toInt()
channels[i].controlChange(7, targetVolume) channels[i].controlChange(7, targetVolume)
@ -728,7 +728,7 @@ actual class FMediaPlayer actual constructor(
actual fun changeInstru(noInstru: Int) { actual fun changeInstru(noInstru: Int) {
val pgm = noInstru val pgm = noInstru
synthetizer?.channels?.let { synthetizer?.channels?.let {
channels -> channels ->
for (i in 0 until 4) { for (i in 0 until 4) {
channels[i].programChange(pgm) channels[i].programChange(pgm)
} }