 	{ &mcp1, 7,  false },
 	{ &mcp1, 14, false },
 	{ &mcp1, 15, false },
-	{ NULL, 2,  false },
+	{ NULL, 2,  false },	// momentary
 	{ NULL, 3,  false },
 	{ NULL, 4,  false },
 	{ NULL, 5,  false },

	int16_t value;				// value of encoder
	int16_t min_value;			// min value encoder can have
	int16_t max_value;			// max value encoder can have
} encoder_t;

#define ENCODERS 8
// setup the encoder data structures
encoder_t encoders[ENCODERS] = {
	{ &mcp0, 0, 1, 2,    true, true, false, 0, 0, 20 },
	{ &mcp0, 3, 4, 5,    true, true, false, 0, 0, 20 },
	{ &mcp0, 8, 9, 10,   true, true, false, 0, 0, 20 },
	{ &mcp0, 11, 12, 13, true, true, false, 0, 0, 20 },
	{ &mcp1, 0, 1, 2,    true, true, false, 0, 0, 20 },
	{ &mcp1, 3, 4, 5,    true, true, false, 0, 0, 20 },
	{ &mcp1, 8, 9, 10,   true, true, false, 0, 0, 20 },
	{ &mcp1, 11, 12, 13, true, true, false, 0, 0, 20 }
};

typedef struct button {

				Serial1.print("event with magnitude: ");
				Serial1.println(event_magnitude, DEC);
#endif
#ifdef MIDI
				// divide by 8 as max value of event could be 1024 and max value of velocity is 127
				usbMIDI.sendNoteOn(strings[i].note, event_magnitude / 8, channel);
#endif
			}
		// if we are in recovery state and the analog voltage has reached baseline again IDLE the event
		} else if (strings[i].state == RECOVER && value >  strings[i].baseline_value - (strings[i].baseline_value / STRING_LEVEL_EVENT_PERCENT_CHANGE)) {
