Problème de bruits parasites avec AHI

5 sujets de 1 à 5 (sur un total de 5)

  • ludovic_lyon

      #2185

      Je calcule mes samples en temp réel pour me permettre de jouer une mélodie. J’utilise la technique du double buffering bien sur.

      1) Je n’ai aucun PB si j’utilise le classique device audio PAULA. Aucun bruit parasite.

      2) Par contre, avec AHI, que j’utilise en Low Level, à chaque fois que AHI lance le nouveau son (avec SetSound), il emet un rapide bip parasite avant de jouer ce son, ce qui fait globalement un léger bruit de fond que j’aimerais supprimer.

      3) J’ai bien essayé de faire varier la taille du sample à calculer à chaque fois, mais ce BIP persiste.

      4) J’ai inclus la routine de calcul des samples dans la SoundFunc, puis dans la PlayerFunc, mais dans les 2 cas le BIP persiste.

      5) J’utilise des AHI_DYNAMICSAMPLE, mais ca fait la même chose avec des samples classiques.

      Qui peut me proposer un bout de code AHI ou des conseils pour m’aider à supprimer ces bruits parasites

      Merci.

      LC

      corto

        #43472

        Je n’ai pas utilisé AHI dans les mêmes conditions : moi c’était en high level mais aussi en double buffer. Et une mauvaise gestion de ce double buffer faisait que des craquements apparaissaient : je remplissais bien le bon buffer mais je copiais le surplus éventuel dans le buffer en court de lecture (oui, ça parait idiot).

        Je suppose que le craquement est dû à un genre de problème comme ça ou un démarrage de lecture en mémoire à une adresse où il n’y a pas les samples attendus.

        AHI_DYNAMICSAMPLE n’est peut être pas la solution miracle même si ça semble laisser plus de liberté.

        Fab1

          #43473

          Les exemples du sdk de ahi sont de bons points de départ (lowlevel/doublebuffer ou device/playtest, selon le mode que tu utilises).

          A tout hasard, quelle taille font tes samples ? AHI a un peu de mal avec des très petits samples (ce qui n’était pas le cas de l’audio.device), donc si tu peux te permettre de bufferiser à hauteur d’au moins 4ko c’est préférable.

          Sinon un craquement peut aussi effectivement être la conséquence d’un double buffer mal géré, si tu écrases des données dans ta file au mauvais moment, etc…

          Anonyme

            #43474

            Quand t’alloues la mémoire pour tes samples, tu les vides bien ? (flag MEMF_CLEAR) (oui bon c’est sûrement pas ça :)

            ludovic_lyon

              #43475

              Merci pour vos réponses, chaque buffer fait une centaine de samples, pas plus, car je calcule en temps réel la mélodie (émulation OPL2) et la taille d’un sample ne doit pas dépasser la durée d’une période de PlayerFunc (qui mouline à 56 Hz).

              C’est vrai que l’algorithme de calcul est assez lourd, je le fais exécuter dans la routine SoundFunc, ca vient de ça car si je n’exécute plus cet algo, le bruit de fond dispararait. Elle met trop de temps à s’exécuter pour AHI.

              L’algo fonctionne puisque je n’ai aucun PB avec l’audio.device.

              Globalament, je trouve AHI quand même très moyen, BestAudioIA ne marche pas bien, il y des souffles même quand on joue un sample simple etc …

            5 sujets de 1 à 5 (sur un total de 5)

            • Vous devez être connecté pour répondre à ce sujet.

            Forums AmigaOS, MorphOS et AROS Développement Problème de bruits parasites avec AHI

            Amiga Impact