解决Domino打开MIDI提示“一个音轨中包含多个通道停止读取”

在有时我们下载部分MIDI想编辑时,用Domino打开却提示“一个音轨中包含多个通道停止读取”
相信很多人看到之后肯定很纳闷,今天我来带你详细解开这个问题

一、为什么不能打开?
这就需要知道两种MIDI文件格式了——TYPE 0和TYPE 1,两种格式都是标准格式,但区别在于轨道数量:
TYPE 1的每个音轨是独立的(多轨),而TYPE 0则是相当于把每个音轨“合并到了一起”(单轨)
而接着前面所说的,目前最新1.44版本的Domino只支持编辑TYPE 1,如果打开TYPE 0的文件就会弹出这个提示
这其实是某些作者为了防编辑故意设计的(用DAW将MIDI导出为TYPE 0),但这种方式只防Domino而防不了DAW

二、如何解决
我不推荐用https://tat.midishow.com/t/topic/13350的解决方法(BUG多且兼容性差),以下是我推荐的解决方法:

  1. 访问此链接,找到第五楼或者点击这个链接下载 NAudio_MIDI_File_Converter.zip
  2. 解压并打开软件
  3. 软件上面的“Input Folder”和“Output Folder”是输入文件夹和输出文件夹的意思,将你要转换的MIDI文件放在一个文件夹中,在新建一个输出用的文件夹,让后两个项目分别点击“Browse…”并分别选择有MIDI的文件夹和输出文件夹
  4. “Output File Type”一定要选择TYPE0(这里的TYPE0实际上是TYPE1,反之亦然)
    image
  5. 点“Convert”按钮,等待完成
  6. 确认完成后的提示框中的“ERROR”项目为0
    image
  7. 打开输出文件夹即可找到转化完的MIDI

或者,如果你有DAW直接打开并用TYPE 1导出即可(话说有DAW了还用Domino吗…)

1 Like

不一定是MIDI TYPE 0的锅,也有可能是作者故意往一个轨道插入多个不同通道的事件导致的,这样子就很有可能无效了

1 Like

至于我那个打开部分MID文件就崩溃的原因是因为第三方库的问题,这个第三方库认为系统码的字节范围为0-127,但实际上系统码字节范围为0-255,故报错

1 Like

是的,我用了这个程序转还是不行,提示Error

那么老版本的Domino支持TYPE0吗

1.43是支持的,其他版本不知道