【问题标题】:Realtime art project --- input: sound --- output: image (better title?)实时艺术项目---输入:声音---输出:图像(更好的标题?)
【发布时间】:2011-12-18 19:22:57
【问题描述】:
我不太确定我是否应该在这里问这个问题。
我想做一个艺术项目。
我想使用语音作为输入,图像作为输出。
图像会随着声音而变化。
我怎样才能意识到这一点?因为我需要实时或 50 毫秒以下的延迟。
起初我认为使用微控制器会更好。
但我想计算巨大的图像,也许我的微控制器无法做到这一点。
例如,我想计算 10.000 个移动物体。
我可以用 windows/linux/mircocontroller 实现这一点吗?
如果我能用 Python 那就太好了。
还是您认为处理是更好的选择?
您需要更多详细信息吗?
【问题讨论】:
标签:
python
audio
real-time
microcontroller
processing
【解决方案1】:
您是否考虑过使用像 Pure Data (Pd) 或 Max 这样的图形数据流环境? Max 是商业产品,但 Pd 是免费的。
即使您最终没有在最终项目中使用 Pd,它也是一个出色的快速原型制作工具。虽然 Pd 的图形处理能力有限,但有 Gridflow 和 Gem 等扩展,可能会对您有所帮助。当然,使用 Pd,您可以使用 [fiddle~] 对象分析传入的声音,这将为您提供各个分音的整体音高和频率/幅度,以及 [env~],这将为您提供 RMS 幅度。然后,您可以非常轻松地将声音(音高、幅度、音色)的变化映射到图像的各种属性,例如 Gem 或 Gridflow 中的颜色、形状、元素数量等。
即使在现代桌面 GPU 上,10k 移动对象听起来也不少!即时计算所有这些位置将消耗大量资源。我认为即使使用像 openFrameworks 这样的专用 C++ 图形库,这也可能是一场斗争。您可能需要考虑一种优化策略,例如预渲染图像的各个方面,并使用实时音频控制来确定在任何给定时间显示哪些预渲染组件。这可能会产生控制 10k 个对象的错觉,而实际上大部分对象都是预渲染的。
祝你好运!
【解决方案2】:
上面的答案很好,PD非常灵活,但是如果你想要更面向代码并且更适合与MCU混合的东西,处理可能会更好。
另一个好方法是将 Csound 与 Csound Python API 结合使用。 Csound 有一个陡峭的学习曲线,但有大量的音频分析功能,它非常适合以低延迟运行。您绝对可以实时分析输入信号,然后将控制值发送到图形环境,同时使用 Python 编写脚本。