我可以使用库解析 MIDI 文件midi-parser-js
并创建一个soundtrack
包含所有轨道及其事件的对象:
export class Soundtrack {
name: string;
duration: number;
tracks: Array<Track>;
}
export class Track {
events: Array<MidiEvent>;
}
export class MidiEvent {
data: any;
deltaTime: number;
metaType: number;
type: number;
}
我还有一个可以工作的合成器服务,我想向它提供这些 MIDI 音符:
synth.triggerAttack(note, null, velocity);
synth.triggerRelease(note);
如何过滤作为音符的 MIDI 事件?
如何从这样的 MIDI 事件中获得实际的音符及其力度?