Se connecter
Se connecter

ou
Créer un compte

ou

Sujet Le son d'un soft.

  • 206 réponses
  • 28 participants
  • 4 496 vues
  • 2 followers
Sujet de la discussion Le son d'un soft.
Quand est il vraiment?

Est-ce simplement une vue de l'esprit ou certain séquenceurs sonnent t'ils mieux que d'autres?

Si oui, lesquels sonnent le plus mieux?



Je sent que ça va saigner :bravo:


Avant de vous etriper entre cubaseux, Logiqueux, Samplitudeux, Sonareux... je serais curieux d'avoir quelques avis objectifs...
Afficher le sujet de la discussion
141
En même temps , si tout le monde psychote pareil, c'est peut être complétement ésotérique mais autant en tenir compte

(je suis bien conscient du coté "sciences molles" de mon argument :clin: mais bon j'ai une excuse, j'ai fais un peu de socio lors de mes études :mdr: )
142
Au passage dans les athlons XP et les pentiumsIV, la FPU bosse avec des registres de 40 bit, et c'est pour ça peut être que les bus master font 40 bits de large en pratique dans les softs.

Et d'ailleurs dans l'athlon 64 la FPU fera aussi 40 bits de large, les 64 bit c'est juste pour l'adressage et la largeur des bus. alors pour les perfs audio faudra repasser.

et pour les problèmes de mantisses et d'exposants, on le sait depuis longtemps qu'en informatique (x+y) - x avec y << x ça fait pas y mais ça fait 0, c'est aussi pour ça qu'en calcul scientifique on utilise des float long double précision codés sur 64 bits pour de vrai (ULTRA SPARC) alors sur les plateformes PC actuelles faut pas espérer mieux.

