[wip] Revamps in progress

This commit is contained in:
alban 2020-11-11 22:14:38 +01:00
parent d37efeb0fa
commit 499bde0d84
35 changed files with 113 additions and 5571 deletions

View File

@ -10,7 +10,7 @@ v0.1.0
A basic exporter A basic exporter
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -10,7 +10,7 @@ v0.1.0
A basic exporter A basic exporter
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -10,7 +10,7 @@ v0.1.0
A basic exporter A basic exporter
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -10,7 +10,7 @@ v0.1.0
Attempts to create a valid 3D-glasses structure Attempts to create a valid 3D-glasses structure
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -10,7 +10,7 @@ v0.1.0
A simple effect : cycle colors A simple effect : cycle colors
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -10,7 +10,7 @@ v0.1.0
A simple effect : mirror a quadrant of the input A simple effect : mirror a quadrant of the input
LICENCE : CC Licensed under GNU GPLv3
by Sam Neurohack by Sam Neurohack

View File

@ -13,7 +13,7 @@ A complex effect that depends on redis keys for audio analysis
see https://git.interhacker.space/teamlase/redilysis for more informations see https://git.interhacker.space/teamlase/redilysis for more informations
about the redilysis project about the redilysis project
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -13,7 +13,7 @@ A complex effect that depends on redis keys for audio analysis
see https://git.interhacker.space/teamlase/redilysis for more informations see https://git.interhacker.space/teamlase/redilysis for more informations
about the redilysis project about the redilysis project
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

17
generators/README.md Normal file
View File

@ -0,0 +1,17 @@
# Generators
## Turtle
```
# turtle-example.py
from turtle import *
pencolor((255,0,0))
for i in range(4):
forward(100)
right(90)
done()
#EOF
```

View File

@ -8,46 +8,40 @@
Send only black points Send only black points
v0.1.0 v0.1.0
Use it to test your filters and outputs Use it to stop showing anything i.e. visual silence
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa
''' '''
from __future__ import print_function
import time
import argparse
import sys import sys
name="generator::dummy" from os import path, getcwd
abspath, filename = path.split(path.realpath(__file__ ))
sys.path.insert(0, path.join(abspath,"../lib"))
def debug(*args, **kwargs): from clitools import Clitools
if( verbose == False ):
return
print(*args, file=sys.stderr, **kwargs)
import argparse
argsparser = argparse.ArgumentParser(description="dummy generator") argsparser = argparse.ArgumentParser(description="dummy generator")
argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int) argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int)
argsparser.add_argument("-v","--verbose",action="store_true",help="Verbose output") argsparser.add_argument("-v","--verbose",action="store_true",help="Verbose output")
args = argsparser.parse_args() args = argsparser.parse_args()
fps = args.fps fps = args.fps
verbose = args.verbose verbose = args.verbose
optimal_looptime = 1 / fps looptime = 1 / fps
debug(name+" optimal looptime "+str(optimal_looptime)) shape = [[400,400,0],[400,400,4],[400,400,0]]
name = "generator::dummy"
cli = Clitools({
shape = [[400,400,0],[400,400,64],[400,400,0]] "verbose" : verbose,
"looptime" : looptime,
"name" : name
})
while True: while True:
start = time.time() cli.startFrame()
print(shape, flush=True); print(shape, flush=True);
looptime = time.time() - start cli.endFrame()
if( looptime < optimal_looptime ):
time.sleep( optimal_looptime - looptime)
debug(name+" micro sleep:"+str( optimal_looptime - looptime))

Binary file not shown.

View File

