HectorDuino

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Papy.G, fneck, Carl

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

Re: HectorDuino

Message par __sam__ »

Bingo! 8) Bravo à gleike qui gagne toute ma considération (oui je sais c'est pas grand chose, mais les temps sont dures :D )

Les gifs montrent qu'un hector pourrait jouer ces clips avec une assez bonne qualité.
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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: HectorDuino

Message par 6502man »

Pas mal du tout pour un Hector :D

La résolution n'est pas au maximum de l'écran de l'Hector HR !
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
yo_fr
Messages : 1336
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

Hélas si !
La résolution maxi en BR et de 112*77 mais en HR que de 230*221 (de tête). pour ne pas avoir de distorsion je suis en 204 * 153 (ok, je pourrais monter à 230 mais sur certaines vidéo j'ai plus assez de débit pour être correct).
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: HectorDuino

Message par 6502man »

C'est bien ce qui me semblait que ce n'était pas la résolution d'Hector en HR ;)

Je comprends tu as trouvé le compromis pour ne pas avoir certaines vidéos saccadés ou de trop mauvaises qualités.
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
yo_fr
Messages : 1336
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

Depuis le début de mes essais de son sur Hector, je suis un peu déçu du rendu du son.
Je suis également assez surpris de la qualité du son dans les 2 essais de ce fil :

viewtopic.php?f=25&t=7847&start=117

cela fait quelque temps que je travaille sur l'amélioration de la qualité du son produit pour Hector.
Le meilleur résultat est obtenu par cet algo (en VB) :

Code : Tout sélectionner

' Sommateur
Echant = Echant - o

' Integrator
Integrator += Echant

If Integrator >= 0 Then
          Byte_Hector = &H80 'mise en place du bit son
          o = 127  ' &H80
Else
           Byte_Hector = &H0  'mise en place du bit son
            o = -127
End If
Ce calcul étant effectué, pour 1 seconde de son, 66 666 fois (taux d'échantillonnage de l'émulation de l'HectorDuino), ce qui fait que le source (le wav) est à 66 666 Hz (octet signé) et que j'ai un octet (valant 0 ou &80) pour Hector (c'est le bit 7 qui génère le son sur Hector).
Le son généré par VBHector et la machine sont assez proche et très bruité. Une fois le mur du bruit passé le son est relativement bien restitué (même dans les aiguës)

J'ai aussi essayé l'algode __sam__ :

Code : Tout sélectionner

Echant -= Taux * d2             '  Récupération de l'erreur n-2
Echant += (1 + Taux) * d1    '  Récupération de l'erreur n-1

If Echant > 0 Then
        Byte_Hector = &H80 'mise en place du bit son
        Sortie = 127   ' valeur son à prendre en compte
Else
        Byte_Hector = &H0  'mise en place du bit son
        Sortie = -127  ' valeur son à prendre en compte
End If

d2 = d1                        ' Déplacement de l'erreur
d1 = (Echant - Sortie)   ' Calcul nouvelle erreur !
(avec différentes valeur de Taux)


PS : Je ne sais pas quel sont les extensions de fichier maintenant autorisées sur le forum (depuis la nouvelle version) pour pouvoir joindre facilement un extrait de son produit par Hector...
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

A 66khz, le son ne doit pas être mauvais du tout, et cela quel que soit l'algorithme de conversion utilisé.

Récemment le plus simple que j'ai trouvé et qui marche encore le mieux est la traduction du PWM physique: on a une valeur qui fait des dents de scie entre -128 et 127, et si elle est au dessus de l'échantillon on sort 1 sinon 0.

Code : Tout sélectionner

        ' Dent de scie
	Saw = Saw + 32 ' vitesse de zone en pente, mettre 16 pour une pente plus faible.. (à modifier empiriquement)
	If Saw>127 Then 
		Saw = -128 ' descente brutale; /|/|/|/|/|..
	End If
	' Comparaison échantillon vs dent de scie, et sortie du bit
	If Echant < Saw Then
		Byte_Hector = &H80
	Else 
		Byte_Hector = &H00
	End If
Enfin pour les fichiers joints, le mieux c'est encore un bon vieux ZIP.
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
Avatar de l’utilisateur
yo_fr
Messages : 1336
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

OK pour cet algo, sam.
Par contre étant en fréquence 66 666Hz (sur vbhector) et 59150 Hz sur Hector reel, il faut que je monte la fréquence en dent de scie : là avec 32 j'ai
fscie = 66 666 * 32/256 soit 8,3Khz soit une fréquence audible. il faut monter le coef à 128 pour obtenir quelque chose d'inaudible (soit à 33khz, même 64 est audible à 16khz).
Avec un coef aussi haut on ne peut plus dire que le signal est en dent de scie mais plutôt aléatoire (et de 3 valeurs seulement). Je me pose la question de savoir si en mettant un signal aléatoire à la place de SAW (disons entre -24... +24 par rapport au signal -128 +127) ne serait pas une méthode (celle du Dither par exemple !)

Je n'ai donc pas obtenu de bon sons et pour l'instant le meilleur algo est le Sigma Delta que j'ai donné, mais qui laisse énormément de souffle dans le son. Je vais essayer cette semaine enregistrer le son produit par Hector le mieux possible, mais là je n'ai pas encore de bonne chaîne d'enregistrement (j'ai essayé de connecter la sortie line (de la prise péritel) à l'entrée micro en mettant le prés ampli à 0 mais c'est pas bon du tout. Je creuse la question pour pouvoir vous faire partager là où j'en suis.
JJ
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

yo_fr a écrit : 17 oct. 2017 19:32 Par contre étant en fréquence 66 666Hz (sur vbhector) et 59150 Hz sur Hector reel, il faut que je monte la fréquence en dent de scie : là avec 32 j'ai
fscie = 66 666 * 32/256 soit 8,3Khz soit une fréquence audible.
Je ne comprends pas bien: à 8khz le signal devrait être pas mal correct. Quand tu dis qu'il n'est pas bon avec la valeur 32, ça veut dire que ça ressemble à rien, ou autre chose style : on entends trop la porteuse à 8khz? Par curiosité, mets 16 ou 8 à la place du 32, ça va descendre la fréquence de la porteuse pour l'envoyer dans le signal utile et donc la masquer un peu plus j'espère.
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
Avatar de l’utilisateur
yo_fr
Messages : 1336
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

Ce que j'entend par là c'est que le signal en dent de scie est à 8khz. il s'additionne au signal à numériser.
et c'est bien ce que j'ai : j'ai bien le son à 8KHz ET le signal à numériser qui sont joué en même temps (le 8KHz étant bien restitué par mon systeme qui fonctionne à 66KHz.


[edit] Le son obtenu sur VBHector avec n=64.

fichier supprimé
Avec un descendant jusqu'à n=2 le son devient de plus en plus aigue et le son numérisé devient de moins en moins reconnaissable.
Dernière modification par yo_fr le 17 oct. 2017 21:43, modifié 1 fois.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

En principe ca ne devrait pas s"additionner au sens algébrique, mais faire un bon vieux PWM comme sur cette figure:
Image
Quand la dent est au dessus du signal on a 0, sinon 1. On a donc des largeurs d'impulsion proportionnelles au signal. Ca donne une sortie comme ceci
Image

Heuuuu sinon on entends rien dans stair64.mp3 (sauf la TV au loin en poussant à fond l'ampli)
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
Avatar de l’utilisateur
yo_fr
Messages : 1336
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

oups c'etait pas le bon...
sinon voila ce que cela donne avec l'encodage Sigma Delta :
LSD.zip
(773.03 Kio) Téléchargé 173 fois
Et revoici avec l'encodage scie :
Stair_scie.zip
(270.17 Kio) Téléchargé 176 fois
(pour info la tonalité est juste : Stairway to heaven est repris par Jadyn Rylee...)
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

La version dent de scie m'étonne... le sifflement 8kz est vraiment très très fort, comme si finalement le signal était vraiment hyper souvent trop autour de 0. Peut-être faudrait-il multiplier Echant par une grosse valeur (16?) pour voir si ca ne réduit pas le sifflement.
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
Avatar de l’utilisateur
yo_fr
Messages : 1336
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

oui, et le pas étant très grand (aller de -127 à 128 par pas n de 32, ou 64 - ce qui ne donne que 8 valeurs pour n=32) cela ne fait pas du dent de scie mais plutôt du carré (bon, marche d'escalier); c'est pour ça que ta valeur de 32 m'étonnait au départ...
Il faut peut être un échantillonnage beaucoup plus important et mettre un pas de 2 ou 4.

En réfléchissant : Le son étant, par exemple limité à 16KHz, il faudrait une bonne 20aine de dents pour avoir le découpage PWM tel que dessiné ci dessus. Soit une fréquence de 20*16 = 320khz pour la dent de scie...moi je ne suis qu'à 66KHz.

Ou, en prenant à l'inverse, avec une dent de scie de 66khz on ne peut passer qu'un son de 3khz... ce qui est assez faible. Il faut donc pour obtenir ce que tu as dessiné que le son à échantillonner soit filtré à 3KHz...
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

8 valeurs devraient être largement suffisante poure faire un PWM avec un début de fidélité. Sur thomson je viens de réaliser un PWM avec a peine plus de niveaux, mais a une fréquence bien plus faible et on reconnait bien les morceaux: voir ici.
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
Avatar de l’utilisateur
yo_fr
Messages : 1336
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

Salut,

J'ai fini par aller au bout : J'ai créé un pbc pour finir proprement l'HectorDuino :
PCB.JPG
PCB.JPG (191.96 Kio) Consulté 5446 fois
et on passe à la réalisation :
imm_2017_11_09_09_13_36_842.JPG
imm_2017_11_09_09_13_36_842.JPG (56.32 Kio) Consulté 5446 fois
Maintenant il faut que je reçoive le pcb et les accessoires qui me manque.
bientot plus d'info.
JJ
Répondre