Я создал простую текстовую игру побега из комнаты на Python с намерением встроить патч Pure Data (через libPd) для воспроизведения другого звукового файла (позже он будет заменен алгоритмом для генеративной музыки) для каждая из моих разных комнат.
Код Python, с которым я сейчас работаю, был взят из одного из примеров на github libPD. Это следующим образом -
import pyaudio
import wave
import sys
from pylibpd import *
p = pyaudio.PyAudio()
ch = 2
sr = 48000
tpb = 16
bs = 64
stream = p.open(format = pyaudio.paInt16,
channels = ch,
rate = sr,
input = True,
output = True,
frames_per_buffer = bs * tpb)
m = PdManager(ch, ch, sr, 1)
libpd_open_patch('wavfile.pd')
while 1:
data = stream.read(bs)
outp = m.process(data)
stream.write(outp)
stream.close()
p.terminate()
libpd_release()
Патч чистых данных просто воспроизводит предварительно отрендеренный файл wav, однако результирующий вывод звучит почти так, как если бы он был биткраширован. Я предполагаю, что проблема связана с размером блока, но я не уверен.
Если у кого-то есть опыт встраивания lidPD в Python, я был бы очень признателен, поскольку я уверен, что то, чего я пытаюсь достичь, невероятно просто.
Заранее спасибо, кэп