diff --git a/src/music/features/visualizer/shaders/fragments.glsl b/src/music/features/visualizer/shaders/fragments.glsl
index b0d6784..c635d3b 100644
--- a/src/music/features/visualizer/shaders/fragments.glsl
+++ b/src/music/features/visualizer/shaders/fragments.glsl
@@ -1,4 +1,8 @@
 #version 300 es
+//FRAGMENT SHADER
+//
+// Basic fragment shader, just passes along colors, we don't do much
+// with textures or anything else complex in this project.
 
 precision highp float;
 
diff --git a/src/music/features/visualizer/shaders/vertices.glsl b/src/music/features/visualizer/shaders/vertices.glsl
index 8a66554..d6a3a7e 100644
--- a/src/music/features/visualizer/shaders/vertices.glsl
+++ b/src/music/features/visualizer/shaders/vertices.glsl
@@ -1,5 +1,10 @@
 #version 300 es
+//VERTEX SHADER
+//
+// Takes vertices of a unit cube, scales them up along Y according to
+// aHeight, and colors them with basic diffuse shading.
 
+#define CLEAR_COLOR vec4(0.0, 0.0, 0.0, 1.0)
 #define BASE_COLOR vec4(1.0, 1.0, 1.0, 1.0)
 #define AMBIENT_LIGHT vec3(0.3, 0.3, 0.3)
 #define LIGHT_DIRECTION normalize(vec3(0.85, 0.8, 0.75))
@@ -17,24 +22,28 @@ uniform mat4 uProjectionMatrix;
 uniform mat4 uNormalMatrix;
 
 void main() {
+  // The X position of each vertex depends on its cube's instance;
+  // they should align to the X axis.
   float instanceX =
-      aVertexPosition.x + float(gl_InstanceID) * 2.0 * abs(aVertexPosition.x);
+      float(gl_InstanceID * 2) * abs(aVertexPosition.x) + aVertexPosition.x;
+  // Since we want to scale the boxes by their frequencies, make the Y
+  // positions of any vertices that are > 0 (1, because this is a
+  // cube) = the height of the frequency.
   float vertexY =
       aVertexPosition.y > 0.0 ? aVertexPosition.y * aHeight : aVertexPosition.y;
 
   gl_Position = uProjectionMatrix * uModelViewMatrix *
                 vec4(instanceX, vertexY, aVertexPosition.zw);
 
-  vec4 transformedNormal = uNormalMatrix * vec4(aVertexNormal, 1.0);
-  float directionalLight =
-      max(dot(transformedNormal.xyz, LIGHT_DIRECTION), 0.0);
-
   if (aHeight == 0.0) {
-    vColor = vec4(0.0, 0.0, 0.0, 0.0);
+    // Don't render cubes that don't currently have a height
+    // (frequency = 0)
+    vColor = CLEAR_COLOR;
   } else {
+    // Properly shade and color any other cubes
     vec4 transformedNormal = uNormalMatrix * vec4(aVertexNormal, 1.0);
     float directionalLight =
         max(dot(transformedNormal.xyz, LIGHT_DIRECTION), 0.0);
-    vColor = vec4(AMBIENT_LIGHT + (directionalLight * LIGHT_COLOR), 1.0);
+    vColor = vec4(directionalLight * LIGHT_COLOR + AMBIENT_LIGHT, 1.0);
   }
 }