From 7113f02ae87482211aec5046f9ac46c3cc9ad017 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Wed, 29 Dec 2010 16:55:25 +0100 Subject: Initial commit --- synth/OPTIMIZATIONS | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 synth/OPTIMIZATIONS (limited to 'synth/OPTIMIZATIONS') 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 + + -- cgit v1.2.3