<div dir="ltr"><div>Hi Perry,</div><div><br></div><div>I thought about doing this but wanted the solution to scale in case the files were really huge or there was an overwhelming number of them. I've noticed that this is a great approach when you need things to happen immediately when they are called, however, the timing in this application is loose so, I'd rather buy the time I need to load the files from the disk on demand than be limited by the size of the cache. </div><div><br></div><div>I'm assuming that this "cache" is in memory... what are the effective limitations here? Assuming a 64bit OS for now, are we basically just limited by the availability of RAM on the system? Or is are there limits set in the Chuck executable? </div><div><br></div><div>Best,</div><div>Mike</div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><span style="color:rgb(117,117,117);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:19.5px">--</span></div><div><span style="color:rgb(117,117,117);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:19.5px">Michael Clemow</span></div><div><div style="color:rgb(117,117,117);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:19.5px"><span>Artist</span>/Composer/<span>Sound</span> Designer</div><div style="color:rgb(117,117,117);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:19.5px"><a href="http://michaelclemow.com/" style="color:rgb(126,87,194)" target="_blank">http://michaelclemow.com</a></div><span style="color:rgb(117,117,117);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px">(he/him)</span><br></div></div></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 2, 2020 at 6:48 PM Perry Cook <<a href="mailto:prc@cs.princeton.edu">prc@cs.princeton.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Depending on how HUGE the SndBuf files are, I have often loaded all of the files<br>
sequentially at the beginning, before I make any sound at all, into a single SndBuf, <br>
not to play them, but to get them into the cache. Then when the time comes to <br>
truly load them, they can be zero-disk loads. If they’re too big, this won’t work <br>
of course because you’ll exhaust your cache.<br>
<br>
PRC<br>
<br>
> On Jul 2, 2020, at 2:19 PM, <a href="mailto:chuck-users-request@lists.cs.princeton.edu" target="_blank">chuck-users-request@lists.cs.princeton.edu</a> wrote:<br>
> <br>
> Send chuck-users mailing list submissions to<br>
> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
> <br>
> To subscribe or unsubscribe via the World Wide Web, visit<br>
> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
> or, via email, send a message with subject or body 'help' to<br>
> <a href="mailto:chuck-users-request@lists.cs.princeton.edu" target="_blank">chuck-users-request@lists.cs.princeton.edu</a><br>
> <br>
> You can reach the person managing the list at<br>
> <a href="mailto:chuck-users-owner@lists.cs.princeton.edu" target="_blank">chuck-users-owner@lists.cs.princeton.edu</a><br>
> <br>
> When replying, please edit your Subject line so it is more specific<br>
> than "Re: Contents of chuck-users digest..."<br>
> <br>
> <br>
> Today's Topics:<br>
> <br>
> 1. Machine.add() and me.yield() (mike clemow)<br>
> 2. Re: Machine.add() and me.yield() (Michael Heuer)<br>
> 3. Re: Machine.add() and me.yield() (mike clemow)<br>
> <br>
> <br>
> ----------------------------------------------------------------------<br>
> <br>
> Message: 1<br>
> Date: Thu, 2 Jul 2020 16:43:51 -0400<br>
> From: mike clemow <<a href="mailto:michaelclemow@gmail.com" target="_blank">michaelclemow@gmail.com</a>><br>
> To: ChucK Users Mailing List <<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a>><br>
> Subject: [chuck-users] Machine.add() and me.yield()<br>
> Message-ID:<br>
> <CADddD5mL1NzWPVs4GgX=VPsezSUPw-01O_=<a href="mailto:iAKMDfuPxYtDBiQ@mail.gmail.com" target="_blank">iAKMDfuPxYtDBiQ@mail.gmail.com</a>><br>
> Content-Type: text/plain; charset="utf-8"<br>
> <br>
> Greetings Chuckists,<br>
> <br>
> Looking for validation on this before I change many, many lines of code:<br>
> I'm noticing clicks and pops in running audio when I do something like this:<br>
> <br>
> Machine.add("thingOne.ck");<br>
> Machine.add("thingTwo.ck");<br>
> Machine.add("thingThree.ck");<br>
> Machine.add("thingFour.ck");<br>
> <br>
> and also with Machine.remove(idNum); four times in a row.<br>
> <br>
> Question:<br>
> <br>
> Is this:<br>
> <br>
> Machine.add("thingOne.ck");<br>
> Machine.add("thingTwo.ck");<br>
> Machine.add("thingThree.ck");<br>
> Machine.add("thingFour.ck");<br>
> me.yield();<br>
> <br>
> significantly different than this:<br>
> <br>
> Machine.add("thingOne.ck");<br>
> me.yield();<br>
> Machine.add("thingTwo.ck");<br>
> me.yield();<br>
> Machine.add("thingThree.ck");<br>
> me.yield();<br>
> Machine.add("thingFour.ck");<br>
> me.yield();<br>
> <br>
> ???<br>
> <br>
> The same for sporking shreds four in a row.<br>
> <br>
> Warmly,<br>
> Mike<br>
> <br>
> --<br>
> Michael Clemow<br>
> Artist/Composer/Sound Designer<br>
> <a href="http://michaelclemow.com" rel="noreferrer" target="_blank">http://michaelclemow.com</a><br>
> (he/him)<br>
> -------------- next part --------------<br>
> An HTML attachment was scrubbed...<br>
> URL: <<a href="http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200702/af44d845/attachment-0001.html" rel="noreferrer" target="_blank">http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200702/af44d845/attachment-0001.html</a>><br>
> <br>
> ------------------------------<br>
> <br>
> Message: 2<br>
> Date: Thu, 2 Jul 2020 16:07:41 -0500<br>
> From: Michael Heuer <<a href="mailto:heuermh@gmail.com" target="_blank">heuermh@gmail.com</a>><br>
> To: ChucK Users Mailing List <<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a>><br>
> Subject: Re: [chuck-users] Machine.add() and me.yield()<br>
> Message-ID: <<a href="mailto:48B17D40-CEC3-4D9F-8550-B8290DB4E0F1@gmail.com" target="_blank">48B17D40-CEC3-4D9F-8550-B8290DB4E0F1@gmail.com</a>><br>
> Content-Type: text/plain; charset="us-ascii"<br>
> <br>
> Hello Mike,<br>
> <br>
> Since Machine.add is hitting the file system and parsing and evaluating the ChucK scripts, it might work better to do all of that in one go when not generating sound<br>
> <br>
> Machine.add("thingOne.ck");<br>
> Machine.add("thingTwo.ck");<br>
> Machine.add("thingThree.ck");<br>
> Machine.add("thingFour.ck");<br>
> <br>
> And then later call methods to initialize them serially or in different shreds, something like<br>
> <br>
> thingOne.start();<br>
> thingTwo.start();<br>
> thingThree.start();<br>
> thingFour.start();<br>
> <br>
> spork ~ thingOne.start();<br>
> spork ~ thingTwo.start();<br>
> spork ~ thingThree.start();<br>
> spork ~ thingFour.start();<br>
> <br>
> Hope this helps,<br>
> <br>
> michael<br>
> <br>
> <br>
>> Begin forwarded message:<br>
>> <br>
>> From: mike clemow <<a href="mailto:michaelclemow@gmail.com" target="_blank">michaelclemow@gmail.com</a>><br>
>> Subject: [chuck-users] Machine.add() and me.yield()<br>
>> Date: July 2, 2020 at 3:43:51 PM CDT<br>
>> To: ChucK Users Mailing List <<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a>><br>
>> Reply-To: ChucK Users Mailing List <<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a>><br>
>> <br>
>> Greetings Chuckists,<br>
>> <br>
>> Looking for validation on this before I change many, many lines of code: I'm noticing clicks and pops in running audio when I do something like this:<br>
>> <br>
>> Machine.add("thingOne.ck");<br>
>> Machine.add("thingTwo.ck");<br>
>> Machine.add("thingThree.ck");<br>
>> Machine.add("thingFour.ck");<br>
>> <br>
>> and also with Machine.remove(idNum); four times in a row.<br>
>> <br>
>> Question:<br>
>> <br>
>> Is this:<br>
>> <br>
>> Machine.add("thingOne.ck");<br>
>> Machine.add("thingTwo.ck");<br>
>> Machine.add("thingThree.ck");<br>
>> Machine.add("thingFour.ck");<br>
>> me.yield();<br>
>> <br>
>> significantly different than this:<br>
>> <br>
>> Machine.add("thingOne.ck");<br>
>> me.yield();<br>
>> Machine.add("thingTwo.ck");<br>
>> me.yield();<br>
>> Machine.add("thingThree.ck");<br>
>> me.yield();<br>
>> Machine.add("thingFour.ck");<br>
>> me.yield();<br>
>> <br>
>> ???<br>
>> <br>
>> The same for sporking shreds four in a row.<br>
>> <br>
>> Warmly,<br>
>> Mike<br>
>> <br>
>> --<br>
>> Michael Clemow<br>
>> Artist/Composer/Sound Designer<br>
>> <a href="http://michaelclemow.com" rel="noreferrer" target="_blank">http://michaelclemow.com</a> <<a href="http://michaelclemow.com/" rel="noreferrer" target="_blank">http://michaelclemow.com/</a>>(he/him)<br>
>> _______________________________________________<br>
>> chuck-users mailing list<br>
>> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
>> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
> <br>
> -------------- next part --------------<br>
> An HTML attachment was scrubbed...<br>
> URL: <<a href="http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200702/e0bf2f2d/attachment-0001.html" rel="noreferrer" target="_blank">http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200702/e0bf2f2d/attachment-0001.html</a>><br>
> <br>
> ------------------------------<br>
> <br>
> Message: 3<br>
> Date: Thu, 2 Jul 2020 17:19:25 -0400<br>
> From: mike clemow <<a href="mailto:michaelclemow@gmail.com" target="_blank">michaelclemow@gmail.com</a>><br>
> To: ChucK Users Mailing List <<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a>><br>
> Subject: Re: [chuck-users] Machine.add() and me.yield()<br>
> Message-ID:<br>
> <CADddD5mGKqob9oRU=<a href="mailto:kOocgpyrUH3p2QaxnqJivdtHXFn5YJoFg@mail.gmail.com" target="_blank">kOocgpyrUH3p2QaxnqJivdtHXFn5YJoFg@mail.gmail.com</a>><br>
> Content-Type: text/plain; charset="utf-8"<br>
> <br>
> Hey Michael! It's been a minute!<br>
> <br>
> Thanks so much for that suggestion! I took a closer look at this code and<br>
> I'm actually not doing Machine.add(); four times in a row, but rather spork<br>
> ~ thingOne(); four times (although I do Machine.remove() four times to<br>
> remove the shreds by ID).<br>
> <br>
> I still think the thing that I forgot to do is to add me.yield(); in<br>
> between each of these (or at least at the end of the four lines) to keep<br>
> the running audio smooth. I'm going through and trying it out.<br>
> <br>
> Since each of these functions that are running concurrently are loading<br>
> large files into SndBuf instances, I'm hesitant to do the normal Chuckian<br>
> thing and load it all up first and then let it play on demand using, as you<br>
> suggest, a start() function or similar. Also, because I'm triggering these<br>
> "cues" from across a network, I'm trying to trade "immediate and real time"<br>
> for "reliable and low-memory impact." I've definitely built applications<br>
> like that with Chuck that ate all the memory before! There's no streaming<br>
> from disk implemented under the hood, unless I'm mistaken.<br>
> <br>
> Let me see how this works and I'll report back!<br>
> <br>
> Mike<br>
> <br>
> <br>
> --<br>
> Michael Clemow<br>
> Artist/Composer/Sound Designer<br>
> <a href="http://michaelclemow.com" rel="noreferrer" target="_blank">http://michaelclemow.com</a><br>
> (he/him)<br>
> <br>
> <br>
> On Thu, Jul 2, 2020 at 5:07 PM Michael Heuer <<a href="mailto:heuermh@gmail.com" target="_blank">heuermh@gmail.com</a>> wrote:<br>
> <br>
>> Hello Mike,<br>
>> <br>
>> Since Machine.add is hitting the file system and parsing and evaluating<br>
>> the ChucK scripts, it might work better to do all of that in one go when<br>
>> not generating sound<br>
>> <br>
>> Machine.add("thingOne.ck");<br>
>> Machine.add("thingTwo.ck");<br>
>> Machine.add("thingThree.ck");<br>
>> Machine.add("thingFour.ck");<br>
>> <br>
>> And then later call methods to initialize them serially or in different<br>
>> shreds, something like<br>
>> <br>
>> thingOne.start();<br>
>> thingTwo.start();<br>
>> thingThree.start();<br>
>> thingFour.start();<br>
>> <br>
>> spork ~ thingOne.start();<br>
>> spork ~ thingTwo.start();<br>
>> spork ~ thingThree.start();<br>
>> spork ~ thingFour.start();<br>
>> <br>
>> Hope this helps,<br>
>> <br>
>> michael<br>
>> <br>
>> <br>
>> Begin forwarded message:<br>
>> <br>
>> *From: *mike clemow <<a href="mailto:michaelclemow@gmail.com" target="_blank">michaelclemow@gmail.com</a>><br>
>> *Subject: **[chuck-users] Machine.add() and me.yield()*<br>
>> *Date: *July 2, 2020 at 3:43:51 PM CDT<br>
>> *To: *ChucK Users Mailing List <<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a>><br>
>> *Reply-To: *ChucK Users Mailing List <<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a>><br>
>> <br>
>> Greetings Chuckists,<br>
>> <br>
>> Looking for validation on this before I change many, many lines of code:<br>
>> I'm noticing clicks and pops in running audio when I do something like this:<br>
>> <br>
>> Machine.add("thingOne.ck");<br>
>> Machine.add("thingTwo.ck");<br>
>> Machine.add("thingThree.ck");<br>
>> Machine.add("thingFour.ck");<br>
>> <br>
>> and also with Machine.remove(idNum); four times in a row.<br>
>> <br>
>> Question:<br>
>> <br>
>> Is this:<br>
>> <br>
>> Machine.add("thingOne.ck");<br>
>> Machine.add("thingTwo.ck");<br>
>> Machine.add("thingThree.ck");<br>
>> Machine.add("thingFour.ck");<br>
>> me.yield();<br>
>> <br>
>> significantly different than this:<br>
>> <br>
>> Machine.add("thingOne.ck");<br>
>> me.yield();<br>
>> Machine.add("thingTwo.ck");<br>
>> me.yield();<br>
>> Machine.add("thingThree.ck");<br>
>> me.yield();<br>
>> Machine.add("thingFour.ck");<br>
>> me.yield();<br>
>> <br>
>> ???<br>
>> <br>
>> The same for sporking shreds four in a row.<br>
>> <br>
>> Warmly,<br>
>> Mike<br>
>> <br>
>> --<br>
>> Michael Clemow<br>
>> Artist/Composer/Sound Designer<br>
>> <a href="http://michaelclemow.com" rel="noreferrer" target="_blank">http://michaelclemow.com</a><br>
>> (he/him)<br>
>> _______________________________________________<br>
>> chuck-users mailing list<br>
>> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
>> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
>> <br>
>> <br>
>> _______________________________________________<br>
>> chuck-users mailing list<br>
>> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
>> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
>> <br>
> -------------- next part --------------<br>
> An HTML attachment was scrubbed...<br>
> URL: <<a href="http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200702/dbf21af4/attachment.html" rel="noreferrer" target="_blank">http://lists.cs.princeton.edu/pipermail/chuck-users/attachments/20200702/dbf21af4/attachment.html</a>><br>
> <br>
> ------------------------------<br>
> <br>
> _______________________________________________<br>
> chuck-users mailing list<br>
> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
> <br>
> <br>
> End of chuck-users Digest, Vol 179, Issue 1<br>
> *******************************************<br>
<br>
_______________________________________________<br>
chuck-users mailing list<br>
<a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br>
<a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" rel="noreferrer" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br>
</blockquote></div>