             {
               if (x != 7)
               {
-                uint8_t temp = channels[layer][playing_grid_set];
-                usbMIDI.sendNoteOn(pgm_read_byte(&scales[scale_notes[layer][playing_grid_set]][8-x + y*7] ) , 127, temp);
+                uint8_t temp = channels[layer];
+                usbMIDI.sendNoteOn(pgm_read_byte(&scales[scale_notes[layer]][8-x + y*7] ) , 127, temp);
                 untztrument.setLED(i);
               }
               else


              // adjust encoder ranges to match current layer
              eScaleOffset.setValue(noteOffset[layer][visible_grid_set] * 4);              // *4's for encoder detents
              eVolume.setValue(volume[layer][visible_grid_set] * 4);              // *4's for encoder detents

              //save(); // save on layer change, todo too slow, need to do it a byte at a time or at some point that won't hurt performance

              refresh = true;
              break;

          switch (mode)
          {

          case PLAYING_ERASE_PROGRAM_CHANGE_1:
          case PLAYING_ERASE_PROGRAM_CHANGE_2:
          case PLAYING_ERASE_CHANNEL_1:
          case PLAYING_ERASE_CHANNEL_2:
          case PLAYING_ERASE_LAYER_1:
          case PLAYING_ERASE_LAYER_2:
          case PLAYING_ERASE_GRID_1:
          case PLAYING_ERASE_GRID_2:
          case PLAYING_ERASE_WIDTH_1:
          case PLAYING_ERASE_WIDTH_2:
          case PLAYING_ERASE_SCALE_1:
          case PLAYING_ERASE_SCALE_2:
          case PLAYING_ERASE_C_1:
          case PLAYING_ERASE_C_2:
          case PLAYING_ERASE_MEASURE_1:
          case PLAYING_ERASE_MEASURE_2:
            // fall through
          case PLAYING:
            if (layer != LAYERS-1)
