Se connecter
Se connecter

ou
Créer un compte

ou
FR
EN

expériences et réflexions sur les moteurs audio

  • 87 réponses
  • 16 participants
  • 8 625 vues
  • 19 followers
Sujet de la discussion expériences et réflexions sur les moteurs audio

Bonjour à tous.

 

Ce thread sera dédié aux discussions et expériences diverses concernant les "moteurs audio" des DAW.

RAS pour le moment, mais ça va pas tarder, on attend Bouyakaboy qui semble avoir du nouveau sur le sujet.

 

Je rappel qu'il y a déjà CE SUJET qui résume quelques tests réalisés.

Afficher le sujet de la discussion
51

Danguit->oui ça ok, je me suis mal exprimé.

Quand je fait l'export avec 180dB d'atténuation, et que je le compare au sample original après compensation, je retrouve quasi mon sample (le digicheck m'affiche un résidu vers -140dBfs), je suis donc en droit de penser que le SNR de mon sample n'a pas trop bougé, mettons pour l'exemple qu'il soit de 50dB.

Avec un SNR de 50dB donc, et un niveau de modulation à -186.9dBfs, ça laisse penser que j'ai du signal jusqu'à -236.9dBfs.

Hors il suffit que je baisse un peu le fader, et là mon SNR se dégrade à une vitesse Hallucinante, en reprennant le même chiffre, c'est comme si ces 50dB disparaissaient mais sur une échelle de 14dB.

Je sait pas si je suis plus clair et c'est peut être un truc tout con qui m'échappe, mais là ça me laisse perplexe.

 

 

Citation :

 

Le principal c'est que tu a trouvé des résidus à -180, alors qu'en sur modulant à +450 il n'y en a pas. Je trouve ça étrange.

 

 

 je n'ai pas fait le nul test avec l'expérience de surmodulation, j'ai juste constaté qu'il n'y avait pas de seuil "haut" ou en tout cas pas au même niveau que le seuil "bas".

 

[ Dernière édition du message le 14/11/2012 à 22:18:21 ]

52
Je suis désolé, mais j'ai du mal à suivre : vous postez trop vite ! :lol:
Vu que j'ai ingéré une quantité non négligeable de vin rouge de mauvaise qualité (qui a le goût de banane) ce soir, je n'ose pas m'aventurer dans des explications qui seront malheureusement hasardeuses dans mon état :bravo:

J'avoue aussi ne pas avoir le courage de tout lire depuis mon dernier post ce soir, mais je le ferai dans la semaine.

J'ai tout de même lu quelque chose qui me pousse un peu à réagir.
Citation :
Comme Cubase calcule en interne les traitements au format 32 bits virgule flottante, la réserve dynamique est virtuellement illimitée
"virtuellement illimitée" ce n'est pas une façon commercialement acceptable de dire qu'elle est "réellement limitée" ?

Mais ce n'était pas vraiment le sens de mon propos.

Le codage en virgule flottante permet de "libérer des bits" quand la dynamique est faible pour gagner en précision.
Inversement, quand la précision n'est pas requise il est possible de sacrifier celle-ci pour gagner en dynamique.
C'est ce comportement qui permet d'assurer un "SNR de quantification" constant (contrairement à ce que permet de faire le codage en virgule fixe).

Ceci laisse libre un "coefficient d'échelle" pour l'implémentation ou la représentation du signal. Je m'explique :

Informatiquement, on peut très bien choisir de représenter le niveau "0dB" par la valeur "1" codée en float... mais on peut tout aussi bien appliquer un facteur 2 est représenter le "0dB" par la valeur "2" codée en float.
Ceci permet de décaler le moment où l'on arriver en "butée de dynamique" ou en "précision minimum".

Je ne suis pas sûr qu'en interne tous les DAW proposent la même convention (le même facteur d'échelle en quelque sorte) sauf si la compatibilité avec les plugin VST en impose une, au si l'exportation en .wav 32bits float en impose une autre (peut-être différente de celle du VST).

