diff --git a/src/main/kotlin/de/moritzruth/dracula_musical/act/Act1.kt b/src/main/kotlin/de/moritzruth/dracula_musical/act/Act1.kt index 68a9c2b..fd01651 100644 --- a/src/main/kotlin/de/moritzruth/dracula_musical/act/Act1.kt +++ b/src/main/kotlin/de/moritzruth/dracula_musical/act/Act1.kt @@ -171,6 +171,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") { step(StepCue.Text("Mina", "Es gibt hier noch mehr Irre.")) { actors { -"Mina" + +"Lucy" } } } @@ -455,4 +456,18 @@ fun ShowBuilderContext.act1() = act("Erster Akt") { songEsIstAngerichtet() songDraculasZorn() } + + scene("Ein Sammlerstück") { + step(StepCue.Custom("Die Vampire saugen Timmy aus")) { + actors { + +"Jonathan" + } + + onRun { + backlightBar.brightness.fade(2.percent, 6.seconds) + } + } + + songFinaleErsterAkt() + } } \ No newline at end of file diff --git a/src/main/kotlin/de/moritzruth/dracula_musical/song/DraculasZorn.kt b/src/main/kotlin/de/moritzruth/dracula_musical/song/DraculasZorn.kt index 3ab57e1..18c9482 100644 --- a/src/main/kotlin/de/moritzruth/dracula_musical/song/DraculasZorn.kt +++ b/src/main/kotlin/de/moritzruth/dracula_musical/song/DraculasZorn.kt @@ -1,6 +1,7 @@ package de.moritzruth.dracula_musical.song import de.moritzruth.dracula_musical.device.* +import de.moritzruth.theaterdsl.device.reset import de.moritzruth.theaterdsl.show.SceneBuilderContext import de.moritzruth.theaterdsl.show.StepCue import de.moritzruth.theaterdsl.value.Color @@ -9,6 +10,9 @@ import de.moritzruth.theaterdsl.value.percent import kotlin.time.Duration.Companion.minutes import kotlin.time.Duration.Companion.seconds +private fun StairvilleTlb.pulseSlow() = brightness.pulse(1.5.seconds, 0.15.seconds, 0.2.seconds, startDelay = 0.seconds, peak = 40.percent) +private fun StairvilleTlb.pulseFast() = brightness.pulse(0.5.seconds, 0.1.seconds, 0.2.seconds, startDelay = 0.seconds, peak = 40.percent) + fun SceneBuilderContext.songDraculasZorn() { step(StepCue.MusicStart("Draculas Zorn", 3.minutes + 50.seconds)) { actors { @@ -21,7 +25,7 @@ fun SceneBuilderContext.songDraculasZorn() { Spots.right.brightness.static(100.percent) backlightBar.color.fade(Color(hue = 0.degrees, saturation = 100.percent), 10.seconds) - backlightBar.brightness.pulse(0.5.seconds, 0.1.seconds, 0.2.seconds, startDelay = 0.seconds, peak = 40.percent) + backlightBar.pulseFast() sidelight.brightness.off(5.seconds) @@ -39,11 +43,11 @@ fun SceneBuilderContext.songDraculasZorn() { } } - step(StepCue.Text("Dracula", "Jeder erzittert vor meiner Macht!", "Ende")) { + step(StepCue.Custom("Musik: Takt nach »Macht«")) { rightSpotTarget = "Dracula" onRun { - backlightBar.brightness.pulse(1.seconds, 0.1.seconds, 0.2.seconds, startDelay = 0.seconds, peak = 40.percent) + backlightBar.pulseSlow() BlinderBars.all { it.brightness.fade(10.percent, 1.seconds) @@ -77,7 +81,7 @@ fun SceneBuilderContext.songDraculasZorn() { } lightStep(StepCue.Text("Dracula", "Ich bin ja kein Idiot!", "letztes Wort")) { - backlightBar.brightness.pulseOnce(0.1.seconds, 1.seconds, end = 20.percent) + backlightBar.pulseFast() BlinderBars.all { it.preset.static(StairvilleSplb.Preset.STUB) // red, chase, back-and-forth @@ -87,6 +91,7 @@ fun SceneBuilderContext.songDraculasZorn() { lightStep(StepCue.Text("Bernadette", "Er ist bei uns eingebrochen", "Anfang")) { sidelight.brightness.fade(40.percent, 10.seconds) + backlightBar.pulseSlow() FrontLights.all { it.brightness.fade(75.percent, 10.seconds) } Washs.both { it.brightness.pulse(1.5.seconds, 0.1.seconds, 0.4.seconds) } @@ -98,6 +103,7 @@ fun SceneBuilderContext.songDraculasZorn() { } lightStep(StepCue.Text("Alle", "Er ist schuld…", "erste Silbe")) { + backlightBar.brightness.off(0.2.seconds) BlinderBars.all { it.brightness.fade(50.percent, 0.1.seconds) } Washs.both { it.brightness.fade(100.percent, 0.1.seconds) } } @@ -133,7 +139,7 @@ fun SceneBuilderContext.songDraculasZorn() { } lightStep(StepCue.Custom("Musik: Fill-in")) { - backlightBar.color.fade(Color(hue = 300.degrees, saturation = 70.percent), 2.seconds) + backlightBar.color.fade(Color.WARM_WHITE, 2.seconds) backlightBar.brightness.fade(50.percent, 2.seconds) Washs.both { @@ -157,7 +163,7 @@ fun SceneBuilderContext.songDraculasZorn() { } lightStep(StepCue.Custom("Musik: Einsatz der E-Gitarre")) { - backlightBar.color.fade(Color(hue = 359.degrees, saturation = 10.percent), 1.5.seconds) + backlightBar.color.fade(Color(hue = 0.degrees, saturation = 100.percent), 2.seconds) backlightBar.brightness.fade(75.percent, 2.seconds) sidelight.brightness.fade(50.percent, 10.seconds) @@ -169,12 +175,14 @@ fun SceneBuilderContext.songDraculasZorn() { } lightStep(StepCue.Text("Dracula", "Ist das klar?", "letzte Silbe")) { - backlightBar.color.fade(Color(hue = 359.degrees, saturation = 80.percent), 2.seconds) - backlightBar.brightness.fade(40.percent, 2.seconds) + backlightBar.pulseFast() Washs.both { it.brightness.ramp(0.7.seconds, 100.percent, 50.percent) } } lightStep(StepCue.Text("Alle", "Ja, völlig klar!", "Anfang")) { + backlightBar.brightness.sine(1.5.seconds) + backlightBar.color.fade(Color(hue = 0.degrees, saturation = 0.percent), 3.seconds) + Tops.both { it.brightness.off(3.seconds) it.startRoomMovement(6.0) @@ -193,7 +201,6 @@ fun SceneBuilderContext.songDraculasZorn() { } lightStep(StepCue.Text("Alle", "…Dracula", "Anfang")) { - backlightBar.color.fade(Color(hue = 359.degrees, saturation = 0.percent), 3.seconds) backlightBar.brightness.fade(80.percent, 2.seconds) Washs.both { @@ -239,7 +246,7 @@ fun SceneBuilderContext.songDraculasZorn() { } lightStep(StepCue.Custom("Musik: Einsatz der E-Gitarre")) { - backlightBar.strobeSpeed.fade(80.percent, 0.5.seconds) + backlightBar.strobeSpeed.fade(80.percent, 3.seconds) BlinderBars.all { it.preset.static(StairvilleSplb.Preset.STUB) // red, chase, moving into one direction @@ -295,7 +302,7 @@ fun SceneBuilderContext.songDraculasZorn() { sidelight.brightness.fade(100.percent, 8.seconds) - backlightBar.strobeSpeed.fade(100.percent, 8.seconds) + backlightBar.strobeSpeed.fade(100.percent, 6.seconds) backlightBar.brightness.fade(100.percent, 2.seconds) BlinderBars.all { @@ -312,7 +319,6 @@ fun SceneBuilderContext.songDraculasZorn() { sidelight.brightness.off(1.seconds) backlightBar.strobeSpeed.off() - backlightBar.brightness.off(1.seconds) Washs.both { it.brightness.off(1.seconds) } @@ -323,11 +329,13 @@ fun SceneBuilderContext.songDraculasZorn() { } } - step(StepCue.MusicEnd) { - rightSpotTarget = "Dracula & Vampirgirls" + lightStep(StepCue.MusicEnd) { + FrontLights.all { it.brightness.fade(40.percent, 20.seconds) } + Spots.right.brightness.off(20.seconds) - onRun { - sidelight.brightness.fade(40.percent, 15.seconds) - } + BlinderBars.all { it.reset() } + + sidelight.brightness.fade(40.percent, 20.seconds) + backlightBar.brightness.off(10.seconds) } } \ No newline at end of file diff --git a/src/main/kotlin/de/moritzruth/dracula_musical/song/FinaleErsterAkt.kt b/src/main/kotlin/de/moritzruth/dracula_musical/song/FinaleErsterAkt.kt new file mode 100644 index 0000000..fd408f5 --- /dev/null +++ b/src/main/kotlin/de/moritzruth/dracula_musical/song/FinaleErsterAkt.kt @@ -0,0 +1,557 @@ +package de.moritzruth.dracula_musical.song + +import de.moritzruth.dracula_musical.device.* +import de.moritzruth.theaterdsl.show.CurtainState +import de.moritzruth.theaterdsl.show.SceneBuilderContext +import de.moritzruth.theaterdsl.show.StepCue +import de.moritzruth.theaterdsl.value.Color +import de.moritzruth.theaterdsl.value.degrees +import de.moritzruth.theaterdsl.value.percent +import kotlin.time.Duration.Companion.minutes +import kotlin.time.Duration.Companion.seconds + +private fun StairvilleTlb.breathe() = brightness.sine(1.seconds, 20.percent, 100.percent) +private fun StairvilleTlb.pulseSlow() = brightness.pulse(0.8.seconds, 0.1.seconds, 0.2.seconds, startDelay = 0.seconds, peak = 100.percent) +private fun StairvilleTlb.pulseFast() = brightness.pulse(0.6.seconds, 0.1.seconds, 0.2.seconds, startDelay = 0.seconds, peak = 100.percent) + +fun SceneBuilderContext.songFinaleErsterAkt() { + step(StepCue.MusicStart("Finale (1. Akt)", 4.minutes)) { + onRun { + Washs.both { + it.pointAtAudience() + it.colorWheelMode.static(CoemarProWash.ColorWheelMode.WarmWhite) + it.beamAngle.static(100.percent) + } + } + } + + step(StepCue.Text("Dracula", "Guten Abend, Mister Harker.")) { + actors { + -"Jonathan" + } + + onRun { + FrontLights.all { it.brightness.off(10.seconds) } + Spots.right.brightness.fade(100.percent, 10.seconds) + + backlightBar.brightness.fade(100.percent, 10.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "Und du lässt ihn geh’n!", "letzte Silbe")) { + sidelight.strobeSpeed.static(20.percent) + backlightBar.breathe() + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 25.percent) + } + } + + lightStep(StepCue.Text("Vampire", "…ganz allein du!", "letzte Silbe")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds, end = 25.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + backlightBar.color.fade(Color.WHITE, 0.1.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "letzte Silbe")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + it.preset.static(null) + it.color.static(Color.RED) + } + } + + lightStep(StepCue.Text("Dracula", "Ich will diese Frau!", "Anfang")) { + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + it.brightness.fade(25.percent, 0.4.seconds) + } + } + + lightStep(StepCue.Text("Françoise", "Und was ist mit uns?", "Anfang")) { + backlightBar.breathe() + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "letzte Silbe")) { + backlightBar.breathe() + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + it.preset.static(null) + it.color.static(Color.RED) + } + } + + lightStep(StepCue.Text("Vampire", "Uns’re Kehlen sind verdorrt!", "Anfang")) { + backlightBar.pulseSlow() + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + it.brightness.fade(25.percent, 0.4.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "…machen nicht satt!", "letzte Silbe")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + it.preset.static(null) + it.color.static(Color.RED) + } + } + + lightStep(StepCue.Text("Dracula", "Ich sorg für euch!", "Anfang")) { + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + it.brightness.fade(25.percent, 0.4.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + backlightBar.color.fade(Color.WHITE, 0.1.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "letzte Silbe")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + it.preset.static(null) + it.color.static(Color.RED) + } + } + + lightStep(StepCue.Text("Dracula", "Ihr müsst mir vertrau’n…", "Anfang")) { + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + it.brightness.fade(25.percent, 0.4.seconds) + } + } + + lightStep(StepCue.Text("Françoise", "Du sorgst für uns?", "Anfang")) { + backlightBar.breathe() + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + } + + lightStep(StepCue.Text("Vampire", "Wir wollen Blut!", "letzte Silbe")) { + backlightBar.breathe() + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + it.preset.static(null) + it.color.static(Color.RED) + } + } + + lightStep(StepCue.Text("Bernadette", "Das Essen ist weg…", "Anfang")) { + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + it.brightness.fade(25.percent, 0.4.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "…und du bist Schuld!", "letzte Silbe")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + it.preset.static(null) + it.color.static(Color.RED) + } + } + + lightStep(StepCue.Text("Dracula", "Ich brauche ihn noch!", "Anfang")) { + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + it.brightness.fade(25.percent, 0.4.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "Die Frau ist weg…", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Dracula", "Ich will sie für euch!", "Anfang")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wir hatten den Mann…", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Dracula", "Sie ist wunderschön!", "Anfang")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Das ist uns egal!", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Dracula", "So schaut sie doch an!", "Anfang")) { + backlightBar.brightness.fade(20.percent, 0.4.seconds) + backlightBar.color.fade(Color.RED, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wir wollen ihr Blut…", "Anfang")) { + backlightBar.brightness.fade(100.percent, 0.4.seconds) + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Wenn man…", "Anfang")) { + backlightBar.breathe() + BlinderBars.all { it.brightness.pulseOnce(5.seconds, 1.seconds) } + } + + lightStep(StepCue.Text("Dracula", "Die Frau!", "Anfang")) { + backlightBar.brightness.fade(20.percent, 0.2.seconds) + backlightBar.color.fade(Color.RED, 0.2.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy + it.presetSpeed.static(70.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Nein!", "Anfang")) { + backlightBar.brightness.pulseOnce(0.1.seconds, 0.3.seconds, end = 20.percent) + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.preset.static(null) // hectic, bright, jumpy + it.color.static(Color.RED) + it.brightness.pulseOnce(0.1.seconds, 0.3.seconds) + } + } + + lightStep(StepCue.Text("Dracula", "Sie ist so schön!", "Anfang")) { + backlightBar.brightness.fade(20.percent, 0.1.seconds) + backlightBar.color.fade(Color.RED, 0.1.seconds) + } + + lightStep(StepCue.Text("Dracula", "Sie ist so schön!", "letzte Silbe")) { + BlinderBars.all { + it.color.reset() + it.white.static(100.percent) + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "Nein!", "Anfang")) { + backlightBar.brightness.pulseOnce(0.1.seconds, 0.3.seconds, end = 20.percent) + backlightBar.color.fade(Color.WHITE, 0.4.seconds) + + BlinderBars.all { + it.color.static(Color.RED) + it.white.reset() + it.brightness.pulseOnce(0.1.seconds, 0.2.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "Das ist egal!", "letzte Silbe")) { + sidelight.brightness.fade(start = 0.percent, end = 100.percent, duration = 0.4.seconds) + sidelight.strobeSpeed.static(0.percent) + } + + lightStep(StepCue.Text("Dracula", "Schaut sie wenigstens an!", "letzte Silbe")) { + backlightBar.color.fade(Color.WARM_WHITE, 6.seconds) + backlightBar.brightness.fade(60.percent, 10.seconds) + + sidelight.colors.forEach { it.fade(Color.WARM_WHITE, 10.seconds) } + + Washs.both { + it.pointAtCeiling(10.seconds) + it.brightness.fade(100.percent, 3.seconds) + } + + Tops.both { + it.startRoomMovement(3.0) + it.colorWheelMode.static(FuturelightDmh160.ColorWheelMode.Rotate(10.percent)) + it.prismMode.static(FuturelightDmh160.PrismMode.FROST) + } + + FrontLights.center { it.brightness.fade(100.percent, 10.seconds, start = 30.percent) } + } + + // genre change + + lightStep(StepCue.Custom("Musik: Fill-in")) { + Washs.both { it.brightness.off(5.seconds) } + Tops.both { it.brightness.fade(100.percent, 5.seconds) } + + BlinderBars.all { + it.color.reset() + it.preset.static(StairvilleSplb.Preset.STUB) // flowy, dreamy, warm + it.presetSpeed.static(15.percent) + it.brightness.fade(30.percent, 2.seconds) + } + } + + lightStep(StepCue.Text("Vampire", "Oh ja", "Anfang")) { + FrontLights.left { it.brightness.pulseOnce(2.seconds, 5.seconds) } + FrontLights.right { it.brightness.pulseOnce(2.seconds, 5.seconds) } + } + + lightStep(StepCue.Text("Vampire", "Oh ja", "Anfang")) { + FrontLights.left { it.brightness.pulseOnce(2.seconds, 5.seconds) } + FrontLights.right { it.brightness.pulseOnce(2.seconds, 5.seconds) } + Washs.both { it.brightness.pulseOnce(2.seconds, 5.seconds) } + } + + lightStep(StepCue.Text("Dracula", "…morgen nacht", "Anfang")) { + BlinderBars.all { it.brightness.off(2.seconds) } + } + + // genre change + + lightStep(StepCue.Text("Dracula", "…morgen nacht", "letzte Silbe")) { + BlinderBars.all { + it.brightness.pulseOnce(0.4.seconds, 0.4.seconds, peak = 60.percent, end = 30.percent) + it.preset.static(StairvilleSplb.Preset.STUB) // switching, theatre-like + it.presetSpeed.static(40.percent) + } + } + + lightStep(StepCue.Text("Vampire", "Komm zu uns morgen nacht!", "letzte Silbe")) { + FrontLights.center { it.brightness.off(3.seconds) } + BlinderBars.all { it.brightness.off(2.seconds) } + sidelight.brightness.off(2.seconds) + Tops.both { it.brightness.off(2.seconds) } + } + + // genre change + + lightStep(StepCue.Custom("Fill-in")) { + backlightBar.color.fade(Color.WHITE, 1.seconds) + backlightBar.breathe() + + 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(40.percent, 1.seconds) + + BlinderBars.all { + it.brightness.fade(25.percent, 1.seconds) + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, red + it.presetSpeed.static(50.percent) + } + } + + lightStep(StepCue.Text("Dracula", "Mina…", "Anfang")) { + backlightBar.color.fade(Color.WARM_WHITE, 1.seconds) + backlightBar.brightness.fade(50.percent, 1.seconds) + } + + lightStep(StepCue.Text("Vampire", "Komm zu uns morgen nacht!", "Anfang")) { + FrontLights.center { it.brightness.fade(100.percent, 5.seconds) } + BlinderBars.all { it.presetSpeed.fade(1.percent, 3.seconds) } + sidelight.colors.forEach { it.fade(Color.WARM_WHITE, 8.seconds) } + } + + lightStep(StepCue.Text("Vampire", "Komm zu uns morgen nacht!", "letzte Silbe")) { + BlinderBars.all { it.brightness.off(2.seconds) } + } + + // genre change + + lightStep(StepCue.Text("Dracula", "Du musst ein wenig sterben…", "Anfang")) { + BlinderBars.all { + it.brightness.fade(30.percent, 1.seconds) + it.preset.static(StairvilleSplb.Preset.STUB) // switching, theatre-like + it.presetSpeed.static(40.percent) + } + } + + lightStep(StepCue.Text("Dracula", "Mina…")) { + backlightBar.brightness.off(5.seconds) + } + + lightStep(StepCue.Custom("Schlag nach »Morgen!«")) { + BlinderBars.all { + it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 30.percent) + it.presetSpeed.fade(0.percent, 0.4.seconds) + } + } + + lightStep(StepCue.Custom("Offbeat nach »Morgen!«")) { + BlinderBars.all { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 30.percent) } + Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) } + } + + lightStep(StepCue.Text("Dracula", "Morgen nacht!", "letzte Silbe")) { + BlinderBars.all { it.presetSpeed.fade(40.percent, 1.seconds) } + } + + lightStep(StepCue.Custom("1. Beat nach »Morgen!«")) { + backlightBar.brightness.pulseOnce(0.1.seconds, 0.5.seconds) + } + + lightStep(StepCue.Custom("2. Beat nach »Morgen!«")) { + BlinderBars.all { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) } + Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) } + } + + lightStep(StepCue.Text("Vampire", "Morgen nacht!", "letzte Silbe")) { + backlightBar.pulseFast() + backlightBar.color.fade(Color.RED, 6.seconds) + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, red + it.presetSpeed.static(60.percent) + it.brightness.fade(40.percent, 3.seconds) + } + } + + lightStep(StepCue.Text("Dracula", "Mina…")) { + backlightBar.brightness.off(0.5.seconds) + sidelight.brightness.fade(20.percent, 5.seconds) + BlinderBars.all { it.brightness.off(1.seconds) } + } + + lightStep(StepCue.Text("Dracula", "Morgen nacht!", "letzte Silbe")) { + backlightBar.breathe() + backlightBar.strobeSpeed.static(90.percent) + + sidelight.brightness.static(100.percent) + sidelight.strobeSpeed.static(90.percent) + + Washs.both { it.brightness.rampDown(0.8.seconds) } + + BlinderBars.all { + it.preset.static(StairvilleSplb.Preset.STUB) // hectic, red + it.presetSpeed.static(80.percent) + it.brightness.fade(60.percent, 5.seconds) + } + + FrontLights.all { it.brightness.fade(100.percent, 5.seconds) } + } + + lightStep(StepCue.Custom("Schlussschlag")) { + FrontLights.all { it.brightness.off() } + Washs.both { it.brightness.off(0.5.seconds) } + backlightBar.strobeSpeed.static(0.percent) + backlightBar.brightness.pulseOnce(0.2.seconds, 2.seconds) + sidelight.strobeSpeed.static(0.percent) + sidelight.brightness.pulseOnce(0.2.seconds, 2.seconds) + + BlinderBars.all { + it.preset.static(null) + it.color.static(Color.WHITE) + it.white.static(100.percent) + it.brightness.pulseOnce(0.2.seconds, 2.seconds) + } + } + + step(StepCue.MusicEnd) { + actors { + -"Backe" + -"Timmy" + -"Eloïse" + -"Françoise" + -"Bernadette" + -"Dracula" + -"Vampire" + } + + curtainState = CurtainState.CLOSED + } +} \ 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 d6450bd..bbf5729 100644 --- a/src/main/kotlin/de/moritzruth/theaterdsl/value/Color.kt +++ b/src/main/kotlin/de/moritzruth/theaterdsl/value/Color.kt @@ -61,6 +61,7 @@ data class Color( companion object { 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 WARM_WHITE = Color(30.degrees, 60.percent, 100.percent) }