diff --git a/juno_samples/cava/src/cava.jn b/juno_samples/cava/src/cava.jn
index 839e80e201b1eb3cf5c477a9df4cdf04fe0401c7..e6961faf01bc90114186e3ea72b6b9671e2758d4 100644
--- a/juno_samples/cava/src/cava.jn
+++ b/juno_samples/cava/src/cava.jn
@@ -153,7 +153,7 @@ fn gamut<row : usize, col : usize, num_ctrl_pts : usize>(
         l2_dist[cp] = sqrt!::<f32>(v);
       }
 
-      for chan = 0 to CHAN {
+      @channel_loop for chan = 0 to CHAN {
         let chan_val : f32 = 0.0;
         for cp = 0 to num_ctrl_pts {
           chan_val += l2_dist[cp] * weights[cp, chan];
diff --git a/juno_samples/cava/src/cpu.sch b/juno_samples/cava/src/cpu.sch
index e9e3e683433d37a565544208b8f796c361891bff..3021f6a0fc367e2656293460c3392efeccad909a 100644
--- a/juno_samples/cava/src/cpu.sch
+++ b/juno_samples/cava/src/cpu.sch
@@ -99,6 +99,9 @@ fixpoint {
   fork-coalesce(fuse4);
 }
 simpl!(fuse4);
+fork-unroll(fuse4@channel_loop);
+simpl!(fuse4);
+//fork-fusion(fuse4@channel_loop);
 fork-split(fuse4);
 unforkify(fuse4);