gpt4 book ai didi

java - JFugue:加载的 MIDI 文件未使用正确的乐器播放

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:53 25 4
gpt4 key购买 nike

我使用以下代码通过 JFugue 加载和播放 MIDI 文件:

import java.io.File;

import org.jfugue.Pattern;
import org.jfugue.Player;

public class PlayMidiFromFile {

public static void main(final String[] args) {
try {
final Player player = new Player();
final Pattern pattern = player.loadMidi(new File("sample.mid"));
player.play(pattern);
} catch (final Exception e) {
e.printStackTrace();
}
}
}

file是用 ChordPulse 生成的,用其他程序播放效果很好。

它包含多个轨道,每个轨道都有不同的乐器,但播放器只为所有轨道使用钢琴,而且一些轨道似乎丢失了。

如何解决这个问题?是否存在解析器无法识别的某些 MIDI 消息?关于歌曲如何使用轨道和 channel 或其他已知限制或必要的初始化步骤是否有任何先决条件?

最佳答案

大号部分仍然由钢琴演奏,但除此之外,测试版 5 中明显改进了 MIDI 支持。

以上代码片段的更新(反射(reflect) API 更改):

import java.io.File;

import org.jfugue.midi.MidiFileManager;
import org.jfugue.pattern.Pattern;
import org.jfugue.player.Player;

public class PlayMidiFromFile {

public static void main(final String[] args) {
try {
final Player player = new Player();
final Pattern pattern = MidiFileManager.loadPatternFromMidi(new File("sample.mid"));
player.play(pattern);
} catch (final Exception e) {
e.printStackTrace();
}
}
}

关于java - JFugue:加载的 MIDI 文件未使用正确的乐器播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21523067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com