Om de toetscontacten uit te lezen maken we gebruik van een decoderschakeling en een diode matrix. De decoderschakeling vormt de koppeling tussen de MIDI hoofdprint (dat kan zijn de hoofdprint van de Small-Midi of de hoofdprint van de BIGMIDI) en de diode matrix. Een diode matrix is een schakeling, waarin de diode’s zijn gegroepeerd in groepjes van 8 diode’s die met hun kathode aan 8 toetscontacten zijn aangesloten. Deze groepering gaat door tot maximaal 64 posities: dus 8 groepjes van 8 diode’s, waarbij iedere diode met zijn kathode aan een toetscontact is aangesloten.
De tegenpool van de toetscontacten is de toetscontactrail, deze is nu in stukken opgedeeld, zodanig dat de nu opgedeelde stukjes een omvang van 8 toetsen omvatten.
De microcontroller van de hoofdprint geeft elke keer een signaal aan elke afzonderlijke decoderschakeling in het midi-systeem, met de boodschap, “nu ben jij aan de beurt om de toetsaanslagen door te geven”. De identificatie van elke decoderschakeling voor de microcontroller wordt bewerkstelligd door elke decoderschakeling een uniek “adres” te geven.
De decoderschakeling geeft nu aan elke groep van 8 schakelaars een clocksignaal. Op het moment dat er een clocksignaal door de decoderschakeling wordt gegeven, wordt door de microcontroller de stand van de schakelaars ingelezen via de databus D0…D7.
Per matrix van 64 schakelaars (en diode’s) gebeurt dit 8 keer: 8 clocksignalen, en ieder clocksignaal bekrachtigd 8 schakelaars geeft 64 posities.
N.B.:Lees voor toetscontacten ook de contacten van de registerschakelaars.