Skip to toolbar

Community & Business Groups

Music Notation Community Group

The Music Notation Community Group develops and maintains format and language specifications for notated music used by web, desktop, and mobile applications. The group aims to serve a broad range of users engaging in music-related activities involving notation, and will document these use cases.

The Community Group documents, maintains and updates the MusicXML and SMuFL (Standard Music Font Layout) specifications. The goals are to evolve the specifications to handle a broader set of use cases and technologies, including use of music notation on the web, while maximizing the existing investment in implementations of the existing MusicXML and SMuFL specifications.

The group is developing a new specification to embody this broader set of use cases and technologies, under the working title of MNX. The group is proposing the development of an additional new specification to provide a standard, machine-readable source of musical instrument data.

w3c/smufl
Group's public email, repo and wiki activity over time

Note: Community Groups are proposed and run by the community. Although W3C hosts these conversations, the groups do not necessarily represent the views of the W3C Membership or staff.

final reports / licensing info

date name commitments
MusicXML Version 3.1 Licensing commitments
SMuFL 1.3 Licensing commitments
SMuFL 1.4 Licensing commitments
MusicXML 4.0 Licensing commitments

Chairs, when logged in, may publish draft and final reports. Please see report requirements.

Publish Reports

Musikmesse Meeting on 3 April 2020 – Postponed

musikmesse: 1.-4. 4. 2020, Frankfurt am Main

Updated on 4 March 2020: Today Messe Frankfurt announced that Musikmesse 2020 is postponed. No replacement dates have been announced yet. Thus we will not be having our meeting on 3 April 2020. We will provide further updates as we learn more.

We are pleased to announce that we will have a face-to-face meeting of the W3C Music Notation Community Group at the Musikmesse in Frankfurt. We look forward to this event each year as we usually have 30 music notation experts participating in the discussions.

This year’s meeting will be Friday, 3 April 2020 from 2:00 pm to 5:00 pm in the Extrakt meeting room in Hall 3, Level C. This returns to the date we have used before when Musikmesse runs from Wednesday through Saturday.

As in past years, we plan to have a 2-hour meeting followed by a 1-hour reception. We will update this post with a more detailed agenda after our co-chair meeting on 3 March.

Our proposed agenda for this meeting includes a kickoff for the MusicXML 3.2 project. This would include a discussion of scope, proposed issues, timeline, and relationship to the ongoing work in MNX-Common. We will also provide an update on the MNX-Common project, where Adrian has some exciting news in store.

Note that the COVID-19 disease may cause Musikmesse to be postponed or cancelled this year. Messe Frankfurt has posted an advisory on its web site. Musikmesse is currently scheduled to take place as planned, but things are changing fast. We will keep you posted with any updates.

Please let us know whether or not you plan to attend by filling out the Musikmesse meeting sign-up form. You may change your response after filling out the form as needed. This will help us in planning for the meeting.

Co-chair Meeting Minutes: February 18, 2020

Musikmesse meeting

We are still waiting for confirmation from the Musikmesse organisers about the meeting schedule and venue. We will continue to chase the organisers!

MNX-Common

Adrian has not yet found the time to work on the dynamics examples for the MNX-Common by Example page as discussed in the previous co-chair meeting, but will be working on this in the near future.

Adrian next plans to add tuplets to the MNX-Common by Example page. The co-chairs had a brief discussion about the necessity to support both nested tuplets and tuplets crossing barlines. Nested tuplets are accommodated by the current specification since tuplets are contained within sequences, so having multiple levels of nested tuplet does not violate the measure-sequence-tuplet hierarchy. However, tuplets crossing barlines present more of a challenge, since a tuplet element cannot, as currently specified, exist in two sequences. Partial tuplets – as used by Boulez, Adès, et al – pose a different encoding challenge.

For the time being, the co-chairs have elected to consider only complete tuplets that are fully contained within a single measure, and Adrian will develop some examples to validate the current specification.

Next meeting

The next co-chair meeting is scheduled for Tuesday 3 March 2020.

