Usando efeitos sonoros com o AudioEngine
Histórico - Vi um vídeo intitulado "AVAudioEngine in Practice" da lista de vídeos a seguir publicada na recente WWDC da Apple para aplicar efeitos sonoros a um áudio.https://developer.apple.com/videos/wwdc/2014/
Depois disso, consegui alterar o tom de um áudio com o seguinte código:
//Audio Engine is initialized in viewDidLoad()
audioEngine = AVAudioEngine()
//The following Action is called on clicking a button
@IBAction func chipmunkPlayback(sender: UIButton) {
var pitchPlayer = AVAudioPlayerNode()
var timePitch = AVAudioUnitTimePitch()
timePitch.pitch = 1000
audioEngine.attachNode(pitchPlayer)
audioEngine.attachNode(timePitch)
audioEngine.connect(pitchPlayer, to: timePitch, format: myAudioFile.processingFormat)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: myAudioFile.processingFormat)
pitchPlayer.scheduleFile(myAudioFile, atTime: nil, completionHandler: nil)
audioEngine.startAndReturnError(&er)
pitchPlayer.play()
}
Pelo que entendi, usei o AudioEngine para anexar o AudioPlayerNode ao AudioEffect, que, por sua vez, anexei à Saída.
Agora estou curioso para adicionar vários efeitos sonoros ao áudio. Por exemplo, mudança de tom E reverb. Como eu adicionaria vários efeitos sonoros ao áudio?
Além disso, faria sentido anexar e conectar os nós no viewDidLoad, em vez de como eu o fiz aqui em uma IBAction?