diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-09 20:08:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-09 20:08:48 +0000 |
commit | bde13253b2a25dcf8697842b3b76e7e6f2520aa2 (patch) | |
tree | a7a31004dbb7492a1469734ed51cfd4fe200c67a | |
parent | f587780334435f61739861314435fa1cf4f7be6c (diff) |
musicography (9sep23)
git-svn-id: svn://tug.org/texlive/trunk@68220 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/doc/latex/musicography/musicography.pdf | bin | 350188 -> 408052 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/musicography/musicography.tex | 194 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/musicography/musicography.sty | 325 |
3 files changed, 402 insertions, 117 deletions
diff --git a/Master/texmf-dist/doc/latex/musicography/musicography.pdf b/Master/texmf-dist/doc/latex/musicography/musicography.pdf Binary files differindex 59f48171c20..7a919d5b124 100644 --- a/Master/texmf-dist/doc/latex/musicography/musicography.pdf +++ b/Master/texmf-dist/doc/latex/musicography/musicography.pdf diff --git a/Master/texmf-dist/doc/latex/musicography/musicography.tex b/Master/texmf-dist/doc/latex/musicography/musicography.tex index ce0777b3b78..700770112b6 100644 --- a/Master/texmf-dist/doc/latex/musicography/musicography.tex +++ b/Master/texmf-dist/doc/latex/musicography/musicography.tex @@ -1,17 +1,23 @@ \documentclass{article} -\usepackage{lmodern} \usepackage[T1]{fontenc} -\usepackage[utf8]{inputenc} +\usepackage{lmodern} \usepackage{geometry} \usepackage{semantic-markup} -\usepackage{musicography} +\usepackage[bigger]{musicography} \usepackage{fancyvrb} \frenchspacing +\setcounter{secnumdepth}{1} -\newenvironment{codetable} -{\begin{quote}\begin{tabular}{lll}} -{\end{tabular}\end{quote}} +\NewDocumentEnvironment{codetable}{} +{ + \begin{quote} + \begin{tabular}{p{0.3\textwidth} p{0.4\textwidth} l} +} +{ + \end{tabular} + \end{quote} +} \usepackage[ pdftitle={The musicography Package: Symbols for Music Writing}, @@ -26,7 +32,7 @@ {\nolinkurl{andrewacashner@gmail.com}}% }% } -\date{January 29, 2020} +\date{September 8, 2023} \begin{document} \maketitle @@ -45,7 +51,8 @@ automatic formatting of figured bass. This package builds on the approach used in the \code{harmony} package, where the symbols are taken from the MusiXTeX fonts. But it provides a larger range of symbols and a more flexible, user-friendly -interface written using \code{xparse}. +interface written using the new interface introduced in \code{xparse} (now +built in to \LaTeX). The package is meant to work hand-in-hand with my \code{semantic-markup} package, and overrides some of its music-symbol commands with better alternatives. @@ -60,18 +67,41 @@ If you are also using this author's \code{semantic-markup} package, the other package. The \code{bigger} option provides larger font sizes that match better with -certain fonts. +certain fonts (tested with 12-point \code{ebgaramond}). -The package now (2019) provides full support for figured-bass notation using the -\verb|\musFig| command. +\section{Fonts} -The \verb|\musNumFont| command allows you to change the font of the numerals -used. -For example, if using the \code{ebgaramond} font package, it looks better if you -do this: -\begin{quote} - \verb|\renewcommand{\musNumFont}[1]{\liningnums{#1}}|. -\end{quote} +The package requires the MusiX\TeX{} fonts, which are installed by default in +\TeX{}Live. +In case there is anyone else using the obscure \verb|\meterCZ| command (in +which case, send me a note!) it now requires the EB Garamond font, also +installed in \TeX{}Live. + +Most of the font commands can be customized by redefining one of the following +commands: +\begin{itemize} + \item \verb|\musAccidentalFont|: The size of accidentals is defined as + larger relative to the other symbols. + + \item \verb|\musNumFont|: This command is used in typesetting time + signatures and meters. By default such numbers are boldfaced, which + looks better in most fonts. Redefine this command to adjust the + appearance of the numbers, for example by using lining numerals. + Recommended with \code{ebgaramond} or \code{libertine}: + \begin{quote} + \verb|\RenewDocumentCommand{\musNumFont}{\liningnums}| + \end{quote} + The command is employed in a way that both font switches and commands + with arguments will work (e.g., \verb|\bfseries\liningnums|), but take + care when combining multiple elements. + + \item \verb|\musFigSize| and \verb|\musFigFont|: These commands are used + in typesetting figured bass. By default \verb|\musFigSize| sets a + smaller size for both numerals and accidentals. The command + \verb|\musFigFont| is empty by default but it would be a good idea to + make sure the treatment of numerals matches \verb|\musNumFont| if, for + example, you are using lining numerals. +\end{itemize} \section{Symbols and Commands} @@ -88,8 +118,8 @@ do this: \subsection{Notes of Different Rhythmic Values} -Commands are available using modern (United States) note names; in several cases -there are also aliases for older note names. +Commands are available using modern (United States) note names; in several +cases there are also aliases for older note names. \begin{codetable} Whole note (semibreve) & \verb|\musWhole| or \verb|\musSemibreve| & @@ -114,6 +144,12 @@ command. For example: \musThirtySecondDotted\\ \end{codetable} +\subsection{Other Symbols} + +\begin{codetable} + \emph{Segno} repeat marker & \verb|\musSegno| & \musSegno \\ +\end{codetable} + \subsection{Meter Signatures} \begin{codetable} @@ -129,73 +165,119 @@ command. For example: For other time signatures, use \verb|\musMeter{}{}|; the two arguments are the numerator and denominator of the fraction, respectively. +By default this command applies the \verb|\musNumFont| command to its +arguments; in a pinch (such as for testing) you can supply an alternate font +command as an optional first argument, which will be used instead of +\verb|\musNumFont|. +In practical use it would be better and more consistent to redefine +\verb|\musNumFont| as described above. + + \subsection{Figured Bass} For figured-bass notation, use \verb|\musFig{}|. -The command, as of May 2019 now re-implemented using the \code{stackengine} -package, takes a single argument which may contain as many space-separated -elements as you like. -(The \verb|\musFig| command is implemented with \verb|\musStack{}|, which is -also used to for \verb|\musMeter|.) +The command takes a single argument which may contain as many space-separated +elements as you like (just like \verb|\Shortstack| from the \code{stackengine} +package, which it uses internally). -The elements in the argument will be stacked vertically and left-aligned. +The elements in the argument will be stacked vertically and right-aligned (to +allow for accidentals preceding the numerals). Multiple figures in a row should be enclosed in brackets if there are spaces between them. To align figures when there are empty slots, as in \musFig{6--5 \noFig[5--]\musSharp}, use \verb|\noFig[]|. -It will insert horizontal space the -same width as its optional argument when typeset; the default value is the -width of the numeral 5. +It will insert horizontal space the same width as its optional argument when +typeset; the default value is the width of the numeral 5. It does this using \verb|\hphantom|, so you should supply the same text in the argument as the figure with which you want to align. The code for the example at the beginning of this paragraph was \verb|\musFig{6--5 \noFig[5--]\musSharp}|. -The font may be controlled by redefining \verb|\musFigFont{}|. -Its default value is as follows: -\begin{Verbatim} -\NewDocumentCommand{\musFigFont}{}{% - \scriptsize - \let\musFontLarge\musFontBig -} -\end{Verbatim} -This reduces the size of numbers and the music font so that they fit better with -surrounding text and so that numerals and accidentals in the figures match. - - +You can adjust the size and font of the figures by redefining +\verb|\musFigSize| and \verb|\musFigFont| as described above. +The command applies both commands, in that order, so if you change them, make +sure the two work together appropriately. {\renewcommand{\arraystretch}{2.5} \small \begin{codetable} - Two figures & \verb|\musFig{7 5\musSharp}| - & \musFig{7 5\musSharp}\\ - Three figures & \verb|\musFig{7\musFlat{} 5 3}| - & \musFig{7\musFlat{} 5 3}\\ + Two figures & \verb|\musFig{7 \sh5}| + & \musFig{7 \sh5}\\ + Two figures, accidentals after & \verb|\musFig[l]{7 \sh5}| + & \musFig[l]{7 5\sh}\\ + Three figures & \verb|\musFig{\fl7} 5 3}| + & \musFig{\fl7 5 3}\\ Four figures & \verb|\musFig{7 5 4 2}| & - \musFig{9 7 5 3}\\ + \musFig{7 5 4 2}\\ Voice leading & \verb|\musFig{7--6 5--4 3}| & \musFig{7--6 5--4 3}\\ - Voice leading & \verb|\musFig{6--7 4--5 \noFig[2--]3}| - & \musFig{7--6 5--4 \noFig[2--]3}\\ Multiple figures per row - & \verb|\musFig{{6\musFlat{} 5} {\noFig[6\musFlat] \musSharp}}| - & \musFig{{6\musFlat{} 5} {\noFig[6\musFlat] \musSharp}}\\ + & \verb|\musFig{{\fl6} 5} {\noFig[\fl6] \sh}}| + & \musFig{{\fl6 5} {\noFig[\fl6] \sh}}\\ \end{codetable}} +\subsection{Scale Degrees and Octave Numbers} + +\begin{codetable} + Scale degree & \verb|A is \musDegree{6} in C major.| + & A is \musDegree{6} in C major. \\ + Pitch with octave & \verb|\musPitch{A}{4} is 440Hz.| + & \musPitch{A}{4} is 440Hz. \\ +\end{codetable} + +For more flexible options, including traditional, non-Helmholtz notation for +pitches, use my \code{octave} package. + +\section{Customization} -\subsection{Customization} +To create aliases for these commands, such as \verb|\quaver| for British +usage, use \verb|\NewDocumentCommand| like this: +\begin{quote} + \verb|\NewDocumentCommand{\quaver}{}{\musEighth}| +\end{quote} +If this new LaTeX interface is unfamiliar, \verb|\newcommand| or even +\verb|\let| will still work. -It would be a simple matter of using \verb|\newcommand| or \verb|\let| to create -aliases for these commands, say, for British usage (such as \verb|\quaver|). +\LaTeX{} programmers may wish to use the package's internal commands directly +to access more symbols from the fonts or fine-tune their appearance. +See \verb|\musSymbol|, \verb|\musAccidental|, and \verb|\musStack| in the code +listing below. -\LaTeX{} programmers may wish to use the package's internal commands directly to -access more symbols from the fonts or fine-tune their appearance. -See \verb|\musSymbol| and \verb|\musAccidental| in the code listing below. +\subsubsection{MusiX\TeX{} Symbol List} + +You may use \verb|\musSymbol| to pull in any of the following symbols by +number: +\musixSymbolList \section{Changes} \begin{itemize} + \item[2023-09-08] Improved customization, time signatures, figured bass, + and documentation + \begin{itemize} + \item Documentation reorganized, clarified, corrected + \item Customizable font commands used throughout: + \verb|\musAccidentalFont|, \verb|\musNumFont|, + \verb|\musFigSize|, and \verb|\musFigFont| + \item \verb|\musStack| now takes an optional last argument to + specify alignment + \item \verb|\musMeter| now takes an optional font argument, and + has a smaller vertical gap between numerals. It is now scaled + to fit within the line. + \item Spacing commands in \verb|\musSymbolMeter| are simplified + \item \verb|\meterThreeTwo| now uses \verb|\musMeter| for the + numbers, shifted slightly to align with the meter symbol + \item \verb|\meterCZ| now pulls in a cursive Z symbol from the EB + Garamond font (installed by default in TeXLive) + \item \verb|\musFig| now includes configurable \verb|\musFigSize| + and \verb|\musFigFont| switches, and a first optional argument + with alignment specifier + \item New commands for scale degress (\verb|\musDegree|) and + pitches with Helmholtz octave (\verb|\musPitch|) + \item For testing or extension, add command to display a list of + symbols by number in a given font + \end{itemize} \item[2020-01-29] Reduced stack gap for \verb|\musFig| \item[2019/11/24] Fix \verb|\MeterCThreeTwo| so that numbers are stacked and aligned correctly diff --git a/Master/texmf-dist/tex/latex/musicography/musicography.sty b/Master/texmf-dist/tex/latex/musicography/musicography.sty index 0e36b46a89f..b9d9d10c11b 100644 --- a/Master/texmf-dist/tex/latex/musicography/musicography.sty +++ b/Master/texmf-dist/tex/latex/musicography/musicography.sty @@ -1,8 +1,8 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{musicography}[2020/01/29 +\ProvidesPackage{musicography}[2023/09/08 Symbols for music writing with pdflatex] -% Copyright 2020 Andrew A. Cashner, andrewacashner@gmail.com +% Copyright 2023 Andrew A. Cashner, andrewacashner@gmail.com % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either @@ -19,6 +19,29 @@ % and the documentation file musicography.tex. % CHANGE LOG +% 2023-09-08 - Improved time signatures, figured bass, documentation +% + Documentation reorganized, clarified, corrected +% + Customizable font commands used throughout: +% \musAccidentalFont, \musNumFont, \musFigSize, and +% \musFigFont +% + \musStack now takes an optional last argument to specify +% alignment +% + \musMeter now takes an optional font argument, and has a +% smaller vertical gap between numerals. It is now scaled +% to fit within the line. +% + Spacing commands in \musSymbolMeter are simplified +% + \meterThreeTwo now uses \musMeter for the numbers, shifted +% slightly to align with the meter symbol +% + \meterCZ now pulls in a cursive Z symbol from the EB +% Garamond font (installed by default in TeXLive) +% + \musFig now includes configurable \musFigSize and +% \musFigFont switches, and a first optional argument with +% alignment specifier +% + New commands for scale degress (\musDegree) and pitches with +% Helmholtz octave (\musPitch) +% + For testing or extension, add command to display a list of +% symbols by number in a given font +% % 2020-01-29 - Reduced stack gap for \musFig % 2019-11-24 - Fix problem with \MeterCThreeTwo where numerals were being % printed next to each other instead of stacked. @@ -39,13 +62,17 @@ % 2017-08-29 First version on CTAN % 2017-04-12 Created +% FONT SIZES + +% Package option 'bigger' +% +% The package uses three sizes of music fonts; the 'bigger' option increases +% all three. \newif\ifLargeFont \LargeFontfalse \DeclareOption{bigger}{\LargeFonttrue} \ProcessOptions\relax -\RequirePackage{xparse} - \ifLargeFont \newfont{\musFont}{musix13} \newfont{\musFontBig}{musix16} @@ -56,10 +83,7 @@ \newfont{\musFontLarge}{musix16} \fi -% Font for numbers in \musStack -% Could redefine to use lining figures, math mode, sans-serif, etc. -% Example for ebgaramond: \renewcommand{\musNumFont}[1]{\liningnums{#1}} -\NewDocumentCommand{\musNumFont}{}{} +% BASIC COMMANDS % Print a music symbol from the \musFont, specifying space before, after, and % baseline adjustment @@ -72,11 +96,18 @@ \mbox{#1\kern#2\raisebox{#3}{#5}\kern#4}% } -% Accidentals +% ACCIDENTALS + +% Larger relative font for accidentals (can be modified) +\NewDocumentCommand{\musAccidentalFont}{}{\musFontLarge} + +% Any accidental % #1 symbol command for accidental \NewDocumentCommand{\musAccidental}{ m }{% - \musSymbol[\musFontLarge]{0.1em}{0.5ex}{-0.1pt}{#1}% + \musSymbol[\musAccidentalFont]{0.1em}{0.5ex}{-0.1pt}{#1}% } + +% Specific accidentals \NewDocumentCommand{\musFlat} {}{\musAccidental{\symbol{90}}} \NewDocumentCommand{\musDoubleFlat} {}{\musAccidental{\symbol{91}}} \NewDocumentCommand{\musSharp} {}{\musAccidental{\symbol{92}}} @@ -84,6 +115,7 @@ \NewDocumentCommand{\musNatural} {}{\musAccidental{\symbol{94}}} % Shorthand accidental commands +% % These commands are defined differently in the semantic-markup package, % so LaTeX will use musicography commands instead \@ifpackageloaded{semantic-markup}{% @@ -95,7 +127,20 @@ \NewDocumentCommand{\sh}{}{\musSharp} \NewDocumentCommand{\na}{}{\musNatural} } -% Print a composite music symbol of a notehead plus stem + +% MUSIC NOTES + +% Just the stem +\NewDocumentCommand{\musStem}{}{% + \musSymbol{0.955em}{0.55ex}{0pt}{\symbol{16}}% +} + +% Just the (augmentation) dot +\NewDocumentCommand{\musDot}{}{% + \musSymbol{-0.2em}{-0.5ex}{0.7em}{\symbol{24}}% +} + +% Notehead plus stem (composite music symbol) % #1 Symbol musSymbol command for notehead \NewDocumentCommand{\musStemmedNote}{ m }{% \musSymbol{0.05em}{0.5ex}{0.2em}{#1\musStem}% @@ -109,20 +154,15 @@ \musSymbol{0pt}{0pt}{0.9em}{#2}% } -% Note plus dot +% Dotted note % #1 \musSymbol command for note to be dotted \NewDocumentCommand{\musDottedNote}{ m }{#1\musDot} -\NewDocumentCommand{\musStem}{}{% - \musSymbol{0.955em}{0.55ex}{0pt}{\symbol{16}}% -} -\NewDocumentCommand{\musSegno}{}{% - \musSymbol{0.55em}{-0.4ex}{1.5em}{\symbol{86}}% -} -\NewDocumentCommand{\musDot}{}{% - \musSymbol{-0.2em}{-0.5ex}{0.7em}{\symbol{24}}% -} +% Notes of different rhythmic values +\NewDocumentCommand{\musBreve}{}{% + \musSymbol{0.05em}{0.5ex}{1.35em}{\symbol{32}}% +} \NewDocumentCommand{\musWhole}{}{% \musSymbol{0.05em}{0.5ex}{1.35em}{\symbol{9}}% } @@ -145,6 +185,7 @@ \musFlaggedNote{\symbol{7}}{\symbol{43}}% } +% Dotted rhythmic values \NewDocumentCommand{\musWholeDotted}{}{% \musDottedNote{\musWhole}% } @@ -167,76 +208,238 @@ \musDottedNote{\musSixtyFourth}% } +% Aliases for older note names +\NewDocumentCommand{\musSemibreve} {}{\musWhole} +\NewDocumentCommand{\musMinim} {}{\musHalf} +\NewDocumentCommand{\musSemiminim} {}{\musQuarter} +\NewDocumentCommand{\musCorchea} {}{\musEighth} +\NewDocumentCommand{\musFusa} {}{\musEighth} +\NewDocumentCommand{\musSemibreveDotted} {}{\musWholeDotted} +\NewDocumentCommand{\musMinimDotted} {}{\musHalfDotted} +\NewDocumentCommand{\musSeminiminimDotted} {}{\musQuarterDotted} +\NewDocumentCommand{\musCorcheaDotted} {}{\musEighthDotted} +\NewDocumentCommand{\musFusaDotted} {}{\musEighthDotted} + + +% STACKED NUMERALS (for figured bass, time signatures) + +\RequirePackage{stackengine} + +% Only a minimal vertical gap between stacked elements +\setstackgap{S}{1pt} + +% Specify the font for numbers in \musStack. For time signatures I think bold +% numbers look better in most fonts, but you could redefine it, for example, +% to use lining figures, math mode, sans-serif, etc. +% +% Example: To get lining figures when using the ebgaramond package: +% \renewcommand{\musNumFont}{\liningnums} +% +% The command is employed in a way that both font switches and commands with +% arguments will work (e.g., {\bfseries\liningnums}), but take care when +% combining multiple elements. +\NewDocumentCommand{\musNumFont}{}{\bfseries} % Command to stack numerals for metrical symbols or figured bass % Takes any number of space-separated arguments and stacks them vertically -\RequirePackage{stackengine} -\NewDocumentCommand{\musStack}{ O{\musNumFont} m }{% - {#1\Shortstack[l]{#2}}% +% +% #1 (optional) Font command (\musNumFont by default) +% #2 Series of space-separated arguments to be stacked, e.g., {\fl6 5} +% #3 (optional) Alignment specifier for \Shortstack (l, c, or r); default is c +% for centering +\NewDocumentCommand{\musStack}{ O{\musNumFont} m O{c} }{% + {#1{\Shortstack[#3]{#2}}}% } -% Meter symbols -% #1 symbol code for meter sign -\NewDocumentCommand{\musSymbolMeter}{ m }{% - \raisebox{0.58ex}[8pt][2pt]{% - {\kern-1pt\musFontBig\raisebox{0.3ex}{#1}\kern0.3em}% - }% -} -% Meter that combines \meterC with numerals (e.g., C3 C3/2) -\NewDocumentCommand{\meterCplus}{ m }{\meterC{}\kern-0.7pt#1} +% METER and TIME SIGNATURES + +\RequirePackage{graphicx} % for resizebox % Numeric meter signatures (e.g., 3/4) +% #1 (optional) font command (\musNumFont by default) % #1 number on top % #2 number on bottom -\NewDocumentCommand{\musMeter}{ m m }{% - \musStack{#1 #2}\kern0.05em -} -% Same command used for figured bass -\NewDocumentCommand{\musFigFont}{}{% - \scriptsize - \let\musFontLarge\musFontBig -} -\NewDocumentCommand{\musFig}{ m }{% - \setstackgap{S}{1pt}% - \musStack[\musFigFont]{#1}% +% +% In a pinch you can issue a font command directly in the optional first +% argument, but it would be better to redefine \musNumFont. +% +% These are now scaled to the current line height and centered. +\NewDocumentCommand{\musMeter}{ O{\musNumFont} m m }{% + \resizebox{!}{\ht\strutbox}{% + \musStack[#1]{#2 #3}% + }\kern0.05em } -\NewDocumentCommand{\noFig}{ O{5} }{% - \hphantom{#1}% + +% Meter symbols +% #1 symbol code for meter sign +\NewDocumentCommand{\musSymbolMeter}{ m }{% + \smash{\kern-1pt\musFontBig\raisebox{1.1ex}{#1}\kern0.3em}% } +% Meter symbol plus numerals +\NewDocumentCommand{\meterPlus}{ m m }{#1\kern-0.7pt#2} + +% Meter signatures with a C or cut C symbol +% Just the symbols \NewDocumentCommand{\meterC}{}{% \musSymbolMeter{\symbol{83}}% } \NewDocumentCommand{\meterCutC}{}{% \musSymbolMeter{\symbol{82}}% } + % Ternary meters used in 16th--18th c. music +% Just the numbers: 3 +\NewDocumentCommand{\meterThree}{}{% + {\musNumFont{3}}% +} + +% 3/2 +\NewDocumentCommand{\meterThreeTwo}{}{% + \raisebox{-0.26ex}{\musMeter{3}{2}}% +} + +% Combining symbols and numbers +% Meter that combines \meterC with numerals (e.g., C3 C3/2) +\NewDocumentCommand{\meterCplus}{ m }{\meterPlus{\meterC}{#1}} + +% Meter that combines \meterCutC with numerals (e.g., C3 C3/2) +\NewDocumentCommand{\meterCutCplus}{ m }{\meterPlus{\meterCutC}{#1}} + +% Proportions of cut C +\NewDocumentCommand{\meterCutCThree}{}{% + \meterCutCplus{\meterThree}% +} +\NewDocumentCommand{\meterCutCThreeTwo}{}{% + \meterCutCplus{\meterThreeTwo}% +} + +% Proportions of C \NewDocumentCommand{\meterCThree}{}{% - \meterCplus{\musNumFont{3}}% + \meterCplus{\meterThree}% } \NewDocumentCommand{\meterCThreeTwo}{}{% - \meterCplus{{\footnotesize\stackanchor[1pt]{3}{2}}}% + \meterCplus{\meterThreeTwo}% +} + +% CZ meter: Ternary meter used in 17th-century Spanish music +% +% A cursive Z to match the C meter symbol, as notated in Spanish manuscripts +% +% Pull in symbol from EB Garamond font; could be redefined +\NewDocumentCommand{\meterZfont}{}{% + \fontfamily{EBGaramond-LF}\selectfont +} + +% The symbol +\NewDocumentCommand{\meterZsymbol}{}{% + {\meterZfont\Large\itshape z}% } -% Ternary meter used in 17th-century Spanish music + +% CZ meter \NewDocumentCommand{\meterCZ}{}{% - \meterCplus{Z}% + \meterCplus{\meterZsymbol}% } + % Perfect meter in medieval music \NewDocumentCommand{\meterO}{}{% $\bigcirc$ } -% Aliases for older note names -\NewDocumentCommand{\musSemibreve} {}{\musWhole} -\NewDocumentCommand{\musMinim} {}{\musHalf} -\NewDocumentCommand{\musSemiminim} {}{\musQuarter} -\NewDocumentCommand{\musCorchea} {}{\musEighth} -\NewDocumentCommand{\musFusa} {}{\musEighth} -\NewDocumentCommand{\musSemibreveDotted} {}{\musWholeDotted} -\NewDocumentCommand{\musMinimDotted} {}{\musHalfDotted} -\NewDocumentCommand{\musSeminiminimDotted} {}{\musQuarterDotted} -\NewDocumentCommand{\musCorcheaDotted} {}{\musEighthDotted} -\NewDocumentCommand{\musFusaDotted} {}{\musEighthDotted} +% FIGURED BASS + +% Definable font command to be used with figured bass; consider matching +% \musNumFont (e.g., with lining numerals) +\NewDocumentCommand{\musFigFont}{}{} + +% Size adjustment for figured bass: smaller font for numerals, reduce sizes of +% music symbols (\tiny might make it fit better within the line height) +\NewDocumentCommand{\musFigSize}{}{% + \scriptsize + \RenewDocumentCommand{\musAccidentalFont}{}{\musFont}% +} + +% Figured bass is typeset a \musStack using \musFigFont, right-aligned to +% allow for accidentals preceding numerals +% #1 (optional) Alignment specifier: l, c, r (default: r) +% #2 space-delimited list of arguments to stack, in top-down order +% +% Example: \musFig{\fl6 4} or \musFig{\sh5 4 2} +% +% Note that the command applies first \musFigSize, then \musFigFont inside the +% stack. +\NewDocumentCommand{\musFig}{ O{r} m }{% + {\musFigSize\musStack[\musFigFont]{#2}[#1]}% +} + +% Placeholder for no figure, to maintain alignment +% #1 (optional) width of blank space (Default: numeral 5) +% +% Example: \musFig{6 4}--\musFig{5 \noFig} +\NewDocumentCommand{\noFig}{ O{5} }{% + \hphantom{#1}% +} + +% MISCELLANEOUS SYMBOLS and NOTATIONS + +% Segno (repeat marker) +\NewDocumentCommand{\musSegno}{}{% + \musSymbol{0.55em}{-0.4ex}{1.5em}{\symbol{86}}% +} + +% Scale degrees +% #1 Numeral (offset from tonic) +\NewDocumentCommand{\musDegree}{ m }{$\hat{#1}$} + +% Pitch with Helmholtz octave number (e.g., A4 = A440Hz) +% #1 Pitch-class name (A-G) +% #2 Octave number +\NewDocumentCommand{\musPitch}{ m m }{#1\textsubscript{#2}} + +% Recommended: Use my 'octave' package for more options, including +% traditional, non-Helmholtz notation + +% AUXILIARY COMMANDS + +% Print a list of symbols for documentation, debugging, or extension +% E.g., \symbolList{\musFont}{256} to see all useable symbols in MusiXTeX font + +\RequirePackage{setspace} % for symbol list spacing + +\ExplSyntaxOn +% Single entry in the symbol list: Number + corresponding symbol +% #1 font command +% #2 symbol number +\cs_new:Nn \aac_symbolEntry:nn +{ + \makebox[4em]{#2\quad{#1\symbol{#2}}}\ % +} + +% Loop through all the symbols in given font up to given max +% #1 font command +% #2 max symbol number +\cs_new:Nn \aac_symbolLoop:nn +{ + \int_step_inline:nnn {0} {#2 - 1} + { + \aac_symbolEntry:nn {#1} {##1} + } +} + + +% The whole symbol list up to a given max, typeset in a big double-spaced +% block +% #1 font command +% #2 max symbol number +\NewDocumentCommand{\symbolList}{ m m }{\par + \begin{doublespace} + \noindent\aac_symbolLoop:nn {#1} {#2} + \end{doublespace} +} +\ExplSyntaxOff + +% Print a list of symbols in the MusiXTeX font +\NewDocumentCommand{\musixSymbolList}{}{\symbolList{\musFont}{128}} \endinput |