45Fermer47
DEATHLe 25/02/2022 à 23:47
SCPCD (./44) :

Jamais fait de son sur ST, mais de ce que j'en comprend c'est plus proche d'un mécanisme comme aurait fait les PWMDAC de la jag (en moins brut de fonderie)

Je parle ici de son échantillonné, typiquement du PCM 8bit (je crois qu'on peut faire plus mais pareil.... j'ai un peu oublié tout ça).

Sur Atari STF il n'y a pas de DAC (ni de DMA pour le charger), on simule donc un DAC (et un DMA) en mettant les bonnes valeurs dans les 3 voix du YM2149 en se basant sur des tables de conversions prédéfinies et ce à intervalles réguliers grâce à l'interruption du timer B (historiquement le B mais je ne me rappelle plus s'il y a une raison technique) qui va lancer la routine qui chargera les valeurs dans le YM2149.
Et bien sur la fréquence du timer B correspond à la fréquence d'échantillonnage qu'on veut restituer.
L'inconvénient de cette technique c'est que ça bouffe un "max" de temps CPU. Imaginez à 15Khz (ce qui est déjà relativement élevé sur un STF), 15000 interruptions par seconde, quasi 1 par ligne. Et le traitement d'une interruption sur 68000 c'est beaauucoup de cycle, même si la routine elle même est très courte.

Sur STE il y a un DAC et un DMA pour le charger. Je n'ai d'ailleurs jamais entendu parler d'utiliser un timer en natif sur STE pour faire du son digitalisé, et pour cause, l'emploi du DMA son consomme.... 0 cycle CPU, et 0 cycle mémoire supplémentaire (le secret c'est l'entrelacement sur des accès mémoire qui n'était pas utilisés)

Et pour fini il y a aussi une autre technique appelé Digidrum qui consiste à n'utiliser qu'une seul voix du YM2149 pour les sons digitalisés et avec une fréquence très basse. Le rendu est alors très limité (quelques chose comme 4 ou 5 bits je ne sais plus) mais suffisant pour jouer des sons de percussion bien plus réalistes en plus de la musique "soundchip" sur 2 voix + le canal de bruit.