add movinghead control for martin mac encore performance
This commit is contained in:
parent
60284de817
commit
80d473155e
4 changed files with 79 additions and 27 deletions
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://dafh3tlcmos4p"]
|
||||
[gd_scene load_steps=6 format=3 uid="uid://dafh3tlcmos4p"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/artnet.gd" id="1_hsiae"]
|
||||
[ext_resource type="Texture2D" uid="uid://buuvoh3jf0f52" path="res://sprites/cross.png" id="2_vgkya"]
|
||||
[ext_resource type="Script" path="res://scripts/dmx_movinghead.gd" id="3_he00n"]
|
||||
[ext_resource type="Texture2D" uid="uid://glyt8h1eag1u" path="res://sprites/pixel.png" id="3_qvw8c"]
|
||||
[ext_resource type="Script" path="res://scripts/dmx_color.gd" id="4_velje"]
|
||||
|
||||
|
@ -12,11 +13,14 @@ script = ExtResource("1_hsiae")
|
|||
ip_destination = "192.168.21.27"
|
||||
update_frequency = 40
|
||||
|
||||
[node name="Point" type="Sprite2D" parent="."]
|
||||
[node name="Point" type="Sprite2D" parent="." node_paths=PackedStringArray("artnet")]
|
||||
texture = ExtResource("2_vgkya")
|
||||
script = ExtResource("3_he00n")
|
||||
artnet = NodePath("../ArtNet")
|
||||
channel_offset = 100
|
||||
|
||||
[node name="ColorRect" type="Sprite2D" parent="." node_paths=PackedStringArray("artnet")]
|
||||
modulate = Color(0.247454, 0.529825, 0.607936, 1)
|
||||
modulate = Color(0.0711767, 0.291016, 0.177359, 1)
|
||||
position = Vector2(162.125, 549.375)
|
||||
scale = Vector2(283.75, 328.75)
|
||||
texture = ExtResource("3_qvw8c")
|
||||
|
|
|
@ -35,18 +35,23 @@ func setDMXChannel(ch,val,twobytes:bool=false):
|
|||
return 0
|
||||
|
||||
if (!twobytes):
|
||||
data[ch-1]=val
|
||||
if val>255:
|
||||
print("DMX Error: Value too high")
|
||||
return 0
|
||||
data[ch-1]=int(val)
|
||||
else:
|
||||
data[ch-1]=val/256
|
||||
data[ch-1+1]=val%256
|
||||
data[ch-1]=int(val/256)
|
||||
data[ch-1+1]=int(val%256)
|
||||
|
||||
return 1
|
||||
|
||||
func setDMXChannel_Array(chstart,arr:Array):
|
||||
var ch=chstart
|
||||
for a in arr:
|
||||
for val in arr:
|
||||
if val>255:
|
||||
print("DMX Error: Value too high")
|
||||
if (ch-1<=512):
|
||||
data[ch-1]=a
|
||||
data[ch-1]=int(val)
|
||||
ch+=1
|
||||
else:
|
||||
print("DMX Error: Channel out of bounds")
|
||||
|
|
|
@ -5,6 +5,8 @@ extends Node2D
|
|||
@export_range(0,255,1) var master = 255
|
||||
@export_range(0,1,0.01) var q = 1.0
|
||||
|
||||
@export_range(1,512,1) var channel_offset=1
|
||||
|
||||
var colormix=[
|
||||
[1.0,0,0], #red
|
||||
[0,1.0,0], #green
|
||||
|
@ -13,22 +15,28 @@ var colormix=[
|
|||
[1.0,0.8,0], #amber
|
||||
]
|
||||
var colorchannels=[3,4,5,6,7] #same order as colormix
|
||||
var values=[]
|
||||
|
||||
func _ready() -> void:
|
||||
values.resize(colorchannels.size())
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
var r=modulate.r
|
||||
var g=modulate.g
|
||||
var b=modulate.b
|
||||
var rgb=[modulate.r,modulate.g,modulate.b]
|
||||
|
||||
#TODO, color mix
|
||||
|
||||
artnet.setDMXChannel(1,master) #master dimmer
|
||||
artnet.setDMXChannel(2,0) #strobo
|
||||
artnet.setDMXChannel(8,0) #macros
|
||||
|
||||
artnet.setDMXChannel(3,modulate.r*255) #red
|
||||
artnet.setDMXChannel(4,modulate.g*255) #green
|
||||
artnet.setDMXChannel(5,modulate.b*255) #blue
|
||||
artnet.setDMXChannel(6,modulate.b*255) #white
|
||||
artnet.setDMXChannel(7,modulate.b*255) #amber
|
||||
values.fill(0.0)
|
||||
|
||||
|
||||
|
||||
artnet.setDMXChannel(channel_offset-1+1,master) #master dimmer
|
||||
artnet.setDMXChannel(channel_offset-1+2,0) #strobo
|
||||
artnet.setDMXChannel(channel_offset-1+8,0) #macros
|
||||
|
||||
artnet.setDMXChannel(channel_offset-1+3,modulate.r*255) #red
|
||||
artnet.setDMXChannel(channel_offset-1+4,modulate.g*255) #green
|
||||
artnet.setDMXChannel(channel_offset-1+5,modulate.b*255) #blue
|
||||
artnet.setDMXChannel(channel_offset-1+6,modulate.b*255) #white
|
||||
artnet.setDMXChannel(channel_offset-1+7,modulate.b*255) #amber
|
||||
|
||||
|
||||
|
|
|
@ -1,18 +1,53 @@
|
|||
extends Node2D
|
||||
|
||||
@export var artnet:Node
|
||||
|
||||
@export_range(1,512,1) var channel_offset=1
|
||||
@export_range(0,255,1) var master = 0
|
||||
@export_range(0,255,1) var red = 0
|
||||
@export_range(0,255,1) var green = 0
|
||||
@export_range(0,255,1) var blue = 0
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
@export_range(0,65535,1) var pan = 32768
|
||||
@export_range(0,65535,1) var tilt = 32768
|
||||
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
artnet.setDMXChannel(1,master) #master dimmer
|
||||
artnet.setDMXChannel(3,red) #red
|
||||
artnet.setDMXChannel(4,green) #green
|
||||
artnet.setDMXChannel(5,blue) #blue
|
||||
#https://www.martin.com/en/site_elements/martin-manuals-mac-encore-performance-bedienungsanleitung
|
||||
artnet.setDMXChannel(channel_offset-1+1,master,false)
|
||||
artnet.setDMXChannel(channel_offset-1+2,0,true) #master dimmer
|
||||
artnet.setDMXChannel(channel_offset-1+4,red,false)
|
||||
artnet.setDMXChannel(channel_offset-1+5,green,false)
|
||||
artnet.setDMXChannel(channel_offset-1+6,blue,false)
|
||||
artnet.setDMXChannel(channel_offset-1+7,0,false) #ctc
|
||||
artnet.setDMXChannel(channel_offset-1+8,0,false) #farbrad
|
||||
artnet.setDMXChannel(channel_offset-1+9,0,false) #gobo
|
||||
artnet.setDMXChannel(channel_offset-1+10,32768,true) #goborad index/ drehung
|
||||
artnet.setDMXChannel(channel_offset-1+12,0,false) #animationsrad, pos und funktion
|
||||
artnet.setDMXChannel(channel_offset-1+13,127,false) #animationsrad, index/ drehung
|
||||
artnet.setDMXChannel(channel_offset-1+14,0,false) #frost
|
||||
artnet.setDMXChannel(channel_offset-1+15,0,false) #iris
|
||||
artnet.setDMXChannel(channel_offset-1+16,32768,true) #zoom
|
||||
artnet.setDMXChannel(channel_offset-1+18,32768,true) #fokus
|
||||
artnet.setDMXChannel(channel_offset-1+20,0,false) #blendenschieber 1 Pos
|
||||
artnet.setDMXChannel(channel_offset-1+21,127,false) #blendenschieber 1 Winkel
|
||||
artnet.setDMXChannel(channel_offset-1+22,0,false) #blendenschieber 2 Pos
|
||||
artnet.setDMXChannel(channel_offset-1+23,127,false) #blendenschieber 2 Winkel
|
||||
artnet.setDMXChannel(channel_offset-1+24,0,false) #blendenschieber 3 Pos
|
||||
artnet.setDMXChannel(channel_offset-1+25,127,false) #blendenschieber 3 Winkel
|
||||
artnet.setDMXChannel(channel_offset-1+26,0,false) #blendenschieber 4 Pos
|
||||
artnet.setDMXChannel(channel_offset-1+27,127,false) #blendenschieber 4 Winkel
|
||||
artnet.setDMXChannel(channel_offset-1+28,127,false) #Index blendenschiebermodul
|
||||
artnet.setDMXChannel(channel_offset-1+29,pan,true) #Pan (default 32768)
|
||||
artnet.setDMXChannel(channel_offset-1+31,tilt,true) #Tilt (default 32768)
|
||||
artnet.setDMXChannel(channel_offset-1+33,0,false) #Gerätesteuerkanal
|
||||
artnet.setDMXChannel(channel_offset-1+34,0,false) #Fx1
|
||||
artnet.setDMXChannel(channel_offset-1+35,128,false) #Fx1 geschw
|
||||
artnet.setDMXChannel(channel_offset-1+36,0,false) #Fx2
|
||||
artnet.setDMXChannel(channel_offset-1+37,128,false) #Fx2 geschw
|
||||
artnet.setDMXChannel(channel_offset-1+38,0,false) #FX Sync
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue