我需要开发一个钢琴演奏性能评估器。基于从乐谱中生成的Midi,我需要评估实际演奏的Midi(MIDI键盘)。我打算根据音高,持续时间和响度来评估演奏。评估是我想比较乐谱和中音演奏的音符。

但是我不知道如何可视化(即显示此人出了错的地方)此评估过程。也就是说,可能同时显示注解并突出显示哪个音符出了问题。
但是,如何以某种图形形式显示其中的任何一个呢?或更准确地说,是在五线谱(乐谱)上。我在表中存储了音符详细信息(音高,持续时间)和乐谱详细信息(键和时间签名),并且我正在使用Java。但是我不知道如何将所有这些都以图形形式显示。

非常感谢任何见解。预先感谢

最佳答案

您实际上在说的是用于音乐符号的图形化差异工具。我认为,显示差异的最简单方法是在“正确的”乐谱符号上叠加演奏音符(和休止符)。在显示音量差异时比较棘手的地方是,是否演奏(或应演奏)断音,马卡托,特努托等。例如,在其上带有点的音符应为断音演奏,但您的MIDI表示四分音符可能会被解释为八音符,然后是八分音符,依此类推。

您还必须quantize现场演奏的结果,这意味着您将不得不在节奏之前或之后稍稍留一点余地,以使人类不会有所不同。如果您不这样做,那么音符的唯一“正确”解释将非常机械化(不悦耳)。

至于绘制符号并将其放置在五线谱上的正确线条或空格上,如果您了解如何绘制图形,这并不难。有musical fonts可用,允许您使用字母数字字符表示音符主体,主干,休止符等。当某些音符为accidentals时,您还必须了解键签名,enharmonic

您要提出的任务不小,已经有很多软件可以完成您想做的事情。可能存在一些确实可以实现您想要做的事情,因此在开始编码之前请进行研究。 :)查看各种work that has already been done,查看是否有任何可以使用的项目或会使您退出项目的项目。

几年前,我为QuickTime的MIDI实现制作了my own键盘播放器/记录器,不得不解决您面临的许多问题。我这样做是出于娱乐,这很有趣(对我而言也是有教育意义的),但它永远无法与该类型的商业软件竞争。尽管人们确实喜欢它,但我确实没有时间去维护它并添加人们想要的功能,所以最终我不得不放弃它。这种事情确实是很多工作。

关于performance - 可视化钢琴演奏评估,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2905577/

10-09 13:09