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


当前回答

试试Bome的MIDI翻译器。

它可以跨平台工作,可以轻松地将任何MIDI输入转换为键盘,快速设置和配置,另外它是免费的个人使用。

有一个教程,快速提示:MIDI翻译- MIDI键击,如何轻松设置:

基本上,你可以做的事情有无限的可能性,包括和弦和修饰键。我用它作为我的现场音频设备来控制我的DAW使用我的钢琴,从来没有遇到过问题。

其他回答

在Java中,可以使用JMF (Java Media framework)来转换MIDI信号。 键盘设计的基本是易于使用,即用户界面;并把常用的字符/符号放在手边。

Java Sound Resources中的示例代码和API:示例:数字信号处理(DSP)有助于理解如何处理信号。

更多参考资料:

用控件处理音频 数字音频信号处理,第二版

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

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

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

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

一个很好的。net库,完全支持midi (BASS),请访问http://www.un4seen.com。

而对于另一部分,将键盘midi音符转换为按键等,我会使用AutoItX, ActiveX/COM和DLL接口来实现autoIt。信息和下载,请登录http://www.autoitscript.com/site/autoit/

不需要编写键盘驱动程序。

您可以在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个手指在键盘上,如果矩阵是可用的,我认为你可以比任何电脑键盘用户更快。: -)

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

要解决这个问题,你需要做一些事情:

A way to capture MIDI data from your keyboard. Depending upon the interface: MIDI interface (classic) or USB MIDI interface (modern) the most likely interface is to a computer as it provides the most options. USB host microcontrollers are not as simple as just using a computer. A scheme to convert MIDI data into keystrokes. Like one user pointed out, chords are the way to go as the number of keys will not be dependent upon the number of piano keys. A way to inject a key into the operating system. This will require a low-level driver to be accurate. I have played around with applications that inject keyboard and mouse data into applications in Windows 7, and it can be flaky and depend upon whether an application is currently in focus. This is hardest part of the interface. What may work is to create a HID USB keyboard microcontroller that also has a serial interface.

串行接口将创建一个虚拟串行端口。读取MIDI数据并产生击键的软件可以向虚拟串行端口发送一个串行消息。微控制器将发送一个击键,使它看起来像一个标准的键盘输入。这将允许同时连接MIDI端口和USB MIDI键盘。

Hmmm, with this type of interface you could also simulate a mouse and use some piano keys setup for the mouse axis and buttons. The pressure could be used to determine mouse pointer velocity. So you could eliminate the mouse as well. Another benefit of this approach is any type of input device you connect could talk to the virtual serial port to produce keyboard and mouse events. So if you wanted to add other hardware such as drum pedals or a joystick it would be a matter of adjusting the program that talks to the serial interface.

Another take on the above is like some posted above to use an Arduino, but also include USB Host Shield from Sparkfun to handle USB based music keyboards. This allows the Arduino to be programmed as a keyboard or keyboard mouse combo in the boot loader chip and allows the device to act a USB host for the USB based music keyboard. Then you are covered for both types. Although, I still think the virtual serial port method is more flexible and would be easier to program in the long run. The Arduino device will be harder to change than a desktop program or service.

还有另一种可能: 单手和弦键盘已经存在。我看过关于它们的视频,但你必须确定它们是否会伤害你的手。