Co-chair Meeting Minutes: February 4, 2020

Musikmesse 2020

Michael has submitted an enquiry to the Musikmesse organisers about the arrangements for our planned Community Group meeting for the show but as yet there is no news. We will provide an update as soon as we get one from Messe Frankfurt.

MNX-Common

Based on a suggestion from Bob Hamblok, the MNX-Common by Example page has been updated to encode the XML tags in a way that avoids unsightly URL-encoding, which helps make the source (and therefore the diffs) more readable.

In the last co-chair meeting, we discussed the possibility of reworking the proposed elements for dynamics (currently consisting of dynamics, wedge, cresc and dim) to a single dynamics element with different child elements to describe the different kinds of instantaneous and gradually-changing dynamics. Adrian has put some time into this, but has found few concrete advantages to this approach beyond the syntactic sugar it would provide; since dynamics are already contained within a directions element they can already be grouped reasonably effectively. As such, the co-chairs agreed that we should not pursue this idea any further for the time being, and instead Adrian will focus on producing some examples based on the current specification for the MNX-Common by Example page.

We discussed expanding the allowed values for the dynamics element to include a greater variety of dynamics like sfz or fp that represent a dynamic change immediately following the attack of the note, and proposed that we might add a separator to the microsyntax so that dynamics like mf-ff or mp-p can also be encoded. Note that this would not cater for cases where different dynamics should be played on different passes through the music in a repeat structure; we briefly discussed this aspect and agreed that a higher-level concept of some kind (perhaps based on the existing time-only attribute in MusicXML, or perhaps a new element that could be used to wrap elements that should only apply on a particular pass through the music) would be necessary for this.

We also agreed that subito could be encoded by way of a new attribute for the dynamics element, and Adrian will consider how this might be done.

Next meeting

The next co-chair meeting is scheduled for Tuesday 18 February 2020.

Co-chair Meeting Minutes: January 21, 2020

NAMM Show 2020

Michael attended the NAMM Show in Anaheim, California between January 16 and January 19. Eleven people attended the W3C Music Notation Community Group dinner on the Friday evening at Thai Nakorn in Garden Grove, and a good time was had by all.

MIDI 2.0 is in the process of being ratified by the MIDI Manufacturers’ Association, and it is expected to be officially announced in the near future. Michael reports that the proposed successor to the Standard MIDI File format, currently called SM2F, could potentially include some notation representation in some way. Michael agreed to work on this and in particular to try to understand the use cases that could be covered by including notation information in a Standard MIDI File.

Music Engraving in the 21st Century Conference

Daniel attended the Music Engraving in the 21st Century conference at the Mozarteum in Salzburg, Austria on Friday 17 and Saturday 18 January. The conference programme was very interesting, with presentations spanning business and collaboration issues, technical papers (for example, on the use of blockchain as an alternative to traditional copyright, or the application of machine learning techniques to a variety of music notation and engraving problems), round-table discussions, and hands-on sessions exploring technologies and products, including MusicXML, LilyPond, Frescobaldi, and Dorico.

Frankfurt Musikmesse 2020

Michael is going to contact the organisers of Musikmesse to arrange a time and venue for our regular W3C Music Notation Community Group meeting. In descending order of preference, we are trying to organise for the afternoon of Friday 3 April, Thursday 2 April, or Wednesday 1 April. More details will be forthcoming soon.

As always, we are interested to hear from any company who would be willing to sponsor the drinks reception following the meeting. Companies who sponsor the meeting are given some time on the agenda to promote their products and services, and are featured in the publicity leading up to the event. If you are interested in sponsoring this year’s reception, please contact Michael directly.

MNX-Common

Adrian has added both a table of contents and some new sections to the MNX-Common by Example page, for key signatures and accidentals.

He has also completed work on pull request #169, concerning slurs as liaison-content, and this has now been merged into the main specification and MNX-Common by Example page, closing issue #167.

