Se connecter
Se connecter

ou
Créer un compte

ou

Moteurs audio, 32 bits / 64 bits, distinguer le vrai du faux .

  • 185 réponses
  • 23 participants
  • 27 243 vues
  • 31 followers
Sujet de la discussion Moteurs audio, 32 bits / 64 bits, distinguer le vrai du faux .
Bonjour à tous les audacieux qui auront le courage de se lancer dans cette réflexion ...

voilà, je me pose la question suivante :

a-t-il déjà été fait un comparatif sérieux des moteurs audio qui animent les DAWs les plus réputées (ou les plus répendues ...) ?

Depuis quelques temps, on voit apparaître comme principal argument de renouvellement de certains logiciels, le fait que leur moteur audio passe au 64 bits. Y'a-t-il un gain réel à se lancer dans le 64 bits en tant que moteur de mixage (et pas en tant que moteur de système d'exploitation ... :clin: ) ?

Personnellement, je pense bien qu'il doit y avoir un avantage net puisque nous massacrons joyeusement de plus en plus le signal à coup de plug-ins déjantés, et qu'une précision accrue dans les calculs permet de conserver une cohérence dans le signal traité (ne serait-ce qu'au niveau de sa phase ...). Sans compter que des logiciels aux ambitions très modestes comme Tracktion 2 se sont armés de ces moteurs 64 bits, alors que des plates-formes considérées comme "haut de gamme", comme ProTools, pour ne pas le citer, en reste pour l'instant au 32 bits (alors que ses prétentions qualitatives et pécuniaires sont pour le moins beaucoup plus élevées). Et en outre, des logiciels comme Samplitude ou Pyramix ont des moteurs en 32 bits mais extrêmement réputés (car très bien programmés semble-t-il) pour leur respect du signal. Une vache n'y retrouverait pas son veau ...

Un rapide état des lieux :

moteurs 64 bits :
Sonar 6
Cubase 4
Sequoia 9
Tracktion 2

moteurs 32 bits : (je vais en oublier c'est sûr)
Samplitude 9
Pyramix 5
Nuendo 3
Pro Tools ??? (je me perds dans les versions)
Kristal Audio Engine (faudrait pas oublier les gratuits ...)

voilà, merci à ceux qui voudront bien partager cette réflexion avec moi ...

:bravo:
Si vis pacem para bellum
Afficher le sujet de la discussion
61
Et à propos, je n'ai pas eu l'occase de croiser Gabou, mais en ce qui concerne Choc, je saisi l'occasion de lui rendre un hommage vibrant pour ses compétences et sa courtoisie.

JM
62
Euh,

désolé si j'ai été mal lu, je ne visais personne dans ce forum ... et surtout pas toi Jan qui mène un dialogue constructif depuis le début du topic (non, je n'ai pas de boîte de barann en trop ...), c'était juste un constat en l'air, et j'avoue pas trop à sa place ici. Oui, derrière une bière c'est mieux. :aime:

J'aime les ingés sons qui n'en ont pas que l'air, mais qui chante aussi de jolies chansons ... :D:
Si vis pacem para bellum
63
Un truc pour comparer les bits, on peut pas comparer directement pro tools et les systemes "natifs", car la representation n'est pas la meme (fixe pour le premier, flottant pour les autres). Fixe a un gros inconvenient: la precision est fonction de la dynamique. Les 144 dB de precision des 24 bits, c'est de la pure theorie, qui est verifiee en pratique si le signal est proche de 0 dB, mais qui n'est plus verifie du tout lorsque tu t'en eloignes (sans rentrer dans les details, la formule suppose que le bruit de quantification est independant du signal d'entree).

En flottant, la precision prend 23bits, mais on se retrouve avec 24 bits de precision reelle, et on a 8 bits qui indique la dynamique. Donc la dynamique n'influe pas du tout sur la precision, ce qui rend le dithering bien moins indispensable, en tout cas certainement pas indispensable entre deux plug ins dans une meme chaine de traitements. Donc convertir un fichier audio 24 bits en flottant 32 bits(toujours fait en interne lorsque tu importes un wav dans ton sequenceur) est une operation *sans perte*. Si tu l'exportes a nouveau, tu auras exactement le meme signal, sans appliquer de dithering.

Ensuite, sur les procs intel, meme lorsque l'on calcule en 32 bits, les resultats intermediaires prennent 80 bits (si tu utilises le co processeur; c'est plus vrai si tu utilise les instructions optimisees see/sse2).

Le 64 bits en intermediaire peut deja etre utilise en VST depuis le debut, par contre, entre plug ins, le format imposait il y a encore peu d'etre en 32 bits flottant. Faut voir que le plus souvent, tu peux "negliger" le 64 bits si tu code correctement; par exemple, pour un filtre, particulierement un filtre de synthe, si tu le code "stupidement", il risque d'etre instable si les coefficients sont en 32 bits; alors certains le codent en 64 bits. Mais il existe des "topologies" (comprendre differentes implementations du meme filtre) qui sont plus stables. Ces differentes topologies sont cruciales quand tu calcules en fixe (pro tools TDM), par contre (tu as une grosse litterature sur le sujet dans les annees 70, 80 et 90, moins maintenant grace au flottant).

Savoir si faire tout le calcul en 64 bits est reellement utile ou non, certaines personnes pensent que c'est utile, d'autres non. Certains partent du principe que c'est plus simple de tout faire en 64 bits, et se foutent du temps de calcul. D'autre pensent que seuls certains endroits necessitent du 64 bits, et que ca perment de gagner beaucoup en performances de rester en 32 bits (la majorite, j'ai l'impression, mais j'y couperais aucune partie de mon anatomie).
64
Ai niveau performance, passer par exemple d'un mixage en 32 bits flottants a 64 bits flottants, c'est vraiment significatif?? je suis pas loin de penser que si on peut le faire, tant mieux, mais que ça ne correspond qu'a une frange tres minime des utilisations.
65
Au niveau memoire, oui, c'est enorme comme difference, puisque tu doubles plus ou moins le debit de donnees, et la memoire est deja un des gros goulots d'etranglement (peut etre meme le premier). Par exemple, deux fois moins de donnees tiennent dans le cache de donnees a chaque niveau (1, 2 et 3 s'il y a du cache de niveau 3), et ca peut faire une sacre difference.
66
Au niveau calcul, il y a aussi des differences, mais c'est plus dur a quantifier, et ca depend enormement d'un CPU a l'autre, aussi. Je peux te donner un exemple sur une librairie de calcul pour de l'algebre lineaire (je pretends pas que tu puisses transposer les resultats pour du traitement audio, les "patterns" de calculs sont assez differents, selon les types d'algo):


single precision double precision
********************* ********************
real complex real complex
Benchmark % Clock % Clock % Clock % Clock
========= ========= ========= ========= =========
kSelMM 531.8 517.8 270.1 285.8
kGenMM 174.7 168.0 165.3 165.3
kMM_NT 141.8 141.0 133.5 136.3
kMM_TN 158.8 159.3 142.9 150.1
BIG_MM 501.0 501.0 262.5 288.4
kMV_N 110.6 202.5 57.8 95.5
kMV_T 91.3 101.5 49.9 84.7
kGER 153.9 113.5 28.9 46.4


(il 'sagit des bench d'ATLAS, avec un core 2 duo 2 2.2 ghz. Les noms importent peu, single precision veut dire 32 bits, double 64. Real clock veut dire en pourcentage d'operations vis a vis de la frequence d'horloge: par exemple, a 2.2 Ghz, 500 % veut dire que tu reussis a avoir 11 milliards d'operations/seconds)

Tu peux constater en gros qu'on double les performances en 32 bits par rapport au 64 bits. Je sais pas a quel point c'est du a la memoire, mais je suis a peu pres persuade que c'est le plus contributeur a la lenteur de la precision double.

Pour plus d'informations sur le 64 bits en audio, tu p[eux regarder les messages sur music-dsp, autour du 27 mai 2005 (j'ai l'archive dans gmail, mais l'archive en ligne a l'air d'etre down pour le moment). Entre autre, RBJ donne un bon exemple, sur le fait que 144 dB (des 32 bits flottant) te donne plus de dynamique que ce qu'il y a entre le seuil d'audibilite et de douleur !

Citation : this is *not* just a matter of taste. we all prefer "more transparent,
cleaner sound". it's just that we are dubious that even you can hear the
noise and grit of single precision floating-point which is *at least* 144 dB
quieter than the sound, no matter how loud or quiet the sound is (unless you
go to denormal numbers). this dB difference is 14 dB greater than the
difference of the threshold of pain to the threshold of hearing. so even
without the Space Shuttle blasting off 100 yards away, your quantization
noise is 14 dB quieter than the quietest sound you could possibly hear in an
ambiance of silence. so now take that quantization noise you cannot hear
and add to that the Space Shuttle blasting off and you're telling us that
you can hear the noise and grit of the quantization of single-precision
floating-point which disappears when you do the same exact thing with double
precision??

67
Aaaaah,

on tient un début de réponse, merci infiniment Gabou. J'ai une petite question : lorsque je passe le moteur de mixage de Tracktion en 64 bits, je perds nettement en performances, alors que mes plugs sont gérés par la powercore. D'après ce que tu dis, cela vient-il du fait que ma ram est saturée de données pour faire du temps réel (je n'ai qu'un gigaoctet, note), ou est-simplement mon proc qui s'essouffle (ici un Athlon 64 3500+) ?

Je poursuis ma réflexion entamée ici : quel système est le plus valable ? Un moteur 32 bits AVF (à virgule flottante, je fatigue ...) programmé avec des doigts de fées (Samplitude, Pyramix par exemple); un moteur 48 bits AVFX (on continue) programmé et reprogrammé tous les ans (ProTools); ou un moteur 64 bits AVF dont on ne peut connaître exactement le rendement efficacité/ressources de traitement (Tracktion 2, Cubase 4, Sonar 6, ou Sequoia, mais la version 9.0 de ce dernier à l'air d'optimiser son utilisation processeur ... avec l'Hybrid Audio Engine)?

Voilà, et le DSD alors, pourquoi est-ce si difficile de traiter en bits variables ?

:P:
Si vis pacem para bellum
68
C'est vrai, je ne sais plus où j'ai lu ça, mais il y a un chercheur qui expliquait que les 144 dB étaient parfaitement théoriques, parce qu'à des niveaux aussi bas, la friction des molécules d'air fait trop de bruit. :o:

Et on parle même pas des condos ...
Si vis pacem para bellum
69

Citation :
on tient un début de réponse, merci infiniment Gabou. J'ai une petite question : lorsque je passe le moteur de mixage de Tracktion en 64 bits, je perds nettement en performances, alors que mes plugs sont gérés par la powercore. D'après ce que tu dis, cela vient-il du fait que ma ram est saturée de données pour faire du temps réel (je n'ai qu'un gigaoctet, note), ou est-simplement mon proc qui s'essouffle (ici un Athlon 64 3500+) ?



Alors plusieurs elements:

* la powercore cherche les donnees depuis le bus PCI, qui est beaucoup plus lent que le bus cpu<->ram. Je sais pas comment ca se passe en 64 bits, mais si effectivement, les donnees envoyees sont 64 bits, ca peut avoir un impact. Maintenant, s'il s'agit que de transferer les donnees en entree, c'est negligeable, car c'est que d'alle. Maintenant, si les DSP de la core utilisent la ram centrale pour les calculs, c'est une toute autre affaire. Je sais pas ce qu'il y a comme DSP dans la core, je sais meme pas si c'est du fixe ou non, etc...

* Teste sans la Core pour voir la difference. Aussi, regarde bien que ta memoire est pas saturee niveau taille, car 64 bits, ca veut dire beaucoup plus d'occupation memoire: peut etre tout simplement que ton systeme swappe.


Citation :
Je poursuis ma réflexion entamée ici : quel système est le plus valable ? Un moteur 32 bits AVF (à virgule flottante, je fatigue ...) programmé avec des doigts de fées (Samplitude, Pyramix par exemple); un moteur 48 bits AVFX (on continue) programmé et reprogrammé tous les ans (ProTools); ou un moteur 64 bits AVF dont on ne peut connaître exactement le rendement efficacité/ressources de traitement (Tracktion 2, Cubase 4, Sonar 6, ou Sequoia, mais la version 9.0 de ce dernier à l'air d'optimiser son utilisation processeur ... avec l'Hybrid Audio Engine)?



Deja, je pense que 32 vs 64 bits pour le mixage est totalement neglibeable par rapport a quasiment tous les autres facteurs, a plus forte raison dans un contexte home studio. Il y a tellement de manieres de degrader le signal, et de maniere audibke, a d'autres etapes, que franchement, c'est de l'enculage de mouche a moins que tu sois dans un studio avec de l'equipement ultra haut de gamme (anquel cas l'enculage de mouches devient l'arguement de vente :) ).

Ensuite, je pense pas qu'il y a de difference entre les softs si tu compares a precision comparable. C'est comme pour le 32 bits. Le moteur audio, c'est difficile a rendre performant, mais a moins de s'y prendre comme un pied, la qualite sonore ne change absolument pas selon les implementations. Par moteur audio, j'entends en gros la partie qui s'occupe de passer le signal entre plugs, pistes, depuis la carte son en entree jusqu'a la carte son en sortie, avec la partie enregistrement sur disque dur. Ce qui est complexe, c'est de gerer les acces disques pour que tu sois pas en train d'ecrire sur le disque dur sans ecrire dans les buffers de la carte son, ou pire le contraire.

Citation :
C'est vrai, je ne sais plus où j'ai lu ça, mais il y a un chercheur qui expliquait que les 144 dB étaient parfaitement théoriques



Attentio, quand je parlais des 144 dB theoriques, c'etait parce qu'en virgule fixe surtout, tu es a beaucoup moins si tu es loin du 0 dB. Si ton signal a du -40 dB en crete, tu n'as plus du tout 144 dB theoriques, puisque tu n'utilise plus autant de bits de precision, car les 24 bits sont utilises aussi bien pour la precision que la dynamique.
70

Hors sujet :

Citation : this is *not* just a matter of taste. we all prefer "more transparent,
cleaner sound". it's just that we are dubious that even you can hear the
noise and grit of single precision floating-point which is *at least* 144 dB
quieter than the sound, no matter how loud or quiet the sound is (unless you
go to denormal numbers). this dB difference is 14 dB greater than the
difference of the threshold of pain to the threshold of hearing. so even
without the Space Shuttle blasting off 100 yards away, your quantization
noise is 14 dB quieter than the quietest sound you could possibly hear in an
ambiance of silence. so now take that quantization noise you cannot hear
and add to that the Space Shuttle blasting off and you're telling us that
you can hear the noise and grit of the quantization of single-precision
floating-point which disappears when you do the same exact thing with double
precision??



:mdr: j'adore la façon dont les anglo-américains savent tourner les choses !