summaryrefslogtreecommitdiff
path: root/TODO
blob: cb13c192027ea16996ef2daa882a382126db2f24 (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
!!! interface der compilten note und korrespondierende funktion
    im synth stimmen nicht mehr überein! ÄNDERN!

!!! SEGFAULT beim laden einer nicht-existenten datei per in-synth-cli
    wenn man danach die noten spielen will. nicht reproduzierbar

TODO für den synth
   o square- und sawtooth mit einstellbarer pulsweite
      -> invers-saw (0,1) = saw(1,0)
      -> dreieck = saw(0.5,0.5)
   o invertierter pulse-sin
   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ü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.)



TODO fürs CLI
   x ...