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.
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@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
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....
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@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
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 <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@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
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@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
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.netmailto: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@mail.msen.com mailto:lewis@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@lists.squeakland.org <mailto:squeakland@lists.squeakland.org> > > http://lists.squeakland.org/mailman/listinfo/squeakland <http://lists.squeakland.org/mailman/listinfo/squeakland> > > _______________________________________________ > squeakland mailing list > squeakland@lists.squeakland.org <mailto:squeakland@lists.squeakland.org> > http://lists.squeakland.org/mailman/listinfo/squeakland <http://lists.squeakland.org/mailman/listinfo/squeakland>
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd7Kv97/view?usp=s...
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@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 <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@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
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@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
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@gmail.com wrote:
https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd7K v97/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@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 <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@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
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@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
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@gmail.com mailto:hakyoku@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@comcast.net <mailto:arning315@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@mail.msen.com <mailto:lewis@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@lists.squeakland.org <mailto:squeakland@lists.squeakland.org> > > http://lists.squeakland.org/mailman/listinfo/squeakland <http://lists.squeakland.org/mailman/listinfo/squeakland> > > _______________________________________________ > squeakland mailing list > squeakland@lists.squeakland.org <mailto:squeakland@lists.squeakland.org> > http://lists.squeakland.org/mailman/listinfo/squeakland <http://lists.squeakland.org/mailman/listinfo/squeakland> _______________________________________________ squeakland mailing list squeakland@lists.squeakland.org <mailto:squeakland@lists.squeakland.org> http://lists.squeakland.org/mailman/listinfo/squeakland <http://lists.squeakland.org/mailman/listinfo/squeakland>
_______________________________________________ squeakland mailing list squeakland@lists.squeakland.org <mailto:squeakland@lists.squeakland.org> http://lists.squeakland.org/mailman/listinfo/squeakland <http://lists.squeakland.org/mailman/listinfo/squeakland>
Maybe clicking the sequencer squares to look like this will make more sense when you play it back: https://imgur.com/a/ZHsaS
Setting the script to tick should be obvious what the problem is: not only is the playback not timed at the same interval as the script tick-rate, but it will 'skip' sometimes and omit playback. What you should hear is nonstop, fairly consistent drum smacks, like a drum roll. Instead, you'll hear it roll a little, stop quickly, then start rolling again, stop quickly, and almost at random. Does this help open up the problem? It's not really about music here, just about timing and consistency of triggering sounds on a timer...sometimes they do sound off, sometimes they dont, sometimes they're in-time, sometimes they're not. If you speed up the ticks per second, you can hear that 'invisible metronome' I mentioned earlier, there seems to be an 'always running' object that only looks for new sounds to play at a regular interval, if the trigger doesn't make that window, then it gets dropped seemingly...it's like it's aliasing the instructions or something...
Hope this helps, and I appreciate you helping looking into it!
On Thu, Feb 22, 2018 at 12:03 PM, Bob Arning arning315@comcast.net wrote:
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@gmail.com wrote:
https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd 7Kv97/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@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 <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@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
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@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
Etoys ticking is not precise enough to do music timing. Ticking might be offset by other task the system is doing. You should use the ScorePlayerMorph for music.
Best, Karl
On Thu, Feb 22, 2018 at 9:55 PM, Jeremy Landry hakyoku@gmail.com wrote:
Maybe clicking the sequencer squares to look like this will make more sense when you play it back: https://imgur.com/a/ZHsaS
Setting the script to tick should be obvious what the problem is: not only is the playback not timed at the same interval as the script tick-rate, but it will 'skip' sometimes and omit playback. What you should hear is nonstop, fairly consistent drum smacks, like a drum roll. Instead, you'll hear it roll a little, stop quickly, then start rolling again, stop quickly, and almost at random. Does this help open up the problem? It's not really about music here, just about timing and consistency of triggering sounds on a timer...sometimes they do sound off, sometimes they dont, sometimes they're in-time, sometimes they're not. If you speed up the ticks per second, you can hear that 'invisible metronome' I mentioned earlier, there seems to be an 'always running' object that only looks for new sounds to play at a regular interval, if the trigger doesn't make that window, then it gets dropped seemingly...it's like it's aliasing the instructions or something...
Hope this helps, and I appreciate you helping looking into it!
On Thu, Feb 22, 2018 at 12:03 PM, Bob Arning arning315@comcast.net wrote:
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@gmail.com wrote:
https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd 7Kv97/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@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 <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@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
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@lists.squeakland.org > http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
What can I do to make new music in Etoys, then? According to FLOSS manual, there's nothing for recording...? The purpose of the sequencer was to generate new music...this is basically the goal here...and to do so without using an a MIDI instrument (well, a physical one, anyway...a simulated one is fine!)
On Sat, Feb 24, 2018 at 2:27 AM, karl ramberg karlramberg@gmail.com wrote:
Etoys ticking is not precise enough to do music timing. Ticking might be offset by other task the system is doing. You should use the ScorePlayerMorph for music.
Best, Karl
On Thu, Feb 22, 2018 at 9:55 PM, Jeremy Landry hakyoku@gmail.com wrote:
Maybe clicking the sequencer squares to look like this will make more sense when you play it back: https://imgur.com/a/ZHsaS
Setting the script to tick should be obvious what the problem is: not only is the playback not timed at the same interval as the script tick-rate, but it will 'skip' sometimes and omit playback. What you should hear is nonstop, fairly consistent drum smacks, like a drum roll. Instead, you'll hear it roll a little, stop quickly, then start rolling again, stop quickly, and almost at random. Does this help open up the problem? It's not really about music here, just about timing and consistency of triggering sounds on a timer...sometimes they do sound off, sometimes they dont, sometimes they're in-time, sometimes they're not. If you speed up the ticks per second, you can hear that 'invisible metronome' I mentioned earlier, there seems to be an 'always running' object that only looks for new sounds to play at a regular interval, if the trigger doesn't make that window, then it gets dropped seemingly...it's like it's aliasing the instructions or something...
Hope this helps, and I appreciate you helping looking into it!
On Thu, Feb 22, 2018 at 12:03 PM, Bob Arning arning315@comcast.net wrote:
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@gmail.com wrote:
https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd 7Kv97/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@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 <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@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
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@lists.squeakland.org > > http://lists.squeakland.org/mailman/listinfo/squeakland > > _______________________________________________ > squeakland mailing list > squeakland@lists.squeakland.org > http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
Hi, ScorePlayerMorph is the class that has best support for making music.( FM synthesizer)
Try this do it: | n score | n := 3. score := (MIDIScore new tracks: ((1 to: n) collect: [:i | Array new]); trackInfo: ((1 to: n) collect: [:i | 'Instrument' , i printString]); tempoMap: nil; ticksPerQuarterNote: 96). ScorePlayerMorph openOn: score title: 'empty score'
In the opened ScorePlayerMorph click on PianoRoll. Right click on the opened PianoRollScore and select 'add keyboard' in the menu. When you click on the opened keyboard it records to the PianoRollScore
You can select different instuments in the ScorePlayerMorph. Muting the different instruments in ScorePlayerMorph to add/edit the PianoRollScore¨ Clicking on 'oboe1' you get a meny to select different FM synth premade instruments. The bottom of that menu give you 'edit oboe1'
Selecting this will give you a DNU because the image does not have class ScaleMorph anymore. It can be found in old images and filed out. There where some licensing issues and I think maybe the author passed away before the class could be re licensed.
Anyway, enjoy :-)
These tools funktion but have MANY rough edges and a lot can be done to improve them.
Best, Karl
On Sat, Feb 24, 2018 at 5:56 PM, Jeremy Landry hakyoku@gmail.com wrote:
What can I do to make new music in Etoys, then? According to FLOSS manual, there's nothing for recording...? The purpose of the sequencer was to generate new music...this is basically the goal here...and to do so without using an a MIDI instrument (well, a physical one, anyway...a simulated one is fine!)
On Sat, Feb 24, 2018 at 2:27 AM, karl ramberg karlramberg@gmail.com wrote:
Etoys ticking is not precise enough to do music timing. Ticking might be offset by other task the system is doing. You should use the ScorePlayerMorph for music.
Best, Karl
On Thu, Feb 22, 2018 at 9:55 PM, Jeremy Landry hakyoku@gmail.com wrote:
Maybe clicking the sequencer squares to look like this will make more sense when you play it back: https://imgur.com/a/ZHsaS
Setting the script to tick should be obvious what the problem is: not only is the playback not timed at the same interval as the script tick-rate, but it will 'skip' sometimes and omit playback. What you should hear is nonstop, fairly consistent drum smacks, like a drum roll. Instead, you'll hear it roll a little, stop quickly, then start rolling again, stop quickly, and almost at random. Does this help open up the problem? It's not really about music here, just about timing and consistency of triggering sounds on a timer...sometimes they do sound off, sometimes they dont, sometimes they're in-time, sometimes they're not. If you speed up the ticks per second, you can hear that 'invisible metronome' I mentioned earlier, there seems to be an 'always running' object that only looks for new sounds to play at a regular interval, if the trigger doesn't make that window, then it gets dropped seemingly...it's like it's aliasing the instructions or something...
Hope this helps, and I appreciate you helping looking into it!
On Thu, Feb 22, 2018 at 12:03 PM, Bob Arning arning315@comcast.net wrote:
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@gmail.com wrote:
https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd 7Kv97/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@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 <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@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 > > 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@lists.squeakland.org > > > http://lists.squeakland.org/mailman/listinfo/squeakland > > > > _______________________________________________ > > squeakland mailing list > > squeakland@lists.squeakland.org > > http://lists.squeakland.org/mailman/listinfo/squeakland >
squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
I fixed so EnvelopeEditorMorph can open without giving a error in http://source.squeak.org/trunk/MorphicExtras-kfr.225.mcz
Best, Karl
On Sat, Mar 17, 2018 at 2:13 PM, karl ramberg karlramberg@gmail.com wrote:
Hi, ScorePlayerMorph is the class that has best support for making music.( FM synthesizer)
Try this do it: | n score | n := 3. score := (MIDIScore new tracks: ((1 to: n) collect: [:i | Array new]); trackInfo: ((1 to: n) collect: [:i | 'Instrument' , i printString]); tempoMap: nil; ticksPerQuarterNote: 96). ScorePlayerMorph openOn: score title: 'empty score'
In the opened ScorePlayerMorph click on PianoRoll. Right click on the opened PianoRollScore and select 'add keyboard' in the menu. When you click on the opened keyboard it records to the PianoRollScore
You can select different instuments in the ScorePlayerMorph. Muting the different instruments in ScorePlayerMorph to add/edit the PianoRollScore¨ Clicking on 'oboe1' you get a meny to select different FM synth premade instruments. The bottom of that menu give you 'edit oboe1'
Selecting this will give you a DNU because the image does not have class ScaleMorph anymore. It can be found in old images and filed out. There where some licensing issues and I think maybe the author passed away before the class could be re licensed.
Anyway, enjoy :-)
These tools funktion but have MANY rough edges and a lot can be done to improve them.
Best, Karl
On Sat, Feb 24, 2018 at 5:56 PM, Jeremy Landry hakyoku@gmail.com wrote:
What can I do to make new music in Etoys, then? According to FLOSS manual, there's nothing for recording...? The purpose of the sequencer was to generate new music...this is basically the goal here...and to do so without using an a MIDI instrument (well, a physical one, anyway...a simulated one is fine!)
On Sat, Feb 24, 2018 at 2:27 AM, karl ramberg karlramberg@gmail.com wrote:
Etoys ticking is not precise enough to do music timing. Ticking might be offset by other task the system is doing. You should use the ScorePlayerMorph for music.
Best, Karl
On Thu, Feb 22, 2018 at 9:55 PM, Jeremy Landry hakyoku@gmail.com wrote:
Maybe clicking the sequencer squares to look like this will make more sense when you play it back: https://imgur.com/a/ZHsaS
Setting the script to tick should be obvious what the problem is: not only is the playback not timed at the same interval as the script tick-rate, but it will 'skip' sometimes and omit playback. What you should hear is nonstop, fairly consistent drum smacks, like a drum roll. Instead, you'll hear it roll a little, stop quickly, then start rolling again, stop quickly, and almost at random. Does this help open up the problem? It's not really about music here, just about timing and consistency of triggering sounds on a timer...sometimes they do sound off, sometimes they dont, sometimes they're in-time, sometimes they're not. If you speed up the ticks per second, you can hear that 'invisible metronome' I mentioned earlier, there seems to be an 'always running' object that only looks for new sounds to play at a regular interval, if the trigger doesn't make that window, then it gets dropped seemingly...it's like it's aliasing the instructions or something...
Hope this helps, and I appreciate you helping looking into it!
On Thu, Feb 22, 2018 at 12:03 PM, Bob Arning arning315@comcast.net wrote:
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@gmail.com wrote:
https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd 7Kv97/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@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 > <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@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 >> >> 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@lists.squeakland.org >> > > http://lists.squeakland.org/mailman/listinfo/squeakland >> > >> > _______________________________________________ >> > squeakland mailing list >> > squeakland@lists.squeakland.org >> > http://lists.squeakland.org/mailman/listinfo/squeakland >> > > > > _______________________________________________ > squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland > > > > _______________________________________________ > squeakland mailing list > squeakland@lists.squeakland.org > http://lists.squeakland.org/mailman/listinfo/squeakland > >
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
I haven't gotten the Evnvelope editor morph to work properly yet, but I'm sure it will when *I* stop being lame (so far, I've got a 0/2 record with squeak/etoys...so likely I'm doing something wrong here!)
On Sat, Mar 17, 2018 at 9:29 AM, karl ramberg karlramberg@gmail.com wrote:
I fixed so EnvelopeEditorMorph can open without giving a error in http://source.squeak.org/trunk/MorphicExtras-kfr.225.mcz
Best, Karl
On Sat, Mar 17, 2018 at 2:13 PM, karl ramberg karlramberg@gmail.com wrote:
Hi, ScorePlayerMorph is the class that has best support for making music.( FM synthesizer)
Try this do it: | n score | n := 3. score := (MIDIScore new tracks: ((1 to: n) collect: [:i | Array new]); trackInfo: ((1 to: n) collect: [:i | 'Instrument' , i printString]); tempoMap: nil; ticksPerQuarterNote: 96). ScorePlayerMorph openOn: score title: 'empty score'
In the opened ScorePlayerMorph click on PianoRoll. Right click on the opened PianoRollScore and select 'add keyboard' in the menu. When you click on the opened keyboard it records to the PianoRollScore
You can select different instuments in the ScorePlayerMorph. Muting the different instruments in ScorePlayerMorph to add/edit the PianoRollScore¨ Clicking on 'oboe1' you get a meny to select different FM synth premade instruments. The bottom of that menu give you 'edit oboe1'
Selecting this will give you a DNU because the image does not have class ScaleMorph anymore. It can be found in old images and filed out. There where some licensing issues and I think maybe the author passed away before the class could be re licensed.
Anyway, enjoy :-)
These tools funktion but have MANY rough edges and a lot can be done to improve them.
Best, Karl
On Sat, Feb 24, 2018 at 5:56 PM, Jeremy Landry hakyoku@gmail.com wrote:
What can I do to make new music in Etoys, then? According to FLOSS manual, there's nothing for recording...? The purpose of the sequencer was to generate new music...this is basically the goal here...and to do so without using an a MIDI instrument (well, a physical one, anyway...a simulated one is fine!)
On Sat, Feb 24, 2018 at 2:27 AM, karl ramberg karlramberg@gmail.com wrote:
Etoys ticking is not precise enough to do music timing. Ticking might be offset by other task the system is doing. You should use the ScorePlayerMorph for music.
Best, Karl
On Thu, Feb 22, 2018 at 9:55 PM, Jeremy Landry hakyoku@gmail.com wrote:
Maybe clicking the sequencer squares to look like this will make more sense when you play it back: https://imgur.com/a/ZHsaS
Setting the script to tick should be obvious what the problem is: not only is the playback not timed at the same interval as the script tick-rate, but it will 'skip' sometimes and omit playback. What you should hear is nonstop, fairly consistent drum smacks, like a drum roll. Instead, you'll hear it roll a little, stop quickly, then start rolling again, stop quickly, and almost at random. Does this help open up the problem? It's not really about music here, just about timing and consistency of triggering sounds on a timer...sometimes they do sound off, sometimes they dont, sometimes they're in-time, sometimes they're not. If you speed up the ticks per second, you can hear that 'invisible metronome' I mentioned earlier, there seems to be an 'always running' object that only looks for new sounds to play at a regular interval, if the trigger doesn't make that window, then it gets dropped seemingly...it's like it's aliasing the instructions or something...
Hope this helps, and I appreciate you helping looking into it!
On Thu, Feb 22, 2018 at 12:03 PM, Bob Arning arning315@comcast.net wrote:
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@gmail.com wrote:
> https://drive.google.com/file/d/1nJlQ4huXcKZmTm6GADl40ZrWAEd > 7Kv97/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@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 >> <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@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 >>> >>> 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@lists.squeakland.org >>> > > http://lists.squeakland.org/mailman/listinfo/squeakland >>> > >>> > _______________________________________________ >>> > squeakland mailing list >>> > squeakland@lists.squeakland.org >>> > http://lists.squeakland.org/mailman/listinfo/squeakland >>> >> >> >> >> _______________________________________________ >> squeakland mailing listsqueakland@lists.squeakland.orghttp://lists.squeakland.org/mailman/listinfo/squeakland >> >> >> >> _______________________________________________ >> squeakland mailing list >> squeakland@lists.squeakland.org >> http://lists.squeakland.org/mailman/listinfo/squeakland >> >> >
squeakland mailing list squeakland@lists.squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
squeakland@lists.squeakfoundation.org