Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

Gain numérique linéaire vs son logarithmique

  • 79 réponses
  • 16 participants
  • 3 217 vues
  • 19 followers
Sujet de la discussion Gain numérique linéaire vs son logarithmique
Bonjour,

Mes questions vont sembler bizarres à certains, mais je vous les pose sait-on jamais.

J'ai l'impression, à mes oreilles, que lorsque j'augmente le gain master d'un mixage, cela ne change pas uniquement le volume, mais également le rendu spectral du morceau, ou plus précisément que les volumes des différents instruments n'augmente pas à la même vitesse, et que donc n'importe quel gain général change le rendu fréquentiel du master. Cela semble encore plus vrai si j'augmente par exemple de manière égale l'ensemble des gains de mes pistes.


Également à mes oreilles, j'ai le sentiment qu'un gain numérique n'augmente pas que le volume, mais change la dynamique du son, comme si un bit faible n'était pas égal à un bit fort... ou en tout cas que le gain est une fonction linéaire tandis que le son est lui logarithmique, ce qui nécessairement va modifier la dynamique lors d'un gain.

Suis-je fou ou valideriez vous mes intuitions ?

Un indice qui m'a amené à cette conclusion, est par exemple de voir que beaucoup d'enregistrements de classique ne sont pas "normalisé", comme si on choisissait un niveau d'enregistrement à la prise, et qu'ensuite on se gardait bien d'augmenter le gain de peur justement d'altérer l'empreinte sonore qui a été saisit.

Merci pour votre aide.
Afficher le sujet de la discussion
51
Citation :
Il y a de façon inhérente des approximations de calcul en audionumérique, ne serait-ce que pour un gain.

Oui, ce sont des valeurs discrètes, merci pour le scoop!
Maintenant c'est bien de vouloir démontrer que l'eau ça mouille, mais si tu fais abstraction des échelles de grandeur en jeu, ça n'a pas vraiment d'intérêt.
Pour un signal pleine échelle de 24 bit, ta distorsion elle est 140dB en dessous, ce qui fait un rapport de 10 000 000 :8O:
Et j'en parle même pas pour du 64 bit flottant, résolution à laquelle travail n'importe quelle STAN.
Tu peux nous donner le THD+noise de ton DAC et de tes enceintes qu'on rigole !? :roll:
52
tenor.gif
53
Pour sublime gate :

En effet c'était ma première interrogation, mais les tests que j'ai effectués étaient surtout pour contredire Dock's qui disait qu'un gain numérique n'ajoute aucun bruit. Or c'est donc faux. Il faut être précis dans ce que l'on dit !!


Pour en revenir à mon premier questionnement, je n'ai pas encore trouvé pourquoi... Encore une fois hier soir à l'écoute, cela me semblait évident. Oui peut-être ce n'est que dans ma tête je ne l'exclus pas. J'entends des différences en fonction du niveau de mon master. Alors je viens de découvrir que mon gain de sortie de RME fireface est peut-être en réalité numérique... Donc j'essaierais quand je me remet sur ma station de changer le switch analogique de sortie (-10 dBV, +4dBu et HiGain), et mettre mon gain numérique de sortie à 0.


Pour Dock's :

Je te trouve de mauvaise foi, je savais que vous alliez me tomber dessus à bras raccourcis ! Je n'ai jamais dit que c'était significatif. Je pose simplement des questions. Et je voulais simplement contredire ta fameuse phrase : un gain numérique n'ajoute aucun bruit.

Ensuite, et encore une fois c'est une spéculation, cela peut être impactant peut-être dans le cadre d'un mixage, avec des centaines de traitements, sachant que 2 distorsions non corrélées augmente de 3db ?

Je précise que le +480db que j'ai donné, c'est pour une simple sinusoïde en C3, en interne dans Ableton, donc en 64 bit. Je viens de tester pour un bruit blanc, et j'atteins -120 db au master avec 300db de gain.


