Можно по минимуму переделать. Выводить бас условно в 1-ом пикселе, средние во 2-ом, высокие в 3-ем. А в следующем такте сдвигать их не на один пиксел в сторону края, а через два. Таким образом каждая частота поедет по своей "полосе". Ну еще скорость отрисовски надо уменьшить в три раза, что бы компенсировать этот скачек. Это если по быстрому на костылях.а, теперь дошло, оно так и работает значит)) получается ждем когда будет 8 (я так понимаю точки который) и на основе его перепиливаем в 5? А может можно как то сделать что бы не перекрывало, а просто выводило то, что есть или все равно придется переделать весь код?