   }
   lastSensor12Val = sensor12Val;
 
-  // don't draw the prgress bar on the performance layer
-  if (layer != LAYERS - 1)
-  {
+   // draw grid indicator on performance layer
+  if (layer == LAYERS - 1)
+    {
+      untztrument.setLED(untztrument.xy2i(7, visible_grid_set));
+    }
+   // draw the progress bar on other layers
+   else 
+ {
     // Turn on new column
     line_vert(col - display_offset, true);
   }
-  else
-    {
-      untztrument.setLED(untztrument.xy2i(7, visible_grid_set));
-    }
 
 
   if (refresh == true) 

                temp = GRID_WIDTH;
              }
              grid_width[visible_grid_set] = temp;

              // adjust encoder ranges to match
              if (layer != LAYERS -1 )
              {

    {
      for(uint8_t row=0, mask=1; row<8; row++, mask <<= 1) 
      {
        uint8_t this_grid_width = grid_width[playing_grid_set];
        uint8_t this_note = grid[col                        ][layer_index][playing_grid_set] & mask;
        uint8_t next_note = grid[(col + 1) % this_grid_width][layer_index][playing_grid_set] & mask;
        uint8_t about_to_switch_grids = ((col == (grid_width[playing_grid_set] - 1)) && (playing_grid_set != visible_grid_set));
        if(this_note && (!long_notes[layer_index] || (!next_note || about_to_switch_grids)))
        {
          uint8_t temp = channels[layer_index];
          uint8_t note = row + noteOffset[layer_index][playing_grid_set];
