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