ピエゾブザーで音を出す

ボタンを押した時は以下のような事をしてます。
序盤は「ピ・ピ・ピ…」と鳴って、動画の最後で「ブー」と鳴ったのは、
表示する文字数(cursor)が0の時には、低くて(500hz)長い(0.2秒)音を出しているから。

tone = 500 if cursor == 0 else 1000
delay = 0.2 if cursor == 0 else 0.1
buzzer.ChangeFrequency(tone)

buzzer.start(10)
time.sleep(delay)
buzzer.stop()

音の変化だけでもちょっと生命ある感が出てきてかわいい。

初めの頃、試しに音を流しっぱなしにしながらコードを書いていたら、 音が途切れたり揺れたりしたので「おいおい、そんなに安定した音って出せないもんなのー?」と思ったんですが、
どうやら、ssh接続したラズパイ上のvimでコードを書いていて、カーソルを連続して動かしたような時にそうなるみたい。

CPU負荷とか無線LANとかとの兼ね合いで電圧が変化するんですかね?