J'essaie d'écrire une application de musique où la détection de la hauteur est le noyau de tout cela. J'ai vu des solutions à ce problème ainsi que des applications sur l'AppStore. Cependant la plupart d'entre eux sont assez datés et j'aimerais faire ceci est Swift. J'ai regardé AVAudioEngine comme un moyen de le faire, mais je trouve la documentation manquante ou peut-être que je n'ai pas regardé assez dur.Est-il faisable d'utiliser AVAudioEngine pour détecter la hauteur en temps réel?
Ce que j'ai trouvé est que je peux appuyer sur le bus inputNode comme ceci:
self.audioEngine = AVAudioEngine()
self.audioInputNode = self.audioEngine.inputNode!
self.audioInputNode.installTapOnBus(0, bufferSize:256, format: audioInputNode.outputFormatForBus(0), block: {(buffer, time) in
self.analyzeBuffer(buffer)
})
Le bus est exploité 2-3 fois par seconde et le tampon contient plus de flotteurs pour chaque 16000 robinet. Ces échantillons d'amplitude proviennent-ils du microphone?
la documentation au moins revendique sa sortie à partir du noeud: « Le paramètre de la mémoire tampon est une mémoire tampon de données audio capturées à partir de la sortie d'un AVAudioNode. »
Est-il possible d'utiliser AVAudioEngine pour détecter terrain en temps réel temps ou devrais-je aller à propos d'une autre façon?
Aviez-vous implémenté dans Swift? Si possible, pouvez-vous partager le fichier créé pour la détection de hauteur ou un exemple de projet? J'utilise AVAudioRecorder pour l'enregistrement audio –