Modérateurs: Staff Haute-Fidélité, Staff Univers Casques, Staff Juridique • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

Tous les câbles : modulation, alimentation, enceinte

Mesure analogique de l'impact des câbles numériques

Message » 29 Nov 2016 20:47

Bonjour,

Adobe Audition 3 propose ça :

Image

Image

Image

Michel...
Dernière édition par MickeyCam le 29 Nov 2016 20:54, édité 1 fois.
MickeyCam
 
Messages: 3548
Inscription: 30 Oct 2008 23:17
Localisation: Antibes, Alpes Maritimes
  • offline

Annonce

Message par Google » 29 Nov 2016 20:47

Publicite

 
Encart supprimé pour les membres HCFR

Message » 29 Nov 2016 20:50

Bon, je viens de voir que le mixeur de windows fout la grouille.
Voici l'enregistrement d'un blanc avec le réglage d'Audacity sur wasapi :

Image

Mieux ! :bravo:
La mauvaise nouvelle c'est que je vais devoir tout me retaper. :hehe:
Next step : je vérifie qu'en enregistrant sous cette config, AudioDiff maker me ressort une différence de cet ardre.

En parallèle le dev de mon soft avance.
J'ai décodé le format wav 24 bit (il y avait une feinte non documentée) et j'affiche 2 courbes avec un réglage de zoom.
Reste à faire le décalage temporel (très simple) et s'en sera fini de l'IHM.

Ensuite viendra la partie plus costaude de la soustraction de deux échantillons non synchros.
Je crois que ej vais faire du bicubique simple, la simulation d'un vrai filtre analogique attendra.

A suivre ...
JAVA Alive
 
Messages: 1893
Inscription: 12 Jan 2010 22:53
Localisation: Auvergne
  • offline

Message » 29 Nov 2016 20:51

MickeyCam > c'est plus une question de choix de driver d'enregistrement.
Mais il semble que j'ai la solution.
Que propose Adobe à ce niveau ?
JAVA Alive
 
Messages: 1893
Inscription: 12 Jan 2010 22:53
Localisation: Auvergne
  • offline

Message » 29 Nov 2016 20:54

