From 6977ed19be74942cc4189fce15f14e83aff4aa42 Mon Sep 17 00:00:00 2001 From: Moritz Ruth Date: Wed, 12 Mar 2025 00:58:28 +0100 Subject: [PATCH] commit 70 --- .../de/moritzruth/dracula_musical/act/Act2.kt | 216 ++++++++++++++++++ .../dracula_musical/song/DuettMinaJonathan.kt | 2 + .../dracula_musical/song/RepriseDuett.kt | 32 +++ .../dracula_musical/song/StreitDerVampire.kt | 30 +++ .../de/moritzruth/theaterdsl/value/Color.kt | 1 + 5 files changed, 281 insertions(+) create mode 100644 src/main/kotlin/de/moritzruth/dracula_musical/song/RepriseDuett.kt create mode 100644 src/main/kotlin/de/moritzruth/dracula_musical/song/StreitDerVampire.kt diff --git a/src/main/kotlin/de/moritzruth/dracula_musical/act/Act2.kt b/src/main/kotlin/de/moritzruth/dracula_musical/act/Act2.kt index c7833c9..96faefa 100644 --- a/src/main/kotlin/de/moritzruth/dracula_musical/act/Act2.kt +++ b/src/main/kotlin/de/moritzruth/dracula_musical/act/Act2.kt @@ -382,5 +382,221 @@ fun ShowBuilderContext.act2() = act("Zweiter Akt") { BlinderBars.all { it.brightness.off(2.seconds) } } } + + step(StepCue.MusicStart("Umbau (Van Helsing)", 10.seconds)) {} + } + + scene("Uneinigkeit") { + step(StepCue.MusicEnd) { + actors { + +"Backe / von rechts" + +"Timmy / von rechts" + } + + curtainState = CurtainState.OPEN + + onRun { + sidelight.color1.fadeRandomAround(230.degrees, 30.degrees, 2.seconds) + sidelight.color2.fadeRandomAround(230.degrees, 35.degrees, 4.seconds) + sidelight.color3.static(Color(hue = 230.degrees, saturation = 20.percent)) + sidelight.color4.static(Color(hue = 230.degrees, saturation = 20.percent)) + sidelight.brightness.fade(50.percent, 8.seconds) + FrontLights.center { it.brightness.fade(75.percent, 8.seconds) } + } + } + + step(StepCue.Text("Backe", "Bis auf deine neue Freundin.")) { + actors { + +"Ascot / von rechts" + } + } + + step(StepCue.Text("Ascot", "Und wie sieht’s denn hier aus!")) { + actors { + -"Ascot / nach links" + } + } + + step(StepCue.Text("Backe", "Gib mal einen Schluck Blut.")) { + actors { + +"Eloïse / von rechts" + +"Françoise / von rechts" + +"Bernadette / von rechts" + +"Lucy / von rechts" + } + } + + step(StepCue.Text("Eloïse", "Immer direkt von der Quelle trinken.")) { + actors { + +"Ascot / von links" + } + } + + songStreitDerVampire() + + step(StepCue.Text("Vampir 3", "Wenn sie es nicht ist — wer dann?")) { + actors { + +"Hawkins / durch Mitte" + } + } + + step(StepCue.Text("Hawkins", "Geil!")) { + actors { + +"Jonathan / von links" + +"Van Helsing / von links" + +"Dr. Sewart / von links" + } + } + + step(StepCue.Text("Jonathan", "Wo ist Mina?")) { + actors { + +"Dracula / von links" + +"Mina / von links" + } + } + + lightStep(StepCue.Custom("Van Helsing zückt das Kreuz (mit Musik)")) { + BlinderBars.all { + it.brightness.fade(50.percent, 2.seconds) + it.preset.static(StairvilleSplb.Preset.STUB) // switching, hectic + it.presetSpeed.static(100.percent) + } + } + + lightStep(StepCue.Custom("Hawkins entreißt Van Helsing das Kreuz")) { + BlinderBars.all { + it.brightness.off(2.seconds) + it.presetSpeed.off(0.5.seconds) + } + + Washs.both { + it.colorWheelMode.static(CoemarProWash.ColorWheelMode.Red) + it.beamAngle.static(0.percent) + it.pointAtCeiling() + } + } + + lightStep(StepCue.Custom("Musik: Setzt ein")) { + backlightBar.color.static(Color.RED) + backlightBar.brightness.pulse(1.8.seconds, 0.15.seconds, 0.2.seconds, peak = 40.percent, startDelay = 0.seconds) + + Washs.both { it.brightness.pulse(1.8.seconds, 0.15.seconds, 0.3.seconds, startDelay = 0.4.seconds) } + } + + lightStep(StepCue.Custom("Der Vorhang wird geöffnet")) { + FrontLights.all { it.brightness.static(100.percent) } + + backlightBar.color.fade(Color.WARM_WHITE, 0.5.seconds) + backlightBar.brightness.pulseOnce(0.5.seconds, 10.seconds, end = 40.percent) + + sidelight.colors.forEach { it.fade(Color.WARM_WHITE, 0.5.seconds) } + sidelight.brightness.pulseOnce(0.5.seconds, 10.seconds, end = 40.percent) + + Washs.both { + it.pointAtStageCenter() + it.colorWheelMode.static(CoemarProWash.ColorWheelMode.WarmWhite) + it.brightness.pulseOnce(0.5.seconds, 10.seconds) + } + + BlinderBars.all { + it.preset.static(null) + it.white.static(100.percent) + it.color.reset() + it.brightness.pulseOnce(0.5.seconds, 10.seconds) + } + } + } + + scene("Liebe macht blind") { + step(StepCue.Text("Van Helsing", "Natürlich. Kommen Sie.")) { + actors { + -"Van Helsing / durch Mitte" + -"Dr. Sewart / durch Mitte" + -"Dracula / ist verdampft" + -"Eloïse / ist verdampft" + -"Françoise / ist verdampft" + -"Bernadette / ist verdampft" + -"Ascot / ist verdampft" + } + + leftSpotTarget = "Jonathan" + + onRun { + FrontLights.all { it.brightness.off(20.seconds) } + Spots.left.brightness.fade(100.percent, 10.seconds) + backlightBar.brightness.off(20.seconds) + sidelight.brightness.fade(20.percent, 20.seconds) + } + } + + songRepriseDuett() + + lightStep(StepCue.Custom("Jonathan zieht Minas Sarg")) { + Spots.left.brightness.off(6.seconds) + + Tops.both { + it.startRoomMovement(2.0) + it.colorWheelMode.static(FuturelightDmh160.ColorWheelMode.DarkRed) + it.prismMode.static(FuturelightDmh160.PrismMode.FROST) + } + } + + lightStep(StepCue.Custom("Musik: Wechsel in moll")) { + backlightBar.color.static(Color.DARK_BLUE) + backlightBar.brightness.fade(40.percent, 5.seconds) + + sidelight.colors.forEach { it.fade(Color.RED, 10.seconds) } + sidelight.brightness.fade(40.percent, 10.seconds) + } + + lightStep(StepCue.Custom("Musik: Einsetzen der Orgel")) { + backlightBar.color.fade(Color(hue = 359.degrees), 6.seconds) + backlightBar.brightness.fade(60.percent, 5.seconds) + + Washs.both { it.brightness.pulse(1.seconds, 0.1.seconds, 0.2.seconds) } + } + + lightStep(StepCue.Custom("Musik: +2 Takte")) { + sidelight.brightness.fade(75.percent, 5.seconds) + backlightBar.brightness.pulse(1.seconds, 0.1.seconds, 0.2.seconds) + + Washs.both { it.brightness.pulse(1.seconds, 0.1.seconds, 0.2.seconds, startDelay = 0.3.seconds) } + } + + lightStep(StepCue.Custom("1. Beat")) { + BlinderBars.all { + it.preset.static(null) + it.white.static(100.percent) + it.color.reset() + it.brightness.pulseOnce(0.seconds, 0.15.seconds) + } + + sidelight.brightness.off(0.1.seconds) + backlightBar.brightness.off(0.1.seconds) + } + + step(StepCue.Custom("2. Beat")) { + rightSpotTarget = "Jonathan’s Kopf (sofort von weit auf schmal ziehen)" + + onRun { + Spots.right.brightness.fade(start = 100.percent, end = 0.percent, duration = 2.seconds) + } + } + + lightStep(StepCue.Custom("3. Beat")) { + BlinderBars.all { + it.white.reset() + it.color.static(Color.RED) + it.brightness.pulseOnce(0.seconds, 0.15.seconds) + } + + sidelight.brightness.pulseOnce(0.seconds, 0.15.seconds) + + Tops.both { it.brightness.pulseOnce(0.seconds, 0.15.seconds) } + } + + lightStep(StepCue.Custom("4. Beat")) { + backlightBar.brightness.pulseOnce(0.seconds, 0.3.seconds, end = 40.percent) + } } } \ No newline at end of file diff --git a/src/main/kotlin/de/moritzruth/dracula_musical/song/DuettMinaJonathan.kt b/src/main/kotlin/de/moritzruth/dracula_musical/song/DuettMinaJonathan.kt index 1519b78..f3cb4ca 100644 --- a/src/main/kotlin/de/moritzruth/dracula_musical/song/DuettMinaJonathan.kt +++ b/src/main/kotlin/de/moritzruth/dracula_musical/song/DuettMinaJonathan.kt @@ -25,6 +25,8 @@ fun SceneBuilderContext.songDuettMinaJonathan() { it.presetSpeed.static(10.percent) it.brightness.fade(25.percent, 5.seconds) } + + Washs.both { it.brightness.fade(100.percent, 10.seconds) } } lightStep(StepCue.Text("Mina & Jonathan", "Von dem Gefühl im Bauch…")) { diff --git a/src/main/kotlin/de/moritzruth/dracula_musical/song/RepriseDuett.kt b/src/main/kotlin/de/moritzruth/dracula_musical/song/RepriseDuett.kt new file mode 100644 index 0000000..080af26 --- /dev/null +++ b/src/main/kotlin/de/moritzruth/dracula_musical/song/RepriseDuett.kt @@ -0,0 +1,32 @@ +package de.moritzruth.dracula_musical.song + +import de.moritzruth.dracula_musical.device.BlinderBars +import de.moritzruth.dracula_musical.device.CoemarProWash +import de.moritzruth.dracula_musical.device.StairvilleSplb +import de.moritzruth.dracula_musical.device.Washs +import de.moritzruth.theaterdsl.show.SceneBuilderContext +import de.moritzruth.theaterdsl.show.StepCue +import de.moritzruth.theaterdsl.value.percent +import kotlin.time.Duration.Companion.seconds + +fun SceneBuilderContext.songRepriseDuett() { + lightStep(StepCue.MusicStart("Reprise: Duett", 10.seconds)) { + Washs.both { + it.pointAtCeiling() + it.colorWheelMode.static(CoemarProWash.ColorWheelMode.White) + it.magenta.static(100.percent) + it.brightness.fade(100.percent, 10.seconds) + } + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy, pink, warm + it.presetSpeed.static(10.percent) + it.brightness.fade(25.percent, 5.seconds) + } + } + + lightStep(StepCue.MusicEnd) { + BlinderBars.all { it.brightness.off(4.seconds) } + Washs.both { it.brightness.off(4.seconds) } + } +} \ No newline at end of file diff --git a/src/main/kotlin/de/moritzruth/dracula_musical/song/StreitDerVampire.kt b/src/main/kotlin/de/moritzruth/dracula_musical/song/StreitDerVampire.kt new file mode 100644 index 0000000..5556eef --- /dev/null +++ b/src/main/kotlin/de/moritzruth/dracula_musical/song/StreitDerVampire.kt @@ -0,0 +1,30 @@ +package de.moritzruth.dracula_musical.song + +import de.moritzruth.dracula_musical.device.BlinderBars +import de.moritzruth.dracula_musical.device.FrontLights +import de.moritzruth.dracula_musical.device.StairvilleSplb +import de.moritzruth.theaterdsl.show.SceneBuilderContext +import de.moritzruth.theaterdsl.show.StepCue +import de.moritzruth.theaterdsl.value.percent +import kotlin.time.Duration.Companion.minutes +import kotlin.time.Duration.Companion.seconds + +fun SceneBuilderContext.songStreitDerVampire() { + lightStep(StepCue.MusicStart("Streit der Vampire", 1.minutes + 30.seconds)) { + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // chase, single direction + it.presetSpeed.static(40.percent) + it.brightness.fade(25.percent, 1.seconds) + } + + FrontLights.left { it.brightness.sine(5.seconds, 50.percent, 100.percent, 50.percent) } + FrontLights.right { it.brightness.sine(5.seconds, 50.percent, 100.percent, 100.percent) } + } + + lightStep(StepCue.MusicEnd) { + BlinderBars.all { it.brightness.off(2.seconds) } + + FrontLights.left { it.brightness.off(3.seconds) } + FrontLights.right { it.brightness.off(3.seconds) } + } +} \ No newline at end of file diff --git a/src/main/kotlin/de/moritzruth/theaterdsl/value/Color.kt b/src/main/kotlin/de/moritzruth/theaterdsl/value/Color.kt index bbf5729..5456468 100644 --- a/src/main/kotlin/de/moritzruth/theaterdsl/value/Color.kt +++ b/src/main/kotlin/de/moritzruth/theaterdsl/value/Color.kt @@ -62,6 +62,7 @@ data class Color( val WHITE = Color(0.degrees, 0.percent, 100.percent) val BLACK = Color(0.degrees, 0.percent, 0.percent) val RED = Color(0.degrees, 100.percent, 100.percent) + val DARK_BLUE = Color(240.degrees, 100.percent, 100.percent) val WARM_WHITE = Color(30.degrees, 60.percent, 100.percent) }