存在 AKMicrophone 时来自 AKMIDISampler 的连续正弦波
Continuous Sine Wave From AKMIDISampler when AKMicrophone is Present
当存在已初始化的 AKMicrophone 时,我在项目中使用 AKMIDISampler 时遇到问题。除了在采样器上调用“播放”时正确播放木版样本外,第一次“播放”被称为恒定正弦波开始播放 - 它永远不会停止。
我已经用下面最少量的代码复制了这个问题。当初始化 class 然后调用 playTestSample() 时会发生问题。
请注意,如果与 AKMicrophone 相关的代码全部静音,AKMIDISampler 可以正常播放,并且不会出现目前困扰我梦想的正弦波。
(我尝试切换到使用 AKSampler() 只是为了看看问题是否存在,但我无法从中得到任何声音)。
Fyi:我在 info.plist 的“所需背景模式”中有“应用程序使用 AirPlay 播放音频或流媒体 audio/video”——这可以解决另一个正弦波问题。
非常感谢您的帮助。
顺便说一句:AudioKit 非常棒,对这个项目提供了巨大的帮助! :^)
AK 4.5.4
Xcode10.1
import Foundation
import AudioKit
class AudioKitTESTManager {
var mixer = AKMixer()
var sampler = AKMIDISampler()
var mic = AKMicrophone()
var micMixer = AKMixer()
var micBooster = AKBooster()
init() {
mixer = AKMixer(sampler, micBooster)
do {
let woodblock = try AKAudioFile(readFileName: RhythmGameConfig.woodblockSoundName)
try sampler.loadAudioFiles([woodblock])
} catch {
print("Error loading audio files into sampler")
}
micMixer = AKMixer(mic)
micBooster = AKBooster(micMixer)
micBooster.gain = 0.0
AudioKit.output = mixer
AKSettings.playbackWhileMuted = true
AKSettings.defaultToSpeaker = true
AKSettings.sampleRate = 44100
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
}
func playTestSample() {
// You hear the sample and a continuous sine wave starts playing through the samplerMixer
try? sampler.play(noteNumber: 60, velocity: 90, channel: 1)
}
}
哇哦。我相信我已经找到了解决方案。也许它会帮助别人?
似乎在 AudioKit.start() 之后将文件加载到采样器中修复了恐怖的正弦波!
//..
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
do {
let woodblock = try AKAudioFile(readFileName: RhythmGameConfig.woodblockSoundName)
try sampler.loadAudioFiles([woodblock])
} catch {
print("Error loading audio files into sampler")
}
当存在已初始化的 AKMicrophone 时,我在项目中使用 AKMIDISampler 时遇到问题。除了在采样器上调用“播放”时正确播放木版样本外,第一次“播放”被称为恒定正弦波开始播放 - 它永远不会停止。
我已经用下面最少量的代码复制了这个问题。当初始化 class 然后调用 playTestSample() 时会发生问题。
请注意,如果与 AKMicrophone 相关的代码全部静音,AKMIDISampler 可以正常播放,并且不会出现目前困扰我梦想的正弦波。
(我尝试切换到使用 AKSampler() 只是为了看看问题是否存在,但我无法从中得到任何声音)。
Fyi:我在 info.plist 的“所需背景模式”中有“应用程序使用 AirPlay 播放音频或流媒体 audio/video”——这可以解决另一个正弦波问题。
非常感谢您的帮助。
顺便说一句:AudioKit 非常棒,对这个项目提供了巨大的帮助! :^)
AK 4.5.4 Xcode10.1
import Foundation
import AudioKit
class AudioKitTESTManager {
var mixer = AKMixer()
var sampler = AKMIDISampler()
var mic = AKMicrophone()
var micMixer = AKMixer()
var micBooster = AKBooster()
init() {
mixer = AKMixer(sampler, micBooster)
do {
let woodblock = try AKAudioFile(readFileName: RhythmGameConfig.woodblockSoundName)
try sampler.loadAudioFiles([woodblock])
} catch {
print("Error loading audio files into sampler")
}
micMixer = AKMixer(mic)
micBooster = AKBooster(micMixer)
micBooster.gain = 0.0
AudioKit.output = mixer
AKSettings.playbackWhileMuted = true
AKSettings.defaultToSpeaker = true
AKSettings.sampleRate = 44100
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
}
func playTestSample() {
// You hear the sample and a continuous sine wave starts playing through the samplerMixer
try? sampler.play(noteNumber: 60, velocity: 90, channel: 1)
}
}
哇哦。我相信我已经找到了解决方案。也许它会帮助别人?
似乎在 AudioKit.start() 之后将文件加载到采样器中修复了恐怖的正弦波!
//..
do {
print("Attempting to start AudioKit")
try AudioKit.start()
} catch {
AKLog("AudioKit did not start!")
}
do {
let woodblock = try AKAudioFile(readFileName: RhythmGameConfig.woodblockSoundName)
try sampler.loadAudioFiles([woodblock])
} catch {
print("Error loading audio files into sampler")
}