From d9fd174884bf999fa53216b2cc307379fe9b1084 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Sat, 1 Jan 2011 16:39:35 +0100 Subject: Update and move todo-list --- TODO | 39 ++++++++++++++++++++++++++++++ TODO.done | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ note_compiler/IDEE | 1 + synth/TODO | 33 ------------------------- synth/TODO.done | 71 ------------------------------------------------------ 5 files changed, 111 insertions(+), 104 deletions(-) create mode 100644 TODO create mode 100644 TODO.done delete mode 100644 synth/TODO delete mode 100644 synth/TODO.done diff --git a/TODO b/TODO new file mode 100644 index 0000000..bff6e11 --- /dev/null +++ b/TODO @@ -0,0 +1,39 @@ +TODO für den synth + o notes compilieren und als .so-datei laden + o programme on-the-fly (um)laden + + o parser-klasse durch parse-funktion ersetzen + + o reattack a) garnicht, b) immer, c) nur wenn schon in releasephase + --> legatopedal! + + o bei envelopes: releasephase abschalten (bei sustain bleiben) + + 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 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 + + o 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 ... diff --git a/TODO.done b/TODO.done new file mode 100644 index 0000000..0cd6d16 --- /dev/null +++ b/TODO.done @@ -0,0 +1,71 @@ +TODO für den synth + x knistern bei aktivem frameskip + x tremolo und vibrato: phase nurnoch ++ + x rettack im monomode abschalten (sondern einfach nur freq ändern) + x bei freqänderung: aufpassen, ob nicht das programm auch geändert + wurde. wenn ja: delete && new + x note-limit + x stereo: pan/balance + x envelopes on-the-fly ändern + x programs laden + x beim note-limit: statt abzuschneiden ausblenden + x einstellmöglichkeiten via MIDI-controller + x grund-controller bearbeiten + x ein port pro channel + x controllern einen defaultwert pro programm mitgeben + x monophoner modus + x reattack + x alwaysreattack setzen können + x portamento testen + x memcheck-clean! + x memcpy durch copy() plus operator= ersetzen? + x pitch-bend + x controller-reset + x key scale level, key scale rate + x akkurates note-on + x frameskip + x globale config-datei, oder alle programs in einem verz. einlesen etc. + x auf dateifehler reagieren! + x sampler-"oscs", d.h. laden von wav-dateien, die sich sonst + wie oscs verhalten (fm möglich usw.) + x analoge synthese auf den output jeder note anwenden + x tiefpass via def.datei setzen: trem, env, res + x tiefpass via controller setzen + x osc-sync + x bei genügend xruns noten töten + x filter knackst + x bei self-mod mit faktor 1 (auch ohne filter): segfault + x bei starken vibratos: segfault, weil fm zu extrem wird + x bei bug.prog: auch ohne filter: knacksen bei den meisten noten (z.B. C) + x per velocity statt lautstärke andere params steuern + x frameskip so implementieren, dass bufsize irrelevant ist + x lfo_update_frames einstellbar machen + sollte durch frameskip dividiert werden + x tremolo- und vibrato-arrays sind mit mehreren MB zu groß! + ein wert pro sample ist unnötig. könnte auch rechenzeit in + calc_foo sparen, da seltener aufgerufen + x sample-and-hold -> fm_strength, -> freq, -> VCF + * bei osc-envelopes ggf. auch nur alle n frames neu setzen? [verschoben] + * filter optimieren? (arbeiten momentan mit floats) [verschoben] + verstehen, optimieren und dann profilen + x stimmt die stereo-implementierung? [ja] + + +TODO fürs CLI + x filter_update_frames, lfo_update_frames in config, in sec (auch im CLI) + x max_port_time einstellen + x manuelle program -> datei - mappings + x automatische mappings ( xxxIGNORIERT.prg, xxx ist die programmnummer), + alle dateien eines verzeichnisses einlesen. bei nichtexistenz + auf normalen sinus zurückfallen + x konfigdateien lesen (inhalt wie CLI-optionen) + x vibrato- und tremolo-frequenzen einstellen + x cleanup-intervall setzen + x space-sicher machen + x fehlerbehandlung: + syntaxfehler sollten übergangen werden, sofern möglich + in parser: throw!, sonst: meckern und nächste zeile parsen + x automatisch an alle midi-outs hängen + x interface div-by-zero-sicher machen + + diff --git a/note_compiler/IDEE b/note_compiler/IDEE index fc28809..01fb251 100644 --- a/note_compiler/IDEE +++ b/note_compiler/IDEE @@ -8,6 +8,7 @@ Parameter, die geändert werden können, nicht. Wann können Parameter verändert werden? - per controller (set_param) - per velocity (pfactor, apply_pfactor etc.) + - wenn vom user angegeben ("variable:") get_sample (und letztendlich auch alle anderen funktionen) folgender- maßen durchgehen: diff --git a/synth/TODO b/synth/TODO deleted file mode 100644 index d5f5534..0000000 --- a/synth/TODO +++ /dev/null @@ -1,33 +0,0 @@ -TODO für den synth - o notes compilieren und als .so-datei laden - o programme on-the-fly (um)laden - - 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 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 - - o diverse pedale (soft, sostenuto, halte, legato (?)) - - (o)programs on-the-fly ändern (n_osc ändern) - (o)lfo-maxima getrennt regeln. nää - (o)bei filter-envelopes: ksr/ksl? nää. - (o)resonanz-tremolo bei tiefpass? nää. - - -TODO fürs CLI - x ... diff --git a/synth/TODO.done b/synth/TODO.done deleted file mode 100644 index 0cd6d16..0000000 --- a/synth/TODO.done +++ /dev/null @@ -1,71 +0,0 @@ -TODO für den synth - x knistern bei aktivem frameskip - x tremolo und vibrato: phase nurnoch ++ - x rettack im monomode abschalten (sondern einfach nur freq ändern) - x bei freqänderung: aufpassen, ob nicht das programm auch geändert - wurde. wenn ja: delete && new - x note-limit - x stereo: pan/balance - x envelopes on-the-fly ändern - x programs laden - x beim note-limit: statt abzuschneiden ausblenden - x einstellmöglichkeiten via MIDI-controller - x grund-controller bearbeiten - x ein port pro channel - x controllern einen defaultwert pro programm mitgeben - x monophoner modus - x reattack - x alwaysreattack setzen können - x portamento testen - x memcheck-clean! - x memcpy durch copy() plus operator= ersetzen? - x pitch-bend - x controller-reset - x key scale level, key scale rate - x akkurates note-on - x frameskip - x globale config-datei, oder alle programs in einem verz. einlesen etc. - x auf dateifehler reagieren! - x sampler-"oscs", d.h. laden von wav-dateien, die sich sonst - wie oscs verhalten (fm möglich usw.) - x analoge synthese auf den output jeder note anwenden - x tiefpass via def.datei setzen: trem, env, res - x tiefpass via controller setzen - x osc-sync - x bei genügend xruns noten töten - x filter knackst - x bei self-mod mit faktor 1 (auch ohne filter): segfault - x bei starken vibratos: segfault, weil fm zu extrem wird - x bei bug.prog: auch ohne filter: knacksen bei den meisten noten (z.B. C) - x per velocity statt lautstärke andere params steuern - x frameskip so implementieren, dass bufsize irrelevant ist - x lfo_update_frames einstellbar machen - sollte durch frameskip dividiert werden - x tremolo- und vibrato-arrays sind mit mehreren MB zu groß! - ein wert pro sample ist unnötig. könnte auch rechenzeit in - calc_foo sparen, da seltener aufgerufen - x sample-and-hold -> fm_strength, -> freq, -> VCF - * bei osc-envelopes ggf. auch nur alle n frames neu setzen? [verschoben] - * filter optimieren? (arbeiten momentan mit floats) [verschoben] - verstehen, optimieren und dann profilen - x stimmt die stereo-implementierung? [ja] - - -TODO fürs CLI - x filter_update_frames, lfo_update_frames in config, in sec (auch im CLI) - x max_port_time einstellen - x manuelle program -> datei - mappings - x automatische mappings ( xxxIGNORIERT.prg, xxx ist die programmnummer), - alle dateien eines verzeichnisses einlesen. bei nichtexistenz - auf normalen sinus zurückfallen - x konfigdateien lesen (inhalt wie CLI-optionen) - x vibrato- und tremolo-frequenzen einstellen - x cleanup-intervall setzen - x space-sicher machen - x fehlerbehandlung: - syntaxfehler sollten übergangen werden, sofern möglich - in parser: throw!, sonst: meckern und nächste zeile parsen - x automatisch an alle midi-outs hängen - x interface div-by-zero-sicher machen - - -- cgit v1.2.1