实际上,您在谈论的是用于音乐符号的图形差异工具。我认为显示差异的最简单方法是在“正确”乐谱符号上叠加演奏的音符(和休止符)。它变得棘手的地方在于显示音量差异,是否播放(或应该播放)断奏,marcato,tenuto等。例如,带有点的音符意味着要断奏,但是你的MIDI表示四分音符可能被解释为一个八分音符,然后是一个八休止符,等等。
您还必须量化现场演奏的结果,这意味着您必须为人类在节拍之前或之后留出一些余地,而不会有不同的标记。如果您不这样做,则对音符的唯一“正确”解释将非常机械(并且不悦耳)。
至于绘制符号并将其放置在五线谱上的正确线条或空间上,如果您了解如何绘制图形,这并不难。有一些可用的音乐字体允许您使用字母数字字符来表示音符主体、符干、休止符等。您还必须了解调号、临时记号、某些音符何时为等音等。
这不是您提议的一项小任务,并且已经有很多软件可以完成您正在尝试做的很多事情。也许有些确实可以满足您的需求,因此请在开始编码之前对其进行研究。:) 查看已经完成的各种工作,看看是否有任何可以使用的东西或者会让你退出项目的东西。
几年前,我为 QuickTime 的 MIDI 实现制作了自己的键盘播放器/录音机,并且不得不解决您面临的许多问题。我这样做是为了好玩,它很有趣(对我来说也很有教育意义),但它永远无法与该类型的商业软件竞争。尽管人们确实喜欢它,但我真的没有时间维护它并添加人们想要的功能,所以最终我不得不放弃它。这种事情真的是很多工作。