如何解决使用 OperationGenerators 作为模块化块
我知道标题很奇怪吧? 快速说明我使用的是 V5 升级之前的 Audiokit 版本。 TL:DR - 如何让 AKOperationGenerator 产生控制信号在另一个 AKOperationGenerator 中作为 AKParameter 工作?
想法是因为我的声音需要一次更改超过 14 个参数。
有一个自定义 FM 解决方案,因为我发现包含的 AKOperations 限制。
osc = AKOperationGenerator { p in
let modulator = AKOperation.morphincOscillator(frequency:p[2],amplitude:p[3],index:p[1])
let carrier = AKOperation.morphingOscillator(frequency: p[4].midiNoteToFrequency() * (1+moulator),amplitude:1,index: p[0])
return carrier
}
但是我希望能够以这种样式为输出分配一个信封:
ampEnv = AKOperationGenerator { p in
let output = AKOperation.init(1).gatedADSREnvelope(gate:p[0],attack:p[1],decay:p[2],sustain:p[3],release:p[4])
return output
}
然后有类似的东西:
Synthvoice = AKOperationEffect([osc,ampEnv]),{[osc,ampEnv],p in
let output = generator * ampEnv
return output
}
AudioKit.output = output
基本上使用 AKOperationEffect 的多个输入,以便您可以使用多个源进行调制,或者能够使用 AKOperation 中的 AKBooster/其他位。
我尝试创建一个自定义函数来充当幅度包络,但无法弄清楚如何将其作为 ComputedParameter 将其包含在处理中。
我已经在 1 个 Operation Generator 中尝试了所有这些,但是我有 16 个参数需要用户更改,另外我喜欢音频信号和控制信号在单独的块中的想法。
干杯(顺便说一句,我对 AudioKit 还很陌生,如果我问的任何问题只是亵渎的话,我很抱歉) 还应该注意,我已经在代码的后面设置了输出和启动命令,所以不用担心。主要只是关于 AKOperationGenerators 之间的互操作性以及如何让它们相互交互的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。