hello pd-lers,
i'm a long time max user and an occasional pd-lurker.
for a programming course that is based on maxmsp, i'd like to make it
possible for some students to follow the course using pure data. i've
done this last year for the first time and it worked - lets say - ok.
but there was quite some confusion, partly due to my limited
experience in pd and partly because different versions of pd
supported a different set of objects.
i want to improve the situation a little this year and therefore have
a view basic questions:
i guess that the most recent pd-extended version from http://
puredata.info/downloads is what i should tell them to use in order to
get the most similar setup between max and pd, right?
are there any special "max<-->pd libraries" i should look out for?
very often i find myself sitting infront of a pretty trivial patching
problem, but i just can't find the right objects names in pd.
what could i try to find objects that perform a similar/same task as
their max cousins, but obviously have a different name (e.g. split <--
moses)?
is there some documentation about that?
and another one:
i was looking for an "uzi" object in pd. after a lot of trial and
error i found "kalashnikov". ok, fine.
after looking at kalashnikov help, i found that there *is* a "uzi"
for pd - but i can't instanciate the object, if i haven't loaded
kalashnikov at least once before.
so: starting pd, new patcher, new object, uzi --> couln'd create
but: starting pd, new patcher, new object, kalashnikov, new object,
uzi -- does work.
what might be causing this?
(mac ppc, 10.4.11, pd extended 0.39.3)
i've tried pd-extended 0.40.3 form this site http://puredata.info/ downloads when i launch this, i get a lot of errors: cyclone: can't load library zexy: can't load library creb: can't load library cxc: can't load library ...
do i need to reset some preferences?
i'll probably be back with more questions... thanks for your attention, volker.
Hallo Volker (seit Szombatehly),
i guess that the most recent pd-extended version from http:// puredata.info/downloads is what i should tell them to use in order to get the most similar setup between max and pd, right? are there any special "max<-->pd libraries" i should look out for?
there's the cyclone library, which is a very good effort on making max
objects available on pd-Ext. besides that and the core objects, not too
much available, afaik.
careful with mistake number 1: in Pd all objects are made for floats.
almost only [i] is for ints.
very often i find myself sitting infront of a pretty trivial patching problem, but i just can't find the right objects names in pd. what could i try to find objects that perform a similar/same task as their max cousins, but obviously have a different name (e.g. split <--
moses)?
is there some documentation about that?
I don't know if there's a page just for that (just searched
www.puredata.info and found nothing). there's lots of correspondence on
the list, if you want to sort it out - or anyone with a better mind can
tell you more details.
this might be useful for you: I've made better versions of the
documentation files (afaik, the more complete there are). One of them, the
0.Intro.txt file, you can get at http://puredata.info/Members/jmmmp. That
was done some years ago, before Pd-ext existed (but many externals already
did).
I'm trying to do another one, with the latest version of pd-ext. It's
still incomplete, but you can see if it helps something. it's attached.
and another one: i was looking for an "uzi" object in pd. after a lot of trial and error i found "kalashnikov". ok, fine. after looking at kalashnikov help, i found that there *is* a "uzi" for pd - but i can't instanciate the object, if i haven't loaded kalashnikov at least once before. so: starting pd, new patcher, new object, uzi --> couln'd create but: starting pd, new patcher, new object, kalashnikov, new object, uzi -- does work. what might be causing this? (mac ppc, 10.4.11, pd extended 0.39.3)
simple: if you go to extra/ext13 (folder where this external is, check it
by opening the help file or doing a search on your disk), you see there's
no uzi.[whatever] file, but just kalashnikov.[???] [in windows, these
files are **.dll, don't know the endings in unix]. That means that to open
this object, you must do kalashnikov first; only after is the namespace
uzi in memory. You might see who did the ext13 externals and speak with
him, it's the best way to have it corrected.
i've tried pd-extended 0.40.3 form this site http://puredata.info/ downloads when i launch this, i get a lot of errors: cyclone: can't load library zexy: can't load library creb: can't load library cxc: can't load library ...
do i need to reset some preferences?
I can't advise on macs, but did you check the file->path menu? or mac guys
could say where these settings are kept.
Hallo, Jo?o Pais hat gesagt: // Jo?o Pais wrote:
Hallo Volker (seit Szombatehly),
i guess that the most recent pd-extended version from http:// puredata.info/downloads is what i should tell them to use in order to get the most similar setup between max and pd, right? are there any special "max<-->pd libraries" i should look out for?
there's the cyclone library, which is a very good effort on making max
objects available on pd-Ext. besides that and the core objects, not too
much available, afaik.careful with mistake number 1: in Pd all objects are made for floats.
almost only [i] is for ints.
And the second number one mistake is execution order: In Pd, the order, fanning connections fire, is basically undefined. In Max, connections going right, fire first. So it's best to always use triggers, in Max, as well.
When I ported the RTClib from Max to Pd, converting implicit execution ordering to explicit order using triggers was my main job.
And to the other question: Instead of uzi/kalashnikov, [until] is very useful - just build some abstraction around [until] if you need to count. But often you don't need it anyways
Frank
hi joao, nice to hear/read from you!
careful with mistake number 1: in Pd all objects are made for
floats. almost only [i] is for ints.
yes, thanks, i'm aware of these basic and important differences.
this might be useful for you: I've made better versions of the
documentation files (afaik, the more complete there are). One of
them, the 0.Intro.txt file, you can get at http://puredata.info/ Members/jmmmp. That was done some years ago, before Pd-ext existed
(but many externals already did). I'm trying to do another one, with the latest version of pd-ext.
It's still incomplete, but you can see if it helps something. it's
attached.
yes, this is definitely helpful, so, thanks for that.
simple: if you go to extra/ext13 (folder where this external is,
check it by opening the help file or doing a search on your disk),
you see there's no uzi.[whatever] file, but just kalashnikov.[???]
[in windows, these files are **.dll, don't know the endings in
unix]. That means that to open this object, you must do kalashnikov
first; only after is the namespace uzi in memory. You might see who
did the ext13 externals and speak with him, it's the best way to
have it corrected.
ok, i've seen this before (in max), but i don't see, what this is
good for.
well, not so important to me right now.
i've tried pd-extended 0.40.3 form this site http://puredata.info/ downloads when i launch this, i get a lot of errors: cyclone: can't load library zexy: can't load library creb: can't load library cxc: can't load library ...
do i need to reset some preferences?
I can't advise on macs, but did you check the file->path menu? or
mac guys could say where these settings are kept.
yes, i did check the preferences and the path menu, but to be honest,
this doesn't look very functional at all...
i searched the archives and a lot of people seem to have difficulties
with the preferences.
i read about .pdrc, which should/could be a solution, but then in
another post (from 2005!) i read this is deprecated and so on.
so, my main question right now is, where and how does pd store it's
preferences and how can i edit those (permanently) - on osx?
it does work for me with pd-extended-0.39.3 for some reason (even if
i move the app folder around or rename it).
but in pd-extended-0.40.4 i can't edit the preferences gui - looks
broken to me...
i might start a new thread about this issue.
so, thanks for your answers joao, best wishes, volker.
Hallo, volker böhm hat gesagt: // volker böhm wrote:
very often i find myself sitting infront of a pretty trivial patching
problem, but i just can't find the right objects names in pd.
One major difference between Max and Pd is the number of available objects. Ignoring objects that aren't available in Pd at all (like the Jitter stuff) generally I'd say we have four kinds of differences:
Items 1) and 2) just require users to learn a different vocabulary. There's no way around that, but it shouldn't be too hard. With Pd and Max this is a bit like learning different variants of natural languages e.g. the Austrian and the German German - "Sessel" vs. "Stuhl". ;)
It would be cool to document these differences in a Wiki page or so.
Reading through all the docs and learning the help files for vanilla objects (i.e. the objects in 5.referemce/help-intro.pd) should help with that. pdpedia may help as a search engine.
Which solution to choose from 3) and 4) depends on what kind of philosophy you are a fan of, or what kind of "patching school" you want to be a part of. Externals sometimes have to be used, but quite often you can also approach a task using just the builtin objects. This requires a slightly deeper knowledge of Pd, but in the long run will make your patches be more portable and easier to install. Of course for some purposes you have to use externals for various reasons like performance.
But objects like [uzi] or [counter] can be patched perfectly well using only what Pd vanilla offers - they show the fundamental algorithms that IMO every Pd user should have seen or created at least once in their patching life. Of course Max-users are pretty much used to using [counter] or [prepend] where Pd users use [f 0]X[+ 1] and [list prepend]---[list trim]. In a dual platform course for Max and Pd users I think it's important to spend one or more session(s) working on the differences between platforms.
As an example for approach 3) attached is a clone of uzi built as a pure Pd abstraction. As I wrote before in many usecases a simple [until] activated with a float number will serve the same purpose. It won't give you the bang counter and will not resume, but for many loops that's not necessary anyway. And the advantage of using a plain [until] is that you cannot forget to include the [unzi] abstraction when giving away your patches to someone else.
Frank Barknecht Do You RjDj.me? _ ______footils.org__
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote:
As an example for approach 3) attached is a clone of uzi built as a pure Pd abstraction.
Ah, I found a small compatibilty bug in my abstraction, attached is a version that should behave more like Max' [uzi]
Frank Barknecht Do You RjDj.me? _ ______footils.org__
hallo frank,
On 01 Nov 2008, at 12:04, Frank Barknecht wrote:
Hallo,
very often i find myself sitting infront of a pretty trivial patching problem, but i just can't find the right objects names in pd.
One major difference between Max and Pd is the number of available objects. Ignoring objects that aren't available in Pd at all (like the Jitter stuff) generally I'd say we have four kinds of differences:
- some objects just have different names (osc~ vc. cycle~)
- some serve the same purpose, but behave differently and may have different names (spigot vs. gate)
- some can be build from Pd's builtin objects (counter)
- some objects are only available as externals (Cyclone is great)
Items 1) and 2) just require users to learn a different vocabulary. There's no way around that, but it shouldn't be too hard. With Pd and Max this is a bit like learning different variants of natural languages e.g. the Austrian and the German German - "Sessel" vs. "Stuhl". ;)
It would be cool to document these differences in a Wiki page or so.
yes, definitely.
Which solution to choose from 3) and 4) depends on what kind of philosophy you are a fan of, or what kind of "patching school" you want to be a part of. Externals sometimes have to be used, but quite often you can also approach a task using just the builtin objects.
sure.
This requires a slightly deeper knowledge of Pd, but in the long run will make your patches be more portable and easier to install. Of course for some purposes you have to use externals for various reasons like performance.
i'm still finding out about pd, but in max it's quite easy to include
and use a set of externals - not much different than using abstractions.
a few years ago i was very much into "doing everything in max".
but when i started learning a little java and c, i noticed that a lot
of things are way easier to code in an external.
actually i think we probably agree on this one.
But objects like [uzi] or [counter] can be patched perfectly well using only what Pd vanilla offers -
yes, of course. [uzi] was just a simple example. but i didn't know about [until] - so, thanks for your uzi abstraction.
best wishes, volker.
Hallo, volker böhm hat gesagt: // volker böhm wrote:
i'm still finding out about pd, but in max it's quite easy to include
and use a set of externals - not much different than using abstractions.
In principle is easy in Pd as well: Just get the source, compile it and put it into your search path. However Pd runs on more platforms than Max/MSP: Windows, Linux, OS-X, various mobile phones etc. and you have to find a binary for each platform you want to use it on. Additionally many developers don't have access to all platforms. Pd-extended includes most externals on the SVN precompiled, so that's a big help, but you'd still be out of luck when you try to run on some of the more exotic platforms.
a few years ago i was very much into "doing everything in max". but when i started learning a little java and c, i noticed that a lot
of things are way easier to code in an external.
That's of course true - in Pd, the Lua loader is wonderful for this, as it doesn't require any compilation of your objects.
Anyway for being crossplatform between Max and Pd, externals are tricky as they make the possible differences in available objects even bigger than they already are.
I would recommend to let your student install the Cyclone library, ideally in a version compiled as a library, so you can use the [cyclone] library object to import Max patches into Pd. I did this when porting RTClib and it's a huge help.
Note that Cyclone includes some Max objects as capitalized names: [uzi] in Cyclone is called [Uzi] for example.
Frank Barknecht Do You RjDj.me? _ ______footils.org__
Am 31.10.2008 um 17:11 schrieb volker böhm:
hello pd-lers, i'm a long time max user and an occasional pd-lurker. for a programming course that is based on maxmsp, i'd like to make it possible for some students to follow the course using pure data. i've done this last year for the first time and it worked - lets say - ok.
hi,
i had almost the same situation last week. a class with mainly
beginners but some had knowledge in max or pd. to illustrate the
basic differences i gave them those patches, feel free to use them
(comments are in german).
Max wrote:
hi,
i had almost the same situation last week. a class with mainly beginners but some had knowledge in max or pd. to illustrate the basic differences i gave them those patches, feel free to use them (comments are in german).
cute image, thanks