[Thomson] Musique 1 bit avec SDDRIVE

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

Répondre
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

[Thomson] Musique 1 bit avec SDDRIVE

Message par Daniel »

SDDRIVE accède à la carte SD en mode SPI, c'est à dire que les données ne sont pas lues par octets complets, mais par bit, un par un.
Cette caractéristique en fait le périphérique idéal pour du streaming de musique 1 bit.

Pour tester j'ai fait un premier essai (très imparfait) pour MO5. Le résultat est assez encourageant et devrait pouvoir être amélioré.
Avec un vrai MO5 le moniteur ou le téléviseur ont une bande passante limitée et filtrent les aigus, par contre avec un PC attention à vos oreilles :wink:
invaders1bit_win.zip
(403.88 Kio) Téléchargé 220 fois

invaders1bit.png
invaders1bit.png (1.18 Kio) Consulté 3303 fois

Voici le fichier .sd pour SDDRIVE (fonctionne uniquement sur MO)
invaders1bit_sddrive_mo.zip
(350.9 Kio) Téléchargé 112 fois
Dernière modification par Daniel le 21 juin 2021 20:25, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
gleike
Messages : 1341
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par gleike »

Effectivement, on entend bien les aigus :lol:
ça frise les ultrasons.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Daniel »

C'est bien meilleur sur les vraies machines.

Avec l'émulateur il y a un gros problème de restitution, car le son est joué à 25000 échantillons par seconde, alors que la musique 1 bit est jouée à 40000 bits par seconde. Il en résulte des phénomènes assez complexes qui provoquent ces sifflements désagréables.

Les vraies machines n'ont pas ce problème car elles jouent effectivement 40000 bits par seconde.

[Edit 20:30]
J'ai modifié la fréquence de sortie de l'émulateur pour atténuer le sifflement et uploadé à nouveau le programme win.exe dans le premier post.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
hlide
Messages : 3469
Inscription : 29 nov. 2017 10:23

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par hlide »

"virus détecté" windows refuse le téléchargement.
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par jasz »

La version windows crachote beaucoup niveau harmonique.
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Zebulon »

Merci pour cette découverte. Je suis allé voir leurs autres productions et c'est plutôt sympa comme style. Concernant le 1-bit si c'est la même technique que les exemples que tu précharges sur la carte microSD des SDDRIVE j'ai en effet pu me rendre compte que ça sonne bien sur le téléviseur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par __sam__ »

Heu.. je me trompe ou on avait déjà évoqué ce sujet avec SDMOTO ? C'était là: https://forum.system-cfg.com/viewtopic.php?t=6013

J'ai rapidement revu le fil correspondant. On avait fait pas mal de tests, avec analyse du signal sous audacity. Par contre comme les fichiers étaient sur cjoint, je doute qu'ils soient encore disponibles pour comparer. Il faudrait les reproduire. Heureusement les sources sont tous dispo dans l'ancien fil. Si quelqu'un se sent le courage.. (pour ma part sur suis sur un autre truc.. dont je ne vais pas tarder à parler si ca avance comme je le veux.)
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] Musique 1 bit avec SDDRIVE

Message par Daniel »

Oui, nous avions bien avancé sur le sujet avec DCMOTO. Il faudrait reprendre les tests faits à l'époque. Je dois avoir tout gardé dans mes archives, il faut que je cherche.

Avec SDMOTO, le signal d'horloge monte et descend par soft. Il faut 4 cycles pour chaque changement, soit 8 cycles par bit.
Avec SDDRIVE le signal d'horloge est généré par le matériel, on économise les 8 cycles par bit, c'est considérable.

C'est pourquoi j'ai eu envie de reprendre les essais. Le morceau Space Invaders est un début, sans aucune recherche d'optimisation, pour montrer que c'est possible. Tout reste à faire en reprenant les projets précédents.

Il y a deux points à travailler :
- L'algorithme de conversion de 8 bits vers 1 bit
- Le traitement du délai de changement de bloc à la lecture de la carte SD.

