setup()が複数回呼ばれる
setup()の中でsize()を呼ぶと、再度setup()が実行されます。他にも同様の現象があるかも知れません。初期化処理が2回呼ばれると気づきにくいバグが発生することがあるので、setup()の最初には目立つログを出力しておきましょう。
とりあえずsize()はsetup()の冒頭に記述します。
audioStreamWrite()が複数のAudioStreamに対して呼ばれる
複数のAudioStreamを作成してstart()すると、それらに対して個別にaudioStreamWrite()が呼ばれます。println(stream.toString()); みたいな感じでAudioStreamのインスタンスが分かるログを出しておくと気づきやすいです。
複数のAudioStreamを使うつもりがなくても、上記のsetup()2重呼び出しが原因で起こるかもしれません。音がプチプチするのでバッファリングの問題か?と悩み、かなりハマりました。