Compare commits

...

3 commits

Author SHA1 Message Date
j
f96c7224a7 letter offset 2023-12-19 13:26:25 +00:00
j
4c8dd82525 turn off after trigger 2023-12-19 13:25:56 +00:00
j
1342571e91 fix pi 2023-12-19 13:25:02 +00:00
3 changed files with 16 additions and 12 deletions

View file

@ -12,6 +12,8 @@ font = 'Menlo'
font_size = 28
# 30 for chinese
letter_offset = False
conf = os.path.expanduser('~/.config/cdosea.json')
if os.path.exists(conf):
with open(conf) as fd:

View file

@ -1,7 +1,8 @@
#!/usr/bin/python3
import os
import string
import subprocess
import sys
import os
import time
import ox
@ -95,33 +96,35 @@ def fade_to(target, duration):
CURRENT_STATE = sender[1].dmx_data[:16]
time.sleep(step)
steps -= 1
CURRENT_STATE = sender[1].dmx_data = [0] * 16
time.sleep(1)
sender.stop()
def switch(state):
lights, duration = LIGHTS[state]
if config.lanbox:
import lanbox
lb = lanbox.Lanbox()
#lb.getChannels(lights)
#lb.fadeTo(lights, fade)
lb.layerGo(state)
else:
lights, duration = LIGHTS[state]
brightness = lights['7']
fade_to(brightness, duration)
if __name__ == '__main__':
path = sys.argv[1]
no_sleep = len(sys.argv) > 2
no_sleep = len(sys.argv) > 2 and sys.argv[2] == "no-sleep"
n = int(os.path.getctime(path) - 1495280000)
n = int(os.path.getctime(path) - 1495280000) % 1000
info = ox.avinfo(path)
duration = info.get('duration', 0)
seq = random(n * 1000)
seq = random(n * 100)
pos = 0
lights = []
letter_offset = 0
if config.letter_offset:
letter_offset = 11 + string.ascii_lowercase.index(letter) * 10
while pos < duration - 15:
sleep = seq() + 15
light = seq()
@ -129,5 +132,6 @@ if __name__ == '__main__':
break
if not no_sleep:
time.sleep(sleep)
switch(light)
print("letter", letter, "offset", letter_offset, "light", light, "cue", letter_offset + light)
switch(light + letter_offset)
pos += sleep

View file

@ -1,12 +1,10 @@
from mpmath import mp
mp.dps = 10000
PI = str(mp.pi).replace('.', '')
class random(object):
PI = str(mp.pi).replace('.', '')
def __init__(self, offset=0):
self.position = offset
mp.dps = 10000 + offset
self.PI = str(mp.pi).replace('.', '')
self.numbers = list(map(int, self.PI[offset:]))
def __call__(self):