diff --git a/src/main.rs b/src/main.rs
index bf59c9d5811fc3a45b881fec5286854a30d7bfb4..da9e38b131077b7abcef5d4c421bb8bd218fc149 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -16,9 +16,9 @@ TODO:
 - [ ] Document dependecies
 - [ ] Performance improvements:
     - [ ] implement performance monitoring
-    - [ ] f32.mul_add() or f32.to_bits() / f32.from_bits()
-    - [x] only calculate connected ports https://docs.rs/jack/0.7.1/jack/struct.Port.html#method.connected_count
     - [ ] Flag volume modulations as dirty
+    - [x] f32.mul_add() or f32.to_bits() / f32.from_bits()
+    - [x] only calculate connected ports https://docs.rs/jack/0.7.1/jack/struct.Port.html#method.connected_count
 - [x] Support other Buffers than 1024
 - [ ]  Features:
     - [ ] Flags to control printing (--quiet etc)
@@ -188,7 +188,7 @@ fn main() {
                                         // Multiply each input sample at position `sample_index` with the
                                         // volume and sum it with the corresponding (existing) output sample 
                                         // at the same position
-                                        *sample += input_samples[sample_index] * volume;
+                                        *sample = input_samples[sample_index].mul_add(volume, *sample);
                                     }
                                  });
                               });