Voice Copy Paste
This week I have worked on fixing bugs with pasting notes with multiple voices.
Here is a list of bugs that I have found in the issue tracker that have to do with pasting multiple voices.
- Undoing multi-voice paste does not produce multi-voice rest on previously occupied note
- After copy/paste operation with dotted half note chords and ties, 4/4 bar ends up with only 3 beats in it
- cut and paste corrupts voice2
- [Trunk] Pasting multi-voice notes corrupts timing
- Voice 2 not copied if destination has content there; undo then produces incorrect results
- Pasting multi-voice notes causes corruption
The last comment in the first issue correctly describes the problem.
MakeGap1 removed and shortened chordrests in the first voice. Other voices were not touched at all.
In PR #1073 I have added code that makes a gap for other voices as well.
This fixed issue #12960.
I have noticed another bug while working at the issue.
If we copy paste the second and third chordrest from the first measure, we will have a timing corruption. It is caused by the fact that we make a gap starting from the first cr which in this case is in second voice.
To fix this, I have changed the staff mime to contain voice offsets. This way we make a gap starting from the first chordrest in each voice. The PR with the changes can be found here
I have closed the PR for now, to fix the 2 remaining issues that Marc Sabatella mentioned in the PR.
Tasks in the upcoming week
Fix 2 issues that are mentioned in the voice PR. Write tests for all issues mentioned earlier that are fixed by the voice paste changes. Implement voice filtering, Finish up writing the selection document. Clean up, comment selection code.