Python实现libPD(纯数据封装)

Cap*_*One 7 python puredata

我已经在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

Cap*_*One 3

我最终使用了一种解决方法并导入了 pygame (而不是 pyaudio)来处理音频并初始化补丁。它工作顺利。

感谢您的帮助。

*对于遇到类似问题的人,请查看 libPd github 中的 python 的“pygame_test.py”。