-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTODO
More file actions
127 lines (83 loc) · 2.98 KB
/
TODO
File metadata and controls
127 lines (83 loc) · 2.98 KB
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
TODO
== 107 ==
[] bug with saving state to flash when user changes just sync mode
[x] disable extended BPM option (force it on all the time)
[x] speed up display
[x] disable MIDI sync out for now
== 108 ==
[] MIDI clock out
[] send clock messages
[] start? stop? spp? continue?
[] don't generate clock when USB is disconnected
- esp. don't send them all when reconnected later!
[] Revamp clock and position and perplex
[] perplex if off for over a beat?
[] reset position after perplex?
[] tune phase correction - perhaps a bit slower?
- shouldn't be faster than the averaging, should it?
[] let M be one of { M, 1/4, 1/8, 1/16, 1/32 }
[] settings member
[] ui field
[] icons
[] let B be one of { B, 1/4, 1/8, 1/16, 1/32 }
[ ] remove extended BPM option
--------------
[] UI for start / continue / stop ?
- perhaps just start if stopped?
[] support MIDI sync w/o transport
- essentially means ignore transport
- and setSync needs to setState(clockPaused) not clockStopped
[] support DIN24 and DIN48 sync outputs
[] force 50% duty cycle
[] icons
[] support 2nd tuplet option for B
[] icon
[] UI for setting second Tuplet
--- Later
[] probably should persist state only if it is stable
[] ? ZeroRegs: compile in for production? or keep out?
[] how to stay sync'd to the one?
- one tap tempo input could reset to the 1!
[] check that various timer periods are in range
- and use critical.print() if not
[] need a UI for "apply right now!"
[] need a UI for "really, reset the whole dang thing!"
[] speed up centerNumber by using the fixed size of digits in the font
[] make enums be uint8_t based
- probably not really worth it
QUESTIONS
---------
[] if total reset length is kept under 4 x 4/4 (or even 8 x 8/1!)
then all cycle counts in q fit in 16 bits
[] should tuplet load be sync'd to measure or full sequence?
[] should sequence length, when reloaded, be reset to first measure?
[] if only a tuplet change, then if sync'd on measure, should sequence restart or no?
NOTES
-----
- can set flags in platform.local.txt, like so:
compiler.c.extra_flags="-DEK_BUILD"
compiler.cpp.extra_flags="-DEK_BUILD"
- to build release UF2 file:
- build in Arduino
- note directory of output items in verbose output
- cd there
- run
python ~/bin/uf2conv.py pb.ino.bin -c -o pulsar-buddy-v1xx.uf2
- uf2conf.py script comes from:
https://github.com/microsoft/uf2/blob/master/utils/uf2conv.py
- sending the bitmap to the display takes 14.1ms
- setting I2C to 1MHz brings it down to 7ms, but isn't clear that it is
within spec of the controller chip
SYNC
----
if computed rate is outside of BPM (divisor) range
- then BAD_SYNC condition
- show some form of broken / question icon
- ? show previous BPM?
- target is likely to have slewed up?
if missed N (2?) clocks,
- then PAUSED_SYNC condition
- show previous BPM, but with a paused icon on top
- on next clock...
- restart capture (resetcapture() won't work because same sync rate)
- ? reset counters to start of sequence?