blob: dffbaf42a31a058f0aa66cfb9f3e6eb38b82412f (
plain)
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
|
!!! interface der compilten note und korrespondierende funktion
im synth stimmen nicht mehr überein! ÄNDERN! [obsolet]
!!! SEGFAULT beim laden einer nicht-existenten datei per in-synth-cli
wenn man danach die noten spielen will. nicht reproduzierbar
!!! SEGFAULT wegen nicht synchronisierter kommunikation bei panic()!
!!! cleanup() verursacht SEGFAULT, jedenfalls wenn man es durch
callgrind laufen lässt
TODO für den synth
x notes kriegen verkettete liste für FM-affect: "kein einfluss"
steht dann garnicht in der liste (macht aus O(n²) ein O(n))
(macht notencompiler hoffentlich obsolet)
o evtl wieder AM implementieren: hätte hoffentlich dann keinen
negativen einfluss wenn unbenutzt
x kommunikation sauber synchronisieren: außerhalb von process()
wird nurnoch ne struct mit funktionspointer und argument-union
in einen ringbuffer geschrieben. der eigentliche call erfolgt
dann in process()
o saubere kommunikation bei ALLEN in-synth-CLI-sachen
o defines säubern, schöner anordnen
o frameskipping vlt immer einbauen?
o testen, ob #define FRAMESKIP bei frameskip=0 nen speednachteil
bringt
o wenn nein: FS immer aktiv
wenn ja: 2 process_callbacks, einen mit, einen ohne fs
o file-watcher ist unsauber: inotify_map_mutex und prog_load_mutex
werden eigentlich zu spät erstellt; bei EXTREM schnellen events
könnte ein noch nicht existenter mutex gelockt werden
o lock_and_load_program_no_watch_updates und auch die requests
passen nicht wirklich ins in-synth-cli. vlt woandershin schieben?
o im in-synth-cli: lfos- und snh-neusetzen ist falsch
es muss IMMER gelockt werden.
allerdings muss maybe_calc_lfos gelockt werden, die noten können
weiter bestehen
o max_pitchbend, max_port_time etc per controller setzen?
per RPN, NRPN
o nur auf bestimmte channels reagieren
o jedes programm eigene LFOs?
o andere wellenformen bei LFOs?
o parser: sehr redundante funktionen zusammenführen
o parser: direkt in result schreiben?
o parser: lässt sich sicher noch viel besser lösen, siehe auch oben
o attack und release ggf. auf niedrigen wert (<=0.01) initen, um
knackser zu vermeiden?
o konnte-nicht-verbinden-warnung weniger schlimm machen
(o)bei program change vielleicht nicht _ALLE_ controller resetten?
(o)fehlerklassen für fatale fehler (von string abgeleitet)
TODO fürs CLI
x ...
obsolet: TODO für den compiler
o freq-envelopes und pfactor dafür auch für compiled_notes implementieren!
o envelopes nur alle N frames updaten auch bei compiled notes implementieren!
o zu testen: funktionieren no-release-envs auch in compilierten noten?
o envelopes von oscs mit out=0 standardmäßig deaktivieren
o envelope, filter, ggf. auch alles aus program.o im hauptprogramm
lassen? d.h. via init funktionspointer übergeben oder virtuelle
interfaceklassen benutzen (für envelope/filter z.B.)
|