musescore / musescore/MuseScore

MEI Export: identify repeated sections and put them inside of <section> </section>

Open
#21,275 3 comments 0 reactions 1 assignee View on GitHub

@shoogle is already working on this.

Since Jan 30, 2024.

feature request MEI needs info
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Your idea

Currently in exported MEI files, repeated sections are not inside of <section>s. For example, the MEI file exported from this score (containing two repeats, at Measures 28 and 73) only has the one <section> from the start to the end. It would be good to place repeated measures inside of individual<section>s with xml ids, so that (e.g.,) the exported MEI of the above score would have the structure below:

           <section xml:id="section_allegro">
              <section xml:id="section_A_m1-28">
              ...
              </section>
              <section xml:id="section_B_m29-73">
              ...
              </section>
           </section>

pinging @lpugin

Problem to be solved

After such <section>s are included, it'd be easy to add <expansion> for scores with repeats, which can be used to create expansionmap etc. For example, it would then be easy for anyone to add <expansion> to specify the sequence of sections in actual music performance:

           <section xml:id="section_allegro">
              <expansion plist="#section_A_m1-28 #section_A_m1-28 #section_B_m29-73 #section_B_m29-73" xml:id="expansion-maximum"/> 
              <section xml:id="section_A_m1-28">
              ...
              </section>
              <section xml:id="section_B_m29-73">
              ...
              </section>
           </section>
Prior art

No response

Additional context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.