-
Notifications
You must be signed in to change notification settings - Fork 0
/
notes.txt
95 lines (69 loc) · 3.7 KB
/
notes.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
TODO
const portamento = todoText.match(/p(\d{1,2})?(\.\d{1,2})?/i)
doesn't match anything but 'p'!
%100 turns into %10...
rename p to g for glide?
if n > a + r
decrease those gains
https://groups.google.com/forum/#!topic/tonejs/JTVA9Oj89G4
edit tood on enter (it's format-locked, newlines don't do anything)
TODO REFACTORING
THIS WOULD PROBABLY ALL BE A LOT BETTER WITH BETTER NAMES
NAMES I DON'T LIKE:
onTodoChanged seems like it should be something like "triggerTodoRender"
because this is an active model - it's "calling for" the render.
yes, it is also responding to the changing of the todoList,
but something about it is confusing
it could be because I model the same circuitry with "onAudioChanged",
which is... different
anyway - there definitely should be something in common about the naming
between M,V,C which tells you which is referring to which
but also maybe it should point more clearly "in the direction" of the data flow, or something?
refactor non-dynamic View.js into some index.html?
textarea / contenteditable for input? ( so enter can be used for \n...)
https://stackoverflow.com/questions/49816707/firefox-invalid-regex-group
https://stackoverflow.com/questions/47319794/make-flex-children-inline-block?rq=1
https://stackoverflow.com/questions/19038070/html-newline-char-in-div-content-editable
css
minimal html/css with form & li buttons
change button color when playing
huh?
mention tab vs. enter
mention attack < duration
"Difficulties"
* "updatePlayModeChanged" in View - rendered separately from tod list
*** "basic" features ***********************************************************************
( ... note names ...)
const p = todoText.match(/\((.*?)\)/i)[0] //https://stackoverflow.com/questions/2403122/regular-expression-to-extract-text-between-square-brackets
csv?, excluding #/b duplicates?, 1st char cap, in paren
% => event percent 01 00
t => tempo bpm
d => duration 2n 4n 8n 16n 23n or in seconds(s)
sequential/random play
[adsr]
{} > synthtype, (fm/am/fat) sin tri squ saw, all the various mods
poly/mono
portamento
effects of various sorts
huh? - help modal
*** Intermediate ******************************************************************************
draggable todos
variable durations, tempos, etc.
"special names" => of presets
*** Advanced *************************************************************************************
phrasing packages - some sort of class/object system to categorize different types of musical events
plan for it to be able to test seconds or measures
undo/redo... gotta be functional, I think...
LETS WAIT to do save/load stuff until features have been basically decided
import / export preset "names"
looks for localstorage item with that info on loadup?
import / export compositions
*** MISC ***************************************************************************
how/could this work without the connector?
// this will just use 'constructor' values
// note how parseHiRange and buildTodoText both accept params that they could also get from constructor
// ...what's it called when you have to decide about that?
// meta: Audio as part of the UI, but in this case, the user is "time"
// so "time" triggers the connector
audio "reads" model directly (but never changes it).
is there some reason why this might be a bad idea to read it?