gpt4 book ai didi

parsing - 从MIDI文件获取音符数据

转载 作者:行者123 更新时间:2023-12-04 11:16:17 25 4
gpt4 key购买 nike

有没有办法从MIDI文件中获取音符数据?也就是说,我想将MIDI文件分解为组成部分,以便它们以唯一单词(或任何其他数据类型)的形式出现。
最后,我要输入的是MIDI文件,然后在音符中找到模式。进入每个音符,找到其出现的频率(频率),然后记下其他音符在演奏之后的可能性。

用C/C++做到这一点会很好,但是任何语言都可以。

最佳答案

Nik Reisman-抱歉,但是我不同意...在C#中解析midi,C++大约需要400行代码。

我建议您从以下链接开始:https://web.archive.org/web/20141227205754/http://www.sonicspot.com:80/guide/midifiles.html
您需要了解有关Midi以及如何阅读它的所有信息。

在简短描述中,解析器将如何工作:
1)以字节模式打开Midi
2)读取标题块,其中包含有关大小,轨道数和重要文件格式的信息!
-共有3种格式:0,1,2(类型2确实是“有值(value)的”,具有这种类型的midi文件很少,因此,如果有type 2,则不需要读取Midi)
-如果未编写:"MThd" (0x4D546864),则以错误结尾(这是错误的Midi文件)
3)读取轨道块
-如果未写入:"MTrk" (0x4D54726B)以错误结尾(这是错误的Midi文件)
4)阅读MIDI事件。
-事件非常多,您可以使用if-else命令将其全部读取,也可以仅读取想要了解的事件,例如NOTE ON,NOTE OFF
-有时在某些Midi文件中没有NOTE OFF ..此事件通过NOTE ON和力度0更改

网站上的所有内容都很好地解释了。如果您以字节模式打开midi文件,则只有几种方法,所有内容仅与if-else命令有关,在那里您将捕获到当前存储的内容。
重要的是要了解可变长度,但在网站上也有解释。不难您可以在许多网站上搜索Google可变长度,并附带一些图片和示例。因此,我认为在这里很难解释。

如果您需要更多建议,请写信给我,我会尝试的。但是解析midi并不像看起来那样困难。如果您有任何问题,请写信给我。

关于parsing - 从MIDI文件获取音符数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660964/

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