Je regarderai les normes pour voir si elles précisent quelque chose à ce sujet ; je serais surpris du contraire.
53
Citation :
"virtuellement illimitée" ce n'est pas une façon commercialement acceptable de dire qu'elle est "réellement limitée" ?
Dans la mesure où les valeurs sont codées dans un format limité cela ne paraît pas anormal, et même la valeur max est a priori peu réaliste en audio.

Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet. (G. Courteline)

54

ce soir j'essaierai de vérifier jusqu'où on peut monter en surmodulation, et si on a bien une échelle de 1500dB.

En relisant ce qu'avait dit Eratom sur le choix de la correspondance du 0, je me dit que le choix pour cubase a peut être été de laisser plus de marge en surmodulation que pour les bas niveaux.

Par contre, je revient sur les calculs en 32 bit flottant avec une question:

Les calculs sont ils réellement fait en 32 bit flottant? ou dit autrement, c'est pas parce que cubase gère ce format, que le cpu ne fait pas des calculs à des résolutions plus hautes (typiquement la sommation par exemple), non ?

55
Citation :
En relisant ce qu'avait dit Eratom sur le choix de la correspondance du 0, je me dit que le choix pour cubase a peut être été de laisser plus de marge en surmodulation que pour les bas niveaux.


J'apporte pas grand chose au débat, mais cette réflexion me semble cohérente, car en pratique qui va descendre à des niveaux de -200dB, -500dB... pour remonter ensuite à qque chose de plus "normal" ?
La surmodulation quant à elle et beaucoup plus fréquente. D'ailleurs il est bien indiqué dans la doc de Cubase que le bus master est "quasi insaturable", ce qui laisse vraiment présager qu'il y a plus de marge en hait qu'en bas...

Site officiel et boutique en ligne du Studio Delta Sigma https://www.studiodeltasigma.com

56

le surplus de marge en "partie haute" sur le bus master s'explique déjà par le fait que la résolution du bus est bien plus élevée (80/96 bit flottant) qui correspond à la double résolution étendue prévue par l'IEEE-754.

Danguit a remis plus haut le lien vers la doc steinberg qui le précise (bon y'a pas d'explication plus que ça, il est juste écrit que le bus interne fonctionne à ces résolutions)

Mais sinon, j'ai le même raisonnement que toi, c'est pas frocément idiot de prévoir plus de marge vers le haut que vers le bas.

Après, et qu'on me reprenne si je dit une connerie, mais le seul cas que je vois ou ça poserait des problèmes, et ce quelque soit la "répartition" de la plae dynamique, c'est si on venait à sommer des valeurs très élevées avec des valeurs très faibles, ce qui en condition réelle de mix n'a aucune chance d'arriver, on va pas faire moduler la voix à +250dBfs et le piano à -180, y'a toujours une histoire de relativité qui fait que tout se retrouve globalement dans la même plage de modulation.

57
Docks et les autres bravo franchement pour cette initiative qui permet à tous ceux que ça interesse de se plonger dans la boite noire qu'est un DAW.
J'ai moi aussi Cubase ver.5, quand j'aurais le temps je m'amuserai à faire ce genre de test mais je pense pas trouver quoique ce soit de différent bien entendu.

J'ai lu avec grand interet vos tests et interrogations et je vous proposerais pour orienter ces dernières, et distraire un peu la discussion, une petite citation d'Albert Einstein:

"Il existe deux chose infinies en ce monde, l'Univers, et la bêtise humaine, quoique pour l'Univers je n'ai aucune certitude."

Tout ça pour dire que bien que le 32 bit float offre en théorie une glissade de la virgule flottante permettant de s'adatpter au sur ou sous modulations sans perdre d'info, je doute que en pratique dans la vraie vie cette glissade de virgule flottante soit infinie et implémentée comme telle dans le code du DAW.
Et bravo encore une fois vous avez (très probablement) compris et mis ça en évidence.
Pour aller plus loin et confirmer, à part décompiler le code et savoir l'analyser je ne vois pas.
Un petit commentaire d'un programmeur Steinberg sur le sujet ? On peut réver non ?;)

58

pour l'asepct "infini" on est parfaitement d'accord, d'ailleurs personne n'a prétendu qu'il n'y avait pas de limite.