@ -1,54 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
height="53"
width="299.96875"
version="1.1"
id="svg2"
inkscape:version="0.48.0 r9654"
sodipodi:docname="brmlab1.svg"
inkscape:export-filename="/home/prusnak/work/scm/laserdisplay/svglaser/templates/template3.svg.png"
inkscape:export-xdpi="200"
inkscape:export-ydpi="200"><defs
id="defs2988" /><metadata
id="metadata78"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1024"
inkscape:window-height="689"
id="namedview76"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="-2.5851173"
inkscape:cy="-55.600814"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:snap-bbox="true"
inkscape:snap-global="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<path
id="path20"
style="fill:none;stroke:#000000;stroke-opacity:1"
d="m 137.17375,22.4425 c 0,-1.815 5.24,-4.345 13.73375,-4.345 3.94875,0 7.73,0.59 10.37875,1.62 2.085,0.81125 3.32875,1.83 3.32875,2.725 0,9.0725 0.0188,30.05375 0.0188,30.05375 l 5.87245,-0.004 c 0,-10e-4 -0.0175,-20.97875 -0.0175,-30.05 0,-2.035 -0.9175,-5.805 -7.0725,-8.2 -3.35125,-1.3025 -7.7925,-2.01875 -12.50875,-2.01875 -4.71625,0 -9.15875,0.71625 -12.50875,2.01875 -1.7975,0.7 -3.16375,1.50625 -4.175,2.3625 -1.01,-0.8475 -2.3675,-1.66875 -4.15,-2.3625 -3.34875,-1.3025 -7.79125,-2.01875 -12.50875,-2.01875 -4.715,0 -9.15625,0.71625 -12.50625,2.01875 -6.15625,2.395 -7.075,6.165 -7.075,8.2 0,9.8775 -0.0163,30.04875 -0.0163,30.04875 l 5.87375,0.005 c 0,0 0.0175,-20.17375 0.0175,-30.05375 0,-1.815 5.215,-4.345 13.70625,-4.345 3.94875,0 7.73125,0.59 10.38,1.62 2.08375,0.81125 3.32875,1.83 3.32875,2.725 0,9.0725 0.0175,30.0575 0.0175,30.0575 l 5.87375,-0.005 c 0,0 0.009,-20.98125 0.009,-30.0525 M 93.61125,18.3922 c -1.0075,-1.47125 -2.7675,-2.98 -5.79125,-4.15625 -3.35,-1.3025 -7.79375,-2.02 -12.50875,-2.02 -4.715,0 -9.15875,0.7175 -12.5075,2.02 C 56.64875,16.63 55.73,20.4 55.73,22.435 c 0,9.87875 -0.0175,30.04875 -0.0175,30.04875 l 5.87375,0.005 c 0,0 0.0175,-20.17375 0.0175,-30.05375 0,-1.81375 5.21375,-4.345 13.7075,-4.345 3.9475,0 7.73,0.59 10.37875,1.62125 1.58875,0.6175 2.6875,1.355 3.1225,2.0675 l 4.79875,-3.38625 z m 86.2125,34.1 5.874,0 0,-52.0075 -5.874,0 0,52.0075 z m 24.45,-33.325 c -0.89625,0 -1.91375,1.24375 -2.725,3.32875 -1.03,2.64875 -1.62125,6.43125 -1.62125,10.37875 0,8.4925 2.53125,13.7075 4.34625,13.7075 7.19625,0 24.94,0.0225 31.975,0.0313 l 0,-27.44625 -31.975,0 z m 37.84875,33.32875 -2.94,-0.004 c 0,0 -25.83625,-0.035 -34.90875,-0.035 -2.035,0 -5.80625,-0.91875 -8.2,-7.07375 -1.3025,-3.35125 -2.02,-7.7925 -2.02,-12.50875 0,-4.715 0.7175,-9.1575 2.02,-12.5075 2.39375,-6.155 6.165,-7.075 8.2,-7.075 l 34.9125,0 2.91979,0.006 0.0165,39.198 z m 49.85125,-9.24125 c -0.80875,2.085 -1.82875,3.32875 -2.7225,3.32875 -7.1975,0 -24.94125,0.0225 -31.97625,0.0313 l 0,-27.4475 31.97625,0.001 c 1.81375,0 4.345,5.215 4.345,13.7075 0,3.94625 -0.5925,7.73 -1.6225,10.37875 M 297.45,20.3687 c -2.39375,-6.155 -6.165,-7.075 -8.19875,-7.075 l -31.97625,-0.002 0,-12.80625 -5.87375,0 0,52.0125 2.94125,-0.004 c 0,0 25.83625,-0.0362 34.90875,-0.0362 2.03375,0 5.805,-0.9175 8.19875,-7.0725 1.30375,-3.35125 2.02,-7.7925 2.02,-12.50875 0,-4.715 -0.71625,-9.1575 -2.02,-12.5075 M 41.07375,43.255 c -0.80875,2.085 -1.82875,3.32875 -2.725,3.32875 -7.195,0 -24.94,0.0225 -31.97375,0.0313 l 0,-27.4475 31.97375,0.001 c 1.815,0 4.34625,5.215 4.34625,13.7075 0,3.94625 -0.5925,7.73 -1.62125,10.37875 m 5.475,-22.88625 c -2.39375,-6.155 -6.16375,-7.075 -8.2,-7.075 l -31.97375,-0.002 0,-12.80625 -5.875,0 0,52.0125 2.9425,-0.004 c 0,0 25.835,-0.0362 34.90625,-0.0362 2.03625,0 5.80625,-0.9175 8.2,-7.0725 1.30375,-3.35125 2.02,-7.7925 2.02,-12.50875 0,-4.715 -0.71625,-9.1575 -2.02,-12.5075"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -1,53 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xml:space="preserve"
height="78.96875"
width="78.96875"
version="1.1"
id="svg2"
inkscape:version="0.48.0 r9654"
sodipodi:docname="brmlab2.svg"
inkscape:export-filename="/home/prusnak/work/scm/laserdisplay/svglaser/templates/template4.svg.png"
inkscape:export-xdpi="200"
inkscape:export-ydpi="200"><defs
id="defs2994" /><metadata
id="metadata78"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1024"
inkscape:window-height="689"
id="namedview76"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="25.043829"
inkscape:cy="5.6960585"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:snap-bbox="true"
inkscape:snap-global="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<path
id="path3237"
style="fill:none;stroke:#000000;stroke-width:1"
d="m 20.26276,45.39193 c -1.816875,0 -3.293437,-1.4775 -3.293437,-3.29344 0,-1.81593 1.476562,-3.29437 3.293437,-3.29437 1.816875,0 3.294375,1.47844 3.294375,3.29437 0,1.81594 -1.4775,3.29344 -3.294375,3.29344 M 39.480011,0.50605 C 17.985519,0.50605 0.5,17.99425 0.5,39.48874 c 0,10.41205 4.0546519,20.20071 11.416975,27.56304 7.363668,7.36232 17.15099,11.41697 27.563036,11.41697 21.494491,0 38.982697,-17.48686 38.982697,-38.98001 C 78.461408,17.99291 60.974502,0.50605 39.480011,0.50605 m -0.09362,68.75171 c -5.945327,0 -11.681286,-1.74473 -16.588197,-5.04528 l -0.998709,-0.67022 0.765276,-0.92531 c 1.473999,-1.78685 1.350062,-4.36785 -0.289986,-6.0079 -0.844692,-0.84469 -1.96854,-1.31035 -3.163381,-1.31035 -1.037214,0 -2.046752,0.36218 -2.843313,1.01916 l -0.926513,0.76407 -0.670218,-0.9963 C 6.757481,44.32012 8.3000651,28.49238 18.341303,18.45235 c 4.199391,-4.2018 9.490142,-7.02345 15.299501,-8.16174 l 1.179198,-0.22982 0.115514,1.19484 c 0.220197,2.30425 2.13459,4.04176 4.452076,4.04176 2.317487,0 4.23188,-1.73751 4.45328,-4.04176 l 0.115513,-1.19484 1.177996,0.22982 c 5.806952,1.13829 11.098906,3.95994 15.299501,8.15933 10.040034,10.04124 11.583822,25.87018 3.668751,37.63569 l -0.670218,0.9963 -0.92531,-0.76527 c -0.798967,-0.65698 -1.807302,-1.01796 -2.845719,-1.01796 -1.194841,0 -2.317486,0.46446 -3.163381,1.30915 -1.638845,1.64005 -1.762781,4.22225 -0.289986,6.0091 l 0.764072,0.92531 -0.996302,0.67022 c -4.90691,3.30055 -10.644073,5.04528 -16.5894,5.04528 m -7.130784,-26.72605 14.281498,0 0,-6.00112 -14.281498,0 0,6.00112 z M 24.122448,30.11568 c -1.816875,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.4775,-3.29437 3.294375,-3.29437 1.815937,0 3.293437,1.47844 3.293437,3.29437 0,1.81594 -1.4775,3.29344 -3.293437,3.29344 m 34.387656,15.27625 c -1.815937,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.478438,-3.29437 3.294375,-3.29437 1.816875,0 3.294375,1.47844 3.294375,3.29437 0,1.81594 -1.4775,3.29344 -3.294375,3.29344 m -26.905937,15.1875 c -1.815938,0 -3.292501,-1.4775 -3.292501,-3.29344 0,-1.81593 1.476563,-3.29437 3.292501,-3.29437 1.816875,0 3.294374,1.47844 3.294374,3.29437 0,1.81594 -1.477499,3.29344 -3.294374,3.29344 M 54.647291,30.11568 c -1.816874,0 -3.294374,-1.4775 -3.294374,-3.29344 0,-1.81593 1.4775,-3.29437 3.294374,-3.29437 1.815938,0 3.292501,1.47844 3.292501,3.29437 0,1.81594 -1.476563,3.29344 -3.292501,3.29344 m -7.474843,30.46375 c -1.816875,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.4775,-3.29437 3.294375,-3.29437 1.815937,0 3.293437,1.47844 3.293437,3.29437 0,1.81594 -1.4775,3.29344 -3.293437,3.29344 m -7.775,-30.46375 c -1.816875,0 -3.294375,-1.4775 -3.294375,-3.29344 0,-1.81593 1.4775,-3.29437 3.294375,-3.29437 1.815937,0 3.293437,1.47844 3.293437,3.29437 0,1.81594 -1.4775,3.29344 -3.293437,3.29344"
inkscape:connector-curvature="0" /></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -10,23 +10,22 @@ v0.1.0
Use it to test your filters and outputs Use it to test your filters and outputs
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa
''' '''
from __future__ import print_function
import time
import argparse
import sys import sys
from os import path, getcwd
abspath, filename = path.split(path.realpath(__file__ ))
sys.path.insert(0, path.join(abspath,"../lib"))
from clitools import Clitools
name="generator::dummy" name="generator::dummy"
def debug(*args, **kwargs): import argparse
if( verbose == False ):
return
print(*args, file=sys.stderr, **kwargs)
argsparser = argparse.ArgumentParser(description="dummy generator") argsparser = argparse.ArgumentParser(description="dummy generator")
argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int) argsparser.add_argument("-f","--fps",help="Frame Per Second",default=30,type=int)
@ -37,7 +36,13 @@ args = argsparser.parse_args()
fps=args.fps fps=args.fps
verbose=args.verbose verbose=args.verbose
optimal_looptime = 1 / fps optimal_looptime = 1 / fps
debug(name+" optimal looptime "+str(optimal_looptime)) cli = Clitools({
"verbose" : verbose,
"looptime" : looptime,
"name" : name
})
color = 16777215 color = 16777215
square = [[100.0, 100.0, color], [100.0, 500.0, color], [500.0, 500.0, color], [500.0, 100.0, color], [100.0, 100.0, color]] square = [[100.0, 100.0, color], [100.0, 500.0, color], [500.0, 500.0, color], [500.0, 100.0, color], [100.0, 100.0, color]]
line =[] line =[]
@ -75,11 +80,6 @@ shape = mire
while True: while True:
start = time.time() cli.startFrame()
print(shape, flush=True); print(shape, flush=True);
looptime = time.time() - start cli.endFrame()
if( looptime < optimal_looptime ):
time.sleep( optimal_looptime - looptime)
debug(name+" micro sleep:"+str( optimal_looptime - looptime))

View File

@ -1,182 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# -*- mode: Python -*-
'''
example, based on custom
v0.1.0
A copy of square.py you can modify to code your plugin.
custom1 has necessary hooks in LJ.conf, webui and so on.
LICENCE : CC
by Sam Neurohack
'''
import sys
import os
ljpath = r'%s' % os.getcwd().replace('\\','/')
# import from shell
sys.path.append(ljpath +'/../../libs/')
#import from LJ
sys.path.append(ljpath +'/libs/')
print(ljpath+'/../libs/')
import lj23layers as lj
sys.path.append('../libs')
import math
import time
import argparse
print ("")
print ("Arguments parsing if needed...")
argsparser = argparse.ArgumentParser(description="Custom1 example for LJ")
argsparser.add_argument("-v","--verbose",help="Verbosity level (0 by default)",default=0,type=int)
args = argsparser.parse_args()
# Useful variables init.
white = lj.rgb2int(255,255,255)
red = lj.rgb2int(255,0,0)
blue = lj.rgb2int(0,0,255)
green = lj.rgb2int(0,255,0)
width = 800
height = 600
centerX = width / 2
centerY = height / 2
# 3D to 2D projection parameters
fov = 256
viewer_distance = 2.2
# Anaglyph computation parameters for right and left eyes.
# algorythm come from anaglyph geo maps
eye_spacing = 100
nadir = 0.5
observer_altitude = 30000
map_layerane_altitude = 0.0
# square coordinates : vertices that compose each of the square.
vertices = [
(- 1.0, 1.0,- 1.0),
( 1.0, 1.0,- 1.0),
( 1.0,- 1.0,- 1.0),
(- 1.0,- 1.0,- 1.0)
]
face = [0,1,2,3]
#
# LJ inits
#
layer = 0
# Define properties for each drawn "element" : name, intensity, active, xy, color, red, green, blue, layer , closed
Leftsquare = lj.FixedObject('Leftsquare', True, 255, [], red, 255, 0, 0, layer , True)
Rightsquare = lj.FixedObject('Rightsquare', True, 255, [], green, 0, 255, 0, layer , True)
# 'Destination' for given layer : name, number, active, layer , scene, laser
Dest0 = lj.DestObject('0', 0, True, 0 , 0, 0) # Dest0 will send layer 0 points to scene 0, laser 0
#
# Anaglyph computation : different X coordinate for each eye
#
def LeftShift(elevation):
diff = elevation - map_layerane_altitude
return nadir * eye_spacing * diff / (observer_altitude - elevation)
def RightShift(elevation):
diff = map_layerane_altitude - elevation
return (1 - nadir) * eye_spacing * diff / (observer_altitude - elevation)
def Proj(x,y,z,angleX,angleY,angleZ):
rad = angleX * math.pi / 180
cosa = math.cos(rad)
sina = math.sin(rad)
y2 = y
y = y2 * cosa - z * sina
z = y2 * sina + z * cosa
rad = angleY * math.pi / 180
cosa = math.cos(rad)
sina = math.sin(rad)
z2 = z
z = z2 * cosa - x * sina
x = z2 * sina + x * cosa
rad = angleZ * math.pi / 180
cosa = math.cos(rad)
sina = math.sin(rad)
x2 = x
x = x2 * cosa - y * sina
y = x2 * sina + y * cosa
""" Transforms this 3D point to 2D using a perspective projection. """
factor = fov / (viewer_distance + z)
x = x * factor + centerX
y = - y * factor + centerY
return (x,y)
#
# Main
#
def Run():
Left = []
Right = []
counter =0
try:
while True:
Left = []
Right = []
x = vertices[0][0]
y = vertices[0][1]
z = vertices[0][2]
# lj tracers will "move" the laser to this first point in black, then move to the next with second point color.
# for more accuracy in dac emulator, repeat this first point.
# generate all points in square.
for point in face:
x = vertices[point][0]
y = vertices[point][1]
z = vertices[point][2]
left.append(proj(x+leftshift(z*25),y,z,0,counter,0))
right.append(proj(x+rightshift(z*25),y,z,0,counter,0))
lj.polylineonecolor(left, c = leftsquare.color , layer = leftsquare.layer, closed = leftsquare.closed)
lj.polylineonecolor(right, c = rightsquare.color , layer = rightsquare.layer, closed = rightsquare.closed)
lj.drawdests()
time.sleep(0.1)
counter += 1
if counter > 360:
counter = 0
except KeyboardInterrupt:
pass
# Gently stop on CTRL C
finally:
lj.ClosePlugin()
Run()

