-
Notifications
You must be signed in to change notification settings - Fork 3k
[MU3 Backend] Eng-35: MusicXML import Small Notes vs. Small Chord #8181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MU3 Backend] Eng-35: MusicXML import Small Notes vs. Small Chord #8181
Conversation
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case.
| * I.e. a chord is "small until proven otherwise". | ||
| */ | ||
|
|
||
| static void handleSmallness(bool cueOrSmall, Note* note, Chord* c) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it makes sense to handle this logic directly in Chord class. Just because it might be useful not only for import functionality, but for the whole domain model
We can consider it in the further PRs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree! Taking it a step further, we could make the _small attribute of a Chord fully dependent on its member Notes (i.e. Chord::setSmall() just sets all the Notes to small, and Chord::small() reads whether all the Notes are small; Chord doesn't actually store a _small flag of its own). Not sure if that would introduce any regressions though. Just something to consider!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Better leave such a change for the master branch only I guess.
And hope the 4.0 Alpha and Beta phasse catch regressions, if any ;-)
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Since MusicXML only stores note-level information about smallness (<type size='cue'> and <cue>), chords that should be small were being read as normal-sized chords of small notes. This caused issues with the sizes of flags, ledger lines, and articulations. This commit adds handleSmallness to ensure that a chord with all small notes is imported as a small chord with all non-small notes, as well as a test for this particular case. Port of musescore#8181
Resolves: ENG-35: All elements of small notes should be reduced in size
Since MusicXML only stores note-level information about smallness
(<type size='cue'> and <cue>), chords that should be small were being
read as normal-sized chords of small notes. This caused issues with
the sizes of flags, ledger lines, and articulations.
This commit adds handleSmallness to ensure that a chord with all small
notes is imported as a small chord with all non-small notes, as well
as a test for this particular case.
For future discussion: it may be worth considering making the _small attribute of a Chord fully derived from its member Notes; leaving the two independent can create redundancy and other errors such as this one.