可编程"实时" MIDI处理

时间:2017-10-15 08:50:58

标签: scripting embedded real-time midi

在我的乐队中,所有音乐家随时都有双手忙碌。但是,我们想要添加整个合成器和弦(1/4 ..整个音符长度),可能每次都由一个简单的脚踏开关触发(因为沿着音序器播放目前对我们来说太难了)。

前段时间我在C(MinGW)中编写了一个(Windows)控制台应用程序,它将传入的MIDI事件转换为文本,将该文本传送到外部程序(AWK脚本),并重新转换该外部程序。文本输出回MIDI事件。 基本上每种过滤或事件生成都是可能的;我实际上是通过简单的控制信息触发了和弦;我在内存中保持 note-ONs ,以便在发送新的和弦时能够 -OFF 等等 - 实际处理(执行)时间不是问题所有(!)

但我必须明白,不仅延迟,而且众所周知的不可靠(关于"当","多长时间")用户应用程序操作系统多任务/切换使这个概念几乎毫无价值,至少对于实时"使用。 总是明显可感知的延迟,持续时间不可预测。 我阅读了关于用户模式驱动程序编程并下载了一些资源,但不知何故停止了该项目的工作而没有真正的结果。

除了那个特定的项目,我甚至有一些写小"虚拟"的经验。允许准确表达变量,条件和数学的机器,存储为令牌树并且处理得非常快。也许还有选择嵌入Lua,V8或类似的东西。所以调用另一个(外部)程序不一定是这里的问题,因为这可以避免。

剩下的问题是整个处理仍由(用户)应用程序完成。所以我认为在这种情况下,(用户模式)驱动程序没有办法。

或者,我甚至考虑(更多"实时")硬件 - Raspi等 - 但是MIDI接口可能是一个额外的挑战。

是否有任何硬件或软件解决方案(或项目)可用作此类_Generic MIDI过滤器/处理器_的基础?除了可预测的定时行为外,最好不需要(C)构建过滤器/规则时的编译环境,因为#34; creative"步骤可能会发生在我们的排练室(可用的笔记本电脑),这当然不是一个"编程实验室"。基于文本的"程序"很好 - 从长远来看,我可能会建立一个用于布线/生成规则的GUI。

1 个答案:

答案 0 :(得分:0)

MIDI在Windows中处理得非常好。我不确定你遇到的原始问题的根源。毫无疑问,虽然存在一些延迟。

您可以使用微控制器实时处理此问题。好消息是,您甚至不必构建硬件。现成的控制器可用于此。例如:http://www.midisolutions.com/prodevp.htm