par où commencer avec de synthèse audio sur iPhone
J'aimerais construire un synthétiseur pour l'iPhone. Je comprends qu'il est possible d'utiliser des unités audio pour l'iPhone. À première vue, cela semble prometteur, car il ya beaucoup, beaucoup de Audio de l'Unité de programmation des ressources disponibles. Cependant, en utilisant des unités audio sur l'iPhone semble un peu délicat ( voir: http://lists.apple.com/archives/Coreaudio-api/2008/Nov/msg00262.html)
Cela semble être le genre de chose que beaucoup de gens doivent être en train de faire, mais une simple recherche google pour "iphone de synthèse audio" n'est pas quelque chose le long des lignes d'un agréable et facile tutoriel ou recommandé trousse à outils.
Donc, n'importe qui ici ont de l'expérience synthétiser le son sur l'iPhone? Sont audio personnalisé unités de la manière de faire, ou est-il une autre, plus simple d'approche que je devrais envisager?
- Sur Mac OS, l'utilisation de l'Audio units est vraiment pratique et permet une tonne de fonctionnalités. Malheureusement, il semble y avoir presque rien mis en place sur l'iPhone. Il y a un peu de base de l'UA, mais nulle part près de ce qui est disponible sur MacOS. J'ai déposé un bug il y a un an, mais pas encore de progrès.
- J'ai googlé les appareils audio pour iphone et trouvé quelqu'un parler de l'aide personnalisée de l'UA sur l'iphone, mais il semble un peu poilue.
Vous devez vous connecter pour publier un commentaire.
Je suis également en train d'étudier ce. Je pense que le AudioQueue API est probablement la voie à suivre.
Voici autant que j'ai eu, semble fonctionner ok.
Fichier: BleepMachine.h
Fichier:BleepMachine.mm
Mise à jour: utilisation de Base info
Initialiser. Somehere près de la commencer, je suis en utilisant initFromNib: dans mon code
Maintenant le son de lecture est en cours d'exécution, mais en générant silence.
Dans votre code, appelez-le lorsque vous voulez changer le ton de la génération
À la fin du programme,
Depuis mon premier post ya presque un an, j'ai parcouru un long chemin. Après une assez exhaustive de la recherche, je suis venu avec très peu de synthèse de haut niveau des outils appropriés pour le développement d'iOS. Il existe de nombreuses qui sont sous GPL, mais la licence GPL est trop restrictif pour moi de me sentir à l'aise de l'utiliser. LibPD fonctionne très bien, et c'est ce que rjdj utilise, mais je me suis vraiment frustré par le paradigme de programmation graphique. JSyn c à base de moteur, csyn, est une option, mais il nécessite une licence, et je suis vraiment habitué à la programmation avec des outils open-source. Il ne regarde plus la peine d'examiner de près si.
En fin de compte, je suis en utilisant STK que mon cadre de base. STK est un très faible niveau de l'outil, et requiert une grande mémoire tampon au niveau de la programmation de se mettre au travail. Ceci est en contraste à quelque chose de plus haut niveau tels que PD ou SuperCollider, qui vous permet de simplement brancher l'appareil générateurs d'ensemble et ne pas s'inquiéter de la manipulation de la crue de données audio.
Travailler de cette façon avec STK est certainement un peu plus lent qu'avec un niveau élevé de l'outil, mais je suis devenu à l'aise avec elle. Surtout maintenant que je suis devenu plus à l'aise avec la programmation C/C++ en général.
Il y a un nouveau projet en cours afin de créer une application de correctifs de style ajouter à Ouvrir des Cadres. Il s'appelle Cleo, je pense, de l'Université de Vancouver. Il n'a pas encore été dévoilé, mais il ressemble à un très beau mélange de correctifs de style de raccordement de générateurs unitaires en C++ plutôt que d'exiger l'utilisation d'une autre langue. Et il est étroitement intégré à Ouvrir les Cadres de, qui peut être portée en appel ou pas, en fonction.
Donc, pour répondre à ma question initiale, vous devez d'abord apprendre à écrire dans la mémoire tampon de sortie. Voici quelques bons exemples de code pour que:
http://atastypixel.com/blog/using-remoteio-audio-unit/
Alors vous devez faire de la synthèse pour générer les données audio. Si vous aimez les patchs, je n'hésiterais pas à recommander libpd. Il semble fonctionner à merveille, et vous pouvez travailler de la façon dont vous êtes habitué. Si vous détestez graphique de rapiéçage (comme moi), votre meilleur point de départ pour l'instant, il est probablement STK. Si STK et à faible niveau d'émissions sonores semble un peu au-dessus de votre tête (comme ce fut le cas pour moi), il suffit de retrousser vos manches, pack de la tente, et mis en place sur un peu d'une longue randonnée jusqu'à la courbe d'apprentissage. Vous allez être un bien meilleur programmeur pour lui à la fin.
Un autre morceau de conseil que je souhaite que je pourrais avoir moi-même il y a un an: rejoindre Apple Core Audio liste de diffusion.
============== 2014 Modifier ===========
Je suis maintenant à l'aide de (et en contribuant activement à) la Tonique de synthèse audio de la bibliothèque. C'est génial, si je ne dis pas de moi-même.
Avec l'énorme inconvénient que je n'ai pas encore passé l'ensemble de la documentation ou de la finition de la navigation de certaines classes /exemple de code, il ressemble à l'amende gens de CCRMA cours à l'université de Stanford pourriez mettre quelques belles boîtes à outils ensemble pour nos audio piratage plaisir. Aucune garantie que ces va faire exactement ce que vous voulez, mais basé sur ce que je sais à propos de l'origine STK, ils devraient faire l'affaire. Je suis sur le point de s'embarquer sur une bande son de synthé application moi-même et le plus de code je peux réutiliser le mieux.
Liens /descriptions à partir de leur site...
MoMu : MoMu est une lumière-poids de la trousse d'outils logiciels pour la création d'instruments de musique et des expériences sur l'appareil mobile, et prend actuellement en charge la plate-forme iPhone (iPhone, iPad, iPod touch). MoMu fournit des API en temps réel le mode full-duplex, d'un accéléromètre, de l'emplacement, multi-touch, la mise en réseau (via OpenSoundControl), les graphiques et les services publics. (yada yada)
• et •
MoMu STK : Le MoMu libération de la Synthèse Toolkit (STK, à l'origine, par Perry R. Cook et Gary P. Scavone) est légèrement modifié la version de STK 4.4.2, et prend actuellement en charge la plate-forme iPhone (iPhone, iPad, iPod touch).
Je suis juste d'entrer dans l'Audio de l'Unité de programmation pour iPhone pour construire un synthé comme app. La Pomme "guide Audio de l'Unité de Guide d'accueil pour iOS" semble être une bonne référence:
http://developer.apple.com/library/ios/#documentation/MusicAudio/Conceptual/AudioUnitHostingGuide_iOS/AudioUnitHostingFundamentals/AudioUnitHostingFundamentals.html#//apple_ref/doc/uid/TP40009492-CH3-SW11
Le guide inclut des liens vers quelques exemples de projets. Table de Mixage Audio (MixerHost) et aurioTouch:
http://developer.apple.com/library/ios/samplecode/MixerHost/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010210
http://developer.apple.com/library/ios/samplecode/aurioTouch/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007770
Je suis l'un des autres contributeurs à Tonique avec morgancodes. Pour les querelles CoreAudio dans un niveau supérieur, cadre, je ne peux pas donner assez de compliments pour L'Incroyable Moteur Audio.
Nous avons tous les deux utilisé en tandem avec la Tonique dans un certain nombre de projets. Il prend tellement de la douleur hors de traiter avec des CoreAudio directement, vous permettant de vous concentrer sur le contenu réel et de synthèse au lieu de la couche d'abstraction matérielle.
Dernièrement, j'ai été en utilisant AudioKit
C'est frais et bien conçu wrapper sur CSound qui a été autour depuis des siècles
J'ai été en utilisant tonique avec openframeworks et j'ai été me trouver en manque de programmation rapide.
Bien tonique et openframeworks sont à la fois puissants outils,
J'ai choisi de les obtenir dans le lit avec swift
PD a une version qui fonctionne sur l'iphone, utilisé par RjDj. Si vous êtes OK avec l'aide de quelqu'un d'autre application plutôt que d'écrire votre propre, vous pouvez faire un peu dans un RjDj scène, et il y est un ensemble d'objets qui vous permettent de patch et de le tester sur un PD réguliers sur votre propre ordinateur.
Je dois mentionner: PD est un visuel des flux de données, langage de programmation, c'est-à-dire, il est turing complet, et peut être utilisé pour développer des applications graphiques, mais si vous allez faire quelque chose d'intéressant, je voudrais vraiment regarder dans les meilleures pratiques pour l'application des correctifs.
Dernière fois que j'ai vérifié, vous ne pouviez pas utiliser personnalisée AUs sur iOS dans une manière qui permettrait à toutes les applications installées à l'utiliser (comme sur MacOS X).
Vous pourrait théoriquement utiliser un personnalisé AU sein de votre application iOS en les chargeant à partir de l'app bundle et l'appel de l'UA rendre directement à la fonction, mais alors vous pouvez ainsi ajouter directement le code de votre application. Aussi, je suis assez sûr que le chargement et le code d'appel qui se trouve dans une bibliothèque dynamique irait à l'encontre de l'AppStore politiques.
Donc, soit vous avez à faire le traitement de votre télécommande IO de rappel ou de l'utilisation de la Apple AUs préinstallés, au sein d'une AUGraph.