Da es sich um Noten handelt brauchst du nicht unbedingt die Array Keys. Du kannst den Notenwert auch errechnen. Eine Oktave besteht ja aus 12 Tönen die in ihren Bezeichnungen nicht variieren. Du brauchst also u.U. kein unschönes Array mit 97 Einträgen.
So könnte ein Pseudo-Code aussehen:
// $keyvalue ist deine gewählte Taste
// $trigger_grossbuchstaben = ab wann du Großbuchstaben für Oktavbezeichnungen möchtest z.b. Große-, Kontra- und Subkontraoktave
$notennummer = $kevalue % 12;
$oktave = $keyvalue / 12;
$notennamen_de = ["c", "des", "d", "es", "e", ...]
$notenname_de = $notennamen_de[$notennummer];
if($oktave < $trigger_großbuchstaben){ // z.B.für die Große Oktave
$notenname_de = strtoupper($notenname_de);
}
if($oktave > $trigger_striche){ // eingestrichen, zweigestrichen ...
$notenname_de .= str_repeat("'", $oktave - $trigger_striche);
}
echo $notenname_de;
Randbemerkung: Das Problem enharmonische Verwechslung musst du selbst lösen.
lg