Après, perso, je m'attendait à ce que les 1500 dB d'échelle théorique soient répartis avec le 0 "centré", là on voit déjà que c'est pas le cas pour l'aspect centré, sur cubase tout du moins, et reste à voir si il y a aussi un seuil de surmodulation et ou il se situ.

Sur l'aspect "sans perte de détails", le principe même de quantification veut que de toute façon, quand on arrive aux limites du système, on finit par dégrader le rapport signal sur BDQ, maintenant tant qu'on reste dans les clous, c'est pas le BDQ lié aux calcul qui va se trouver 150dB plus bas que le niveau de modulation du signal qui risque de poser le moindre problème, enfin c'est ce que je pense.

Il faut quand même rappeler que si on part d'un enregistrement avec un micro, on peut à peine espérer 80dB de SNR.

Et même si la mode est à la compression, il faut commencer à y aller vraiment sévère pour que ce BDQ lié aux calculs remonte dans l'audible, non?

 

[ Dernière édition du message le 15/11/2012 à 12:17:43 ]

59
J'ai fait quelques mini-tests avec Adobe Audition 3.0 et j'ai eu un comportement similaire.

Pour le moment, je me suis contenté de pousser le volume de 15dB 10 fois de suite et en sauvegarder le fichier, puis le réouvrir et le ramener au volume nominal. En 32bits float, je n'ai pas constaté de perte de qualité ; en 16 bits, c'est completement saturé/pourri.

