Where's the midi coming from? Is your external keyboard maybe a bit jittery? We're not aware of anything broken in the synth class, so you might want to use a midi tool to look at the incoming midi data before assuming it's something weird that the synth is doing.
I was calling addSound() in Processor in my initSynth() method which was in the Processor's prepareToPlay() method.
And for whatever reason, prepareToPlay() was getting called 3 times during startup, and therefore, creating 3 sounds, which in Synthesizer::noteOn, loops through the number of sounds.
Hopefully that will help anyone else that gets snagged on that.
And Jules, having the souce for the framework definitely made it much easier to debug. Thank you.