我已经在Python中创建了一个基于文本的简单逃逸房间游戏,目的是嵌入一个纯数据补丁(通过libPd)以播放不同的声音文件(后来将用生成音乐的算法替换)每个不同的房间.
在Python代码我目前正与从在libPD GitHub上的例子之一是服用.它如下 -
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()
Run Code Online (Sandbox Code Playgroud)
纯数据补丁只是简单地回放预渲染的wav文件,但结果输出的声音几乎就像它已被bitcrushed一样.我猜这个问题与块大小有关,但我不确定.
如果有人有在Python中嵌入lidPD的经验,我将非常感激,因为我确信我想要实现的是令人尴尬的简单.
在此先感谢,Cap
我最终使用了一种解决方法并导入了 pygame (而不是 pyaudio)来处理音频并初始化补丁。它工作顺利。
感谢您的帮助。
*对于遇到类似问题的人,请查看 libPd github 中的 python 的“pygame_test.py”。