J'essaie de détecter le battement, la hauteur, l'apparition et la rapidité de Fourier Fourier (FFT) du fichier audio dans iOS et j'ai trouvé que Aubio fournit Ces fonctionnalités et iOS Framework sont également disponibles.
Jusqu'à présent, j'utilise Le moteur audio étonnant pour recevoir des données audio en termes de audio principal code> 'S
Audiobufferlist code> Comme ceci: p>
id<AEAudioReceiver> receiver = [AEBlockAudioReceiver audioReceiverWithBlock:
^(void *source,
const AudioTimeStamp *time,
UInt32 frames,
AudioBufferList *audio) {
// I don't know how to use audio library.
}];
4 Réponses :
Regardez le Téléchargez la page Aubio , je pense qu'ils l'ont compilée dans le cadre pour iOS et vous peut importer directement sur votre Xcode. p>
Référence: http://aubio.org/download#ios p>
Il existe un cadre compilé à utiliser avec iOS dans le page de téléchargement . P>
Un que vous avez faites glisser et déposé la bibliothèque dans votre projet, assurez-vous d'avoir également des cadres suivants: p>
Maintenant, si vous téléchargez la source d'Aubio, vous aurez un dossier d'exemples. Là, vous trouverez du code de détection de battement, de hauteur, d'apparition (il y a aussi une FFT) écrit en C, qui, étant donné que l'Objc est un superset de C, fonctionnera également dans votre projet. P>
Ma solution pour cela était d'écrire le tampon audio dans un fichier, puis d'envoyer le fichier à Aubio. Chaque fois que vous obtenez un nouveau tampon d'audio, vous pouvez ajouter au fichier (si vous souhaitez analyser le tout jusqu'à présent) ou simplement écraser si vous n'êtes intéressé que par la pièce incrémentielle. P>
Quoi où vous utilisez pour écrire le tampon audio pour déposer? Un avaisetwriter, ou peut-être deux avaisetwriters, ou AvcTureAudataTaOutput ou un délégué avCCapture avec CMSampleBufferref ou où vous utilisez un moteur audio incroyable pour écrire au fichier?
Avez-vous incité une performance notable frappée avec cela? Habituellement, vous faites ce genre de chose en mémoire, mais Aubio semble avoir seulement un mécanisme d'entrée basé sur un fichier?
ceci installe AUBIO 0.4.1 et c'est Pas le dernier. La recherche de la documentation pour Aubio, en général, est un processus obscur sur lequel vous avez des résultats de recherche sur Internet à la pièce dans plusieurs contours dans une solution de fonctionnement. P> pour iOS C'est encore plus obscur, si vous allez au Téléchargements AUBIO Vous trouverez la version 0.4.2 pour iOS, faites défiler vers bas, c'est une version ultérieure que la version ultérieure de l'Aubio Cocoa POD. Et pourtant, ici , dans les commentaires J'ai trouvé un module ultérieur iOS AUBIO, 0.4.3, Voici le téléchargement direct sur ce qui pourrait être le dernier Aubio pour iOS: p> https://aubio.org/bin/tmp/aubio-0.4.3~const.iosuniversal_framework.zip p> Vous avez toujours besoin d'un en-tête de pontage référence à Aubio .h Si vous utilisez Swift comme je l'ai mentionné dans ma réponse d'origine P> https://cocoapods.org/ PODS / AUBIO-IOS-SDK P> Une fois que vous avez installé, notez que, à Swift, vous n'écrirez pas: p> au Haut de votre fichier SWIFT. P> Vous devez vous assurer d'ajouter un en-tête de ponte d'objectif C pour exposer la bibliothèque Aubio C à SWIFT, dans l'en-tête de pontage, vous écrivez ce qui suit: p> #import <aubio/aubio.h>
Salut @ Brian-Ogden, pourriez-vous s'il vous plaît ouvrir un rapport de bogue à ce sujet? Import AUBIO CODE> SWIFT devrait fonctionner. à votre santé
Sur une note plus générale: se plaindre sur Stackoverflow que la documentation manquait qu'il est peu probable de l'améliorer. Ouverture d'un nouveau problème à ce sujet serait très apprécié: Github.com/aubio/aubio/issues/new
Salut! J'ai le même problème - avez-vous trouvé la solution pour cette tâche?
@Xzenon Non, je n'ai pas fait. Pardon.