!!! 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()! TODO für den synth o 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.)