Next, Adrian is going to concentrate on fleshing out a couple more simple notations on the MNX-Common by example page, and then prepare a proposal for the encoding of dynamics for community discussion.

Next meeting

The next meeting will be on Tuesday 4 February 2020.

Co-chair Meeting Minutes: January 7, 2020

MNX-Common

Adrian reported that pull request #169 for converting slurs to liaison-content is now ready to go. The most recent changes provide two new examples on the MNX-Common by Example page for slurs on specific notes within a chord, and one for incomplete slurs. Adrian asked Michael how incomplete slurs are represented in MusicXML, and Michael replied that the current solution in MusicXML is purely graphical and doesn’t have a semantic component. Adrian will update the incomplete slurs example with this information as soon as possible and then update the pull request one more time.

Adrian will next add examples for key signatures and accidentals to the MNX-Common by Example page.

The co-chairs took a quick review through the issues in Active Review and discussed what we would like to work on next. There was a good discussion about gradual and absolute dynamics and Adrian will prepare an issue for some community discussion in the near future.

Dinner at The NAMM Show 2020

Michael has organized a dinner at NAMM for W3C Music Notation Community Group members and guests who wish to attend. The dinner will be held at Thai Nakorn in Garden Grove on Friday, January 17, at 7:30 pm. If you plan to attend, please fill out the sign-up form so we can reserve enough space.

Music Engraving in the 21st Century Conference

Daniel will be attending the new Music Engraving in the 21st Century conference in Salzburg on 17–18 January and will provide a report to the co-chairs in the next meeting.

Next meeting

The next meeting of the co-chairs is scheduled for Tuesday 21 January 2020.

Co-chair Meeting Minutes: December 17, 2019

Daniel Spreadbury was unable to attend this meeting, but Adrian Holovaty and Michael Good discussed several issues in his absence.

MNX-Common

Adrian has updated pull request 169 for slur liaison content to address the issues discussed at the previous meeting:

  1. Slurs are now associated with events rather than individual notes
  2. Inner slurs are supported with an optional way to specify individual note within the event at both the start and end of the slur
  3. Incomplete slurs are handled using the same approach as incomplete ties.

This pull request also updates the MNX by Example page so slurs are associated with events. Adrian would like to also add examples for inner slurs and incomplete slurs. He will handwrite some simple examples and ask Michael or Daniel to engrave them for the visual examples.

NAMM

Michael will organize a dinner at NAMM for W3C Music Notation Community Group members and guests who wish to attend. The dinner will be held at Thai Nakorn in Garden Grove on Friday, January 17, at 7:30 pm. If you plan to attend, please fill out the sign-up form so we can reserve enough space.

Next meeting

The next co-chair meeting is scheduled for Tuesday 7 January 2020. We wish everyone a happy holiday season and new year!

Co-chair Meeting Minutes: November 26, 2019

MNX-Common

Closing existing pull requests

Pull request #170, for making the <head> element optional, and pull request #171, specifying the approach to encoding barlines, have both been merged into the specification.

Slurs as liaison content

Pull request #169, concerning slurs as liaison content, has seen several new commits since the last meeting, and some good discussion with the community. The co-chairs discussed Adrian’s most recent proposal that slurs should be associated with the <event> element rather than the <note> element, though with the understanding that so-called “inner slurs” – where, for example, there are tied outer notes in a chord, and a slur between two notes in the middle of the tied chord must be indicated by drawing the slur directly next to those notes, rather than either above or below the whole chord – must be accommodated. The proposal for accommodating “inner slurs” is that each end of the slur may optionally refer to a note element by ID (using XML idref, which can be validated to the point that the ID is present in the document, though it cannot be validated to the point that the ID actually belongs to a note).

Furthermore, the co-chairs discussed the issue of incomplete slurs, for example when encoding a music example that either begins or ends with an incompletely specified slur (i.e. going to or coming from an unknown note). This situation is handled for ties, so the proposal is that the same technique should be extended to slurs as well.

