!!! 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.)