- From: James Ingram <j.ingram@netcologne.de>
- Date: Sun, 19 Apr 2020 14:52:53 +0200
- To: "public-music-notation-contrib@w3.org" <public-music-notation-contrib@w3.org>
- Cc: Jim DeLaHunt <list+w3c@jdlh.com>, Adrian Holovaty <adrian@holovaty.com>
- Message-ID: <fb8e0a19-ef2f-dd6a-3ed3-0ba939ddc556@netcologne.de>
Hi Adrian, Jim, all, Ah, but I think you are both overlooking a couple of things. I was overlooking a couple of things in my last post too. Time for more precision! :-) *First:* The MNX embedded in the MNX would not simply be the backwards compatible next version of MusicXML. It would be code that is as like MusicXML as possible, but from which all unnecessary accretions had been removed, and -- in particular -- which took a less 19th-Century approach to time (see below). *Second: *This need not be the only (or best) way to code MNX-Common, but it might be the easiest way to migrate from current MusicXML. We can quite easily just define a "musicXML" profile, and get on with migrating. Maybe the "standard" profile (being defined in the Draft Spec) will get completely defined and used later, but that remains to be seen. Its no longer necessary to stipulate <score-partwise version="3.1"> (all profile="musicxml" scores are part-wise) so example 1 (helloworld) would look like this: <mnx> <score> *<mnx-common **profile="musicxml"**>* <part-list> <score-part id="P1"> <part-name>Music</part-name> </score-part> </part-list> <part id="P1"> <measure number="1"> <attributes> <divisions>1</divisions> <key> <fifths>0</fifths> </key> <time> <beats>4</beats> <beat-type>4</beat-type> </time> <clef> <sign>G</sign> <line>2</line> </clef> </attributes> <note> <pitch> <step>C</step> <octave>4</octave> </pitch> <duration>4</duration> <type>whole</type> </note> </measure> </part> </mnx-common> </score> </mnx> Time isn't mentioned in the above, but that's where things start to get interesting. :-)* *So *Third *(and most important): *mnx-common has to use a digital time-paradigm* in order to interoperate well with the web, DAWs, MIDI and other modern software. The changes re MusicXML proper may end up being rather drastic, but its actually quite easy to do, and I think the end result could actually be quite simple. Here's how my MNX-parser does it: The temporal data is measured in ticks. The standard CWMN duration symbols each have a default number of ticks: /1 (whole-note): 4096 ticks /2 (half-note): 2048 ticks /4 (quarter-note): 1024 ticks /8: 512 ticks /16: 256 ticks etc. for all the duration symbols defined by Bravura. Given a tempo, the ticks can be converted directly to milliseconds. For example, if a quarter-note lasts 1 second, then its ticks are 1000/1024 milliseconds. Ticks are *integers*, so tick addition and subtraction is always exact. Measures always "add-up" in ticks. The tick-durations of duration symbols inside tuplets always have to add up to the outer duration of the tuplet. I use a standard function that returns such values. For example, given a triplet having an outer duration of 1024 ticks (a quarter-note): If it contains a quarter-note followed by an eighth note, they have durations 682 and 342 ticks respectively. If the triplet-quarter having 682 ticks is further divided in proportions 1:2 (a nested triplet) the inner durations would be 227 and 455 ticks (regardless of how the symbols actually look). Using a standard function to produce these numbers ensures that synchronous events stay synchronous in different parts, and sequential events maintain their sequence. Note that grace-notes also have ticks. They are not outside time! Hope that helps, James -- https://james-ingram-act-two.de https://github.com/notator Am 18.04.2020 um 18:40 schrieb Jim DeLaHunt: > On 2020-04-18 03:11, James Ingram wrote: > >> It occurs to me that things could be made easier for the MusicXML >> community if MNX-Common was actually (the latest version of) MusicXML >> embedded in an MNX wrapper > > That looks to me like a big step backwards… or rather, a refusal to > step forward. > > My biggest hope for MNX is that it move beyond the limitations of > MusicXML and its compatibility requirements, to be a much better > vehicle for representing digital scores. Turning MNX-Common into > merely a wrapper which preserves the shortcomings of MusicXML seems to > me is negation of this hope. >
Received on Sunday, 19 April 2020 12:53:14 UTC