$, à quoi ca sert exactement?
- 3 réponses
- 2 participants
- 916 vues
- 2 followers
lord aym
310
Posteur·euse AFfamé·e
Membre depuis 18 ans
Sujet de la discussion Posté le 07/02/2008 à 09:47:50$, à quoi ca sert exactement?
Voilà, tout est dans le titre. Je commence à me débrouiller pas trop mal avec Pd mais alors le signe dollar, j'ai beau consulter le fichier d'aide en long et en large, je ne vois pas a quoi il sert.
Si quelqu'un pouvait m'éclairer...
Merci
Si quelqu'un pouvait m'éclairer...
Merci
Gobbi
177
Posteur·euse AFfiné·e
Membre depuis 19 ans
2 Posté le 07/02/2008 à 10:08:24
Bah ma foi si tu maitrises déjà Pd sans utiliser les dollars, tu tournes à peine à 5% des capacités du logiciel !! Tu vas flipper !
Il y a trois utilisations bien différentes des dollars selon que tu le mets dans un message ou un objet :
- le plus simple c'est les messages : tu places des $1, $2 etc comme arguments, ceux-ci correspondent aux élements d'une liste que tu enverras en entrée du message. C'est pas clair ? Petit exemple :
pour un message |$3 $2 $1(
si tu envois une liste (a b c) en entrée de ce message, à la sortie tu auras la liste (c b a). $1 pour le premier élément de la liste donc a etc...
- pour les objets c'est beaucoup plus puissant : ça sert pour les sous-patchs
.
Tu sais probablement que si tu construit un patch qu'on va appeler patchB, et à condition que Pd connaisse le dossier où ce patchB est sauvé, tu peux ensuite le rappeler dans un patchA. Ça évite de refaire 15 fois les patchs, mais si il s'agissait juste de faire ça un sous-patch du type un objet |pd patchB| pouvait suffire. Là tu pourras faire beaucoup mieux, dans les objets du patchB tu peux utiliser des $1, $2 etc à la place des arguments. Quand tu charges patchB, les arguments de patchB sont alors les $1, $2 etc à l'intérieur de chaque patchB.
Encore une fois un exemple pour essayer d'être plus clair : si ton patchB est tout simplement ça :
|inlet|
|
|+ $1|
|
|outlet|
alors quand tu charges patchB dans un autre patch tu peux preciser un argument :
|patchB 5|, à ce moment là quand tu envoies un nombre en entrée du patchB tu récupères ce nombre + 5 en sortie. Tu peux donc maintenant appeler ton patchB un grand nombre de fois et faire des additions avec un paramètre variable !! J'espère avoir été clair mais c'est pas facile à expliquer non plus...
- dernier cas, le $0, là il s'agit d'un identifiant unique dans un patch. Très utile si tu fais du sous-patch comme décrit au-dessus mais que tu as besoin d'avoir un élément identifié de façon unique dans ce sous-patch, genre un send-receive. Si tu places un |receive truc| dans ton sous-patch, toutes tes instances de sous-patch recevront le message truc. Si tu utilises $0-truc, alors chaque $0-truc est unique, $0 sera un truc genre 1005, 1006, en fonction du patch dans lequel tu es...
Voilà, dis-moi si tu as besoin d'explications plus précises, là j'ai pas le temps mais ya moyen de faire des exemples rapides.
Il y a trois utilisations bien différentes des dollars selon que tu le mets dans un message ou un objet :
- le plus simple c'est les messages : tu places des $1, $2 etc comme arguments, ceux-ci correspondent aux élements d'une liste que tu enverras en entrée du message. C'est pas clair ? Petit exemple :
pour un message |$3 $2 $1(
si tu envois une liste (a b c) en entrée de ce message, à la sortie tu auras la liste (c b a). $1 pour le premier élément de la liste donc a etc...
- pour les objets c'est beaucoup plus puissant : ça sert pour les sous-patchs
.
Tu sais probablement que si tu construit un patch qu'on va appeler patchB, et à condition que Pd connaisse le dossier où ce patchB est sauvé, tu peux ensuite le rappeler dans un patchA. Ça évite de refaire 15 fois les patchs, mais si il s'agissait juste de faire ça un sous-patch du type un objet |pd patchB| pouvait suffire. Là tu pourras faire beaucoup mieux, dans les objets du patchB tu peux utiliser des $1, $2 etc à la place des arguments. Quand tu charges patchB, les arguments de patchB sont alors les $1, $2 etc à l'intérieur de chaque patchB.
Encore une fois un exemple pour essayer d'être plus clair : si ton patchB est tout simplement ça :
|inlet|
|
|+ $1|
|
|outlet|
alors quand tu charges patchB dans un autre patch tu peux preciser un argument :
|patchB 5|, à ce moment là quand tu envoies un nombre en entrée du patchB tu récupères ce nombre + 5 en sortie. Tu peux donc maintenant appeler ton patchB un grand nombre de fois et faire des additions avec un paramètre variable !! J'espère avoir été clair mais c'est pas facile à expliquer non plus...
- dernier cas, le $0, là il s'agit d'un identifiant unique dans un patch. Très utile si tu fais du sous-patch comme décrit au-dessus mais que tu as besoin d'avoir un élément identifié de façon unique dans ce sous-patch, genre un send-receive. Si tu places un |receive truc| dans ton sous-patch, toutes tes instances de sous-patch recevront le message truc. Si tu utilises $0-truc, alors chaque $0-truc est unique, $0 sera un truc genre 1005, 1006, en fonction du patch dans lequel tu es...
Voilà, dis-moi si tu as besoin d'explications plus précises, là j'ai pas le temps mais ya moyen de faire des exemples rapides.
lord aym
310
Posteur·euse AFfamé·e
Membre depuis 18 ans
3 Posté le 07/02/2008 à 23:02:48
Merci pour ta réponse. En ce qui concerne son utilisation dans un message, c'est déjà beaucoup plus clair. Seul truc, je me suis rendu compte que si je tape 3 arguments, seuls les arguments 2 et trois sont pris en compte (ex: si je met a b c puis $2 $1 $3, a n'est pas pris en compte).
L'exemple que tu m'as donné quand à son utilisation dans un objet, pas de soucis sauf pour $0. Si tu as du temps, un exemple serait le bien venu.
En tous cas, merci beaucoup.
L'exemple que tu m'as donné quand à son utilisation dans un objet, pas de soucis sauf pour $0. Si tu as du temps, un exemple serait le bien venu.
En tous cas, merci beaucoup.
Gobbi
177
Posteur·euse AFfiné·e
Membre depuis 19 ans
4 Posté le 08/02/2008 à 00:33:57
Bah écoute si on peut aider, et puis c'est dommage de passer à côté de ça dans Pd!!!
Pour les messages ça doit être un autre problème, il me semble qu'il prend le premier argument comme type pour la suite (float, symbol...), du coup il prendrait pas ton a pour un anything? Enfin en tout cas j'ai jamais eu ce problème
Le $0 est conplètement différent des autres utilisations, tu peux tester avec un sous-patch |pd truc| avec juste un |float $0| et une case de symbole, tu le duplique en un |pd truc2| et tu envoies un bang dans les deux sous-patch, tu devrais avoir deux valeurs différentes, c'est des valeurs internes au sous-patch que tu peux utiliser pour identifier un élément interne de façon unique (une table ou un receive que tu appelles $0-table par exemple, tu en auras bien deux différents dans chaque pacht), là j'ai pas ce qu'il faut sous la main mais demain je te fais ce patch si tu vois pas.
Ca ressemble vraiment à rien une explication de Pure Data, le mec qui connait pas et qui lit ça il doit halluciner
Pour les messages ça doit être un autre problème, il me semble qu'il prend le premier argument comme type pour la suite (float, symbol...), du coup il prendrait pas ton a pour un anything? Enfin en tout cas j'ai jamais eu ce problème
Le $0 est conplètement différent des autres utilisations, tu peux tester avec un sous-patch |pd truc| avec juste un |float $0| et une case de symbole, tu le duplique en un |pd truc2| et tu envoies un bang dans les deux sous-patch, tu devrais avoir deux valeurs différentes, c'est des valeurs internes au sous-patch que tu peux utiliser pour identifier un élément interne de façon unique (une table ou un receive que tu appelles $0-table par exemple, tu en auras bien deux différents dans chaque pacht), là j'ai pas ce qu'il faut sous la main mais demain je te fais ce patch si tu vois pas.
Ca ressemble vraiment à rien une explication de Pure Data, le mec qui connait pas et qui lit ça il doit halluciner
- < Liste des sujets
- Charte