在嵌入式设备上运行音频合成/分析语言
Posted
技术标签:
【中文标题】在嵌入式设备上运行音频合成/分析语言【英文标题】:Running an audio synthesis/analysis language on an embedded device 【发布时间】:2010-12-28 16:00:59 【问题描述】:在Arduino Mega、@987654326等嵌入式设备中运行以ChucK、Pure Data、Csound、Supercollider等音频合成/分析语言编写的程序是什么体验@ 或带有微处理器的定制板或DSP chip?
我想知道您选择了哪种语言和硬件以及原因。有什么障碍等等?我的目标是在不太昂贵的板上运行音乐家/制作人可以轻松编程的程序。
我收到了有人在 Beagle Board 上成功运行 ChucK 程序(运行 ChucK 的 Beagle Board 上的 Ubuntu Linux)的输入,但他对语言和硬件的选择非常简单,他的设置没有使用Beagle Board,运行整个 Linux 安装来处理音频信号似乎有点过头了。
感谢任何输入!
更新:我发现Zengarden 是一个 Pd 运行时实现(作为独立的 C++ 库)并且在基于 ARM 的设备上运行良好。目前,我将使用 BeagleBoard 和 Zengarden,但在项目的后期,我需要用成本更低的东西替换 BeagleBoard。
我很想听听来自社区的更多意见。
【问题讨论】:
Newton Armstrong 在运行 linux 的无屏幕硬件上运行 supercollider。但这不是你在说的。我也很好奇。如果你想出一个答案,我很想听听! (morgan@morganpackard.com) 感谢@WillHartung 的冗长回答!希望有人能就音频语言的选择提供一些意见。 我确定这不是您想要的,但 IPRE project's OSC stubs for ChucK 是相关的。其他人可能会发现它很有用,尤其是在与孩子一起工作时。 【参考方案1】:感谢大家的 cmets 和答案。作为其他人的参考,我最终用 C++ 编写了一个 JACK 客户端,它解析和解释 PureData 补丁,并在带有 Angstrom Linux 和 JACK 服务器的 BeagleBoard 上运行它。这是我写的视频和教程:http://elsoftwarehamuerto.org/articulos/691/puredata-beagleboard/
【讨论】:
【参考方案2】:首先,我不是音频程序员,所以我不熟悉实现您想要实现的目标所需的信号处理的实际需求。
但是,很难将 Beagle Board 和 Arduino Mega 这样的东西进行对比,因为它们的基本性能确实处于不同的联盟。 Beagle Board 是 1 GHz ARM 与 Arduino Mega 的 16 MHz。这告诉我,您可能感兴趣的任何处理都可能在 Beagle Board 的能力范围内,但如果没有附加的 DSP 来完成实际工作,Arduino Mega 几乎没有机会。
下一个考虑因素是,您考虑使用的任何软件包是否真正针对其运行时目标 DSP。乍一看,它们似乎是高级声音处理语言。使用 Beagle Board,您可能拥有评估和编译这些软件包使用的声音源代码并让它们编译到目标的处理能力,但在 Arduino Mega 上,这似乎不太可能。
如果您所做的只是使用一块硬件来运行您提到的软件包创建的工件,那么 Arduino Mega 可能很适合,因为“开发”是在更强大的机器上完成的。但是,如果您想按原样使用这些包,并将它们用作开发工具,那么在 Linux 端口上运行它们可能只是一个更好的选择。
再一次,随便看看,Arduino Mega 的价格大约是 Beagle Board 的一半,但 Beagle Board 很可能让您在更高的水平上工作(通用 Linux)。我不能说任何一个都足以满足您的最终愿景。但我想,使用更强大的系统,你可以走得更远、更快——至少在短期内如此。
【讨论】:
在每个阶段,从 arduino,到运行裸机或微型操作系统的紧凑型当代 ARM 芯片,再到低端嵌入式 linux 系统,再到与智能手机相当的高端 ARM 嵌入式 linux,再到上网本/上网本的价格略有提高,性能却有很大提高。为了编程方便,最大的转折点可能是当您可以使用类似桌面的方法时,例如,当您可以在没有内存压力的情况下在该事物上运行嵌入式 linux 并拥有文件系统以及适用于大多数语言的交叉编译器或解释器。以上是关于在嵌入式设备上运行音频合成/分析语言的主要内容,如果未能解决你的问题,请参考以下文章