1
0
Fork 0

Add debug-only config for lyrics time series

This commit is contained in:
ivan tkachenko 2025-07-19 19:08:53 +03:00
parent 118eecbb59
commit 2229fa3545
1 changed files with 17 additions and 5 deletions

View File

@ -531,7 +531,13 @@ namespace MuzikaGromche
}
}
public float[] LyricsTimeSeries { get; private set; }
public float[] _LyricsTimeSeries = null;
public float[] LyricsTimeSeries
{
get => Config.LyricsTimeSeriesOverride ?? _LyricsTimeSeries;
private set => _LyricsTimeSeries = value;
}
public string[] LyricsLines { get; private set; }
public (float, string)[] Lyrics
{
@ -888,9 +894,9 @@ namespace MuzikaGromche
if (Config.DisplayLyrics.Value)
{
var index = loopOffsetSpan.GetLastIndex(track.LyricsTimeSeries);
if (index != null)
if (index is int i && i < track.LyricsLines.Length)
{
var text = track.LyricsLines[(int)index];
var text = track.LyricsLines[i];
events.Add(new LyricsEvent(text));
}
}
@ -1169,6 +1175,7 @@ namespace MuzikaGromche
public static float? FadeOutBeatOverride { get; private set; } = null;
public static float? FadeOutDurationOverride { get; private set; } = null;
public static float[] FlickerLightsTimeSeriesOverride { get; private set; } = null;
public static float[] LyricsTimeSeriesOverride { get; private set; } = null;
public static float? BeatsOffsetOverride { get; private set; } = null;
public static float? ColorTransitionInOverride { get; private set; } = null;
public static float? ColorTransitionOutOverride { get; private set; } = null;
@ -1374,6 +1381,7 @@ namespace MuzikaGromche
SyncedEntry<float> fadeOutBeatSyncedEntry = null;
SyncedEntry<float> fadeOutDurationSyncedEntry = null;
SyncedEntry<string> flickerLightsTimeSeriesSyncedEntry = null;
SyncedEntry<string> lyricsTimeSeriesSyncedEntry = null;
SyncedEntry<float> beatsOffsetSyncedEntry = null;
SyncedEntry<float> colorTransitionInSyncedEntry = null;
SyncedEntry<float> colorTransitionOutSyncedEntry = null;
@ -1395,8 +1403,10 @@ namespace MuzikaGromche
new ConfigDescription("The beat at which to start fading out", new AcceptableValueRange<float>(-1000f, 0)));
fadeOutDurationSyncedEntry = configFile.BindSyncedEntry(section, "Fade Out Duration", 0f,
new ConfigDescription("Duration of fading out", new AcceptableValueRange<float>(0, 100)));
flickerLightsTimeSeriesSyncedEntry = configFile.BindSyncedEntry(section, "Flicker Lights", "",
new ConfigDescription("Time series of beat offsets when to flicker the lights"));
flickerLightsTimeSeriesSyncedEntry = configFile.BindSyncedEntry(section, "Flicker Lights Time Series", "",
new ConfigDescription("Time series of beat offsets when to flicker the lights."));
lyricsTimeSeriesSyncedEntry = configFile.BindSyncedEntry(section, "Lyrics Time Series", "",
new ConfigDescription("Time series of beat offsets when to show lyrics lines."));
beatsOffsetSyncedEntry = configFile.BindSyncedEntry(section, "Beats Offset", 0f,
new ConfigDescription("How much to offset the whole beat. More is later", new AcceptableValueRange<float>(-0.5f, 0.5f)));
colorTransitionInSyncedEntry = configFile.BindSyncedEntry(section, "Color Transition In", 0.25f,
@ -1410,6 +1420,7 @@ namespace MuzikaGromche
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(fadeOutBeatSyncedEntry.Entry, floatSliderOptions));
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(fadeOutDurationSyncedEntry.Entry, floatSliderOptions));
LethalConfigManager.AddConfigItem(new TextInputFieldConfigItem(flickerLightsTimeSeriesSyncedEntry.Entry, Default(new TextInputFieldOptions())));
LethalConfigManager.AddConfigItem(new TextInputFieldConfigItem(lyricsTimeSeriesSyncedEntry.Entry, Default(new TextInputFieldOptions())));
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(beatsOffsetSyncedEntry.Entry, floatSliderOptions));
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(colorTransitionInSyncedEntry.Entry, floatSliderOptions));
LethalConfigManager.AddConfigItem(new FloatSliderConfigItem(colorTransitionOutSyncedEntry.Entry, floatSliderOptions));
@ -1418,6 +1429,7 @@ namespace MuzikaGromche
registerStruct(fadeOutBeatSyncedEntry, t => t._FadeOutBeat, x => FadeOutBeatOverride = x);
registerStruct(fadeOutDurationSyncedEntry, t => t._FadeOutDuration, x => FadeOutDurationOverride = x);
registerArray(flickerLightsTimeSeriesSyncedEntry, t => t._FlickerLightsTimeSeries, xs => FlickerLightsTimeSeriesOverride = xs, float.Parse, sort: true);
registerArray(lyricsTimeSeriesSyncedEntry, t => t._LyricsTimeSeries, xs => LyricsTimeSeriesOverride = xs, float.Parse, sort: true);
registerStruct(beatsOffsetSyncedEntry, t => t._BeatsOffset, x => BeatsOffsetOverride = x);
registerStruct(colorTransitionInSyncedEntry, t => t._ColorTransitionIn, x => ColorTransitionInOverride = x);
registerStruct(colorTransitionOutSyncedEntry, t => t._ColorTransitionOut, x => ColorTransitionOutOverride = x);