         if((grid[col][layer_index][playing_grid_set] & mask) && (!(grid[(col + 1) % grid_width[playing_grid_set]][layer_index][playing_grid_set] & mask) || ((col == (grid_width[playing_grid_set] - 1)) && (playing_grid_set != visible_grid_set))))
         {
           uint8_t temp = channels[layer_index];
-          usbMIDI.sendNoteOff(pgm_read_byte(&scales[scale_notes[layer_index]][row + noteOffset[layer_index][playing_grid_set]]), 127, temp);
-          synth.noteOff(temp, pgm_read_byte(&scales[scale_notes[layer_index]][row + noteOffset[layer_index][playing_grid_set]]), 127);
+          uint8_t note = row + noteOffset[layer_index][playing_grid_set];
+          uint8_t midinote = pgm_read_byte(&scales[scale_notes[layer_index]][note]);
+          usbMIDI.sendNoteOff(midinote, 127, temp);
+          synth.noteOff(temp, midinote, 127);
+
+          if (layer == LAYERS -1)
+          {
+            untztrument.clrLED(untztrument.xy2i((MAX_MIDI_NOTES - note - 1) % 7, (note) / 7));
+          }
         }
       }
     }

  eDisplayOffset.setValue(0);              // *4's for encoder detents
  eVolume.setBounds(0, 127 * 4 + 3); // Set volume limits
  eVolume.setValue(volume[layer] * 4);              // *4's for encoder detents
}

bool flicker_state = true;

  for(uint8_t column_index=0; column_index < 8; column_index++) 
  {
    uint8_t i = untztrument.xy2i(column_index, y);
     if (layer == LAYERS-1)
    {
      if (setit)
      {
        untztrument.setLED(i);
      }
      else          
      {
        untztrument.clrLED(i);
      }
    }
   else if((setit && flicker_state) || (grid[column_index + display_offset][layer][visible_grid_set] & mask)) 
    {
      untztrument.setLED(i);
    }
    else
    {
      untztrument.clrLED(i);
    }
