Skip to content

Import dives: phase 1#34303

Merged
alexpavlov96 merged 2 commits into
musescore:mainfrom
alexpavlov96:import_dives
Jul 22, 2026
Merged

Import dives: phase 1#34303
alexpavlov96 merged 2 commits into
musescore:mainfrom
alexpavlov96:import_dives

Conversation

@alexpavlov96

Copy link
Copy Markdown
Contributor

No description provided.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

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: 331aee88-ad74-480a-b833-e67bf9ee2726

📥 Commits

Reviewing files that changed from the base of the PR and between 9f9acdb and a6b4342.

📒 Files selected for processing (34)
  • src/importexport/guitarpro/CMakeLists.txt
  • src/importexport/guitarpro/internal/gtp/gp67dombuilder.cpp
  • src/importexport/guitarpro/internal/gtp/gpconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/bendbuilder.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/bendbuilder.h
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacollector.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacollector.h
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacontext.h
  • src/importexport/guitarpro/internal/guitarbendimport/bendinfoconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/divedatacollector.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/divedatacollector.h
  • src/importexport/guitarpro/internal/guitarbendimport/diveinfoconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/diveinfoconverter.h
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporter.h
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporttypes.h
  • src/importexport/guitarpro/internal/guitarbendimport/splitchord/benddatacollectorsplitchord.cpp
  • src/importexport/guitarpro/internal/importgtp-gp4.cpp
  • src/importexport/guitarpro/internal/importgtp-gp5.cpp
  • src/importexport/guitarpro/internal/importgtp.cpp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_chord-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_chord.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_down_up-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_down_up.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_harmonic-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_harmonic.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_with_prebend-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_with_prebend.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive-gpx.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive.gpx
  • src/importexport/guitarpro/tests/guitarbendimporter_tests.cpp
  • src/importexport/guitarpro/tests/guitarpro_tests.cpp
💤 Files with no reviewable changes (1)
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacontext.h
🚧 Files skipped from review as they are similar to previous changes (30)
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_with_prebend.gp
  • src/importexport/guitarpro/internal/guitarbendimport/divedatacollector.cpp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_down_up.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive.gpx
  • src/importexport/guitarpro/internal/guitarbendimport/diveinfoconverter.h
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_harmonic-gp.mscx
  • src/importexport/guitarpro/internal/importgtp.cpp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_down_up-gp.mscx
  • src/importexport/guitarpro/tests/guitarpro_tests.cpp
  • src/importexport/guitarpro/internal/importgtp-gp4.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/bendinfoconverter.cpp
  • src/importexport/guitarpro/CMakeLists.txt
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacollector.h
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive.gp
  • src/importexport/guitarpro/internal/importgtp-gp5.cpp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_chord.gp
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacollector.cpp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_chord-gp.mscx
  • src/importexport/guitarpro/internal/guitarbendimport/splitchord/benddatacollectorsplitchord.cpp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_with_prebend-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive-gpx.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_tests.cpp
  • src/importexport/guitarpro/internal/gtp/gpconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/bendbuilder.h
  • src/importexport/guitarpro/internal/gtp/gp67dombuilder.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/diveinfoconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporttypes.h
  • src/importexport/guitarpro/internal/guitarbendimport/bendbuilder.cpp

📝 Walkthrough

Walkthrough

The GuitarPro importer now parses whammy-bar curves into beat data, converts bend and dive pitch curves into shared segment structures, collects dive information, and builds typed bend elements in the score. The bend importer API and internal data contexts were reorganized, with new converter and collector components added to the build. GuitarPro 3–7 import paths use the new score-finalization method. New GP, GPX, and MuseScore fixtures and regression tests cover dive, harmonic, chord, coordinated, and prebend cases.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is empty, so it is missing the required issue reference, summary, and checklist from the template. Add a description with a Resolves #NNNNN line, a short summary, and all checklist items filled out appropriately.
Docstring Coverage ⚠️ Warning Docstring coverage is 8.97% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and matches the main change: importing dives in phase 1.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Review ran into problems

🔥 Problems

