summaryrefslogtreecommitdiff
path: root/synth
diff options
context:
space:
mode:
authorFlorian Jung <florian.a.jung@web.de>2013-05-19 17:05:10 +0200
committerFlorian Jung <florian.a.jung@web.de>2013-05-19 17:05:10 +0200
commit7eb8335d65ff42dcd6e63c1ce6ccdf2afb7480e4 (patch)
tree448e2e6fecba1b292f8651bd0ec1c1bd33077115 /synth
parent2f796b659626569c02dd5016dc3df45000e2b7e2 (diff)
optimizations
Diffstat (limited to 'synth')
-rw-r--r--synth/.gitignore2
-rw-r--r--synth/OPTIMIZATIONS6
2 files changed, 6 insertions, 2 deletions
diff --git a/synth/.gitignore b/synth/.gitignore
index 6569f67..bc7e13f 100644
--- a/synth/.gitignore
+++ b/synth/.gitignore
@@ -1 +1,3 @@
synth
+*.prog
+callgrind*
diff --git a/synth/OPTIMIZATIONS b/synth/OPTIMIZATIONS
index 3ec667b..4a0b8b9 100644
--- a/synth/OPTIMIZATIONS
+++ b/synth/OPTIMIZATIONS
@@ -3,9 +3,11 @@ Sinnlose Optimierungen
o dauerndes nutzen von oscillator[i] durch einen curr_osc pointer
ersetzen (um etwa eine standardabweichung schneller -> kein
wirklicher effekt)
+ o if (out>0) und tremolo-lfo: den if-check weglassen:
+ bringt einen performanceverlust von einer respektive drei
+ standardabweichungen
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,
@@ -14,7 +16,7 @@ Mögliche Optimierungen
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
+ x 33% 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?