Git Product home page Git Product logo

smufl's Introduction

Standard Music Font Layout (SMuFL)

SMuFL is a specification that provides a standard way of mapping the thousands of musical symbols required by conventional music notation into the Private Use Area in Unicode’s Basic Multilingual Plane for a single (format-independent) font.

The goal of SMuFL is to establish a new standard glyph mapping for musical symbols that is optimised for modern font formats and that can be adopted by a variety of software vendors and font designers, for the benefit of all users of music notation software.

This repository is maintained by the W3C Music Notation Community Group, and holds the latest release of the Standard Music Font Layout (SMuFL) specification. Please consult that page for further details. The group is chaired by Michael Good, Adrian Holovaty, and Daniel Spreadbury.

To view (HTML) files not as sources but properly rendered in the browser, please use the separate github view.

smufl's People

Contributors

adrianholovaty avatar bentimms avatar composerjk avatar dontcallmedom avatar dspreadbury avatar erikronstrom avatar iherman avatar mirabilos avatar rettinghaus avatar ryceg avatar stigjb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

smufl's Issues

Add neutral raised/lowered comma accidentals to Extended Helmholtz-Ellis

A similar glyph to that used for the Ferneyhough quarter tone up and down is needed for Just Intonation symbols, to modify notes that have no other accidentals. A simple arrow up, arrow down, and extensions (two arrows up, down) as in the existing Extended H-E would be fine. Perhaps the base of the arrow should have a 'leg' or some other graphical element that would help in spacing such accidentals.

Define cut-outs for notehead characters

SMuFL provides a mechanism to define cut-outs from all four corners of the bounding rectangles of various ranges of characters, in particular for accidentals.

It would also be useful to extend this mechanism to characters in the various noteheads ranges, because oval noteheads tend to be rotated in such a way that the tight bounding rectangle that describes them has quite large empty areas at the top-left (NW) and bottom-right (SE) corners.

As such, the proposal is that SMuFL fonts should optionally be able to define cutOutNW and cutOutSE anchors for characters in the noteheads range, for those consuming applications that can make use of them.

Bravura Text file sizes 4x bigger than Bravura

The .otf, .eot, .woff, and especially .svg files for Bravura Text are about 4x bigger than those generated for Bravura. I'm not sure if there is an optimization being run on Bravura that is not being run on Bravura Text, but the file size differences make a big difference when downloading from the net. Thanks!

(Not sure if this is an actual SMuFL issue, but since there's no other "Text" font yet, probably still belongs here.)

Consider how to handle "on-staff" and "off-staff" use cases for fonts for text-based applications

At the moment, Bravura Text is optimised for "on-staff" use, i.e. it uses a staff height of 0.8 em, designed to roughly align with the caps height of a typical text font, and all of the symbols that are typically drawn on the stave (noteheads, stems, flags, accidentals, etc.) are all scaled accordingly. They are also drawn as if on the middle staff line, and are then raised and lowered using ligatures with the staffPosRaise/Lower control characters.

As Dave Keenan points out, this is less than useful if you just want to show a specific symbol in a specific place scaled accordingly to the surrounding text: you have not only to use a ligature to move the symbol to the baseline, but also to change the point size. This is all a bit harder than it should be.

To resolve this, perhaps we need two separate text-flavoured versions of Bravura, one with all of the fancy positioning stuff, and one with all of the symbols scaled such that they are the right size at 0.8 em.

Add "morsen" character to tremolos range

This character is used in many Stockhausen scores to denote "morsen" (irregular tremolo).
The thick beam on the left aligns on the stem in the same way as an ordinary tremolo beam (tremolo 1).
image

Change alignment of arrow/arrowhead range to be centred around the origin

Add left and right parentheses and brackets for hairpins to Dynamics range

In some editions, editorial hairpins are denoted by way of brackets, either curved parentheses or square brackets. SMuFL's dynamics range should include suitable brackets for hairpins. These will need to be aligned vertically around the baseline, i.e. extending equally above and below, in the same way as e.g. the niente circle (dynamicNienteForHairpin).

We don't need to add brackets (either curved or square) for wrapping the standard p/f etc. dynamics, as these will typically be mixed with characters from a regular text font, and should generally therefore use the brackets from that text font for overall consistency.

Add reversed common, cut common time signature glyphs, and slashed time signature 3, to 'Time signature supplement' range

Requested by Axel Geertinger from the Danish Centre for Music Publication, The Royal Library, Copenhagen.

"The mirror-inverted common and cut time symbols, and the 2 and 3 with a vertical stroke as shown below. Possibly also the cut time symbol with two vertical strokes (first symbol in the third row in Donington’s table below – the double stroke is hard to see in this terrible scan, though)."

donington-the-interpretation-of-early-music-1977

houle-meter-in-musik

Add two or three extra wide wavy line characters to the multi-segment lines section

The current wiggleWavyWide can still not produce very wide lines as used for example in harp arpeggios. The November2 SMuFl font already has an extra wide wavy line character, but it still is not sufficient for creating typical glissando lines as shown in the screenshot.
Increasing the font size is not a workaround in this case as also the line thickness increases. So I recommend adding 2 or 3 new ultra wide wavy line segments.
This suggestion is based on a recent discussion on the Facebook group Music Engraving Tips.
ultrawidewavylines

Possible stylistic alternates in Emmentaler that could be added to Bravura

This issue lists those glyphs that provide different visual appearances for glyphs that are encoded in SMuFL, that could be added as optional stylistic alternates.

See this Excel spreadsheet for one-to-one mappings of Emmentaler glyphs to the SMuFL glyphs for which they could be added as stylistic alternates.

Mensural notation

In Emmentaler, it appears that so-called "neomensural" style roughly conforms to white mensural notation, "mensural" to void mensural notation, "semimensural" to black and void mensural notation, and "blackmensural" to black mensural notation. It's not easy to unpick which symbols are used in which contexts purely from examination of the examples in the LilyPond documentation or the glyph names. However, the following stylistic alternates could be added:

  • rests.M3mensural (M3 = -3, or maxima duration) through rests.4mensural (4 = 32nd duration) mimic a handwritten appearance and could be stylistic alternates for SMuFL glyphs with prefix mensuralRests...
  • flags.mensural... could be added as stylistic alternates for the mensuralCombStem... glyphs, but there is complication here (as discussed in #207), because there are different flags for the same duration based on staff position, and it's not clear what source was used for the design of these flags.
  • timesig.mensural... are in a more ornate and presumably ancient style, and could be added as stylistic alternates for the range of mensuralProlation... SMuFL glyphs
  • All of the mensural noteheads in Emmentaler have variants where the letter r is inserted into their names, immediately following the letter denoting whether the stem direction is up or down; all of these glyphs are bolder versions of the equivalent glyphs. It's not clear what they are for, but they could be added as stylistic alternates of e.g. mensuralWhiteMaxima and their ilk.

Plainchant notation

In Emmentaler, glyphs called "vaticana" appear to conform to the modern kind of solesmes chant notation, and map onto the appearance used in Bravura (modelled on Caeciliana); "hufnagel" is Hufnagelschrift; "medicaea" is presumably modelled on the forms in Editio medicaea (1614); "petrucci" is presumably modelled on the movable type editions of Petrucci.

  • clefs.medicaea.do and clefs.medicaea.fa could be stylistic alternates for chantCclef and chantFclef respectively
  • clefs.hufnagel.do.fa is a clef consisting of both a C clef and an F clef, but is only provided in Emmentaler for Hufnagelschrift; to add this in SMuFL we would need a ligated form of the "vaticana" (solesmes) chant C and F clefs, which isn't present in Emmentaler (we can only have ligatures of recommended glyphs, not optional ones, which is where Hufnagel clefs are found in SMuFL)
  • custodes.hufnagel..., custodes.mensural... and custodes.medicaea... could be stylistic alternates for chantCustosStemUpPos... and chantCustosStemDownPos... SMuFL glyphs
  • noteheads.ssolesmes.auct.asc and noteheads.ssolesmes.auct.desc could be stylistic alternates for chantAuctumAsc and chantAuctumDesc respectively
    ** noteheads.smedicaea... and noteheads.shufnagel... are glyphs that could be stylistic alternates for a variety of chant... SMuFL glyphs

Add piano keyboard fingering charts

Requested by Alex Plötz:

From this forum post (in combination with the recent addition of fingering charts to SMuFL) I got the idea to include a basic piano key diagram, as is often found in beginner's teaching materials and also for "chord diagrams" in commercial materials for electronic keyboards aimed at the amateur market. It could consist of two basic glyphs for the two parts of the piano octave, and some glyphs of appropriately positioned filled circles to indicate keys to press. Let me know if this is something that you would consider and I will send you a mock-up."

Add barre/half-barre symbols to 'Guitar' range

Requested by Robin Walker:

"In SMuFL, there do not seem to be any symbols for the "full barré" and "half-barré" (Gould page 376). One could argue that the letter capital C might do nicely, but that would exclude the possibility of some stylistic differentiation between a textual capital C and a barré symbol. Also, one of the possible symbols for a half-barré is a C with a vertical stroke, which is not easily available by other means, and one would want the C and the half-barré stroked C to have the same style: so if SMuFL were to provide the stroked C it ought also to provide the C in the same style.

While on the topic of half-barré, a correspondent recently pointed out that the notation ½C should preferably use a half symbol (½) where the numerator and denominator are vertically above each other, with a horizontal separator, rather than offset with a sloping separator. I've heard musicians say the same thing in other contexts as well, such as when fractions are used in time signatures. Maybe SMuFL should encourage SMuFL font designers to include those fraction forms as stylistic variations."

Increase the repertoire of quasi-random squiggly lines

Requested by Alexander Plötz:

The "Quasi-random squiggles" are a very nice addition. However, one will never achieve the impression of a longer random line as long as one has to build it up from only four unique segments, due to the obvious repetitions (I think this holds true even if the upside-down and retrograde versions are used as well). And there is another reason why composite lines from those four glyphs will not look very convincing: such a line would return to the "middle" in regular intervals, since the glyphs are all of the same length. My suggestion would be to have at least three different sets of lengths (probably rather shorter than longer than the current glyphs), with each set consisting of about ten to twenty unique squiggles. An additional thought: if some of those glyphs would not start and end at the same height, but one or more spaces above or below, one could use something like the Combining Staff Positions system to build lines with much more flexibility."

Add byzantine music symbols to SMuFL

Could we add byzantine music symbols to SMuFL?
This is an example of byzantine fonts used to write a song : http://stanthonysmonastery.org/music/ByzMusicFonts.html
I've started working on investigating how these symbols translate into western notation, and have compiled a set of rules that are generally used : http://byzantinenotation.wikia.com
From what I found out all symbols have a precise duration they take to be interpreted. The way they are interpreted usually differs depending on who is doing the translation. One symbol could be a quarter note, or for someone else 2 eighths : http://stanthonysmonastery.org/music/Notation.htm

Add colon and hyphen separator glyphs for combined dynamics (e.g. f-p or mf:pp) to Dynamics range

For so-called combined dynamics, i.e. where one dynamic is followed immediately by another, as in fp or sfpp, for some combinations editors use a separator of some description, typically a colon or a hyphen, to help disambiguate the point at which the first dynamic stops and the second begins.

The Dynamics range should contain suitable colon and hyphen characters to support this convention.

Update recommendations for font-specific metadata locations on Linux to follow XDG Base Directory Specification

Reported by @JanClaeys:

Font-specific metadata locations for linux (as defined in font-metadata-locations.md) should follow the XDG Base Directory Specification.

Specifically, system-wide font metadata files should be searched in $XDG_DATA_DIRS/SMuFL/Fonts/<fontname>/<fontname>.json (which can be multiple locations), while local metadata should be in $XDG_DATA_HOME/SMuFL/Fonts/<fontname>/<fontname>.json.

See the XDG Base Directory Specification for more info.

(Also, I haven't read the whole SMuFL specification, so their might be other places than font-metadata-locations.md where this applies.)

Convert final SMuFL 1.3 release to W3C FSA License

SMuFL is currently licensed under the BSD license. Following the processes of W3C Community Groups, draft versions of the SMuFL specification, metadata, and other related documents will be released under the W3C Community Contributor License Agreement (CLA), tracked under issue #37.

For the final release, this license will be updated to the W3C Community Final Specification Agreement (FSA). The updates will be applied to the final specification documents, metadata, and other deliverables.

The FSA Deed is available at:

https://www.w3.org/community/about/agreements/fsa-deed/

The FSA agreement itself is at:

https://www.w3.org/community/about/agreements/final/

Convert SMuFL 1.2 drafts to W3C CLA license

SMuFL is currently licensed under the BSD license. Following the processes of W3C Community Groups, draft versions of the SMuFL specification documents should be released under the W3C Community Contributor License Agreement (CLA). The CLA Deed with language for the specification is at:

https://www.w3.org/community/about/agreements/cla-deed/

The CLA agreement itself is at:

https://www.w3.org/community/about/agreements/cla/

For the final release, this then needs to be converted to the W3C Community Final Specification Agreement (FSA), tracked separately in issue #38.

Add Stockhausen accidentals

Accidentals seem to be organised in pages related to particular contexts, regardless of duplicate glyphs. Here are the ones Stockhausen used. Not sure if/how you want to organise these...
image
Left to right, these are:

  1. raised
  2. lowered
  3. raised flat
  4. lowered flat
  5. raised natural
  6. lowered natural
  7. raised sharp
  8. lowered sharp
  9. quarter sharp
  10. quarter flat
  11. three quarters sharp

Add new "soft accent" character to 'Articulations' range

Originally requested by Kentaro Sato, and supported by other community members, including Alex Plötz.

This picture excerpted from the piano reduction of Lortzing's Zar und Zimmermann shows the symbol in question:

soft-accent

It also appears in the violin 1 and violin 2 parts of Brahms's fourth symphony, bars 9-12:

brahms-sym4-vlns-bars7-13

It's debatable whether this is a specific kind of messa di voce dynamic marking or more genuinely an articulation of some kind, but since it is relatively widely used it warrants inclusion. Its form is essentially a reversed accent next to a normal accent, designed for centering above the note or chord on which the "soft accent" should be played.

Kentaro Sato also requests versions combined with staccato, tenuto, and staccato-tenuto, though no sources for their use in published music have yet been provided.

Add symbol for three-quarters flat often used in Arabic notation

Requested by Karim Ratib (@infojunkie):

"I'm working on bringing Arabic and Turkish notation to a number of open source projects. I did some research on the availability of Arabic and Turkish glyphs in SMuFL, and I found them all with one
exception: the Arabic 3/4 flat accidental.

"You can see this accidental here and I am also linking to
sample pages from a primary music source showing usage of this accidental:

  • all accidentals used in the book including 3/4 flat (3rd entry in table)
  • a sample page of enharmonics showing Qarar Nim Hisar as A 3/4 flat (middle column top row)
  • a transposed scale of maqam Huzzam to AjamUshayran with 3/4 flat in key signature (middle row)

The book's bibliographical reference is:

ʿAbbās (al-), Ḥabīb Ẓāhir, et حبيب ظاهر Ḥabīb Dhāhir العباس. نظرياتالموسيقى العربية Nadhariyyāt al-Mūsīqā al-ʿArabiyya. Vol. Theorie Musique Arabe. (Baghdad – Irak) بغداد – العراق: وزارة الثقافةوالٳعلام، دائرة الفنون الموسيقية، معهد الدراسات النغمية العراقى (Wizārat a-th-Thaqāfa wa-l Iʿlām, Dāʾirat al-Funūn al-Mūsīqiyya,
Maʿhad a-d-Dirāsāt a-n-Naghmiyya al-ʿIrāqiyy), 1986.

I am therefore submitting a request to add this symbol to the SMuFL spec. I also suggest to create a new accidentals section that groups all Arabic accidentals, akin to the Turkish section and others."

Add "Con ped." and "Senza ped." symbols to 'Keyboard techniques' range

Requested by Alexander Plötz:

"In my apparently never-ending crusade to reinvent piano pedaling convention, I'd like to make a suggestion for two new stylized symbols for "con pedale" and "senza Pedale" (see the attachments for my utterly crude mock-ups, which, typographically, are in no way what I have in mind; but since my go-to font guy is too busy at the moment, I had to go full MS Paint again). In answer to your legitimate question of "Huh?!": the need arose from the request of a composer/pianist colleague of mine, who prefers in his works a general "con pedale" instead of the usual highly detailed pedaling instructions often found in contemporary piano music. However, he also switches very frequently between such "con pedale" sections and sections without any use of the pedals, often several times on a single system. In that context the old convention of stating general pedal instructions in plain text becomes problematic, since unstylized text tends to be read as much more generalized indications (which is in fact how the conventional use of "con pedale" works), while increasing the size for those indications (to make them more conspicuous) is not only typographically questionable, but also comes with new problems in the often cramped conditions of sophisticated piano music. The proposed solution would allow to elevate, if needed, "con pedale" and "senza pedale" from the "secondary" plain text indication to the more direct "primary" level of musical symbols, thus closing a gap in contemporary piano notation."

image

image

Add Stockhausen click characters

These characters were used by Stockhausen as his standard symbols for labial (=tongue) click, finger click and both simultaneously.
They are usually positioned above a headless stem, like an accent, but are sometimes used as noteheads. The stem always aligns with the left edge of the central vertical. I don't know which category these characters belong to.
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.