Ca serait marrant de coder un moteur audio qui tourne en 64 bits réels sur une station SUN et de comparer les résultats à ce qu'on a sur PC!
143
À quand la DAW sur un crey..... (n'empêche, ça serait vraiment marrant de faire ce genre de comparaison :clin: )
144
En mode dénormal la FPU bosse sur des operandes de 80bits avec un perf très ralentie.

c'est pour ça peut être que les softs dénaturent le son quand on abaisse trop le gain d'une piste.

a votre avis il vaut mieu enregistrer proche du 0 et attenuer, ou enregistrer un peu moins fort et moins attenue r en soft?
145
Je suis OK pour les 80 bits, mais je me suis mal exprimé sur le mode denormal :

je voulais dire que vu que les softs évitent de faire passer le CPU dans ce mode (float extended precision pour l'IEEE), et ben du coup on ne profite pas de la précision maximale et seulement de opérandes de 40 bits sont utilisées.


et puis j'ai regardé les standards de l'IEEE :

Single-precision format – 32-bit data width, 6 to 7-digit precision
Double-precision format – 64-bit data width, 15 to16-digit precision
Extended-precision format – 80-bit data width, 18 to 20-digit precision

http://research.microsoft.com/%7Ehollasch/cgindex/coding/ieeefloat.html
146

Citation :
e voulais dire que vu que les softs évitent de faire passer le CPU dans ce mode (float extended precision pour l'IEEE), et ben du coup on ne profite pas de la précision maximale et seulement de opérandes de 40 bits sont utilisées



Oui, on profite pas la precision maximale, mais ces nombres sont tellement petits que c'est pas grave de perdre un ou deux digits ( franchement, je suis sur que c'est pas ca le pb, et que d'ailleurs, ce genre de trucs sont bien en deca du bruit de fonctionnement de n'importe quel truc analogique )

Par contre, ton truc de 40 bits, je comprends pas ce que ca veut dire ?
147

Citation :
Au passage dans les athlons XP et les pentiumsIV, la FPU bosse avec des registres de 40 bit, et c'est pour ça peut être que les bus master font 40 bits de large en pratique dans les softs.



Non, c'est 80 bits. Et la master bus de cubase 5 fait justement 80 bits, d'apres steinberg. Le mode denormal, c'est tout a fait autre chose : on bosse sur la meme precision ( par exemple, si on est en 32 bits, on reste en 32 bits ), mais on change la representation de l'exposant et de la mantisse.

Le format IEEE en 32 bits, par exemple, c'est un bit de signe, 23 pour la mantisse, et 8 pour l'exposant.et on code un nmbre comme ca :

+/-(1 + M/2^p)*2^(E-B) avec B le "bias" de l'exposant, M la mantisse, et p la precision en bits de l'exposant.

En monde denormal, ca devient :

+/-M*2^(1-B-P). Le 1 en exposant est la pour assurer la continuite entre le mode denormal et le mode non denormal

( sources : http://ldesoras.free.fr/doc/articles/denormal.pdf )

Pour ton pb de (x+y)-x different de y, c'est vrai, mais comme le format flottant et les arrondis sont normalises ( format IEEE , respecte sur la FPU, le SSE des pentium, et les G4, et tres certainement les G5 ), le probleme est le meme sur tous les proc. Puis de toute facon, les gens parlent de differences entre deux softs sur une meme machine.

Je bosse depuis 3 ans sur des pc avec matlab, qui fonctionne en 64 bits nativement ;) Et nuendo a ete developpe a la base sur des station SGI, qui doivent etre 64 bits ( pas sur du tout, ca , par contre. ).

Pour des infos sur les format sur la FPU des intel

https://www.randelshofer.ch/fhw/gri/float.html#chapterfinitenumbers
148
Bon je reformule le tout avec quelques corrections, après m'être renseigné pour de bon:

les registres de la FPU font 80 bits.

Y'a trois modes de calcul pour la FPU:
-avec des opérandes de 32 bits
-avec des opérandes de 64 bits
-avec des opérandes de 80 bits

le dernier mode n'est jamais utilisé en pratique car trop lent.
les instructions SSE1 et 2 d'après ce que j'ai capté, sont l'équivalent des MMX pour les float, dont le but
est de profiter du parallelisme sur des opérations de largeur réduite.
avec un registre de 80 bits = 4*16= 2*32=1*64
donc je pense que les applis audio utilisent les SSE1 pour streamer des operations sur 32 bits float, et c'est pour ça que je me demande si c'est exact que le bus master fait plus de 32 bits float, et c'est encore pour ça que je pense que 32 bits c'est la précision limite pour les machines actuelles.
Je crois aussi que les registres des SSE2 font 128bits, c'est surement pour faire du 4*32

après 32 bit c'est déjà largement au dessus des besoins pour l'audio?
149
Haaa et puis j'en ai marre je vais ecrire chez steinberg directement pour qu'ils nous disent tout. y'en a marre de spéculer sans voir vraiment comment ils font. tant pis pour le secret industriel.
150

Citation :
e dernier mode n'est jamais utilisé en pratique car trop lent.



Sauf pour le master, justement.

De toute facon, tous les calculs sont faits en 80 bits, en fait, et apres remis en 32 ( ou 64, ou 80 ). La lenteur est essentiellement due a la lenteur de la ram, pas celle du calcul en lui meme, d'apres ce que j'ai pu lire ( mais bon, je suis loin d'etre un specialiste en la matiere, de toute facon ), et ce qu'on m'a dit quand j'ai fait un peu de developpement en stages. Donc tu as de la marge de ce cote la.

La FPU des x86 est assez particuliere, dans le sens ou ca marche tres differement de l'alu et cie. Par exemple, au lieu d'avoir des registres a la eax et cie, tu as une pile de 8 emplacements, qui font bien 80 bits. TOUT flottant traite par le CPU fait 80 bits tant qu'il reste dans cette pile ( tu peux aller voir la doc sur le site intel ).

Citation :
The numeric coprocessor has eight floating point registers. Each register holds 80-bits of data. Floating point numbers are always stored as 80-bit extended precision numbers in these registers. The registers are named ST0, ST1, ST2, . . . ST7. The floating point registers are used di erently than the integer registers of the main CPU. The floating point registers are organized as a stack. Recall that a stack is a Last-In First-Out (LIFO) list. ST0 always refers to the value at the top of the stack. All new numbers are added to the top of the stack. Existing numbers are pushed down on the stack to make room for the new number.



( source : http://www.drpaulcarter.com/pcasm/redir.php?file=pcasm-book.pdf )

Ensuite, la ou ca se corse, c'est avec le SSE : la aussi, tu rajoute 8 registres, qui font ce coup ci 128 bits. En SS1, tu peux y mettre 4 floats, et en SSE2, tu peux aussi y mettre 2 double a la place. Mais la aussi, les performances sont grandement limitees par la vitesse de la ram, qui est beaucoup trop lente, meme avec le cache.