commit 98
This commit is contained in:
parent
0a5148cf37
commit
a6e11649b3
4 changed files with 48 additions and 9 deletions
|
@ -11,6 +11,7 @@ import de.moritzruth.theaterdsl.value.Percentage
|
|||
import de.moritzruth.theaterdsl.value.degrees
|
||||
import de.moritzruth.theaterdsl.value.percent
|
||||
import kotlinx.collections.immutable.persistentSetOf
|
||||
import kotlin.math.pow
|
||||
import kotlin.math.roundToInt
|
||||
import kotlin.time.Duration
|
||||
|
||||
|
@ -97,6 +98,13 @@ class CoemarProWash(override val firstChannel: DmxAddress, private val invertAng
|
|||
|
||||
writer.writeRaw(DmxValue(0u)) // no function
|
||||
writer.writeRaw(DmxValue(strobeSpeed.getCurrentValue().ofRange(63.0..95.0).roundToInt().toUByte()))
|
||||
writer.writePercentage(brightness.getCurrentValue())
|
||||
|
||||
val adjustedBrightness = Percentage(brightness.getCurrentValue().value.pow(1.5))
|
||||
if (adjustedBrightness.value == 0.0) writer.writeRaw(DmxValue(0u))
|
||||
else writer.writeRaw(
|
||||
DmxValue(
|
||||
adjustedBrightness.ofRange(75.0..DmxValue.VALUE_RANGE.endInclusive.toDouble()).roundToInt().toUByte()
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
|
@ -10,6 +10,7 @@ import de.moritzruth.theaterdsl.dmx.DmxValue
|
|||
import de.moritzruth.theaterdsl.value.Angle
|
||||
import de.moritzruth.theaterdsl.value.Percentage
|
||||
import de.moritzruth.theaterdsl.value.degrees
|
||||
import de.moritzruth.theaterdsl.value.percent
|
||||
import kotlinx.collections.immutable.persistentSetOf
|
||||
import kotlin.math.roundToInt
|
||||
import kotlin.time.Duration.Companion.minutes
|
||||
|
@ -38,14 +39,16 @@ class FuturelightDmh160(override val firstChannel: DmxAddress, private val isRig
|
|||
else DmxValue((strobeSpeed.value * 31 + 64).roundToInt().toUByte())
|
||||
)
|
||||
|
||||
val goboValue = gobo.getCurrentValue()
|
||||
|
||||
writer.writePercentage(brightness.getCurrentValue())
|
||||
writer.writeRaw(colorWheelMode.getCurrentValue().getDmxValue())
|
||||
writer.writeRaw(DmxValue(0u)) // gobo wheel = open
|
||||
writer.writeRaw(if (goboValue.isRotatable) goboValue.dmxValue else DmxValue(0u)) // rotatable gobo wheel
|
||||
writer.writeRaw(DmxValue(0u)) // gobo rotation = none
|
||||
writer.writeRaw(DmxValue(0u)) // second gobo = none
|
||||
writer.writeRaw(if (!goboValue.isRotatable) goboValue.dmxValue else DmxValue(0u)) // static gobo wheel = none
|
||||
writer.writeRaw(prismMode.getCurrentValue().dmxValue)
|
||||
writer.writeRaw(DmxValue((prismRotationSpeed.getCurrentValue().value * 123 + 4).roundToInt().toUByte()))
|
||||
writer.writeRaw(DmxValue(255u)) // focus = maximum distance
|
||||
writer.writePercentage(focus.getCurrentValue()) // focus
|
||||
writer.writeRaw(DmxValue(0u)) // iris = ?
|
||||
writer.writeRaw(DmxValue(0u)) // functions = noop
|
||||
}
|
||||
|
@ -75,6 +78,24 @@ class FuturelightDmh160(override val firstChannel: DmxAddress, private val isRig
|
|||
object Yellow : Simple(25)
|
||||
}
|
||||
|
||||
enum class Gobo(val dmxValue: DmxValue, val isRotatable: Boolean) {
|
||||
NONE(DmxValue(0u), true),
|
||||
BLUE_WHEEL(DmxValue(6u), true),
|
||||
RED_ASTERISK(DmxValue(12u), true),
|
||||
SPIRAL(DmxValue(18u), true),
|
||||
APERTURE(DmxValue(24u), true),
|
||||
LINES(DmxValue(30u), true),
|
||||
MEDUSA(DmxValue(36u), true),
|
||||
TRIANGLE(DmxValue(42u), true),
|
||||
FENCE(DmxValue(6u), false),
|
||||
FLOWER(DmxValue(12u), false),
|
||||
NEEDLE_WHEEL(DmxValue(18u), false),
|
||||
PIN_WHEEL(DmxValue(24u), false),
|
||||
COMB_WHEEL(DmxValue(30u), false),
|
||||
SHARDS(DmxValue(36u), false),
|
||||
DROPLETS(DmxValue(42u), false),
|
||||
}
|
||||
|
||||
enum class PrismMode(val dmxValue: DmxValue) {
|
||||
OPEN(DmxValue(0u)),
|
||||
FACETS_3(DmxValue(64u)),
|
||||
|
@ -87,8 +108,10 @@ class FuturelightDmh160(override val firstChannel: DmxAddress, private val isRig
|
|||
val brightness = PercentageDV()
|
||||
val colorWheelMode = ConcreteDV<ColorWheelMode>(ColorWheelMode.White)
|
||||
val strobeSpeed = PercentageDV()
|
||||
val gobo = ConcreteDV(Gobo.NONE)
|
||||
val prismMode = ConcreteDV(PrismMode.OPEN)
|
||||
val prismRotationSpeed = PercentageDV()
|
||||
val focus = PercentageDV(0.percent) // near to far
|
||||
|
||||
fun startRoomMovement(rotationsPerMinute: Double) {
|
||||
val period = (1.minutes / rotationsPerMinute) * 2
|
||||
|
|
|
@ -183,6 +183,8 @@ fun SceneBuilderContext.songDraculasZorn() {
|
|||
Tops.both {
|
||||
it.brightness.off(3.seconds)
|
||||
it.startRoomMovement(6.0)
|
||||
it.gobo.static(FuturelightDmh160.Gobo.LINES)
|
||||
it.prismMode.static(FuturelightDmh160.PrismMode.OPEN)
|
||||
}
|
||||
|
||||
Washs.both {
|
||||
|
@ -262,7 +264,11 @@ fun SceneBuilderContext.songDraculasZorn() {
|
|||
lightStep(StepCue.Text("Alle", "Dracula", "dritte Silbe")) {
|
||||
BlinderBars.all { it.brightness.pulseOnce(0.1.seconds, 2.seconds, end = 30.percent) }
|
||||
|
||||
Tops.both { it.pointAtStageMiddleSingleCenterMarking() }
|
||||
Tops.both {
|
||||
it.pointAtStageMiddleSingleCenterMarking()
|
||||
it.gobo.static(FuturelightDmh160.Gobo.NONE)
|
||||
it.prismMode.static(FuturelightDmh160.PrismMode.FROST)
|
||||
}
|
||||
}
|
||||
|
||||
lightStep(StepCue.Text("Alle", "Dracula", "erste Silbe")) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package de.moritzruth.dracula_musical.song
|
||||
|
||||
import de.moritzruth.dracula_musical.device.*
|
||||
import de.moritzruth.theaterdsl.device.reset
|
||||
import de.moritzruth.theaterdsl.show.SceneBuilderContext
|
||||
import de.moritzruth.theaterdsl.show.StepCue
|
||||
import de.moritzruth.theaterdsl.value.Color
|
||||
|
@ -41,12 +42,12 @@ fun SceneBuilderContext.songDuettDraculaMina() {
|
|||
it.colorWheelMode.static(CoemarProWash.ColorWheelMode.DarkBlue)
|
||||
}
|
||||
|
||||
Tops.left.colorWheelMode.static(FuturelightDmh160.ColorWheelMode.Rotate(10.percent, backwards = true))
|
||||
Tops.right.colorWheelMode.static(FuturelightDmh160.ColorWheelMode.Rotate(10.percent, backwards = true))
|
||||
Tops.both {
|
||||
it.startRoomMovement(2.5)
|
||||
it.prismMode.static(FuturelightDmh160.PrismMode.FACETS_8)
|
||||
it.prismRotationSpeed.static(5.percent)
|
||||
it.prismMode.static(FuturelightDmh160.PrismMode.FACETS_3)
|
||||
it.prismRotationSpeed.static(10.percent)
|
||||
it.colorWheelMode.static(FuturelightDmh160.ColorWheelMode.DarkPink)
|
||||
it.gobo.static(FuturelightDmh160.Gobo.SPIRAL)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,6 +88,7 @@ fun SceneBuilderContext.songDuettDraculaMina() {
|
|||
|
||||
lightStep(StepCue.MusicEnd) {
|
||||
Spots.right.brightness.off(3.seconds)
|
||||
Tops.both { it.reset() }
|
||||
|
||||
backlightBar.brightness.pulse(1.8.seconds, 0.15.seconds, 0.2.seconds, peak = 40.percent, startDelay = 0.seconds)
|
||||
Washs.both { it.brightness.pulse(1.8.seconds, 0.15.seconds, 0.3.seconds, startDelay = 0.4.seconds) }
|
||||
|
|
Loading…
Add table
Reference in a new issue