commit 99
This commit is contained in:
parent
a6e11649b3
commit
ae105a69e6
21 changed files with 173 additions and 103 deletions
|
@ -400,7 +400,7 @@ fun ShowBuilderContext.act1() = act("1. Akt") {
|
||||||
}
|
}
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.WHITE)
|
it.color.static(Color.WHITE)
|
||||||
it.white.static(40.percent)
|
it.white.static(40.percent)
|
||||||
it.brightness.pulseOnce(0.3.seconds, 2.seconds, 100.percent)
|
it.brightness.pulseOnce(0.3.seconds, 2.seconds, 100.percent)
|
||||||
|
|
|
@ -115,7 +115,7 @@ fun ShowBuilderContext.act2() = act("2. Akt") {
|
||||||
lightStep(StepCue.Custom("Van Helsing zückt das Kreuz (mit Musik)")) {
|
lightStep(StepCue.Custom("Van Helsing zückt das Kreuz (mit Musik)")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(100.percent, 2.seconds)
|
it.brightness.fade(100.percent, 2.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // switching, hectic
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(100.percent)
|
it.presetSpeed.static(100.percent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -306,7 +306,7 @@ fun ShowBuilderContext.act2() = act("2. Akt") {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(100.percent, 2.seconds)
|
it.brightness.fade(100.percent, 2.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // switching, hectic
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(100.percent)
|
it.presetSpeed.static(100.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -348,7 +348,7 @@ fun ShowBuilderContext.act2() = act("2. Akt") {
|
||||||
lightStep(StepCue.Custom("Van Helsing zückt das Kreuz (mit Musik)")) {
|
lightStep(StepCue.Custom("Van Helsing zückt das Kreuz (mit Musik)")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(100.percent, 2.seconds)
|
it.brightness.fade(100.percent, 2.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // switching, hectic
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(100.percent)
|
it.presetSpeed.static(100.percent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -390,7 +390,7 @@ fun ShowBuilderContext.act2() = act("2. Akt") {
|
||||||
|
|
||||||
lightStep(StepCue.Custom("Musik: Einsetzen der Drums")) {
|
lightStep(StepCue.Custom("Musik: Einsetzen der Drums")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // chase, back-and-forth, hectic
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
it.brightness.fade(40.percent, 0.5.seconds)
|
it.brightness.fade(40.percent, 0.5.seconds)
|
||||||
}
|
}
|
||||||
|
@ -487,7 +487,7 @@ fun ShowBuilderContext.act2() = act("2. Akt") {
|
||||||
lightStep(StepCue.Custom("Van Helsing zückt das Kreuz (mit Musik)")) {
|
lightStep(StepCue.Custom("Van Helsing zückt das Kreuz (mit Musik)")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(50.percent, 2.seconds)
|
it.brightness.fade(50.percent, 2.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // switching, hectic
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(100.percent)
|
it.presetSpeed.static(100.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -528,7 +528,7 @@ fun ShowBuilderContext.act2() = act("2. Akt") {
|
||||||
}
|
}
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.color.reset()
|
it.color.reset()
|
||||||
it.brightness.pulseOnce(0.5.seconds, 10.seconds)
|
it.brightness.pulseOnce(0.5.seconds, 10.seconds)
|
||||||
|
@ -602,7 +602,7 @@ fun ShowBuilderContext.act2() = act("2. Akt") {
|
||||||
|
|
||||||
lightStep(StepCue.Custom("1. Beat")) {
|
lightStep(StepCue.Custom("1. Beat")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.color.reset()
|
it.color.reset()
|
||||||
it.brightness.pulseOnce(0.seconds, 0.2.seconds)
|
it.brightness.pulseOnce(0.seconds, 0.2.seconds)
|
||||||
|
|
|
@ -34,8 +34,10 @@ object Washs {
|
||||||
}
|
}
|
||||||
|
|
||||||
object BlinderBars {
|
object BlinderBars {
|
||||||
val inner = DeviceGroup(StairvilleSplb(DmxAddress(155u)), StairvilleSplb(DmxAddress(178u)))
|
//val inner = DeviceGroup(StairvilleSplb(DmxAddress(155u)), StairvilleSplb(DmxAddress(178u)))
|
||||||
val outer = DeviceGroup(StairvilleSplb(DmxAddress(201u)), StairvilleSplb(DmxAddress(224u)))
|
//val outer = DeviceGroup(StairvilleSplb(DmxAddress(201u)), StairvilleSplb(DmxAddress(224u)))
|
||||||
|
val inner = DeviceGroup(StairvilleTlbButItsSplb(DmxAddress(155u)), StairvilleTlbButItsSplb(DmxAddress(178u)))
|
||||||
|
val outer = DeviceGroup(StairvilleTlbButItsSplb(DmxAddress(201u)), StairvilleTlbButItsSplb(DmxAddress(224u)))
|
||||||
val all = inner + outer
|
val all = inner + outer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,19 @@ class StairvilleSplb(override val firstChannel: DmxAddress) : Device {
|
||||||
val color = ColorDV(Color.WHITE.copy(brightness = 0.percent))
|
val color = ColorDV(Color.WHITE.copy(brightness = 0.percent))
|
||||||
val white = PercentageDV()
|
val white = PercentageDV()
|
||||||
|
|
||||||
val preset = ConcreteDV<Preset?>(null)
|
val effect = ConcreteDV<Effect?>(null)
|
||||||
val presetSpeed = PercentageDV()
|
val effectSpeed = PercentageDV()
|
||||||
|
|
||||||
enum class Preset(channelValue: UByte) {
|
enum class Effect {
|
||||||
STUB(16u);
|
HECTIC_SWITCHING,
|
||||||
|
THEATRE_SWITCHING,
|
||||||
val channelValue: DmxValue = DmxValue(channelValue)
|
CHASE_BACK_AND_FORTH,
|
||||||
|
CHASE_INWARDS,
|
||||||
|
LAZY_SPARKLES,
|
||||||
|
VOLATILE_SPARKLES,
|
||||||
|
BUMP_INWARDS,
|
||||||
|
FLOW_INWARDS,
|
||||||
|
FLOW_OUTWARDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
override val dvs: ImmutableSet<DynamicValue<*>> = persistentSetOf(
|
override val dvs: ImmutableSet<DynamicValue<*>> = persistentSetOf(
|
||||||
|
@ -33,8 +39,8 @@ class StairvilleSplb(override val firstChannel: DmxAddress) : Device {
|
||||||
strobeFrequency,
|
strobeFrequency,
|
||||||
color,
|
color,
|
||||||
white,
|
white,
|
||||||
preset,
|
effect,
|
||||||
presetSpeed
|
effectSpeed
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun writeDmxData(writer: DmxDataWriter, isLightBehindCurtainOn: Boolean) {
|
override fun writeDmxData(writer: DmxDataWriter, isLightBehindCurtainOn: Boolean) {
|
||||||
|
@ -45,18 +51,18 @@ class StairvilleSplb(override val firstChannel: DmxAddress) : Device {
|
||||||
else writer.writeRaw(DmxValue(strobeFrequency.ofRange(11.0..255.0).roundToInt().toUByte()))
|
else writer.writeRaw(DmxValue(strobeFrequency.ofRange(11.0..255.0).roundToInt().toUByte()))
|
||||||
|
|
||||||
// mode
|
// mode
|
||||||
val preset = preset.getCurrentValue()
|
val preset = effect.getCurrentValue()
|
||||||
if (preset == null) writer.writeRaw(DmxValue(0u)) // mode = RGBW
|
if (preset == null) writer.writeRaw(DmxValue(0u)) // mode = RGBW
|
||||||
else writer.writeRaw(DmxValue(128u)) // mode = preset
|
else writer.writeRaw(DmxValue(128u)) // mode = preset
|
||||||
|
|
||||||
writer.writeRaw(DmxValue(0u)) // color preset (not used)
|
writer.writeRaw(DmxValue(0u)) // color preset (not used)
|
||||||
|
|
||||||
if (preset == null) writer.writeRaw(DmxValue(0u))
|
if (preset == null) writer.writeRaw(DmxValue(0u))
|
||||||
else writer.writeRaw(preset.channelValue)
|
else writer.writeRaw(DmxValue(0u))
|
||||||
|
|
||||||
writer.writeRaw(DmxValue(0u)) // sound mode preset
|
writer.writeRaw(DmxValue(0u)) // sound mode preset
|
||||||
|
|
||||||
writer.writePercentage(presetSpeed.getCurrentValue())
|
writer.writePercentage(effectSpeed.getCurrentValue())
|
||||||
|
|
||||||
val (red, green, blue) = color.getCurrentValue().getRGB()
|
val (red, green, blue) = color.getCurrentValue().getRGB()
|
||||||
writer.writePercentage(red)
|
writer.writePercentage(red)
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
package de.moritzruth.dracula_musical.device
|
||||||
|
|
||||||
|
import de.moritzruth.dracula_musical.device.StairvilleSplb.Effect
|
||||||
|
import de.moritzruth.theaterdsl.device.*
|
||||||
|
import de.moritzruth.theaterdsl.dmx.DmxAddress
|
||||||
|
import de.moritzruth.theaterdsl.dmx.DmxDataWriter
|
||||||
|
import de.moritzruth.theaterdsl.dmx.DmxValue
|
||||||
|
import de.moritzruth.theaterdsl.value.Color
|
||||||
|
import de.moritzruth.theaterdsl.value.percent
|
||||||
|
import kotlinx.collections.immutable.ImmutableSet
|
||||||
|
import kotlinx.collections.immutable.persistentSetOf
|
||||||
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
|
class StairvilleTlbButItsSplb(override val firstChannel: DmxAddress) : Device {
|
||||||
|
override val numberOfChannels: UInt = 27u
|
||||||
|
|
||||||
|
val brightness = PercentageDV()
|
||||||
|
val strobeFrequency = PercentageDV()
|
||||||
|
|
||||||
|
val color = ColorDV(Color.WHITE.copy(brightness = 0.percent))
|
||||||
|
val white = PercentageDV()
|
||||||
|
|
||||||
|
val effect = ConcreteDV<Effect?>(null)
|
||||||
|
val presetSpeed = PercentageDV()
|
||||||
|
|
||||||
|
override val dvs: ImmutableSet<DynamicValue<*>> = persistentSetOf(
|
||||||
|
brightness,
|
||||||
|
strobeFrequency,
|
||||||
|
color,
|
||||||
|
white,
|
||||||
|
effect,
|
||||||
|
presetSpeed
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun writeDmxData(writer: DmxDataWriter, isLightBehindCurtainOn: Boolean) {
|
||||||
|
writer.writePercentage(brightness.getCurrentValue())
|
||||||
|
|
||||||
|
val strobeFrequency = strobeFrequency.getCurrentValue()
|
||||||
|
if (strobeFrequency == 0.percent) writer.writeRaw(DmxValue(0u))
|
||||||
|
else writer.writeRaw(DmxValue(strobeFrequency.ofRange(11.0..255.0).roundToInt().toUByte()))
|
||||||
|
|
||||||
|
// mode
|
||||||
|
val preset = effect.getCurrentValue()
|
||||||
|
if (preset == null) writer.writeRaw(DmxValue(0u)) // mode = RGBW
|
||||||
|
else writer.writeRaw(DmxValue(128u)) // mode = preset
|
||||||
|
|
||||||
|
writer.writeRaw(DmxValue(0u)) // color preset (not used)
|
||||||
|
|
||||||
|
if (preset == null) writer.writeRaw(DmxValue(0u))
|
||||||
|
else writer.writeRaw(preset.dmxValue)
|
||||||
|
|
||||||
|
writer.writeRaw(DmxValue(0u)) // sound mode preset
|
||||||
|
|
||||||
|
writer.writePercentage(presetSpeed.getCurrentValue())
|
||||||
|
|
||||||
|
val (red, green, blue) = color.getCurrentValue().getRGB()
|
||||||
|
writer.writePercentage(red)
|
||||||
|
writer.writePercentage(green)
|
||||||
|
writer.writePercentage(blue)
|
||||||
|
writer.writePercentage(white.getCurrentValue())
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,7 +12,7 @@ fun SceneBuilderContext.songAdelIstGeil() {
|
||||||
lightStep(StepCue.MusicStart("Adel ist geil", 2.minutes + 40.seconds)) {
|
lightStep(StepCue.MusicStart("Adel ist geil", 2.minutes + 40.seconds)) {
|
||||||
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.effect.static(StairvilleSplb.Effect.LAZY_SPARKLES)
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
FrontLights.all { it.brightness.pulseOnce(0.2.seconds, 2.seconds, peak = 100.percent, end = 40.percent)}
|
FrontLights.all { it.brightness.pulseOnce(0.2.seconds, 2.seconds, peak = 100.percent, end = 40.percent)}
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // red, chase, back-and-forth
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(75.percent)
|
it.presetSpeed.static(75.percent)
|
||||||
it.brightness.ramp(1.seconds, 25.percent, 0.percent)
|
it.brightness.ramp(1.seconds, 25.percent, 0.percent)
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(10.percent, 1.seconds)
|
it.brightness.fade(10.percent, 1.seconds)
|
||||||
it.presetSpeed.static(10.percent)
|
it.presetSpeed.static(10.percent)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // red, flowy
|
it.effect.static(StairvilleSplb.Effect.BUMP_INWARDS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(25.percent, 1.5.seconds)
|
it.brightness.fade(25.percent, 1.5.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // blink-y, red
|
it.effect.static(StairvilleSplb.Effect.LAZY_SPARKLES)
|
||||||
it.presetSpeed.fade(25.percent, 1.5.seconds)
|
it.presetSpeed.fade(25.percent, 1.5.seconds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
backlightBar.pulseFast()
|
backlightBar.pulseFast()
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // red, chase, back-and-forth
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH) // red, chase, back-and-forth
|
||||||
it.presetSpeed.fade(75.percent, 1.seconds)
|
it.presetSpeed.fade(75.percent, 1.seconds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(30.percent, 8.seconds)
|
it.brightness.fade(30.percent, 8.seconds)
|
||||||
it.presetSpeed.fade(25.percent, 1.5.seconds)
|
it.presetSpeed.fade(25.percent, 1.5.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // blink-y, red
|
it.effect.static(StairvilleSplb.Effect.LAZY_SPARKLES) // blink-y, red
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
}
|
}
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, colorful
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(25.percent)
|
it.presetSpeed.static(25.percent)
|
||||||
it.brightness.fade(25.percent, 2.seconds)
|
it.brightness.fade(25.percent, 2.seconds)
|
||||||
}
|
}
|
||||||
|
@ -195,7 +195,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
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)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // blink-y, red
|
it.effect.static(StairvilleSplb.Effect.LAZY_SPARKLES)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,7 +219,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
FrontLights.center { it.brightness.off(3.seconds) }
|
FrontLights.center { it.brightness.off(3.seconds) }
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.WHITE)
|
it.color.static(Color.WHITE)
|
||||||
it.brightness.pulseOnce(1.5.seconds, 4.seconds)
|
it.brightness.pulseOnce(1.5.seconds, 4.seconds)
|
||||||
}
|
}
|
||||||
|
@ -246,7 +246,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
backlightBar.strobeSpeed.fade(80.percent, 3.seconds)
|
backlightBar.strobeSpeed.fade(80.percent, 3.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // red, chase, moving into one direction
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(90.percent)
|
it.presetSpeed.static(90.percent)
|
||||||
it.color.reset()
|
it.color.reset()
|
||||||
it.brightness.fade(30.percent, 0.5.seconds)
|
it.brightness.fade(30.percent, 0.5.seconds)
|
||||||
|
@ -323,7 +323,7 @@ fun SceneBuilderContext.songDraculasZorn() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.1.seconds, 2.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 2.seconds)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ fun SceneBuilderContext.songDuettDraculaMina() {
|
||||||
|
|
||||||
lightStep(StepCue.Text("Mina", "Ich kenne dich!", "Anfang")) {
|
lightStep(StepCue.Text("Mina", "Ich kenne dich!", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // flowy, dreamy
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(10.percent)
|
it.presetSpeed.static(10.percent)
|
||||||
it.brightness.fade(25.percent, 2.seconds)
|
it.brightness.fade(25.percent, 2.seconds)
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ fun SceneBuilderContext.songDuettMinaJonathan() {
|
||||||
|
|
||||||
lightStep(StepCue.Text("Mina", "Ich hab seit gestern…", "Anfang")) {
|
lightStep(StepCue.Text("Mina", "Ich hab seit gestern…", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy, pink, warm
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS) // dreamy, flowy, pink, warm
|
||||||
it.presetSpeed.static(10.percent)
|
it.presetSpeed.static(10.percent)
|
||||||
it.brightness.fade(25.percent, 5.seconds)
|
it.brightness.fade(25.percent, 5.seconds)
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ fun SceneBuilderContext.songEsIstAngerichtet() {
|
||||||
Washs.both { it.brightness.pulse(1.6.seconds, 0.1.seconds, 0.3.seconds, startDelay = 0.4.seconds, peak = 100.percent) }
|
Washs.both { it.brightness.pulse(1.6.seconds, 0.1.seconds, 0.3.seconds, startDelay = 0.4.seconds, peak = 100.percent) }
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // red, chase, back-and-forth
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.fade(10.percent, 10.seconds)
|
it.brightness.fade(10.percent, 10.seconds)
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ fun SceneBuilderContext.songEsIstAngerichtet() {
|
||||||
|
|
||||||
lightStep(StepCue.Text("Vampire", "…Essenszeit!", "zweite Silbe")) {
|
lightStep(StepCue.Text("Vampire", "…Essenszeit!", "zweite Silbe")) {
|
||||||
BlinderBars.outer {
|
BlinderBars.outer {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color(hue = 0.degrees))
|
it.color.static(Color(hue = 0.degrees))
|
||||||
it.brightness.static(100.percent)
|
it.brightness.static(100.percent)
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ fun SceneBuilderContext.songEsIstAngerichtet() {
|
||||||
|
|
||||||
lightStep(StepCue.Text("Vampire", "…Essenszeit!", "dritte Silbe")) {
|
lightStep(StepCue.Text("Vampire", "…Essenszeit!", "dritte Silbe")) {
|
||||||
BlinderBars.inner {
|
BlinderBars.inner {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color(hue = 0.degrees))
|
it.color.static(Color(hue = 0.degrees))
|
||||||
it.brightness.static(100.percent)
|
it.brightness.static(100.percent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ fun SceneBuilderContext.songFinale() {
|
||||||
Spots.right.brightness.fade(100.percent, 5.seconds)
|
Spots.right.brightness.fade(100.percent, 5.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // pulsing, dark
|
it.effect.static(StairvilleSplb.Effect.LAZY_SPARKLES)
|
||||||
it.presetSpeed.fade(start = 0.percent, end = 50.percent, duration = 20.seconds)
|
it.presetSpeed.fade(start = 0.percent, end = 50.percent, duration = 20.seconds)
|
||||||
it.brightness.fade(25.percent, 3.seconds)
|
it.brightness.fade(25.percent, 3.seconds)
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ fun SceneBuilderContext.songFinale() {
|
||||||
FrontLights.center { it.brightness.fade(100.percent, 5.seconds) }
|
FrontLights.center { it.brightness.fade(100.percent, 5.seconds) }
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // warm-white, flowing
|
it.effect.static(StairvilleSplb.Effect.LAZY_SPARKLES)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.breathe()
|
backlightBar.breathe()
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.VOLATILE_SPARKLES)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 25.percent)
|
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, end = 25.percent)
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.BUMP_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds, end = 25.percent)
|
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds, end = 25.percent)
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.1.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.1.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -77,14 +77,14 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.RED)
|
it.color.static(Color.RED)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Dracula", "Ich will diese Frau!", "Anfang")) {
|
lightStep(StepCue.Text("Dracula", "Ich will diese Frau!", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.BUMP_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.fade(25.percent, 0.4.seconds)
|
it.brightness.fade(25.percent, 0.4.seconds)
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.RED)
|
it.color.static(Color.RED)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.fade(25.percent, 0.4.seconds)
|
it.brightness.fade(25.percent, 0.4.seconds)
|
||||||
}
|
}
|
||||||
|
@ -134,14 +134,14 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.RED)
|
it.color.static(Color.RED)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Dracula", "Ich sorg für euch!", "Anfang")) {
|
lightStep(StepCue.Text("Dracula", "Ich sorg für euch!", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.BUMP_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.fade(25.percent, 0.4.seconds)
|
it.brightness.fade(25.percent, 0.4.seconds)
|
||||||
}
|
}
|
||||||
|
@ -152,7 +152,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.1.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.1.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -163,14 +163,14 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.RED)
|
it.color.static(Color.RED)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Dracula", "Ihr müsst mir vertrau’n…", "Anfang")) {
|
lightStep(StepCue.Text("Dracula", "Ihr müsst mir vertrau’n…", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.BUMP_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.fade(25.percent, 0.4.seconds)
|
it.brightness.fade(25.percent, 0.4.seconds)
|
||||||
}
|
}
|
||||||
|
@ -183,7 +183,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -199,14 +199,14 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.RED)
|
it.color.static(Color.RED)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Bernadette", "Das Essen ist weg…", "Anfang")) {
|
lightStep(StepCue.Text("Bernadette", "Das Essen ist weg…", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.VOLATILE_SPARKLES)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.fade(25.percent, 0.4.seconds)
|
it.brightness.fade(25.percent, 0.4.seconds)
|
||||||
}
|
}
|
||||||
|
@ -218,14 +218,14 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.2.seconds)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.RED)
|
it.color.static(Color.RED)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Dracula", "Ich brauche ihn noch!", "Anfang")) {
|
lightStep(StepCue.Text("Dracula", "Ich brauche ihn noch!", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.brightness.fade(25.percent, 0.4.seconds)
|
it.brightness.fade(25.percent, 0.4.seconds)
|
||||||
}
|
}
|
||||||
|
@ -236,7 +236,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -246,7 +246,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -256,7 +256,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -266,7 +266,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -278,7 +278,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -288,7 +288,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
backlightBar.color.fade(Color.RED, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -298,7 +298,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, bright, jumpy
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -313,7 +313,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.RED, 0.2.seconds)
|
backlightBar.color.fade(Color.RED, 0.2.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(70.percent)
|
it.presetSpeed.static(70.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -323,7 +323,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
backlightBar.color.fade(Color.WHITE, 0.4.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null) // hectic, bright, jumpy
|
it.effect.static(null)
|
||||||
it.color.static(Color.RED)
|
it.color.static(Color.RED)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.3.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.3.seconds)
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.color.reset()
|
it.color.reset()
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // flowy, dreamy, warm
|
it.effect.static(StairvilleSplb.Effect.FLOW_INWARDS)
|
||||||
it.presetSpeed.static(15.percent)
|
it.presetSpeed.static(15.percent)
|
||||||
it.brightness.fade(30.percent, 2.seconds)
|
it.brightness.fade(30.percent, 2.seconds)
|
||||||
}
|
}
|
||||||
|
@ -416,7 +416,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
lightStep(StepCue.Text("Dracula", "…morgen nacht", "letzte Silbe")) {
|
lightStep(StepCue.Text("Dracula", "…morgen nacht", "letzte Silbe")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.4.seconds, 0.4.seconds, peak = 60.percent, end = 30.percent)
|
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.effect.static(StairvilleSplb.Effect.THEATRE_SWITCHING)
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -442,7 +442,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(25.percent, 1.seconds)
|
it.brightness.fade(25.percent, 1.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, red
|
it.effect.static(StairvilleSplb.Effect.BUMP_INWARDS)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -467,7 +467,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
lightStep(StepCue.Text("Dracula", "Du musst ein wenig sterben…", "Anfang")) {
|
lightStep(StepCue.Text("Dracula", "Du musst ein wenig sterben…", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(30.percent, 1.seconds)
|
it.brightness.fade(30.percent, 1.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // switching, theatre-like
|
it.effect.static(StairvilleSplb.Effect.THEATRE_SWITCHING)
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -506,7 +506,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
backlightBar.color.fade(Color.RED, 6.seconds)
|
backlightBar.color.fade(Color.RED, 6.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, red
|
it.effect.static(StairvilleSplb.Effect.BUMP_INWARDS)
|
||||||
it.presetSpeed.static(60.percent)
|
it.presetSpeed.static(60.percent)
|
||||||
it.brightness.fade(40.percent, 3.seconds)
|
it.brightness.fade(40.percent, 3.seconds)
|
||||||
}
|
}
|
||||||
|
@ -528,7 +528,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
Washs.both { it.brightness.rampDown(0.8.seconds) }
|
Washs.both { it.brightness.rampDown(0.8.seconds) }
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // hectic, red
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
it.presetSpeed.static(80.percent)
|
it.presetSpeed.static(80.percent)
|
||||||
it.brightness.fade(60.percent, 5.seconds)
|
it.brightness.fade(60.percent, 5.seconds)
|
||||||
}
|
}
|
||||||
|
@ -555,7 +555,7 @@ fun SceneBuilderContext.songFinaleErsterAkt() {
|
||||||
sidelight.brightness.pulseOnce(0.2.seconds, 10.seconds)
|
sidelight.brightness.pulseOnce(0.2.seconds, 10.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.WHITE)
|
it.color.static(Color.WHITE)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.brightness.pulseOnce(0.2.seconds, 3.seconds)
|
it.brightness.pulseOnce(0.2.seconds, 3.seconds)
|
||||||
|
|
|
@ -27,7 +27,7 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
lightStep(StepCue.Custom("Musik: Fill-in")) {
|
lightStep(StepCue.Custom("Musik: Fill-in")) {
|
||||||
Washs.both { it.brightness.fade(100.percent, 2.seconds) }
|
Washs.both { it.brightness.fade(100.percent, 2.seconds) }
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, chaotic
|
it.effect.static(StairvilleSplb.Effect.VOLATILE_SPARKLES)
|
||||||
it.brightness.fade(30.percent, 2.seconds)
|
it.brightness.fade(30.percent, 2.seconds)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
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) }
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent)
|
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent)
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
|
|
||||||
lightStep(StepCue.Text("Alle", "Wir sind bescheuert!", "Ende")) {
|
lightStep(StepCue.Text("Alle", "Wir sind bescheuert!", "Ende")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, chaotic
|
it.effect.static(StairvilleSplb.Effect.VOLATILE_SPARKLES)
|
||||||
it.brightness.fade(40.percent, 1.seconds)
|
it.brightness.fade(40.percent, 1.seconds)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
Spots.right.brightness.fade(100.percent, 1.seconds)
|
Spots.right.brightness.fade(100.percent, 1.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // flowy, chaotic
|
it.effect.static(StairvilleSplb.Effect.FLOW_OUTWARDS)
|
||||||
it.brightness.fade(25.percent, 1.seconds)
|
it.brightness.fade(25.percent, 1.seconds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,14 +115,14 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
}
|
}
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent)
|
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Alle", "Wir sind bescheuert!", "Ende")) {
|
lightStep(StepCue.Text("Alle", "Wir sind bescheuert!", "Ende")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, chaotic
|
it.effect.static(StairvilleSplb.Effect.VOLATILE_SPARKLES) // jumpy, chaotic
|
||||||
it.brightness.fade(40.percent, 1.seconds)
|
it.brightness.fade(40.percent, 1.seconds)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
Spots.right.brightness.fade(100.percent, 1.seconds)
|
Spots.right.brightness.fade(100.percent, 1.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // flowy, chaotic
|
it.effect.static(StairvilleSplb.Effect.FLOW_OUTWARDS) // flowy, chaotic
|
||||||
it.brightness.fade(25.percent, 1.seconds)
|
it.brightness.fade(25.percent, 1.seconds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -170,14 +170,14 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
}
|
}
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent)
|
it.brightness.pulseOnce(0.1.seconds, 0.5.seconds, 100.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Alle", "Wir sind bescheuert!", "Ende")) {
|
lightStep(StepCue.Text("Alle", "Wir sind bescheuert!", "Ende")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, chaotic
|
it.effect.static(StairvilleSplb.Effect.VOLATILE_SPARKLES)
|
||||||
it.brightness.fade(40.percent, 1.seconds)
|
it.brightness.fade(40.percent, 1.seconds)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -204,7 +204,7 @@ fun SceneBuilderContext.songIrrenhaus() {
|
||||||
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) }
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.static(Color.WHITE)
|
it.color.static(Color.WHITE)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 2.seconds, 100.percent)
|
it.brightness.pulseOnce(0.1.seconds, 2.seconds, 100.percent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,8 +11,8 @@ import kotlin.time.Duration.Companion.seconds
|
||||||
fun SceneBuilderContext.songKaffeeklatsch() {
|
fun SceneBuilderContext.songKaffeeklatsch() {
|
||||||
step(StepCue.MusicStart("Kaffeeklatsch", 2.minutes + 35.seconds)) {
|
step(StepCue.MusicStart("Kaffeeklatsch", 2.minutes + 35.seconds)) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // idk
|
it.effect.static(StairvilleSplb.Effect.VOLATILE_SPARKLES)
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(30.percent)
|
||||||
it.brightness.fade(25.percent, 4.seconds)
|
it.brightness.fade(25.percent, 4.seconds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ fun SceneBuilderContext.songLucy() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.pulseOnce(0.4.seconds, 2.5.seconds, peak = 75.percent)
|
it.brightness.pulseOnce(0.4.seconds, 2.5.seconds, peak = 75.percent)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,7 @@ fun SceneBuilderContext.songLucy() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(25.percent, 2.seconds)
|
it.brightness.fade(25.percent, 2.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // warm/red/pink, theatre-like, flowy
|
it.effect.static(StairvilleSplb.Effect.THEATRE_SWITCHING) // warm/pink
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -144,7 +144,7 @@ fun SceneBuilderContext.songLucy() {
|
||||||
backlightBar.brightness.pulseOnce(0.1.seconds, 2.seconds)
|
backlightBar.brightness.pulseOnce(0.1.seconds, 2.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 2.seconds, peak = 60.percent)
|
it.brightness.pulseOnce(0.1.seconds, 2.seconds, peak = 60.percent)
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ fun SceneBuilderContext.songMaskenball() {
|
||||||
Washs.both { it.brightness.fade(100.percent, 1.seconds) }
|
Washs.both { it.brightness.fade(100.percent, 1.seconds) }
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // theatre-like, warm
|
it.effect.static(StairvilleSplb.Effect.THEATRE_SWITCHING) // warm
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
it.brightness.fade(25.percent, 2.seconds)
|
it.brightness.fade(25.percent, 2.seconds)
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,14 +45,14 @@ fun SceneBuilderContext.songMittsommernacht() {
|
||||||
it.brightness.fade(25.percent, 1.seconds)
|
it.brightness.fade(25.percent, 1.seconds)
|
||||||
it.white.static(0.percent)
|
it.white.static(0.percent)
|
||||||
it.presetSpeed.static(20.percent)
|
it.presetSpeed.static(20.percent)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // flowy, warm
|
it.effect.static(StairvilleSplb.Effect.FLOW_OUTWARDS)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lightStep(StepCue.Text("Alle", "Heute sind die Gespenster los…", "Anfang")) {
|
lightStep(StepCue.Text("Alle", "Heute sind die Gespenster los…", "Anfang")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.presetSpeed.static(50.percent)
|
it.presetSpeed.static(50.percent)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, warm
|
it.effect.static(StairvilleSplb.Effect.LAZY_SPARKLES)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ fun SceneBuilderContext.songMittsommernacht() {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.off(1.seconds)
|
it.brightness.off(1.seconds)
|
||||||
it.presetSpeed.static(5.percent)
|
it.presetSpeed.static(5.percent)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // back-and-forth
|
it.effect.static(StairvilleSplb.Effect.CHASE_BACK_AND_FORTH)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,7 +109,7 @@ fun SceneBuilderContext.songMittsommernacht() {
|
||||||
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)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // jumpy, warm
|
it.effect.static(StairvilleSplb.Effect.THEATRE_SWITCHING)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ fun SceneBuilderContext.songMittsommernacht() {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(start = 40.percent, end = 0.percent, duration = 5.seconds)
|
it.brightness.fade(start = 40.percent, end = 0.percent, duration = 5.seconds)
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
}
|
}
|
||||||
|
|
||||||
backlightBar.color.static(Color(hue = 40.degrees, saturation = 50.percent))
|
backlightBar.color.static(Color(hue = 40.degrees, saturation = 50.percent))
|
||||||
|
@ -180,7 +180,7 @@ fun SceneBuilderContext.songMittsommernacht() {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.color.reset()
|
it.color.reset()
|
||||||
it.brightness.fade(25.percent, 1.seconds)
|
it.brightness.fade(25.percent, 1.seconds)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // chase, red
|
it.effect.static(StairvilleSplb.Effect.CHASE_INWARDS)
|
||||||
it.presetSpeed.static(80.percent)
|
it.presetSpeed.static(80.percent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -244,8 +244,8 @@ fun SceneBuilderContext.songMittsommernacht() {
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.brightness.fade(30.percent, 3.seconds)
|
it.brightness.fade(30.percent, 3.seconds)
|
||||||
it.presetSpeed.static(20.percent)
|
it.presetSpeed.static(10.percent)
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // flowy, warm
|
it.effect.static(StairvilleSplb.Effect.HECTIC_SWITCHING)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ fun SceneBuilderContext.songMittsommernacht() {
|
||||||
lightStep(StepCue.Custom("Musik: 2. Hit")) {
|
lightStep(StepCue.Custom("Musik: 2. Hit")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.brightness.pulseOnce(0.2.seconds, 2.seconds, 100.percent)
|
it.brightness.pulseOnce(0.2.seconds, 2.seconds, 100.percent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ fun SceneBuilderContext.songRepriseDuett() {
|
||||||
}
|
}
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // dreamy, flowy, pink, warm
|
it.effect.static(StairvilleSplb.Effect.FLOW_OUTWARDS) // pink/warm
|
||||||
it.presetSpeed.static(10.percent)
|
it.presetSpeed.static(10.percent)
|
||||||
it.brightness.fade(25.percent, 5.seconds)
|
it.brightness.fade(25.percent, 5.seconds)
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ fun SceneBuilderContext.songRepriseMaskenball() {
|
||||||
backlightBar.brightness.fade(50.percent, 3.seconds)
|
backlightBar.brightness.fade(50.percent, 3.seconds)
|
||||||
|
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // theatre-like, warm
|
it.effect.static(StairvilleSplb.Effect.THEATRE_SWITCHING)
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
it.brightness.fade(25.percent, 2.seconds)
|
it.brightness.fade(25.percent, 2.seconds)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ import kotlin.time.Duration.Companion.seconds
|
||||||
fun SceneBuilderContext.songStreitDerVampire() {
|
fun SceneBuilderContext.songStreitDerVampire() {
|
||||||
lightStep(StepCue.MusicStart("Streit der Vampire", 1.minutes + 40.seconds)) {
|
lightStep(StepCue.MusicStart("Streit der Vampire", 1.minutes + 40.seconds)) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(StairvilleSplb.Preset.STUB) // chase, single direction
|
it.effect.static(StairvilleSplb.Effect.CHASE_INWARDS)
|
||||||
it.presetSpeed.static(40.percent)
|
it.presetSpeed.static(40.percent)
|
||||||
it.brightness.fade(25.percent, 1.seconds)
|
it.brightness.fade(25.percent, 1.seconds)
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ fun SceneBuilderContext.songVanHelsing() {
|
||||||
|
|
||||||
lightStep(StepCue.Custom("Musik: Beat nach »Kreatur des Bösen«")) {
|
lightStep(StepCue.Custom("Musik: Beat nach »Kreatur des Bösen«")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.reset()
|
it.color.reset()
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.3.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.3.seconds)
|
||||||
|
@ -73,7 +73,7 @@ fun SceneBuilderContext.songVanHelsing() {
|
||||||
|
|
||||||
lightStep(StepCue.Custom("Musik: Beat nach »Meute«")) {
|
lightStep(StepCue.Custom("Musik: Beat nach »Meute«")) {
|
||||||
BlinderBars.all {
|
BlinderBars.all {
|
||||||
it.preset.static(null)
|
it.effect.static(null)
|
||||||
it.color.reset()
|
it.color.reset()
|
||||||
it.white.static(100.percent)
|
it.white.static(100.percent)
|
||||||
it.brightness.pulseOnce(0.1.seconds, 0.3.seconds)
|
it.brightness.pulseOnce(0.1.seconds, 0.3.seconds)
|
||||||
|
|
Loading…
Add table
Reference in a new issue