Linked repositories: Public OSS repositories can only analyze public repositories installed in this organization. No linked repositories were analyzed; skipped musescore/muse_framework.git.


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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/importexport/guitarpro/internal/gtp/gp67dombuilder.cpp`:
- Around line 1216-1237: Preserve the whammy curve’s origin offset by extending
the property parsing in readWhammy() to recognize WhammyBarOriginOffset and
assign its numeric value to whammyData.originOffset, alongside the existing
origin, destination, and middle value/offset properties.

In `@src/importexport/guitarpro/internal/guitarbendimport/bendbuilder.cpp`:
- Around line 214-231: The grace-note pitch calculation in the bend-building
flow must use the bend-chain start pitch for normal bends, matching the absolute
endpoint semantics of quarterTones. Update the graceNote setup near GuitarBend
creation to retain the currentNote-based additive calculation for DIVE, but
derive non-DIVE pitches from the chain-start note before calling
setTpcFromPitch().

In
`@src/importexport/guitarpro/tests/guitarbendimporter_data/dive_harmonic-gp.mscx`:
- Around line 145-151: Remove the duplicate WhammyBar terminator from the
fixture, leaving only the single valid prev location with fractions -1/1 for the
WhammyBar spanner. Preserve the existing WhammyBar start and its remaining
terminator unchanged.

In `@src/importexport/guitarpro/tests/guitarpro_tests.cpp`:
- Around line 606-612: Re-enable the Guitar Pro importer regression tests by
removing the DISABLED_ prefix from gpTremoloBar, gpxTremoloBar, and
gpLineElements. Fix or update the tremolo-bar/line-element importer behavior and
references so these tests pass while preserving their regression coverage.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 61db6477-70a0-4d18-9075-34a5106ebd97

📥 Commits

Reviewing files that changed from the base of the PR and between f2e0b9e and ca7a17d.

📒 Files selected for processing (36)
  • src/importexport/guitarpro/CMakeLists.txt
  • src/importexport/guitarpro/internal/gtp/gp67dombuilder.cpp
  • src/importexport/guitarpro/internal/gtp/gp67dombuilder.h
  • src/importexport/guitarpro/internal/gtp/gpbeat.h
  • src/importexport/guitarpro/internal/gtp/gpconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/bendbuilder.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/bendbuilder.h
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacollector.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacollector.h
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacontext.h
  • src/importexport/guitarpro/internal/guitarbendimport/bendinfoconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/divedatacollector.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/divedatacollector.h
  • src/importexport/guitarpro/internal/guitarbendimport/diveinfoconverter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/diveinfoconverter.h
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporter.cpp
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporter.h
  • src/importexport/guitarpro/internal/guitarbendimport/guitarbendimporttypes.h
  • src/importexport/guitarpro/internal/guitarbendimport/splitchord/benddatacollectorsplitchord.cpp
  • src/importexport/guitarpro/internal/importgtp-gp4.cpp
  • src/importexport/guitarpro/internal/importgtp-gp5.cpp
  • src/importexport/guitarpro/internal/importgtp.cpp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_chord-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_chord.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_down_up-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_down_up.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_harmonic-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_harmonic.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_with_prebend-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/dive_with_prebend.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive-gp.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive-gpx.mscx
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive.gp
  • src/importexport/guitarpro/tests/guitarbendimporter_data/simple_dive.gpx
  • src/importexport/guitarpro/tests/guitarbendimporter_tests.cpp
  • src/importexport/guitarpro/tests/guitarpro_tests.cpp
💤 Files with no reviewable changes (1)
  • src/importexport/guitarpro/internal/guitarbendimport/benddatacontext.h

Comment thread src/importexport/guitarpro/internal/gtp/gp67dombuilder.cpp
Comment thread src/importexport/guitarpro/tests/guitarpro_tests.cpp
@alexpavlov96
alexpavlov96 merged commit be3172b into musescore:main Jul 22, 2026
14 checks passed
@alexpavlov96
alexpavlov96 deleted the import_dives branch July 22, 2026 09:43
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.

2 participants