首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中访问MIDI IN流中的数据?

如何在java中访问MIDI IN流中的数据?
EN

Stack Overflow用户
提问于 2013-09-17 21:54:13
回答 3查看 522关注 0票数 0

我想使用来自MIDI输入设备的数据。当某些事件发生时,我需要得到通知,这样我就可以做一些事情,比如动态地转置某些音符,或者调用一个方法,或者任何你能想到的东西。

虽然我对一般编程,特别是java编程比较陌生,但我已经能够使用javax.sound.midi播放序列发生器中的序列。我甚至可以添加一个侦听器,它会告诉我序列器何时播放某些事件。现在我希望能够用MIDI IN stream做一些类似的事情,但我不知道怎么做。

任何想法或变通方法都将是受欢迎的,因为我现在完全被困住了。

EN

回答 3

Stack Overflow用户

发布于 2013-09-22 15:41:27

要录制 MIDI 数据,您必须

  • 通过调用 setReceiver方法将输入端口的Transmitter连接到SequencerReceiver
  • 创建新的 Sequence/Track 对象,并将它们连接到 Sequencer
  • 在您的轨道上启用录音,以及
  • 开始在您的Sequencer.上录制。

(见文档)

票数 0
EN

Stack Overflow用户

发布于 2013-09-23 07:50:06

我终于找到了解决方案,我想澄清这个问题,并添加我的解决方案,以防对其他人有帮助。

我正在做的项目(顺便说一句,这个项目超出了我的理解)是一个midi键盘编排器。如果你不知道它是什么,它是一个键盘,可以播放模式(风格),并根据所演奏的和弦改变音调和排列。我需要的是我认为是来自midi输入端口的转储,这样我的程序就可以找出演奏了什么和弦,这样它就可以让音序器以不同的方式响应。

因此,为了回答我最初的问题,你需要为你的midi输入端口创建一个新的发射器。然后创建一个新的接收器来接收来自新发送器的数据流。最后,让接收器将数据发送到PrintStream,然后您就可以对数据流执行您想要的操作了!

票数 0
EN

Stack Overflow用户

发布于 2014-06-18 23:28:22

在您自己的类中实现javax.sound.midi.Receiver接口的send(javax.sound.midi.ShortMessage,long)方法,并像使用其他接收器对象一样使用后者的实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18851866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档