AudioKit v5 使用多个 Tap

Posted

技术标签:

【中文标题】AudioKit v5 使用多个 Tap【英文标题】:AudioKit v5 using multiple Taps 【发布时间】:2021-08-26 19:29:02 【问题描述】:

我希望能够从我的 AudioPlayer 中获取幅度和频谱数据,但由于每个节点只能点击一次,我不确定如何在 AudioKit 5 中实现这一点

player = AudioPlayer(file: fileToPlay)!
fftTap = FFTTap(player, bufferSize: 4096, handler:  _ in )
ampTap = AmplitudeTap(player)
ampTap.analysisMode = .peak

do

    try engine.start()
    fftTap.start()     // installs this tap on the player bus
    ampTracker.start() // removes the fftTap and installs this one
 
 catch
 
    print("Could not start engine: %\(error)")
    return

【问题讨论】:

【参考方案1】:

这实际上很简单,只需创建多个节点,它们只是数据的副本,然后分别点击它们。应该这样做:

player = AudioPlayer(file: fileToPlay)!
let playerCopy = Mixer(player)
fftTap = FFTTap(player, bufferSize: 4096, handler:  _ in )
ampTap = AmplitudeTap(playerCopy)
...

【讨论】:

工作得很好,谢谢!我一开始就把它搞砸了,因为我还有engine.output = player。不得不将其更改为engine.output = playerCopy

以上是关于AudioKit v5 使用多个 Tap的主要内容,如果未能解决你的问题,请参考以下文章

AudioKit 多个 AKMIDISampler

Audiokit Midi 多个虚拟端口

超级表格清单 Tap Forms 5 v5.2.3 MacOSX

一个页面多个Tap切换的使用

在 Pail Tap Hadoop 作业中为输入指定多个文件夹

在 AudioKit 中“重新触发”Midi 音符