Tratando de build un afinador simple

Estoy intentando build un afinador simple o alguna aplicación simple que grabe un sonido y luego devuelva la frecuencia del sonido. Esto podría usarse para encontrar la nota del sonido (como en un sintonizador de guitarra), pero en su mayor parte estoy buscando simplemente grabar un sonido y hacer que la aplicación devuelva la frecuencia del sonido. ¿Alguien podría señalarme en la dirección correcta con respecto a esto? He leído algunas cosas sobre FFT u otras cosas, pero soy un poco un novato. Miré por google, pero no pude encontrar mucho sobre esto, pero alguien habló de una aplicación que hicieron y un código que no tengo idea de qué hacer.

De acuerdo, ahora mismo estaba buscando algo que podría ayudar: http://audiokit.io/ . Esta podría ser la solución simple, pero tampoco estoy seguro si esto es lo que haría la mayoría de la gente.

Así que he logrado importar el audiokit. El problema es que no puedo hacer que el código funcione para mostrar la frecuencia cuando se hace un sonido. Aquí está el código

import UIKit import AudioKit class ViewController: UIViewController { @IBOutlet weak var frequencyLabel: UILabel! let mic = AKMicrophone() override func viewDidAppear(animated: Bool) { } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib let tracker = AKFrequencyTracker.init(mic, minimumFrequency: 200, maximumFrequency: 2000) var silence = AKBooster(tracker, gain: 0) AudioKit.output = silence AudioKit.start() if tracker.amplitude > 0.1 { frequencyLabel.text = String(format: "%0.1f", tracker.frequency) } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 

Está bien, así que lo descubrí … Me faltaban muchas cosas como parte del kit. La razón es que desde el website audio.io seguí esas instrucciones, pero hay un montón de otras cosas que se incluyen en el ejemplo cuando descarga el kit de audio real. Aquí está mi código para hacer la cosa de la frecuencia simple. ¡¡¡¡Funciona!!!!

 import UIKit import AudioKit class ViewController: UIViewController { @IBOutlet weak var frequencyLabel: UILabel! var mic: AKMicrophone! var tracker: AKFrequencyTracker! var silence: AKBooster! override func viewDidLoad() { super.viewDidLoad() AKSettings.audioInputEnabled = true mic = AKMicrophone() tracker = AKFrequencyTracker.init(mic, minimumFrequency: 200, maximumFrequency: 2000) silence = AKBooster(tracker, gain: 0) } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) AudioKit.output = silence AudioKit.start() NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: #selector(ViewController.updateUI), userInfo: nil, repeats: true) } func updateUI() { if tracker.amplitude > 0.1 { frequencyLabel.text = String(format: "%0.1f", tracker.frequency) } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }