GRIS-UdeM / SpatGRIS-legacy

4 stars 0 forks source link

Le 0 absolu d'une automation de coordonnées (X, Y) n'est pas pris en compte par SpatGRIS #176

Open led78 opened 6 years ago

led78 commented 6 years ago

Je résume la situation tel qu'observée jusqu'à maintenant, mais des tests supplémentaires sont nécessaires pour isoler la source du problème:

En travaillant sur une pièce dans DP, je me suis rendu compte qu'une de mes pistes de réverbération se retrouvait régulièrement spatialisée dans le haut de dôme (X=0.5, Y=0.5) alors que mon automation était écrit pour spatialiser la source tout autour (X=0, Y=0.5) - les spans étant tous deux aussi à 0.5.

En partant ma pièce du début, pas de problème: l'automation est lue et le mouvement des sources suit celle-ci jusqu'à sa position finale (X=0, Y=0.5). Mais, lorsque je travaille sur une section en particulier, sans lire tout depuis le début, et que je déplace la tête de lecture d'un endroit à l'autre dans le séquenceur, je remarque que le paramètre 0 des X n'est pas pris en compte, seuls les spans (X, Y) et la position Y le sont. Voyant cela, l'explication qui m'est venu est que le paramètre X est constamment à 0 à cet endroit et, ce faisant, se trouvait ignoré - d'où la position de la source dans le haut du dôme (X=0.5, Y=0.5). Autrement dit, si je pars la lecture du début, la source suit l'automation jusqu'à la dernière position avant le 0 absolu et demeure à cette position tant et aussi longtemps qu'il ne reçoit pas une autre position plus grande que 0. Si la séquence n'est pas lu depuis le début, la position X par défaut est alors 0.5 - ce qui correspond à sa position au tout début de la pièce. Afin de remédier à ce problème, j'ai simplement mis le paramètre des X à 0.01... et bingo, je peux bouger la tête de lecture n'importe où et la position des X de la source s'ajuste automatiquement dans le SpatGRIS.

Il serait néanmoins pertinent d'ajuster la valeur 0 d'une automation pour qu'elle ne soit pas un zéro absolu dans le code du SpatGRIS, mais plutôt quelque chose comme 0,001.

Normandeau commented 6 years ago

Je ne suis pas absolument certain de bien comprendre ta description. Mais en gros tu sembles surpris que si aucune automation n'est écrite, le SpatGRIS ne sache pas où il en est? Mais c'est la cas avec n'importe quel plugiciel, non? C'est toute la question de la sauvegarde des valeurs par défaut. Théoriquement, lorsqu'on ajuste des valeurs dans un plugiciel, celles-ci sont mémorisées dans la séquenceur et font partie du projet (...jusqu'à ce que tu changes les valeurs). Mais c'est plutôt théorique. On constate souvent qu'à la prochaine ouverture, les paramètres sont changés si:

led78 commented 6 years ago

Ce n'est pas qu'aucune automation soit écrite. C'est que l'automation aille jusqu'à la position zéro le problème. Pour que ce soit plus clair, je vais faire une capture vidéo du problème.

led78 commented 6 years ago

Voici une capture vidéo du problème rencontré. Je continue les tests... 0 absolu.zip

led78 commented 6 years ago

Mise à jour...

Dans DP, le problème survient qu'avec le 0 absolu (de la première source), représentant la position 180° dans SpatGris, et ce dans tous les modes de processus (Free Volume, Pan Span et OSC) et de mouvements - en stéréo : Symmetric Y, Symmetric X, Delta Lock, Circular Fully Fixed, Independent; et en mono : independent.

Aucun problème lorsque l'automation est sur le 1 absolu. En voici deux exemples vidéo:

led78 commented 6 years ago

Le problème est réellement à propos de la position 180°; pour tous les valeurs de position, SpatGris s'ajuste automatiquement selon la valeur écrite en automation à la position du curseur de lecture, sauf le 0 (=180°). Je trouve cela très irritant lorsque je travaille puisque je dois manuellement modifié cette valeur - après avoir enregistré un mouvement s'arrêtant sur 0 - pour qu'elle ne soit pas 0, mais proche, sans quoi SpatGris ne positionne pas correctement les sources lorsque je saute d'un endroit à l'autre avec le curseur de lecture. Durant la lecture, la position reste erronée jusqu'à ce qu'il reçoive une valeur supérieur à 0.

led78 commented 6 years ago

C'est pareil dans Logic...

De plus, les modes circulaires (Circular, Fixed Radius, Fixed Angle et Fully Fixed) semblent révéler un problème de position pour la source 2 lorsque l'une des valeurs (X,Y) de la source 1 est au 0° absolu (= 1 dans SpatGris). Dans ce cas, la source 1 se positionne correctement, mais pas la source 2. Il suffit de modifier la valeur de la position X ou Y de la source 1 pour qu'elle ne corresponde pas à 1 ou 0.5 absolu pour que la source 2 se positionne correctement selon l'automation écrite à la position du curseur de lecture. 0 absolu_Logic_CircularFF.m4v.zip

led78 commented 6 years ago

On observe le même problème dans Reaper, autant pour l'audio unit que pour le VST.

Toutefois, il semble que Reaper ait moins tendance à prendre des valeurs justes, comme le 0 absolu, lors de l'enregistrement d'une automation; bien que la valeur indiquée en sélectionnant un point de l'automation puisse corresponde à une valeur juste (ex: 0.5), cette donnée dissimule souvent d'autres chiffres après la virgule (ex: 0.5005). Il est donc rare qu'on arrive à un nombre juste comme le 0 absolu lors de l'écriture automatique, ce qui fait que le problème y est plus dure à reproduire. Mais, si l'on change la valeur d'automation pour qu'elle soit réellement sur le 0 absolu, on observe le même problème où le changement de position de la source n'est pas prise en compte.

En fait, ce serait bien si les autres DAW se comportaient comme Reaper quant à l'enregistrement des automations. Puisque ce n'est pas le cas et que nous ne pouvons pas y faire grand chose, serait-il possible d'ajouter +0.0001 à toute position égale à 0 envoyée par SpatGris?

Avez-vous une autre solution?

Xon77 commented 6 years ago

En refaisant le test de David, j'observe aussi un problème de lecture de l'automation des positions des sources lorsque les coordonnées X ou Y sont à 0 absolu, ce qui n'est pas facile à reproduire dans Reaper. Mais en écrivant directement dans la courbe d'automation et forcer le 0, l'automation n'est plus lue correctement et varie en fonction de la dernière position de la tête de lecture.

led78 commented 6 years ago

Les tests effectués semblent concluant. Peut-on changer l'étiquette à bug?