summaryrefslogtreecommitdiff
path: root/synth/OPTIMIZATIONS
diff options
context:
space:
mode:
authorFlorian Jung <flo@thinkpad.(none)>2010-12-29 16:55:25 +0100
committerFlorian Jung <flo@thinkpad.(none)>2010-12-29 16:55:25 +0100
commit7113f02ae87482211aec5046f9ac46c3cc9ad017 (patch)
treeb6484b45317e7e80567d9902cf94843d227ce30e /synth/OPTIMIZATIONS
Initial commit
Diffstat (limited to 'synth/OPTIMIZATIONS')
-rw-r--r--synth/OPTIMIZATIONS20
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
+
+