Comments (8)
I haven't seen anyone using mixed meters in Humdrum, but I would think that they should be encoded as:
*M2+2+2/8
*M1/4+3/8
*M1+2+3/8+3/4
I did have a proposal for time signatures a while ago that no one was interested in: https://groups.google.com/d/msg/starstarhug/HtRY9oOfl7A/lIKiqiW06_IJ
This was only for resolving the metric patterns inside of 6/8 to resolve beat ambiguity (is the beat the eighth or the dotted quarter). Your first example would be:
*M6/8:4,4,4
But this system is not designed for the second or third cases, so perhaps the first encoding example is best when you want the visual groupings in the time signature, while the bottom example is better if you want to show a simple time signature, but break it into non-standard groupings (for automatic beaming or metric analysis).
I think mixed meters are possible in verovio. If you can figure out an example in MEI, I can add it to the humdrum2mei converter.
from vhv-documentation.
Verovio does not support yet:
- meterSigGrp
- additive time signatures. In this case, Verovio does not report any error but only detects the first numerator number in the sum.
Regarding the **kern encoding, I think the *M1+2+3/8+3/4 form is valid, but there must be a way to indicate whether it is mixed or alternating.
I've prepared an example of what could be generated (recall Verovio cannot deal with it yet)
<?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>Examples of meter encodings</title>
<respStmt>
<persName role="encoder">David Rizo</persName>
</respStmt>
</titleStmt>
<pubStmt>
<date>2020-04-05 17:15:00</date>
</pubStmt>
</fileDesc>
<encodingDesc>
<projectDesc>
<p>MEI encoding example</p>
</projectDesc>
</encodingDesc>
</meiHead>
<music>
<body>
<mdiv>
<score>
<scoreDef meter.count="4" meter.unit="4" meter.sym="common">
<staffGrp>
<staffDef lines="5" clef.shape="G" clef.line="2" n="1"/>
</staffGrp>
</scoreDef>
<section>
<measure>
<staff n="1">
<layer n="1">
<note dur="1" oct="4" pname="c" />
</layer>
</staff>
</measure>
<scoreDef meter.count="2" meter.unit="2" meter.sym="cut"/>
<measure>
<staff n="1">
<layer n="1">
<note dur="1" oct="4" pname="d" />
</layer>
</staff>
</measure>
<scoreDef meter.count="7" meter.unit="4"/>
<measure>
<staff n="1">
<layer n="1">
<note dur="1" oct="4" pname="e"/>
<note dur="2" oct="4" dots="1" pname="e"/>
</layer>
</staff>
</measure>
<scoreDef meter.count="3+2" meter.unit="4"/>
<measure>
<staff n="1">
<layer n="1">
<note dur="2" oct="4" dots="1" pname="f"/>
<note dur="2" oct="4" pname="f"/>
</layer>
</staff>
</measure>
<scoreDef>
<meterSigGrp func="alternating">
<meterSig count="2" unit="4"/>
<meterSig count="6" unit="8"/>
</meterSigGrp>
</scoreDef>
<measure>
<staff n="1">
<layer n="1">
<!-- apply first 2/4 -->
<beam>
<note dur="8" oct="4" pname="g"/>
<note dur="8" oct="4" pname="g"/>
</beam>
<beam>
<note dur="8" oct="4" pname="g"/>
<note dur="8" oct="4" pname="g"/>
</beam>
</layer>
</staff>
</measure>
<measure>
<staff n="1">
<layer n="1">
<!-- alternate to 6/8 -->
<beam>
<note dur="8" oct="4" pname="g"/>
<note dur="8" oct="4" pname="g"/>
<note dur="8" oct="4" pname="g"/>
</beam>
<beam>
<note dur="8" oct="4" pname="g"/>
<note dur="8" oct="4" pname="g"/>
<note dur="8" oct="4" pname="g"/>
</beam>
</layer>
</staff>
</measure>
<scoreDef>
<meterSigGrp func="mixed">
<meterSig count="2" unit="4"/>
<meterSig count="1" unit="8"/>
</meterSigGrp>
</scoreDef>
<measure>
<staff n="1">
<layer n="1">
<note dur="2" oct="4" pname="a"/>
<note dur="8" oct="4" pname="a"/>
</layer>
</staff>
</measure>
</section>
</score>
</mdiv>
</body>
</music>
</mei>
from vhv-documentation.
Yes, this one is weird:
*M1+2+3/8+3/4
I was thinking about putting parentheses in for clarification, but they are not necessary provided that parsing of +
has priority over /
(which is opposite from standard algebraic parsing in math).
For mixed and alternating time signatures, things get more complicated. The general aesthetic of Humdrum is for analysis, and mixed/alternating time signatures are a ambiguous shorthand for showing the time signature for every bar. Therefore, there would need to be an "invisible" time signature that would apply to only the current measure (and following if not qualified), and a "printed" time signature that shows what is seen in the printed score. The invisible time signatures would probably need to be encoded by hand, at least in the general case.
A good example is the "sunken cathedral" prelude by Debussy:
https://en.wikipedia.org/wiki/La_cath%C3%A9drale_engloutie
http://conquest.imslp.info/files/imglnks/usimg/c/c0/IMSLP00509-Debussy_-_Preludes,_Book_1.pdf
The only way to figure out the time signatures is to listen to the composer play the music (via piano roll):
https://www.youtube.com/watch?v=levGISzDmjs
Since all alternate/mixed time signatures would automatically be visual, maybe something like this:
*M6/4|3/2
for this case. In other words, the individual time signatures would be separated by |
which makes sense as the measure is either in 6/4 or 3/2 time. |
would have a lower precedence than /
or +
I presume.
Maybe for invisible the yy
marker (which can be used on notes but is not yet defined for interpretations) could be used:
*M4/4yy
This would mean that the time signature should be 4/4 if shown, but it is not to be displayed on the graphical notation. An alternate method which seems more elegant is to use a negative sign:
*M-4/4
I think I might like that one better.
from vhv-documentation.
Then, given the examples, the different encodings would be?
Additive meter
M(1+2+2)/4
See dance rhythm Zortziko
Mixed meter
M2/4+1/8
M2/4+(1+2+3)/8
Alternating meter
*M6/4|3/2
: i.e.6/4 and 3/2 that alternate repeatedly.
See an example in the main theme of America (West Side Story), or Tchaikovsky's String Quartet No. 2 in F major
Interchanging meter
I think the "sunken cathedral" seems to be an interchanging meter.
I would encode as:
*M6/4=3/2
Invisible meter
*M-4/4
from vhv-documentation.
What is the difference between alternating and interchanging meter? Alternating is predictable (one measure in first, then next measure in second, then next measure in first, etc.) and interchanging is not predictable as to when the switch happens?
Maybe using |
for interchanging meter (but can be notated with =
in the score), since that maps better to the indeterministic behavior of the meter (it could be A or B).
For the alternating meter, that is equal to (A then B), so maybe use :
as a divider between the separate meters:
*M6/4:3/2
Then if there is a case where the meter alternation is not a 1:1 repetition, it could be encoded like this:
*M6/4;2:3/2;3
which would mean that this is an alternating time signature where the first two measures are in 6/4, then there are three measures in 3/2 before the cycle is repeated.
For parentheses:
M(1+2+2)/4
I would prefer not to have them:
M1+2+2/4
Since I do not want to use Antlr :-). If there is a case requiring parentheses to disambiguate, then they could be allowed.
from vhv-documentation.
I agree with everything ;)
from vhv-documentation.
Something I don't know is whether in the case of interchanging meter (e.g. *M6/4|3/2), the duration implied by both meters must be the same
from vhv-documentation.
I think the Debussy prelude case is rare and quite ambiguous, since it is difficult to determine which time signature should be applied without listening to the piece played by someone else (such as the composer). All other cases of interchanging meter that I have seen have different durations for each meter, making it obvious which meter should be applied to the measure.
Another metric case might be hypermeter:
https://josquin.stanford.edu/cgi-bin/jrp?a=notationEditText&f=Jos2311
The modern time signature for the tenor part might best be expressed as:
*M2/1;3
which is a metric cycle of three measures of 2/1.
from vhv-documentation.
Related Issues (12)
- Non lazy beaming HOT 2
- Turn ornament documentation HOT 4
- Keywords correction
- fb documentation enhancements HOT 4
- Spanish translation HOT 6
- Digitacióm HOT 2
- Keywords correction
- Documentation about spine ordering HOT 2
- Documentation about spine operator *v HOT 3
- Typo in key signature cancellation section HOT 1
- Grace note documentation HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vhv-documentation.