Skip to content
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

meterSigGrp #1268

Closed
craigsapp opened this issue Jan 19, 2020 · 5 comments
Closed

meterSigGrp #1268

craigsapp opened this issue Jan 19, 2020 · 5 comments

Comments

@craigsapp
Copy link
Contributor

Somewhat related to issue #554, it would be useful to have "double" time signatures that indicate an alternating meter every other measure.

An exemplar would be from Benjamin Britten's War Requium (mvmt. 6):

Screen Shot 2020-01-18 at 20 29 15

The duration of the measures alternates between 2/2 and 3/2 meters.

A related example would be Debussy preludes, book I, prelude X:

Screen Shot 2020-01-18 at 20 39 44

In this example the meaning is almost the same as the first example, except that it is hard to distinguish between the two meters since they have the same written durations. But note the equals sign which is even more similar to issue #554


For the first example, I am wondering if repeating the <meterSig> element with the two time signatures is a good method of encoding (although it is no purely semantic):

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="4.0.0">
 <meiHead>
  <fileDesc>
   <titleStmt>
    <title />
   </titleStmt>
   <pubStmt />
  </fileDesc>
  <encodingDesc>
   <appInfo>
    <application isodate="2020-01-18T20:33:06" version="2.4.0-dev-56dda9d-dirty">
     <name>Verovio</name>
     <p>Transcoded from Humdrum</p>
    </application>
   </appInfo>
  </encodingDesc>
  <workList>
   <work>
    <title />
   </work>
  </workList>
 </meiHead>
 <music>
  <body>
   <mdiv xml:id="mdiv-0000001828529541">
    <score xml:id="score-0000000741013182">
     <scoreDef xml:id="scoredef-0000001434788564" midi.bpm="400">
      <staffGrp xml:id="staffgrp-0000002083486214">
       <staffDef xml:id="staffdef-0000000317997379" n="1" lines="5">
        <clef xml:id="clef-0000000057078570" shape="G" line="2" />
        <keySig xml:id="keysig-L3F1" sig="3s" />
        <meterSig xml:id="metersig-L2F1" count="2" unit="2" />
        <meterSig xml:id="metersig-L2F1b" count="3" unit="2" />
       </staffDef>
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <measure xml:id="measure-L1" n="0">
       <staff xml:id="staff-0000000720293967" n="1">
        <layer xml:id="layer-L1F1N1" n="1">
         <note xml:id="note-L5F1" dur="1" oct="4" pname="a" accid.ges="n" />
        </layer>
       </staff>
      </measure>
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>

The second meterSig is currently ignored in verovio rendering:

Screen Shot 2020-01-18 at 20 43 54

@rettinghaus
Copy link
Contributor

rettinghaus commented Jan 19, 2020 via email

@craigsapp
Copy link
Contributor Author

Yes, that is what is needed. In this case it is an "alternating" pair of time signatures (for the first example).

Is there a way indicating the "=" sign for the Debussy example (which is an "interchanging" example).

In both cases for analysis (and performance of the Debussy), it would be useful to have an "invisible" time signature in each measure that describes the meter for that measure.

Current rendering:

Screen Shot 2020-01-19 at 07 26 27

