Salut!
J'ai un souci: j'ai eu PD-extended durant de nombreuses années, et je viens de changer mon système (KXStudio sur une Ubuntu), et j'y ai installé PD-Vanilla avec les extensions via les packages de KX.
Je restaure de très vieux patch, et pas mal d'objets ne s'initialisent pas ("couldn't create...").
Par contre si je passe par l'aide des objets, c'est bon.
par exemple [udpsend], ou [routeOSC], ou [randomF].
Je précise que j'appelle les librairies dans le patch: [import mrpeach] etc. Ce qui n'est même pas le cas dans les pages d'aide.
une idée?
Hors ligne
Hello !
En fait [import] avait été introduit dans Pd-extended mais n'a jamais été intégré dans Pd vanilla... Donc en gros, il n'existe plus.
Pour déclarer les bibliothèques, il faut utiliser l'objet [declare]. Par exemple :
[declare -lib Gem]
[declare -path Gem]
J'espère que ça t'aidera !
Hors ligne
merci!
bon, déjà si les objets fonctionnent dans l'aide, c'est que les fichiers -help.pd sont dans le même répertoire que les bin, au moins je sais qu'ils fonctionnent.
J'ai aussi mis les libs à charger au démarrage, mais il refuse, même avec le chemin complet: mrpeach: can't load library.
J'ai ensuitze tenté avec [declare], ça fonctionne avec -path:
[declare -path /usr/lib/pd/extra/mrpeach]
mais je dois refaire la manip pour un sous dossier:
[declare -path /usr/lib/pd/extra/mrpeach/net]
J'ai finalement cherché l'origine de chaque objet manquant, et renseigné le chemin dans les configs (path)
je me demande s'il y a moyen de faire plus compliqué...
Hors ligne
il faut comprendre que les libs peuvent avoir différents "formats":
- 1: abstractions : les objets définis par la lib sont en fait des patchs Pd (par exemple : zexy/sum.pd)
- 2: objets "unitaires": un fichier tytpe .pd_linux (selon l'OS) par objet (ex: mrpeach/tcpclient.pd_linux)
- 3: bibliothèque contenant plusieurs objets ; ex : zexy/zexy.pd_linux, qui contient [avg~], [blockmirror~], etc...
Dans les cas 1 et 2, il est nécessaire d'indiquer à Pd le chemin ou il pourra trouver les objets (compilés ou abstractions). Il n'est pas nécessaire d'indiquer le chemin complet, car Pd connaît les emplacements standards (par exemple /usr/lib/pd/extra/ ou ~/pd-externals) et on peut lui ajouter des dossiers de recherche, dans les Préférences/Chemins. Donc il suffit d'écrire :
[declare -path mrpeach]
On peut aussi indiquer le dossier dans l'appel de l'objet :
[zexy/sum]
ou
[mrpeach/tcpclient]
Dans le cas 3, il faut charger la lib avant de pouvoir instancier des objets qu'elle contient :
[declare -lib zexy]
Dans ton cas, puisque mrpeach n'est qu'un dossier contenant des objets unitaires, si tu essayes de charger mrpeach comme une bibliothèque tu obtiens une erreur : il n'existe pas de fichier "mrpeach.pd_linux".
Au fait : connais-tu le menu "Aide"/"Installer des objets supplémentaires" ? C'est le nouveau moyen standard d'installer des objets (le nom de code de cet outil est "Deken"). Très pratique !
Hors ligne
merci c'est limpide!
je regarderai Deken, le nom est un peu angoissant...
j'ai encore du changer quelques détails mais mon patch re-fonctionne bien.
Dernière modification par Blindekinder (2019-11-21 00:06:14)
Hors ligne
Très bien Denken...
j'imagine que ça fait doublon d'installer les libs en plus de celle des paquets, mais je saurai où aller chercher.
Merci!
Dernière modification par Blindekinder (2019-11-21 11:23:58)
Hors ligne
Pages: 1