Vers le bas, il semble que je peux descendre à -184 dB environ en 32 bits float, et retrouver mon signal original, si je vais plus bas, je me retrouve rapidement avec un signal vide, mais il faudrait que je fasse des essais plus précis pour trouver à partir de quel moment ça se produit (et faire une comparaison plus scientifique que mes vieilles oreilles).
Et en 16 bits, je peux descendre à -85 dB. Plus bas je me retrouve aussi avec un signal vide. Mais quand je remonte au niveau d'origine, c'est catastrophique, le son est completement pourri (on s'en doutait).

Des trucs que vous voudriez me voir tester avec ce moteur ? (J'ai aussi la version audition CS6, si on veut un truc exhaustif)
60

merci nifargov, voilà qui apporte du nouveau et tend vers le fait que soit ce seuil est déjà défini par la norme, soit que le choix du 0 pourrait être commun entre audition et cubase, il faudrait tester d'autres softs pour tenter de confirmer une conclusion (ou lire la norme pour ceux qui y ont accès).

 

Citation :

Pour le moment, je me suis contenté de pousser le volume de 15dB 10 fois de suite et en sauvegarder le fichier, puis le réouvrir et le ramener au volume nominal. En 32bits float, je n'ai pas constaté de perte de qualité ; en 16 bits, c'est completement saturé/pourri.

...

Et en 16 bits, je peux descendre à -85 dB. Plus bas je me retrouve aussi avec un signal vide. Mais quand je remonte au niveau d'origine, c'est catastrophique, le son est completement pourri (on s'en doutait).

 

juste pour préciser et être parfaitement clair, dans les deux cas le "16 bit" fait référence à la résolution de l'export.

Citation :

Des trucs que vous voudriez me voir tester avec ce moteur ?

 je suis d'avis d'avancer par étape, donc pour le moment je dirait non.

Mais une fois que plusieurs softs auront subi ce premier type de test, on pourrais imaginer quelques tests simples de sommation en sous/surmodulation pour voir ce que ça dit, et si tout le monde est à la même enseigne lorsque on flirte avec les limites du système.

61
Citation :
juste pour préciser et être parfaitement clair, dans les deux cas le "16 bit" fait référence à la résolution de l'export.
Oui tout à fait.

A noter qu'en mode edit, si on bosse en 16 bits, après un traitement quelconque, le résultat semble immédiatement "gravé dans le marbre". J'entends par là que si, par exemple, je booste mon signal de manière exagérée, puis je le baisse de nouveau, même sans sauvegarder la session, mon signal est pourri. Il semble donc qu'il n'y ait pas de différence entre le resultat sauvegardé et le résultat d'un traitement destructif intermédiaire.
Par contre, si je passe par le "mastering rack" qui permet de faire se succéder automatiquement un ensemble d'effets, un boost suivi d'une déamplification redonne le résultat original, donc le moteur interne doit travailler en float, mais une fois fini, il réduit le fichier à la résolution originale et perd donc les détails intermédiaires.

Citation :
je suis d'avis d'avancer par étape, donc pour le moment je dirait non.

OK, je vais donc pour l'instant affiner seulement ces tests pour donner des valeurs plus précises.
Audition 3.0 ne permet de travailler qu'en 16 bits et en 32 float, pas de 24.
Je ferai les mêmes tests sur la version cs6 qui possède aussi un mode 24 bits.

[ Dernière édition du message le 15/11/2012 à 13:55:59 ]

62
Citation :
A noter qu'en mode edit, si on bosse en 16 bits, après un traitement quelconque, le résultat semble immédiatement "gravé dans le marbre".

Ce qui conforte donc l'idée que Audition "travaille" en 16 bits lorsqu'il est réglé en 16 bit, et pas seulement au moment de l'export fichier. Et si j'ai bien compris, ce ne serait pas le cas de Cubase, qui travaille en 32bits float même s'il est réglé en 16 bit ? Ou alors j'ai pô compris ?
63

je crois plutôt qu'il parle de traitement offline (ce que je comprend par "en mode edit"), comme dans n'importe quelle DAW, peut importe la résolution du calcul offline (normalement la même qu'en "temps réel"), il y a un rendu après chaque traitement, et ce rendu lui est à la résolution du fichier source.

Comme si après chaque traitement "temps réel" (donc via les inserts dela console) tu exportais le résultat en 16 ou 24 bit pour el réimporter en session, et ainsi de suite.

C'est d'ailleur le seul vrai intérêt du format de fichier 32 bit flottant, pourvoir faire du traitement offline sans dégrader le SNR (du moins dans les mêmes proportions que les traitements "temps réel")

64
Ah... Je viens de piger un truc. Si je transpose à Cubase, ça veut dire que même si je règle mon projet en 16 bits, il calcule tous les traitements temps réel en 32 bits MAIS... que si j'applique un effet hors ligne, il stocke le résultat dans un nouveau fchier 16 bits, plus petit mais avec un risque de perte notamment en sur/sous modulation. C'est ça ?
65
Ça y ressemble, mais je ne connais pas assez cubase pour l'affirmer.

Concernant Audition (anciennement "cool edit pro"), il y a un mode "multipiste", sur lequel on fait ce qu'on veut, insert, aux, routing, découpage, effets, automation, le tout en non-destructif. Dans les parametres on peut indiquer si le resultat d'un bounce ou d'un export doit rester en 32 bits float ou si on le redescend en 16 bits avec ou sans dithering. Mais tant qu'on bosse dans ce mode et jusqu'à la sauvegarde, le boulot se fait en 32 bits float.

L'autre mode est le mode "edit" sur lequel on fait ce qu'on veut, au coup par coup, en mode destructif, on peut tailler dans le fichier, amplifier, appliquer des effets, compresser,... mais à chaque fois qu'on presse sur OK, le process est appliqué sur le fichier qui est en mémoire (ou la partie selectionnée du fichier). Le traitement se fait (pour autant que je puisse voir) en 32 bits float mais à la fin de chaque traitement, le fichier modifié revient à la résolution originale.
Donc si le fichier sur lequel on travaille est en 16 bits, chaque modification est définitive et revenir en arrière (autrement que par le UNDO) correspond à deux modifications successives, donc à de la perte.

Tout ça est à vérifier plus avant, bien entendu.

66

oui c'est exactement ça trazom, le réglage des propriétés du projet n'influe que sur le format d'enregistrement, pas sur la résolution des calculs, par contre, en offline, il y a un rendu à la résolution du fichier source.

 

[ Dernière édition du message le 15/11/2012 à 15:50:46 ]

67
Mes essais précédents étaient faits avec un sinus, donc valeurs peak et rms très proches.
J'ai repris le test en 32F avec un signal initial style dirac, càd 1 échantillon à 1 et le reste à 0 => rms à # 32dB sous le peak.
Avec peak= -185dB (rms à -218.4) le signal est bruité mais il existe encore dans le fichier (via GoldWave ou Scilab).
Avec peak = -200dB, le fichier est vide (Scilab).

Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet. (G. Courteline)

68

comme moi donc.

Ca doit être une valeur de l'exposant qui fixe le seuil en fait, non?

69
Une idée, comme ça, que Danguit pourrait tester (puisqu'il a Scilab).

Pourrais-tu produire un fichier en 32F avec Scilab qui contient 1 eps et l'importer dans l'un de tes outils pour le son pour voir à quelle valeur en dB ceci correspond ?
https://help.scilab.org/docs/5.4.0/en_US/percenteps.html

2^(-52) c'est le plus petit pas pour la précision double (64bits)
Pour le 32F c'est 2^-23.

Par exemple, si tu rentres un signal constant de 2^-23, quelle valeur va montrer Cubase ?
70
J'ai cherche ce genre de valeur avec le plug que je viens de faire.
C'est dans cubase.
Quand y n'y a rien qui module et que tout est vide avec tous les faders à 0,
Je met mon plug dans un slot voilà ce quil me sort peut importe ou se trouve le plug :
c'est du float 32bit
le shema est le suivant :

valeur float canal L / valeur float formaté canl L , valeur float canal R / valeur float formaté canl R # pour chaque ecchantillon succesif.

1.0E-10 / 0,0000000001000000013351432000000000000000 , 1.0E-10 / 0,0000000001000000013351432000000000000000 #
-1.0E-10 / -0,0000000001000000013351432000000000000000 , -1.0E-10 / -0,0000000001000000013351432000000000000000 #
1.0E-10 / 0,0000000001000000013351432000000000000000 , 1.0E-10 / 0,0000000001000000013351432000000000000000 #
-1.0E-10 / -0,0000000001000000013351432000000000000000 , -1.0E-10 / -0,0000000001000000013351432000000000000000 #
etc..... indefiniment

Je vais le faire pour ableton pour voir si c'est pareil mais le plug ne fonctionne pas encore sous ableton. ça ne serait tarder.

[ Dernière édition du message le 15/11/2012 à 20:59:50 ]

71
Citation :
Par exemple, si tu rentres un signal constant de 2^-23, quelle valeur va montrer Cubase ?
Comme attendu, -138.47dB rms.
Citation :
(puisqu'il a Scilab).
Puisque c'est gratuit tout le monde peut l'avoir (et ça évite pour un usage normal d'avoir une version pirate de Matlab).

Passer pour un idiot aux yeux d'un imbécile est une volupté de fin gourmet. (G. Courteline)

72
Avec un signal carré à 1760Hz normalisé à 0db jai ceci:
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
1.0 / 1,0000000000000000000000000000000000000000 , 1.0 / 1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #
-1.0 / -1,0000000000000000000000000000000000000000 , -1.0 / -1,0000000000000000000000000000000000000000 #

ça module bien entre -1.0 et 1.0 comme le prévois la norme.
73

sous réserve que j'ai bien compris, là quand t'as absolument aucun signal (aucune source audio nulle part) dans cubase et que tu y mets ton plug pour mesurer ce qui se passe, il t'affiche qu'il y a un signal?

[ Dernière édition du message le 15/11/2012 à 22:09:12 ]

74
J'ai effacé mon précedent post concernant ableton car il semble qu'il y a un petit problème. donc j'invalide ces résultats. Je recompile pour être sûr.

Mais je confirme ce que j'ai mis sur cubase.
Il y a bien un signal.
Un signal de merde mais un signal quand même.

[ Dernière édition du message le 15/11/2012 à 22:28:54 ]

75
C'est bon ça fonctionne sur ableton :
Je confirme donc que tout à zero sans rien du tout sur les pistes (à sec :tourne: ) ableton renvoi que du zero.
Ce qui est parfaitement logique.

0.0 / 0,0000000000000000000000000000000000000000 , 0.0 / 0,0000000000000000000000000000000000000000 #
0.0 / 0,0000000000000000000000000000000000000000 , 0.0 / 0,0000000000000000000000000000000000000000 #

On a bien déjà une différence avec cubase qui lui renvoi des valeurs.

[ Dernière édition du message le 15/11/2012 à 22:39:56 ]