Dans ce premier essai la boucle ne tient pas compte des changements de bloc, il y a donc une interruption périodique du son très audible.

Code : Tout sélectionner

;------------------------------------------------------
; Boucle de lecture d'un bloc (25 cycles / bit)
;------------------------------------------------------
PLAY2
  LDB   #$7F           ; initialiser B pour lecture  (2)
  LDX   #$1000         ; compteur pour 4096 bits
  LDA   $A7C1          ; pour MO5                    (5) 
PLAY3  
  LSRA                 ; perte du bit 0 (buzzer)     (2)
  CMPB  <$BF           ; lecture d'un bit dans CARRY (4)
  ROLA                 ; remplacement du bit 0       (2)
  STA   $A7C1          ; envoi du bit au buzzer      (5)
  LEAX  -1,X           ; comptage bits secteur       (5)
  NOP                  ; temporisation               (2)
  NOP                  ; temporisation               (2)
  BNE   PLAY3          ; nouvelle boucle             (3) 

Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Daniel »

hlide a écrit : 21 juin 2021 22:06 "virus détecté" windows refuse le téléchargement.
Le virus a laissé sa trace à l'écran. Deux ou trois coups de pistolet laser devraient suffire pour l'éradiquer :lol:

virus.png
virus.png (511 octets) Consulté 3234 fois
J'ai déjà, dans le forum, perdu beaucoup de temps à discuter des virus et des antivirus. Ça n'a servi à rien. Dorénavant je refuse toute discussion sur ce sujet.
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Daniel »

Zebulon a écrit : 21 juin 2021 23:10 Concernant le 1-bit si c'est la même technique que les exemples que tu précharges sur la carte microSD des SDDRIVE...
Non, SDDRIVE Music est du son 6 bits à 15152 échantillons par seconde, joué par le CNA : http://dcmoto.free.fr/programmes/sddriv ... index.html
Le sujet ici est la musique 1 bit jouée par le buzzer. La qualité n'est pas comparable.
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Zebulon »

D'accord merci pour la précision. Ceci explique la qualité. 1-bit c'est effectivement très peu mais j'aimerais me faire une idée sur la machine physique. A terme si tu avances sur le sujet ce sera possible de faire une version TO?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Daniel »

Nouvelle version du fichier .sd, compatible MO et TO :
invaders1bit_sddrive.zip
(350.96 Kio) Téléchargé 91 fois

C'est toujours la première version expérimentale, je vais essayer de l'améliorer en utilisant les méthodes décrites dans notre discussion de 2015.
https://forum.system-cfg.com/viewtopic.php?t=6013

[Edit]
Cette nouvelle version utilise un algorithme de diffusion d'erreur de 2015.
Elle semble meilleure, mais le craquement au changement de bloc reste bien audible.
invaders1bit_dither_sddrive.zip
(798.62 Kio) Téléchargé 91 fois
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Zebulon »

Merci Daniel j'ai écouté les deux morceaux hier. C'est quand même épatant de ressortir une musique identifiable mais le son semble venir de loin et le timbre est assez métallique. Le processeur est-il à 100% pour produire la musique à cette qualité ?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] Musique 1 bit avec SDDRIVE

Message par Daniel »

Le son est joué à la fréquence de 48000 bits par seconde, ce qui occupe le processeur à 100%.
Cette fréquence est suffisante pour obtenir un son ressemblant, mais il faudrait beaucoup plus pour avoir une bonne qualité.

Avec un ordinateur Thomson on n'ira pas beaucoup plus vite, par contre on doit pouvoir améliorer un peu l'algorithme de conversion en 1 bit et atténuer le claquement au changement de bloc de la carte SD.

SDSTREAM lit un octet à la même fréquence que SDDRIVE lit un bit, et donc joue la musique en PCM à 48000 échantillons par seconde. La différence de qualité est impressionnante. L'expérience de musique 1 bit avec SDDRIVE montre seulement que c'est possible. Pour les mélomanes SDSTREAM Music est la seule solution.
Daniel
L'obstacle augmente mon ardeur.
Répondre