Posté le 06/12/2017 à 23:51 Membre depuis le 06/12/2017, 5 messages
Salut à tous.
C'est un peu mort ici.
Bon, j'aurai pu aller sur Atariage mais coser en anglois ça me fatigue, me prend du temps, et je ne suis pas sûr de bien me faire comprendre...
Et puis ça mettra un peu d'animation ici.

Ma question est simple: comment fait on du son sur Jaguar au juste. A noter que ma question est juste par curiosité.
Je m'explique. Dans les différentes documentations ou codes sources, les informations à ce sujet sont contradictoires !
Un coup ils parlent de PWM DAC 14 bit, une autre fois c'est des DACs 16bit... Sans compter les adresses qui se mélangent avec les DACs 16bit qui se retrouvent à la même adresse que l'I²S...
Dans les sources de SDK pas mieux, puisqu'on peut y voir qu'ils donnent en exemple l'utilisation des DACs 16bit... mais ils disent de ne pas utiliser cette méthode car de toute façon ils n'existeront plus dans le futur....
Dans les source de Cybermorph, ils parlent d'utiliser le PWM ou l'I²S mais rien sur les DACs 16bit.

Alors quoi ?

Merci

Edit : ah flute, j'aurai du mettre ça dans la section "help"...
avatar
Posté le 07/12/2017 à 00:19 Membre depuis le 27/04/2006, 59885 messages
Les DACs PWM sont bugués, et ne sont de toute façon reliés à rien dans la Jaguar, tu peux oublier toute la section de la doc qui en parle.

Pour faire du son il faut utiliser l'I²S. C'est très basique :

- au démarrage, tu règles la fréquence d'échantillonnage avec SCLK et le format avec SMODE, tu désactives le mute dans le registre JOYSTICK, et tu actives l'interruption I²S avec D_FLAGS.

- à chaque période d'échantillonnage, l'interruption DSP I²S est déclenchée. Il suffit d'écrire le sample 16 bits à sortir sur le canal gauche dans L_I2S, et idem pour le canal droit avec R_I2S. Pas de FIFO, de DMA ou d'autre truc similaire, c'est brut de fonderie.

Si tu n'as pas envie de réinventer la roue, il y a plusieurs moteurs audio déjà faits :

- le lecteur de fichiers MOD à 4 canaux de Sinister Developments, historiquement le premier mais plus vraiment recommandé (la qualité est perfectible)

- celui de SebRmv, à 8 canaux

- celui de U235, à 8 canaux également

- le mien, à 4 canaux. Un peu différent des autres puisqu'il ne supporte que les samples sans changement de fréquence ou de volume, mais avec des bonus par rapport aux autres (samples au format muLaw, interpolation linéaire, mixage à 46 kHz au lieu de ~22 kHz)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 07/12/2017 à 09:12 Membre depuis le 06/12/2017, 5 messages
ah merci, je n'en demandais pas tant smile

Ma seule interrogation était en fait sur l'adresse des registres à utiliser à cause de la confusion induite dans les différentes docs et sources.

Je savais déjà que les DACs PWM n'étaient pas connectés, mais j'ai fini par avoir un doute à force de toutes ces informations contradictoire.
D'ailleurs, si ils ne sont pas connectés, comment savoir qu'ils sont bugués ?

Ensuite, l'adresse des DACs 16bit est donc la même que les registres de transmission de l'I²S (F1A148 et F114C de mémoire je crois) ? Je ne comprend pas trop comment fonctionne l'I²S alors.... cela veut dire qu'on ne peut pas se servir de l'interface série synchrone quand on fait du son ? Et comment décider de telle ou telle fonctionnalité ?
avatar
Posté le 07/12/2017 à 13:52 Membre depuis le 27/04/2006, 59885 messages
DEATH (./3) :
Ma seule interrogation était en fait sur l'adresse des registres à utiliser à cause de la confusion induite dans les différentes docs et sources.
Et encore, dans les anciennes versions de la doc et des fichiers d'include, ils ont inversé le canal gauche et le canal droit grin

DEATH (./3) :
Je savais déjà que les DACs PWM n'étaient pas connectés, mais j'ai fini par avoir un doute à force de toutes ces informations contradictoire.
D'ailleurs, si ils ne sont pas connectés, comment savoir qu'ils sont bugués ?
Parce que c'est marqué dans la doc.
Quand une doc Atari te dit qu'un machin fonctionne, il n'est pas impossible que ce soit bugué ; quand la doc te dit que c'est bugué, il y a de très fortes chances que ça ne marche pas grin

DEATH (./3) :
Ensuite, l'adresse des DACs 16bit est donc la même que les registres de transmission de l'I²S (F1A148 et F114C de mémoire je crois) ? Je ne comprend pas trop comment fonctionne l'I²S alors.... cela veut dire qu'on ne peut pas se servir de l'interface série synchrone quand on fait du son ? Et comment décider de telle ou telle fonctionnalité ?
Oui, les DACs sont connectés à l'interface série synchrone, donc on ne peut pas faire fonctionner les deux indépendamment en même temps. C'est pour ça qu'il y a un bit de mute, pour éviter que ça fasse du bruit quand on utilise l'interface série synchrone pour transférer des données non audio. C'est détaillé ici :
JW4E

