我有RSI问题,尝试了30种不同的电脑键盘,都让我很痛苦。弹钢琴不会给我带来痛苦。我已经弹钢琴20年了,没有任何疼痛问题。我想知道是否有一种方法可以从MIDI键盘捕获MIDI并输出键盘敲击。我对MIDI一无所知,但我想要一些关于如何将这个信号转换成按键的指导。
当前回答
有一个程序叫做GlovePIE。您可以用一种简单的脚本语言对它进行编程,而且我相信它支持MIDI。我不确定这是否符合“Java”的范畴,但它仍然是一个伟大的程序。我用它来控制使用PS3控制器的机器人。它非常强大。
其他回答
考虑在硬件上模拟usb(或ps/2?)键盘。您将不再依赖于特定的操作系统或特定的操作系统API。硬件解决方案将经受住时间的考验。当其他人都在使用Windows 11时,不要在Windows 7中使用旧的API !Arduino很容易学。
Arduino MIDI硬件是现成的 Arduinos已被用于模拟键盘设备
有很多关于Arduino的信息和帮助。这是一个为新手打造的硬件黑客平台。现在谷歌正在推广Arduino,它只会变得更大。
编辑:虚拟USB键盘软件和硬件
试试Bome的MIDI翻译器。
它可以跨平台工作,可以轻松地将任何MIDI输入转换为键盘,快速设置和配置,另外它是免费的个人使用。
有一个教程,快速提示:MIDI翻译- MIDI键击,如何轻松设置:
基本上,你可以做的事情有无限的可能性,包括和弦和修饰键。我用它作为我的现场音频设备来控制我的DAW使用我的钢琴,从来没有遇到过问题。
你可以看看和弦键盘。它们的优点是在使用它们之前不需要为它们编写驱动程序,有些类似于钢琴键盘的布局。
实际上,我在这个工作了一段时间前,试图捕捉摇滚乐队鼓输入到我的计算机(做一个小Java自制鼓模拟器)无论如何,我问了一个问题在这里,时间延迟问题(有轮询代码在那里,以及我试图做的事情。)如果我能找到我的程序,我可以给你的代码,它使用第三方API (JInput)。
祝你好运。
如果你懂Java编程,你可以这样使用:
首先,实现一个javax.sound.midi.Receiver,使用send(..)方法将“Note on”事件映射到你想要的击键。
您需要使用它的getMessage方法获取MidiMessage的内容,并按照您的方式解释它。消息字节的含义可以在MIDI消息中找到。
在接收到某个键盘键的'note on'或'note off'后,您可以通过为它分配KeyEvent类的常量将其映射到您喜欢的键,例如c# 4 -> KeyEvent。VK_A等等。然后,java.awt可以使用这个键代码。Robot的keyPress和keyRelease方法实际发送击键到操作系统,从而发送到其他应用程序。
推荐文章
- 移动文本字段时,键盘出现迅速
- 电话:用于文本输入的数字键盘
- 出现键盘时,Flutter小部件将调整大小。如何预防这种情况?
- 当文本字段被选中时,滚动UITableView
- 你如何告诉如果大写锁定使用JavaScript?
- 我如何检测软件键盘在Android设备上是否可见?
- Android:当焦点在EditText上时自动显示软键盘
- 如何解散键盘的UITextView与返回键?
- 如何解除屏幕上的键盘?
- 在JS/jQuery中绑定方向键
- Android:我如何防止软键盘把我的视图往上推?
- 编辑文本聚焦时如何显示软键盘
- 运行javascript函数时,用户完成输入,而不是上键?
- 把钢琴键盘当作电脑键盘使用
- Xcode 6:键盘在模拟器中不显示