如何从 DryWetMidi 库中的特定 MIDI 文件块中获取 program/instrument 标题?
How to get a program/instrument title from a specific chunk of a MIDI file in DryWetMidi library?
我在 C# 中使用 DryWetMidi 库并尝试从加载的块中获取 program/instrument 标题,但我找不到给我标题的字段。
到目前为止我只有:
var midiFile = MidiFile.Read("test.mid");
var tempoMap = midiFile.GetTempoMap();
var trackList = midiFile.GetTrackChunks().ToList();
var notes = trackList[0].GetNotes().ToList();
我希望找到类似的东西:
var programNumber = trackList[0].ProgramNumber;
或
var programNumber = midiFile.GetProgramNumbers();
但是我找不到这样的操作。
如果有任何方法可以在 DryWetMidi 或任何外部库中执行此操作,请告诉我。
TrackChunk has Events property which gives access to all MIDI events within a track chunk. Just find ProgramChangeEvent个并收集节目编号:
var programNumbers = trackList[0]
.Events
.OfType<ProgramChangeEvent>()
.Select(e => e.ProgramNumber)
.ToArray();
DryWetMIDI 文档齐全。请查看它以了解更多信息:https://melanchall.github.io/drywetmidi.
我在 C# 中使用 DryWetMidi 库并尝试从加载的块中获取 program/instrument 标题,但我找不到给我标题的字段。 到目前为止我只有:
var midiFile = MidiFile.Read("test.mid");
var tempoMap = midiFile.GetTempoMap();
var trackList = midiFile.GetTrackChunks().ToList();
var notes = trackList[0].GetNotes().ToList();
我希望找到类似的东西:
var programNumber = trackList[0].ProgramNumber;
或
var programNumber = midiFile.GetProgramNumbers();
但是我找不到这样的操作。 如果有任何方法可以在 DryWetMidi 或任何外部库中执行此操作,请告诉我。
TrackChunk has Events property which gives access to all MIDI events within a track chunk. Just find ProgramChangeEvent个并收集节目编号:
var programNumbers = trackList[0]
.Events
.OfType<ProgramChangeEvent>()
.Select(e => e.ProgramNumber)
.ToArray();
DryWetMIDI 文档齐全。请查看它以了解更多信息:https://melanchall.github.io/drywetmidi.