#ios #swift #audiokit
#iOS #swift #audiokit
Вопрос:
Я совсем новичок в AudioKit. У меня есть AKPluckedString, который работает, но без изменений воспроизводится после .trigger в течение МНОГИХ секунд. Я хочу, чтобы он исчезал равномерно в течение примерно 2 секунд. Мне удалось выполнить приведенный ниже код, но он кажется довольно неуклюжим. Прежде чем я нашел этот метод, я исследовал использование AKAmplitudeEnvelope, amplitudeRange, rampTime и множество других возможностей. Как мне добиться этого с помощью инструментов AK?
Кроме того, AudioKit.io документы, похоже, не соответствуют тому, что у меня есть в моей платформе iOS, загруженной всего пару недель назад. Являются ли эти документы желательными? Старый?
string = AKPluckedString()
string.rampDuration = 1
AudioKit.output = string
try? AudioKit.start()
func pluck() -> Void {
string.trigger(frequency: 180, amplitude: 1.0)
DispatchQueue.main.asyncAfter(deadline: .now() 0.4) {
self.string.amplitude = 0.75
}
DispatchQueue.main.asyncAfter(deadline: .now() 0.8) {
self.string.amplitude = 0.5
}
DispatchQueue.main.asyncAfter(deadline: .now() 1.2) {
self.string.amplitude = 0.25
}
DispatchQueue.main.asyncAfter(deadline: .now() 1.6) {
self.string.amplitude = 0.0
}
}
XCode 11.7 iOS 13.6
Ответ №1:
Это было проще, чем я думал. Установите rampDuration на время затухания, затем просто измените амплитуду. Для перехода к новому aplitude требуется несколько секунд rampDuration.
pluckedString.rampDuration = 2.0
pluckedString.trigger(frequency: 440.0, amplitude: 2.0)
self.pluckedString.amplitude = 0.0