Feta and Bravura

In the last post I have shown what the SMuFL font layout is and how it can be used in LilyPond. In this post, we will have a closer look at the SMuFL compliant Bravura font and compare it to Feta, which is the default music font in LilyPond. Let’s look at the example from the snippets repository again:

Bravura example (click to enlarge)

Example for Bravura used with LilyPond. The first staff is done with the default font Feta, the second one with Bravura (click to enlarge).

Comparing Glyphs

When looking at the example above, you will notice that the Bravura font is very similar to Feta in many aspects. The accents and the up/down bow signs etc. are slightly narrower, the prall symbol is wider. In general, the font is a little heavier.
From the comparison above it is also noticeable that the integration into LilyPond is not finished yet. The staccato dots are shifted vertically, the accidentals and the fermata are not aligned correctly. The fact that there is no dynamic “n” (niente) in the Feta font is particularly visible. The list of open issues can also be found in the Readme.

The following examples show music glyphs from both fonts (Feta and Bravura) — mostly without proper musical context – and they are placed around the staff lines by hand. For this comparison, I am mostly interested in the choice of symbols, their look and relative size. Any flaws in positioning is neither the fault of LilyPond nor Bravura, but just mine, and should be ignored for now.

clefs

Clefs are very characteristic glyphs of a music font. The first line shows default LilyPond clefs and octavations, followed by two tweaked ones after the bar line. Bravura has precombined octavated clefs and shows some interesting alternatives to the common ones (click to enlarge).

The treble clef is always a characteristic feature of a music notation software application and its default font. The Bravura clef is wider than the Feta clef and it offers dedicated ligatures for clef modifiers that are used to indicate octavations. I still prefer the classical octavations (first four clefs in the second line) over the alternatives (next two clefs). LilyPond uses an independent text font object for the octavation numbers. The default positions of clef modifiers are being revised as issue 3186. In contrast to LilyPond’s defaults, the bold italic font of Bravura’s modifiers matches the clef line width. In addition, I like the clef modifier to be printed between the staff lines in appropriate cases as shown for the bass_15 clef. The last two clefs in the first staff line (after the bar line) show that a similar result is also possible with LilyPond and the Feta font, of course.
The “angles” in the French style octavated clef (number 7 in the second line) do not quite match the round and well designed look of the rest of the glyph. While this clef is relatively rare, the only time I saw it, it had the “angles” centered around the d” line and not around the c” space. LilyPond recently added two of the three clef variants which are missing in the first staff.

The notation elements for Gregorian music are similar to the corresponding Feta glyphs. Some look a bit nicer to me (e.g. the porrectus, second neume). The ancient music notation did not get the same attention as other topics in the history of LilyPond. The sharp edges of the porrectus and the inconsistent “stem” width of the cephalicus (fourth neume) show that. Here is a selection of neumes:

gregorian

Neumes engraved with LilyPond on the left and using Bravura ligatures on the right. For the interested reader: There is at least one neume that I could not exactly reproduce in LilyPond. Can you spot it? (click to enlarge)

Comparing Lines

As the Bravura font is quite bold (even more than Feta), the thickness of staff lines, slurs and beams had to be adapted to match the style. This is automatically done by the \bravuraOn command.

Missing Glyphs in Feta

Bravura (as shown in the documentation) covers a huge range of symbols for several reasons:
1. While Feta grew around the needs and use cases of the community, the SMuFL layout tries to cover any glyph that could ever be used.
2. It contains combinations of other glyphs.
3. Many glyphs in the SMuFL layout are intended for usage in a text environment and the layout specification already indicates that scoring programs might want to or should use their own primitives rather than the predefined combined glyphs. This is particularly true for line symbols like staff lines or bar lines.
4. In addition, LilyPond easily allows to rotate glyphs freely and to modify their position, size, aspect ratio etc. and does not need extra glyphs for that.
5. The user can combine and transform glyphs in LilyPond’s \markup mode in LilyPond by the use of \combine, \scale, \rotate, etc. and he can make use of \postcript or \path to insert arbitrary shapes just as easy as usual text.

In this respect, LilyPond isn’t lacking features as one might think when looking at the multitude of glyphs in SMuFL.

There are, however, useful and good looking symbols which are – to my knowledge – not present in the Feta font, and my goal is to find out what we can learn from the Bravura font:

  1. Numbers and a colon for tuplets and numbers for clef octavation. As the purpose of numbers can be very different in scores, multiple definitions of digits can be justified. On the other hand, LilyPond encourages consistency as it uses the same numbers at different places. LilyPond uses dedicated glyphs for the time signature, fingerings, volta brackets and rest counts. Bar numbers, ottava marks, rehearsal marks, fret numbers in tabulature, tuplet numbers use the standard text font by default. Italic versions of the Feta music numbers (e.g. for tuplets or ottava brackets) are not available.
    Bravura contains dedicated number glyphs for time signatures, clef octavation, tuplets, figured bass and function theory.
    By the way, Bravura also contains special accidentals for bass figures. The Bass figure numbers are significantly smaller compared to LilyPond and they are printed with increased font sizes in the following score while the “7” was reduced in size.

    numbers

    There are different number styles in Bravura. Tuplet numbers and colons are particularly nice (click to enlarge).

  2. Analysis glyphs. Apropos music theory: Bravura comes with symbols for Haupt- and Nebenstimme and for subdominant, dominant, double dominant seventh, etc. While it might be an advantage that such symbols follow the selected text font in LilyPond, composing the letters in a staff-size independent way is tedious. On the other hand, LilyPond is very flexible and text scripts can contain more than text: fret diagrams, harp pedals or — like in this picture — user defined postscript paths for the “-stimme” symbols.

    theory

    Bravura ships with letter-like symbols for music theory, that generally have to be created by the user in LilyPond (click to enlarge).

  3. Clusters. Cluster notation (\makeCluster) is available in LilyPond. But it is limited to clusters spanning multiple chords and does not follow the style of the Cowell cluster notation. In contrast to that, Bravura contains all necessary symbols to print clusters properly. Top and bottom parts of different notehead styles and durations can be combined into all kinds of clusters.

    cluster

    Cluster notation is well supported in Bravura (click to enlarge).

  4. Other symbols. The piano pedal mark is nearly identical to the Feta one. I haven’t seen the sostenuto pedal symbol in real scores, but I like the consistent look compared to the “Ped.” symbol. LilyPond uses the default font for this as well as for the ottava mark. For the latter, I would prefer it to be with a superscript “va” and printed in bold, however, like the precombined Bravura glyph does. The “Schleifer” ornament (which was requested multiple times on the mailing-list) is present as well as other very nicely shaped but perhaps a bit wide ornaments.

    misc

    A comparison of trills, pedal marks and further ornaments in Feta and Bravura. Some of the Bravura ornaments shown here are stylistic alternatives and not the default ones (click to enlarge).

  5. SMuFL contains a large variety of vibrato wiggles and other wavy lines to indicate both the freqency and the amplitude. Those can be combined to various spanners. Even though I haven’t seen it in real-life scores, I like the vibrato sign which was already asked for on the lilypond-user mailing list, too. While symbols like these could be handy in plain LilyPond as well, the postscript functionality opens up a large number of possibilities.

    spanners

    Bravura spanners displaying a varying velocity and volume of trills and vibrato. Additional line spanners with different shapes are available (click to enlarge).

Missing Glyphs in SMuFL

On the other hand, there are also glyphs in LilyPond which I could not find in the SMuFL specifications: Everything related to the Kievian square notation.

kiev

Symbols for Kievian style notation built-in in LilyPond that are not available in Bravura (click to enlarge).

Summary

Bravura is a nice and bold music font and it can now be used in LilyPond. It is very carefully designed and astonishingly similar to the Feta font. In my opinion, Bravura is the first commercial music font which is almost up to the standard of Feta.

Feta is created by Metafont and comes with different font shapes adapted to the font size. This results in a consistent and even look that is difficult to achieve otherwise.

LilyPond already covers the range of symbols for common music notation as well as ancient music. Using primitives for many glyphs listed in SMuFL makes LilyPond very versatile and much easier to tweak. Furthermore, symbols can be composed of simpler ones like the function theory glyphs.

This article explicitly picked those symbols from which we might learn something. A few rare glyphs are indeed missing in Feta: italic (time-signature-like) music numbers, a dynamic “n” (niente), a fancy Sost symbol and the cluster glyphs. It is good to know that these glyphs from Bravura can now be included in LilyPond scores.

