В изначальном коде должна бы такая константа быть: 44100 / 20 * 24/100 = 529.2
44100 — sampling rate
20 — сколько бит в секунду в сигнале
24 — ширина в пикселях (в сигнале)
100 — размер в пикселях генерируемой png (задан в изначальном коде)
Но там округлено до 529, поэтому плывёт.