GRIS-UdeM / ControlGris

Spatialization plugin replacement of SpatGRIS
GNU Lesser General Public License v3.0
10 stars 2 forks source link

Source OSC 1 et 2 doublée dans DP 10 #144

Closed Normandeau closed 3 years ago

Normandeau commented 4 years ago

V116 Lorsque j'ouvre un projet de DP avec cette version, les sources 1 et 2 sont doublées. Comme si DP envoyait systématiquement de l'OSC sur les canaux 1 et 2. Cela reste en place tant et aussi longtemps que je laisse DP ouvert, même sans projet ouvert. On voit les doublons des sources OSC en permanence dans SpatGRIS2. Qui oscillent bien entendu, comme si j'avais deux ControlGRIS ouverts et assignés aux mêmes numéros OSC. Je pensais que c'était mon projet qui était abimé, mais ça se produit sur tous les projets. Je viens de passer l'après-midi là-dessus! J'ai comparé avec Reaper et Logic et ils n'ont pas le problème apparemment. Je pense avoir tout tenté pour résoudre le problème avec DP:

NicolaGiannini commented 4 years ago

Robert, Cela me rappelle un problème que j'avais eu dans Logic l'année passée. J'avais réglé en utilisant la fonction "Reset Input Position" mais j'imagine que tu as déjà essayé de l'utiliser.

Sinon, en cherchant "Reset Input Position", j'ai trouvé ce issue https://github.com/GRIS-UdeM/ControlGris/issues/66

Normandeau commented 4 years ago

Je confirme aujourd'hui que le bogue décrit plus haut a été introduit par la version 116.

DP V116 avant

DP V116 Session ouverte

DP V116 après

