[squeakland] Question about Audio Buffer/Timing

Bob Arning arning315 at comcast.net
Thu Feb 22 20:03:01 UTC 2018


I'm not enough of a musician to really know if it's behaving or not. 
These are drums, so it's not a continuous sound. When I set the script 
to ticking, I do hear an occasional glitch that my well be due to 
garbage collection -- it's possible that tweaking some gc parameters 
might reduce this. Perhaps a youtube posting with the sound you are 
hearing would let me compare it to what I'm hearing.


On 2/22/18 2:33 PM, Jeremy Landry wrote:
> https://www.youtube.com/watch?v=_JlCCtHLHDk I forgot to post this in 
> the last message showing the more stable timing done with 'pure' 
> squeak classes/methods.
>
> On Thu, Feb 22, 2018 at 11:32 AM, Jeremy Landry <hakyoku at gmail.com 
> <mailto:hakyoku at gmail.com>> wrote:
>
>     https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd7Kv97/view?usp=sharing
>     <https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd7Kv97/view?usp=sharing>
>
>     This is a demo of the problem for ETOYS 5 (along with some other
>     stuff there that shows what I've looked into, to some degree). 
>     Hitting play on the scriptor, you will hear a sequence that has
>     awful timing.  I don't expect 'sample perfect', zero latency or
>     anything spectacular, but it would seem that if there's timers in
>     the system, everything should adhere to it, or else not be called
>     timers and something like, 'when-we-get-around-to-its'. This video
>     here demonstrates that Squeak, at least, can do timing just fine
>     and older versions have midi demos, but again, I'm using Etoys for
>     a specific reason, so it's confusing me as to why the delays happen...
>
>     Both sequencers are mouse interactive and playing with the script
>     timer and setting blocks on/off can reveal this hidden
>     metronome...maybe that IS the buffer?  I'm not sure...what's most
>     puzzling is that sometimes it will sound right, and sometimes it
>     won't...even if it wasn't correct, I'd probably be okay if it was
>     consistently incorrect because I can actually work with
>     consistency, so I guess if nothing else, that's what I'm trying to
>     figure out how to get without making tile usage unavailable for a
>     sequencer built on etoys tiles...
>
>     Thanks for all the efforts so far...I did notice some changing in
>     the timing when I checked the preference there but also unchecked
>     the preference of stopSoundsWhenDone, just in case it was
>     hiccuping by shutting down the sound stream then making a new one.
>     It didn't help, but I had forgotten about these preferences.
>
>
>
>
>
>
>     On Thu, Feb 22, 2018 at 10:57 AM, Bob Arning
>     <arning315 at comcast.net <mailto:arning315 at comcast.net>> wrote:
>
>         There do seem to be some platform issues as to whether this
>         will really work. Some things you could do:
>
>         - check the value of the Preference for #soundQuickStart --
>         make it true if not already
>
>         - put some code into the SoundPlayer method to tell you if
>         quickStart is being requested and if not honored, why
>
>
>         On 2/22/18 1:22 PM, Jeremy Landry wrote:
>>         Thanks for the crossover. I am subscribed, but generally shy
>>         away from posting there as it seems out of my league and my
>>         main interest is in Etoys since, well, again, leagues and all
>>         that.  I know just enough ST to break things, not build
>>         them!  :)
>>
>>         So using the code from this message from Bob Arning:
>>         *Bob Arning*arning315 at
>>         comcast.net<mailto:squeak-dev%40lists.squeakfoundation.org?Subject=Re%3A%20%5Bsqueak-dev%5D%20%5Bsqueakland%5D%20Question%20about%20Audio%20Buffer/Timing&In-Reply-To=%3C269cdd30-7c77-6cab-22aa-591eee543b21%40comcast.net%3E>
>>         /Thu Feb 22 15:49:07 UTC 2018/
>>
>>           * Previous message:[squeak-dev] [squeakland] Question about
>>             Audio Buffer/Timing
>>             <http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/197505.html>
>>           * Next message:[squeak-dev] [squeakland] Question about
>>             Audio Buffer/Timing
>>             <http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/197509.html>
>>           * *Messages sorted by:*[ date ]
>>             <http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/date.html#197508>[
>>             thread ]
>>             <http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/thread.html#197508>[
>>             subject ]
>>             <http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/subject.html#197508>[
>>             author ]
>>             <http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/author.html#197508>
>>
>>         ------------------------------------------------------------------------
>>         SoundPlayer class gives a clue:
>>
>>         resumePlaying: aSound quickStart: quickStart
>>               "Start playing the given sound without resetting it; it will resume
>>         playing from where it last stopped. If quickStart is true, then try to
>>         start playing the given sound immediately."
>>
>>         Just looking at it and taking a guess, it doesn't seem to be
>>         *quite* the thing I was looking for.  I was thinking there's
>>         a method/class variable with a value that could be changed to
>>         affect the system, rather than 'poking in' every thing I want
>>         to play when I want to play it individually because the
>>         ultimate effect is that Etoys PLAYSOUND:SOUND tile will work
>>         as normal and this seems that it would have to be used
>>         instead of the tiles...I have no idea if this is possible,
>>         but I'll also dig around the class browser in Etoys, maybe
>>         I'll stumble into something, but so far, as I noted, I only
>>         found the sound-buffer and sample rates, not the imposed
>>         delay method that I remember reading about.  I remember the
>>         reasoning it was put in was to prevent accidental playing of
>>         sounds inside of a single-frame repeat-tile...i.e. a repeat
>>         tile with any value other than 1 and inside of it having a
>>         playsound:sound tile would overload the speakers and make
>>         nasty noises because so many things are playing on top of
>>         each other. I actually WANT this.  Based on how sound plays
>>         now, you can hear an 'invisible' metronome that makes sure
>>         all sounds are separated and equally spaced apart and in the
>>         case of repeat tiles, only seems to accept the last sound as
>>         valid/playable.
>>
>>         Thanks for the help so far!  I'm not expecting a solution
>>         because I don't know if one exists, but my thought is 'if it
>>         was done, it can be undone'...and just looking at how to undo
>>         it!  :p
>>
>>
>>
>>         On Thu, Feb 22, 2018 at 9:59 AM, David T. Lewis
>>         <lewis at mail.msen.com <mailto:lewis at mail.msen.com>> wrote:
>>
>>             There is some follow up discussion happening on the
>>             squeak-dev list. I don't
>>             know if it helps, but you can read the posts here if you
>>             are not subscribed to
>>             that list:
>>
>>             http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/197508.html
>>             <http://lists.squeakfoundation.org/pipermail/squeak-dev/2018-February/197508.html>
>>
>>             HTH,
>>             Dave
>>
>>             On Thu, Feb 22, 2018 at 10:27:18AM -0500, David T. Lewis
>>             wrote:
>>             > Hi Jeremy,
>>             >
>>             > I am copying this to the squeak-dev list in case
>>             someone there can offer
>>             > some guidance.
>>             >
>>             > Dave
>>             >
>>             >
>>             > On Wed, Feb 21, 2018 at 02:44:21PM -0800, Jeremy Landry
>>             wrote:
>>             > > Hi, I made a quick audio sequencer test in Etoys and
>>             found that there's a
>>             > > hidden 'timer' that limits the responsiveness of new
>>             sounds that go into
>>             > > the playback buffer (terminology isn't accurate, but
>>             hopefully it makes
>>             > > sense to people).
>>             > >
>>             > > I found the sound buffer setting, but was wondering
>>             if there's something
>>             > > else that limits how fast new sounds get added to the
>>             playback stream? I
>>             > > read somewhere (old-man-aphasia here) that some code
>>             was added to prevent
>>             > > overloading the buffer so surely there's a snippet of
>>             code I could add to a
>>             > > project to reverse this, if it's what is causing the
>>             delay?
>>             > >
>>             > > Thanks for any help finding the solution.
>>             >
>>             > > _______________________________________________
>>             > > squeakland mailing list
>>             > > squeakland at lists.squeakland.org
>>             <mailto:squeakland at lists.squeakland.org>
>>             > >
>>             http://lists.squeakland.org/mailman/listinfo/squeakland
>>             <http://lists.squeakland.org/mailman/listinfo/squeakland>
>>             >
>>             > _______________________________________________
>>             > squeakland mailing list
>>             > squeakland at lists.squeakland.org
>>             <mailto:squeakland at lists.squeakland.org>
>>             > http://lists.squeakland.org/mailman/listinfo/squeakland
>>             <http://lists.squeakland.org/mailman/listinfo/squeakland>
>>
>>
>>
>>
>>         _______________________________________________
>>         squeakland mailing list
>>         squeakland at lists.squeakland.org
>>         <mailto:squeakland at lists.squeakland.org>
>>         http://lists.squeakland.org/mailman/listinfo/squeakland
>>         <http://lists.squeakland.org/mailman/listinfo/squeakland>
>
>
>         _______________________________________________
>         squeakland mailing list
>         squeakland at lists.squeakland.org
>         <mailto:squeakland at lists.squeakland.org>
>         http://lists.squeakland.org/mailman/listinfo/squeakland
>         <http://lists.squeakland.org/mailman/listinfo/squeakland>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakland.org/pipermail/squeakland/attachments/20180222/d66099ec/attachment-0001.html>


More information about the squeakland mailing list