使用this thread我已经知道了如何使用getData(),但是我得到的不是0x51,而是[B@37d78d93,[B@29d74462和[B@1c5ca652 ]这样的随机值 输出元消息本身也会产生类似的值,比如javax.sound.midi.MetaMessage@364d4fca、javax.sound.midi.MetaMessage@5581f86d和javax.sound.midi.MetaMessage@3f011b2b 例如,使用 System.out.print ("the meta message is " + mm + ", ")
我读了很多关于MIDI解析的内容,还研究了一些代码,比如Tone.js和heartbeat。但我不明白为什么会有不同的值,以及它对演奏音符有什么影响。当我有960个PPQN,这意味着1个四分之一音符有960个刻度,1个8个音符有480个刻度,等等。如果我理解正确的话,增量时间只是一个相对值。
我不明白的是,当我在JavScript中播放音符时,PPQN应该是什么,当我设置PPQN时,为什么它应该有这个值?例如,我使用WebAudio应用程序接口播放音符:
function nextNote() {
var quarterBeat = 60.0/tempo;
nextNoteDurati
我想做一个从midi文件中预先生成节拍的节奏游戏。但是我对midi文件的数据结构和如何生成这些节拍并不是很了解。我应该如何做到这一点?
供您参考,我正在使用Qt for Meego。还有一个问题我发现了,QML Element Audio for meego不能播放.mid文件。我不知道如何解决这个问题。有solution>吗?
任务是使用NAudio库从MIDI文件中获取所有注释及其时间。到目前为止,我从档案中得到了所有的笔记,但我无法得到他们的时间。
Note noteOn = new Note(); //custom class Note
MidiFile midi = new MidiFile(open.FileName);
List<TempoEvent> tempo = new List<TempoEvent>();
for (int i = 0; i < midi.Events.