You had this at the start of iterate.
I think this was a big mistake.
Destroying the timer
Remark
You had one object „out“ with global scope (before setup ()) and one inside the class.
I tried to unify this.
Also I put more audio stuff into iterate because we only have to start playNote once and not 60 times per second
But there are other ways of doing it