diff --git a/juno_samples/cava/src/cava.jn b/juno_samples/cava/src/cava.jn
index ab4fbe594b227483d2835c638bdbfba5f450e7cd..359a83ed20db37117a8c5eef5b3e7cf31986e8cd 100644
--- a/juno_samples/cava/src/cava.jn
+++ b/juno_samples/cava/src/cava.jn
@@ -117,24 +117,7 @@ fn denoise<row : usize, col : usize>(input : f32[CHAN, row, col]) -> f32[CHAN, r
             }
           }
 
-	  let tmp : f32[9];
-	  for  r = 0 to 3 {
-	    for c = 0 to 3 {
-	      tmp[r * 3 + c] = filter[r, c];
-	    }
-	  }
-
-	  for i = 0 to 9 - 1 {
-	    for j = 0 to 9 - i - 1 {
-	      if tmp[j] > tmp[j+1] {
-		let t : f32 = tmp[j];
-		tmp[j] = tmp[j+1];
-		tmp[j+1] = t;
-	      }
-	    }
-	  }
-
-  	  res[chan, r, c] = tmp[9 / 2];
+	  res[chan, r, c] = medianMatrix::<f32, 3, 3>(filter);
         } else {
           res[chan, r, c] = input[chan, r, c];
         }