Bonjour à tous !!
Ca y est!! je mets les mains dans le cambouis !!! Cela faisait un bon bout de temps que je lorgnais du côté de Max et compagnie... me voila lancé sur Pure Data !! Je pense d' abord l' utiliser pour créer des B.A.R, synthés et lecteurs de sample.
J' ai un tout petit peu d' expérience en programmation mais apprendre un langage m' est toujours douloureux...
Lire et comprendre les docs, pas toujours en français, prennent beaucoup de temps et si quelqu' un pouvait répondre à mes quelques questions cela me permettrait de gagner énormément de temps.....
-quand on transforme son patch en .app il s' agit d' une vraie application ? ça ne nécessite pas PD pour tourner ?
-j' ai cru comprendre qu' on pouvait intégrer un "fichier patch" dans un autre patch, ce qui permet de rationaliser l' organisation des données dans un projet complexe. Comment s' y prendre ??
-comment rendre son projet beau ??? cacher les modules et importer des images .bmp ??
-C' est quoi les GUI ?? comment on accéde aux autres bibliothéques ? que faut-il importer ?
-comment s' y prendre simplement pour lire des samples ????
voila.....Merci !!!!!!
Peter.
Hors ligne
Salut Peter, et bienvenue (en douceur je l'espère!) dans un monde de petites boîtes avec des traits dans tous les sens! Il ya de quoi écrire 20 pages pour bien te répondre, dans le genre de http://en.flossmanuals.net/PureData/ qu'on en saurait trop reccomander même si en anglais, mais voici qq réponses à la volée:
1/ Je n'ai jamais fait de .app avec Pd, sous quelle plate-forme travailles-tu? de manière générale, il n'y a pas besoin de générer d'executable comme avec Max/MSP, il suffit de distribuer les patches, avec qq instructions éventuellement ou un script d'install, puisque Pd est un programme libre.
2/ il suffit d'enregistrer le patch que tu souhaites imbriquer dans un fichier, vérifier que ce fichier est dans le chemin d'accès de Pd, et l'instancier.
Par exemple, tu crées un adsr que tu enregistres dans le fichier adsr.pd dans le même dossier que ton patch principal synthe.pd
Ensuite, dans synthe.pd tu crées un objet nommé [adsr]
Voilà, tu as créé ce qu'on appelle une abstraction. Tu peux en profiter pour lui donner des arguments :
[ adsr 100 2500 250]
que tu récupères à l'intérieur avec les variables $1 $2 $3.
De manière générale, il est recommandé d'avoir un dossier pd-externals dans ton dossier d'utilisateur ~/pd-externals sous linux , ou ~/Library/Pd-externals sous osx , tu peux ensuite y créer un sous répertoires mes_abstractions que tu ajoutes dans le chemin via le menu Path de Pd.
3/ il faut utiliser le Graph-on-parent aussi appelé GOP. Lire à ce sujet http://footils.org/cms/weblog/2004/dec/ … one-right/
Le seul format d'image que tu puisses insérer avec Tk c'est le GIF!
4/ Le GUI c'est Pd! Il y a un vieux projet abandonné pour GTK 1.2, sinon tu peux t'amuser à en créer un avec GEM , la librairie vidéo, ou alors en coder un avec un autre programme et communiquer via OSC.
Pour utiliser d'autres librairies, c'est pas mal d'utiliser Pd-extended si tu veux être rapide. Si tu veux tout savoir, c'est un peou long pour ce matin, ça mériterait un autre post :-)
5/ tu lis la doc sur les objets soundfiler~, readsf~ (même si ej te recommande readanysf~ si tu as le courage de le compiler, et tu étudies les arrays.
Si tu cherches du tout cuit, je te conseillerais les PDMTL abstractions .
++
O
Dernière modification par oli44 (2009-11-13 11:44:28)
Hors ligne
Salut et bienvenue PeterCocteau,
Oli t'as donné une succinte mais efficace introduction, pour compléter un peu je dirais qu'il ne faut pas hésiter à installer pd-extended, qui te livrera un nombre impressionant de plugins (ou externals en langage pd) le tout étant aujourd'hui arrivé à maturité.
Il faut aussi parcourir et re-parcourir les (très) nombreux fichier d'aide qui sont situés dans :
'Help' -> 'Browser'
Il faut aussi savoir qu'on peut accéder à l'aide contextuelle d'un objet en cliquant dessus grâce au clic droit (ou alt+clic sur mac), c'est très pratique et il est conseillé de l'utiliser à outrance surtout quand on débute...
Hors ligne
rep a écrit:
Salut et bienvenue PeterCocteau,
Oli t'as donné une succinte mais efficace introduction, pour compléter un peu je dirais qu'il ne faut pas hésiter à installer pd-extended, qui te livrera un nombre impressionant de plugins (ou externals en langage pd) le tout étant aujourd'hui arrivé à maturité.
Il faut aussi parcourir et re-parcourir les (très) nombreux fichier d'aide qui sont situés dans :
'Help' -> 'Browser'
Il faut aussi savoir qu'on peut accéder à l'aide contextuelle d'un objet en cliquant dessus grâce au clic droit (ou alt+clic sur mac), c'est très pratique et il est conseillé de l'utiliser à outrance surtout quand on débute...
Rep merci pour cette réponse
Oui je n' avais pas précisé mais je suis aussi sur mac OSX et la version que j' ai chargé est bien Pd extended .
Et je n' ai pas hésité à abuser des aides que tu préconises.....disons que j' ai déjà "pris mon pied" en réalisant une boite à rytme "analogique" ( avec tempo/swing ajustables , 1 pattern de 16 double-croches éditable et des sonorités pseudo-analogiques) en seulement 2 soirées... ce qui me paraissait loin d' être évident quand j' ai ouvert le logiciel il y 48 h..
mais je ne comprends pas trop l' utilisation des plugins, j' ai essayé de faire un copier/coller d' une enveloppe ADSR d' un exemple vers mon projet mais le "module "n 'est pas reconnu... faut-il "activer" les plugs ??? comment ??
merci !
Peter.
Dernière modification par PeterCocteau (2009-11-13 19:49:26)
Hors ligne
Merci Oli pour ces réponses !
oli44 a écrit:
1/ Je n'ai jamais fait de .app avec Pd, sous quelle plate-forme travailles-tu? de manière générale, il n'y a pas besoin de générer d'executable comme avec Max/MSP, il suffit de distribuer les patches, avec qq instructions éventuellement ou un script d'install, puisque Pd est un programme libre.
Je suis sous mac OSX ce qui explique les .app A l' origine je ne me suis pas mis sur PD pour réaliser des éxecutables..mais il serait dommage de ne pas en profiter.
Dans le menu file on peut faire "make app from patch ou "make app from folder". et en effet ça me crée une appli avec le nom de mon projet.
Néanmoins l' appli ainsi crée comporte les mêmes menu que PD... bizarre isn't it ?? c'est ces menus qui 'mont mis la puce à l' oreille et me fait demander si j' ai bien crée une appli "stand alone"...
oli44 a écrit:
2/ il suffit d'enregistrer le patch que tu souhaites imbriquer dans un fichier, vérifier que ce fichier est dans le chemin d'accès de Pd, et l'instancier.
Par exemple, tu crées un adsr que tu enregistres dans le fichier adsr.pd dans le même dossier que ton patch principal synthe.pd
Ensuite, dans synthe.pd tu crées un objet nommé [adsr]
Voilà, tu as créé ce qu'on appelle une abstraction. Tu peux en profiter pour lui donner des arguments :
[ adsr 100 2500 250]
que tu récupères à l'intérieur avec les variables $1 $2 $3.
De manière générale, il est recommandé d'avoir un dossier pd-externals dans ton dossier d'utilisateur ~/pd-externals sous linux , ou ~/Library/Pd-externals sous osx , tu peux ensuite y créer un sous répertoires mes_abstractions que tu ajoutes dans le chemin via le menu Path de Pd.
Ok, j' ai compris en gros et je viens de trouver le menu path..il me reste plus qu' à me familiariser avec ça..
oli44 a écrit:
3/ il faut utiliser le Graph-on-parent aussi appelé GOP. Lire à ce sujet http://footils.org/cms/weblog/2004/dec/ … one-right/
Le seul format d'image que tu puisses insérer avec Tk c'est le GIF!
trés bien , trés bien je potasserai aussi ce lien...
oli44 a écrit:
4/ Le GUI c'est Pd! Il y a un vieux projet abandonné pour GTK 1.2, sinon tu peux t'amuser à en créer un avec GEM , la librairie vidéo, ou alors en coder un avec un autre programme et communiquer via OSC.
euhh..j' ai rien compris mais en tout cas la video ne m' intéresse pas pour le moment.
oli44 a écrit:
Pour utiliser d'autres librairies, c'est pas mal d'utiliser Pd-extended si tu veux être rapide. Si tu veux tout savoir, c'est un peou long pour ce matin, ça mériterait un autre post :-)
comme je disais à Rep je suis justement sur PD extended. et quand je parlais de librairie c'est pour voir accés à plus de boutons, des modules de traitement de son, etc..
Pour l' instant le bang et le toggle qui se battent en duel c'est un peu cheap....
oli44 a écrit:
5/ tu lis la doc sur les objets soundfiler~, readsf~ (même si ej te recommande readanysf~ si tu as le courage de le compiler, et tu étudies les arrays.
Si tu cherches du tout cuit, je te conseillerais les PDMTL abstractions .
++
O
Ok je vais jeter un oeil sur ces commandes..
Bon voila déjà de quoi m' occuper quelques jours je crois.. Vos réponse à tout deux m' éclairent déjà beaucoup ! En fait PD me fait beaucoup penser au logiciel de programmation graphique:NXT de Lego (que j' utilise pour la robotique).. hormis le traitement du son c'est quasi tout pareille...
Merci !!
Peter.
Hors ligne
citation :
Le seul format d'image que tu puisses insérer avec Tk c'est le GIF!
Tu peux aussi utiliser le .ppm pour pouvoir faire des dégrader... la boite c'est [image monfichier.gif] / [image monfichier.ppm]
J'ai tissé un petit sampler que tu trouveras ici (http://www.yamatierea.org/papatchs/#polyfolie)et qui utilise le "graph on parent" (pour faire des trous dans les boites) et la boite [image] pour simuler un semblant d'interface...
Tu peux essayer de t'en inspirer pour comprendre les imbriquement s...
... mais il difficile de faire sans les bang et les slides.
Pour débuter, je t'invite à faire le tour des tutos (en français) de Raphaël : http://raphael.isdant.free.fr/puredata.htm
Vraiment très bien fait...
Tu y trouveras, d'ailleurs, une librairie GemUI pour slide et bouton...mais je ne suis pas sûr que cela soit ce que tu cherches...
Bon courage...
Dernière modification par Olivier (2009-11-14 11:42:14)
Hors ligne
Merci Olivier,
un tutoriel en français ça fait du bien ... j' ai regardé tes patches aussi mais je ne comprends toujours pas bien l' histoire du graph on patent.
A vrai dire, pour commencer par le début je ne comprends toujours pas comment faire un fond coloré (sans image, juste un fond) je m' attendais à trouver les réglages de couleur dans propriété mais je ne trouve rien...
Sinon pour le reste ça avance bien, je lis maintenant les .aif,j' utilise ' ADSR.. bref ça j' avance bien dans la compréhension...
Mais quelque chose me taraude encore: les histoires de latence.. je crois avoir compris que chaque module induit un retard dans le traitement mais que ces retards ne sont pas calculable avec le timer (qui donnerait une valeur théorique et non réel)...je me trompe ?? comment gérer ça ??
En tout cas merci à tous !!! vos réponse m' ont permis de faire un pas de géant....
Hors ligne
Salut,
Pour faire un fond coloré, il faut ajouter un "canvas" et là tu pourras lui donner la couleur que tu veux.
Un bon conseil pour que ce soit "beau", c'est de faire un sous-patch ou une abstraction pour la partie graphique, sans mettre tous les objets à vue ou même cachés sous un canvas parce que les fils ne sont pas masqués.
Tu envoies les infos par des [send] et [receive]. Les objets d'interface ont dans leurs propriétés des cases pour les envoies et réceptions sans avoir besoin de mettre des objets pour le faire.
Pour la latence, la carte son introduit aussi une latence. Le mieux pour mesurer la latence globale c'est d'envoyer un "top" par l'interface, déclencher un compteur qui s'arrêtera au moment ou le son revient dans puredata par une boucle. Moins les latences en entrée et en sortie de la carte tu dois pouvoir calculer la latence de ton patch.
De plus la cadence de contrôle est de 50 Hz, tous les 20 ms.
Dernière modification par pob (2009-11-15 17:26:22)
Hors ligne
citation :
je ne comprends toujours pas bien l' histoire du graph on patent.
Si tu fais bouton-droit>propriété tu as la possibilité de cocher la case "graph on parent".
Une fois appliquer, un cadre rouge apparaîtra dans ton patch.
Ce cadre (dont tu peux modifier la taille et l'emplacement avec les champs size et margin) te permet de "faire un trou" dans ton patch de manière à ce que l'on puisse voir ce qui s'y passe de "l'exterieur".
Mais attention, toutes les boites ne sont pas visibles, et les fils non plus... essaye avec une boite "nombre" pour comprendre...
Hors ligne
Pour faire un fond coloré:
tu peux ajouter des canvas comme déjà mentionné
tu peux aussi ajouter un fond coloré grâce à une commande TK envoyée en direct:
cf dans l'aide de la rubrique hcs le patch canvas_name
++
O
Hors ligne
Yep, de retour,
et bien merci à tous !! vos conseils ont vraiment simplifiés mes premiers pas dans cette usine à gaz....
C'est Ok pour les couleurs mais j' ai toujours un doute sur les latences.
Je m' explique, j' ai cru comprendre que chaque module induisait un léger retard... est-ce quelque chose que vous prenez en compte dans la conception ??? Je parle ici de PD en interne et non pas des entrées/sorties de mon ordi...
Merci !!
Peter.
Hors ligne
Ce dont je tiens effectivement compte, c'est de la ressource utilisée pas les GUI, (bang, toggle, nombre...) de débugage...
J'essaye de les virer au maximum une fois le patch terminé car ils peuvent être très très gourmands...
Sur les conseils d'Oli44, j'utilise aussi un [spigot] avec une boite receive "debug" pour ne les activer que lorsque c'est nécessaire...
Dernière modification par Olivier (2009-11-19 21:51:20)
Hors ligne
Ok, je vois... je me posais justement la question: jusqu' à quel point peut on développer les projets....?
J' ai l' impression que j' ai beaucoup de marge, je précise d' ailleurs que je suis sur un Imac 2,4 Ghz duocore avec 4 GO de ram. Genre de mac ou je peux faire tourner 80 pistes avec des plug-ins sur Logic.
Si je comprends bien on est limité ici uniquement par la puissance du CPU et de la ram ?? comment estimer la marge de manoeuvre ??
Pour les toggles et compagnie c'est bon à savoir. Pour l' instant je peux me permettre de simplifier au maximum mais j 'irai regarder le "spigot".
Merci encore !
Hors ligne
Salut,
un truc à savoir: Pd n'est pas optimisé multiprocesseur. Une des solutions consiste à avoir si nécessaire 2 instances de Pd qui gèrent séparment les tâches comme l'affichage d'un coté , l'audio de l'autre.
ensuite, les print dans la console sont aussi très gourmands en CPU. Une des solutions consiste à démarrer Pd depuis un terminal avec l'option -stderr pour les afficher dans le terminal mais pas dans Pd itself. Par contre , je ne sais pas/ je n'ai jamais essayé démarrer Pd sous OSX depuis le Terminal.
Servus,
O
Hors ligne
Merci Oli, en effet ça confirme mes doutes sur le bi-processeur...voila une chose qui est fort dommage....
En tout cas je suis bien sur les rails maintenant je sens que je vais y passer l' hiver...
Peter.
Hors ligne
Pages: 1 2