MIDI通道消息之间是否有优先级? 我正在制作一个转换器,它使用MFC C++将MIDI Frava1转换成FrimAT0。

MIDI通道消息之间是否有优先级? 我正在制作一个转换器,它使用MFC C++将MIDI Frava1转换成FrimAT0。,c++,c,mfc,midi,C++,C,Mfc,Midi,当程序完成并与原始文件进行比较时,旋律没有差异,但乐器有差异。例如,我在原版中弹奏钢琴,但在转换后的文件中,我像吹喇叭一样弹奏乐器 我看过MIDI文档,但找不到答案。是否存在确定通道消息之间优先级的规则?在MIDI文件中,具有相同时间戳的事件在同一时间发生(理论上)。说明书没有明确说明如何处理这一问题 实际上,没有依赖于消息类型的顺序;这类赛事应按照曲目中的顺序进行 因此,在转换为0格式文件时,应使用稳定的排序算法。在MIDI文件中,具有相同时间戳的事件在同一时间发生(理论上)。说明书没有明确说

当程序完成并与原始文件进行比较时,旋律没有差异,但乐器有差异。例如,我在原版中弹奏钢琴,但在转换后的文件中,我像吹喇叭一样弹奏乐器


我看过MIDI文档,但找不到答案。是否存在确定通道消息之间优先级的规则?

在MIDI文件中,具有相同时间戳的事件在同一时间发生(理论上)。说明书没有明确说明如何处理这一问题

实际上,没有依赖于消息类型的顺序;这类赛事应按照曲目中的顺序进行


因此,在转换为0格式文件时,应使用稳定的排序算法。

在MIDI文件中,具有相同时间戳的事件在同一时间发生(理论上)。说明书没有明确说明如何处理这一问题

实际上,没有依赖于消息类型的顺序;这类赛事应按照曲目中的顺序进行


因此,在转换为0格式文件时,应使用稳定的排序算法。

如果首先打印频道消息,并且如果它们是相同的勾号,则按照曲目编号的顺序进行排序,因此转换是正常的。谢谢大家的回答。我得到了解决小问题的乐趣。

如果先打印频道消息,并且如果它们是相同的勾号,则按照曲目编号的顺序进行排序,因此转换是正常的。谢谢大家的回答。我从解决小问题中得到了乐趣。

问题的重点似乎是MIDI文件的转换/处理算法。没有细节,很难猜测你的问题。我建议创建一个最小的MIDI输入文件示例,并以可读的形式在问题中显示程序的输入和输出。有一些程序可以在二进制MIDI文件和可编辑文本格式之间进行转换。例如,请参阅,或者可以使用此选项来比较输入和输出。我想源代码相当大,所以创建一个可能很困难。我已经成功地将foramt1转换为format0。然而,在某些领域,这些工具是不同的。我认为从通道消息的Cn部分获取仪器编号的顺序很复杂。其他部分没有问题,转换后的MIDI文件工作正常。我想知道的是MIDI通道消息的优先级或规则。让我们参考您链接到的主页。谢谢。请将您的问题添加到信息中,不要对此使用评论。我不是MIDI文件的专家,所以我不知道你对优先级的猜测是否正确。我的想法是:如果我们能看到输出文件中到底有什么错误,那么我们就可以问一些关于转换工作原理的具体问题。您的输入文件是否包含使用同一频道的多个曲目?也许您可以使用不同的程序来转换MIDI文件,并将结果与程序的输出进行比较。我想您需要将所有非音符通道事件放在音符通道事件之前。类似于控制更改->程序更改->…->注意开/关。这就是我在中的一些地方所做的。听起来你要么错过了一些程序更改消息,要么混淆了音符消息中的通道。问题的重点似乎是MIDI文件转换/处理的算法。没有细节,很难猜测你的问题。我建议创建一个最小的MIDI输入文件示例,并以可读的形式在问题中显示程序的输入和输出。有一些程序可以在二进制MIDI文件和可编辑文本格式之间进行转换。例如,请参阅,或者可以使用此选项来比较输入和输出。我想源代码相当大,所以创建一个可能很困难。我已经成功地将foramt1转换为format0。然而,在某些领域,这些工具是不同的。我认为从通道消息的Cn部分获取仪器编号的顺序很复杂。其他部分没有问题,转换后的MIDI文件工作正常。我想知道的是MIDI通道消息的优先级或规则。让我们参考您链接到的主页。谢谢。请将您的问题添加到信息中,不要对此使用评论。我不是MIDI文件的专家,所以我不知道你对优先级的猜测是否正确。我的想法是:如果我们能看到输出文件中到底有什么错误,那么我们就可以问一些关于转换工作原理的具体问题。您的输入文件是否包含使用同一频道的多个曲目?也许您可以使用不同的程序来转换MIDI文件,并将结果与程序的输出进行比较。我想您需要将所有非音符通道事件放在音符通道事件之前。类似于控制更改->程序更改->…->注意开/关。这就是我在中的一些地方所做的。听起来你要么错过了一些节目更改消息,要么混淆了便笺消息中的频道。如果你有相同的时间戳,你必须按照曲目编号的顺序对它们进行排序!!非常感谢。如果您有相同的时间戳,您必须按照曲目编号的顺序对它们进行排序!!非常感谢你。