Son propre pilote Audition 3 ou Creative ASIO
(j'ai ajouté deux images)

Michel...
MickeyCam
 
Messages: 3548
Inscription: 30 Oct 2008 23:17
Localisation: Antibes, Alpes Maritimes
  • offline

Message » 29 Nov 2016 20:59

Je creuse avec ce que j'ai pour l'instant, te tiens au jus.
Merci.
JAVA Alive
 
Messages: 1893
Inscription: 12 Jan 2010 22:53
Localisation: Auvergne
  • offline

Message » 29 Nov 2016 21:26

Pour tout ce qui est travail sur fichier audio il y a Sox.
C'est en ligne de commande.
thierryvalk
 
Messages: 4972
Inscription: 08 Mai 2012 9:39
Localisation: Belgique

Message » 29 Nov 2016 21:56

JAVA Alive a écrit:Je crois que ej vais faire du bicubique simple, la simulation d'un vrai filtre analogique attendra.


La précision sera probablement insuffisante pour ce qu'on cherche à faire. Normalement, ce qu'il nous faut, c'est un filtre en "cosine", comme dans les resampleurs ou les passe-bas intégrés aux encodeurs mp3 / aac / vorbis.

D'ailleurs, pourquoi "bi" cubique ? Je croyais que le "bi" voulait dire "en deux dimensions" :P

PS : oui, sacré différence, pour la mesure du bruit :bravo:
Pio2001
 
Messages: 5787
Inscription: 07 Oct 2003 12:50
Localisation: Neuville-sur-Saône
  • offline

Message » 29 Nov 2016 22:58

Honnêtement, ce sont de vieux souvenirs de math d'interpolation. Bicubique, bilinéaire, je sais plus, on verra bien.

Je vais faire la différence entre deux courbes dont je n'ai que les échantillons et ces échantillons sont désynchronisés d'un nombre décimal non-entier. Je ne peux pas soustraire échantillon - échantillon.

Je dois donc interpoler au moins une des deux courbes, idéalement comme le fera un dac, c'est à dire avec un passe bas sauf que je vais faire plus simple dans un premier temps. On verra bien.

Voici ou en est mon appli pour l'instant :

Image

La courbe rouge est une sinus 24 bits de très faible amplitute.
La courbe verte est une sinus d'amplitude 80%, donc énormément plus grande d'où la quasi verticalité.

J'en suis à la programmation derrière le bouton "align" qui va automatiquement aligner deux courbes décalées.
Ensuite il me faudra faire substract et save.

Au sujet de la précision, je pense que je suis ok maintenant niveau enregistrement, niveau de bruit rms sous les 100db.
Reste à voir ce que donneront Audio Diffmaker et mon soft avec ces enregistrement.

Les mesures publiées reste bonnes avec une précision de -84db ce qui, entre nous, est déjà largement suffisant pour très sérieusement mettre à mal cette histoire d'impact des câbles.
JAVA Alive
 
Messages: 1893
Inscription: 12 Jan 2010 22:53
Localisation: Auvergne
  • offline

Message » 30 Nov 2016 18:45

Bon, j'ai contacté le support RME pour savoir si le niveau de bruit est normal.
Ils ont un outil pour vérifier les niveaux de bruit (Digicheck).
Digicheck me donne -100db de bruit (peak) et -112db de bruit (RMS).
Donc tout semble ok et les mesures pour l'instant en page sont à -84db de bruit peak, l'equivalent RMS doit pas être loin des -100 donc finalement j'ai pas trop dit de conneries.

Reste à essayer d'avoir moins de bruit factice généré par la soustraction car j'ai retenté une comparaison avec Audio DiffMaker sur des nouveaux enregistrements faits en wasapi avec câble coax normal vs lui-même, j'ai toujours le même niveau de bruit dans le résultat de la soustraction.

Mon soft a un peu avancé hier, la fonction d'alignement auto est faite sur la base d'une interpolation ultra balaise de deux points à l'aide d'une droite. :ko:
Ca m'a fait réviser les équations de droites, hébé ... heureusement qu'il y avait internet. :siffle:

Voici le résultat avant l'alignement :
- zoom 9 = 9 pixels par sample sur l'axe x
- zoom 11 = 1.1^11 = 2.85x sur l'axe Y

Image

Et quand on click sur "align" avec la courbe rouge tracée avant la verte.
Regardez bien de près, il a de petits écarts qui peuvent apparaître jaunes si vous regardez de trop loin sur sur un trop petit niveau de zoom.
C'est le bruit en question.

Image
JAVA Alive
 
Messages: 1893
Inscription: 12 Jan 2010 22:53
Localisation: Auvergne
  • offline

Message » 30 Nov 2016 21:04

Intéressant.
Il y a deux sources possibles de bruit lié au calcul : horizontale et verticale.

Le bruit lié à l'interpolation (erreur verticale) se verra en comparant l'interpolation linéaire à une autre interpolation. A ce sujet, utiliser des filtres plus pro, comme un brickwall (Sinc) n'est pas plus compliqué que de faire une interpolation linéaire. Il suffit de convoluer sa réponse impulsionnelle avec le signal à filtrer.

Le bruit lié aux horloges (erreur horizontale) se verra en regardant le volume du résidu monter progressivement à partir du point où les deux wavs d'origine ont été alignés.
Pio2001
 
Messages: 5787
Inscription: 07 Oct 2003 12:50
Localisation: Neuville-sur-Saône
  • offline

Message » 30 Nov 2016 21:20

Magistrale démonstration JAVA alive :thks:

un gros +1 pour ton approche
Avatar de l’utilisateur
Igor Kirkwood
Membre HCFR
Membre HCFR
 
Messages: 6575
Inscription: 30 Nov 2007 11:17
Localisation: Briare
  • online

Message » 30 Nov 2016 21:27

La convolution, je l'utilise pour ma correction mais je ne connais pas vraiment le principe.
Je pense que ça reste dans le domaine du numérique.

Si c'est le cas, ça ne va pas, il me faut vraiment une interpolation, C.A.D. une fonction continue dont je puisse calculer la valeur à l’échantillon que je traite + le décalage (qui n'est pas entier).

J'implémenterai au moins un truc du genre polynomiale sur 4 points (le 2 d'avant et les 2 d'après).

Après tu parlais de cosine ? Was ist das ?
JAVA Alive
 
Messages: 1893
Inscription: 12 Jan 2010 22:53
Localisation: Auvergne
  • offline

Message » 30 Nov 2016 22:52

JAVA Alive a écrit:La convolution, je l'utilise pour ma correction mais je ne connais pas vraiment le principe.
Je pense que ça reste dans le domaine du numérique.


