diff options
author | Florian Jung <flo@thinkpad.(none)> | 2010-12-29 16:55:25 +0100 |
---|---|---|
committer | Florian Jung <flo@thinkpad.(none)> | 2010-12-29 16:55:25 +0100 |
commit | 7113f02ae87482211aec5046f9ac46c3cc9ad017 (patch) | |
tree | b6484b45317e7e80567d9902cf94843d227ce30e /synth/OPTIMIZATIONS |
Initial commit
Diffstat (limited to 'synth/OPTIMIZATIONS')
-rw-r--r-- | synth/OPTIMIZATIONS | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/synth/OPTIMIZATIONS b/synth/OPTIMIZATIONS new file mode 100644 index 0000000..2dd003f --- /dev/null +++ b/synth/OPTIMIZATIONS @@ -0,0 +1,20 @@ +Sinnlose Optimierungen + o if(foo.fm_strength!=0) ...: kein effekt, höchstens leichter anstieg! + + Mögliche Optimierungen + 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 + und filter-offset aus orig berechnen + o 2% beim filter: evtl nur mit floats statt mit doubles rechnen? + o <2% in note::get_sample u.a.: pitch-bending effizienter lösen? + x 0% beim channel::get_sample: pro note immer mehrere samples auf + einmal holen (iterator braucht recht viel leistung) + wird von g++ automatisch wegoptimiert -> ok + + Mögliche Bugs und ihre Lösung: + o frequenz wird nicht genau eingehalten: phase um + foo*WAVE_RES erhöhen, entsprechend wave[][bar] ändern. + ABER: im testfall um bis zu 15% langsamer + + |