diff --git a/app/src/main/java/com/mindmachine/mvp/session/TimelineEditorScreen.kt b/app/src/main/java/com/mindmachine/mvp/session/TimelineEditorScreen.kt index 9dcea4d..905e82d 100644 --- a/app/src/main/java/com/mindmachine/mvp/session/TimelineEditorScreen.kt +++ b/app/src/main/java/com/mindmachine/mvp/session/TimelineEditorScreen.kt @@ -266,7 +266,8 @@ internal fun TimelineGraph( (context as? android.app.Activity)?.window?.decorView?.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP) } - val yLabels = if (isVisual) { + // Left axis labels (carrier for audio, flash interval for visual) + val leftYLabels = if (isVisual) { listOf( formatMsLabel(ParameterMapping.logMap01(1f, ParameterRanges.FLASH_INTERVAL_MS_MIN, ParameterRanges.FLASH_INTERVAL_MS_MAX)), formatMsLabel(ParameterMapping.logMap01(0.5f, ParameterRanges.FLASH_INTERVAL_MS_MIN, ParameterRanges.FLASH_INTERVAL_MS_MAX)), @@ -279,6 +280,20 @@ internal fun TimelineGraph( formatHzLabel(ParameterMapping.logMap01(0f, ParameterRanges.CARRIER_HZ_MIN, ParameterRanges.CARRIER_HZ_MAX)), ) } + // Right axis labels (blank interval for visual, binaural for audio) + val rightYLabels = if (isVisual) { + listOf( + formatMsLabel(ParameterMapping.logMap01(1f, ParameterRanges.BLANK_INTERVAL_MS_MIN, ParameterRanges.BLANK_INTERVAL_MS_MAX)), + formatMsLabel(ParameterMapping.logMap01(0.5f, ParameterRanges.BLANK_INTERVAL_MS_MIN, ParameterRanges.BLANK_INTERVAL_MS_MAX)), + formatMsLabel(ParameterMapping.logMap01(0f, ParameterRanges.BLANK_INTERVAL_MS_MIN, ParameterRanges.BLANK_INTERVAL_MS_MAX)), + ) + } else { + listOf( + formatHzLabel(ParameterMapping.logMap01(1f, ParameterRanges.BINAURAL_HZ_MIN, ParameterRanges.BINAURAL_HZ_MAX)), + formatHzLabel(ParameterMapping.logMap01(0.5f, ParameterRanges.BINAURAL_HZ_MIN, ParameterRanges.BINAURAL_HZ_MAX)), + formatHzLabel(ParameterMapping.logMap01(0f, ParameterRanges.BINAURAL_HZ_MIN, ParameterRanges.BINAURAL_HZ_MAX)), + ) + } val xStart = formatTimeLabel(viewport.startSec) val xMid = formatTimeLabel(viewport.startSec + viewport.secondsPerScreen / 2f) val xEnd = formatTimeLabel(viewport.startSec + viewport.secondsPerScreen) @@ -288,12 +303,13 @@ internal fun TimelineGraph( horizontalArrangement = Arrangement.spacedBy(8.dp), verticalAlignment = Alignment.CenterVertically, ) { + // Left Y-axis labels Column( modifier = Modifier.height(190.dp).width(48.dp), verticalArrangement = Arrangement.SpaceBetween, horizontalAlignment = Alignment.End, ) { - yLabels.forEach { label -> + leftYLabels.forEach { label -> Text( text = label, color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.75f),