Discuss Scratch

spacehedgie_music
Scratcher
20 posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

NOTE:
This does not seem to be a bug, as this isn't exactly an unintentional decision, or an issue that is caused by a mistake in the coding of Scratch. But I'm not 100% sure.

I have been having a real big problem when it comes to Scratch's music extension:

The tempo is inaccurate

You can see the phenomenon for yourself here:
▷ [AUDIO] ‖ Scratch Tempo is Inaccurate

There are a few instances where it does work, but it is very inconsistent.
I can see this being a problem with education, like music classes, or kids wanting to make use of the tempo feature. The tempo being wrong can give the wrong idea of what that tempo is supposed to be and it makes matching up the tempo to the beat very tedious, as even a little bit off can change a good amount.


Some fellas seem to have had trouble in 2014 too. It's unrelated to the music extension Scratch 3.0 has but is VERY similar, if not identical: 2014 post
I decided to make a new post about it since they talk about the tempo block in 2014, back when it was part of the sounds section, and not the music extension.

In summary, I'm suggesting that the way Scratch handles tempo should be improved.

Last edited by spacehedgie_music (June 28, 2025 01:44:50)

spacehedgie_music
Scratcher
20 posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

Bump
bubgamer07
Scratcher
100+ posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

bump
spacehedgie_music
Scratcher
20 posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

Bump 3
spacehedgie_music
Scratcher
20 posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

Final bump
MagentaDude1359
Scratcher
100+ posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

Support. You usually have to use messages for it to be accurate.

I feel like
play note (idk v) for (0.5) beats
just does this on the inside:
when someone fired "play note" (note) (beats)::hat events
play note (note)::music
wait (((60) / (tempo)) * (beats)) secs
stop that note!::music
which just seems unreliable. Scratch should come up with a more time-sensitive approach.
spacehedgie_music
Scratcher
20 posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

Revival Bump.
jmdzti_0-0
Scratcher
1000+ posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

I’m guessing this is due to Scratch’s 1/30-second delay when running blocks. I was able to fix that by making a version that constantly checks with a when<> block (due to this, the script might create performance issues) in this project. Of course, it’s not perfect – since sometimes it will miss a beat when there’s too much lag or very little time to react, especially at faster tempos (2 beats off at 500bpm in a minute, although if you use turbo mode, you can get a perfect six-hundred bpm), but it’s clearly an improvement.

Last edited by jmdzti_0-0 (June 27, 2025 17:20:48)

jmdzti_0-0
Scratcher
1000+ posts

▷ [AUDIO] (Music Extension) ‖ Improve Tempo Accuracy

MagentaDude1359 wrote:

Support. You usually have to use messages for it to be accurate.

I feel like
play note (idk v) for (0.5) beats
just does this on the inside:
when someone fired "play note" (note) (beats)::hat events
play note (note)::music
wait (((60) / (tempo)) * (beats)) secs
stop that note!::music
which just seems unreliable. Scratch should come up with a more time-sensitive approach.
notes are not stopped

Sorry, you have to wait 60 seconds between posts.

Powered by DjangoBB