2010-12-01 6 views
-1

Ce que je pense devoir faire est de créer du code qui me permet de lire dans un tas de fichiers son bruts (par ex. une guitare), traite ces fichiers (pour construire des accords), et affiche le résultat sous la forme d'un autre ensemble de fichiers.iOS: Audio: Code nécessaire pour la lecture, le traitement, l'écriture de fichiers audio + MIDI Processing

Ma question: quelqu'un peut-il me diriger vers un code qui fait quelque chose de proche de cette tâche, qui me permettrait de ne pas avoir à tout faire à partir de zéro?

EDIT: réponse ci-dessous ont suggéré que j'utilise le groupe de garage que j'ai regardé. ça ressemble à un super outil. Je peux construire mes 24 accords sur un groupe de garage. mais ensuite j'ai besoin de le sauvegarder en MIDI, et d'écrire mon propre code pour traiter ce fichier midi, ajuster les volumes des notes individuelles, les enregistrer, puis les renvoyer via la bande garage enregistrant le son. Quelqu'un peut-il me diriger vers un code qui me permettrait de commencer le traitement midi?

Sam

PS si elle est de tout intérêt, c'est ce que je travaille sur:

http://imagebin.org/125562

La difficulté est de savoir comment je fais face à la voix les accords ... si je viens do {C4 E4 G4} pour l'accord en do majeur, et {G4 B5 D5} pour G, etc, ça va sonner horrible

Un pianiste ne bouge tout simplement pas de C à G comme ça. Il y a un art à exprimer, de sorte que chaque note tente de déplacer une distance minimale à sa nouvelle résolution.

Et je ne peux pas voir de formule pour décrire cela d'une manière qui est agnostique clé.

donc je tente plutôt de jouer tous les Cs Es et Gs, pour créer une texture sonore pour « majeur C »

Si je mets toutes les amplitudes respectives sous une courbe en cloche, chaque accord majeur ou mineur doit avoir son énergie centrée autour du même point, donc l'effet serait que la texture change sans donner aucune impression manifeste/brut de se déplacer vers le haut/bas

Est-ce que cela a du sens maintenant? La tâche devient: comment construire 24 textures?

+0

Je ne sais pas pourquoi vous avez besoin de régler le volume des notes individuelles. Vous pouvez le faire dans Garage Band. –

+0

Vous voulez que chaque note déplace la distance minimale à la nouvelle résolution, donc en approche brute, vous pouvez simplement vérifier tous les accords et utiliser celui qui déplace chaque note à la distance minimale du dernier accord joué. (Bien sûr, vous pouvez être intelligent et ne pas tout essayer, mais même la recherche de force brute est probablement assez rapide.) –

Répondre

1

Vous pourriez probablement lire l'exemple de code de Stephan Bernsee fourni avec sa librairie d'étirage de temps Dirac LE gratuite. Il a deux classes, EAFRead et EAFWrite qui lisent/convertissent/écrivent des fichiers audio. Vous pouvez l'obtenir à partir de http://dirac.dspdimension.com. Découvrez le dossier mobile/iOS fourni avec la bibliothèque. Vous pouvez simplement remplacer l'appel à sa bibliothèque avec tout ce que vous voulez (comme la conversion de fréquence d'échantillonnage pour transposer le son, consultez http://www.musicdsp.com pour des conseils/code qui le fait).

1

Vous pouvez créer tous les accords dans Garage Band, puis exporter les sons à partir de là pour être utilisés dans votre application. (Bien que votre application sera plus grande avec tout l'audio numérisé.)

+0

Grande suggestion! Je viens de jouer avec ça. Je peux voir que l'utilisation de copier et coller ne me prendrait que 10 minutes pour obtenir mes 24 textures. Mais j'aurais besoin de traiter le fichier midi pour pondérer les volumes sur les sons individuels. –

Questions connexes