gpt4 book ai didi

c# - 使用 DryWetMidi 从 MIDI 文件中读取每个音符(音符、力度、长度)

转载 作者:行者123 更新时间:2023-12-02 03:54:35 28 4
gpt4 key购买 nike

我正在制作一个 C# 程序,它应该从 MIDI 文件中读取每个音符并获取音符的长度和速度,但我不知道该怎么做...

我正在使用 DryWetMidi图书馆,但还有其他图书馆吗?

最佳答案

DryWetMidi 1.1.0 开头, 你只需要得到一个 MIDI 文件的音符就是这个代码:

IEnumerable<Note> notes = midiFile.GetNotes();

Note 类包含您需要的所有属性:NoteNumberNoteNameOctaveLength TimeVelocityOffVelocity

要将 Time 获取为 ,您可以使用 TimeAs 扩展方法:

TempoMap tempoMap = midiFile.GetTempoMap();
MetricTimeSpan metricTime = note.TimeAs<MetricTimeSpan>(tempoMap);
BarBeatTicksTimeSpan musicalTime = note.TimeAs<BarBeatTicksTimeSpan>(tempoMap);

对于Length,可以使用LengthAs扩展方法:

TempoMap tempoMap = midiFile.GetTempoMap();
MetricTimeSpan metricLength = note.LengthAs<MetricTimeSpan>(tempoMap);
BarBeatTimeSpan metricLength = note.LengthAs<BarBeatTimeSpan>(tempoMap);

您可以在 Time and length 中阅读更多内容库文档的文章。

关于c# - 使用 DryWetMidi 从 MIDI 文件中读取每个音符(音符、力度、长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44396347/

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