Matplotlib. Визуализация аудиофайла в реальном времени

Не смог найти то, что мне нужно. Хочу сделать визуализацию музыки (!) в реальном времени, наподобие того, как это сделано здесь: https://youtu.be/f9Qi5wsDido?t=557 В представленном ролике автор создает визуализацию на основе данных, считываемых с микрофона. Мне бы хотелось сделать это для музыки. Я использую модуль wave, для того чтобы конвертировать wav-файл в массив байтов. На основе этих данных я хочу строить график в matplotlib в реальном времени. Я попытался сделать это. Проблема моего кода в том, что строится сразу готовый график целиком, не по частям.

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

ax.set_ylim(-10000, 10000)

file = wave.open("music.wav", "rb")
time = file.getnframes() // file.getframerate()
fr = file.getframerate()

data = file.readframes(-1)
aud_arr = np.frombuffer(data, dtype=np.int32)
new_arr = []

for a in range(time-1):
    new_arr.append(mean(aud_arr[fr*a:fr*(a+1)]))


def animate_graph(i):
    
    xs = []
    ys = []

    for k in range(time-1):
        xs.append(k)
        ys.append(new_arr[k])

    ax.clear()
    ax.plot(xs, ys)

animat = anim.FuncAnimation(fig, animate_graph, interval=1000)
plt.show()

Ответы (0 шт):