Isaac Weiss's blog

GSoC 2020 Work Product: New and Improved Multimeasure Rests and Measure Repeats

3 years ago • 6 comments

Hello, all! This is the conclusion to my GSoC 2020 blog, summarizing and linking to my work for MuseScore over the past twelve weeks.

In brief, I added support for adjusting the style of multimeasure rests, switching to old-style multimeasure rests, preventing line breaks between selected measures, automatically numbering one-measure repeats, and creating two- and four-measure repeats with MIDI playback support and the ability to import from and export to MusicXML format.

The multimeasure rest code, which can be found

Read more

GSoC 2020 Week 12 Recap: Testing the Tests

3 years ago • 0 comments

Hello! We've reached the end (almost). The twelve weeks of coding are complete. Later this week I'll make a big post with a video summarizing the entire summer. For now, here's one last weekly recap.

Update from last week

I spent this week working on tests. The idea is to automatically warn future developers if they make a change that introduces a bug in something that was previously working. MuseScore has lots of tests in place for existing features, and

Read more

GSoC 2020 Week 10 Recap: MusicXML in Difficult Circumstances

3 years ago • 1 comment

What a week.

What a week.

Update from last week

One sweltering day in August, a well-loved MacBook went to sleep and never woke up. During the very week when I was over 300 miles away from my (non-Mac) secondary machine.

I am amazed at how much I was able to accomplish under the circumstances. I commandeered someone else's gaming laptop, set up a guest account, and immediately began downloading at least a dozen gigabytes of stuff (Visual Studio, Qt,

Read more

GSoC 2020 Week 9 Recap: Playback Plus

3 years ago • 0 comments

Update from last week

Since the playback algorithms already had handling for one-measure repeats, it turned out to require only small changes to get the two-measure and four-measure repeats to play correctly. (However, in some circumstances it is questionable what it is to "play correctly"—see https://t.me/musescoreeditorchat/82334. Please don't put your musician in a circumstance where it is questionable what it is to "play correctly.") And I was pleased to find that, by investing in playback, I got MIDI export

Read more

GSoC 2020 Week 8 Recap: Model Design and Convincing Illusions

3 years ago • 0 comments

Hello! The last week ended up being quite different than what I had planned, but some solid improvements were made nonetheless.

Update from last week

PR #6211, my multimeasure rest work, was merged! I have now opened PR #6365 for my measure repeat work.

Inspector

According to plan, I added an Inspector for MeasureRepeats. Not according to plan, the ground shifted under my feet and suddenly all my files were in the wrong place. I should have had PR

Read more

GSoC 2020 Week 7 Recap: Keeping It Together

3 years ago • 1 comment

Hello! For this week, I made a longer video:

Update from last week

I made the bond between the measures of a MeasureRepeat group much stronger, disallowing or adding special handling for as many scenarios as I could think of that would interfere with them. Among those scenarios:

  • Copying and pasting measures within a group (disallowed, unless the whole group is selected)
  • Pasting anything into a group (allowed, removes the MeasureRepeat and resets associated measures)
  • Note input within a group
Read more

GSoC 2020 Week 6 Recap: Warning Warning

3 years ago • 0 comments
Previous post Next post

Hello again! Last week was a bit of a mixed bag. I didn't accomplish everything I hoped to, but still, progress was made. Let's get into it.

Update from last week

Bugs

My "Priority 1" issue, having to do with undo/redo, was unexpectedly fixed for me by (once again) @mattmcclinch. The "Priority 2" issue, though... I banged my head against the wall all week, and went deep, deep into the weeds with my mentor to figure

Read more

GSoC 2020 Week 5 Recap: Laying Out Measure Repeats

3 years ago • 9 comments
Previous post Next post

Update from last week

My goals for last week were as follows:

  • Expand MeasureRepeat class to support varying numbers under the hood
  • Draw the MeasureRepeat from the font instead of with a hard-coded path
  • Make all current uses of MeasureRepeat specify that it is the one-measure version being called (i.e., keeping same functionality, but changing implementation)

I did all of that in the first couple of days, and went on to, well, take those under-the-hood changes

Read more

GSoC 2020 Week 4 Recap: Time Warp (ft. Matt McClinch)

3 years ago • 0 comments
Previous post Next post

Hello, all! In the last week, I did some work a few weeks ago. Let me explain.

Update from last week

Group measures

On Wednesday I joined Marc Sabatella's weekly MuseScore livestream to demonstrate the current state of my project, and discovered a bug in my code live on the air—measure numbers were incorrect starting after a measure group.

This was a mystery to figure out because there didn't seem to be any models to follow

Read more