Pour Noisey Houtan :

Nice !!! :bravo: Voilà je l'avoue je suis un être bionique venu du futur pour enquiquiner les gens d'audiofanzine. :mdr:

[ Dernière édition du message le 30/09/2024 à 21:20:03 ]

54
Ps : Tenez si ça vous intéresse, quelqu'un m'a envoyé ce lien, parlant d'un plugin qui irait dans mon sens... Je serais curieux d'en avoir vos impressions !!

https://www.airwindows.com/bitshiftgain/

Je vous met une petite citation : "Digital audio is like some crystalline structure: it’s fragile, brittle, and suffers tiny fractures at the tiniest alterations. There’s almost nothing you can do in digital audio that’s not going to cause some damage. But as long as you stick to 6 dB steps and rigidly control the implementation (BitShiftGain doesn’t even store the audio in a temporary variable!), you can chip away at that least significant bit, and the whole minutes-or-hours-long crystalline structure of digital bits can remain perfectly intact above it."

Apparemment il augmente par incrémentation les bit, sans toucher au mantisse.

:lol: Je vais tester ça quand je me met sur ma station

[ Dernière édition du message le 30/09/2024 à 21:41:26 ]

55
Citation :
les tests que j'ai effectués étaient surtout pour contredire Dock's qui disait qu'un gain numérique n'ajoute aucun bruit.

Je remet ce que j'ai écrit parce qu'il y a une petite subtilité qui t'as échappé:
Citation :
un gain numérique n'ajoute aucun bruit


Ce qui semble t'échapper c'est que le bruit de quantification est déjà là sur ta piste ou ta sine ou peu importe le signal que tu utilises.
Quand tu fais un gain, le résultat est arrondi de la même façon, avec une précision au moins égale voir supérieure à ton signal d'origine.
Le gain n'ajoute donc pas de bruit, le bruit est toujours au même niveau après ton gain car la précision (résolution) est toujours au moins la même, l'arrondi est toujours au même niveau.
C'est d'ailleurs ce que ton premier test a montré.

Donc avant d'invoquer la mauvaise fois, merci de faire un petit effort de compréhension.

Citation :
Je n'ai jamais dit que c'était significatif.

Elle est de quel côté la mauvaise fois là?
Tu veux que je te rappelle les posts ou tu mets ta main à couper que tu entends tout ça parfaitement même en aveugle?

Le soucis c'est que si au début tu étais dans une saine démarche de compréhension, là tu prends de plus en plus le chemin de celui qui ne sera satisfait que lorsqu'on le confortera dans ses certitudes.:|
56
Citation de manuel :
L’automation du niveau de volume entraîne un changement de gain, ce qui est une opération nécessairement non neutre.


WTF ?

Manuel ableton ref : 34.3.3 Automation du volume

https://www.ableton.com/fr/live-manual/11/audio-fact-sheet/#midi-fact-sheet


57
Citation :
Également à mes oreilles, j'ai le sentiment qu'un gain numérique n'augmente pas que le volume, mais change la dynamique du son

A un aucun moment je n'ai lu des arguments qui valident ce sentiment, y compris au travers de tes tests. et c'est le coeur de ton sujet, non pas des approximations inaudibles pour lesquels le qualificatif de "bruit" de quantification a pu t'induire en erreur.
58
Un gain va AMPLIFIER un bruit et non pas en rajouter.

En réalité, le gain va amplifier ET le bruit ET le signal, et donc laisser le SNR identique. Ça c'est le cas idéal et dans le cas d'un amplificateur analogique c'est mesurable par le facteur de bruit (SNR entrant / SNR sortant), facteur qui devrait rester insignifiant sur du matériel de qualité décente.

En numérique tout ceci n'existe plus du tout. Ton STAN manipule des signaux numériques, il n'y as pas d'erreur possible. Pour t'en convaincre, tu n'as même pas besoin de manipuler des signaux audios, tu peux bêtement faire des opérations en Python par exemple, prendre un nombre extrêmement petit et le multiplier par des nombres très grands puis le rediviser tu retomberas toujours sur ton nombre initial.

