Musique1-bit sur VG5000

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

joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Musique1-bit sur VG5000

Message par joaopa »

Bonjour,

mon interpréteur Lisp étant presque terminé, je souhaiterais faire une petite démo de son 1-bit sur VG5000. Je suis au commencement du début de la compréhension de ce sujet :mrgreen:

Commençons par le matériel: le VG5000. Il n'y a rien sur la gestion matérielle du son dans les documents techniques. En lisant la ROM, je crois avoir compris que le beeper est activé par le port $AF du Z80. Les valeurs possibles données au port $AF ne semblent avoir que deux possibilités: 0 et 8. Est-ce bien le cas? J'ai essayé de passer d'autres valeurs au port $AF, mais mes problèmes auditifs ne me permettent pas de vérifier si il y a une différences dans les sons émis. :cry:

Les sons compexes semblent être réalisés en jouant sur la fréquences d'envoi des données au beeper. Toujours exact?

Merci d'avance pour les réponses que vous pourrez m'apporter.
Dernière modification par joaopa le 23 janv. 2016 03:59, modifié 1 fois.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Musique1-bit sur VG5000

Message par joaopa »

fichiers.zip
(32.42 Kio) Téléchargé 202 fois
Un essai dans le noir:

Je n'ai pas un vrai VG5000. Quelqu'un peut-il essayer sur une vraie machine pour vois si le sifflement y est aussi présent?
Sur dcvg5k, c'est très audible au début. A un certain moment ca s'atténue et ca reprend :?
Dernière modification par joaopa le 24 janv. 2016 18:45, modifié 1 fois.
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Musique1-bit sur VG5000

Message par Markerror »

Salut Joaopa,

Je viens de faire le transfert sur un VG5000 "stock", le son est de façon un peu surprenante très bon (j'avais un à priori négatif sur la musique 1 bit) ! Pas d'effet de souffle, on distingue bien la batterie et la basse (même si un poil faible). Les arpèges ressemblent à ce que l'on peut faire avec une puce AY.

Bref, c'est une vraie réussite ! Tu as repris du code Spectrum ?

Je vais à tout hasard faire un test avec une autre télé, je suppose que le résultat dépend aussi de cet appareil vu que c'est son haut parleur qui fait le boulot.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Musique1-bit sur VG5000

Message par joaopa »

En effet, c'est une adaptation d'un code spectrum. Donc tu confirmes que sur une vraie machine il n'y a pas les défauts entendus sur dcvg5k?

Ca serait assez génial...
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Musique1-bit sur VG5000

Message par Markerror »

J'ai essayé sur deux autres télévision, aucun problème.

Afin de pouvoir comparer, j'ai lancé le programme sur l'émulateur de Daniel. Je peux te dire que ça n'a rien à voir avec la vraie machine ! On entend bien une fréquence résiduelle asses infâme, le volume se réduit à certains moment, c'est largement moins bon que sur un VG5000. J'ai aussi l'impression qu'il y a une petite différence de vitesse (la musique est plus rapide sur l'émulation).

Bref, Daniel, va falloir retaper le code de l'émulation sonore :-).
Daniel
Messages : 17288
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Musique1-bit sur VG5000

Message par Daniel »

Tous les émulateurs ont le même problème, qui est lié à la fréquence d'échantillonnage. Avec un téléviseur, le son est analogique. Avec un PC le son est numérique. On envoie un échantillon à chaque période d'échantillonnage. Quand le son est généré à une fréquence supérieure à cette fréquence d'échantillonnage, il est complètement dénaturé. Quand il est proche de cette fréquence il y a des battements, qui se traduisent par des sifflements dans le haut-parleur.

Dans dcvg5k la sortie son n'est pas aussi sophistiquée que dans dcmoto. Dans dcmoto la valeur du bit est intégrée sur la durée de la période d'échantillonnage. Dans dcvg5k on utilise la valeur instantanée, ce n'est pas tout à fait conforme à la réalité.

Reste à savoir à quelle fréquence le bit son est calculé par le programme. En fonction de cette fréquence, je pourrais adapter celle de dcvg5k pour supprimer les sifflements, et éventuellement remplacer la valeur instantanée par une valeur intégrée.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
farvardin
Messages : 436
Inscription : 27 déc. 2014 16:07
Contact :

