Problème de bruits parasites avec AHI
5 sujets de 1 à 5 (sur un total de 5)
-
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
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é.
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…
Quand t’alloues la mémoire pour tes samples, tu les vides bien ? (flag MEMF_CLEAR) (oui bon c’est sûrement pas ça
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