<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Yeah, but the problem here (automatic
      compute resource distribution) isn't just with the actual
      distribution. Control timing is a huge issue too. If you have
      multiple voices of the same synth on different threads, good luck
      playing a chord. It will frequently be an arpeggio. If there are
      very strict, predictable rules about the order of when each voice
      computes and when it sleeps in order to wait for new samples and
      control signals, this problem vanishes, but then you are no longer
      computing in parallel, and you might as well have everything on
      one thread anyway. <br>
      <br>
      This is a <i>really</i> interesting problem. If someone can solve
      it, she deserves the nobel prize in computer music.<br>
      <br>
      On 2/24/16 5:11 AM, martin brinkmann wrote:<br>
    </div>
    <blockquote cite="mid:56CDAC1E.4020608@martin-brinkmann.de"
      type="cite">
      <pre wrap="">maybe this is also a matter of convenience: i'd rather have the
dsp-framework automagically divide and distribute my program
to the available resources than to care for it myself. while it
is for example ok to put each complex voice of a synth in an extra
pd~ to make optimum use of the few cores, i'd rather not want
to spend much time thinking about grouping functinality into
(lots of) pd~ objects for a huge amount of cores.

one possibility would be to generally encapsulate any small part
of a patch into its own pd~ object and let the os do the work.
but i think this is not very convenient and would create a
massive and unnecessary overhead.

i don't know of any (audio-)examples where this problem is handled in
an elegant way though: afaik max has the same problem, reaktor is
single-threaded too, and most daws do something like "use one thread per
track"...


On 23/02/16 23:45, David Medine wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">I think we all need to learn more about multi-threading if we want to
run real-time, modular, digital signal processing algorithms on
multi-core machines. I, for one, can not think of any general, robust
way to do this. In that sense, Pd's adherence to single threading is
actually a very elegant solution to the problem.

On 2/23/2016 12:25 PM, martin brinkmann wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">On 22/02/16 02:49, Matti Viljamaa wrote:

</pre>
          <blockquote type="cite">
            <pre wrap="">How do you think Pure Data is limited?
</pre>
          </blockquote>
          <pre wrap="">for me the only real and important (i can think of at the
moment) limitation is the block-based audio processing.
to me this seems quite unnatural and inconvenient when dealing with
digital audio. it kept me for a couple of years from using pd, though it
is only a 'showstopper' in rather few cases, i found out.
feedback in large/complex patches for example, since it
is not very practical (or possible at all) to re-block
everything to 1...

what i tried but couldn't (yet): build a decent piano-roll
editor (vanilla).

and i believe too, pd has to 'learn' better multithreading to run
adequately on our future machines with hundreds or even thousands of
arm-cores...

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