作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一种鼓垫应用程序,看起来 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()
我怎样才能摆脱这种点击/弹出?
最佳答案
重新制作您的低音样本,使其开始和结束时都保持沉默。
为了避免循环时的咔嗒声和爆裂声,接缝处的值必须是连续的,即它们不能相差太大。它们的速度也需要匹配,不确定加速度。您可以通过将样本加载到内存中并将其乘以具有上述属性的曲线来轻松实现这一点。在开始时从 0 到 1 缓和然后在结束时返回的东西。
还要在声音编辑器中加载您的样本并检查开头和结尾。也许结局被截断得太厉害了。
关于ios - AVFoundation/AudioKit 播放低频声音会产生咔嗒声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66790214/
我是一名优秀的程序员,十分优秀!