feat: refactor GlideBlock to resolve double-execution and timing issues (Fix #6917)#6918
feat: refactor GlideBlock to resolve double-execution and timing issues (Fix #6917)#6918gcharpe1604 wants to merge 5 commits into
Conversation
|
✅ All Jest tests passed! This PR is ready to merge. Coverage: Statements: 44.81% | Branches: 36.3% | Functions: 49.9% | Lines: 45.25% |
8fca8f7 to
a4949bb
Compare
|
✅ All Jest tests passed! This PR is ready to merge. Coverage: Statements: 44.82% | Branches: 36.33% | Functions: 49.89% | Lines: 45.25% |
|
This PR has merge conflicts with Please rebase your branch: # Add upstream remote (one-time setup)
git remote add upstream https://github.com/sugarlabs/musicblocks.git
# Fetch latest master and rebase
git fetch upstream
git rebase upstream/master
# Resolve any conflicts, then:
git push --force-with-lease origin YOUR_BRANCH
|
|
🧪 Jest Test Results ❌ Some Jest tests failed. Please check the logs and fix the issues before merging. Coverage: Statements: 47.56% | Branches: 38.82% | Functions: 52.43% | Lines: 47.97% Note: These failures may be introduced by this PR or may already exist in the master branch. Failed Tests: |
1252889 to
fb2c856
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #6918 +/- ##
==========================================
+ Coverage 59.28% 59.30% +0.02%
==========================================
Files 176 176
Lines 57967 57995 +28
==========================================
+ Hits 34365 34395 +30
+ Misses 23602 23600 -2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
This PR has merge conflicts with Please rebase your branch: # Add upstream remote (one-time setup)
git remote add upstream https://github.com/sugarlabs/musicblocks.git
# Fetch latest master and rebase
git fetch upstream
git rebase upstream/master
# Resolve any conflicts, then:
git push --force-with-lease origin YOUR_BRANCH
|
Description
This PR refactors the
GlideBlock(glissando) implementation to remove the dependency onSinger.noteCounter. This resolves the "double-execution" bug where blocks inside the Glide clamp were run twice, causing unintended side-effects on variables and state. It also implements a buffering mechanism in theSingerengine to ensure perfectly synchronized glissando playback.Related Issue
This PR fixes #6917
PR Category
Changes Made
Singer.noteCounterfromGlideBlock.flowinjs/blocks/OrnamentBlocks.js.glideBufferinjs/turtle-singer.jsto collect notes during the synchronous execution of the glissando clamp.Singer.playGlideBufferto handle synchronized audio triggering with preciseTone.now()offsets.Singer.processNoteto unify synth trigger logic across instruments and voices.js/blocks/__tests__/OrnamentBlocks.test.jsto verify the new buffering and signal-based playback behavior.