我最近在做一个MIDI文件,MIDI还没做完,16个MIDI通道先用光了。
有什么好的缓解方法吗?
如何缓解MIDI通道(Channel)用完的问题
首先轨道和通道不一样,这是一点
比如format0因为本身硬件带宽限制,所以只能使用16条channel
但这个问题放在format1或者是现代midi编辑全是软件的情况,那还能有什么限制(无非就是电脑放黑乐谱卡死了)
虽然说是可以随便塞,但是track发送掉那一条channel,依旧还是只能使用那条同样通道上同样的音色
本人在这些帖子讲的都杂,总结一点就是无论多少轨都能塞,但是音色你最多只能使用16条
看编排能力,乐谱上叠轨道真没必要了
下图为测试(可点开查看)
上图共有38条track,平均分配到两条channel
这点无论是在以前的测试,也一样
可能这个功能的实际价值不高,但平时使用该功能运输钢琴乐谱(理论上没上限)
真是够方便了
附件:
虽然在track模式下我的软件可以单独调整每个声部(track)的音量大小,但是我猜这只是这个软件的设计。
按照正常情况来说,绝对会按照映射channel第1条track的音色信息往下走。(所以还是保持原话,音色还是只能使用16种,请考虑一番分配)
正常情况,播放器也不会显示那么多track
所以动一条通道里的音轨音量推子,按道理来说牵一发而动全身(该通道里的所有音轨都会一起动)
所以猜以上只是软件的设计,正常情况应该调不出这种参数(想搞弦乐多声部的尽快止步)
楼上分析很到位,这里补一下个人的一些拙见
音轨理论上可以有无限个,但通道只有16个给你造
在不追求绝对还原原曲的情况下,想要活用这16个通道,一句话
PC实际上就是“音色库选择”,至少谜底手的自动简介里是这么写的,就是给通道换音色用的
这样每个通道理论上也能有很多个音色了,在不“捏”音色的情况下16条通道绝对够用,轨道就另说了。所以通道和轨道是有明显区别的。
综上,准确来说,是只能同时使用16种
问题本就不存在,更何谈缓解呢?
给个小小的例子:
顺便打个广告(
如果帖主没有特殊需求(比如必须搞成MIDI)的话还是建议用XM或者IT格式作曲,优点是可以自定义音色,什么样的音色都能塞,没有像声部“缺斤少两”的情况,缺点就是32条轨道上限。这是个把XM的轨道全部以最大限度用的作品(作者不是我)
这其实以前就说过,tracker文件本身并不透明也存在编译识别的难度(说人话就是不好转换,脱离某款软件后)
或许现在有openMtp会好一点,但在以前是一点办法都没有的(我只开放一个规范,那时候又没有什么开源概念)
ps:.mid看我像不像规范(GM),Roland(GS).Yamaha(XG)
反正早期的大概都是这样了
如果遇到下面这种情况,还要去专门下他的软件
这图上说的改标准就理解为是GS和XG,早年如果不买他们的设备,那么就算放到其他正常设备上播也会出问题。(那时候能有什么软件播放器,支持他们的私人格式)
这图上面我觉得说错了,xm你都可以理解成一个小型序器作曲软件(daw),又能塞采样又能塞音符。
midi 128说限制那未必,有些时候找不到自己想用的乐器只是想点开就用。好了说实话,128个涉及世界各地的乐器这挺多的了(基本上都能盖全,主要图的是方便省事,快捷作曲,重心肯定就不是音色设计)
总结不方便编辑(就算是起openmtp,软件界面也要适应)
一定要保留采样流采样流也可以像rpgmaker(mid+soundfont)
或许放现在,这样做已经很容易了
最后,追踪器音乐与mid本来开发的意义就不同。
这两个放一起对比,似乎没什么必要
追加:
那为什么mid早年都上了那么久,还是有人坚持使用xm
那这很好说,早期要用mid就必须要有音源(mt-32什么的…选一个呗) 成本就不如老老实实做xm来的便宜(可能持续到后面音源降价;稍微好转了点)
不过还是嘴太笨不说了,有兴趣可以读读以下这篇文章(现在完全脱离主题了感兴趣去看可以)
感谢大佬们的回复,经过我的测试,我总结出了以下方法:
- 如果某些轨道不会相互冲突(例如:任何时刻都没有音符碰撞),可以让这些轨道都使用同一通道
- 可以使用Program Change和Bank Select事件更改通道乐器
- 如果不能再优化了,则只能用MIDI Port或Port Name元事件来使用新的端口,或者使用MIDI 2.0
midi2这应该改个名字midi1.5或ex(按照他们的说法就是完全的拓展;没什么功能性更新)
mid带来的屎山也实在是不好改(特别是功能变动),虽然cc控制器有好多个未定义,但是总之应该是没有更新的(基本功能完全就和1.0一样,只是一个ex不用想太多了)
@Libamidi 你还是好好编排一下乐谱规模,同时使用16个音色已经是定数了。
如果这么搞的话还需要做两个mid,学会优化乐谱也是作midi的一环(尽管平时可能16条通道都用不满)
换个理解,钢琴弹左右手分轨需要发到同一条通道。弦乐多声部也需要这么干
并不是说有没有冲突(有不同的轨道,用同一个音色也可以这么干,但是我如果想让声场变宽点,这就不行了。肯定还是要用两个通道)
不过在播放途中改变PC确实也常见了(前几个音符弹的是钢琴,后面改笛子如何)
但也仅限于这个时间轴所有通道中间还有空隙,毕竟可能音乐是好听的但谱子(工程文件)很难看。或许是真的