<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="https://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="https://music-encoding.org/schema/4.0.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="4.0.0">
 <meiHead>
  <fileDesc>
   <titleStmt>
    <title />
   </titleStmt>
   <pubStmt />
  </fileDesc>
  <encodingDesc>
   <appInfo>
    <application isodate="2020-01-18T20:33:06" version="2.4.0-dev-56dda9d-dirty">
     <name>Verovio</name>
     <p>Transcoded from Humdrum</p>
    </application>
   </appInfo>
  </encodingDesc>
  <workList>
   <work>
    <title />
   </work>
  </workList>
 </meiHead>
 <music>
  <body>
   <mdiv xml:id="mdiv-0000001828529541">
    <score xml:id="score-0000000741013182">
     <scoreDef xml:id="scoredef-0000001434788564" midi.bpm="400">
      <staffGrp xml:id="staffgrp-0000002083486214">
       <staffDef xml:id="staffdef-0000000317997379" n="1" lines="5">
        <clef xml:id="clef-0000000057078570" shape="G" line="2" />
        <keySig xml:id="keysig-L3F1" sig="3s" />
        <meterSigGrp>
            <meterSig xml:id="metersig-L2F1" count="2" unit="2" />
            <meterSig xml:id="metersig-L2F1b" count="3" unit="2" />
        </meterSigGrp>
       </staffDef>
      </staffGrp>
     </scoreDef>
     <section xml:id="section-L1F1">
      <measure xml:id="measure-L1" n="0">
       <staff xml:id="staff-0000000720293967" n="1">
        <layer xml:id="layer-L1F1N1" n="1">
         <note xml:id="note-L5F1" dur="1" oct="4" pname="a" accid.ges="n" />
        </layer>
       </staff>
      </measure>
     </section>
    </score>
   </mdiv>
  </body>
 </music>
</mei>

@craigsapp craigsapp changed the title double time signatures meterSigGrp Jan 19, 2020
@craigsapp
Copy link
Contributor Author

Related to this is: how to deal with timestamp units when there is a meterSigGroup? In other words, suppose that the meterSigGroup has two time signatures with different @meter.unit values, such as the cathédrale engloutie example:

Screen Shot 2020-01-18 at 20 39 44

In this case the 6/4 has @meter.unit="4" and 3/2 has @meter.unit="2". Which unit would be used to describe timestamps in the music in such cases? In this case the measure duration of the two time signatures is the same, so things can be faked by pretending that there is only one time signature.

However, if it were important to preserve the time signatures within the timestamps, this seems to be a problem, or at least an unnecessary complication because the timestamps have context-dependent units.

Here is a demonstration of the changeability of the timestamps:

Screen Shot 2020-01-24 at 08 41 15

The @tstamp units are "4":

<measure n="1">
   <staff n="1">
      <layer n="1">
         <note dur="4" oct="4" pname="c" />
         <note dur="4" oct="4" pname="d" />
         <note dur="4" oct="4" pname="e" />
         <note dur="4" oct="4" pname="f" />
      </layer>                  
   </staff>                 
   <fermata staff="1" tstamp="1" />
   <fermata staff="1" tstamp="2" />
   <fermata staff="1" tstamp="3" />
   <fermata staff="1" tstamp="4" />
</measure>    

Screen Shot 2020-01-24 at 08 43 21

The timestamp units are now "8", so the values for the fermatas must be doubled:

<measure n="1">
   <staff n="1">
      <layer n="1">
         <note dur="4" oct="4" pname="c" />
         <note dur="4" oct="4" pname="d" />
         <note dur="4" oct="4" pname="e" />
         <note dur="4" oct="4" pname="f" />
      </layer>                  
   </staff>                 
   <fermata staff="1" tstamp="1" />
   <fermata staff="1" tstamp="3" />
   <fermata staff="1" tstamp="5" />
   <fermata staff="1" tstamp="7" />
</measure>     

A problem will occur if you change the time signature, but do not update the timestamps in the music:

Switching from 8/8 to 4/4 without adjusting the fermata timestamps:

Screen Shot 2020-01-24 at 08 42 57

Switching from 4/4 to 8/8 without adjusting the fermata timestamps:

Screen Shot 2020-01-24 at 08 45 27

(I encode with @startid when possible to avoid the potential problem).

There is a discussion about this for future enhancement of MEI in such cases: music-encoding/music-encoding#322

@rettinghaus
Copy link
Contributor

implemented with #2271

@lpugin
Copy link
Contributor

lpugin commented Jul 26, 2021

Yes, I think we can close it. The MEI clarification was essentially about the timestamps, but we can leave this for later to be discussed in the MEI repo

@lpugin lpugin closed this as completed Jul 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants