Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Modérateurs : Papy.G, fneck, Carl
Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Hello,
J'ai enfin réussi à downgrader mon player de modules Amiga sur 8086.
Pour la petite histoire, j'ai développé Mod Master, de 1993 à 1995.
Comme je suis passé au 486, la dernière version de mon soft était code en assembleur 386 et VGA.
J'ai récupéré un Amstrad PC1640 il y a quelques mois et la découverte de GLX Player jouant des modules sur XT m'a motivé pour faire l'essai....
Le résultat est visible sur ma chaine Youtube:
https://www.youtube.com/watch?v=s_4U_h4bSqw&t=34s
Pas encore au niveau de GLX Player pour la vitesse de mixage, mais j'y travaille....
22KHz 4 Voies et 10KHz 8 Voies, pas mal quand même. C'est impressionnant en live
J'ai enfin réussi à downgrader mon player de modules Amiga sur 8086.
Pour la petite histoire, j'ai développé Mod Master, de 1993 à 1995.
Comme je suis passé au 486, la dernière version de mon soft était code en assembleur 386 et VGA.
J'ai récupéré un Amstrad PC1640 il y a quelques mois et la découverte de GLX Player jouant des modules sur XT m'a motivé pour faire l'essai....
Le résultat est visible sur ma chaine Youtube:
https://www.youtube.com/watch?v=s_4U_h4bSqw&t=34s
Pas encore au niveau de GLX Player pour la vitesse de mixage, mais j'y travaille....
22KHz 4 Voies et 10KHz 8 Voies, pas mal quand même. C'est impressionnant en live
-
- Messages : 2352
- Inscription : 06 avr. 2009 12:07
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Ca, ça me bluffe complètement. Je connaissais GLX Player. Mais comment vous faites pour mixer avec aussi peu de puissance. Faut m'expliquer.
Moi j'ai découvert les mods pour la première fois sur le 286 d'un pote à l'époque et j'étais jaloux parce que je ne pouvais pas faire la même chose sur mon XT.
Quelles cartes son sont supportées ?
Moi j'ai découvert les mods pour la première fois sur le 286 d'un pote à l'époque et j'étais jaloux parce que je ne pouvais pas faire la même chose sur mon XT.
Quelles cartes son sont supportées ?
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Merci
J'ai bien l'intention de rattraper GLX au niveau du mixage, pour le reste, mod master lui est déjà supèrieur.
La, j'ai downgrade Mod Master 2.2 qui supporte le HP Interne, SB, SBPro, SB16, Gravis et Covox.
J'ai supprimé partiellement le code Gravis pour faire de la place, mais j'aimerais pouvoir le faire fonctionner. C'est d'ailleurs mon intention première, faire fonctionner une gravis sur un XT.
J'ai découvert la premiere fois les .MOD sur mon PC1512, je ne me souviens plus du nom du player...
Et ensuite Mod Play sur 286 et plus.
Le mixage se fait en additionnant chaque sample à des vitesses et volumes different.
Pour le volume, on utilise une table précalculée, elle ne prends pas trop de place car il y a 64 niveaux de volume different.
Pour le vitesse, on fait 2 additions (Calcul en virgule fixe).
L'ennemis de la vitesse, c'est les boucles. Pour supprimer ce soucis, j'ai étendu les samples pour pouvoir calculer 64 échantillons d'un coup.
J'ajuste la position du pointeur (Boucle ou pas boucle) après le calcul des 64 échantillons.
Pour le fun, voici le Coeur du code de mixage: (J ai l'intention de publier les sources)
BH: Volume
AL: Incrément Décimal
BP: Incrément entier
CX: Mono/Stereo
MOV BL,ES:[SI] ;BL=Sample sans volume
MOV BL,[BX] ;DH=Sample avec le volume et BX offset Volume
ADD [DI],BL ;Mixage
ADD DI,CX ;CX=1 => Mono CX=2 => Stereo Changé en INC DI dans la version XT
ADD AH,AL ;Partie décimale
ADC SI,BP ;Partie Entière
J'ai bien l'intention de rattraper GLX au niveau du mixage, pour le reste, mod master lui est déjà supèrieur.
La, j'ai downgrade Mod Master 2.2 qui supporte le HP Interne, SB, SBPro, SB16, Gravis et Covox.
J'ai supprimé partiellement le code Gravis pour faire de la place, mais j'aimerais pouvoir le faire fonctionner. C'est d'ailleurs mon intention première, faire fonctionner une gravis sur un XT.
J'ai découvert la premiere fois les .MOD sur mon PC1512, je ne me souviens plus du nom du player...
Et ensuite Mod Play sur 286 et plus.
Le mixage se fait en additionnant chaque sample à des vitesses et volumes different.
Pour le volume, on utilise une table précalculée, elle ne prends pas trop de place car il y a 64 niveaux de volume different.
Pour le vitesse, on fait 2 additions (Calcul en virgule fixe).
L'ennemis de la vitesse, c'est les boucles. Pour supprimer ce soucis, j'ai étendu les samples pour pouvoir calculer 64 échantillons d'un coup.
J'ajuste la position du pointeur (Boucle ou pas boucle) après le calcul des 64 échantillons.
Pour le fun, voici le Coeur du code de mixage: (J ai l'intention de publier les sources)
BH: Volume
AL: Incrément Décimal
BP: Incrément entier
CX: Mono/Stereo
MOV BL,ES:[SI] ;BL=Sample sans volume
MOV BL,[BX] ;DH=Sample avec le volume et BX offset Volume
ADD [DI],BL ;Mixage
ADD DI,CX ;CX=1 => Mono CX=2 => Stereo Changé en INC DI dans la version XT
ADD AH,AL ;Partie décimale
ADC SI,BP ;Partie Entière
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
J'attend ça avec impatience !
IBM XT, 4,77Mhz, PC1512: 8Mhz ! Ca doit tout changer à ce niveau !
IBM XT, 4,77Mhz, PC1512: 8Mhz ! Ca doit tout changer à ce niveau !
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
a une époque j'avais codé un modplayer pour pc en mode 8086 mais c'était pour une machine plus rapide (mon 386sx16). La partie décodage était en turbo pascal et la boucle de replay en assembleur. je n'avais codé ni les effets ni même le volume par contre, juste la succession des notes à la "bonne" fréquence (mais il jouait un peu faux je crois ). je vais essayer de retrouver ça mais les disquettes 1.44 ont assez mal vieillit...
-
- Messages : 2352
- Inscription : 06 avr. 2009 12:07
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
J'aimerais bien tester ça sur mon TO16, qui tourne soit à 4.77 MHz soit à 9.54 MHz au choix. Covox, c'était le bidule sur le port parallèle, n'est-ce pas ? Ca me permettrait de tester facilement ; je n'ai plus ma Sound Blaster 1.5 depuis bien des années maintenant ...
-
- Messages : 7981
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
C'est la technique que j'utilise aussi dans mon dernier player de MOD pour Thomson. Avec une difficulté supplémentaire que le son est joué de façon synchrone (pas de buffer: les échantillons sont calculés un à un). Il faut donc que tous les chemins d'execution prennent le même temps. Oh et puis on est beaucoup plus lent que ne serait-ce qu'un Z80 de l'époque.
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
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Quand je vois qu'un 486 Dx2/66 a du mal à lire un .XM complexe, c'est encore plus méritant sur un Thomson.
Un 68030 à 16 Mhz (du Classic Color) a aussi beaucoup de mal, avec ModPlayer sur Mac.
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
@Sam,
Oui j'ai vu ton post et j'ai du mal à me plonger dans tes explications de sample 1 bit. (Je suppose que c'est du sample Delta)
8086 Domination utilise aussi la technique du mixage/Envoie de sample à vitesse fixe.
Mais pour faire ca, ils utilisent des sample de taille fixe (256 Octets) et précalculent les sample à differents volume et toute la partition.
Certains effet sont impossible à faire.
Au final, ca n'a plus grand chose a voir avec un fichier .MOD et ca ne fonctionne que sur un CPU donné à une vitesse donnée.
J'avoue ne pas avoir leur maitrise des macros assembleur, impressionnant, mais ca ne m'empêche pas de faire du code rapide
Je pense que pour ton player, ca se rapproche de ce principe: être cycle accurate sur un CPU unique.
ici j'essaie bien sur d'avoir un player qui gere les MOD au maximum, avec la variété des machines que l'on a.
Cette conversion de mon player sera utile pour les machines jusqu'au 286 16MHz voir plus (je ne sais pas ce que peux faire un 386 au max)
J'ai déjà un post sur ma video me demantant de supporter le DAC du tandy 1000 (Pour le Tandy 1000 SL, TL et RL je suppose)
Ca a du sens, vu que cela evite de dénaturer la machine avec une Sound Blaster et il est difficile d'utiliser des cartes ISA sur ces machines
Oui j'ai vu ton post et j'ai du mal à me plonger dans tes explications de sample 1 bit. (Je suppose que c'est du sample Delta)
8086 Domination utilise aussi la technique du mixage/Envoie de sample à vitesse fixe.
Mais pour faire ca, ils utilisent des sample de taille fixe (256 Octets) et précalculent les sample à differents volume et toute la partition.
Certains effet sont impossible à faire.
Au final, ca n'a plus grand chose a voir avec un fichier .MOD et ca ne fonctionne que sur un CPU donné à une vitesse donnée.
J'avoue ne pas avoir leur maitrise des macros assembleur, impressionnant, mais ca ne m'empêche pas de faire du code rapide
Je pense que pour ton player, ca se rapproche de ce principe: être cycle accurate sur un CPU unique.
ici j'essaie bien sur d'avoir un player qui gere les MOD au maximum, avec la variété des machines que l'on a.
Cette conversion de mon player sera utile pour les machines jusqu'au 286 16MHz voir plus (je ne sais pas ce que peux faire un 386 au max)
J'ai déjà un post sur ma video me demantant de supporter le DAC du tandy 1000 (Pour le Tandy 1000 SL, TL et RL je suppose)
Ca a du sens, vu que cela evite de dénaturer la machine avec une Sound Blaster et il est difficile d'utiliser des cartes ISA sur ces machines
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Le player avance bien.
Il fait 50ko de moins. L'affichage est corrigé. J'ai ajouté un affichage d'infos de débug et il stoppe le mixage si le cpu ne suis pas. (Plus de plantage)
J'ajouterais bientôt le triple buffering pour qu il ny ai plus de craquement quand le cpu est trop lent.
J ai comparé le replay de glx player protracker et mod master. Mon player est vraiment bcp plus proche de protracker. Il ny a pas photo.
Il fait 50ko de moins. L'affichage est corrigé. J'ai ajouté un affichage d'infos de débug et il stoppe le mixage si le cpu ne suis pas. (Plus de plantage)
J'ajouterais bientôt le triple buffering pour qu il ny ai plus de craquement quand le cpu est trop lent.
J ai comparé le replay de glx player protracker et mod master. Mon player est vraiment bcp plus proche de protracker. Il ny a pas photo.
- exocet
- Messages : 82
- Inscription : 23 févr. 2017 12:57
- Localisation : Londres, Royaume-Uni
- Contact :
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Belle initiative ! Mod Master fut le premier lecteur de modules que j'ai utilisé je crois
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Ça alors !
Moi qui pensais que mon player était inconnu.
Quand je vais sortir la première version de mod master xt je pense qu'il sera plus connue qu'à l'époque.
Moi qui pensais que mon player était inconnu.
Quand je vais sortir la première version de mod master xt je pense qu'il sera plus connue qu'à l'époque.
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Hello,
De Gros progrès.
Apres ajout du mixage sur 4 Tampons et le Skip du mixage de la voie en cours si le mix a 2 buffer de retard:
Mixage du module enigma.mod à 30KHz et Crystal dream 2 part 1 à 18KHz avec quasi aucun glitch audible…
J'ai aussi corrige des bug de replay.
En 1993, la premiere version de mon soft avais de la peine à 6HKz en 4 Voies sur HP Interne……….
Je n'ai pas encore testé en Covox, j'ai commandé une CVX4 qui devrait arriver bientôt.
Il me manque une carte extension mémoire pour tester tout ca sur le Tandy 1000 EX.
Ensuite, si il y a des volontaires pour tester, je pense pouvoir stabiliser une version dans la semaine.
De Gros progrès.
Apres ajout du mixage sur 4 Tampons et le Skip du mixage de la voie en cours si le mix a 2 buffer de retard:
Mixage du module enigma.mod à 30KHz et Crystal dream 2 part 1 à 18KHz avec quasi aucun glitch audible…
J'ai aussi corrige des bug de replay.
En 1993, la premiere version de mon soft avais de la peine à 6HKz en 4 Voies sur HP Interne……….
Je n'ai pas encore testé en Covox, j'ai commandé une CVX4 qui devrait arriver bientôt.
Il me manque une carte extension mémoire pour tester tout ca sur le Tandy 1000 EX.
Ensuite, si il y a des volontaires pour tester, je pense pouvoir stabiliser une version dans la semaine.
-
- Messages : 7981
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Par rapport au HP interne de 1993. Comment réalisais-tu le changement de rapport-cyclique du beeper ?
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
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: Mon Player de modules amiga sur 8086. GLX Player n'est plus le seul sur la place...
Le HP Interne se brancher sur un Timer que l'on programme en "PWM"
Changer la valeur se fait avec juste un "OUT", Comme pour le Covox.
Changer la valeur se fait avec juste un "OUT", Comme pour le Covox.