commit 67

This commit is contained in:
Moritz Ruth 2025-03-10 00:07:40 +01:00
parent 6101e5f16f
commit bf8eaacb00
Signed by: moritzruth
GPG key ID: C9BBAB79405EE56D
11 changed files with 154 additions and 111 deletions

View file

@ -1,6 +1,7 @@
package de.moritzruth.dracula_musical package de.moritzruth.dracula_musical
import de.moritzruth.dracula_musical.act.act1 import de.moritzruth.dracula_musical.act.act1
import de.moritzruth.dracula_musical.act.act2
import de.moritzruth.dracula_musical.device.devices import de.moritzruth.dracula_musical.device.devices
import de.moritzruth.dracula_musical.device.fogMachine import de.moritzruth.dracula_musical.device.fogMachine
import de.moritzruth.theaterdsl.dmx.EnttecOpenDmxUsb import de.moritzruth.theaterdsl.dmx.EnttecOpenDmxUsb
@ -9,6 +10,7 @@ import de.moritzruth.theaterdsl.show.runShow
val show = createShow { val show = createShow {
act1() act1()
act2()
} }
suspend fun main() { suspend fun main() {

View file

@ -16,6 +16,10 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.MusicStart("Ouvertüre", 10.seconds)) { step(StepCue.MusicStart("Ouvertüre", 10.seconds)) {
curtainState = CurtainState.CLOSED curtainState = CurtainState.CLOSED
props {
it[PropPosition.BACKDROP] = "Dorfplatz"
}
Washs.both { Washs.both {
it.pointAtAudience() it.pointAtAudience()
it.colorWheelMode.static(CoemarProWash.ColorWheelMode.WarmWhite) it.colorWheelMode.static(CoemarProWash.ColorWheelMode.WarmWhite)
@ -28,7 +32,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
+"Erzähler / in der Mitte der Vorbühne" +"Erzähler / in der Mitte der Vorbühne"
} }
rightSpotTarget = "Erzähler / Mitte der Vorbühne" rightSpotTarget = "Erzähler (Mitte der Vorbühne)"
onRun { onRun {
Spots.right.brightness.fade(100.percent, 2.seconds) Spots.right.brightness.fade(100.percent, 2.seconds)
@ -68,9 +72,9 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
-"Mina" -"Mina"
-"Lucy" -"Lucy"
-"Jonathan" -"Jonathan"
+"Hawkins" +"Hawkins / von links"
// TODO: Expand // TODO: Expand
+"Sekretärinnen" +"Sekretärinnen / von links"
} }
props { props {
@ -80,7 +84,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Sekretärin 1", "Ashton und Ashton 6 Pfund glatt…")) { step(StepCue.Text("Sekretärin 1", "Ashton und Ashton 6 Pfund glatt…")) {
actors { actors {
+"Renfield" +"Renfield / von links"
} }
} }
@ -88,20 +92,14 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Renfield", "Ich bin schon weg.")) { step(StepCue.Text("Renfield", "Ich bin schon weg.")) {
actors { actors {
-"Renfield" -"Renfield / durch Mitte"
} }
} }
step(StepCue.MusicStart("Umbau (Adel ist geil)", 10.seconds)) { step(StepCue.MusicStart("Umbau (Adel ist geil)", 10.seconds)) {
actors { actors {
-"Hawkins" -"Hawkins / durch Mitte"
-"Sekretärinnen" -"Sekretärinnen / durch Mitte"
}
curtainState = CurtainState.CLOSED
props {
it[PropPosition.CENTER] = null
} }
onRun { onRun {
@ -114,8 +112,8 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
scene("Die Irrenanstalt") { scene("Die Irrenanstalt") {
step(StepCue.MusicEnd) { step(StepCue.MusicEnd) {
actors { actors {
+"Ascot" +"Ascot / von rechts, 1. Tür"
+"Mina" +"Mina / von rechts, 1. Tür"
} }
curtainState = CurtainState.OPEN curtainState = CurtainState.OPEN
@ -129,9 +127,9 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Ascot", "Da kommt der Rest der Familie!")) { step(StepCue.Text("Ascot", "Da kommt der Rest der Familie!")) {
actors { actors {
+"Oberschwester" +"Oberschwester / von rechts, 1. Tür"
// TODO: Expand // TODO: Expand
+"Pflegeteam" +"Pflegeteam / von rechts, 1. Tür"
} }
} }
@ -142,36 +140,36 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
-"Oberschwester" -"Oberschwester"
-"Pflegeteam" -"Pflegeteam"
-"Die Irren" -"Die Irren"
+"Renfield" +"Renfield / von rechts, 1. Tür"
+"Vermieterin" +"Vermieterin / von rechts, 1. Tür"
+"Wärter 1" +"Wärter 1 / von rechts, 1. Tür"
+"Wärter 2" +"Wärter 2 / von rechts, 1. Tür"
} }
} }
step(StepCue.Text("Dr. Sewart", "Ich liebe meinen Job!")) { step(StepCue.Text("Dr. Sewart", "Ich liebe meinen Job!")) {
actors { actors {
-"Renfield" -"Renfield / nach rechts, 1. Tür"
-"Vermieterin" -"Vermieterin / nach rechts, 1. Tür"
-"Wärter 1" -"Wärter 1 / nach rechts, 1. Tür"
-"Wärter 2" -"Wärter 2 / nach rechts, 1. Tür"
-"Dr. Sewart" -"Dr. Sewart / nach rechts, 1. Tür"
-"Ascot" -"Ascot / nach rechts, 1. Tür"
} }
} }
step(StepCue.Custom("Mina öffnet die Tür")) { step(StepCue.Custom("Mina öffnet die Tür")) {
actors { actors {
+"Mr. Nickelby" +"Mr. Nickelby / von rechts, 1. Tür"
+"Mrs. Nickelby" +"Mrs. Nickelby / von rechts, 1. Tür"
+"Tochter Nickelby" +"Tochter Nickelby / von rechts, 1. Tür"
} }
} }
step(StepCue.Text("Mina", "Es gibt hier noch mehr Irre.")) { step(StepCue.Text("Mina", "Es gibt hier noch mehr Irre.")) {
actors { actors {
-"Mina" -"Mina / nach rechts, 1. Tür"
+"Lucy" +"Lucy / von links"
} }
} }
} }
@ -186,7 +184,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Mr. Nickelby", "…als du die Vorhänge aufgemacht hast.")) { step(StepCue.Text("Mr. Nickelby", "…als du die Vorhänge aufgemacht hast.")) {
actors { actors {
+"Ascot" +"Ascot / von rechts, 1. Tür"
} }
onRun { onRun {
@ -196,7 +194,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Ascot", "Sie Flötenguru!")) { step(StepCue.Text("Ascot", "Sie Flötenguru!")) {
actors { actors {
+"Dr. Sewart" +"Dr. Sewart / von rechts, 1. Tür"
} }
} }
@ -222,17 +220,23 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
-"Tochter Nickelby" -"Tochter Nickelby"
} }
curtainState = CurtainState.CLOSED
onRun { onRun {
FrontLights.all { it.brightness.off(5.seconds) } FrontLights.all { it.brightness.off(5.seconds) }
} }
} }
step(StepCue.MusicStart("Umbau (Sittlichkeitsverein)", 10.seconds)) {
}
} }
scene("Männerbesuch") { scene("Männerbesuch") {
step(StepCue.Custom("Es klingelt")) { step(StepCue.MusicEnd) {
actors { actors {
+"Mina" +"Mina / von rechts, 2. Tür"
+"Jonathan / hinter der Tür" +"Jonathan / von rechts, 1. Tür"
} }
onRun { onRun {
@ -242,13 +246,13 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Mina", "Sehr merkwürdig.")) { step(StepCue.Text("Mina", "Sehr merkwürdig.")) {
actors { actors {
+"Ascot" +"Ascot / von rechts, 1. Tür"
} }
} }
step(StepCue.Text("Ascot", "Miss Murray!", "beim dritten Mal")) { step(StepCue.Text("Ascot", "Miss Murray!", "beim dritten Mal")) {
actors { actors {
-"Ascot" -"Ascot / über rechte Treppe"
} }
} }
@ -262,8 +266,8 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Jonathan", "Gute Nacht.")) { step(StepCue.Text("Jonathan", "Gute Nacht.")) {
actors { actors {
-"Mina" -"Mina / über linke Treppe"
-"Jonathan" -"Jonathan / nach rechts, 1. Tür"
-"Ascot" -"Ascot"
} }
@ -281,7 +285,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
scene("Kaffeeklatsch") { scene("Kaffeeklatsch") {
step(StepCue.MusicEnd) { step(StepCue.MusicEnd) {
actors { actors {
+"Dr. Sewart" +"Dr. Sewart / von rechts, 1. Tür"
} }
curtainState = CurtainState.OPEN curtainState = CurtainState.OPEN
@ -295,7 +299,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Custom("Dr. Sewart ist versteckt")) { step(StepCue.Custom("Dr. Sewart ist versteckt")) {
actors { actors {
+"Oberschwester" +"Oberschwester / über rechte Treppe"
} }
onRun { onRun {
@ -307,11 +311,11 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Dr. Sewart", "Da sind sie!")) { step(StepCue.Text("Dr. Sewart", "Da sind sie!")) {
actors { actors {
+"Ascot" +"Ascot / von rechts, 1. Tür, mit Stuhl"
// TODO: Expand // TODO: Expand
+"Kaffeetanten" +"Kaffeetanten / von rechts, 1. Tür, mit Stühlen"
// TODO: Expand // TODO: Expand
+"Nichten" +"Nichten / von rechts, 1. Tür, mit Stühlen"
} }
onRun { onRun {
@ -322,8 +326,8 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Dr. Sewart", "Ich mache Diät!")) { step(StepCue.Text("Dr. Sewart", "Ich mache Diät!")) {
actors { actors {
-"Dr. Sewart" -"Dr. Sewart / nach rechts, 1. Tür"
-"Oberschwester" -"Oberschwester / nach links"
} }
} }
@ -333,7 +337,8 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
scene("Ankunft Van Helsings") { scene("Ankunft Van Helsings") {
step(StepCue.Text("Ascot", "Jetzt ist Lucy wieder ganz gesund.")) { step(StepCue.Text("Ascot", "Jetzt ist Lucy wieder ganz gesund.")) {
actors { actors {
+"Dr. Sewart" +"Dr. Sewart / von rechts"
+"Lucy / getragen von Dr. Sewart"
} }
onRun { onRun {
@ -347,7 +352,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Dr. Sewart", "Was mach ich nur!")) { step(StepCue.Text("Dr. Sewart", "Was mach ich nur!")) {
actors { actors {
+"Van Helsing" +"Van Helsing / durch Mitte"
} }
rightSpotTarget = "Van Helsing" rightSpotTarget = "Van Helsing"
@ -379,20 +384,27 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Van Helsing", "Oder will jemand von den Damen?")) { step(StepCue.Text("Van Helsing", "Oder will jemand von den Damen?")) {
actors { actors {
-"Kaffeetanten" -"Kaffeetanten / nach rechts, 1.Tür, mit Stühlen"
-"Nichten" -"Nichten / nach rechts, 1.Tür, mit Stühlen"
} }
} }
step(StepCue.Text("Van Helsing", "Helfen Sie mir jetzt!")) { step(StepCue.Text("Van Helsing", "Helfen Sie mir jetzt!")) {
actors { actors {
-"Dr. Sewart" -"Dr. Sewart / nach links"
-"Van Helsing" -"Lucy / gezogen von Dr. Sewart"
-"Ascot" -"Van Helsing / nach links"
-"Ascot / nach rechts, 1. Tür, mit Stuhl"
} }
curtainState = CurtainState.CLOSED curtainState = CurtainState.CLOSED
props {
it[PropPosition.CENTER] = null
it[PropPosition.LEFT] = "3 Särge"
it[PropPosition.BACKDROP] = "Draculas Schloss"
}
onRun { onRun {
FrontLights.all { it.brightness.off(3.seconds) } FrontLights.all { it.brightness.off(3.seconds) }
@ -408,10 +420,10 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Custom("Vorhang ist geschlossen")) { step(StepCue.Custom("Vorhang ist geschlossen")) {
actors { actors {
+"Hawkins / durchs Publikum" +"Hawkins / durchs Publikum"
+"Renfield / durchs Publikum" +"Jonathan / durchs Publikum"
} }
rightSpotTarget = "Hawkins & Renfield (im Publikum)" rightSpotTarget = "Hawkins & Jonathan (im Publikum)"
onRun { onRun {
Spots.right.brightness.fade(100.percent, 3.seconds) Spots.right.brightness.fade(100.percent, 3.seconds)
@ -421,7 +433,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
step(StepCue.Text("Hawkins", "…zum Grafen Dracula!")) { step(StepCue.Text("Hawkins", "…zum Grafen Dracula!")) {
actors { actors {
-"Hawkins / durch den Vorhang" -"Hawkins / durch den Vorhang"
-"Renfield / durch den Vorhang" -"Jonathan / durch den Vorhang"
} }
rightSpotTarget = "mittig verbleiben" rightSpotTarget = "mittig verbleiben"
@ -435,8 +447,8 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
scene("Einbruch") { scene("Einbruch") {
step(StepCue.Custom("Umbau abgeschlossen")) { step(StepCue.Custom("Umbau abgeschlossen")) {
actors { actors {
+"Backe / von links" +"Backe / von links, mit Lampe"
+"Timmy / von links" +"Timmy / von links, mit Lampe"
+"Eloïse / im Sarg" +"Eloïse / im Sarg"
+"Françoise / im Sarg" +"Françoise / im Sarg"
+"Bernadette / im Sarg" +"Bernadette / im Sarg"
@ -460,7 +472,7 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
scene("Ein Sammlerstück") { scene("Ein Sammlerstück") {
step(StepCue.Custom("Die Vampire saugen Timmy aus")) { step(StepCue.Custom("Die Vampire saugen Timmy aus")) {
actors { actors {
+"Jonathan" +"Jonathan / von rechts, mit Vertrag & Amulett"
} }
onRun { onRun {

View file

@ -0,0 +1,7 @@
package de.moritzruth.dracula_musical.act
import de.moritzruth.theaterdsl.show.ShowBuilderContext
fun ShowBuilderContext.act2() = act("Zweiter Akt") {
}

View file

@ -2,6 +2,8 @@ package de.moritzruth.dracula_musical.song
import de.moritzruth.dracula_musical.device.BlinderBars import de.moritzruth.dracula_musical.device.BlinderBars
import de.moritzruth.dracula_musical.device.StairvilleSplb import de.moritzruth.dracula_musical.device.StairvilleSplb
import de.moritzruth.theaterdsl.show.CurtainState
import de.moritzruth.theaterdsl.show.PropPosition
import de.moritzruth.theaterdsl.show.SceneBuilderContext import de.moritzruth.theaterdsl.show.SceneBuilderContext
import de.moritzruth.theaterdsl.show.StepCue import de.moritzruth.theaterdsl.show.StepCue
import de.moritzruth.theaterdsl.value.percent import de.moritzruth.theaterdsl.value.percent
@ -11,13 +13,22 @@ import kotlin.time.Duration.Companion.seconds
fun SceneBuilderContext.songAdelIstGeil() { fun SceneBuilderContext.songAdelIstGeil() {
// TODO // TODO
lightStep(StepCue.MusicStart("Adel ist geil", 2.minutes + 15.seconds)) { step(StepCue.MusicStart("Adel ist geil", 2.minutes + 15.seconds)) {
curtainState = CurtainState.CLOSED
props {
it[PropPosition.BACKDROP] = "Irrenanstalt"
it[PropPosition.CENTER] = "Medikamenten-Schrank"
}
onRun {
BlinderBars.all { BlinderBars.all {
it.brightness.fade(25.percent, 5.seconds) it.brightness.fade(25.percent, 5.seconds)
it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, green it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, green
it.presetSpeed.static(40.percent) it.presetSpeed.static(40.percent)
} }
} }
}
step(StepCue.MusicEnd) { step(StepCue.MusicEnd) {
BlinderBars.all { it.brightness.off(1.seconds) } BlinderBars.all { it.brightness.off(1.seconds) }

View file

@ -19,7 +19,7 @@ fun SceneBuilderContext.songDuett() {
} }
} }
lightStep(StepCue.Custom("Strophe")) { lightStep(StepCue.Custom("Musik: Strophe")) {
BlinderBars.all { BlinderBars.all {
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy, pink, warm it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy, pink, warm
it.presetSpeed.static(10.percent) it.presetSpeed.static(10.percent)

View file

@ -162,7 +162,7 @@ fun SceneBuilderContext.songEsIstAngerichtet() {
} }
} }
lightStep(StepCue.Custom("Nächster Beat")) { lightStep(StepCue.Custom("Musik: Nächster Beat")) {
backlightBar.color.fade(Color(hue = 0.degrees, saturation = 30.percent), 1.seconds) backlightBar.color.fade(Color(hue = 0.degrees, saturation = 30.percent), 1.seconds)
backlightBar.brightness.fade(30.percent, 1.seconds) backlightBar.brightness.fade(30.percent, 1.seconds)

View file

@ -2,6 +2,7 @@ package de.moritzruth.dracula_musical.song
import de.moritzruth.dracula_musical.device.* import de.moritzruth.dracula_musical.device.*
import de.moritzruth.theaterdsl.show.CurtainState import de.moritzruth.theaterdsl.show.CurtainState
import de.moritzruth.theaterdsl.show.PropPosition
import de.moritzruth.theaterdsl.show.SceneBuilderContext import de.moritzruth.theaterdsl.show.SceneBuilderContext
import de.moritzruth.theaterdsl.show.StepCue import de.moritzruth.theaterdsl.show.StepCue
import de.moritzruth.theaterdsl.value.Color import de.moritzruth.theaterdsl.value.Color
@ -27,7 +28,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
step(StepCue.Text("Dracula", "Guten Abend, Mister Harker.")) { step(StepCue.Text("Dracula", "Guten Abend, Mister Harker.")) {
actors { actors {
-"Jonathan" -"Jonathan / nach rechts, mit Vertrag"
} }
onRun { onRun {
@ -419,7 +420,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
// genre change // genre change
lightStep(StepCue.Custom("Fill-in")) { lightStep(StepCue.Custom("Musik: Fill-in")) {
backlightBar.color.fade(Color.WHITE, 1.seconds) backlightBar.color.fade(Color.WHITE, 1.seconds)
backlightBar.breathe() backlightBar.breathe()
@ -465,14 +466,14 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
backlightBar.brightness.off(5.seconds) backlightBar.brightness.off(5.seconds)
} }
lightStep(StepCue.Custom("Schlag nach »Morgen!«")) { lightStep(StepCue.Custom("Musik: Schlag nach »Morgen!«")) {
BlinderBars.all { BlinderBars.all {
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 30.percent) it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 30.percent)
it.presetSpeed.fade(0.percent, 0.4.seconds) it.presetSpeed.fade(0.percent, 0.4.seconds)
} }
} }
lightStep(StepCue.Custom("Offbeat nach »Morgen!«")) { lightStep(StepCue.Custom("Musik: Offbeat nach »Morgen!«")) {
BlinderBars.all { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 30.percent) } 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) } Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) }
} }
@ -481,11 +482,11 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
BlinderBars.all { it.presetSpeed.fade(40.percent, 1.seconds) } BlinderBars.all { it.presetSpeed.fade(40.percent, 1.seconds) }
} }
lightStep(StepCue.Custom("1. Beat nach »Morgen!«")) { lightStep(StepCue.Custom("Musik: 1. Beat nach »Morgen!«")) {
backlightBar.brightness.pulseOnce(0.1.seconds, 0.5.seconds) backlightBar.brightness.pulseOnce(0.1.seconds, 0.5.seconds)
} }
lightStep(StepCue.Custom("2. Beat nach »Morgen!«")) { lightStep(StepCue.Custom("Musik: 2. Beat nach »Morgen!«")) {
BlinderBars.all { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) } BlinderBars.all { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) }
Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) } Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds) }
} }
@ -525,7 +526,8 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
FrontLights.all { it.brightness.fade(100.percent, 5.seconds) } FrontLights.all { it.brightness.fade(100.percent, 5.seconds) }
} }
lightStep(StepCue.Custom("Schlussschlag")) { lightStep(StepCue.Custom("Musik: Schlussschlag")) {
Spots.right.brightness.off(4.seconds)
FrontLights.all { it.brightness.off() } FrontLights.all { it.brightness.off() }
Washs.both { it.brightness.off(0.5.seconds) } Washs.both { it.brightness.off(0.5.seconds) }
backlightBar.strobeSpeed.static(0.percent) backlightBar.strobeSpeed.static(0.percent)
@ -552,6 +554,13 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
-"Vampire" -"Vampire"
} }
props {
it[PropPosition.LEFT] = null
}
curtainState = CurtainState.CLOSED curtainState = CurtainState.CLOSED
rightSpotTarget = null
} }
} }

View file

@ -11,9 +11,9 @@ import kotlin.time.Duration.Companion.seconds
fun SceneBuilderContext.songIrrenhaus() { fun SceneBuilderContext.songIrrenhaus() {
step(StepCue.MusicStart("Irrenhaus", 3.minutes)) { step(StepCue.MusicStart("Irrenhaus", 3.minutes)) {
actors { actors {
+"Dr. Sewart" +"Dr. Sewart / von rechts, 1. Tür"
// TODO: Expand // TODO: Expand
+"Die Irren" +"Die Irren / von rechts, 1. Tür"
} }
rightSpotTarget = "Dr. Sewart" rightSpotTarget = "Dr. Sewart"
@ -53,7 +53,7 @@ fun SceneBuilderContext.songIrrenhaus() {
Spots.right.brightness.off() Spots.right.brightness.off()
} }
lightStep(StepCue.Custom("Nächster Beat")) { lightStep(StepCue.Custom("Musik: Nächster Beat")) {
FrontLights.all { it.brightness.pulseOnce(0.seconds, 0.5.seconds, peak = 100.percent, end = 60.percent) } FrontLights.all { it.brightness.pulseOnce(0.seconds, 0.5.seconds, peak = 100.percent, end = 60.percent) }
Tops.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) } Tops.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) }
Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) } Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) }
@ -74,7 +74,7 @@ fun SceneBuilderContext.songIrrenhaus() {
backlightBar.brightness.off(2.seconds) backlightBar.brightness.off(2.seconds)
} }
lightStep(StepCue.Custom("Strophe")) { lightStep(StepCue.Custom("Musik: Strophe")) {
Spots.right.brightness.fade(100.percent, 1.seconds) Spots.right.brightness.fade(100.percent, 1.seconds)
BlinderBars.all { BlinderBars.all {
@ -105,7 +105,7 @@ fun SceneBuilderContext.songIrrenhaus() {
backlightBar.strobeSpeed.static(0.percent) backlightBar.strobeSpeed.static(0.percent)
} }
lightStep(StepCue.Custom("Nächster Beat")) { lightStep(StepCue.Custom("Musik: Nächster Beat")) {
FrontLights.all { it.brightness.pulseOnce(0.seconds, 0.5.seconds, peak = 100.percent, end = 60.percent) } FrontLights.all { it.brightness.pulseOnce(0.seconds, 0.5.seconds, peak = 100.percent, end = 60.percent) }
Tops.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) } Tops.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) }
Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) } Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) }
@ -125,7 +125,7 @@ fun SceneBuilderContext.songIrrenhaus() {
backlightBar.brightness.fade(50.percent, 1.seconds) backlightBar.brightness.fade(50.percent, 1.seconds)
} }
lightStep(StepCue.Custom("Strophe")) { lightStep(StepCue.Custom("Musik: Strophe")) {
Spots.right.brightness.fade(100.percent, 1.seconds) Spots.right.brightness.fade(100.percent, 1.seconds)
BlinderBars.all { BlinderBars.all {
@ -156,7 +156,7 @@ fun SceneBuilderContext.songIrrenhaus() {
backlightBar.strobeSpeed.off() backlightBar.strobeSpeed.off()
} }
lightStep(StepCue.Custom("Nächster Beat")) { lightStep(StepCue.Custom("Musik: Nächster Beat")) {
FrontLights.all { it.brightness.pulseOnce(0.seconds, 0.5.seconds, peak = 100.percent, end = 60.percent) } FrontLights.all { it.brightness.pulseOnce(0.seconds, 0.5.seconds, peak = 100.percent, end = 60.percent) }
Tops.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) } Tops.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) }
Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) } Washs.both { it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent) }
@ -188,7 +188,7 @@ fun SceneBuilderContext.songIrrenhaus() {
} }
} }
lightStep(StepCue.Custom("Schlussschlag")) { lightStep(StepCue.Custom("Musik: Schlussschlag")) {
FrontLights.all { it.brightness.static(100.percent) } FrontLights.all { it.brightness.static(100.percent) }
Tops.both { it.brightness.pulseOnce(0.1.seconds, 2.seconds, 100.percent) } Tops.both { it.brightness.pulseOnce(0.1.seconds, 2.seconds, 100.percent) }
Washs.both { it.brightness.pulseOnce(0.1.seconds, 2.seconds, 100.percent) } Washs.both { it.brightness.pulseOnce(0.1.seconds, 2.seconds, 100.percent) }

View file

@ -31,7 +31,7 @@ fun SceneBuilderContext.songLucy() {
// TODO: Do more during the first part // TODO: Do more during the first part
lightStep(StepCue.Custom("Refrain")) { lightStep(StepCue.Custom("Musik: Refrain")) {
BlinderBars.all { BlinderBars.all {
it.brightness.fade(25.percent, 2.seconds) it.brightness.fade(25.percent, 2.seconds)
it.preset.static(StairvilleSplb.Preset.STUB) // red, flowy it.preset.static(StairvilleSplb.Preset.STUB) // red, flowy
@ -41,11 +41,11 @@ fun SceneBuilderContext.songLucy() {
Washs.right.brightness.sine(6.seconds, start = 100.percent) Washs.right.brightness.sine(6.seconds, start = 100.percent)
} }
lightStep(StepCue.Custom("Strophe")) { lightStep(StepCue.Custom("Musik: Strophe")) {
Tops.both { it.brightness.sine(8.seconds, 20.percent, 100.percent) } Tops.both { it.brightness.sine(8.seconds, 20.percent, 100.percent) }
} }
lightStep(StepCue.Custom("Bridge")) { lightStep(StepCue.Custom("Musik: Bridge")) {
Tops.both { it.brightness.sine(8.seconds, 20.percent, 100.percent) } Tops.both { it.brightness.sine(8.seconds, 20.percent, 100.percent) }
BlinderBars.all { BlinderBars.all {
it.brightness.fade(40.percent, 10.seconds) it.brightness.fade(40.percent, 10.seconds)
@ -53,7 +53,7 @@ fun SceneBuilderContext.songLucy() {
} }
} }
lightStep(StepCue.Custom("Refrain")) { lightStep(StepCue.Custom("Musik: Refrain")) {
BlinderBars.all { it.brightness.fade(25.percent, 3.seconds) } BlinderBars.all { it.brightness.fade(25.percent, 3.seconds) }
// TODO // TODO
} }
@ -62,15 +62,15 @@ fun SceneBuilderContext.songLucy() {
Tops.both { it.brightness.pulseOnce(0.1.seconds, 1.seconds) } Tops.both { it.brightness.pulseOnce(0.1.seconds, 1.seconds) }
} }
lightStep(StepCue.Custom("Interludium")) { lightStep(StepCue.Custom("Musik: Interludium")) {
// TODO // TODO
} }
lightStep(StepCue.Custom("Refrain")) { lightStep(StepCue.Custom("Musik: Refrain")) {
// TODO // TODO
} }
lightStep(StepCue.Custom("Schlussschlag")) { lightStep(StepCue.Custom("Musik: Schlussschlag")) {
// TODO // TODO
backlightBar.brightness.off(2.seconds) backlightBar.brightness.off(2.seconds)
Washs.both { it.brightness.pulseOnce(0.1.seconds, 2.seconds) } Washs.both { it.brightness.pulseOnce(0.1.seconds, 2.seconds) }

View file

@ -13,11 +13,8 @@ import kotlin.time.Duration.Companion.seconds
fun SceneBuilderContext.songMittsommernacht() { fun SceneBuilderContext.songMittsommernacht() {
step(StepCue.MusicStart("Mittsommernacht", 4.minutes + 30.seconds)) { step(StepCue.MusicStart("Mittsommernacht", 4.minutes + 30.seconds)) {
actors { actors {
+"Mina"
+"Lucy"
+"Jonathan"
// TODO: Expand // TODO: Expand
+"Einwohner von Huntington" +"Einwohner von Huntington / von links & durch Mitte"
} }
curtainState = CurtainState.OPEN curtainState = CurtainState.OPEN
@ -51,7 +48,7 @@ fun SceneBuilderContext.songMittsommernacht() {
} }
} }
lightStep(StepCue.Custom("Schlagzeug-Pattern wechselt")) { lightStep(StepCue.Custom("Musik: Drums-Pattern wechselt")) {
BlinderBars.all { BlinderBars.all {
it.brightness.fade(25.percent, 1.seconds) it.brightness.fade(25.percent, 1.seconds)
it.white.static(0.percent) it.white.static(0.percent)
@ -60,7 +57,7 @@ fun SceneBuilderContext.songMittsommernacht() {
} }
} }
lightStep(StepCue.Custom("Strophe beginnt")) { lightStep(StepCue.Custom("Musik: Strophe")) {
Tops.both { Tops.both {
it.brightness.off(2.seconds) it.brightness.off(2.seconds)
} }
@ -108,7 +105,7 @@ fun SceneBuilderContext.songMittsommernacht() {
} }
} }
lightStep(StepCue.Custom("Refrain")) { lightStep(StepCue.Custom("Musik: Refrain")) {
BlinderBars.all { BlinderBars.all {
it.brightness.fade(25.percent, 1.seconds) it.brightness.fade(25.percent, 1.seconds)
it.presetSpeed.static(50.percent) it.presetSpeed.static(50.percent)
@ -138,9 +135,10 @@ fun SceneBuilderContext.songMittsommernacht() {
step(StepCue.Custom("Musik: 1. Hit")) { step(StepCue.Custom("Musik: 1. Hit")) {
actors { actors {
+"Dracula" +"Dracula / durch Mitte"
// TODO: Expand +"Eloïse / durch Mitte"
+"Vampirgirls" +"Françoise / durch Mitte"
+"Bernadette / durch Mitte"
} }
onRun { onRun {
@ -177,9 +175,9 @@ fun SceneBuilderContext.songMittsommernacht() {
Washs.both { it.brightness.fade(100.percent, 3.seconds) } Washs.both { it.brightness.fade(100.percent, 3.seconds) }
} }
step(StepCue.Text("Vampirgirls", "Süße Damen")) { step(StepCue.Text("Vampire", "Süße Damen")) {
leftSpotTarget = "Vampirgirls (sprunghaft hin und her)" leftSpotTarget = "Vampire (sprunghaft hin und her)"
rightSpotTarget = "Vampirgirls (sprunghaft hin und her)" rightSpotTarget = "Vampire (sprunghaft hin und her)"
onRun { onRun {
Spots.left.brightness.static(50.percent) Spots.left.brightness.static(50.percent)
@ -194,7 +192,7 @@ fun SceneBuilderContext.songMittsommernacht() {
} }
} }
step(StepCue.Text("Vampirgirls", "Wir warten auf euch", "Anfang")) { step(StepCue.Text("Vampire", "Wir warten auf euch", "Anfang")) {
rightSpotTarget = null rightSpotTarget = null
onRun { onRun {
@ -208,7 +206,7 @@ fun SceneBuilderContext.songMittsommernacht() {
} }
} }
step(StepCue.Text("Vampirgirls", "Schloss Dracula", "Anfang")) { step(StepCue.Text("Vampire", "Schloss Dracula", "Anfang")) {
onRun { onRun {
Spots.left.brightness.fade(100.percent, 3.seconds) Spots.left.brightness.fade(100.percent, 3.seconds)
backlightBar.brightness.fade(100.percent, 3.seconds) backlightBar.brightness.fade(100.percent, 3.seconds)
@ -220,10 +218,12 @@ fun SceneBuilderContext.songMittsommernacht() {
} }
} }
step(StepCue.Text("Vampirgirls", "Schloss Dracula", "Ende")) { step(StepCue.Text("Vampire", "Schloss Dracula", "Ende")) {
actors { actors {
-"Dracula" -"Dracula"
-"Vampirgirls" -"Eloïse"
-"Françoise"
-"Bernadette"
} }
leftSpotTarget = null leftSpotTarget = null
@ -281,11 +281,13 @@ fun SceneBuilderContext.songMittsommernacht() {
step(StepCue.MusicEnd) { step(StepCue.MusicEnd) {
actors { actors {
-"Einwohner von Huntington" -"Einwohner von Huntington"
+"Mina / durch Mitte, mit Koffer & Taschentuch"
+"Lucy / durch Mitte"
+"Jonathan / von links"
} }
onRun { onRun {
FrontLights.all { it.brightness.fade(50.percent, 3.seconds) } FrontLights.all { it.brightness.fade(50.percent, 3.seconds) }
} }
} }
} }

View file

@ -11,9 +11,9 @@
<PropBox position-name="Linke der Vorbühne" :prop="current.step.props.PROSCENIUM_LEFT"/> <PropBox position-name="Linke der Vorbühne" :prop="current.step.props.PROSCENIUM_LEFT"/>
</div> </div>
<div :class="$style.row" class="flex-grow h-0"> <div :class="$style.row" class="flex-grow h-0">
<PropBox position-name="Rechts" :prop="current.step.props.PROSCENIUM_RIGHT"/> <PropBox position-name="Rechts" :prop="current.step.props.RIGHT"/>
<PropBox position-name="Mitte" :prop="current.step.props.PROSCENIUM_CENTER"/> <PropBox position-name="Mitte" :prop="current.step.props.CENTER"/>
<PropBox position-name="Links" :prop="current.step.props.PROSCENIUM_LEFT"/> <PropBox position-name="Links" :prop="current.step.props.LEFT"/>
</div> </div>
<div :class="$style.row" class="border-t border-dark-300 py-3 h-20"> <div :class="$style.row" class="border-t border-dark-300 py-3 h-20">
<div/> <div/>