This commit is contained in:
Moritz Ruth 2023-06-28 18:39:24 +02:00
parent 0b46384f5e
commit 675ad3132e
Signed by: moritzruth
GPG key ID: C9BBAB79405EE56D
5 changed files with 78 additions and 44 deletions

View file

@ -31,7 +31,7 @@ fun ShowBuilderContext.firstAct() = act("Erster Akt") {
lightStep(StepCue.Custom("Gitarren-Einsatz (Takt 17)")) {
Washs.both.forEach { it.brightness.pulseOnce(500.milliseconds, 5.seconds) }
FrontLights.all.forEach { it.brightness.pulseOnce(500.milliseconds, 5.seconds, start = 20.percent) }
Tops.both.forEach { it.startRoomMovement(5.5) }
Tops.both.forEach { it.startRoomMovement(4.5) }
}
lightStep(StepCue.Custom("Gitarren-Ton")) {
@ -114,10 +114,7 @@ fun ShowBuilderContext.firstAct() = act("Erster Akt") {
curtainState = CurtainState.OPEN
rightSpotTarget = "Richy"
onRun {
spotRight.brightness.fade(100.percent, 6.seconds)
FrontLights.center.forEach { it.brightness.fade(75.percent, 10.seconds) }
Washs.both.forEach {
it.pointAtStageCenter()
@ -126,14 +123,6 @@ fun ShowBuilderContext.firstAct() = act("Erster Akt") {
}
}
step(StepCue.Custom("Richy erreicht die Bühne")) {
rightSpotTarget = null
onRun {
spotRight.brightness.off(10.seconds)
}
}
step(StepCue.MusicStart("Rap", 2.minutes + 30.seconds)) {
actors {
+"Maria"
@ -164,7 +153,7 @@ fun ShowBuilderContext.firstAct() = act("Erster Akt") {
}
lightStep(StepCue.Custom("Schlussschlag")) {
FrontLights.center.forEach { it.brightness.pulseOnce(200.milliseconds, 4.seconds) }
FrontLights.center.forEach { it.brightness.pulseOnce(200.milliseconds, 4.seconds, end = 50.percent) }
Washs.both.forEach {
it.beamAngle.fade(100.percent, 200.milliseconds)
@ -188,16 +177,31 @@ fun ShowBuilderContext.firstAct() = act("Erster Akt") {
-"David"
}
}
step(StepCue.Text("Jakob", "Tschau")) {
actors {
-"Jakob"
}
}
step(StepCue.Text("Richy", "Tschüss")) {
actors {
-"Richy / nach links"
}
onRun {
FrontLights.center { it.brightness.off(3.seconds) }
}
}
}
scene("Szene 2") {
step(StepCue.Light(StepCue.Light.State.OFF, false)) {
actors {
-"Jakob"
-"Tina"
-"Richy"
+"David / sitzt am Klavier"
+"Klavierlehrerin / steht neben David"
+"Klavierlehrer / steht neben David"
}
}
@ -210,7 +214,7 @@ fun ShowBuilderContext.firstAct() = act("Erster Akt") {
step(StepCue.Text("David", "Ach nicht?")) {
actors {
+"Paula / von rechts"
-"Klavierlehrerin / nach links"
-"Klavierlehrer / nach links"
}
onRun {
@ -280,9 +284,10 @@ fun ShowBuilderContext.firstAct() = act("Erster Akt") {
onRun {
FrontLights.center.forEach { it.brightness.fade(50.percent, 5.seconds) }
Washs.both.forEach { it.beamAngle.static(100.percent) }
Washs.left.colorWheelMode.static(CoemarProWash.ColorWheelMode.Red)
Washs.right.colorWheelMode.static(CoemarProWash.ColorWheelMode.Rotate(10.percent))
Washs.both.forEach {
it.beamAngle.static(100.percent)
it.colorWheelMode.static(CoemarProWash.ColorWheelMode.Red)
}
}
}

View file

@ -49,7 +49,7 @@ fun ShowBuilderContext.secondAct() = act("Zweiter Akt") {
// Fernsehsimulation
bar.color.fadeRandomAround(180.degrees, 90.degrees, 2000.milliseconds)
bar.brightness.fade(80.percent, 5.seconds)
bar.brightness.fade(20.percent, 5.seconds)
}
}
@ -169,10 +169,8 @@ fun ShowBuilderContext.secondAct() = act("Zweiter Akt") {
}
step(StepCue.MusicStart("Eine Rolle spielen II", 10.minutes)) {
props(PropConfigurations::casting)
// instrumental
}
step(StepCue.MusicEnd) {
}
}
}

View file

@ -16,32 +16,62 @@ import kotlin.time.Duration.Companion.seconds
@Suppress("DuplicatedCode")
fun ShowBuilderContext.thirdAct() = act("Dritter Akt") {
scene("Szene 1") {
step(StepCue.Stub) {
props(PropConfigurations::casting)
step(StepCue.MusicEnd) {
actors {
+"Richy"
+"David"
+"Jakob / durch den linken Gang"
+"Andrea / durch den linken Gang"
+"Domina / durch den rechten Gang"
+"Valentina / durch den rechten Gang"
}
leftSpotTarget = "Jakob und Andrea / im linken Gang"
rightSpotTarget = "Domina und Valentina / im rechten Gang"
onRun {
sideLight.brightness.off()
FrontLights.all.forEach { it.brightness.fade(75.percent, 10.seconds) }
spotLeft.brightness.fade(100.percent, 4.seconds)
spotRight.brightness.fade(100.percent, 4.seconds)
sideLight.colors.forEach { it.static(Color.BLACK) }
sideLight.color1.static(Color(54.degrees))
sideLight.brightness.static(100.percent)
}
}
step(StepCue.Custom("Erreichen der Bühne")) {
actors {
+"Sandra / steht links"
+"Richy / steht links"
+"Maria / hinter der rechten Wand"
}
leftSpotTarget = null
rightSpotTarget = null
curtainState = CurtainState.OPEN
onRun {
spotLeft.brightness.off(5.seconds)
spotRight.brightness.off(5.seconds)
FrontLights.all { it.brightness.fade(75.percent, 6.seconds) }
}
}
}
scene("Szene 2") {
step(StepCue.Custom("Richy geht ab")) {
step(StepCue.Text("Richy", "Aber ich kann ja nicht überall sein.")) {
actors {
-"Richy"
-"Richy / nach rechts"
+"David / am Klavier"
}
leftSpotTarget = "David"
onRun {
FrontLights.all.forEach { it.brightness.fade(25.percent, 6.seconds) }
sideLight.brightness.off(10.seconds)
spotLeft.brightness.fade(100.percent, 5.seconds)
FrontLights.all.forEach { it.brightness.fade(25.percent, 6.seconds) }
}
}
@ -134,6 +164,12 @@ fun ShowBuilderContext.thirdAct() = act("Dritter Akt") {
}
}
step(StepCue.Text("Kathi", "Ciao.")) {
actors {
-"Kathi / nach links"
}
}
step(StepCue.Text("David", "Echt nicht.")) {
actors {
+"Kai"
@ -179,10 +215,10 @@ fun ShowBuilderContext.thirdAct() = act("Dritter Akt") {
}
curtainState = CurtainState.OPEN
onRun {
Tops.left.brightness.fade(100.percent, 3.seconds)
}
lightStep(StepCue.Text("Kathi", "Hallo, Markus", "beim ersten Laut")) {
Tops.left.brightness.fade(100.percent, 3.seconds)
}
lightStep(StepCue.Text("Maria", "Hallo, Ingo", "beim ersten Laut")) {

View file

@ -88,17 +88,12 @@ class CoemarProWash(override val firstChannel: DmxAddress, private val isRight:
}
fun pointAtCeiling(fadeDuration: Duration = Duration.ZERO) {
if (isRight) {
pan.fade(300.degrees, fadeDuration)
} else {
pan.fade(60.degrees, fadeDuration)
}
pan.fade(if (isRight) 300.degrees else 60.degrees, fadeDuration)
tilt.fade(120.degrees, fadeDuration)
}
fun pointAtGuests() {
pan.static(0.degrees) // TODO: links fixen
tilt.static(240.degrees)
pan.static(if (isRight) 0.degrees else 180.degrees)
}
}

View file

@ -44,7 +44,7 @@ class FuturelightDmh160(override val firstChannel: DmxAddress, private val isRig
writer.writeRaw(DmxValue(0u)) // gobo rotation = none
writer.writeRaw(DmxValue(0u)) // second gobo = none
writer.writeRaw(prismMode.getCurrentValue().dmxValue)
writer.writeRaw(DmxValue((prismRotationSpeed.getCurrentValue().value * 123 + 4).roundToInt().toUByte()))
writer.writeRaw(DmxValue((prismRotationSpeed.getCurrentValue().value * 123 + 4).roundToInt().toUByte())) // TODO: Prüfen
writer.writeRaw(DmxValue(255u)) // focus = maximum distance
writer.writeRaw(DmxValue(0u)) // iris = ?
writer.writeRaw(DmxValue(0u)) // functions = noop