L'erreur peut venir au moment de la conversion A/D et D/A, et comme t'a expliqué Dock au dessus, le THD+N de ta carte son/DAC sera bien plus grand que l'erreur que tu dis entendre de propres oreilles.
59
Citation de bass-man13 :
En numérique tout ceci n'existe plus du tout. Ton STAN manipule des signaux numériques, il n'y as pas d'erreur possible. Pour t'en convaincre, tu n'as même pas besoin de manipuler des signaux audios, tu peux bêtement faire des opérations en Python par exemple, prendre un nombre extrêmement petit et le multiplier par des nombres très grands puis le rediviser tu retomberas toujours sur ton nombre initial.


Ça c'est juste factuellement faux. Tu as des erreurs d'arrondis partout dès que tu travailles en flottants.

Puisque tu suggères le python, réalisé à l'instant sans trucage :

Python 3.12.5 (main, Aug 22 2024, 13:11:09) [gcc 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 0.1 + 0.00000000000000001
0.10000000000000002


Voilà. L'explication est toute simple : 0.1 n'est pas représentable en flottants, et là je joue pile à l'endroit de l'imprécision.
Parce qu'en vrai :
>>> f"{0.1:.50f}"
'0.10000000000000000555111512312578270211815834045410'


edit : ah, tu parlais de multiplication. Jouons donc avec la multiplication :
>>> f"{0.1:.50f}"
'0.10000000000000000555111512312578270211815834045410'
>>> f"{0.1 * 0.1:.50f}"
'0.01000000000000000194289029309402394574135541915894'


En calculant de tête, je ne tombe pas trop sur le même résultat :D

[ Dernière édition du message le 01/10/2024 à 17:21:28 ]

60
Tu peux expliquer ton dernier calcul Alex.d stp, moi y'en a pas parler python :bravo:
61
Ahhhh Alex.d à la rescousse !!! :bravo::bravo::bravo: J'allais justement te citer pour contredire Dock's.


Citation de DocK'S :
Ce qui semble t'échapper c'est que le bruit de quantification est déjà là sur ta piste ou ta sine ou peu importe le signal que tu utilises.

Si le bruit de quantification est déjà sur la forme d'onde, il est annulé lorsque je fais le test en opposition de phase. Tout ce qui s'ajoute viendrait nécessairement de l'arrondi amené par le gain.


Citation de DocK'S :
Tu veux que je te rappelle les posts ou tu mets ta main à couper que tu entends tout ça parfaitement même en aveugle?

J'ai dit que je mettais ma main à couper que je saurais faire à l'écoute la différence entre un master en 24 et 32 bit.


Citation de DocK'S :
Le soucis c'est que si au début tu étais dans une saine démarche de compréhension, là tu prends de plus en plus le chemin de celui qui ne sera satisfait que lorsqu'on le confortera dans ses certitudes.:|

Mais pourquoi tant de hargne contre moi ?

Alex.d re-confirme qu'il y a bien un arrondi avec un gain numérique. Donc qui refuse de changer d'avis ?.. :mdr:


Citation de sublime gate :
A un aucun moment je n'ai lu des arguments qui valident ce sentiment, y compris au travers de tes tests. et c'est le coeur de ton sujet, non pas des approximations inaudibles pour lesquels le qualificatif de "bruit" de quantification a pu t'induire en erreur.

Ma question initiale, je vous l'ai posée, justement parce que je ne suis pas sûr de moi-même sur le sujet, et à plusieurs reprises j'ai admis que je pouvais halluciner. Donc oui j'en conviens après mes tests, la dynamique semble énorme avant d'atteindre une quelconque modification du signal qui soit audible. Après voilà, qui est Dieu sur terre ? Pas moi en tout cas, je reconnais que mes connaissances sur le sujet sont limitées. Est-ce qu'une modification du signal au-delà de la dynamique théoriquement audible n'a aucune influence sur l'impression sonore ? (de phase, spectrale..)


Alex.d que penses-tu de ce plugin ?

https://www.airwindows.com/bitshiftgain/


Voilà, juste chill quoi, mon questionnement initial est peut-être faux, il n'empêche qu'en cours de chemin nous avons soulevé des questions intéressantes non ? :P:
62
Non mais Dock's, don't feed TMTC...
Jean-Marc a déjà abandonné depuis plusieurs pages pour retourner faire des choses plus intéressantes (de la musique ou du son) qu'essayer de répondre à des inepties comme le fait de s'interroger sur l'influence de signaux ou de distorsions résolument inaudibles dans n'importe quelle mise en pratique réelle. Toi-même t'as mieux à faire avec ton lancement de studio...
Perso une fois passée ma petite vanne, je coche désormais au plus vite la case "ne plus suivre" pour laisser ce thread mourir dans son coin comme ceux lancés par Anonyme-x22 (j'ai presque pensé à un jumeaux honnêtement, ou un nouveau compte...)

Citation de gtmanure :
il n'empêche qu'en cours de chemin nous avons soulevé des questions intéressantes non ? :P:

Non
:coucou:

[ Dernière édition du message le 01/10/2024 à 21:18:04 ]

63
Citation :
Alex.d re-confirme qu'il y a bien un arrondi avec un gain numérique. Donc qui refuse de changer d'avis ?.. :mdr:

Tu peux citer le post dans lequel j'aurai dit qu'il n'y a pas d'arrondi ? :8O:
Et peux tu aussi m'expliquer clairement ce que tu cherches à contredire?
Parce que là tu contredis des trucs que je n'ai jamais écrit, mais que tu interprètes comme ça t'arrange.

Citation :
Si le bruit de quantification est déjà sur la forme d'onde, il est annulé lorsque je fais le test en opposition de phase.

Est-ce que tu comprend le concept de valeur discrète et de quantification ?

Citation :
Mais pourquoi tant de hargne contre moi ?

J'ai absolument rien contre toi à partir du moment où tu me fais pas dire ce que je n'ai pas dit et que tu fais un minimum d'effort de compréhension de ce que j'ai écrit.

@Noisey Houtan: cépafo, effectivement j'ai du boulot intéressant qui m'attend :volatil:

[ Dernière édition du message le 01/10/2024 à 21:27:17 ]

64
Citation :
Donc oui j'en conviens après mes tests, la dynamique semble énorme avant d'atteindre une quelconque modification du signal qui soit audible

... ce qui clôt le débat. Pour moi du moins.
65
Pour Noisey Houtan :

Ahhh quelle sympathie dis donc !

Rien ne t'oblige à suivre ou répondre à ce topic en effet, le forum d'audiofanzine ne t'appartient pas...

Mais peut-être que ton plaisir c'est de bizuter les gens qui posent des questions sincères.



Pour Dock's ;

Un arrondi se manifeste dans le signal par de la distorsion... Donc oui ça contredit ce que tu as pu dire.

Non je ne suis pas familier avec le concept de valeur discrète.



sublime gate

Oui pas de problèmes pour clore le débat. Encore une fois, si ce que je dis vous agace, rien ne vous oblige à répondre à ce topic. De toute façon cela ne m'intéresse guère de discuter avec des personnes désobligeantes.


66
Citation :
Un arrondi se manifeste dans le signal par de la distorsion... Donc oui ça contredit ce que tu as pu dire

Mais ou j'ai écrit le contraire ???:nawak:

Je cite mon post 6
Citation de DocK'S :
La distorsion dont tu parles c'est le bruit de quantification*, et sa valeur est au maximum d'un demi pas de quantification.
Et en 64 bit float il est à 290dB sous le niveau du signal, quelque soit ce niveau.
Alors je ne sais pas ce que tu entends, mais il est certain que ce n'est pas l'arrondi dû à un gain ou une atténuation dans une STAN...

...* le BDQ est un bruit car il n'est pas corrélé au signal (au dessus de 4 ou 5 bit) mais c'est aussi une distorsion car sa présence dépend de la présence du signal, pas de signal, pas de BDQ.
Contrairement au bruit analogique qui lui sera présent même en l'absence de signal.
67
Citation de DocK'S :
Tu peux expliquer ton dernier calcul Alex.d stp, moi y'en a pas parler python :bravo:


>>> f"{0.1:.50f}"
'0.10000000000000000555111512312578270211815834045410'


Je force l'affichage de 50 chiffres après la virgule pour 0.1. Visiblement, ça ne fait pas 0.1. Il y a une erreur d'arrondi. Rien de scandaleux : 0.1 n'est pas représentable de façon exacte en format IEE754, tout est normal.

>>> f"{0.1 * 0.1:.50f}"
'0.01000000000000000194289029309402394574135541915894'


Je prends le même 0.1, et je le multiplie par 0.1, et je demande d'afficher le résultat avec 50 chiffres après la virgule. On s'attendrait à ce que ça fasse 0.01, ou à la rigueur 0.010000000000000000555111512312578270211815834045410 (la représentation de 0.1 avec la virgule décalée d'une position), mais non, c'est encore autre chose. Là aussi, rien de scandaleux : 0.01 n'est pas représentable de façon exacte en IEE754, et l'arrondi n'est pas le même que pour 0.1 (les machines comptent en binaire, pas en décimal, donc pas étonnant).

Les machines calculent donc faux ? Oui, elles calculent toujours un peu faux. Mais on ne s'excite pas, le bruit observé ici est à -1500dB. Rappelez-moi le SNR de vos enceintes ? Là on a un bruit au milliardième de pet de mouche (unité SI officielle). Mais formellement, il existe. C'est tout ce que je voulais montrer.
68
Citation de gtmanure :
Alex.d que penses-tu de ce plugin ?

https://www.airwindows.com/bitshiftgain/


Je pense que c'est un grigri. Il est sorti un premier avril ?
69
70
Citation de alex.d. :
Citation de DocK'S :
Tu peux expliquer ton dernier calcul Alex.d stp, moi y'en a pas parler python :bravo:


>>> f"{0.1:.50f}"
'0.10000000000000000555111512312578270211815834045410'



Je force l'affichage de 50 chiffres après la virgule pour 0.1. Visiblement, ça ne fait pas 0.1. Il y a une erreur d'arrondi. Rien de scandaleux : 0.1 n'est pas représentable de façon exacte en format IEE754, tout est normal.

>>> f"{0.1 * 0.1:.50f}"
'0.01000000000000000194289029309402394574135541915894'


Je prends le même 0.1, et je le multiplie par 0.1, et je demande d'afficher le résultat avec 50 chiffres après la virgule. On s'attendrait à ce que ça fasse 0.01, ou à la rigueur 0.010000000000000000555111512312578270211815834045410 (la représentation de 0.1 avec la virgule décalée d'une position), mais non, c'est encore autre chose. Là aussi, rien de scandaleux : 0.01 n'est pas représentable de façon exacte en IEE754, et l'arrondi n'est pas le même que pour 0.1 (les machines comptent en binaire, pas en décimal, donc pas étonnant).

Les machines calculent donc faux ? Oui, elles calculent toujours un peu faux. Mais on ne s'excite pas, le bruit observé ici est à -1500dB. Rappelez-moi le SNR de vos enceintes ? Là on a un bruit au milliardième de pet de mouche (unité SI officielle). Mais formellement, il existe. C'est tout ce que je voulais montrer.


Autant pour moi Alex, je suis allé un peu trop vite en besogne et tu as totalement raison sur les manipulations de float. Je m'étais pas amusé à manipuler des nombres aussi petits. De toute façon un converto D/A utiliser des entiers avant la conversion D/A non?
Je fais de l'informatique appliquée et pas théorique, donc j'me soucie guère de ces arrondis là, qui sont totalement négligeables. Et comme tu le mentionnes dans ton message, un bruit à -1500dB c'est juste impossible à mesurer dans des conditions normales d'utilisation d'un DAW.
71
Tiens, en le revoyant, je me rends compte que j'ai écrit une connerie. 1500dB, c'est la dynamique totale d'un flottant 32 bits. Mais là on parle du bruit de quantification, donc il ne faut prendre en compte que la mantisse. Sur un flottant 32 bits, on sera à -144dB (24 bits de mantisse). Sur un flottant 64 bits, on sera à -318dB (53 bits de mantisse). C'est ça à un pouillème près, parce que l'encodage de la mantisse a un 1 implicite.
Et tout ça ne vaut que quand le résultat passe par la mémoire. Quand le CPU enchaîne les calculs et que ça reste en registre, il utilise en interne des flottants sur 80 bits (sur x86-64, du moins), avec une mantisse de 64 bits, et donc un bruit de quantification autour de -384dB.
Moins spectaculaire que 1500, mais quand même plusieurs ordres de grandeur en dessous de ce qui est perceptible par l'oreille humaine.
72
Citation :
Quand le CPU enchaîne les calculs et que ça reste en registre, il utilise en interne des flottants sur 80 bits (sur x86-64, du moins), avec une mantisse de 64 bits, et donc un bruit de quantification autour de -384dB.

Steinberg avait publié un papier à ce sujet, ça devait dater de 2003 de mémoire.

Et j'ajouterais au dernier post d'alex.d. qu'il n'y a pas de convention pour le placement du 0dBFS.
1500 dB de plage dynamique du 32 bit float ne veut pas dire qu'on est centré sur le 0dBFS avec 750dB de chaque côté.
A l'époque où nous avions fait une batterie de tests nous avions mis en évidence que le seuil bas était de l'ordre de 300 dB et que le gros de la marge était plutôt au dessus de 0dBFS.
Je vais essayer de retrouver le fil en question.

Edit: Trouvé

[ Dernière édition du message le 02/10/2024 à 12:40:59 ]

73
Ah oui, tiens, c'est étonnant ça. Sous Linux, dans jack le 0dbFS est mappé sur 1.0f, ce qui fait qu'on est à peu près centré.
74
Les tests datent de 2012 sur des STAN en 32 bit float, ça a peut-être évolué depuis.
Enfin ce n'est pas très important de toute façon, on a largement ce qu'il faut en dessous et au dessus, centré ou pas.
75
Citation de gtmanure :
Pour vous donner les résultats de mon expérience : J'ai d'abord comparé 2 sinusoides généré par Operator dans Ableton (donc en 64 bit). Une sinusoide à 0 dbfs et l'autre à -120 dbfs, compensé ensuite par un gain de +120 db et je n'ai rien en opposition de phase !

Mais mais mais... Si je complexifie un peu la chose, et que je met une onde de bruit loopé (la même je précise bien car j'ai dupliqué operator), j'ai quelque chose qui apparait en opposition de phase si ils ont 90db de différence ! Mon master m'indique qu'un son apparaît à -120 dbfs.

Sachant que toutes les autres formes d'ondes, je n'ai rien qui apparait au master.



Je "crois" comprendre ce que t'as fait et qu'il y a une explication possible à la différence que tu constates.


Ce que tu appels « onde de bruit loopé », c'est un fichier wave en 24 bits ?
Dans ce cas, pour 24 bits t'as 144 dB de dynamique dispo, le fait d’atténuer operator de 120 db avant de convertir en wave 24 bit, fait que tu obtiens en fichier qui n'as plus que 24 dB de dynamique (144 – 120).
Ce qui explique aussi comment niquer la dynamique en numérique avec un simple gain :clin: