commit 62

This commit is contained in:
Moritz Ruth 2025-03-08 20:50:46 +01:00
parent 84cc9ea2bc
commit f5afb6fbdb
Signed by: moritzruth
GPG key ID: C9BBAB79405EE56D
4 changed files with 229 additions and 7 deletions

View file

@ -1,10 +1,7 @@
package de.moritzruth.dracula_musical.act package de.moritzruth.dracula_musical.act
import de.moritzruth.dracula_musical.device.* import de.moritzruth.dracula_musical.device.*
import de.moritzruth.dracula_musical.song.songAdelIstGeil import de.moritzruth.dracula_musical.song.*
import de.moritzruth.dracula_musical.song.songIrrenhaus
import de.moritzruth.dracula_musical.song.songLucy
import de.moritzruth.dracula_musical.song.songMittsommernacht
import de.moritzruth.theaterdsl.show.CurtainState import de.moritzruth.theaterdsl.show.CurtainState
import de.moritzruth.theaterdsl.show.PropPosition import de.moritzruth.theaterdsl.show.PropPosition
import de.moritzruth.theaterdsl.show.ShowBuilderContext import de.moritzruth.theaterdsl.show.ShowBuilderContext
@ -171,9 +168,110 @@ fun ShowBuilderContext.act1() = act("Erster Akt") {
+"Tochter Nickelby" +"Tochter Nickelby"
} }
} }
step(StepCue.Text("Mina", "Es gibt hier noch mehr Irre.")) {
actors {
-"Mina"
}
}
} }
scene("Blockflötenkreis") { scene("Blockflötenkreis") {
songLucy() songLucy()
lightStep(StepCue.Custom("Gardine wird geöffnet")) {
FrontLights.all { it.brightness.fade(100.percent, 2.seconds) }
sidelight.brightness.off(3.seconds)
}
step(StepCue.Text("Mr. Nickelby", "…als du die Vorhänge aufgemacht hast.")) {
actors {
+"Mrs. Ascot"
}
onRun {
sidelight.colors.forEach { it.fadeRandomAround(0.degrees, 5.degrees, 3.seconds) }
}
}
step(StepCue.Text("Mrs. Ascot", "Sie Flötenguru!")) {
actors {
+"Dr. Sewart"
}
}
repeat(2) {
lightStep(StepCue.Custom("Gardine wird geschlossen")) {
FrontLights.all { it.brightness.fade(40.percent, 2.seconds) }
sidelight.brightness.fade(80.percent, 2.seconds)
}
lightStep(StepCue.Custom("Gardine wird geöffnet")) {
FrontLights.all { it.brightness.fade(100.percent, 2.seconds) }
sidelight.brightness.off(2.seconds)
}
}
step(StepCue.Text("Dr. Sewart", "Und dass mir ja die Gardine aufbleibt!")) {
actors {
-"Dr. Sewart"
-"Mrs. Ascot"
-"Lucy"
-"Mr. Nickelby"
-"Mrs. Nickelby"
-"Tochter Nickelby"
}
onRun {
FrontLights.all { it.brightness.off(5.seconds) }
}
}
}
scene("Männerbesuch") {
step(StepCue.Custom("Es klingelt")) {
actors {
+"Mina"
+"Jonathan / hinter der Tür"
}
onRun {
FrontLights.all { it.brightness.fade(75.percent, 5.seconds) }
}
}
step(StepCue.Text("Mina", "Sehr merkwürdig.")) {
actors {
+"Mrs. Ascot"
}
}
step(StepCue.Text("Mrs. Ascot", "Miss Murray!", "beim dritten Mal")) {
actors {
-"Mrs. Ascot"
}
}
songDuett()
step(StepCue.Text("Mina", "So markiere ich, was mir gehört.")) {
actors {
+"Mrs. Ascot"
}
}
step(StepCue.Text("Jonathan", "Gute Nacht.")) {
actors {
-"Mina"
-"Jonathan"
-"Mrs. Ascot"
}
leftSpotTarget = null
onRun {
FrontLights.all { it.brightness.off(5.seconds) }
}
}
} }
} }

View file

@ -29,9 +29,9 @@ object Washs {
} }
object BlinderBars { object BlinderBars {
val left = DeviceGroup(StairvilleSplb(DmxAddress(155u)), StairvilleSplb(DmxAddress(178u))) val inner = DeviceGroup(StairvilleSplb(DmxAddress(155u)), StairvilleSplb(DmxAddress(178u)))
val right = DeviceGroup(StairvilleSplb(DmxAddress(201u)), StairvilleSplb(DmxAddress(224u))) val outer = DeviceGroup(StairvilleSplb(DmxAddress(201u)), StairvilleSplb(DmxAddress(224u)))
val all = left + right val all = inner + outer
} }
val backlightBar = StairvilleTlb(DmxAddress(130u)) val backlightBar = StairvilleTlb(DmxAddress(130u))

