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 : Carl, Papy.G, fneck

Avatar de l’utilisateur
yo_fr
Messages : 1329
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

Bien, Avec tout cela il ne manquait plus qu'une bonne concaténation :wink:

J'ai donc repris mon encodeur sous VB pour y intégrer un fichier son créé par un autre encodeur (celui pour le son), associé aux gif de sam puis mixer le tout à 61khz (1/4 pour le son, comme déjà dis!) et voila ce que cela donne :





Hihihi, je suis content ! :D :D 8)

par contre, je suis une nouille, pour mon 1er essai j'aurai pu prendre la bande son de l'image...
(Ne fait pas non plus attention à la pauvreté de l'image, avec des vidéos plus chargées cela fera pareil :!: )

* j'ai fait quelques optimisations et le fait d'ajouter le son ne m'a pas fait perdre de débit, voir même de gagner 1ko/s ... 8)
__sam__
Messages : 5592
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

félicitations! :D
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 : 13365
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: HectorDuino

Message par Daniel »

Encore un peu de mise au point et de synchronisation image-son, ça va être bientôt très convaincant.
Tout le monde disait que la vidéo ou le son numérisé étaient impossibles sur Hector. Yo_fr a fait les deux, et en simultané. Bravo !
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 5592
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

Je me demande quand même ce que donnerait le dither d'ordre 2.
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 : 1329
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

J'ai donc optimisé le code et les façons de transiter les infos spécifiquement pour le son. Je suis maintenant à 59.169Hz



Je vais essayer de travailler sur le dither car pour l'instant c'est le calcul d'erreur qui donne de meilleurs résultats (vidéo avec le calcul d'erreur).
__sam__
Messages : 5592
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

C'est pas mal en effet.
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 : 1329
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

Je suis tombé sur une bizarrerie dans vb net :
Lorsque je sauvegarde un tableau de byte () avec un objet stream binarywrite et que le tableau est rempli de 00 80 00 80 (vérifié en debug) le fichier contient des c2 80 c2 80. ..

Le plus drôle est que si je sauvegarde 80 00 80 00... J ai bien cela dans mon fichier ! (Idem si dans la 1er version je remplace les 00 par autre chose !)


Comme il s' agit bien de un tableau de byte et non de string ou autre char () je ne devrais pas être embêté par des pages de codes !

Le remplacement par un writeallbyte (ou dans un filestream je fais un write) ne change rien...

Une idée de ma bêtise ?
La je sèche !
__sam__
Messages : 5592
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

C'est pas une histoire d'encoage UTF-8 ou dans le genre ? $C280 me fait penser à des histoires de symbole "€".

Il y a probablement à truc à dire à l'ouverture du fichier pour qu'il n'interprète pas les bytes.
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 : 1329
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

C'est bien la que ça me gêne : un tableau de byte est (et devrait) rester un tableau de byte.

Je penche comme toi pour des problèmes de page de code que il interpréterait mais je vois pas où :
Déclaration :
F= New io.filestream ("file.snd",create,write )

Utilisation :
F.write (buff, 0,1024)

Avec buff un tableau de 1024 octets...
__sam__
Messages : 5592
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

Je ne connais pas VB.net, mais ici ils utilisent WriteAllBytes sur le nom de fichier de sortie: https://msdn.microsoft.com/en-us/library/9tk3bdxw.aspx. En effet la FAQ (https://msdn.microsoft.com/en-us/library/szz5syt3.aspx) inidique que pour écrire du binaire c'est WriteAllBytes qu'il faut utiliser.
The WriteAllBytes method writes data to a binary file. If the append parameter is True, it will append the data to the file; otherwise data in the file is overwritten.
Sinon il semble aussi être possible de passer par la classe BinaryWriter qui réalise une écriture binaire (https://msdn.microsoft.com/fr-fr/librar ... -snippet-1).
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 : 1329
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

Tout à fait !
C'est ce que je disais : les 3 méthodes donnent la même interprétation du tableau de byte !
C'est la que l' on trouve les limites du manage : y fait ce qu'il veut !

[EDIT]
C'est vrai qu un unicode 16 =00 80 se traduit par c2 80 en utf 8...mais pourquoi fait il cette transformation ?
Avatar de l’utilisateur
6502man
Messages : 10435
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: HectorDuino

Message par 6502man »

Tu devrais essayer d'écrire le buffer octet par octet :wink:

Après l'explication est que ta variable buff est convertie automatiquement dans le stream de sortie (à mon avis) .
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
__sam__
Messages : 5592
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: HectorDuino

Message par __sam__ »

La transformation est la même qu'en C avec les fichiers ouverts en "w" et pas en "wb" en C sous windows. Sous MSDOS/windows un fichier est a priori texte et une conversion a toujours lieu (au début cr/lf mais à présent les accents en utf-8 etc). Il faut mettre le "b" en C pour que la conversion n'ait pas lieu. Je sens que visual-basic prends le même parti: un fichier c'est forcément du texte en utf-8 pour lui. Je ne connais pas assez vb.net pour connaitre la façon de forcer un stream à être binaire, mais il semble qu'en passant par la classe BinaryWriter ca marche. Sinon en passant par File.WriteAllBytes() ca marche aussi.
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 : 13365
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: HectorDuino

Message par Daniel »

Ces langages modernes, sous prétexte de faciliter la tâche du programmeur, font automatiquement des choses pas toujours très compréhensibles à sa place. Ce sont autant de pièges. Je me suis fait souvent prendre avec les fichiers textes. Ma règle est maintenant d'ouvrir tous les fichiers en binaire, même les fichiers texte. Je préfère gérer moi-même le CR-LF et je n'utilise que l'ASCII. Ce n'est pas dans le sens du progrès, je le sais bien, mais on a la satisfaction intellectuelle de maîtriser la machine. Sinon c'est elle qui nous maîtrise. J'ai le même comportement avec les automobiles bourrées d'électronique. Mieux vaut tout désactiver pour rester maître de la conduite.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
yo_fr
Messages : 1329
Inscription : 13 août 2009 18:24
Localisation : 78...
Contact :

Re: HectorDuino

Message par yo_fr »

je suis un abr...ti !
Je suis en déplacement et je suis avec mon PC du boulot et donc pas avec tous mes outils habituels.
j'ai donc remplacé les fonctions de stream par de l'écriture byte à byte comme d'habitude, tant pis pour les optimisations de temps d'écriture. et.. et.. c'est pareil !!!
Alors je me suis posé LA bonne question : ma méthode de test est-elle la bonne ? En fait j'utilisais Notepad++ pour éditer les fichiers (en affichage Hexa). La bêtise était là : j'ouvre mon fichier avec Notepad et c'est lui le coupable et qui modifie de fichier ! En téléchargeant mon prog habituel (hexedit) j'ai pu constater ma bêtise :oops:
Toutes mes fonctions traitaient bien mes fichiers !
=> WriteAllBytes, les objets stream binarywrite etc. fonctionnent bien !

Vivement que je retrouve mon pc pour plus écrire de bêtises :oops: :oops:
Répondre