java - 如何使用 Mididriver 或其他 Android 库来选择乐器和音符?

标签 java android android-studio gradle midi

我需要为许多乐器演奏音符(最好是 midi)。我找到的唯一可行的解​​决方案是 mididriver: https://github.com/billthefarmer/mididriver 但我不知道如何将音符转换为其格式。

当我使用 python 代码读取 midi 文件时,我得到了一些音符和和弦,例如

G#4 G#2

mididriver 演示展示了如何弹奏“g”,如下所示:

sendMidi(0x90, 55, 63);
sendMidi(0x90, 59, 63);
sendMidi(0x90, 62, 63);

是否有任何库可以用来将 MIDI 音符转换为这种表示法?

最佳答案

你不懂的函数有3个参数,含义是这样的:

sendMidi(midi status byte, note number, velocity)
  • midi 状态字节:是将 MIDI 消息类型之一和 channel 组合在一个字节中的单个字节。例如 0x90 表示“注释打开”和“ channel 0”。
  • 音符编号是 0 到 127 之间的数字,代表单个音符。例如,60 代表音符 C4(中间 C)。
  • 力度是触发音符/调的力度。

所有这些都是 MIDI 规范的一部分。您只需要下载并熟悉它即可。以下是一些提示:

https://en.wikipedia.org/wiki/MIDI#Messages

https://www.midi.org/specifications

关于java - 如何使用 Mididriver 或其他 Android 库来选择乐器和音符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57628866/

相关文章:

Android 可用性 日历 View

Android 在运行时抛出异常时询问权限

android - 各种插件(例如 Kotlin)被标记为与 Android Studio 3.4 Beta 1 不兼容

Android 应用内购买。我可以检索标题和描述吗?

android - 更新 Android Studio 3.0 稳定更新后 Gradle Stuck 并花费很长时间

git - 重新创建Android项目后如何 merge Git存储库?

java - 为什么转换后DocType为null?

java - 如何在 Spring 中获得复选框的先前值?

java - 我无法使用 java 读取来自 IBM MQ 的消息

java - 如何在 Android 中的 Activity 之间访问相同的变量