Moteurs audio, 32 bits / 64 bits, distinguer le vrai du faux .
- 185 réponses
- 23 participants
- 27 243 vues
- 31 followers
Aegan
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 ... ) ?
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 ...
Anonyme
JM
Aegan
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.
J'aime les ingés sons qui n'en ont pas que l'air, mais qui chante aussi de jolies chansons ...
Pov Gabou
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).
Anonyme
Pov Gabou
Pov Gabou
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??
Aegan
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 ?
Aegan
Et on parle même pas des condos ...
Pov Gabou
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.
Il Sorpasso
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??
j'adore la façon dont les anglo-américains savent tourner les choses !
- < Liste des sujets
- Charte