您是在使用带有某种嵌入式系统接口的现成效果模块,还是计划在您的程序中制作效果?我在此回复中假设为后者,请澄清我是否误解了项目的性质:
进行系统工程...
您将需要处理输入和输出的模拟。甚至数字输入和输出在某些方面也是模拟的,以保持信号清晰。甚至光接口和处理器接口之间的光接口也将是模拟的。
(我知道这很长,继续阅读它将集中在您问题的答案上)
您将在接口中有某种硬件到软件数据,理想情况下,如果您选择支持不同的接口,您最好将数据规范化为通用形式和数据速率,以便效果处理只需处理一个大大地。 (避免在代码中使用一堆 if-then-elses,如果比特率是这样,否则如果比特率是这样,否则......如果比特率是这样并且数据是单极性的,否则如果比特率是这样并且数据是双极性的那么,否则……)。
效果处理的核心与您想要制作的一样复杂,一次一个效果还是多个?对于每个效果,定义您将允许调整的参数(我会从可能没有的最小数量开始,然后在一切正常后添加参数)。这些参数需要以某种方式全局化,以便用户界面可以获取并修改它们以进行效果处理。
输出,与输入相同,大量模拟工作,从规范化数据流转换为接口想要或需要或您定义的任何内容。
然后是用户界面……最简单的部分。
...
效果处理软件的核心可以是独立于系统的代码,在台式机/笔记本电脑上开发和测试可能比在目标系统上更舒服,记住代码应该由系统和操作系统编写独立且可嵌入(避免浮点、除法、大量局部变量等)。
有时,如果不是经常在一个封闭系统中,在同一个黑匣子上具有某种用户界面、旋钮或按钮、某种屏幕、触摸屏等。一个系统可以管理用户界面,另一个系统可以执行任务和之间有联系。并非总是如此,但它是一个很好的简洁设计,例如,昨天设计的带有按钮和旋钮的产品,比如两行液晶面板,只需付出一小部分努力,就可以现代化为触摸屏,明天某个时候就会出现可能是一些光纤直接插入你脑后的插座,谁知道呢。
分离处理任务的另一个原因是更容易确保效果处理器永远不会被用户界面的东西所困扰。你不想在你的触摸屏上转动一个虚拟旋钮,而图形加载来绘制图片会导致你的音频出现乱码或变成令人讨厌的呜呜声。基本上效果处理器是实时关键的。您不想在吉他上拨弦,三秒钟后声音从放大器中出来,因为处理器还在您的触摸屏面板上绘制动画背景。该处理需要紧凑、快速和确定性,代码中的每个 if-then-else 都必须考虑和平衡。如果您允许并行处理多个效果,您的处理器需要能够处理所有效果而没有明显延迟的带宽,否则如果一次只有一种效果,则需要选择处理器来处理一种效果最糟糕的计算工作。可能发生的最糟糕的情况是,由于 gui 处理正在执行某些操作,输入到输出延迟会发生变化,从而导致音乐听起来很糟糕。
因此,您可以使用效果处理器及其用户界面,例如,串行接口和跨该接口(您定义)的协议,用于选择效果和更改参数。您可以使用通过串行接口连接的台式机和/或笔记本电脑启动效果处理器并进行工作和测试,并使用一些临时代码来更改参数,也许是命令行程序。
现在是有趣的地方。您可以获得现成的嵌入式 linux 系统,例如嵌入式 android 或其他任何东西,编写使用串行协议的应用程序,如果需要,将胶水、螺栓、胶带、模具等这个用户界面系统放在上面,旁边效果处理器模块。请注意,您可以拥有所有建议的平台,一个 android 版本、一个 linux(没有 android)版本、一个 mac 版本、一个 windows 版本、一个 dos 版本、一个 qnx 版本、一个 amiga 版本,你可以命名它。您可以在同一个操作系统上尝试 100 种不同的用户界面变体,也许我希望旋钮是滑块,或者上/下按钮,或者我使用两指触摸来旋转的表盘,或者其他一些多点触控手势。
而且它会变得更好,除了串行之外,您还可以使用蓝牙模块。您的用户界面可以是 iPhone 应用程序、Android 手机应用程序、笔记本电脑 linux 或 Windows 应用程序。或您的台式计算机等。所有这些都是(相对)简单的平台,用于编写用于选择事物的图形用户界面。
当然,另一种方法可能是以太网,特别是无线以太网,那么您的用户界面可以是一个网页,并且您的大部分用户界面工作已经由 firefox 或 chrome 或其他团队完成。 (无线以太网或蓝牙或 zigbee 或其他允许效果处理器放在方便的地方,而不必在你的手臂/脚范围内)。
...
进行系统工程。将问题分解为几个大模块,定义模块之间的接口,然后在必要时担心这些模块内部的系统工程,直到你得到易于消化的部分。系统工程越好,模块之间的接口定义得越好,项目就越容易实现。
...
我还会研究 xmos 的 xcore 处理器,他们有一个非常好的模拟器,带有 vcd 波形输出,您还可以使用它来准确地分析您的效果处理。就我个人而言,如果不为这个项目选择这个平台,我会很难过。
您还应该研究来自 ti 的 omap,这是 beagleboard 上的内容。你会得到一个不错的手臂,它已经移植了 linux 和其他东西并在上面运行,但你也得到了一个 dsp 块,该 dsp 块可以进行你的效果处理,并且可能以两者不干扰的方式进行。您失去了在物理上分离用户界面处理器和效果处理器的能力,但在其他方面有所收获,并且可能使用现成的 beagleboard 来开发原型(使用模拟音频输入和输出)。实际上,我更喜欢 hawkboard(使用 hawkboard,您可以获得一个开箱即用的可用系统,使用 beagleboard,您会花费另一个价值 beagleboards 的钱购买本应在板上的东西),但最后我看到他们有一个不稳定的缺陷与pcb设计。
我不了解规格,但 tegra(许多即将推出的手机已经或将基于 tegra),如 omap,应该提供一些并行处理,并倾向于音频/视频以及 gui。您只需要音频和 gui(三者中较容易的两个)。我认为有一个开发平台出售,上面有触摸屏和流行的嵌入式操作系统。
如果您想省钱,请自己购买其中一件。现在停下来,去商店买一个。即使所有的设计都是免费的,自制软件的成本也会更高。硬件和熔化的吉他和吉他放大器不是。我从经验中讲,很多时候我在自制项目上花费了数千美元,以避免购买一些现成的 300 美元的商品。我学到了很多东西,而且就个人而言,构建这个东西比使用它更有趣,我通常会在它最终工作后搁置它。 YMMV
如果我误解了您的问题,请告诉我,我将编辑/删除/替换所有问题并使用不同的(简短)答案。