diff options
author | Florian Jung <florian.a.jung@web.de> | 2012-04-11 16:36:45 +0200 |
---|---|---|
committer | Florian Jung <florian.a.jung@web.de> | 2012-04-11 16:36:45 +0200 |
commit | 7c875a14b73d844f4f3b8390e4463610262d9415 (patch) | |
tree | 915e0023706f3f5a3a81c1707415989dde472bad /synth/OPTIMIZATIONS | |
parent | aec14a264cdb19ccbd9e53596c58da9b60308909 (diff) |
added FM-list (brings between 0% and 15% performance improvement)
cast-optimisation
programs gets a better operator=
commented out segfaulting cleanup()
Diffstat (limited to 'synth/OPTIMIZATIONS')
-rw-r--r-- | synth/OPTIMIZATIONS | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/synth/OPTIMIZATIONS b/synth/OPTIMIZATIONS index 14d5f4f..4a22fd4 100644 --- a/synth/OPTIMIZATIONS +++ b/synth/OPTIMIZATIONS @@ -2,6 +2,20 @@ Sinnlose Optimierungen o if(foo.fm_strength!=0) ...: kein effekt, höchstens leichter anstieg! Mögliche Optimierungen + o ??? if (out>0) und was mit lfo: vlt das if weglassen? + o 1% noten kriegen direkten pointer auf ihre waves; (custom_wave-check entfällt) + x 15% fm-liste (die nur die oscs mit fm[i]!=0 enthält) statt + in O(n²) alle durchzutesten: bei 2 oszillatoren kein effekt, + bei 9 oscs der form 1->2->3...->9 (also 9 mod-beziehungen) + 17% verbesserung + o ??? Channel::get_sample() soll mehrere frames berechnen. + soll außerdem das /ONE*VOL_FACTOR gleich mit einrechnen + (kann einmalig gleich mit Channel::volume verrechnet werden) + o 10% BOTTLENECKs in note.cpp fixen. actual_freq und abhängigkeiten + nur dann berechnen, wenn sie sich auch ändert (set_freq, porta, + pitchbend, freq-envelope) + o ??? log_verbose sollte ggf. garnicht interpretiert werden? + o 10% filter ganz auf fixed_t umstellen? o 5% envelope::get_level nur alle n frames arbeiten lassen, sonst cachen? o 2% bei LFOs: bei jedem LFO-update die werte für env-max, freqfactor |