AudioKit Применить усиление к буферу Mono PCM

#audiokit

#audiokit

Вопрос:

У меня есть монофонический аудиофайл. Который я открываю и пытаюсь применить усиление с помощью следующего кода:

 let inputFile = try! AVAudioFile(forReading: url)
let settings = inputFile.fileFormat.settings
let outputFile = try! AVAudioFile(forWriting: outputURL, settings: settings)
let sourceBuffer = try! AVAudioPCMBuffer(file: inputFile)

let engine = AudioEngine()
let player = AudioPlayer()
let compressor = Compressor(player)
compressor.masterGain = AUValue(gain)

engine.output = compressor

compressor.start()

do {
    try engine.start()
    player.start()
    player.scheduleBuffer(sourceBuffer!, at: nil, options: [], completionHandler: nil)
    try engine.renderToFile(outputFile, duration: inputFile.duration)
} catch {
    completion(.failure(error))
}
  

player.scheduleBuffer сбой со следующим исключением:

 *** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: _outputFormat.channelCount == buffer.format.channelCount'
terminating with uncaught exception of type NSException
  

Но как мне установить правильное количество каналов?

Я уже пробовал Settings.audioFormat = inputFile.fileFormat или Settings.audioFormat = sourceBuffer!.format перед инициализацией AudioEngine . Те же результаты.

Я ценю любую помощь. Спасибо.