Ce bogue n'existe pas dans Logic mais dans celui-ci, il y a une autre sorte de problème: après avoir fermé la session, toutes les sources OSC restent affichées et l'option View -> Reset Input Position reste sans effets. Tant qu'on n'ouvre pas une autre session (ou qu'on quitte Logic), les informations OSC restent affichées dans SpatGRIS2. Vérification faite cependant, c'est le même problème avec la version 115 (ainsi qu'avec la version officielle 110). Ce problème n’existe ni dans DP ni dans Reaper. On ne peut pas vérifier cela avec Live, car ce dernier doit toujours avoir une session ouverte.

Logic, session fermée

DP et Logic utilisent la version AU de ControGRIS. Ces deux problèmes n'existent pas dans Reaper. Vérifié avec VST2 et AU.

Normandeau commented 4 years ago

Intuition: Est-ce qu'on aurait pas affaire à une boucle OSC? On sait que depuis qu'on a implémenté la bidirectionnalité de l'OSC, afin que non seulement ControlGRIS envoie de l'OSC vers le StatGRIS2 (fonction de base), ControlGRIS reçoît aussi de l'OSC à partir de l'iPad par exemple, avec Open Stage Control. Je ne l'utilise pas en ce moment cependant.

Normandeau commented 4 years ago

Voir l'issue no 71 dans SpatGRIS: OSC 1-2 actif en double, Malheureusement la solution de 2016 ne fonctionne pas ici, qui consistait à vider la cache de DP. Comme mentionné dans la première intervention, même après avoir tout enlevé, même après avoir effacé toute les préférences et toutes les caches, le problème persiste toujours. Dès que je reviens à la version 115, tout est OK.

NicolaGiannini commented 4 years ago

V116 Logic 10.5.1

Dans mon cas avec l'option View -> Show Source Activity à Off, si je ferme un projet ou Logic même, les sources restent toujours affichées dans SpatGRIS2. Dans mon cas pour faire disparaître les sources, j'ai fermé le projet, fermé Logic et après utilisé l'option “Reset Input Position”. L'option "Rest Input Position" ne marche pas si un projet ou Logic sont encore ouverts.

J'ai fait des tests avec 2 projets de Logic différents. Si je bascule entre 2 projets, les sources n’entrent pas en conflit. À l’ouverture de chaque projet, les sources sont bien positionnées. Cependant, si le nombre de sources dans les deux projets est différent, lorsque j’ouvre le projet avec le moins de sources, SpatGRIS2 affiche les sources supplémentaires de l’autre projet. Exemple : j’ai un projet A avec 10 sources et un projet B avec 8 sources. Quand j’ouvre le projet B, ses 8 sources sont positionnées correctement, mais SpatGRIS2 affiche aussi les sources 9 et 10 de l’autre projet. Cependant, si j’utilise la fonction “Reset Input Position” les 2 sources de l’autre projet disparaissent.

Normandeau commented 4 years ago

DP10.13 Première mise à jour de DP depuis janvier dernier! J'ai eu un court espoir que le bogue était réglé,mais malheureusement, cela n'a pas duré très longtemps. J'ai fabriqué une session neuve et j'ai mis 4 pistes stéréo avec chacune un ControlGRIS. Tout fonctionnait normalement. Puis j'ai ouvert une des sessions problématiques, et le problème est réapparu immédiatement, y compris dans la session nouvellement créée. Donc le bogue est toujours présent. Retour à V115, aucun problème.

Normandeau commented 3 years ago

V117 Le problème semble résolu. Mais il faut impérativement jeter le cache des Audio-Units de DP. Quand on ne le fait pas, le problème persiste. À mettre dans le manuel: Jeter les caches de séquenceurs quand on change de version.

Normandeau commented 3 years ago

V117 Le problème n'est pas résolu finalement. Même en jetant le cache de DP, le problème revient immédiatement. Coup de chance la première fois? Je voulais faire un test supplémentaire en fermant l'activation de l'OSC sur ControlGRIS 1 et 2. Mais la fonction de l'activation de l'OSC n'est pas mémorisée dans les séquenceurs. Autrement dit, chaque fois qu'on ouvre un ControlGRIS, il est automatiquement à On, même si on a fermé la session avec celui-ci à Off. Je pense que déjà on pourrait régler cela en permettant la mémorisation de ce paramètre. Mon idée en faisant cela, c'était de voir si le problème n'était pas plutôt dans SpatGRIS2, plutôt que dans ControlGRIS. Comme si SpatGRIS2 gardait en mémoire le positionnement des sources 1 et 2 de manière permanente. Possible?

Normandeau commented 3 years ago

V115 Retour à la version 115. Cela fonctionne et le bouton d'activation de l'OSC y est mémorisable. C'est donc bien entre cette version et la 116 que quelque chose s'est mis à clocher. À suivre.

NicolaGiannini commented 3 years ago

V117 Dans Logic je confirme le comportement décrit dans ce commentaire https://github.com/GRIS-UdeM/ControlGris/issues/144#issuecomment-706616766

Dans Live 10 (testé avec la version VST de ControlGRIS), si j'ouvre un projet et après j'en ouvre un autre sans fermer Live, les sources 1 et 2 n’entrent pas en conflit. À l’ouverture de chaque projet, les sources 1 et 2 sont bien positionnées. Cependant, si le nombre de sources dans les deux projets est différent, lorsque j’ouvre le projet avec le moins de sources, SpatGRIS2 affiche les sources supplémentaires de l’autre projet. Si j’utilise la fonction “Reset Input Position” ces sources supplémentaires disparaissent.

Normandeau commented 3 years ago

Nicola, As-tu essayé les patchs Open Sound Control ou Lemur avec ton iPad? Avec Samuel, on se demandait si l'envoi de l'OSC par le iPad ne laissait pas une trace quelque part. Je vais expérimenter cela en fin de semaine. Pourrais-tu faire de même avec Logic? À tout hasard.

NicolaGiannini commented 3 years ago

Robert, Je n'ai pas encore essayé les patchs, mais je le fais et je vous tiendrai au courant.

Normandeau commented 3 years ago

Piste de solution? Je suis passé à travers le processus d'effacer toutes les caches Audio Unit et VST utilisées par les différents séquenceurs. Lorsqu'on fait cela, on force les séquenceurs à rescanner les dossiers des plugiciels AU et VST. Le processus de Logic a attiré mon attention. J'avais laissé SpatGRIS2 ouvert par hasard avec Source Activity non cochée. Quand Logic passe sur ControlGRIS, il affiche de l'OSC1-2 dans SpatGRIS2, alors qu'il n'y a même pas de session ouverte, ni en processus d'ouverture:

Capture d’écran, le 2020-12-04 à 16 30 35

Lorsque le processus est terminé, on peut resetter l'OSC et ils disparaissent. Ni Reaper, ni DP n'affiche ce comportement au moment du scan des AU (et des VST dans le cas de Reaper).

Je vous rappelle pour mémoire où elle s sont situées: DP8, 9 et 10 votrecompte/Bibliothèque/Preferences/com.motu.MotuAudioSystem Jeter:

NicolaGiannini commented 3 years ago

Je confirme ce que Robert a dit à propos du test de validation de Logic. J'ajoute ceci. Sur Logic, avec Source Activity non cochée, si je désactive "Activate OSC" et je clique ensuite sur "Reset Input Position", les sources disparaissent. Si je ne désactive pas l'OSC mais que je ferme le projet, les sources ne disparaissent pas même si je clique sur "Reset Input Position".

Je note une chose. La position des sources 1 et 2 lors du test de validation de Logic semble la même qui est indiquée dans la capture d'écran lors de la fermeture de la session dans DP ?

95664301-7a0f3300-0b14-11eb-900c-aa3f0f11b493 DP

101216795-23266580-364e-11eb-9a4c-c2879f8343ba Logic

Robert, Si dans DP tu désactives l’OSC dans ControlGRIS qui gère les sources 1 et 2 dans le projet courant et ensuite tu cliques sur "Reset Input Position”, les sources 1 et 2 oscillent toujours ?

Normandeau commented 3 years ago

Nicola, Je n'ai pas besoin de faire Reset Input Position. Si je désactive l'OSC du ControlGRIS 1-2, il devient inactif et donc l'oscillation cesse car il ne reste plus que l'OSC fantôme 1-2.

NicolaGiannini commented 3 years ago

J’ai fait des tests avec Open Sound Control et Logic. Le comportement par rapport aux signaux OSC semble cohérent avec celui décrit ici : https://github.com/GRIS-UdeM/ControlGris/issues/144#issuecomment-706616766

Si je bascule entre 2 projets, il n’y a pas des doublons en ce qui concerne les sources 1 et 2. Si je ferme tous les projets, je peux quand même contrôler la source 1 avec Open Stage Control. Si je ferme Logic je ne peux plus contrôler la source 1 avec Open Stage Control. Si je redémarre Logic et j’active la validation de ControlGRIS, les sources 1 et 2 sont affichées, mais je ne peux pas les contrôler avec Open Stage Control.

Voir la vidéo : https://www.dropbox.com/s/r013kr9m361o8da/DublonsOSC.mov?dl=0

Cependant il y a un problème de mapping entre ControlGRIS117 et le patch de Open Stage Controller. Je vais créer un issue à ce sujet.

Dans les prochains jours, je ferai des tests avec le Lemur.

SamuelBeland commented 3 years ago

DP créé occasionnellement une instance fantôme de ControlGRIS en chargeant un projet. L'instance est automatiquement "oubliée" par DP. Il ne l'utilise pas et ne la détruit jamais (c'est MacOS qui s'en charge à la fermeture complète de DP) [!!!].

Depuis ControlGRIS 1.1.6, l'initialization de la connexion OSC se fait maintenant directement au moment de la création d'une instance du plugin (alors que les versions précédentes attendaient une forme d'activité avant de l'ouvrir). Ça a rendu le bug visible en faisant en sorte que le fantôme envoie continuellement son OSC, figé sur le positionnement par défaut. Je peux confirmer par contre que le problème de l'instance fantôme existe aussi dans 1.1.5. Je n'ai pas encore effectué de test à savoir si ce comportement est apparu quelque part dans le développement, ou si il a toujours été secrètement présent.

Je n'arrive pas encore à identifier ce qui cause l'instance fantôme. De mon côté, cela ne semble pas se produire lorsque le plugin est ajouté dans un nouveau projet ou lorsque ce nouveau projet est chargé. C'est seulement en chargeant un projet créé avec une version autre de ControlGRIS. Je ne crois pas que ça soit réellement aussi simple par contre...

J'ai réparé les symptômes sur la branche de développement, mais pas les causes. Je vais continuer de chercher un peu, mais je soupçonne que ça risque de se terminer par un bug report chez DP.

Normandeau commented 3 years ago

Merci de continuer à investiguer cela. Ce serait bien de trouver un solution, parce qu'envoyer un bug report chez MOTU, c'est comme envoyé une bouteille à la mer!

Normandeau commented 3 years ago

V118, DP10.13, MacOS10.15.7 Le problème semble réglé. Testé depuis plusieurs jours avec de «vieux» projets avec lesquels le problème se posaient en permanence..