Skip to content

fix of negative fret appearing on wrong string when transposing lowes…#33428

Open
alexpavlov96 wants to merge 1 commit into
musescore:mainfrom
alexpavlov96:negatve_frets_on_low_strings
Open

fix of negative fret appearing on wrong string when transposing lowes…#33428
alexpavlov96 wants to merge 1 commit into
musescore:mainfrom
alexpavlov96:negatve_frets_on_low_strings

Conversation

@alexpavlov96
Copy link
Copy Markdown
Contributor

No description provided.

Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 15, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4d40908d-5878-4bae-9321-6ccbd804c899

📥 Commits

Reviewing files that changed from the base of the PR and between 4fd49c6 and a30fa75.

📒 Files selected for processing (4)
  • src/engraving/dom/stringdata.cpp
  • src/engraving/tests/tab_transpose_data/fret_low_string_transpose.mscx
  • src/engraving/tests/tab_transpose_data/prefer_bass_inner_negative.mscx
  • src/engraving/tests/tab_transpose_tests.cpp

📝 Walkthrough

Walkthrough

This PR refactors the StringData::sortChordNotesUseSameString function to improve handling of negative frets on the lowest tab string during transpose operations. The implementation introduces a shared skipTabNote filter to consistently skip non-tab notes across all passes, computes bass-string state tracking, and adds a new adjustment pass to conditionally remap notes onto the bass string with negative frets. The detection and reset phases were updated to apply the same filter and preserve negative-fret decisions on the lowest string. Two test fixtures and test cases validate that notes remain or are moved to the lowest string appropriately when transposed below open-string positions.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided by the author, missing required template sections including issue reference, motivation, and verification checklist. Add a complete PR description following the repository template, including issue reference, motivation for changes, and checked verification items.
Title check ❓ Inconclusive The title is partially related to the changeset—it refers to a real aspect of the change (negative frets on low strings during transposition) but appears truncated and incomplete, making it unclear. Complete the title to fully describe the fix, e.g., 'Fix negative frets appearing on wrong string when transposing lowest notes' or similar.
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant