<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>