7
votes

Comment utiliser Aubio Cadre dans iOS?

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.
}];


2 commentaires

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.


4 Réponses :


1
votes

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.

Référence: http://aubio.org/download#ios


0 commentaires

0
votes

Il existe un cadre compilé à utiliser avec iOS dans le page de téléchargement .

Un que vous avez faites glisser et déposé la bibliothèque dans votre projet, assurez-vous d'avoir également des cadres suivants:

  • accélérer.framework
  • Audiotoolbox.framework

    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.


0 commentaires

0
votes

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.


2 commentaires

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?



0
votes

mise à jour forte> Donc, il semble que le cocoa pod for Aubio n'est pas le dernier, dans mon podfile, j'utilise ce code pour ajouter Aubio à mon espace de travail Xcode: xxx pré>

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>

réponse originale forte> Il y a Cocoapod pour Aubio qui rend vraiment simple de référencer les bibliothèques d'Aubio à Swift. Voici l'Aubio Cocoapod de iOS: P>

https://cocoapods.org/ PODS / AUBIO-IOS-SDK P>

Une fois que vous avez installé, notez que, à Swift, vous n'écrirez pas: p> xxx pré>

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>


2 commentaires

Salut @ Brian-Ogden, pourriez-vous s'il vous plaît ouvrir un rapport de bogue à ce sujet? Import AUBIO 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