TODO für den synth o .so unloaden! x note-compiler: wenn vel_influence für foo, aber foo ist konstant null, bleibt foo trotzdem konstant. x note-compiler: vel_influence ist IMMER gegeben für output, außer wenn anders angegeben x note-compiler: *1 bzw /2 optimierungen klappen nicht? x note-compiler: pfactor nicht wegoptimieren, immer verwenden o beide parser: 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.) x wave auf int*[] mit wave[i]=new int[] umbauen x BUG: bei Note::set_param sollte statt dem eigentlichen param der orig gesetzt werden und dann neu berechnet werden! x BUG: bei release und reattack: BEIDE male die filter-envelope beachten! o KSL mit powf und floats statt mit double umschreiben o statt lfo-nummer direkten zugriff auf curr_lfo angeben? x oscval-nullen kann in get_sample() weggelassen werden o bei tremolo (und vibrato?): eventuell nicht prüfen, obs aktiviert ist, sondern zur not einfach *1 rechnen? x in get_sample(), beim aufaddieren zum out (und vmtl auch fm-)wert: erst nach dem addieren scalen, statt für jeden faktor einzeln o wenn sync global aus ist, kann auch osc.sync genullt werden o beim default_program vielleicht auch ein optimiertes objekt benutzen? x filter_envelope könnte mit anderem ctor geinitet werden (weniger schreibarbeit) x notes compilieren und als .so-datei laden o programme on-the-fly (um)laden x parser-klasse durch parse-funktion ersetzen x reattack a) garnicht, b) immer, c) nur wenn schon in releasephase --> legatopedal! o bei envelopes: releasephase abschalten (bei sustain bleiben) o soft-pedal o RAM aufräumen? o jedes programm eigene LFOs? o andere wellenformen bei LFOs? o mehr wellen für wave[] 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 chorus, reverb etc. o konnte-nicht-verbinden-warnung weniger schlimm machen o max_pitchbend per controller setzen? o nur auf bestimmte channels reagieren x diverse pedale (soft, sostenuto, halte, legato (?)) (o)lfo-maxima getrennt regeln. nää (o)bei filter-envelopes: ksr/ksl? nää. (o)resonanz-tremolo bei tiefpass? nää. TODO fürs CLI x envelope_update_frames per CLI setzen