问题标签 [midi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
614 浏览

midi - Midi 消息需要帮助

如何将来自 midiInProc 委托的 dwParam1 解释为 midi 状态消息,例如 note-off 或 note-on 控制更改?

因为只要我尝试 dwParam1 是 254,并不等于 note-off 或其他任何东西。

0 投票
1 回答
3785 浏览

java - 使用 javax.sound.midi 包设置乐器通道

我在 javax.sound.midi 包中设置仪器时遇到问题。

从 MidiChannel 的文档中,对 channels[0].programChange(int) 的调用应该会更改 MidiChannel 设置的工具,并立即反映在 channels[0].getProgram() 中。但是我的程序打印“0”,表示没有任何改变。

稍后在代码中,我使用 MidiChannel.getSequencer() 成功播放 midi 声音(尽管仅使用默认乐器。)

我是否打算以错误的方式设置仪器?

0 投票
4 回答
1811 浏览

java - 画一架钢琴

我已经开始研究软件合成器(或键盘)。由于可用的 Jfugue API,我决定使用 Java。我试图弄清楚如何创建键盘用户界面的实际键(音符),但我被卡住了。我试图通过将黑白矩形按钮拖放到面板上来创建一个界面,但这似乎不起作用。有人能指出我正确的方向吗?

0 投票
1 回答
271 浏览

java - Midiplayer 在 16 个音符后停止播放声音

我目前正在编写一个钢琴键盘编辑器,就像你可以在 Cubase、Logic、Reason 等中找到的那个。

我有这个大网格,双数组 new int [13][9],它有 13 行,9 列。第一列 [0-12][0] 是键盘,顶部是“high C”(midi note 72),底部是“low C”(midi note 60)。该列是一个 JButton 数组,当您按下例如“low C”时,合成器正在播放音符 60。

我现在已经让它工作得很好,但我遇到的一个问题是我只能连续演奏 16 个音符,然后就像合成器关闭或其他什么。

你们知道问题是什么吗?

一点代码:

非常感谢您的帮助!

0 投票
1 回答
593 浏览

performance - 可视化钢琴演奏评估

我需要为钢琴演奏开发一个性能评估器。基于从乐谱生成的midi,我需要评估实际演奏的midi(midi键盘)。我打算根据音高、持续时间和响度来评估演奏。评估是我想比较乐谱和midi演奏的音符。

但我不知道如何可视化(即显示该人哪里出了问题)这个评估过程。即可能同时显示符号并突出显示哪个音符出错了。但是我怎样才能以某种图形形式显示这些呢?或者更准确地说,在五线谱(乐谱)本身上。我在表格中存储了音符详细信息(音高、持续时间)和乐谱详细信息(键和拍号),并且我使用的是 Java。但我不知道如何将所有这些变成图形形式。

非常感谢任何见解。提前谢谢

0 投票
1 回答
8131 浏览

android - Android 上的 MIDI:Java 和/或 AIR 库

一段时间以来,我一直在考虑(重新)在 iPad 上构建一个应用程序,我将使用 Objective-C 和DSMI将 MIDI 信号发送到主机。这还不错(我的意思是,除了实际编写应用程序)。

现在我正在考虑开发适用于 Android 平板电脑 (TBA) 的应用程序。

在 Java 中,哪些选项可用于 MIDI 消息通信?我对 javax.sound.midi 非常熟悉,但是我需要一个虚拟 MIDI 端口来向主机发送消息。

另一方面,如果应用程序是在 Adob​​e AIR 中完成的,我有哪些选项可用于与 MIDI 通信?

显然,另一种选择是通过 TCP/IP 套接字向 Java 主机发送/接收消息,并以这种方式交谈,但这听起来有点麻烦......或者可能不是?毕竟,DSMI 确实使用了主机程序。

0 投票
6 回答
4268 浏览

api - 音频和 MIDI 音乐应用程序开发的最佳 API 是什么?

在开发处理实时 MIDI 和音频输入和输出的应用程序时,最好使用什么 API?这适用于在制作音乐的过程中使用的应用程序,而不是播放音频或 MIDI 文件。我知道这可能是一个主观问题,但如果您知道主要用于这些目的的 API,请分享。

我不知道 API 适用于哪种语言,也不关心可移植性。真正关心的是一个有据可查、设计良好(例如,对使用它的开发人员来说经过深思熟虑和直观)以及积极维护的 API。操作系统的可移植性会很好,但它仅次于拥有满足先前要求的 API/语言。

请注意,重点不是用于声音合成或用代码创作音乐的 API。它用于在实时上下文中处理声音文件和 MIDI 数据。

0 投票
1 回答
3156 浏览

audio - 从 MIDI 中提取音符开始

我需要从复音(高音和低音有 2 个乐谱 - 低音也可能有和弦)MIDI 文件中提取音乐特征(音符详细信息->音高、持续时间、节奏、响度、音符开始时间)。我正在使用 jMusic API 从 MIDI 文件中提取这些详细信息。我的方法是遍历每个乐谱,分成部分,然后是短语,最后是音符,然后提取细节。

使用我的方法,它首先读取所有高音音符,然后读取低音音符 - 但是没有捕捉和弦(即只记录和弦的一个音符),我无法确定从哪一点开始是低音音符。所以我尝试的是获取音符开始(即播放音符的开始时间) - 因为在乐曲开头的高音和低音音符的开始时间应该相同 - 但我无法使用提取音符开始jMusic API。对于每个音符,它显示 0.0。

有什么方法可以识别音符的声音(高音或低音)?还有和弦的所有音符?每个音符的声音或音符开始是如何存储在 MIDI 中的?每个 MIDI 文件都不同吗?

非常感谢任何见解。提前致谢

0 投票
1 回答
437 浏览

python - python中的midi输入

我正在用 python 编写一个演示,我需要在 python 中读取一个 MIDI 文件(不需要实时的东西)。特别是,我正在寻找一个保存频道信息的库。

我发现的最有前途的库是:

有这些经验吗?

非常感谢

尼古拉·蒙特奇奥

0 投票
1 回答
8218 浏览

c++ - 用 C++ 编写一个 MIDI 文件

嗨,我在查找有关这方面的正确信息时遇到了一些问题,如果有人能指出我正确的方向,我会很高兴。你如何编码一个midifile?例如,我如何编写一个播放随机音调 1 秒的片段。基本上我需要完成的是将不同的 midi 旋律表示为某种向量?我怎样才能做到这一点..