<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Well yeah lots of people jabber about how Max/MSP is an "industry
standard" and how badly documented Pd is (which might have been true
10 years ago,<br>
but not today), and generally seem to be afraid of free software ...
incidentially, most of those use a Mac ;) <br>
<br>
About the comparison to SC, well, different tools for different
jobs, i guess ? <br>
<br>
<br>
<br>
<div class="moz-cite-prefix">On 22.02.2016 16:01, Alexandre Torres
Porres wrote:<br>
</div>
<blockquote
cite="mid:CAEAsFmj7JWoW9KAWm8-LFBN_yaCNw4LOET187NHHgLV02kRXaA@mail.gmail.com"
type="cite">
<div dir="ltr">Or SC :)</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-02-22 11:12 GMT-03:00 Matt Barber
<span dir="ltr"><<a moz-do-not-send="true"
href="mailto:brbrofsvl@gmail.com" target="_blank">brbrofsvl@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div class="gmail_default"
style="font-family:verdana,sans-serif">Over the years,
the most common complaint I've heard about Pd's
limitations is that it's not identical to Max/MSP.</div>
</div>
<div class="HOEnZb">
<div class="h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Feb 22, 2016 at 4:19
AM, Eugene Lazarchik <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:evgenius.lazarchik@gmail.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:evgenius.lazarchik@gmail.com">evgenius.lazarchik@gmail.com</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>Where do I start?<br>
<br>
</div>
<div>* Dynamic patching is
officially not supported and
bug/feature requests get
ignored. I had to jump through a
lot of hoops to use dynamic
patching with GOP but I
discovered a bunch of weird
issues with subpatches not
getting redrawn and connectors
left hanging after object
deletion. Had to build ugly
hacks/workarounds since nobody's
gonna fix the issues in PD.
Sending loadbangs to dynamically
created objects is a pain, as
well as trying to dynamically
connect them to something (most
examples of using the "connect"
message use hardcoded object
ID's).<br>
</div>
<div>* Support for lists is quite
limited. Wanna create a
multidimentional array? Build
your own. Want a hash map? Build
your own. Luckily there's
list-abs but it's weird that
such basic functionality (that's
present in most programming
languages) is not a core
language feature.<br>
</div>
<div>* Sends and receives are
global which creates a potential
for conflicts. $0 can be used to
avoid that but it looks ugly and
many libraries, patches, and I
think even help files, don't use
it.<br>
</div>
<div>* Help files are *.pd which
sounds neat at first, until you
realize that they're not easily
searchable and can't be viewed
online.<br>
</div>
* Bugs and weird behavior when
handling special characters.
There's no consistent way of
escaping them. Sometimes
characters disappear when saving
and loading a patch.<br>
</div>
* Limited support for comments.
Special characters are not allowed
(really? these are comments!).
Automatic line wrapping doesn't work
well since after saving/loading a
patch often changes how text is
broken into lines. So I have to put
each line as a separate comment.<br>
</div>
* Dependence on font sizes. By default
object boxes scale automatically
depending on the text inside. When you
add more text, all inlets/outlets
move. I installed a different version
of PD and font size is slightly
different and all objects are of a
different size now.* Want to add an
outlet to the beginning of a trigger
object? Enjoy disconnecting and
connecting all other outlets since
there's no way of automatically move
them.<br>
</div>
</div>
* Want to print all messages flowing
through a connection for debugging
purposes? Remove the connection, then
create a [t a a] object, then create a
[print] object, then connect [print] to
the second outlet, then connect [t a a] to
the previous and next object (If you don't
use the [trigger], messages will only be
printed after they flow through the whole
system). After you're done, delete the
objects and re-create the connection. Not
very convenient for quick debugging.<br>
</div>
* Vanilla provides only minimal
functionality while most of the convenient
objects are supposed to come from external
libraries. There's multiple issues with
that. First one is that libraries are less
standardized and consistent. They have
different approaches, sometimes duplicate
each other, use different conventions for
naming, inlets/outlets, etc. Second issue is
that libraries often become
dead/unmaintained.<br>
</div>
* Big patches/abstractions become unreadable
really fast. Connectors are always straight
lines and there's no support for dummy
intermediate "points" for connecting stuff. I
use [t a] and [+~] for these purposes but it'd
be nice to have native support for this.<br>
</div>
* Standard GUI objects are ugly and have limited
functionality.<br>
<div>
<div>
<div>* There's no good support for the
concept of functions/procedures. Let's say
we need to take some input, do some
transformations and produce output, and we
need to do that in multiple places in our
patch. We can copy the objects but that
will make the patch use more memory and
there will be no code reuse. Another way
is to make that an abstraction, but it's
silly to make abstractions for every
little thing that we need in 2 places.
Also, instantiating 2 abstractions still
uses more memory. We can try reusing the
same code but we'll have to make multiple
output connections so we'll need proper
routing in order to figure out where to
send the result. I made an abstraction to
simplify that but this should be a
standard feature of PD.<br>
</div>
<div>* *.pd format is not very friendly to
Git. Try viewing diffs and resolving merge
conflicts. Moving a subpatch on the screen
causes different coordinates to be saved
in the file, often resulting in conflicts.
Cutting and pasting renumbers all objects
and connections. This makes using branches
and working on the same files impractical.<br>
</div>
<div>* PD seems to be maintained by only a
handful of people and new features/bug
fixes are rarely released. I used to code
in C and was thinking of contributing but
I found no good guide for new
contributors. I wasn't even able to
compile PD on my Mac (there's multiple
build scripts in the sources but none of
them work). I'm also not sure what the
testing process should be (to make sure
I'm not breaking any existing
functionality or support for operating
systems or devices).<br>
</div>
<div>* PD community uses mailing lists for
communications, haha. In order to find
useful information I have to view one
message per page, with tons of distracting
quotes from previous messages.<br>
<br>
</div>
<div>These are just the first things that
came to my mind...<br>
</div>
<div><br>
</div>
</div>
</div>
<div>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sun, Feb 21,
2016 at 6:30 PM, Niklas Reppel <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:nik@parkellipsen.de"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:nik@parkellipsen.de">nik@parkellipsen.de</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">Hmm, i always
thought that the dynamic creation and
destruction of sound sources
(oscillators etc.) pretty inconvenient
in PD,<br>
compared to a source-code based
approach.<br>
<br>
Maybe i missed some developments here,
but the last time i checked (a year
ago maybe), this was clearly quite<br>
a hassle, even though i know it's
possible.<br>
<div>
<div><br>
<br>
On Mon, Feb 22, 2016 at 03:49:43AM
+0200, Matti Viljamaa wrote:<br>
> Perhaps a bit of broad
question, but I find it
interesting in order to speculate
about future additions.<br>
><br>
> How do you think Pure Data is
limited?<br>
>
_______________________________________________<br>
> <a moz-do-not-send="true"
href="mailto:Pd-list@lists.iem.at"
target="_blank">Pd-list@lists.iem.at</a>
mailing list<br>
> UNSUBSCRIBE and
account-management -> <a
moz-do-not-send="true"
href="http://lists.puredata.info/listinfo/pd-list"
rel="noreferrer" target="_blank"><a class="moz-txt-link-freetext" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a></a><br>
<br>
_______________________________________________<br>
<a moz-do-not-send="true"
href="mailto:Pd-list@lists.iem.at"
target="_blank">Pd-list@lists.iem.at</a>
mailing list<br>
UNSUBSCRIBE and account-management
-> <a moz-do-not-send="true"
href="http://lists.puredata.info/listinfo/pd-list"
rel="noreferrer" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
<a moz-do-not-send="true"
href="mailto:Pd-list@lists.iem.at"
target="_blank">Pd-list@lists.iem.at</a> mailing
list<br>
UNSUBSCRIBE and account-management -> <a
moz-do-not-send="true"
href="http://lists.puredata.info/listinfo/pd-list"
rel="noreferrer" target="_blank"><a class="moz-txt-link-freetext" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a></a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
<a moz-do-not-send="true" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a>
mailing list<br>
UNSUBSCRIBE and account-management -> <a
moz-do-not-send="true"
href="http://lists.puredata.info/listinfo/pd-list"
rel="noreferrer" target="_blank"><a class="moz-txt-link-freetext" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a></a><br>
<br>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
<a class="moz-txt-link-abbreviated" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a class="moz-txt-link-freetext" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a>
</pre>
</blockquote>
<br>
</body>
</html>