python - 在 Python 中实现 libPD(纯数据包装器)

标签 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()

纯数据补丁只是简单地播放一个预渲染的 wav 文件,但是生成的输出听起来几乎就像被比特压缩了一样。我猜问题与 block 大小有关,但我不确定。

如果有人有在 Python 中嵌入 lidPD 的经验,我将不胜感激,因为我确信我要实现的目标非常简单。

提前致谢, 帽

最佳答案

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

感谢您的帮助。

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

关于python - 在 Python 中实现 libPD(纯数据包装器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17453913/

相关文章:

python - 如何在 OpenCV(Python)中将灰度图像转换为 RGB?

python - 字符串化 Inline::Python::Object-encoded Unicode 字符串

ios - 播放 libPd 补丁时发出噼啪声 - 尤其是。与键盘显示有关

java - 如何设置 libpd 以在 Java 中使用?

java - 如何将 Android 中的音频导入 libPD?

puredata - 纯数据帮助。如何在 Pd 中使用条件逻辑

python - Pytube Channel video_urls 不起作用

Python - 在具有步长的范围之间生成随机实数

python - 在 Python3 中对包含字典的列表进行排序

events - Unity3D中的帧率独立事件