<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_1_1456351510491_3642">Just poll every microsecond, and increment the counter by one microsecond.</div><div id="yui_3_16_0_1_1456351510491_3853"><br></div><div>If there's something scheduled for that microsecond, do it.</div><div id="yui_3_16_0_1_1456351510491_3925"><br></div><div id="yui_3_16_0_1_1456351510491_3926">:)<br></div><div id="yui_3_16_0_1_1456351510491_3522"><span></span></div> <div class="qtdSeparateBR"><br><br></div><div style="display: block;" class="yahoo_quoted"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"><font face="Arial" size="2"> On Wednesday, February 24, 2016 4:19 PM, Matt Barber <brbrofsvl@gmail.com> wrote:<br></font></div>  <br><br> <div class="y_msg_container"><div id="yiv5212216635"><div><div dir="ltr"><div class="yiv5212216635gmail_default" style="font-family:verdana, sans-serif;">OK, now I'm having trouble even imagining how an unblocked audio model could possibly behave (at least, as David points out, in a real-time context).</div></div><div class="yiv5212216635gmail_extra"><br clear="none"><div class="yiv5212216635gmail_quote">On Wed, Feb 24, 2016 at 2:58 PM, David Medine <span dir="ltr"><<a rel="nofollow" shape="rect" ymailto="mailto:dmedine@ucsd.edu" target="_blank" href="mailto:dmedine@ucsd.edu">dmedine@ucsd.edu</a>></span> wrote:<br clear="none"><blockquote class="yiv5212216635gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
  
    
  
  <div class="yiv5212216635yqt3973987111" id="yiv5212216635yqt91801"><div>
    This doesn't answer Matt's question at all (apologies), but just as
    a clarification, ChucK <i>does </i>block audio. It's just that
    ChucK always blocks at the minimum size of 1 sample per block. 1 is
    still a block size though, and it still implies the same problems
    associated with order of operations, feedback, interpolating control
    input, and parallelization that a block size of 64 does. <br clear="none">
    <br clear="none">
    Also, maybe this has already been pointed out on this thread, but
    block 1 is super slow because it means that you have to load all
    your DSP functions onto the CPU cache every 1/SR seconds instead of
    64/SR seconds. Blocking by 64 buys a lot. Having a locally
    adjustable block size is a great feature (that ChucK lacks) because
    you can do it for special needs cases (like variable delay patches,
    for example).<br clear="none">
    <br clear="none">
    Anyway, in my opinion, the block thing isn't a limit to Pd, but a
    limit to real-time digital signal processing.<div><div class="yiv5212216635h5"><br clear="none">
    <br clear="none">
    <br clear="none">
    <div>On 2/24/2016 11:27 AM, Matt Barber
      wrote:<br clear="none">
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div class="yiv5212216635gmail_default" style="font-family:verdana, sans-serif;">Are there any other DSP
          environments besides ChucK that don't block audio? Last time I
          tried ChucK (2012?) its efficiency was still abysmal. [block~
          1] definitely takes a hit, but it's usually possible to
          minimize how much of the DSP chain is actually blocked at 1. I
          guess with Csound you can specify a k-rate equal to the sample
          rate which is also effectively a single sample block. I
          haven't ever used Csound in a real-time context, and most of
          what I do with it compiles much more slowly than real time in
          any case.</div>
      </div>
      <div class="yiv5212216635gmail_extra"><br clear="none">
        <div class="yiv5212216635gmail_quote">On Wed, Feb 24, 2016 at 1:44 PM, peiman
          khosravi <span dir="ltr"><<a rel="nofollow" shape="rect" ymailto="mailto:peimankhosravi@gmail.com" target="_blank" href="mailto:peimankhosravi@gmail.com">peimankhosravi@gmail.com</a>></span>
          wrote:<br clear="none">
          <blockquote class="yiv5212216635gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
            <div dir="ltr">
              <div class="yiv5212216635gmail_default" style="font-family:arial, helvetica, sans-serif;">You can
                do this with MSP's poly~ too but I'm guessing that the
                CPU costs are quite heavy. Moreover, there are operators
                in gen that are designed for low-level operations. <br clear="none">
              </div>
            </div>
            <div class="yiv5212216635gmail_extra"><br clear="all">
              <div>
                <div>
                  <div dir="ltr">
                    <div>
                      <div dir="ltr">
                        <div><br clear="none">
                        </div>
                        <div><font face="comic sans ms,                             sans-serif" size="2"><b><a rel="nofollow" shape="rect" target="_blank" href="http://www.peimankhosravi.co.uk/">www.peimankhosravi.co.uk</a>
                            </b></font></div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              <div>
                <div>
                  <br clear="none">
                  <div class="yiv5212216635gmail_quote">On 24 February 2016 at 16:15,
                    cyrille henry <span dir="ltr"><<a rel="nofollow" shape="rect" ymailto="mailto:ch@chnry.net" target="_blank" href="mailto:ch@chnry.net"></a><a rel="nofollow" shape="rect" ymailto="mailto:ch@chnry.net" target="_blank" href="mailto:ch@chnry.net">ch@chnry.net</a>></span>
                    wrote:<br clear="none">
                    <blockquote class="yiv5212216635gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><span><br clear="none">
                        <br clear="none">
                        Le 24/02/2016 16:50, peiman khosravi a écrit :<br clear="none">
                        </span><blockquote class="yiv5212216635gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
                          One great advantage of maxmsp is gen, which
                          gives you sample-level patching with the
                          possibility of a one-sample delay.<br clear="none">
                          <br clear="none">
                        </blockquote>
                        <br clear="none">
                      
                      you can use [block~ 1 1 1] in a pd subpatch.<br clear="none">
                      <br clear="none">
                      cheers<br clear="none">
                      c<br clear="none">
                      <br clear="none">
                      <br clear="none">
                      <blockquote class="yiv5212216635gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
                        P<span><br clear="none">
                          <br clear="none">
                          On Tuesday, February 23, 2016, Samuel Burt
                          <<a rel="nofollow" shape="rect" ymailto="mailto:composer.samuel.burt@gmail.com" target="_blank" href="mailto:composer.samuel.burt@gmail.com">composer.samuel.burt@gmail.com</a>
                          <mailto:<a rel="nofollow" shape="rect" ymailto="mailto:composer.samuel.burt@gmail.com" target="_blank" href="mailto:composer.samuel.burt@gmail.com">composer.samuel.burt@gmail.com</a>>>
                          wrote:<br clear="none">
                          <br clear="none">
                              David,<br clear="none">
                          <br clear="none">
                              One thing I attempted and couldn't find a
                          solution for was the following, mostly owing
                          to the limitation of interfacing with a 64
                          sample block size.<br clear="none">
                          <br clear="none">
                              I wanted to have a directory of hundreds
                          of audio recordings. Each one would be a
                          single wavelength from an interesting sound,
                          like a bass clarinet, marimba, harpsichord,
                          tambourine, etc. Each would begin and end at a
                          zero crossing so you could chain them together
                          to make complex timbres. They could be chained
                          in sequence, randomized, or loaded in
                          meta-data-matched chunks. I ran into a problem
                          figuring out how to trigger the next sound
                          based on the ending of the last sound in a
                          sample accurate way. Sound file loading or
                          even buffer playback triggering waits until
                          the start of the next block size before it
                          updates. If you have a waveform that lasts 205
                          samples (64+64+64+13), you have a gap of 51
                          silent samples before the next waveform would
                          start. Not only do you not get the continuous
                          sound you want, this winds up creating a
                          periodic pattern with a frequency of 689 Hz
                          (44100/64).<br clear="none">
                          <br clear="none">
                              David, I like your idea "what (if
                          anything) someone tried to do in Pd, but
                          couldn't given its limitations". I think this
                          could be a wonderful challenge if we could
                          have a monthly thread like this where the best
                          minds among us come up with solutions to some
                          of the hardest conceptual challenges in Pd.<br clear="none">
                          <br clear="none">
                              I'm still struggling with loading dozens
                          of files, audio dropouts, and other similar
                          problems. Someone else expressed frustration
                          about Pd's single-threaded status. I too have
                          feared upgrading my computer based on the
                          limitations of current multicore processors
                          (although realistically I think we can all
                          look at the "turbo-boost" level or whatever
                          Intel calls it to determine where our
                          processor might run with a demanding patch. I
                          understand the fact that you can't run your
                          audio process on multiple cores, because it is
                          a linear process. It would be great if the GUI
                          could run on a second core, a process that
                          loads audio into memory could run on third
                          core, while GEM could automatically run on a
                          fourth core. I don't have any concept of how
                          feasible that would be, though. Does the GUI
                          in pd-l2orc run on a separate core?<br clear="none">
                          <br clear="none">
                              Sam<br clear="none">
                          <br clear="none">
                          <br clear="none">
                          <br clear="none">
                          <br clear="none">
                          <br clear="none">
                          <br clear="none">
                                  Message: 4<br clear="none">
                                  Date: Tue, 23 Feb 2016 09:01:06 -0800<br clear="none">
                        </span>
                                From: david medine <<a rel="nofollow" shape="rect" ymailto="mailto:dmedine@ucsd.edu" target="_blank" href="mailto:dmedine@ucsd.edu"></a><a rel="nofollow" shape="rect" ymailto="mailto:dmedine@ucsd.edu" target="_blank" href="mailto:dmedine@ucsd.edu">dmedine@ucsd.edu</a>
                        <<a href="" rel="nofollow" shape="rect">javascript:_e(%7B%7D,'cvml</a>','<a rel="nofollow" shape="rect" ymailto="mailto:dmedine@ucsd.edu" target="_blank" href="mailto:dmedine@ucsd.edu"></a><a rel="nofollow" shape="rect" ymailto="mailto:dmedine@ucsd.edu" target="_blank" href="mailto:dmedine@ucsd.edu">dmedine@ucsd.edu</a>');>><span><br clear="none">
                          <br clear="none">
                                  One thing I'd be interested in knowing
                          about is what (if anything)<br clear="none">
                                  someone tried to do in Pd, but
                          couldn't given its limitations (apart<br clear="none">
                                  from look/feel/convenience issues).<br clear="none">
                          <br clear="none">
                          <br clear="none">
                          <br clear="none">
                          --<br clear="none">
                          <br clear="none">
                        </span>
                        *<a rel="nofollow" shape="rect" target="_blank" href="http://www.peimankhosravi.co.uk/">www.peimankhosravi.co.uk</a>
                        <<a rel="nofollow" shape="rect" target="_blank" href="http://www.peimankhosravi.co.uk/">http://www.peimankhosravi.co.uk</a>>
                        <<a rel="nofollow" shape="rect" target="_blank" href="http://peimankhosravi.co.uk/miscposts.rss">http://peimankhosravi.co.uk/miscposts.rss</a>><<a rel="nofollow" shape="rect" target="_blank" href="http://spectralkimia.wordpress.com/"></a><a rel="nofollow" shape="rect" target="_blank" href="http://spectralkimia.wordpress.com/">http://spectralkimia.wordpress.com/</a>>*<span><br clear="none">
                          <br clear="none">
                          <br clear="none">
                          <br clear="none">