13 thoughts on “Feta and Bravura

  1. Phil H

    You mention a few requests for new glyphs for the Feta font, but there don’t appear to be tracker issues for these. Could I suggest that if there are suggestions for improved glyphs, these are sent to bug-lilypond (preferably with examples that illustrate what’s being requested). That way, there’s a chance they’ll be implemented.

    Reply
  2. Pingback: SMuFL 0.85 and Bravura 0.85 released | SMuFL

  3. Simon

    I am highly interested in using the extended set of bass figures in bravura. Could you publish the code of the example shown above? Is it possible to use /figuremode with bravura? Thank you!!

    Reply
    1. Joram Berger Post author

      You will be disappointed: It is hand-written markup as I wrote in the third paragraph. Please find the code for the bass figures and tuplets below. To my knowledge it is currently not possible to use \figuremode with bravura. I hope that I will have time by the end of the year, but hopefully others are faster in implementing this.

      \version "2.18.0"
      \include "custom-music-fonts/smufl/definitions.ily"
      
      \score {
        \new Staff \with { \bravuraOn } \relative c'' {
          \set Staff.instrumentName = "Bravura"
          \override TupletNumber #'stencil = ##f
          \time 3/4
          a^\markup \fontsize #-2 \smuflglyph #"functionSeven"
          _\markup \fontsize #4 \halign #-1
          \override #'(baseline-skip . 1.75)
          \column {
            \smuflglyph #"figbass6"
            \smuflglyph #"figbass3"
          }
      
          \tuplet 3/2 {
            a8
            _\markup \fontsize #4 \halign #-1
            \override #'(baseline-skip . 1.75)
            \column {
              \smuflglyph #"figbass6Raised"
              \smuflglyph #"figbass5"
            }
            a^\markup \smaller \halign #-2 \smuflglyph #"tuplet3"
            a
          }
          \tuplet 3/2 {
            a8
            _\markup \fontsize #4 \halign #-1
            \override #'(baseline-skip . 1.75) 
            \column {
              \smuflglyph #"figbass4Raised"
              \smuflglyph #"figbass5Raised2"
            }
            a^\markup \halign #-0.8 \smaller \concat {
              \smuflglyph #"tuplet3"
              \smuflglyph #"tupletColon"
              \smuflglyph #"tuplet2"
            }
            a
          }
        }
      }
      Reply
      1. Joram Berger Post author

        I just wanted to make it clear: There is the easy use of smufl fonts like described in SMuFL fonts in LilyPond which works with a simple \bravuraOn statement as described. But the SMuFL font contains more than the currently implemented symbols. Those are compared here.

        Reply
        1. Simon

          Thank you for posting the code. I found the following way to use bravura with \figuremode (probably a bit nonorthodox):

          \include "custom-music-fonts/smufl/definitions.ily"

          fuenfp = \markup \fontsize #4 \smuflglyph #"figbass5Raised1"
          zweip = \markup \fontsize #4 \smuflglyph #"figbass2Raised"
          vierp = \markup \fontsize #4 \smuflglyph #"figbass4Raised"
          sechsp = \markup \fontsize #4 \smuflglyph #"figbass6Raised"

          <<
          \new Voice \with \bravuraOn { \clef bass c c c c }
          \new FiguredBass {
          \figuremode {
          4
          }
          }
          >>

          Reply
  4. Pingback: Using special characters from SMuFL fonts | Scores of Beauty

  5. Nathan Ho

    Just as a sidenote: in response to this post, SMuFL now supports Kievan square notation since 0.85.

    Reply
  6. Kale

    I really like the way that Bravura “bleeds”, very noticable in the trill, sharp, and cut-time symbols. For all the great layout of lilypond, the squareness of Feta (so many perfect corners!) can make it feel computer-generated and printed rather than pressed.

    For what its worth, I don’t know a ton about Feta and am guessing that many of those square lines are the result of lilypond drawing elements rather than Feta having a bunch of square edges.

    Reply
    1. Abraham Lee

      I’m glad to finally hear that I’m not the only one who likes that “bleeding” style. Bravura will be available real soon, my friend, in a way like never before. If you like Bravura, you may also be interested in Cadence (see my website for details). We’re in the works for making it a lot easier to use other music fonts.

      And just so you know, it IS Feta that has “a bunch of square edges”, though I know the original designers took great care to consider what should and shouldn’t be rounded and squared. Compared to most other music fonts out there, it’s hard to beat for clarity, consistency, and a pretty good “engraved” look, even if there are some aspects they chose not to incorporate.

      Reply
  7. Dimitris

    Hi,
    Great post! I really like the way Lilypond handles extra fonts.
    Could you please provide me the code for those vibrato and trill spanners as shown in No 5?

    Best Regards,
    Dimitris

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *