AVFoundation / AudioKit 播放低频声音会产生 click/pop
AVFoundation / AudioKit Playing a low frequency sound produces click/pop
我正在创建一种鼓垫应用程序,AKPlayer 似乎是 AudioKit 中用于播放我的样本的众多 类 中最好的。
问题是,当我开始播放低频(低音音符)样本时,播放样本时总是会发出咔哒声(或“砰砰声”)!
运行 来自 AudioKit Playgrounds 的未经修改的“混合节点”演示可以很容易地听到这一点。调低除低音以外的所有音量,您会注意到每次低音样本循环时都会发出咔哒声。
我也用 AVFoundation 测试了这个问题,也是如此。这只发生在低音等低频声音中。主音和其他声音不会产生这种声音。我还用自己的低音样本进行了测试,这里也出现了同样的问题。
这是两者的代码:
import AudioKitPlaygrounds
import AudioKit
import AVFoundation
//: This section prepares the players
let drumFile = try AKAudioFile(readFileName: "drum.wav")
let bassFile = try AKAudioFile(readFileName: "bass.wav")
let guitarFile = try AKAudioFile(readFileName: "guitar.wav")
let leadFile = try AKAudioFile(readFileName: "lead.wav")
var drums = AKPlayer(audioFile: drumFile)
var bass = AKPlayer(audioFile: bassFile)
var guitar = AKPlayer(audioFile: guitarFile)
var lead = AKPlayer(audioFile: leadFile)
bass.play() // will produce click/pop
guitar.play() // will not produce click/pop, only low frequency samples produce click
let path = Bundle.main.path(forResource: "3", ofType:"aac")!
let url = URL(fileURLWithPath: "path")
var bombSoundEffect = try AVAudioPlayer(contentsOf: bassFile.url)
bombSoundEffect.prepareToPlay()
// uncomment below for AVFoundation
// bombSoundEffect.numberOfLoops = -1
// bombSoundEffect.play()
我怎样才能摆脱这个 click/pop?
重做你的低音样本,让它开始和结束时都有些寂静。
为了避免循环时的咔嗒声和爆音,接缝处的值必须是连续的,即它们不能相差太多。他们的速度也需要匹配,不确定加速度。您可以通过将样本加载到内存中并将其乘以具有上述属性的曲线来轻松实现这一点。在开始时从 0 缓入到 1 然后在结束时退回的东西。
同时在声音编辑器中加载您的样本并检查开头和结尾。可能结尾剪得太尖了
我正在创建一种鼓垫应用程序,AKPlayer 似乎是 AudioKit 中用于播放我的样本的众多 类 中最好的。
问题是,当我开始播放低频(低音音符)样本时,播放样本时总是会发出咔哒声(或“砰砰声”)!
运行 来自 AudioKit Playgrounds 的未经修改的“混合节点”演示可以很容易地听到这一点。调低除低音以外的所有音量,您会注意到每次低音样本循环时都会发出咔哒声。
我也用 AVFoundation 测试了这个问题,也是如此。这只发生在低音等低频声音中。主音和其他声音不会产生这种声音。我还用自己的低音样本进行了测试,这里也出现了同样的问题。
这是两者的代码:
import AudioKitPlaygrounds
import AudioKit
import AVFoundation
//: This section prepares the players
let drumFile = try AKAudioFile(readFileName: "drum.wav")
let bassFile = try AKAudioFile(readFileName: "bass.wav")
let guitarFile = try AKAudioFile(readFileName: "guitar.wav")
let leadFile = try AKAudioFile(readFileName: "lead.wav")
var drums = AKPlayer(audioFile: drumFile)
var bass = AKPlayer(audioFile: bassFile)
var guitar = AKPlayer(audioFile: guitarFile)
var lead = AKPlayer(audioFile: leadFile)
bass.play() // will produce click/pop
guitar.play() // will not produce click/pop, only low frequency samples produce click
let path = Bundle.main.path(forResource: "3", ofType:"aac")!
let url = URL(fileURLWithPath: "path")
var bombSoundEffect = try AVAudioPlayer(contentsOf: bassFile.url)
bombSoundEffect.prepareToPlay()
// uncomment below for AVFoundation
// bombSoundEffect.numberOfLoops = -1
// bombSoundEffect.play()
我怎样才能摆脱这个 click/pop?
重做你的低音样本,让它开始和结束时都有些寂静。
为了避免循环时的咔嗒声和爆音,接缝处的值必须是连续的,即它们不能相差太多。他们的速度也需要匹配,不确定加速度。您可以通过将样本加载到内存中并将其乘以具有上述属性的曲线来轻松实现这一点。在开始时从 0 缓入到 1 然后在结束时退回的东西。
同时在声音编辑器中加载您的样本并检查开头和结尾。可能结尾剪得太尖了