Bei den meisten Instrumenten sind die Töne keinen Sinustöne sondern die haben zumindest Obertöne. Man könnte es mit der einfachen detektion der Nulldurchgänge machen. Dann aber nicht durch direktes Zählen, sondern besser über die Input capture funktion, das ist eine interne Hardware zum Messen von Zeiten. Wegen der Oberwellen muß man wahrscheinlich noch eine filterung der Nulldurchgänge machen und ggf. ein paar falsche verwerfen. Das direkte Zählen wird schwer, denn die Töne der meisten Instrumente sind ja eher kurz, und man kann schlecht ein paar Sekunden zählen für ein genaues Ergebnis. Mit der Zeitmessung kann man die zeiten zwischen den Nulldurchgängen messen, die kürzesten und längsten verwerfen wegen möglicher Fehler und den Rest mitteln um die Periodendauer zu erhalten. Das sollte reichen.
An Hardware wird man aber eventuell doch besser eine externe, wenn möglich sogar variable Verstärkung nehmen sollen, denn der interen Komperator hat nominell keine Hysterese.

Der mega128 hat ja schon etwas an RAM, und die Rechengeschwindigkeit ist auch nicht so schlecht. Man könnte also auch gut den Weg über den AD Wandler wählen: ist aber von der Programmierung etwas aufwendig, dafür sollte es sehr unempfindlich gegen Störgeräusche sein.