There has also been some discussion (e.g. #167 and #169) concerning how MNX-Common can make it as straightforward as possible for consuming applications to determine which notes are under the slur, for example for the purposes of enhancing playback of slurred notes. The co-chairs discussed this and agreed that it is important for MNX-Common’s approach to encoding slurs should make the common case – where a slur starts and ends in the same voice – as straightforward as possible, but that it should not be expected to encode this directly, or to handle more difficult situations, such as a slur starting in one voice and ending in the other, where the boundary between the slur affecting one voice and the next is inherently unclear.

Ties in MNX-Common by example

Adrian has added a new Ties section to the MNX by Example page, showing how ties are specified in MNX-Common.

Dynamics

Issue #168 has been raised about the current specification for dynamics in the MNX-Common specification. The co-chairs discussed the proposal made by Peter Jonas (@shoogle) and they agree that the specification as it stands is probably too restrictive and does not reflect the richness of how dynamics are really used in CWMN, but more discussion and reflection is needed in this area. Daniel agreed to add some further comments based on the discussion in the meeting to the issue to encourage further discussion.

In-person meeting at The NAMM Show

There will be no official meeting of the W3C Music Notation Community Group meeting at the NAMM Show, but Michael will still organise a dinner for anybody who wishes to attend. Michael will share further details in due course.

Next meeting

The next co-chair meeting is scheduled for Tuesday 17 December 2019.

Co-chair Meeting Minutes: November 12, 2019

Daniel Spreadbury was unable to attend this meeting, but Adrian Holovaty and Michael Good discussed several issues in his absence.

MNX-Common

Adrian has created three new pull requests, all of which are ready for community feedback:

  • #169 implements slurs as “liaison content,” per our discussion from last meeting.
  • #170 makes the <head> tag optional.
  • #171 specifies default barline treatment — as a shortcut for the common case of “display a normal barline after each bar, except for the final bar, which should get a final barline.”

Please comment there with feedback, even if you only want to give a thumbs-up emoji to express your support.

Adrian is planning to make one further improvement to #169: He’ll add a second slur example to the “MNX-Common by Example” document, showing how slurs-over-chords would work (which is worth providing an example for, given that a slur is attached to an individual note, begging the question “which note of the chord gets the slur?”).

MusicXML

Michael has done some catchup on the GitHub issue tracker lately. There’s been some discussion in various issues, and he’s planning to review the continuing discussion.

ISMIR report

Adrian gave a quick report about various notation-related projects he saw at the ISMIR conference last week:

  • partitura is a Python library for manipulating semantic music data, currently with support for MusicXML import. (Paper here.)
  • “A diff procedure for music score files” presented an algorithm for comparing two versions of a MusicXML file. (Paper here.)
  • “Visual pattern analysis using digital sheet music” detects musical patterns in MusicXML files. (Paper here.)
  • The Romantext Format is a “Flexible and Standard Method for Representing Roman Numeral Analyses.” (Paper here.)

Next meeting

The next co-chair meeting is scheduled for Tuesday 26 November 2019.

Co-chair Meeting Minutes: October 30, 2019

MNX-Common

Following our last meeting, Adrian closed pull request #159 and opened issue #167 to cover converting slurs from using spanning elements to liaison content. He’ll now create a pull request to implement this in the spec, and seek community feedback on the pull request.

There was a wide-ranging discussion in issue #161 which were ultimately closed with no specific action required.

Jacques Menu opened issues #163 and #164, which were also ultimately closed with no specific action required.

Adrian has been engaging with the issues raised by Cecilio Salmeron in issue #160, and raised issues #166 (make the head element optional) and issues #165 (encoding policy for barlines).

The co-chairs discussed that we would like to encourage developers to include metadata, but in the spirit of keeping the format as slimmed-down and minimal as possible, it seems reasonable for the head element to be optional. Adrian will create a pull request for #166 to make the head element optional in the specification.

The co-chairs also discussed issue #165, and once again affirmed that we favour an “opt-out” approach for barlines, i.e. that normal barlines are assumed to be present unless they are explicitly encoded otherwise. Adrian will create a pull request for this issue to make this concrete in the specification.

Adrian also plans to work on a pull request for the wedge element in the near future, as discussed in previous meetings.

MusicXML 3.2

Michael has had some good discussions with the community concerning issue #295 for Roman numeral analysis. The discussion is in process and as yet Michael has not determined whether or not this will end up being in scope for MusicXML 3.2 depending on how complex it turns out to be to address the requirements in full.

SMuFL 1.4

Daniel has no update on SMuFL 1.4 this week.

In-person meetings in H1 2020

Michael has received his first enquiries about when and where in-person CG meetings are planned for 2020. As things stand, neither Daniel nor Adrian will be at the NAMM Show in Anaheim, CA in January 2020, though Michael will be there, so the co-chairs’ current thinking is that we may not have a formal meeting at NAMM in 2020, though Michael would be very happy to have individual meetings with CG members at the show.

The co-chairs still believe that an in-person meeting at Musikmesse from 1–4 April 2020 will be worthwhile, and we expect to poll the community about plans to attend in the near future.

ISMIR, November 2019

Adrian will be attending ISMIR next week in Amsterdam, and would be delighted to meet with anybody who has interest in the work of the Community Group who is attending the conference next week.

Music Engraving Conference at the Mozarteum, Salzburg, January 2020

A new conference called Music Engraving in the 21st Century will be taking place at the same time as the NAMM Show in Salzburg, Austria in January 2020. Daniel is planning to attend and Adrian may also attend. The co-chairs are interested to know whether sufficient members of the Community Group will be in attendance to warrant enquiring about holding a meeting at the conference.

Next meeting

The next co-chair meeting is scheduled for Tuesday 12 November 2019.

Co-chair Meeting Minutes: October 8, 2019

MNX-Common

Pull request #158 for octave-shifts is now ready to go. Michael and Daniel have both reviewed the latest changes to the proposal, and agreed that this pull request can be merged. This pull request has now been merged.

Pull request #159 for slurs was prepared by Adrian but after discussion the co-chairs have agreed that, per Michael’s review of the pull request, we are not going to implement slurs as spanners but instead as liaison content, and a new pull request will be forthcoming taking this approach.

Following slurs, Adrian will look at fleshing out the specification for the wedge element, which can pull from the existing MusicXML definition of that element.

Issue #161 was opened by Bob Hamblok with the intention of starting discussion about the separation of concerns in MNX. The co-chairs had a brief discussion about this issue and arrived at the consensus that in fact the answers to the questions raised by Bob in this issue are settled already, and Adrian agreed to provide a response on behalf of the co-chairs.

Issue #160 was opened by Cecilio Salmeron concerning the MNX-Common by Example page. Adrian agreed that there is some mark-up fix-up required, and the co-chairs then discussed the issues concerning barlines. They agreed to open an issue concerning the treatment of barlines in MNX-Common, with the initial proposal that systemic barlines do not need to be encoded in the semantic sense, since they are presentational, and nor do regular barlines between measure elements. MusicXML has the default that the final barline in a document would be a normal barline unless otherwise specified, but the co-chairs propose that the final barline in a document would be a final barline unless otherwise specified. Adrian will provide a response to the other points raised by Cecilio in due course.

MusicXML 3.2

Michael opened issue #294 for the proposed listen element in MusicXML 3.2, and there has been some good initial discussion. Michael will respond to the existing discussion.

Issue #295 has also been opened concerning Roman numeral analysis in the existing MusicXML specification, a little-used feature; in fact, Michael believes no developer has ever implemented this feature before. Michael will assess this issue as soon as possible to determine whether any changes in documentation or specification should be made for MusicXML 3.2.

SMuFL 1.4

Daniel has not yet had a chance to do any new work on SMuFL 1.4 but the co-chairs reviewed issue #114 (half-harmonic noteheads) and agreed that it should be in scope for version 1.4.

Next meeting

The next co-chair meeting will be on Tuesday 29 October 2019.