GRIS-UdeM / SpatGRIS

Sound spatialization tool
GNU General Public License v3.0
59 stars 6 forks source link

Réduction stéréo : Volume en sortie correspondant à la loi de puissance #382

Open DavidPiazza opened 1 year ago

DavidPiazza commented 1 year ago

Version 3.2.2

Lorsqu'on est en réduction stéréo, changer le nombre de sources cause une modification au niveau du volume de sortie et ce, même si les sources sont inactives. Ce problème n'affecte que la réduction stéréo. Les modes binaural et multi-canal ne présentent pas de modification de volume.

Étapes pour la reproduction :

une_source_hard_left_-6dBFS 128sources_hard_left_-18dBFS
Normandeau commented 1 year ago

Je confirme le tout.

NicolaGiannini commented 1 year ago

Je confirme moi aussi.

Normandeau commented 1 year ago

Deux questions doivent être posées ici:

1. Qui veut faire cela, ouvrir des entrées inutilisées en grand nombre en écoute stéréo? Essentiellement personne, surtout que c'est écrit noir sur blanc dans le manuel (bon, qui lit le manuel?) de pas dépenser inutilement des ressources inutilisées.

2. N'est-ce pas exactement le comportement souhaité? Est-ce que la valeur de -12dB ne devrait sonner une grosse cloche dans votre esprit? Je reprend le même dispositif que celui décrit plus haut mais avec 8 entrées au départ, et j'ajuste (arbitrairement et pour les besoins de la démonstration) la valeur de sortie sur un seul canal de la sortie stéréo à -20dB. Je double ensuite le nombre de sorties à chaque mesure. Voici les niveaux de sortie mesurées:

Donc effectivement -12dB de différence après avoir doublé le nombre de sorties 4 fois. Est-ce que cela n'éveille pas quelque chose en vous? Un souvenir du cours d'acoustique par exemple? La loi de puissance. Chaque fois que le nombre de sources est doublé, la puissance augmente de 3 dB. Donc, pour éviter de saturer la sortie stéréo avec cette augmentation de puissance, le mixeur stéréo compense de -3 dB pour chaque doublement du nombre de sources, conservant ainsi la sortie stéréo à une valeur stable. Je vous laisse le soin d'en faire la preuve avec les 128 sources que cela suppose...

Donc c'est bien de tester mais il faut aller au bout de la démonstration...

DavidPiazza commented 1 year ago

Deux questions doivent être posées ici:

1. Qui veut faire cela, ouvrir des entrées inutilisées en grand nombre en écoute stéréo? Essentiellement personne, surtout que c'est écrit noir sur blanc dans le manuel (bon, qui lit le manuel?) de pas dépenser inutilement des ressources inutilisées.

Si le début de ma pièce ne comprend qu'une piste qui envoie du signal à gauche, je m'attendrais à ce que le niveau que mon séquenceur envoie soit le même affiché dans SpatGRIS et ce, peu importe le nombre de sources dans le projet en entier. Les ressources sont belles et bien utilisées.

Donc effectivement -12dB de différence après avoir doublé le nombre de sorties 4 fois. Est-ce que cela n'éveille pas quelque chose en vous? Un souvenir du cours d'acoustique par exemple? La loi de puissance. Chaque fois que le nombre de sources est doublé, la puissance augmente de 3 dB. Donc, pour éviter de saturer la sortie stéréo avec cette augmentation de puissance, le mixeur stéréo compense de -3 dB pour chaque doublement du nombre de sources, conservant ainsi la sortie stéréo à une valeur stable. Je vous laisse le soin d'en faire la preuve avec les 128 sources que cela suppose...

Je connais très bien la loi de puissance et je comprends pourquoi on fait ça, mais je me demande s'il n'y aurait pas moyen d'activer où non cette compensation. Dans la situation où on est en train de mixer une pièce en stéréo, SpatGRIS agit comme un final output mixer et devrait logiquement avoir chacune de ses tranches au gain unitaire... Imaginez si dans votre DAW, l'ajout de pistes vides modifiaient invariablement le niveau de sorties des pistes qui contiennent des fichiers. Si je suis en train de réaliser le mix d'une pièce multi-canal en stéréo, les ajustements et les manipulations de la dynamique sont faits dans le séquenceur, pas dans SpatGRIS. Si ce dernier compense une augmentation de puissance alors que la puissance n'a pas réellement augmenté, je suggère qu'il faudrait peut-être spécifier clairement les caractéristiques de ce comportement dans le manuel (afin de pouvoir mixer en conséquence) et/ou potentiellement ajouter un interrupteur nous permettant d'enlever cette compensation?

Normandeau commented 1 year ago

Oui, bonne question. D'autant plus que la loi de puissance ici invoquée n'est appliquée que dans le cas de pistes vides. Dès qu'il y a du signal, le niveau de sortie augmente comme prévu. Testé seulement avec 8 entrées, bruit rose et sinus 1k. L'algorithme Stereo devait être testé et revu.

NicolaGiannini commented 1 year ago

V326

Le comportement me semble le même de celui décrit au début de l’issue. Cela dit, d’une certaine manière, je pense qu'il est probablement utile que SpatGRIS diminue le volume global de sortie en fonction du nombre de sources. Comme Robert l'a fait remarquer, c'est probablement pour ne pas saturer rapidement le master lorsque toutes les sources sont envoyées à seulement deux haut-parleurs. Si on considère la réduction stéréo comme quelque chose que l'on utilise uniquement lorsque le projet est terminé pour créer une réduction stéréo, je pense que le volume global peut alors être ajusté en conséquence dans ce contexte. Car si je comprends bien, SpatGRIS diminue le volume global, mais le mixage des sources reste le même, n'est-ce pas ?

DavidPiazza commented 1 year ago

Car si je comprends bien, SpatGRIS diminue le volume global, mais le mixage des sources reste le même, n'est-ce pas ?

Oui, SpatGRIS diminue le volume global en fonction du nombre de sources dans le projet, indépendamment du fait qu'elles soient actives ou non. Le niveau absolu des sources est abaissé, ce qui fait qu'on a nécessairement une modification proportionnelle de la dynamique de la pièce. Je trouverais ça bizarre que mon séquenceur baisse le niveau de toutes les pistes quand j'en ajoute des vides...

J'imagine que la solution simple est de compenser cette modification avec le potentiomètre du gain de sortie.