从.kar文件中读取歌词信息

时间:2011-10-22 14:46:46

标签: c# midi

我只需要阅读.kar file的歌词。

问题是在MIDI标准和.kar文档中缺少关于此的文档。

我尝试用十六进制编辑器打开文件,但我不了解很多东西。

所以我的问题是:

  1. .kar文件的文件格式是什么?
  2. 如何从.kar文件中提取歌词?我不需要播放音频。

3 个答案:

答案 0 :(得分:5)

KAR文件是常规MIDI文件(特别是具有多个乐器的类型1文件),但歌词的存储方式与常规MIDI文件略有不同。自从我使用KAR以来已经有一段时间了,但是IIRC将歌词存储为元文本事件(类型0x01)而不是歌词事件(类型0x05)。但是,KAR还为标题/艺术家/等使用文本事件,尽管这些事件通常以“@”字符为前缀。

正如@ Vilx所指出的,你可以用与常规MIDI相同的方式解析KAR,所以当你这样做时你可以简单地转储所有元事件,你会看到它们是如何构造的。

答案 1 :(得分:1)

我没有答案,但我可以指出你自己的方向。

MIDI文件的格式非常标准化和记录。维基百科没有提供它的链接,但我记得10年前在网上找到它(甚至在谷歌诞生之前!),所以我不认为你今天找到它会有问题。

格式是“分块”,这意味着卡拉OK信息很可能存储在一种特殊的块中。其余的是逆向工程。拿一个卡拉OK文件(.kar,据我所知,是一个带有歌词块的.mid),丢弃已知的块,你很快就会找到歌词块。那里的信息对于decypher来说应该不会太难。

已添加:此外,据说KMid支持它们,因此其源代码可能会有所帮助。

答案 2 :(得分:0)

您可以将此免费库用于.NET:NAudio