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


当前回答

在我看来,你不是在寻求如何自己建立它的建议,而是更多地询问已经有什么资源可以实现你想要的。根据你的操作系统,有很多方法可以实现这一点,而不必从头开始编写自己的程序:

MIDI中风

免费的。适用于Mac OS X 10.3及以上版本。这一款特别提供了“使用任何MIDI键盘作为完整的电脑键盘替代品的能力”。

Bome的迷笛翻译

免费/明信片(有点奇怪)。对于Windows 2000及以上版本,以及Mac OS x,它最初似乎更倾向于autohotkey类型的使用,但进一步研究,我认为它可以很好地做你想做的事情。

Max和aka,键盘

免费的。对于Mac OS x来说,这并不是一个“现成的”解决方案,但如果你对基本的设备配置感到满意,它应该不会太糟糕。

其他回答

实际上,我在这个工作了一段时间前,试图捕捉摇滚乐队鼓输入到我的计算机(做一个小Java自制鼓模拟器)无论如何,我问了一个问题在这里,时间延迟问题(有轮询代码在那里,以及我试图做的事情。)如果我能找到我的程序,我可以给你的代码,它使用第三方API (JInput)。

祝你好运。

您可以在MIDI DotNet中使用。net中的源代码示例访问硬件。

创建MIDI notes数据流的完整工作示例是在VB 5/6-Tipp 0521中:MIDI-Töne erzeugen (Visual Basic 6.0,某处是.NET版本)

一种模拟键盘敲击的方法是在VB 5/6-Tipp 0155: Tastaturereignisse simulieren (Visual Basic 6.0,某处是.NET版本)

和识别击键在tip - upload: VB中有描述。NET 0266: Globaler KeyHook。

然后,为钢琴演奏者使用一个良好的工作矩阵

在钢琴上,如果你是一个优秀的演奏者,你可以有10个手指在键盘上,如果矩阵是可用的,我认为你可以比任何电脑键盘用户更快。: -)

在这种情况下,如果我没有理解错你的问题,这应该不是什么大事。

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

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

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

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

学习速记吧!

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

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

学速记!

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

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

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

好运!

你可以用一个Teenys微控制器快速破解自己的USB键盘。

事实上,他们有如何制作USB键盘的示例代码。

你可以用两种方法来解决这个问题:

找一架旧钢琴,把开关直接连接到小钢琴上 添加额外的逻辑以连接到MIDI端口和必要的解码。