You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

AudioKit各类采样器是否支持同音符重叠复音(同一MIDI音符触发两次)?

AudioKit各类采样器是否支持同音符重叠复音(同一MIDI音符触发两次)?

哈哈,这个问题我之前做音序器的时候也踩过坑!其实这几个采样器不是不支持同音符重叠,只是默认配置会让同个音符触发时“抢”掉之前的声音,改一下设置就能搞定~ 下面给你逐个说:

  • DunneAudioKit Sampler:它默认是单音复用同个发声通道的,所以同音符连续触发会直接切断上一个。你只要把它的polyphony参数调高点(比如设成8或者16,看你需要多少层重叠),同时别开强制单音的模式,触发的时候让它允许为同音符新建发声通道,就能实现重叠播放了。有些版本里得手动开启“允许同音符多voice”的选项,你可以去翻下它的初始化配置项。
  • MIDISampler:它是基于系统的AUSampler封装的,默认逻辑也是同音符复用通道。要改的话,初始化的时候得配置它的AU属性:比如把kAUSamplerProperty_Polyphony对应的复音数值调高,同时关掉kAUSamplerProperty_SingleNote这类单音相关的开关。另外要注意,每次触发同音符的时候,得发完整的note on消息,别提前给前一个发note off——毕竟你要的是重叠,前一个还在播放呢。
  • AppleSampler:和MIDISampler路子差不多,也是封装了系统采样器内核,默认同音符会抢占。你直接用setPolyphony(_:)方法把复音数设够(比如至少2以上,要几层重叠就设对应数值),同时确认没开单音模式,这样同音符触发两次的时候,它就会分配新的发声通道,两个声音就能同时响了。

给你提个小醒:

比如你测试的场景:0.0s发note on 69(力度127),0.5s再发一次note on 69,这时候采样器的复音数必须≥2,不然还是会抢音。另外如果你的采样音频本身没有释放段(比如短音),可能听起来还是像被切断,但实际上是两个音叠在一起了,你可以用带长释放的采样测试更明显。

总的来说,这三个采样器都支持同音符重叠复音,只是默认配置偏向于复用通道节省资源,调对参数就能实现你要的效果啦!

火山引擎 最新活动