我刚开始使用AudioKit。我想保持简单。我想制作一些UIButtons(C,D,E,F,...),然后让它们播放相应的钢琴样本。但是,我不明白如何正确准备样本文件。
我找到了这个例子:
let sampler = AKSampler()
sampler.loadWav("Sounds/fmpia1")
let ampedSampler = AKBooster(sampler, gain: 3.0)
var delay = AKDelay(ampedSampler)
delay.time = pulse * 1.5
delay.dryWetMix = 0.0
delay.feedback = 0.0
let cMajor = [72, 74, 76, 77, 79, 81, 83, 84]
var mix = AKMixer(delay)
var reverb = AKReverb(mix)
AudioKit.output = reverb
AudioKit.start()
for note in cMajor {
sampler.playNote(note)
sleep(1)
}
我的理解:加载采样器和数字(72,74,...)是音符的MIDI信号。
但是:采样器如何知道要播放什么?样本“fmpia1”是否包含所有注释?它只是一个样品,但AKSampler会自动推出吗?但那么AKSampler如何知道样品的注意事项呢?不应该通知AKSampler文件中的样本,假设是F#?所以他可以相应地投球吗?
我对此非常困惑。我希望你能理解我的问题是什么。
提前感谢您的帮助!
答案 0 :(得分:3)
AKSampler(和AKMIDISampler)在内部使用Apple的AVAudioUnitSampler。 AVAudioUnitSampler正在播放和播放根音。如果您查看AVAudioUnitSampler loadAudioFiles(at :)(https://developer.apple.com/documentation/avfoundation/avaudiounitsampler/1388631-loadaudiofiles)的文档,您将看到它为每个音频文件创建一个新区域,并使用音频文件中的元数据来尝试正确映射它。如果根音符在文件名中(例如 - ViolinC4),它也可以采用快捷方式。
所以,直接回答你的问题: