Manipulation d'audio

StephSteph Membre
avril 2012 modifié dans Vos applications #1
Salut,



On me demande un app qui enregistre un message dictée via le micro de l'iPhone, je me dis, pas de souci c'est jouable, mais là , ça se corse...



En discutant avec le client potentiel, il s'avère qu'il faut faire un trim des blancs au début et à  la fin du fichier, pouvoir revenir en arrière et reprendre son message où on veut, voir pouvoir lire en mode inversé ... J'échappe de justesse au graph dynamique du level ...



N'ayant encore quasi jamais touché l'audio (sauf pour lire des sons) je voulais votre avis sur la difficulté du truc et savoir si vous connaissez des framework tiers qui pourraient m'aider !



Merci de votre avis.

Réponses

  • Ma dernière expérience sur CoreAudio remonte au tout premier SDK et comme toi aujourd'hui je m'avais jamais touché à  ça. La demande à  l'époque était de faire une sorte de vocoder en temps réel.



    Le framework CoreAudio n'est pas si compliqué à  prendre en main en temps qu'outil pour peut qu'on connaisse un peu le C (pointeur, pointeur de fonction pour les callbacks, etc.).



    Récupérer des frames PCM et les enregistrer / les rejouer tout en faisant un éventuellement traitement dans une boite noire c'est accessible.



    Pour ce qui est du traitement des frames PCM en elle même, nous avions travaillé avec un dev spécialisé dans le développement d'effets sonores donc je ne peux pas te dire, je me suis contenté d'utiliser les boite d'effet qu'il me fournissait.



    Donc si tu trouve une lib qui te fait le traitement nécessaire pour tes trims ça ira. Se placer au milieu du fichier, lire à  l'envers, c'est juste une question de placement dans le fichier et de lecture.
  • Merci Yoann,



    J'avoue que ça me fait un peu peur, mais ça peut être un beau challenge, c'est comme ça qu'on avance non ? LOL
  • 'Steph' a écrit:


    J'avoue que ça me fait un peu peur, mais ça peut être un beau challenge, c'est comme ça qu'on avance non ? LOL




    Ouais j'avoue c'est pas rassurant au début (encore t'as échappé à  la forme d'onde). Si t'es à  ton aise en C tu n'aura pas de problème avec les outils pour manipuler le son en tout cas. Et pour le reste, tant que tu ne cherche pas à  modifier les frame PCM, que tu les colles simplement bout à  bout ça devrait le faire.
  • Je viens de me plonger dans la doc Apple sur CoreAudio et AudioToolBox, effectivement, même dans les samples code il y a parfois du C, notamment pour la partie Level Meter, c'est bizarre car il y a une propriétés .level qui existe dans le CoreAudio ...



    Bref, je regarde et j'essaye de voir quand il y a besoin de C ou pas et surtout faire un peu de clair là  dedans. Il y a un bouquin qui sors sur CoreAudio le 10 avril, je pense que je vais investir image/tongue.png' class='bbc_emoticon' alt=':P' />
  • muqaddarmuqaddar Administrateur
    mai 2012 modifié #6
    Et moi, on me demande s'il y a moyen de lire un fichier audio au ralenti, histoire de ralentir le tempo.

    Je me doute que ça doit être faisable, mais faut-il passer par CoreAudio ?
  • CéroceCéroce Membre, Modérateur
    Si on joue simplement les échantillons au ralenti, le son sera plus grave.

    Pour ralentir le tempo, il faut faire du Time-stretching, et je pense que seul Core Audio sait faire ça.
  • muqaddarmuqaddar Administrateur
    mai 2012 modifié #8
    'Céroce' a écrit:


    Si on joue simplement les échantillons au ralenti, le son sera plus grave.

    Pour ralentir le tempo, il faut faire du Time-stretching, et je pense que seul Core Audio sait faire ça.




    Merci Céroce !

    (c'était une demande facultative et comme c'est un petit budget...)
  • yoannyoann Membre
    Je pense également que tu n'as pas le choix, CoreAudio dès que tu as besoin d'appliquer un quelconque effet.
  • CéroceCéroce Membre, Modérateur
    C'est pas forcément compliqué à  faire, il existe une Audio Unit pour faire du Time-Stretching. Après, ça prend un temps certain pour se plonger dans la doc de Core Audio pour savoir comment instancier des AU et les lier.
  • yoannyoann Membre
    'Céroce' a écrit:


    C'est pas forcément compliqué à  faire, il existe une Audio Unit pour faire du Time-Stretching. Après, ça prend un temps certain pour se plonger dans la doc de Core Audio pour savoir comment instancier des AU et les lier.




    Effectivement, une fois que tu connais le principe c'est simple (tant que tu ne code pas tes propres AU), mais l'apprentissage n'est pas sans peine.
  • muqaddarmuqaddar Administrateur
    Ok, merci à  vous deux.

    Je vais jeter un coup d'oeil et voir ce que je propose au client. image/smile.png' class='bbc_emoticon' alt=':)' />
Connectez-vous ou Inscrivez-vous pour répondre.