CoreAudio : a l'aide

TMXTMX Membre
00:46 modifié dans API AppKit #1
Salut à  tous,

Mon projet XTracker est bien avancé, mais maintenant j'attaque la partie la plus ardue : la gestion du son  :( et le moins que l'on puisse dire c'est que c'est galère.

Mon logiciel XTracker doit supporter les formats de sample IFF/8SVX, AIFF et le futur XSFF (format XSampler). J'ai réussi à  charger les samples au format IFF/8SVX et je souhaite maintenant les jouer.

Si j'utilise les AudioDevice, le son sort bien mais il est tout pourri. Lorsque j'utilise un logiciel comme CocoaModX, les modules qui utilisent également des samples au format IFF/8SVX ont un son tout à  fait normal. Alors où est le problème ?

Je précise quand même que le format IFF/8SVX est un format 8bits. Je l'ai transformé en SInt16. J'ai lu çà  et là  que CoreAudio gérait les sons au format Float32. Quand j'utilise des float, le son est encore plus pourri.

Lorsque j'utilise les AudioUnit comme dans SDL, il n'y a aucun son.  :-\\
J'ai pourtant utilisé le même principe que SDL. Je ne comprend vraiment pas d'où vient le problème.

J'ai besoin d'aide. Quelqu'un saurait il comment utiliser ce foutu CoreAudio, parce que les docs ne sont pas très explicites ?

:why?:

Réponses

  • mpergandmpergand Membre
    00:46 modifié #2
    J'ai besoin d'aide. Quelqu'un saurait il comment utiliser ce foutu CoreAudio, parce que les docs ne sont pas très explicites ?


    C'est pour cette raison que je me garde bien d'y mettre mon nez  :)

    Donc, j'ai pas la soluce, mais juste une idée en passant: est-tu sûr de la fiabilité de ta conversion, un moyen de le savoir serait de faire une conversion d'un sample en AIFF et de le faire jouer par QuickTime?
  • TMXTMX Membre
    00:46 modifié #3
    Le chargement du fichier est correct et en utilisation Audio HAL, j'arrive à  l'entendre mais le son est horrible. Mais en utilisant les AudioUnits, aucun son.

    Quant à  la conversion, elle est bonne en 16Bits mais là  où je ne sais pas c'est s'il faut ou non convertir en Float32 comme le préconise Apple.

    Il faut que j'essaie d'approfondir le problème mais là , j'ai vraiment besoin d'une aide sérieuse.

    :why?: :why?:
  • mpergandmpergand Membre
    00:46 modifié #4
    J'ai trouvé ce topic qui semble évoquer un problème similaire
    http://lists.apple.com/archives/coreaudio-api/2001/Jun/msg00089.html
  • CoreCore Membre
    00:46 modifié #5
    A mon avis ton son est pourri a cause des erreurs de quantifications issu du passage de 8 à  16 bits. Il te faut trouver un moyen plus efficace, genre dithering

    Le probleme c'est que je ne peut pas t'en dire bcp plus car je suis ne train de mettre dans la doc du CoreAudio qui il est vrai manque d'exemple concert (j'en ai trouvé dans les exemples d'Xcode, si ca peut t'aider)
  • TMXTMX Membre
    00:46 modifié #6
    Je vous remercie tous les gars

    Je viens de réussir à  écouter mes samples IFF/8SVX avec mon XTracker. Je suis passé par les AudioUnits et ca passe niquel chrome  :)

    Maintenant, je vais enfin pouvoir avancer. J'arriver à  jouer mes samples en fonction des touches du clavier et de l'octave sélectionnée (7 au total).

    Le plus, certes, reste à  faire. Il me reste à  pouvoir jouer une voix, un pattern et enfin le module XSFF en tant que tel. Naturellement, y a les effets à  gérer et le son en 5.1, mais c'est encore un peu tôt pour y penser.

    Encore merci. Si je peux vous aider à  mon tour, j'essaierai de le faire.

    Et rappelez-vous : "Petit à  petit, l'oiseau fait son nid. Moua y aime bien moa."  ;D
  • NseaProtectorNseaProtector Membre
    00:46 modifié #7
    Du coup 16bits ou float32 ?
    Moua y'aime bien aussi. (J.Garraud)
Connectez-vous ou Inscrivez-vous pour répondre.