_______________________________________________<br clear="none">
                          <a rel="nofollow" shape="rect" ymailto="mailto:Pd-list@lists.iem.at" target="_blank" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a>
                          mailing list<br clear="none">
                          UNSUBSCRIBE and account-management -> <a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list"></a><a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a><br clear="none">
                          <br clear="none">
                        </span></blockquote>
                      <div>
                        <div>
                          <br clear="none">
_______________________________________________<br clear="none">
                          <a rel="nofollow" shape="rect" ymailto="mailto:Pd-list@lists.iem.at" target="_blank" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a>
                          mailing list<br clear="none">
                          UNSUBSCRIBE and account-management -> <a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list"></a><a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a><br clear="none">
                        </div>
                      </div>
                    </blockquote>
                  </div>
                  <br clear="none">
                </div>
              </div>
            </div>
            <br clear="none">
            _______________________________________________<br clear="none">
            <a rel="nofollow" shape="rect" ymailto="mailto:Pd-list@lists.iem.at" target="_blank" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a>
            mailing list<br clear="none">
            UNSUBSCRIBE and account-management -> <a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list"></a><a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a><br clear="none">
            <br clear="none">
          </blockquote>
        </div>
        <br clear="none">
      </div>
      <br clear="none">
      <fieldset></fieldset>
      <br clear="none">
      <pre>_______________________________________________
<a rel="nofollow" shape="rect" ymailto="mailto:Pd-list@lists.iem.at" target="_blank" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a>
</pre>
    </blockquote>
    <br clear="none">
  </div></div></div></div>

<br clear="none">_______________________________________________<br clear="none">
<a rel="nofollow" shape="rect" ymailto="mailto:Pd-list@lists.iem.at" target="_blank" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br clear="none">
UNSUBSCRIBE and account-management -> <a rel="nofollow" shape="rect" target="_blank" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a><br clear="none">
<br clear="none"></blockquote></div><br clear="none"></div></div></div><br><div class="yqt3973987111" id="yqt65453">_______________________________________________<br clear="none"><a shape="rect" ymailto="mailto:Pd-list@lists.iem.at" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br clear="none">UNSUBSCRIBE and account-management -> <a shape="rect" href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br clear="none"></div><br><br></div>  </div> </div>  </div></div></body></html>