En pratique ce n'est pas un problème : à moins que tu utilises le JagCD, il n'y a que les DACs qui utilisent l'interface série synchrone (à ne pas confondre avec l'interface série asynchrone, qui sert pour relier les Jaguars en réseau).
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 07/12/2017 à 14:36 Membre depuis le 06/12/2017, 5 messages
AH OUI ! Bien vu le Technical Reference !

Je suis "tellement" toujours plongé uniquement sur le Software reference que j'en avais totalement oublié le reste !

Ah ben oui la du coup je comprends mieux.

Petite question qui n'a pas trop à voir avec le sujet (quoique), pour m'amuser je voulais récupérer les échantillons de cybermorph qu'il y a dans les sources (en fait surtout : Where did you learn to fly smile . Mais impossible de trouver en quel format ils sont... J'arrive à entendre un peu quelque chose en choisissant certains format mais c'est quasi inaudible. En regardant les fichiers binaire, les données ont l'air très étrange...
Quelqu'un... sais tu quel format c'est ?

Et autre question, où peut on trouver ton moteur audio ?
avatar
Posté le 07/12/2017 à 15:21 Membre depuis le 27/04/2006, 59885 messages
DEATH (./5) :
Petite question qui n'a pas trop à voir avec le sujet (quoique), pour m'amuser je voulais récupérer les échantillons de cybermorph qu'il y a dans les sources (en fait surtout : Where did you learn to fly smile
Tu dois être le seul possesseur de Jaguar qui n'en ait pas marre de ce son grin

DEATH (./5) :
Mais impossible de trouver en quel format ils sont... J'arrive à entendre un peu quelque chose en choisissant certains format mais c'est quasi inaudible. En regardant les fichiers binaire, les données ont l'air très étrange...
Quelqu'un... sais tu quel format c'est ?
Le fichier WDYLTF.BYN du dossier SAMPLES est au format assembleur (avec des dc.w), j'ai pas pris le temps de l'assembler mais je suppose que ça donne ce qu'il y a dans la ROM.
En "écoutant" la ROM au format PCM 8 bits signé, on a bien les samples, mais il y a une distorsion bizarre. Je sais que le moteur audio d'Atari supporte un format où c'est la racine carrée (il me semble) de la valeur audio qui est stockée, c'est peut-être ça.

DEATH (./5) :
Et autre question, où peut on trouver ton moteur audio ?
Je ne l'ai pas vraiment diffusé directement vu qu'en gros il n'y a que Reboot qui était intéressé pour l'intégrer dans rB+.
Tu as les sources ici, mais c'est assez crade (c'était au départ juste un essai qui a pris de l'ampleur, et ça gère d'autres trucs qui n'ont pas de rapport avec l'audio, comme les manettes, les rotaries et les souris) :
http://www.mirari.fr/Glxo

Vue la diffusion limitée, je n'ai pas vraiment fait de doc en-dehors des commentaires dans les sources (regarde dans audio.s, le code 68k est celui de l'API, le "vrai" boulot est fait dans le DSP).
Tu peux aussi regarder la doc de rB+, vu qu'il reprend essentiellement les fonctions telles quelles : http://atariage.com/forums/topic/263346-rb-tutorial-3-rb-and-audio-untangling-a-mess/
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 07/12/2017 à 17:29 Membre depuis le 06/12/2017, 5 messages
Et encore oui ! En effet, c'est au format texte.... Quelle idée aussi...

Je n'avais vraiment pas pensé à regarder avec un éditeur de texte... Mais qui sauvegarde des échantillons sonores sous forme de sources ASM ???

bon, je vais essayer d'assembler ça avec un émulateur ST, je n'ai pas grand chose d'autre sous la main
avatar
Posté le 07/12/2017 à 23:21 Membre depuis le 06/12/2017, 5 messages
Effectivement il y a une forte distorsion... Pas grave, je verrai plus tard... un jour...

Je ne voudrais pas abuser mais, comment le Jaguar CD, enfin plutôt la Jaguar fait pour lire des CD audio à 44100Hz ?
La fréquence de l'horloge de la Jaguar, même avec les différents diviseurs qu'elle possède, ne permet pas d'avoir exactement 44100Hz

C'est le Jaguar CD qui provoque une interruption à 44100Hz ? Comment ça se passe ?
avatar
Posté le 08/12/2017 à 00:33 Membre depuis le 27/04/2006, 59885 messages
Effectivement, les fréquences d'échantillonnage de la Jaguar sont des valeurs à la con (la grande spécialité d'Atari depuis le ST).

Dans le cas de la lecture d'un CD audio, le bit 0 de SMODE est à 0, et c'est le JagCD qui génère les signaux d'horloge à la place de Jerry pour avoir du 44100 Hz. Mis à part ça, ça fonctionne pareil.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo