问题标签 [audiokit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - AudioKit AKSequencer 和 AKMIDISampler 计时不准确、卡顿和跳过
我正在尝试对具有机械节拍器精度的鼓机进行编程。理想情况下,它将能够以任何合理的速度(低于 180 BPM)演奏 16 分(或更好的 32 分)音符。
AudioKit 对于这样的东西来说似乎是一个非常好的库,但是我无法让它以任何适当的时间播放 wav 样本。下面的代码经常播放稍晚一点的节拍,给踩镲样本带来不必要的摇摆感觉,有时会出现断断续续或跳跃。鼓机必须具有坚如磐石的音乐节奏。
我在两部独立的 iPhone(iPhone 5 和 iPhone 6)、iPad 2 以及任何模拟器设备上都得到了相同的行为。
难道我做错了什么?或者有没有办法提高AKSequencer计时的准确性?
ios - 在 MIDI 目标或源更改时收到通知
当找到新的 MIDI 目的地/源或现有的断开连接时,有什么方法可以得到通知?
谢谢。
swift - 意外发现可选值的 nil - 但可选值不是 nil
我正在使用AudioKit来设置声音播放器。我的声音引擎设置在具有以下功能的单例中:
在一个单独的视图控制器中,我有一个播放按钮,按下时会调用以下函数:
当我按下此按钮时,应用程序崩溃并说rainPlayer 为零。我是不是设置错了什么?当我在 configureAudioPlayer() 函数中配置 rainPlayer 时,为什么它会为零?
更新:将单例移动到它自己的继承自 NSObject 的类中并在其 init() 函数中调用 configureAudioPlayer() 解决了我的问题。viewDidLoad() 方法中的 configureAudioPlayer() 从未被调用过。
ios - AudioKit 游乐场(错误:'使用 Swift 3.1 编译的模块无法导入 Swift 3.0.2')
我正在使用 Xcode8(版本 8.2.1)并与框架“AudioKit”(版本 3.7.1)一起正常工作,但是,但是!我无法打开文件“AudioKitPlaygrounds.xcodeproj”,因为我的 Swift 版本是“3.0.2”,但 Playground Project 的版本是 Swift“3.1”
错误
“使用 Swift 3.1 编译的模块无法在 Swift 3.0.2 中导入:/Users/macbookpro/Documents/XCODE/ AUDIOKIT /AudioKitPlaygrounds/AudioKitPlaygrounds/AudioKit.framework/Modules/AudioKit.swiftmodule/x86_64.swiftmodule”
我可以在我的 Xcode8 上更改 swift 版本??
ios - AudioKit FFT 转换为 dB?
第一次发帖,感谢广大社区!
我正在使用AudioKit
并尝试将频率加权滤波器添加到麦克风输入中,因此我试图了解来自 AudioKit AKFFTTap 的值。
目前我正在尝试仅打印转换为 dB 值的 FFT 缓冲区
我期望值在大约 -128 到 0 的范围内,但我得到了接近 -200dB 的奇怪值,当我对着麦克风吹气以确定读数时,它只达到大约 -60。我没有正确解决这个问题吗?我假设从 EZAudioFFT 引擎输出的值将是普通幅度值,并且正常的 dB 转换数学将起作用。有人有想法么?
在此先感谢您对此问题的任何讨论!
ios - 使用 AudioKit AKOfflineRenderNode 保存的文件不正确
我正在使用 AudioKit 将WAV
文件与MIDI
文件混合在一起。我还需要将结果保存在单独的文件中。
要混合 WAV 和 MIDI,我使用的AKMIDISampler
是AKSequencer
这样的:
我正在使用SongProcessor
AudioKit 示例中的示例来了解如何使用AKOfflineRenderNode
.
问题是该示例适用于AKAudioPlayer
实例,而不是我使用的排序器。我相信我不能使用播放器,因为我需要混合 WAV 和 MIDI 文件,而我只能使用音序器来实现。
我的第一个问题是:是否可以像在 SongProcessor 中使用播放器一样从音序器创建文件?
我能够保存一个m4a
文件,但结果很奇怪。首先,如果我不手动将速率设置为 40 之类的数字,则弹奏所有音符会非常慢。当我将 ti 设置为这样的值时,我可以听到正在播放的序列,但速率错误。在某些时刻,节拍播放正确,但它们经常在不同的时间开始播放太慢或太快。
有什么我做错了吗?这是 AKOfflineRenderNode 的一个错误,还是只是不打算这样使用?
这是我用来将混音保存到磁盘的代码:
很感谢任何形式的帮助。我似乎无法让它工作,遗憾的是我不知道 iOS 中有任何其他选项可以实现我所需要的。
ios - SceneKit / ARKit 中的位置音频与 AudioKit
我一直在探索 Scene Kit / ARKit 中的位置音频,并想看看是否可以在这种情况下使用 AudioKit 来从其更高级别的分析、声音生成、效果等工具中受益。
对于某些背景,SCNView 带有一个 AVAudioEnvironmentNode、一个 AVAudioEngine 和一个 audioListener (SCNNode)。这些属性已初始化,环境节点已配置到引擎。位置音频源通过 SCNAudioPlayer 添加到场景中,可以使用 AVAudioNode 进行初始化 - AVAudioNode 必须连接到环境节点并具有单声道输出。
然后将 SCNAudioPlayer 添加到场景中的 SCNNode 并根据其在场景中的位置以及 audioListener 节点的位置和方向自动负责修改 AVAudioNode 的输出。
我希望可以使用 SCNView 的 AVAudioEngine 属性初始化 AudioKit,在引擎的节点图中配置 SCNView 的环境节点,使用 AKNodes 的 AVAudioNode 属性来初始化 SCNAudioPlayers,并确保所有源正确连接到环境节点. 我已经开始修改 AudioKit 源代码,但无法弄清楚我需要适应哪些类以及如何将环境节点集成到 AudioKit 管道中。特别是我无法理解 connectionPoints 和 outputNode 属性。
鉴于 AudioKit 的结构或对方法有任何指示,是否有人认为这可能是不可能的?
我当然很乐意分享我的任何发现。
swift - AudioKit 点击跳过时间间隔
我正在构建一个使用麦克风输入来检测声音和触发事件的应用程序。我的代码基于 AKAmplitudeTap,但是当我运行它时,我发现我只获取了缺少部分的间隔的样本数据。
Tap 代码看起来像这样(去掉了胆量,只是跟踪将处理多少个样本):
我初始化水龙头:
原始的点击代码将样本捕获到缓冲区,但我看到缓冲区大小为 1024 时丢失了大量时间。我怀疑样本缓冲区的处理时间可能过长,所以......
我简化了代码以简单地跟踪有多少样本被传递到水龙头。在代码的另一部分,我简单地打印出 sampleCount/elapsedTime,并且如“bufferSize”之后的注释中所述,我每秒得到不同数量的样本。
使用 16K 缓冲区的采样率收敛到 43.1 KSamples/sec,并且使用 1K 缓冲区仅收集大约 20% 的样本。我更喜欢使用较小的缓冲区大小来获得对检测到的声音的近实时响应。在我写这篇文章时,4K 缓冲区版本一直在运行,并稳定在 39678 样本/秒。
我错过了什么吗?一个小缓冲区大小的抽头实际上可以捕获 44.1 Khz 的样本数据吗?
ios - 尝试在 Audiokit 中使用 AKMIDISampler 调试神秘的正弦波
继上一期之后,我停止使用AKSampler
,转而使用AKMIDISampler
. 让我的循环再次工作(在此Google Groups 帖子的帮助下),但我正在播放正弦波(当 MIDISampler 找不到它的源文件时会发生这种情况)。
这不是我定位的源文件的问题,因为它们都可以正常播放。正弦波来自过程中的其他地方,但我看不出在哪里......
请帮忙 8•)
(经过简化和编辑的代码仅显示相关详细信息 - 请联系以获取任何说明)
ios - AVAudioUnitSampler 在耳机路由更改后生成正弦波,iOS 11 iPhone
使用 AVAudioUnitSampler 时,我在 iPhone (iOS 11) 上遇到了一个奇怪的问题。
假设我有一个用钢琴声音初始化的 AVAudioUnitSampler。所以,每次我连接或断开耳机时,我都会听到钢琴声加上一个正弦波音,我连接/断开耳机的次数越多,声音就越大。
所以,对我来说,每次插入/拔出耳机时,都会有一个新的音频单元采样器在内部连接到声音输出(并且,由于它未初始化,它只生成正弦波音调)。
下面的类已经显示了这个问题。请注意,我正在使用AudioKit来处理 MIDI 信号并触发采样器(尽管在那一端似乎一切正常,即startNote()
并且stopNote()
被正确调用):
我已经分叉了 AudioKit,并用一个可以重现此问题的最小项目替换了 HelloWorld 示例。
此外,我无法在 iOS 9.3 和 11 下的 iPad 上重现此问题,因此这可能是 iPhone 特有的问题。
任何有关如何继续调试的帮助或建议都将非常受欢迎,我对此感到非常困惑,而且我并不是 iOS 音频开发方面的专家。
谢谢!