X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Ftime-signature-settings.scm;h=2649092593cf4348ac4484f4c70fc8e7338a80a5;hb=8659a99f233f5c4684292728e7ad4206669b35b0;hp=9773f714a6c93bb7e221a2a586628896d52d8ae6;hpb=19938f57d5f3e34fe25be79108688fe47ad59a66;p=lilypond.git diff --git a/scm/time-signature-settings.scm b/scm/time-signature-settings.scm index 9773f714a6..2649092593 100644 --- a/scm/time-signature-settings.scm +++ b/scm/time-signature-settings.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 2009--2014 Carl Sorensen +;;;; Copyright (C) 2009--2015 Carl Sorensen ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -363,6 +363,36 @@ a fresh copy of the list-head is made." " (interpret-markup layout props (format-compound-time time-sig))) +(add-simple-time-signature-style 'numbered make-compound-meter-markup) + +(add-simple-time-signature-style 'single-digit + (lambda (fraction) (make-compound-meter-markup (car fraction)))) + +;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +;;; Formatting of symbolic time signatures + +(define-public (make-glyph-time-signature-markup style fraction) + "Make markup for a symbolic time signature. If the music font does not have a glyph for the requested style and fraction, issue a warning and make a numbered time signature instead." + (make-first-visible-markup + (list (make-musicglyph-markup (string-append + "timesig." + (symbol->string style) + (number->string (car fraction)) + (number->string (cdr fraction)))) + (make-compound-meter-markup fraction)))) + +(define-public (make-c-time-signature-markup fraction) + "Make markup for the `C' time signature style." + (let ((n (car fraction)) + (d (cdr fraction))) + ; check specific fractions to avoid warnings when no glyph exists + (if (or (and (= n 2) (= d 2)) + (and (= n 4) (= d 4))) + (make-glyph-time-signature-markup 'C fraction) + (make-compound-meter-markup fraction)))) + +(add-simple-time-signature-style 'C make-c-time-signature-markup) +(add-simple-time-signature-style 'default make-c-time-signature-markup) ;;;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;;; Measure length calculation of (possibly complex) compound time signatures