[THOMSON] Jouer des MODs amiga

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] Jouer des MODs amiga

Message par __sam__ »

Quand on octroie un volume de #$40 la courbe n'est plus linéaire mais étagée du style
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
etc... jusqu'a 15
au lieu d'avoir
0 1 2 3 4 5 6 7
8 9 A B C D E F
etc.. jusqu'a 63
attention la valeur 63 sur lz CNA correspond à $40 sur les 4 voix. une voix seule ne peut aller que de 0 à 15 si on veut qu'elles soient toutes équivalentes en terme de volume.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: [THOMSON] Jouer des MODs amiga

Message par jasz »

__sam__ a écrit :Perso je suis un peu largué par tes explication jasz ;) ça semble très clair pour toi mais pas pour Daniel, Fool et moi-même.
J'avoue! Je suis mauvais pédagogue. Mais je n'en tire aucune vanité... :oops:
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] Jouer des MODs amiga

Message par Daniel »

Ce n'est pas une question de pédagogie. Nous avons tous compris que tu trouves la définition des samples sur 4 bits insuffisante, mais avec le CNA 6 bits des machines Thomson il n'est pas possible de l'augmenter. C'est ce que tu ne comprends pas.

L'idée de __sam__ (jouer les quatre échantillons à la suite pour réaliser un mixage hard) est bonne. Toutefois, je ne suis pas convaincu qu'elle puisse améliorer la qualité. On risque de perdre le gain d'une meilleure définition à cause de la baisse de fréquence.

Empiriquement j'ai constaté que la qualité est assez bien représentée par le produit (nombre de bits * fréquence). Si on augmente l'un en diminuant l'autre dans les mêmes proportions, la qualité apparente est inchangée. Aux extrêmes (échantillon sur 1 bit ou fréquence très basse) d'autres phénomènes apparaissent (sifflements ou bande passante trop réduite).

La bonne solution, je la connais : augmenter la fréquence. J'ai prévu de programmer une nouvelle version de SDPLAY2016 utilisant le processeur Hitachi 6309. Le gain attendu est proche de 30 ou 40%.
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: [THOMSON] Jouer des MODs amiga

Message par Fool-DupleX »

Daniel a écrit :... mais avec le CNA 6 bits des machines Thomson il n'est pas possible de l'augmenter. C'est ce que tu ne comprends pas.
Pour être plus précis, les calculs proposés, même à base de tables, prennent trop de temps CPU sur le 6809 et donc le résultat sera forcément moins bon que le player de sam. J'ai étudié son code à fond et entre la division par 4 économisée et la combine à base de masques pour chopper la bonne valeur dans la table de volume, franchement, je lui tire mon chapeau. J'ai vite renoncé à tenter de faire mieux.

Sur 6309, on peut envisager des choses merveilleuses, c'est sûr. Mais bon, personne n'en a, ou presque.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] Jouer des MODs amiga

Message par Daniel »

Jacques et moi-même avons des 6309, et la prochaine version officielle de dcmoto l'émulera.
La version de développement actuelle l'émule déjà : dcmoto_nouveau
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: [THOMSON] Jouer des MODs amiga

Message par Fool-DupleX »

Oui, oui, j'en ai un aussi et depuis très longtemps. Mais je crois qu'effectivement, le nombre de personnes en ayant un fonctionnel dans une machine Thomson se monte à un grand total de ... 3.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] Jouer des MODs amiga

Message par __sam__ »

Quelques nouvelles...

Alors que je butte sur le fait de faire jouer des MODs sur le buzzer 1bit thomson, j'ai pu quand même en tirer une idée intéréssante me permettant de faire passer mon player de MODs de 5khz (limite que je pensais infranchissable) à environ 7khz 8)

Remarquons que 7khz est très proche de la fréquence d'échantillonage des instruments dans le format MOD (environ 8khz). C'est à dire qu'on joue pratiquement un échantillon thomson pour un échantillon du fichier protracker d'origine. Cette augmentation de fréquence de restitution, combinée à divers bugs corrigés amméliore pas mal la qualité, à tel point qu'on peut faire jouer au thomson des MODs avec des instruments échantillonnés énormes. :shock:

Pour avoir plus d'infos, tout se passe >>ICI<<
(mais si vous êtes pressés et que vous avez une bonne vue, passez par le lien dans ma signature)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: [THOMSON] Jouer des MODs amiga

Message par Fool-DupleX »

Je suis pas fan de ton choix musical :lol: (je plaisante)

Serait-il possible d'avoir quelques musiques pour comparer ce qui est comparable, comme celles de la demo Cronologia ou l'une ou l'autre tirées de TO8 Demoded ?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] Jouer des MODs amiga

Message par Daniel »

Belle amélioration pour le player de MODs 8)

Pour la musique 1 bit, j'ai quelques idées, pas encore mises en application, je ne sais donc pas ce qu'elles valent. Avec l'approche classique, quand l'amplitude du signal est très faible (échantillons codés sur un octet proches de 128), on cherche à obtenir un signal sur 1 bit proche de 0,5 en passant alternativement le bit à 0 et à 1. La fréquence de l'alternance est audible, car le processeur n'est pas assez rapide pour dépasser 20kHz.

L'idée est de modifier le signal original pour le rapprocher de zéro quand l'amplitude diminue. Avec un signal original codé de 0 à 255, un son continu muet (échantillons à 128) deviendrait un signal constant à zéro et on aurait un silence total en sortie. Un son d'amplitude 26 (de 115 à 141) deviendrait un signal sur 1 bit entre 0 et 0,1, etc.

L'algorithme de transformation pourrait, par exemple, calculer l'amplitude "a" du signal pour les x derniers échantillons et retrancher (256 - a) / 2 à l'échantillon actuel. Il faudrait prendre x assez grand pour ne pas introduire une distorsion audible, et pas trop grand pour que la transformation soit assez rapide.

Reste à mettre cette théorie en application, pour voir si elle a de l'intérêt. Je n'en ai pas encore eu le temps...
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] Jouer des MODs amiga

Message par __sam__ »

@foolduplex pour le choix musical je me suis basé sur les mods ayant les samples les plus gros dans ceux que j'avais récupérés pour la forever. C'est très '90s, donc techno à fond. Etonnament je n'ai poas réussi à les faire passer avec le player de la forever. Je ne sais pas trop pourquioi. C'est peut-être lié aux bugs de traduction que j'ai découvert ou à la bande passante nettement meilleure à présent, je ne sais pas trop.

@daniel oui, voir le fil sur logicielsmoto pour se rendre compte mes essais avec spectrographe. Ce que tu veux faire c'est soustraire la composante continue locale. Mais ca n'est pas simple car quand on utilise un filtre pour ca on est soit un chouia en dessous de 0, soit un chouia au dessus, donc ca oscille toujours un peu et donc ca siffle. Le meilleur filtre que j'ai trouvé c'est celui du noise-shaping fait par shibata. Sur certains morceaux ca marche super bien mais sur d'autres le sont est méconnaissable. De ce que j'ai compris ca pourrait être lié aux instabilités de ces filtres de très haut ordres qsuand on leur envoie certains signaux au volume fort. La solution est de ne travailler qu'à 50 voir 75% du volume max, mais alors le son est totalement noyé dans le bruit de fond de la TV. Sans compter que mixer les bruits des 4 canaux crée encore plus de bruit. Bref, j'ai pas de bonne stratégie pour l'instant.

Ce qui me chagrine c'est que les différences expériences que j'ai trouvé sur d'autres 8bits, par exemple UTZ sur ZX, et même d'autrres sur CoCo
ou TRS

