-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTODO.txt
105 lines (66 loc) · 3.26 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
IDEA: it will be easy to have multiple animation classes
- you could have one for a more chill mode that's not music-reactive
IDEA: we can have preprogrammed coordinates for the moving heads
- Have them flash or change color to the beat, change target position to the beat
- Sometimes can mirror the yaw rotation, but keep the pitch the same
IDEA: mode with only red, orange and white
TODO: bpm estimation, may be a useful quantity
IDEA: we could make a DSL for this and actually specify a little state machine
https://wickstrom.tech/programming/2021/05/03/specifying-state-machines-with-temporal-logic.html
- Maybe something like LTL
- Or something with states and conditions/annotations on edges
- could we build a state machine with different update functions?
TODO: can we make a mini web interface with buttons/links?
https://docs.python.org/3/library/http.server.html
https://flaviocopes.com/python-http-server/
-----------------------------------------------------------------------------
TODO: mode to have the moving heads just very slowly move around?
- can rotate in all directions?
=> lower priority
TODO: trigger strobing when intensity above normal
- keep for 8 or 16 beats?
- can set strobe on or off once every N beats
IDEA: have a few LFOS to vary brightness
TODO: left and right motion animations
TODO: flash of white light (left shoulder?)
-----------------------------------------------------------------------------
[DONE] TODO: implement UDP BeatServer
echo "Hello UDP" | nc -u 192.168.1.211 7777
nc -ul -p 192.168.1.211 7777
[DONE] TODO: strobe mode
[DONE] TODO: move random color code into dmx.py or utils.py
[DONE] TODO: test RGB36 fixtures
[DONE] TODO: implement RGB36 fixture
[DONE] TODO: try again connecting to raspberry pi with vscode
- local editing is more tedious
-----------------------------------------------------------------------------
[DONE] TODO: need to have a 4-beat pattern we repeat 4x for the fixtures
- can write a method to generate this pattern
[DONE] TODO: try to get the LED strip working
[DONE] TODO: try flashing with just fixtures, moving heads, or both
[DONE] TODO: try animating all devices at once
[DONE] TODO: warn when adding a device if partial/incomplete overlap in channel numbers
[DONE] TODO: implement fix.rgbw field, use numpy array
- can then dispense with dimming for now?
[DONE] TODO: random_rgb and random_rgbw
- return numpy arrays
[DONE] TODO: make dmx set support iterables
hasattr(name, '__len__'):
[DONE] TODO: give fixtures names
[DONE] TODO: loudness estimation
norm = np.linalg.norm(indata)*10
- we also need to keep some kind of max, or simply a slower running average
- loudness_fast_avg, loudness_slow_avg
- use numpy.std(v)
[DONE] TODO: create a shortcut method for setting dmx val
dmx[self.chan_no + 0] = map_float_to(self.pan, 0, 255)
- dmx.set_float(start_chan, chan_no, val, min=0, max=255)
[DONE] TODO: create a class for the Docooler RGBW moving head
[DONE] TODO: convert colors to FP values in [0, 1]
[DONE] TODO: function to map [0, 1] value into range, map_to()
- have fixtures use FP values for everything
[DONE] TODO: max DMX update rate is 40Hz
- add in comment, aim for 35Hz
- measure time between updates, should be 25ms
[DONE] TODO: DMXUniverse.start_dmx_thread()
[DONE] TODO: DMXUniverse.add_fixture()