第一次发帖,感谢伟大的社区!
我正在使用AudioKit并尝试将频率加权滤波器添加到麦克风输入中,因此我试图理解AudioKit AKFFTTap中出现的值.
目前我正在尝试将FFT缓冲区转换为dB值
for i in 0..<self.bufferSize {
let db = 20 * log10((self.fft?.fftData[Int(i)])!)
print(db)
}
Run Code Online (Sandbox Code Playgroud)
我期待的值在-128到0的范围内,但是我得到了近-200dB的奇怪值,当我用麦克风吹出读数时它只能达到-60左右.我没有正确接近这个吗?我假设从EZAudioFFT引擎输出的值将是普通的幅度值,并且正常的dB转换数学将起作用.有人有主意吗?
提前感谢您对此问题的任何讨论!
我一直在探索Scene Kit/ARKit中的位置音频,并希望看看在这种情况下是否可以使用AudioKit从其更高级别的分析,声音生成,效果等工具中受益.
对于某些背景,SCNView附带AVAudioEnvironmentNode,AVAudioEngine和audioListener(SCNNode).这些属性已初始化,环境节点已配置到引擎.位置音频源通过SCNAudioPlayer添加到场景中,SCNAudioPlayer可以使用AVAudioNode进行初始化 - AVAudioNode必须连接到环境节点并具有单声道输出.
然后将SCNAudioPlayer添加到场景中的SCNNode,并根据其在场景中的位置以及audioListener节点的位置和方向自动修改AVAudioNode的输出.
我希望可以使用SCNView的AVAudioEngine属性初始化AudioKit,在引擎的节点图中配置SCNView的环境节点,使用AKNodes的AVAudioNode属性初始化SCNAudioPlayers,并确保所有源正确连接到环境节点.我已经开始修改AudioKit源代码,但是无法确定我需要调整哪些类以及如何将环境节点集成到AudioKit管道中.特别是我无法理解connectionPoints和outputNode属性.
有没有人相信这可能是不可能的,因为AudioKit是如何构建的,或者有关于方法的任何指示?
我当然乐意分享我的任何发现.
我目前正在使用以下方法来播放歌曲中的词干:
我的问题是:有没有办法自动创建此MIDI文件。我知道词根的数量和歌曲的持续时间;如何动态创建Audiokit启用AKSequencer所需的MIDI文件?
任何关于此的想法或想法都非常受欢迎,因为在添加新歌曲时,它将节省大量的手工工作。谢谢!
我是Audiokit的新手。我想可视化正在运行的AKSequencer的当前位置。是否可以连接任何回调(例如AKMetronome中的回调)或侦听器或正在运行的根时钟/主循环?还是应该使用以任何方式“触发” GUI的AKCallbackInstrument?
有谁想分享吗?谢谢!
我想在给定频率下使用AudioKit振荡器播放非常基本的声音.
例如:以400Hz播放简单的正弦波50毫秒,然后播放100毫秒的静音,然后播放600Hz达50ms ......
我有一个金属视图,我在那里渲染一些视觉刺激.我的目的是使用基本的AKOscillator和CADisplayLink的渲染功能来播放/停止某些帧的声音.
我尝试使用oscillator.play()和oscillator.stop()或改变振幅oscillator.amplitude = 0和oscillator.amplitude = 1,但结果在这两种情况下是约10毫秒的抖动.
如果我首先创建.wav文件然后播放它们AKPlayer.play()的时机是正确的.
我希望可以随时灵活地使用任何频率.我该如何做与第一种方法类似的事情?将振荡器包装在midi乐器中是可行的方法吗?
我正在尝试在多个音频文件播放项目中使用AKSamplerMetronome作为主时钟。我希望AKPlayers与Metronome的悲观同步开始。将AKPlayer和AKSamplerMetronome混合为AudioKit.output成功,但是,我正在努力将AKPlayer.start与AKSamplerMetronome.beatTime连接(或其他我尚未弄清的东西),因此播放从节拍器的同步降落开始(并重复每次节拍器击倒的时间)。这是我写的:
class ViewController: UIViewController {
let metronome = AKSamplerMetronome()
let player = AKPlayer(audioFile: try! AKAudioFile(readFileName: "loop.wav"))
let mixer = AKMixer()
func startAudioEngine() {
do {
try AudioKit.start()
} catch {
print(error)
fatalError()
}
}
func makeConnections() {
player >>> mixer
metronome >>> mixer
AudioKit.output = mixer
}
func startMetronome() {
metronome.tempo = 120.0
metronome.beatVolume = 1.0
metronome.play()
}
func preparePlayer() {
player.isLooping = true
player.buffering = .always
player.prepare()
// I wanted AKPlayer to be repeated based on Metronome's downbeat.
} …Run Code Online (Sandbox Code Playgroud) 我有一个问题,如果我正好在麦克风前面,我 6s 上的麦克风只会给我一个输出。我想更改灵敏度,以便它甚至可以从几英尺的距离读取频率。
这是我初始化 AKMicrophone 的方式:
AKSettings.audioInputEnabled = true
mic = AKMicrophone()
tracker = AKFrequencyTracker.init(mic)
silence = AKBooster(tracker, gain: 0)
Run Code Online (Sandbox Code Playgroud) 当我想使用 AudioKit 构建振荡器时,有不同的方法可以选择。例如,您可以在 AKOperationGenerator 中创建 AKOperation,如下所示
var osc = AKOperationGenerator { parameters in
returnAKOperation.sawtoothWave(frequency: GeneratorSource.frequency)
)
Run Code Online (Sandbox Code Playgroud)
但你也可以创建一个
var oscillator = AKOscillator(waveform: AKTable(.sawtooth))
Run Code Online (Sandbox Code Playgroud)
有什么区别以及何时选择什么?谢谢!
我正在尝试使用 AudioKit 的 AKPlayer 同步播放 4 个 mp3 文件,并且非常成功。不过,作为我的 Swift 研究的一部分,我想使用数组(或我还没有学到的东西)来简化我的代码,因为我觉得我的代码中有一些多余的东西,只是简单地复制了四次播放器代码。下面是我写的代码:
let file1 = try? AKAudioFile(readFileName: "mixing_1_vocal.mp3")
let file2 = try? AKAudioFile(readFileName: "mixing_2_drums.mp3")
let file3 = try? AKAudioFile(readFileName: "mixing_3_synth.mp3")
let file4 = try? AKAudioFile(readFileName: "mixing_4_bass.mp3")
let player1 = AKPlayer(audioFile: file1!)
let player2 = AKPlayer(audioFile: file2!)
let player3 = AKPlayer(audioFile: file3!)
let player4 = AKPlayer(audioFile: file4!)
let startTime = AVAudioTime.now() + 0.25
let mixer = AKMixer()
player1 >>> mixer
player2 >>> mixer
player3 >>> mixer
player4 >>> mixer
player1.isLooping = true …Run Code Online (Sandbox Code Playgroud) 我试图AudioKit.start()在我的viewDidAppear方法中运行,但出现以下错误:
Module 'AudioKit' has no member named 'start'
Run Code Online (Sandbox Code Playgroud)
我的 pod 文件包括:
pod 'AudioKit', '~> 4.0'
pod 'AudioKit/Core', '~> 4.0'
pod 'AudioKit/UI', '~> 4.0'
Run Code Online (Sandbox Code Playgroud)
我正在导入:
import AudioKit
import AudioKitUI
Run Code Online (Sandbox Code Playgroud)
我在 Xcode 12.0.1 上。谢谢!
audiokit ×10
ios ×7
swift ×7
audio ×4
akoscillator ×1
aksequencer ×1
arkit ×1
fft ×1
midi ×1
scenekit ×1