View File

@ -14,7 +14,7 @@ Support the gml spec="1.0 (minimum)"
and header/client/name and header/client/name
and maybe one day drawing/brush/color and maybe one day drawing/brush/color
LICENCE : CC Licensed under GNU GPLv3
by cocoa and Sam Neurohack by cocoa and Sam Neurohack
Heavy use of : https://github.com/kgn/pygml Heavy use of : https://github.com/kgn/pygml

View File

@ -12,7 +12,7 @@ output CLI in CLI points format : [x,y,color]
v0.1.0 v0.1.0
LICENCE : CC Licensed under GNU GPLv3
by Cocoa, Sam Neurohack by Cocoa, Sam Neurohack

View File

@ -11,7 +11,7 @@ v0.1.0
Use it to create feedback loops by writing to the same frame Use it to create feedback loops by writing to the same frame
or to copy the frame from someone else or to copy the frame from someone else
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -8,7 +8,7 @@ fromild
v0.1.0 v0.1.0
Read/display once an .ild animation file and quit ?? Read/display once an .ild animation file and quit ??
LICENCE : CC Licensed under GNU GPLv3
by cocoa and Sam Neurohack by cocoa and Sam Neurohack

View File

@ -12,19 +12,24 @@ END POINT Format : (x,y,color)
v0.1.0 v0.1.0
LICENCE : CC Licensed under GNU GPLv3
by Cocoa, Sam Neurohack by Cocoa, Sam Neurohack
''' '''
from OSC3 import OSCServer, OSCClient, OSCMessage
import sys import sys
from os import path, getcwd
abspath, filename = path.split(path.realpath(__file__ ))
sys.path.insert(0, path.join(abspath,"../lib"))
from clitools import Clitools
from OSC3 import OSCServer, OSCClient, OSCMessage
from time import sleep from time import sleep
import argparse
import ast import ast
import redis import redis
import argparse
argsparser = argparse.ArgumentParser(description="osc2redis generator") argsparser = argparse.ArgumentParser(description="osc2redis generator")
argsparser.add_argument("-i","--ip",help="IP to bind to (0.0.0.0 by default)",default="0.0.0.0",type=str) argsparser.add_argument("-i","--ip",help="IP to bind to (0.0.0.0 by default)",default="0.0.0.0",type=str)
argsparser.add_argument("-p","--port",help="OSC port to bind to (9002 by default)",default=9002,type=str) argsparser.add_argument("-p","--port",help="OSC port to bind to (9002 by default)",default=9002,type=str)

View File

@ -13,7 +13,7 @@ Add a line on every frame and scroll
see https://git.interhacker.space/teamlaser/redilysis for more informations see https://git.interhacker.space/teamlaser/redilysis for more informations
about the redilysis project about the redilysis project
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -8,7 +8,7 @@
v0.1.0 v0.1.0
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -8,7 +8,7 @@
v0.1.0 v0.1.0
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -18,7 +18,7 @@ Font list :
'markers', 'mathlow', 'mathupp', 'meteorology', 'music', 'rowmand', 'rowmans', 'rowmant', 'markers', 'mathlow', 'mathupp', 'meteorology', 'music', 'rowmand', 'rowmans', 'rowmant',
'scriptc', 'scripts', 'symbolic', 'timesg', 'timesi', 'timesib', 'timesr', 'timesrb' 'scriptc', 'scripts', 'symbolic', 'timesg', 'timesi', 'timesib', 'timesr', 'timesrb'
LICENCE : CC Licensed under GNU GPLv3
by cocoa and Sam Neurohack by cocoa and Sam Neurohack

View File

@ -9,7 +9,7 @@ v0.1.0
Get all points fom redis /trckr/frame/WSclientID points Get all points fom redis /trckr/frame/WSclientID points
LICENCE : CC Licensed under GNU GPLv3
by cocoa and Sam Neurohack by cocoa and Sam Neurohack

View File

@ -10,7 +10,7 @@ v0.1.0
Use it to test your filters and outputs Use it to test your filters and outputs
LICENCE : CC Licensed under GNU GPLv3
by cocoa by cocoa

View File

@ -6,7 +6,7 @@ Turtle library laser emulation
v0.1b v0.1b
by Sam Neurohack by Sam Neurohack
from /team/laser from proton photon
""" """

View File

@ -1,19 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# -*- mode: Python -*-
'''
Example using experimental Laserized Turtle graphics library
'''
from turtle import *
pencolor((255,0,0))
for i in range(4):
forward(100)
right(90)
done()

32
lib/clitools.py Normal file
View File

@ -0,0 +1,32 @@
from __future__ import print_function
import sys
import time
class Clitools:
def __init__(self,*initial_data, **kwargs):
for dictionary in initial_data:
for key in dictionary:
setattr(self, key, dictionary[key])
for key in kwargs:
setattr(self, key, kwargs[key])
if not hasattr(self, 'name'):
self.name = "undefined"
def debug(self, *args, **kwargs):
if( self.verbose == False ):
return
print(*args, file=sys.stderr, **kwargs)
def startFrame(self):
self.timer = time.time()
def endFrame(self):
if not self.looptime :
self.debug( "No looptime provided at init.")
return
elapsed = time.time() - self.timer
if( elapsed < self.looptime ):
delta = self.looptime - elapsed
time.sleep( delta )
self.debug(self.name + " micro sleep:" + str( delta ))

View File

@ -9,7 +9,7 @@ import tty,termios
import re import re
import json import json
from pathlib import Path from pathlib import Path
import runner_lib as runner from lib import runner

View File

@ -3,7 +3,7 @@
import argparse import argparse
import re import re
import redis import redis
import runner_lib as runner from lib import runner
import time import time
novationRows = [ novationRows = [