pinobatch / pently

Scalable music engine for NES games
zlib License
72 stars 4 forks source link

Time signature with dotted denominator #44

Closed pinobatch closed 5 years ago

pinobatch commented 5 years ago

In a discussion on the FamiTracker users' Discord server, nyanpasu64 (@jimbo1qaz here) gave a good case that the current behavior of treating time signature numerators that are multiples of 3 larger than 3 (such as 6, 9, and 12) as compound prolation isn't explicit enough. Both 3/4 and 6/8 mean the same thing in mathematics, but they don't mean the same thing in music.

Carmina Burana composer and music educator Carl Orff suggested to draw the time signature's denominator as a stem-down note instead of a number. Some examples of resulting Orff time signatures:

This clearly distinguishes the intent behind, say, 3/8 and 6/8: the former has eighth note as its beat, the latter the dotted quarter note. 3/(eighth note) vs. 2/(dotted quarter note)

To approximate this in a Pently score, pentlyas.py could accept a dotted value in the denominator: time 2/4. means time 6/8, and time 3/4. means time 9/8.

nyanpasu64 commented 5 years ago

I have personally observed that in MML-based systems, "note durations = (4 beats / number)" is a confusing system. Do you agree? What if 2(1) represented 2/4, and 2(1.) or 2(3/2) represented 6/8?

pinobatch commented 5 years ago

2(1) meaning "2 beats per measure, and the quarter note is one beat" sounds like you're objecting to the concept of "quarter notes" being a "quarter" of anything in the first place.

There are two ways to count musical time. Trackers use multiple of a tatum (also called a "row"). Common practice notation uses fractions of a whole note, as do MML and LilyPond. I appreciate your concern that the 16, 8, 8., 4, 4., 2, 2., and 1 duration convention appears baroque. But that's only because it has literally been around since the Baroque era, and that's what classically trained composers will understand. It's like driving on a parkway or parking on a driveway.

Even assuming simple prolation (2/4 not 6/8), the beat isn't always a quarter note. Simple prolation marches are notated in either 2/4 or 2/2, and a classical waltz-type piece can be sometimes arbitrarily notated in 3/4 or 3/8. That's why Pently has separate time and scale to set the length of a measure and beat and the length of a tatum respectively. If anything, doubling scale has a similar effect to Pattern > Expand in j0CC-FamiTracker and then halving the Fxx value: you play the same musical events over a finer tatum grid.

The Dance Dance Revolution fandom uses a different naming convention: the beat is always "quarter notes," and compound-prolation songs like "Burning Heat!" are considered to have "twelfth notes" whose arrow colors differ from those of eighth or sixteenth notes.

In any case, this is all an abstraction over what the underlying driver sees: the length in tatums of each note and the number of tatums per minute. If BPM math is enabled, it also sees the length in tatums of each beat. If you know of a better way to specify the three of these than the convention used by MML and LilyPond, I'd be willing to read your proposal for comprehensive duration reform in a new issue.