Le pub des programmeurs
- 1 927 réponses
- 117 participants
- 131 712 vues
- 130 followers

Anonyme



asair

Citation : - pour le 32 bits flottant, on a 24 bits de mantisse et 8 d'exposant ?
Citation :
- (en supposant qu'on a 24 bits de mantisse et 8 d'exposant) comment est représenté le 0dBFS : avec l'exposant à zéro et la mantisse à 1 ?
Citation :
- Dans ce cas, le headroom correspond à un passage de l'exposant de 2^0 à 2^7= 127, soit : 20log(127) = 42dB. D'où ma remarque : "en 32 bits flottants, on sature à +42dBFS". Je me trompe ?
oui

asair

résolution 24 bits : 2^24
résolution 32 bits : 2^24 avec e-8
soit 20log(16 777 000)=160dB
avec cette approche le flottant n'apporterait pas d'headroom supplémentaire,
juste une résolution plus fine qui permet d'éviter un peu plus les saturations numériques...
Citation :
- Dans ce cas, le headroom correspond à un passage de l'exposant de 2^0 à 2^7= 127, soit : 20log(127) = 42dB. D'où ma remarque : "en 32 bits flottants, on sature à +42dBFS".


Wolfen


Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud

asair

Citation : : avec l'exposant à zéro et la mantisse à 1
dans ce cas oui
miles1981

Audio Toolkit: http://www.audio-tk.com/

asair

Hors sujet : Citation : http://www.phareaway.com/

Dr Pouet

Citation : en théorie le 0dFS est 0
Rhôôôôô

Citation : C'est 2^24, en 24 bits, les flottants ca n'a rien a voir, ce sont des décimales après la virgule, donc on a :
résolution 24 bits : 2^24
résolution 32 bits : 2^24 avec e-8
soit 20log(16 777 000)=160dB
avec cette approche le flottant n'apporterait pas d'headroom supplémentaire,
juste une résolution plus fine qui permet d'éviter un peu plus les saturations numériques...
Je sais bien qu'un float = décimales après la virgule.
Citation : - pour le 32 bits flottant, on a 24 bits de mantisse et 8 d'exposant ?
- (en supposant qu'on a 24 bits de mantisse et 8 d'exposant) comment est représenté le 0dBFS : avec l'exposant à zéro et la mantisse à 1 ?
- Dans ce cas, le headroom correspond à un passage de l'exposant de 2^0 à 2^7= 127, soit : 20log(127) = 42dB. D'où ma remarque : "en 32 bits flottants, on sature à +42dBFS".
je cherche à connaître la réserve de gain dont on dispose, avant la moindre dégradation (= perte de précision). C'est ce que l'on entend par headroom.
Supposons que l'on ait un enregistrement 24 bits PCM. On peut recopier ces 24 bits dans la mantisse de notre float 32 bits, sans perte. Avec les autres suppositions (0dB représenté à 1, donc exposant 0 ; ce qui est effectivement le cas pour Ladspa, en principe similaire à VST), on positionne l'exposant à 0.
Le seul moyen d'avoir du headroom est d'augmenter l'exposant, donc de le faire passer de 0 à la valeur maxi sur 7 bits (étant bien entendu qu'il y a un bit de signe ;) ), soit 127 (ou 128, ça va pas changer grand chose). D'où un headroom de +42dB.
J'imagine que ceux qui ont déjà écrit des plug-in VST ou AU doivent savoir ça ?
Concernant Reaktor, je veux bien croire qu'il fonctionne en float, mais la saturation à 0dB est quand même dommage. Cela dit, j'ai fait la manip avec Reaktor 4. Ca peut avoir changé depuis...

asair

Citation : Citation :
en théorie le 0dFS est 0
Rhôôôôô

asair

Citation :
J'imagine que ceux qui ont déjà écrit des plug-in VST ou AU doivent savoir ça ?

asair

Citation : mais la saturation à 0dB est quand même dommage.
???

asair

Citation :
je cherche à connaître la réserve de gain dont on dispose, avant la moindre dégradation (= perte de précision). C'est ce que l'on entend par headroom.
ok
je manipule pas trop dans le domaine des headroom, mais bon, en numérique il me semble qu'un headroom et toujours plus ou moins un faux headroom non ?
Une sorte de décalage du zéro ?
Vous pouvez me taper si vous voulez, mais je ne vois pas comment le 32bits float va empecher le signal qui sort du convertos de taper sur le zéro (0dB) le voltage dépasse la bande dB dispo.
Le float, c'est pour atteindre le 0dB avec plus de finesse, et permettre à de sauver des crash qui auraient eu lieu en 24b ?

Dr Pouet

Pour cela il faut évidemment que les calculs intermédiaires soient stockés sur des nombres "plus grand" que 0dBFS. C'est effectivement le cas (32 bits flottants, voire plus, contre 16 ou 24 bits fixe). On peut facilement le vérifier avec probablement n'importe quel séquenceur.
Par contre c'est assez peu expliqué dans la doc, du coup par curiosité je me demandais comment c'est fichu. De plus certains plug-in ne le gèrent pas (Reaktor 4...), donc il faut faire gaffe...
Le thread de discussion original (merci de lire le début pour ne pas revenir sur des points déjà traités).
Citation : Sont ils nombreux ? question naive, mais je ne me rend pas bien compte de la population dev.VST sur AF...
Il y en a déjà plusieurs qui ont posté dans ce thread. D'où espoir de réponse


asair

Citation :
Le thread de discussion original (merci de lire le début pour ne pas revenir sur des points déjà traités).

Wolfen


Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud

asair



miles1981

Hors sujet : Le site a fermé il y a qqs temps, oublié de mettre à jour ma signature...
Effectivement, on peut dépasser les -1/+1 pendant les traitements, à partir du moment où on repasse en-dessous avant d'écouter sur sa chaîne. A noter que ça ne suffit pas, qu'il faut parfois regarder entre les échantillons pour éviter le dépassement analogique (c'est le travail des limiteurs normalement).
Et le format VST supporte maintenant le double (64bits).
Audio Toolkit: http://www.audio-tk.com/

asair

Est ce que vous utilisez des librairies ou pas pour ca ?

bixmor


asair


asair

Hors sujet : Citation : Who Uses PortMusic?
Ross Bencina, AudioMulch.com (AudioMulch)
Ross Bencina a fait ReactiVision, le module de reconnaissance visuelle intégré à la ReacTable.

Dr Pouet

Citation : Moi j'ai fait pas mal de VST. Les signaux à traiter doivent être compris entre -1 et 1 pour ne pas dépasser le 0 dBFS, et ça utilise par défaut le format float 32 bits de base du C/C++
Donc ça devrait correspondre avec ce que je disais...
0dBFS -> amplitude 1 -> mantisse de -1 à 1 et exposant à zéro
Le headroom est fourni par l'exposant, soit 2^7 (ou 42dB). Et normalement les plug-in ne devraient pas saturer en dessous.
Pour Reaktor, ça semble particulièrement dommage de saturer à 0dBFS, vu qu'on n'a pas forcément des jauges tout le long du trajet du signal.


Wolfen

Sinon, en librairie audio, j'utilise exclusivement JUCE, c'est multi-plateformes, très bien documenté, et il y a tout ce qu'il faut au niveau gestion audio et MIDI.
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud

asair

sinon pour PortMidi, t'as trouvé des tutos ?

nonconforme

Affiliation : Dirigeant Fondateur d'Orosys - Two notes Audio Engineering

asair


- < Liste des sujets
- Charte