n'ont pas l'air d'utiliser des algos complexes et ont un son manifestement nettement moins bruité que sur thomson. Je ne crois pas que ce soit lié à la différence de vitesse des player (9khz pour UTZ vs 7.8khz chez moi, et 4khz pour le CoCo). Il doit y avoir autre chose. Sans doute un truc que je fais mal quelque part.

De ce que je comprends UTZ travaille en numérique au max et fait la conversion 1 bit à la toute fin du process temps réel (il joue le PWM de l'échantillon précédent pendant le mixage des 3 échantillons actuels.) J'ai essayé de faire pareil sur thomson, mais lez manque de registres fait qu'on doit passer par la mémoire, ce qui ralentie de beaucoup trop la vitesse de traitement.

Donc pour l'instant il n'y a que le 6bits qui marche sur thomson. Le buzzer est beaucoup trop décevant pour faire autre chose que du streaming.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] Jouer des MODs amiga

Message par Daniel »

Entre temps j'ai fait l'essai de soustraction de la composante continue locale (calculée sur 100 échantillons à 6kHz).
Voilà ce que ça donne en 8bits à 6kHz. La transformation ne dénature pas la musique. Il reste à convertir en 1 bit pour juger le résultat.
One_World_8bits_6khz.zip
(1.04 Mio) Téléchargé 109 fois
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] Jouer des MODs amiga

Message par __sam__ »

Oui ca sonne bien, mais reste à entendre en mode 1bit. C'est là où on entends mieux le bruit de fond.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] Jouer des MODs amiga

Message par Daniel »

Tu as raison, en 1bit 6kHz c'est horrible. Selon la méthode utilisée pour la conversion on obtient soit un bruit blanc, soit un sifflement à 3kHz, superposés à la musique et difficilement supportables.

Es-tu sûr que les exemples sur ZX et Coco sont à des fréquences aussi basses ? Si les bits sont émis à plus de 20kHz le sifflement est à la moitié de cette fréquence. Au-delà de 10kHz c'est moins gênant pour de vieilles oreilles.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [THOMSON] Jouer des MODs amiga

Message par __sam__ »

J'ai étudié le code de UTZ. Il y a 3 voix. Chaque voix contient un volume entre 1 et 8. Il somme ces 3 voix et obtient 3*7=21 valeurs de volume. Ces 21 valeurs correspodent à 21 rapports cycliques possibles. Ces 21 rapports correspondent à 21 positions dans le code du mixing où il change la valeur du buzzer. L'ensemble du traitement dure environ 110µs. Il a donc une routine faisant 21 niveaux de PWM à 9khz. Ces 21 niveaux reviennent à avoir une position numérique du haut-parleur de -10 à 10.

Avec cette façon de faire, le silence (position 0 du HP) est une alternance de crénaux 0/1 de 55µs de long, ce qu'on peut assimiler à un sifflement à 18khz. C'est sans doute trop haut pour être capturé par un micro non hi-fi. L'explication de la qualité est certainnement là dedans.

Il ne sera pas évident de faire la même chose sur thomson, le 6809 ne me semble pas suffisament rapide (manque de registres et d'instuctions arithmétiques registre à registre). Le Z80 s'en sort car avec ses deux banques de registres, UTZ arrive à faire en sorte que la routine de mixage n'utilise en tout et pour tout que 4 accès mémoire. Tout le reste se fait dans les registres, et c'est sacrément plus rapide.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [THOMSON] Jouer des MODs amiga

Message par Daniel »

Pour faire mieux sur Thomson nous connaissons déjà une possibilité : remplacer le 6809 par un 6309. Mais le gain ne sera pas énorme. On peut espérer entre 40% et 60% grâce au nombre de cycles réduit de beaucoup d'instructions, aux nouvelles instructions et aux registres supplémentaires. Je n'ai pas encore exploré cette voie car malheureusement peu d'utilisateurs Thomson voudront changer leur processeur, surtout quand il est soudé. Par contre en émulation c'est plus facile, il n'y a qu'une case à cocher.
Daniel
L'obstacle augmente mon ardeur.
Répondre