我有RSI问题,尝试了30种不同的电脑键盘,都让我很痛苦。弹钢琴不会给我带来痛苦。我已经弹钢琴20年了,没有任何疼痛问题。我想知道是否有一种方法可以从MIDI键盘捕获MIDI并输出键盘敲击。我对MIDI一无所知,但我想要一些关于如何将这个信号转换成按键的指导。


当前回答

以MAME街机游戏为例。他们已经建立了硬件设备,允许输入任意数量的不同项目。例如,iPac将输入设备的信号转换为USB,然后计算机可以使用USB来模拟按键。您可以使用任意组合的输入设备,只要不需要疯狂的编程逻辑就可以,因为解释输入的软件已经完成并经过了良好的测试。

我见过飞行模拟器座舱输入,自定义亭,和投票系统建立在这种方法.....而且价格也很合理!

其他回答

考虑在硬件上模拟usb(或ps/2?)键盘。您将不再依赖于特定的操作系统或特定的操作系统API。硬件解决方案将经受住时间的考验。当其他人都在使用Windows 11时,不要在Windows 7中使用旧的API !Arduino很容易学。

Arduino MIDI硬件是现成的 Arduinos已被用于模拟键盘设备

有很多关于Arduino的信息和帮助。这是一个为新手打造的硬件黑客平台。现在谷歌正在推广Arduino,它只会变得更大。

编辑:虚拟USB键盘软件和硬件

我在大学里学的是钢琴演奏,然后接触了交互设计、编程和使用Vim,所以我实际上花了很多时间来创建这样的原型。

在Linux中,通过使用为多媒体艺术家设计的图形化编程语言“Pure Data”以及Alex Andre设计的x11key外部代码,可以很快地实现这一点。

在Mac上,你可以使用MidiStroke。我相信Windows上的一个方法是使用MidiOx和AutoHotKey工具。还有一次,我有一个使用Java插件的Max/MSP版本。我相信Patrice Colet为Pure Data做了一个外部窗口,效果也很好,但我似乎再也找不到它了。此外,MaxMSP还有一个外部组件,可以在Windows上执行此操作。最后,这个非免费但很棒的Osculator可以做你想做的事情-请参阅功能页面。

当我让它工作时,我从来没有坚持过,因为我无法停止使用这种布局。不过,把显示器放在电子键盘上就很酷!祝你好运。

学习速记吧!

从你们的讨论来看,这很明显。从技术角度来看,你不想重新发明任何轮子。但是,一旦你建立了联系(这个问题要问的是什么)并开始工作,你仍然有大部分工作要做:你必须训练你的大脑。你还必须发明最聪明、最有效的方法来做到这一点——这是一个完全脱离计算机技术的设计问题。你或者我们任何人都不够格。

幸运的是,经过几个世纪的成熟,这个问题已经得到了解决和磨练……

学速记!

是的,这会花掉你一大笔钱。但是,你自己几百个小时的时间又有什么价值呢?结果却不是那么好。此外,维基百科上的速记文章说,“它看起来更像钢琴键盘”。

当然,除非你想要一个杂耍效果。我不得不承认,我从来没有想过这种可能性,看到有人从钢琴键盘上打出一段文字真的很有趣!

你可以从一个带有触控板的USB键盘开始(或者一个指向杆会更符合人体工程学?),使用Plover来翻译它(我相信它可以配置为让非字母键保留其功能,因为它们对编程至关重要),或者,遵循线程Re: Plover键盘来滚动你自己的USB速记键盘,或者,购买一个速记键盘。

好运!

如果你使用Linux,可以去Footware看看。

它应该正是你所寻找的-如果你调整MIDI音高到你喜欢的键映射…

我从没想过这对除了我以外的任何人都有用;

使用. net DirectSound接口这样的东西来连接到MIDI设备应该是相当容易的。您需要识别目标MIDI设备,然后获取用于侦听传入消息的代码(有关于通过谷歌进行此操作的文章)。

由于您正在使用MIDI in作为键盘,因此基本上只需要检测两个MIDI消息,即打开和关闭。MIDI消息是三个数据字节,指定命令、音符和速度。note off只是音符号(有时“坏”MIDI堆栈以零速度发送音符,这也是你必须预料到的)。

一旦你有了转换它们的消息,从。net输出的键盘应该相当简单。

其他答案中有很多关于技术细节的建议;我只是想让你对实际的MIDI消息有一个概念。好运!