View file

@ -0,0 +1,50 @@
package de.moritzruth.dracula_musical.song
import de.moritzruth.dracula_musical.device.*
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
fun SceneBuilderContext.songDuett() {
lightStep(StepCue.MusicStart("Duett", 3.minutes + 15.seconds)) {
FrontLights.all { it.brightness.fade(40.percent, 5.seconds) }
Washs.both {
it.pointAtCeiling()
it.colorWheelMode.static(CoemarProWash.ColorWheelMode.White)
it.magenta.static(100.percent)
}
}
lightStep(StepCue.Custom("Strophe")) {
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.Text("Mina & Jonathan", "Von dem Gefühl im Bauch…")) {
backlightBar.color.static(Color(300.degrees))
backlightBar.brightness.fade(40.percent, 6.seconds)
}
step(StepCue.Text("Mina & Jonathan", "Ich weiß nur eins…")) {
leftSpotTarget = "Mina & Jonathan"
onRun {
Spots.left.brightness.fade(100.percent, 8.seconds)
}
}
lightStep(StepCue.MusicEnd) {
Spots.left.brightness.off(10.seconds)
FrontLights.all { it.brightness.fade(75.percent, 10.seconds) }
BlinderBars.all { it.brightness.off(4.seconds) }
Washs.both { it.brightness.off(4.seconds) }
backlightBar.brightness.off(6.seconds)
}
}

View file

@ -1,7 +1,81 @@
package de.moritzruth.dracula_musical.song package de.moritzruth.dracula_musical.song
import de.moritzruth.dracula_musical.device.*
import de.moritzruth.theaterdsl.show.SceneBuilderContext 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
fun SceneBuilderContext.songLucy() { fun SceneBuilderContext.songLucy() {
lightStep(StepCue.MusicStart("Lucy", 2.minutes + 45.seconds)) {
backlightBar.color.fade(Color(hue = 315.degrees), 15.seconds)
Washs.both {
it.pointAtCeiling()
it.colorWheelMode.static(CoemarProWash.ColorWheelMode.White)
it.magenta.static(100.percent)
it.beamAngle.static(100.percent)
}
Tops.both {
it.startRoomMovement(4.0)
it.colorWheelMode.static(FuturelightDmh160.ColorWheelMode.LightPink)
it.prismMode.static(FuturelightDmh160.PrismMode.OPEN)
}
}
// TODO: Do more during the first part
lightStep(StepCue.Custom("Refrain")) {
BlinderBars.all {
it.brightness.fade(25.percent, 2.seconds)
it.preset.static(StairvilleSplb.Preset.STUB) // red, flowy
}
Washs.left.brightness.sine(6.seconds, start = 0.percent)
Washs.right.brightness.sine(6.seconds, start = 100.percent)
}
lightStep(StepCue.Custom("Strophe")) {
Tops.both { it.brightness.sine(8.seconds, 20.percent, 100.percent) }
}
lightStep(StepCue.Custom("Bridge")) {
Tops.both { it.brightness.sine(8.seconds, 20.percent, 100.percent) }
BlinderBars.all {
it.brightness.fade(40.percent, 10.seconds)
it.preset.static(StairvilleSplb.Preset.STUB) // different, red, flowy
}
}
lightStep(StepCue.Custom("Refrain")) {
BlinderBars.all { it.brightness.fade(25.percent, 3.seconds) }
// TODO
}
lightStep(StepCue.Text("Lucy", "oh Nick", "letzte Silbe")) {
Tops.both { it.brightness.pulseOnce(0.1.seconds, 1.seconds) }
}
lightStep(StepCue.Custom("Interludium")) {
// TODO
}
lightStep(StepCue.Custom("Refrain")) {
// TODO
}
lightStep(StepCue.Custom("Schlussschlag")) {
// TODO
Washs.both { it.brightness.pulseOnce(0.1.seconds, 2.seconds) }
}
step(StepCue.MusicEnd) {
Tops.both { it.pointAtStageMiddleSingleCenterMarking() }
Washs.both { it.magenta.reset() }
BlinderBars.all { it.brightness.off(3.seconds) }
backlightBar.brightness.off(3.seconds)
}
} }