Re: Musique1-bit sur VG5000

Message par farvardin »

Bravo pour ce portage. Vas-tu publier le code prochainement ?
Je n'ai pu entendre que via l'émulateur, c'est déjà pas mal. Ça serait possible de l'enregistrer en mp3 ou autre sur un vrai VG5000 ?

Pour comparer, voici la version du même morceau sur spectrum : https://soundcloud.com/irrlicht-project ... opic-test1
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Musique1-bit sur VG5000

Message par joaopa »

Content que le programme fonctionne sur une vraie machine.
J'ai calculé (un peu à l'arrache il faut avouer) que le programme lit sur 15625Hz. Ca a l'air de coller avec l'auteur du moteur qui dit mixer à 15.6Khz
Avatar de l’utilisateur
farvardin
Messages : 436
Inscription : 27 déc. 2014 16:07
Contact :

Re: Musique1-bit sur VG5000

Message par farvardin »

Dans fuse (émulateur pour zx spectrum qui peut rejouer ce type de routine 1-bit), le son est assez proche de la réalité.
Le code source est dispo ici : http://fuse-emulator.sourceforge.net/
Daniel
Messages : 17288
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Musique1-bit sur VG5000

Message par Daniel »

En intégrant le niveau du buzzer sur la période d'échantillonnage il y a une amélioration dans dcvg5k. Si ce n'est pas suffisant, il faudrait poster un fichier .wav généré par le vrai VG5000 pour que je puisse essayer de le reproduire avec l'émulateur.
dcvg5k_20160123.zip
(168.88 Kio) Téléchargé 198 fois
Daniel
L'obstacle augmente mon ardeur.
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Musique1-bit sur VG5000

Message par joaopa »

Merci Daniel pour cette nouvelle version de dcvg5k. Avec mes pauvres oreilles, je n'entends plus le bruit de fond.
__sam__
Messages : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Musique1-bit sur VG5000

Message par __sam__ »

Whaaaaa, ca sonne super bien! Je suis jaloux :)
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
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Musique1-bit sur VG5000

Message par Markerror »

Il y a du mieux (moins de bruit de fond effectivement), mais cela n'a pas encore la qualité du son sur un vrai VG5000. Cela semble plus "métallique". On perçoit aussi à certains moments des petits claquements qu'il n'y a pas sur la musique.

Concernant la source Spectrum, c'est un player avec la musique codée en dur ou le gars utilise un tracker ? Ca pourrait être rigolo de faire un musiK7 (bon, j'en ai déjà un sur le feu exploitant la carte de TotO, faut vraiment que je le finisse... ).
Avatar de l’utilisateur
farvardin
Messages : 436
Inscription : 27 déc. 2014 16:07
Contact :

Re: Musique1-bit sur VG5000

Message par farvardin »

Le son rend bien mieux avec cette version, merci beaucoup Daniel !

il y a un modèle pour utiliser avec un tracker type milkytracker (format .xm), ensuite on utilise un convertisseur vers asm puis pasmo pour générer un fichier .tap. Voir ce fil :

http://randomflux.info/1bit/viewtopic.php?pid=469#p469

Sur VG5000 je ne sais pas comment faire, ça serait sympa d'indiquer la procédure et le code adapté (je viens d'enregistrer un morceau avec quattropic, j'aimerai entendre ce que ça donne sur le vg5000, même émulé)
joaopa
Messages : 512
Inscription : 14 sept. 2013 12:17

Re: Musique1-bit sur VG5000

Message par joaopa »

music.txt
(21.32 Kio) Téléchargé 90 fois
Le source est compilable avec l'assembleur présent dans WINAPE. Le must :D traduire le source en assembleur compatible Zen80

Pour faire cours, remplacer les ligne
and #10
out (#fe),a

par

and #8
out (#af),a

et supprimer les lignes

rdptn
in a,(#1f) ;read joystick
maskKempston equ $+1
and #1f
ld c,a
in a,(#fe) ;read kbd
cpl
or c
and #1f
jp nz,exit

exit
oldSP equ $+1
ld sp,0
pop hl
exx
ei
ret

J'essaie de voir si donner des autres valeurs au port $AF amène un autre son.
Dernière modification par joaopa le 24 janv. 2016 17:54, modifié 3 fois.
Répondre