Tout-à-fait. Il s'agit de prendre deux fichiers wav. Un fichier source, et un fichier "de convolution". Dans le fichier source, tu remplaces chaque sample par le fichier de convolution, multiplié par la valeur de ce sample. Cela donne des images successives du fichier de convolution qui se recouvrent partiellement. Tu en fais la somme sample à sample, et cela te donne le fichier de sortie.

Voici une explication détaillée : http://www.dspguide.com/ch6/2.htm

JAVA Alive a écrit:Si c'est le cas, ça ne va pas, il me faut vraiment une interpolation, C.A.D. une fonction continue dont je puisse calculer la valeur à l’échantillon que je traite + le décalage (qui n'est pas entier).


Faut voir ce qui est envisageable de faire. Interpoler analytiquement implique de résoudre des millions d'équations. Convoluer implique de multiplier par un million le taux d'échantillonnage sur un buffer qui glissera le long du fichier à convoluer.

JAVA Alive a écrit:J'implémenterai au moins un truc du genre polynomiale sur 4 points (le 2 d'avant et les 2 d'après).

Après tu parlais de cosine ? Was ist das ?


C'est juste le nom d'un filtre passe-bas brickwall adouci. Pour couper à 20 kHz, par exemple, sa courbe de réponse sera plate jusqu'à 19500 Hz, elle descendra jusqu'à atteindre une atténuation de x0.5 à 20000 Hz (donc -6 dB), et x0 à 20500 Hz (donc moins l'infini, en dB).
Représentée sur une échelle verticale linéaire de 0 à 1, la courbe de réponse de 19500 Hz à 20500 Hz est un cosinus.

Dans le cas qui nous occupe, l'idée, si on part d'un enregistrement fait à 96 kHz, pour l'interpoler, serait de le suréchantillonner un certain nombre de fois (de l'ordre de un million de fois la fréquence d'origine), en insérant juste des zéros entre les échantillons connus.
Ensuite, appliquer un passe bas qui laisse tout passer de 0 à 47500 Hz, et qui coupe tout au-dessus de 48500 hz.
Ce passe-bas est l'opération clé qui réalise une interpolation parfaite. Il remplit les zéros entre les samples originaux. C'est exactement ce que font les DACs en interne.
Pour récupérer le signal décalé, il suffit de ne garder que les échantillons situés exactement aux endroits désignés par l'algorithme de recalage.

Quand je dis un million, je ne sais pas au juste. C'est à déterminer.
Pio2001
 
Messages: 5787
Inscription: 07 Oct 2003 12:50
Localisation: Neuville-sur-Saône
  • offline

Message » 01 Déc 2016 12:38

Je pense que c'est jouable de résoudre 2 000 000 d'équations simples (équivalent à 20s d'enregistrement).
Je vais rester sur une approximation linéaire bidon au départ, probablement polynomiale, on verra bien.
Repasser en discret changerai mon algo et mes structures de données, je le ferai si nécessaire.

Demain, je pars au ski. :mdr:
Le topic sera inactif une bonne semaine.
JAVA Alive
 
Messages: 1893
Inscription: 12 Jan 2010 22:53
Localisation: Auvergne
  • offline

Message » 01 Déc 2016 14:42

JAVA Alive a écrit:Bon, je viens de voir que le mixeur de windows fout la grouille.
Voici l'enregistrement d'un blanc avec le réglage d'Audacity sur wasapi :

Image

Mieux ! :bravo:


Ce n'est pas le mixer Windows qui met le binx : j'ai testé le mixer Windows qui est "bit-perfect" (à moins que tu penses que le faire fonctionner génère des perturbations electro-magnétiques influant sur ton enregistrement analogique.

Si si Mixer Windows parfaitement "bit-perfect", du moment qu'on ne mixe pas avec, ce qui reste un exercice compliqué sur un PC. :hehe:

C'est Audacity lui-même qui n'est pas "bit-perfect" en directsound et en MME : il perd un bit de définition en 16bit, ce qui fait que tes samples peuvent varier de+/- 0.00003 sur l'échelle de +1/-1. Je me suis rendu compte de cela en faisant un enregistrement en loopback sur ma carte son. Me demande pas pourquoi, j'en sais rien, c'est Audacity. Bref Wasapi obligatoire sur Audacity sinon résultats bidons.
robob
 
Messages: 5597
Inscription: 21 Mar 2007 19:23
Localisation: 95 (coté campagne)
  • offline



Retourner vers Câbles

 
  • Articles en relation
    Dernier message