2012-03-14

MusiXTeX 筆記之基礎篇

得知 tex 有 musixtex 這個套件可以寫譜,真有趣,於是試著抄一首歌的詞譜來學它。接下來筆記一些語法,以免日久忘掉。

安裝

在 Debian 裡,「aptitude install musixtex」,就會把需要的東西都裝好。因情況而異,在某處,我這裡是「/usr/share/doc/musixtex/examples/」下,有許多範例可以參考,不過看起來有點難。

compile

musixtex 可以以獨立成譜的方式寫成檔案,也可以併在 document 之內,成為文件的一部分。不管是哪一種,compile 的時候,指令都是「musixtex 主檔名.tex」。這個指令濃縮了三個步驟,對 latex 來說,這三個步驟是「latex 檔名」→「musixflx 檔名」→「latex 檔名」,所以高興的話,把樂譜寫在一般文件裡時,最好分三次執行來 compile,出來的結果比較不會出錯。而重新編譯時,若橫向空間的安排(horizontal spacing)有所變動,則須將先前編譯過程產生的副檔名為 mx2 的檔案刪除(總之殺掉就是了)。

起始與結束
  • 獨立成譜的情形,在檔案的一開始可以這樣寫:
    \ifx\mxversion\undefined
    \input musixtex
    \input musixcpt
    \input musixsty
    \input musixlyr
    \fi
    結束時,最後一行寫
    \bye
  • 寫在文件內的,則在「\documentclass」之後,文件開頭之前,加上
    \usepackage{musixtex}
    其他相關套件還有 musixcpt、musixfll…,族繁不備載。需要填詞的話再加上
    \input musixlyr
    不過填詞有三種作法,只有一種要用到 musixlyr。

    此外,在「\begin{document}」之後,樂譜處理部分的前後要寫
    \begin{music}
    ……
    \end{music}
五線譜開始前各記號表示法

  • \generalmeter{} % 高音譜記號。括弧內空白以四四拍計。
  • \setclef1\bass % 低音譜(記號),也可以寫做 \setclef1{6000}。
  • \generalmeter{\meterfrac44} % 四四拍。
  • \generalsignature{-4} % 四個降記號。
  • \instrumentnumber{1} % 樂器數。
  • \nobarnumbers % 譜上方不放小節數數字。
  • \setstaffs12 % 表示同一個譜表有兩行。
  • \nostartrule % 譜最前面的直線就沒了。
  • %\largemusicsize % 改變譜的大小。預設為 normalmusicsize。尚有 smallmusicsize、Largemusicsize。
  • \scale{1.3} % 調整音符距離。
  • \metron{\smallnotesize\lqu}{ca. 90} % 設定節奏記號 tempo。
例 1

\documentclass[11pt,a4paper]{article}
\usepackage{musixtex}
\begin{document}
\begin{music}
\nobarnumbers
\instrumentnumber{1}
\setstaffs12
\generalmeter{}
\setclef1\bass
\startextract
\setsongraise1{1\Interligne}
\NOTes\wh{J}|\en
\NOTes\wh{K}|\en
\NOTes\wh{L}|\en
\NOTes\wh{M}|\en
\NOTes\wh{N}|\en
\NOTes\wh{O}|\csong{}\wh{a}\en
\NOTes\wh{P}|\csong{}\wh{b}\en
\NOTes\wh{Q}|\csong{}\wh{c}\en
\NOTes\wh{R}|\csong{}\wh{d}\en
\NOTes\wh{S}|\csong{}\wh{e}\en
\NOTes|\wh{f}\en
\NOTes|\wh{g}\en
\NOTes|\wh{h}\en
\NOTes|\wh{i}\en
\NOTes|\wh{j}\en
\zendextract
\end{music}
\end{document}
在同一個譜表有多行的情況下,不管是什麼記號、符號,寫的順序都是由下至上,在此例裡,不同譜號之間的音符,是以 pipe「|」隔開。

標題等

制式的 musixtex 標題寫法只有在檔案是獨立成譜而非附屬於一般文件之內時可行。常用的幾個東西如下,這些也是寫在五線譜開始之前:
\title{標題}
\subtitle{(子標題}
\author{作者} % 列於右邊
\shortauthor{}
\othermention{} % 列於左邊
接著要
\maketitle
例 2
(但是這份有些音符及歌詞上的錯誤懶得改了,正確版在最後面。)
(There are some typos in this image. A revision is appended at the end of this page.)

\ifx\mxversion\undefined
\input musixtex
\input musixcpt
\input musixsty
\input musixlyr
\fi

\title{Mamma}
%\csname
%\fulltitle{}
%\subtitle{}
\author{Cesore Andreo Bixio (1986-1978)}
%\shortauthor{}
\othermention{Bruno Cherubini (1899-1987)}

\maketitle
\nobarnumbers
\parindent0pt
\resetlyrics
\generalmeter{\meterfrac44}
\generalsignature{-4}
\metron{\smallnotesize\lqu}{ca. 90}
\scale{1.1}

\setlyrics{mamma1}
{Mam-ma, son tan-to fe-li-ce_
per-ch\`e ri-tor-no da te._
La mia can-zo-ne ti di-ce_
ch'\`e\lyrlink il pi\`u bel glor(sog)-no per me!_
Mam_ ma, son tan-to fe-li-ce..._
Vi-ver lon-ta-no per-ch\`e?_
Mam-ma,_ so-lo per te la mia can-zo-ne vo-la,_
Mam-ma,_ sa-rai con me, tu non sa-rai pi\`u so-la!_
Quan-to ti vo_ glio be-ne!_
Ques-te pa-ro-le d'ar-mo-re_
che ti sos-pi-ra\lyrlink il mio cuo_ re_
For-se non s'u-sa-no pi\`u,_
Mam-ma!_ ma la can-zo-ne mia pi\`u bel-la sei tu!_
Sei tu la vi_ ta_ e per la vi-ta non ti la-scio mai pi\`u!_
pi\`u!
pi\`u!_ Mam-ma, mai pi\`u!__}
\setlyrics{mamma2}
{Sen-to la ma-no tua stan-ca:_
cer-ca\lyrlink i miei ric-cio-li d'or._
Sen-to,\lyrlink e la vo-ce ti man-ca,_
la nin-na nan-na d'al-lor._
Og_ gi la tes-ta tua bian-ca_
io vo-glio strin-gere al cuor._}

\assignlyrics1{mamma1,mamma2}

\startpiece\bigaccid
\staffbotmarg=4\Interligne\stafftopmarg=4.5\Interligne
\leftrepeat
\NOTes\ha j\en
\NOtes\qa j\en
\NOtes\qa j\en\bar
\NOTes\ha j\en
\NOtes\qa i\en
\NOtes\qa h\en\bar
\NOtes\qa i\en
\NOTes\itied0g\hup g\en\bar
\NOTEs\ttie0\wh g\en\bar
\NOTes\ha i\en
\NOtes\qa i\en
\NOtes\qa i\en\bar
\NOtes\qa j\en
\NOTes\ha h\en
\NOtes\qa g\en\bar
\NOTEs\itied0f\wh f\en\bar
\NOTes\ttie0\wh f\en\bar
\NOTes\ha j\en
\NOtes\qa j\en
\NOtes\qa j\en\bar
\NOTes\ha j\en
\NOtes\qa i\en
\NOtes\qa h\en\bar
\NOtes\qa i\en
\NOTes\itied0g\hup g\en\bar
\NOTEs\ttie0\wh g\en\bar
\NOTEs\ha i\en
\NOtes\qa i\en
\NOtes\qa i\en\bar
\NOTes\qa j\en
\NOTes\ha h\en
\NOtes\qa g\en\bar
\NOtes\itied0f\wh f\en\bar
\NOtes\ttie0\hup f\qp\en\bar
\NOtes\itied0g\ha g\en
\NOtes\ttie0\qa g\en
\NOtes\qa g\en\bar
\NOTes\ha g\en
\NOtes\qa h\en
\NOtes\qa i\en\bar
\NOtes\qa i\en
\NOtes\qa g\en
\NOTes\itied0f\ha f\en\bar
\NOTEs\ttie0\wh f\en\bar
\staffbotmarg=4\Interligne\stafftopmarg=4.5\Interligne
\NOTes\ha g\en
\NOtes\qa h\en
\NOtes\qa i\en\bar
\NOTes\qa j\en
\NOTes\ha g\en
\NOtes\qa i\en\bar
\NOTEs\itieu0j\wh j\en\bar
\setsign10\ignorenats\changesignature
\NOTEs\ttie0\wh j\en
\assignlyrics1{mamma1}%
\generalsignature{-1}\Changecontext
\NOTEs\wh h\en\bar
\NOTEs\itied0f\wh f\en\bar
\NOtes\ttie0\qa f\en
\NOtes\qa c\en
\NOtes\qa d\en
\NOtes\qa e\en\bar
\staffbotmarg=3\Interligne\stafftopmarg=3.5\Interligne
\NOtes\qa f\en
\NOtes\qa g\en
\NOtes\qa h\en
\NOtes\qa i\en\bar
\NOTes\hlp j\en
\NOtes\qa h\en\bar
\NOtes\qa i\en
\NOTes\itied0g\hup g\en\bar
\NOTEs\ttie0\wh g\en\bar
\NOTEs\wh g\en\bar
\NOTEs\itied0e\wh e\en\bar
\NOtes\ttie0\qa e\en
\NOtes\qa c\en
\NOtes\qa d\en
\NOtes\qa e\en\bar
\NOtes\qa g\en
\NOtes\qa h\en
\NOtes\qa i\en
\NOtes\qa j\en\bar
\NOTes\hlp k\en
\NOtes\qa j\en\bar
\NOtes\qa i\en
\NOTes\itied0h\hup h\en\bar
\NOTes\ttie0\hup h\qp\en\bar
\NOTes\ha j\en
\NOtes\qa j\en
\NOtes\qa j\en\bar
\NOTes\itieu0k\ha k\en
\NOtes\ttie0\qa k\en
\NOtes\qa j\en\bar
\NOtes\qa h\en
\NOTesp\itied0f\hup f\en\bar
\NOTEs\ttie0\wh f\en\bar
\NOTes\ha j\en
\NOtes\qa j\en
\NOtes\qa j\en\bar
\NOtes\qa k\en
\NOTes\ha j\en
\NOtes\qa i\en\bar
\NOtes\qa h\en
\NOTes\itied0g\hup g\en\bar
\NOTes\ttie0\hup g\qp\en\bar
\NOTes\ha i\en
\NOtes\qa i\en
\NOtes\qa i\en\bar
\NOtes\qa i\en
\NOTes\ha j\en
\NOtes\qa{_k}\en\bar
\NOtes\islurd0j\qa j\en
\NOtes\tslur0{'a}\qa{_a}\en
\NOtes\itieu0j\ha j\en\bar
\NOtes\ttie0\wh j\en\bar
\NOTes\ha i\en
\Notes\qa i\en
\Notes\qa i\en\bar
\NOtes\qa i\en
\NOTes\ha{_k}\en
\NOtes\qa m\en\bar
\NOTEs\itieu0l\wh l\en\bar
\NOTes\ttie0\ha l\hp\en\bar
\NOTEs\wh m\en\bar
\NOTEs\itieu0k\wh k\en\bar
\NOtes\ttie0\qa k\en
\NOtes\qa i\en
\NOtes\qa j\en
\NOtes\qa k\en\bar
\NOtes\qa l\en
\NOtes\qa m\en
\NOtes\qa l\en
\Notes\qa k\en\bar
\staffbotmarg=2.5\Interligne\stafftopmarg=5\Interligne
\NOtes\qa m\en
\NOTes\ha l\en
\NOtes\qa k\en\bar
\NOTEs\itied0j\wh j\en\bar
\NOTEs\ttie0\wh j\en\bar
\NOTEs\wh k\en\bar
\NOTes\ha i\en
\NOTes\ha k\en\bar
\NOtes\qa j\en
\NOtes\qa i\en
\NOTes\itied0h\ha h\en\bar
\NOtes\ttie0\qa h\en
\NOtes\qa f\en
\NOtes\qa g\en
\NOtes\qa h\en\bar
\NOtes\qa i\en
\NOtes\qa j\en
\NOtes\qa i\en
\NOtes\qa h\en\bar
\NOtes\qa j\en
\NOTes\ha i\en
\NOtes\qa g\en\Setvolta1\doublebar
\NOTEs\itied0f\wh f\en\bar
\NOTes\ttie0\hup f\qp\en\bar
\NOTes\pause\en\bar
\NOTes\pause\en\setendvoltabox\Setvolta2\rightrepeat
\NOtes\qa f\hpausep\en\bar
\NOTes\pause\en\setendvoltabox\setvolta3\doublebar
\NOTEs\itied0f\wh f\en\bar
\NOTEs\ttie0\wh f\en\bar
\NOTEs\wh{_k}\en\bar
\NOTes\hlp i\en
\NOtes\qa{_k}\en\bar
\NOTEs\itieu0m\wh m\en\bar
\NOTEs\ttie0\itieu0m\wh m\en\bar
\NOtes\ttie0\qa m\hpausep\en\bar
\NOTes\pause\en\Endpiece
\bye

五線譜的開始與結束

\startextract 與 \zendextract 用於只有一行譜的情形。結束時也可以寫做 \endextract,最前面有沒有 z 的差別在於五線譜結束處有沒有一條直線把它關起來,有 z 的話就沒有那條直線。

\startpiece 與 \Endpiece 用於多行譜的情形,後者也可以寫做 \stoppiece、\endpiece。

音值代碼

wh = 全音符
hlp, hup = 二分附點
ha, hl, hu = 二分音符(ha: 符幹方向隨程式安排,hl: 符幹在下,hu: 符幹在上。以下皆同。)
qlp, qup = 四分附點
qa, ql, qu = 四分音符
ca, cl, cu = 八分音符
cca, ccl, ccu = 十六分音符
ccca, cccl, cccu = 三十二分音符
cccca, ccccl, ccccu = 六十四分音符
ccccca, cccccl, cccccu = 一百二十八分音符

zh = 和絃音符為二分音符(ex. \zh{egf})
zq = 和絃音符為四分音符(ex. \zq{egf}, ex. \zq{egf}\qu c)

建議之音符所占空間表示法

\znotes = 特殊情形
\notes = 十六分音符
\notesp = 十六分附點、八分三連音
\Notes = 八分音符
\Notesp = 八分附點、四分三連音
\NOtes = 四分音符
\NOtesp = 四分附點、二分三連音
\NoTes = 二分音符
\NOTesp = 二分附點
\NOTEs = 全音符

休止符

\pause = 全休止符
\hpausep = 二分附點
\hp = 二分休止符
\qp = 四分休止符
\ds = 八分休止符

譜間其他記號表示法

  • 升降、還原記號:分別是在表示音高的字母前加上 ^、_、=,這時表示音高的字母要包在 {}裡面才行。
  • 音符結束:\en 或 \enotes。
  • 小節線:\bar。最後一小節不需要這個。小節之間有重複記號等情況時,不需要這個。
  • 連結線:在要連結的起始音符之前,加上 \itied 或 itieu(最後的字母 d 或 u 表示連結線位置在音符下方或上方),其後接數字,再接上表示該連結線所在位置音高的字母。在結束連結的音符之前,加上 \ttie 及與同一組 itieu/d 相同的數字
  • 圓滑線:在要連結的起始音符之前,加上 \islurd 或 isluru(最後的字母 d 或 u 表示圓滑線位置在音符下方或上方),其後接數字,再接上表示該圓滑線所在位置音高的字母。在結束連結的音符之前,加上 \tslur,其後接數字,再接{p},p 表示該圓滑線結束時所在位置音高的字母,數字則表示同組起始的關聯數字。此外使圓滑線稍微離開音符,為 \issluru, \issluru -> \tsslur。使圓滑線更加靠近音符,為 \ibsluru -> \tbsluru 或 \ibslurd -> \tbslurd。
  • 反覆記號、分節線:\leftrepeat、\rightrepeat、\doublebar。
  • 行距:\staffbotmarg=n\Interligne\stafftopmarg=n\Interligne,其中「n」是數字,可以有小數點。也可以寫在五線譜開始之前。譜間可以寫很多次。
  • 調號改變:在調號改變的前一節開始時,加上 \setsign10\ignorenats\changesignature,該節結束時,不加 \bar,代以 \generalsignature{n}\Changecontext,n 表示調號。
  • 小節進行順序:在要作業的小節之前一小節結束前,加上 \Setvoltan,最後面的 n 為自然數,第一次的就寫「1」,它是有合起來的,就在合起來的那個小節結束時加上 \setendvoltabox,是開放式的就沒有下半回合。
例 3
\NOtes\qa i\en
\NOtes\qa j\en
\NOtes\qa i\en
\NOtes\qa h\en\bar
\NOtes\qa j\en
\NOTes\ha i\en
\NOtes\qa g\en\Setvolta1\doublebar
\NOtes\itied0f\wh f\en\bar
\NOtes\ttie0\hup f\qp\en\bar
\NOtes\pause\en\bar
\NOtes\pause\en\setendvoltabox\Setvolta2\rightrepeat
\NOtes\qa f\hpausep\en\bar
\NOtes\pause\en\setendvoltabox\setvolta3\doublebar
\NOtes\itied0f\wh f\en\bar
\NOtes\ttie0\wh f\en\bar
\NOtes\wh{_k}\en\bar
\NOtes\hlp i\en
\NOtes\qa{_k}\en\bar
\NOtes\itieu0m\wh m\en\bar
\NOtes\ttie0\itieu0m\wh m\en\bar
\Notes\ttie0\qa m\hpausep\en\bar
\Notes\pause\en\Endpiece

歌詞

歌詞有三種寫法,其中以 musixlyr 套件的寫法最容易調整。除了相當簡單的情形之外,使用 musixlyr 還是最划算的。先大致提一下簡單寫法之一,例如:
\Notes\csong{lyrics}\qu{c}\en
就這樣,一個蘿蔔一個坑,在附有歌詞的音符之前,加上 \csong{字} 即可。\csong 表示居中,也可以 \lsong 居左,或 \zsong 居右。

musixlyr 歌詞表示法
  1. musixlyr 基本設定

    歌詞寫在記譜開始之前,也就是 \startextract 或 \startpiece 開始之前。如果是在文件裡寫譜,在第二次寫下有歌詞的譜時,要在五線譜之前加上
    \resetlyrics
    接著是
    \setlyrics{自定代碼1}
    {……(歌詞)}
    \setlyrics{自定代碼2}
    {……(歌詞)}
    \assignlyrics1{自定代碼1,自定代碼2}
    \setlyrstrut
  2. 歌詞從兩段變成一段時

    歌詞從兩段變一段的狀況,是在五線譜裡加上註記。例如接下來只要第一段歌詞,那就在改變的那一節一開始加上
    \assignlyrics1{自定代碼1}
    musixlyr 很嚴格,如果歌詞跟譜合不起來,compile 就不會成功。在同一份文件裡,如果新起一段 musixtex 且再次用到 musixlyr 的話,要在五線譜開始之前加上「resetlyrics」。
  3. 使歌詞與音符相符

    歌詞之間,如果是外文歌詞,一個字的各音節分占不同音符時,字與字之間加上「-」,它就會辨識出來,如果是多個字占有同一個音符,則在該音符歌詞最後一個字之前的所有字結束時要緊緊加上「\lyrlink」,如果是一個字占有多個音符,一個音符以一個「_」表示。例如:
    \setlyrics{mamma2}
    {Sen-to la ma-no tua stan-ca_
    cer-ca\lyrlink i miei ric-cio-li d'or._
    Sen-to,\lyrlink e la vo-ce ti man-ca,_
    la nin-na nan-na d'al-lor._
    Og_ gi la tes-ta tua bian-ca_
    io vo-glio strin-gere al cuor._}
    例 4
    (但是這份有些音符及歌詞上的錯誤懶得改了,正確版在最後面。)
    (There are some typos in this image. A revision is appended at the end of this page.)
    \documentclass[11pt,a4paper]{article}

    \usepackage[top=1.5cm,bottom=1cm,left=1.8cm,right=1.8cm]{geometry}
    \usepackage{musixtex}
    \usepackage{times}
    \input musixlyr

    \pagestyle{headings}
    \parindent0pt

    \begin{document}
    \thispagestyle{empty}

    \centerline{\Huge \textbf{Mamma}}
    \vspace{0mm}
    \begin{flushright}
    Cesare Andrea Bixio (1896-1978)\\
    Bruno Cherubini (1899-1987)
    \end{flushright}
    \vspace{-6mm}

    \begin{music}
    \nobarnumbers
    \parindent 0pt
    \generalmeter{\meterfrac44}
    \generalsignature{-4}
    \metron{\smallnotesize\lqu}{ca. 90}
    \scale{1.1}

    \setlyrics{mamma1}
    {Mam-ma, son tan-to fe-li-ce_
    per-ch\`e ri-tor-no da te._
    La mia can-zo-ne ti di-ce_
    ch'\`e\lyrlink il pi\`u bel glor(sog)-no per me!_
    Mam_ ma, son tan-to fe-li-ce..._
    Vi-ver lon-ta-no per-ch\`e?_
    Mam-ma,_ so-lo per te la mia can-zo-ne vo-la,_
    Mam-ma,_ sa-rai con me, tu non sa-rai pi\`u so-la!_
    Quan-to ti vo_ glio be-ne!_
    Ques-te pa-ro-le d'ar-mo-re_
    che ti sos-pi-ra\lyrlink il mio cuo_ re_
    For-se non s'u-sa-no pi\`u,_
    Mam-ma!_ ma la can-zo-ne mia pi\`u bel-la sei tu!_
    Sei tu la vi_ ta_ e per la vi-ta non ti la-scio mai pi\`u!_
    pi\`u!
    pi\`u!_ Mam-ma, mai pi\`u!__}
    \setlyrics{mamma2}
    {Sen-to la ma-no tua stan-ca:_
    cer-ca\lyrlink i miei ric-cio-li d'or._
    Sen-to,\lyrlink e la vo-ce ti man-ca,_
    la nin-na nan-na d'al-lor._
    Og_ gi la tes-ta tua bian-ca_
    io vo-glio strin-gere al cuor._}
    \assignlyrics1{mamma1,mamma2}

    \startpiece\bigaccid
    \staffbotmarg=4\Interligne\stafftopmarg=4\Interligne
    \leftrepeat
    \Notes\ha j\en
    \Notes\qa j\en
    \Notes\qa j\en\bar
    \Notes\ha j\en
    \Notes\qa i\en
    \Notes\qa h\en\bar
    \Notes\qa i\en
    \Notes\itied0g\hup g\en\bar
    \NOtes\ttie0\wh g\en\bar
    \NOtes\ha i\en
    \Notes\qa i\en
    \Notes\qa i\en\bar
    \Notes\qa j\en
    \NOtes\ha h\en
    \Notes\qa g\en\bar
    \Notes\itied0f\wh f\en\bar
    \Notes\ttie0\wh f\en\alaligne
    \NOTes\ha j\en
    \Notes\qa j\en
    \Notes\qa j\en\bar
    \NOtes\ha j\en
    \Notes\qa i\en
    \Notes\qa h\en\bar
    \Notes\qa i\en
    \NOtes\itied0g\hup g\en\bar
    \NOtes\ttie0\wh g\en\bar
    \NOTes\ha i\en
    \NOtes\qa i\en
    \NOTes\qa i\en\bar
    \NOTes\qa j\en
    \NOTes\ha h\en
    \NOtes\qa g\en\bar
    \NOtes\itied0f\wh f\en\bar
    \NOtes\ttie0\hup f\qp\en\bar
    \NOTes\itied0g\ha g\en
    \NOtes\ttie0\qa g\en
    \NOtes\qa g\en\bar
    \NOTes\ha g\en
    \NOtes\qa h\en
    \NOtes\qa i\en\bar
    \NOtes\qa i\en
    \NOtes\qa g\en
    \NOTes\itied0f\ha f\en\bar
    \NOTes\ttie0\wh f\en\alaligne
    \staffbotmarg=4\Interligne\stafftopmarg=1.5\Interligne
    \NOTes\ha g\en
    \NOtes\qa h\en
    \NOtes\qa i\en\bar
    \NOTes\qa j\en
    \NOTes\ha g\en
    \NOtes\qa i\en\bar
    \NOTEs\itieu0j\wh j\en\bar
    \setsign10\ignorenats\changesignature
    \NOTEs\ttie0\wh j\en
    \assignlyrics1{mamma1}
    \generalsignature{-1}\Changecontext
    \NOTEs\wh h\en\bar
    \NOtes\itied0f\wh f\en\bar
    \NOtes\ttie0\qa f\en
    \NOtes\qa c\en
    \NOtes\qa d\en
    \NOtes\qa e\en\alaligne
    \staffbotmarg=3\Interligne\stafftopmarg=3.5\Interligne
    \NOtes\qa f\en
    \NOtes\qa g\en
    \NOtes\qa h\en
    \NOtes\qa i\en\bar
    \NOTes\hlp j\en
    \Notes\qa h\en\bar
    \Notes\qa i\en
    \NOtes\itied0g\hup g\en\bar
    \NOtes\ttie0\wh g\en\bar
    \NOtes\wh g\en\bar
    \NOtes\itied0e\wh e\en\bar
    \Notes\ttie0\qa e\en
    \Notes\qa c\en
    \Notes\qa d\en
    \Notes\qa e\en\bar
    \Notes\qa g\en
    \Notes\qa h\en
    \Notes\qa i\en
    \Notes\qa j\en\bar
    \NOtes\hlp k\en
    \NOtes\qa j\en\bar
    \NOtes\qa i\en
    \NOtes\itied0h\hup h\en\bar
    \NOtes\ttie0\hup h\qp\en\bar
    \NOTes\ha j\en
    \NOtes\qa j\en
    \NOtes\qa j\en\bar
    \NOTes\itieu0k\ha k\en
    \NOtes\ttie0\qa k\en
    \NOtes\qa j\en\bar
    \NOtes\qa h\en
    \NOTesp\itied0f\hup f\en\bar
    \NOTEs\ttie0\wh f\en\bar
    \NOTes\ha j\en
    \NOtes\qa j\en
    \NOtes\qa j\en\bar
    \NOtes\qa k\en
    \NOTes\ha j\en
    \NOtes\qa i\en\bar
    \NOtes\qa h\en
    \NOTesp\itied0g\hup g\en\bar
    \NOTesp\ttie0\hup g\qp\en\bar
    \NOTes\ha i\en
    \NOtes\qa i\en
    \NOtes\qa i\en\bar
    \NOtes\qa i\en
    \NOTes\ha j\en
    \NOtes\qa{_k}\en\bar
    \NOtes\islurd0j\qa j\en
    \NOtes\tslur0{'a}\qa{_a}\en
    \NOtes\itieu0j\ha j\en\bar
    \NOtes\ttie0\wh j\en\bar
    \NOtes\ha i\en
    \Notes\qa i\en
    \Notes\qa i\en\bar
    \NOtes\qa i\en
    \NOTes\ha{_k}\en
    \NOtes\qa m\en\bar
    \NOTes\itieu0l\wh l\en\bar
    \NOTes\ttie0\ha l\hp\en\bar
    \NOTes\wh m\en\bar
    \NOTEs\itieu0k\wh k\en\bar
    \NOtes\ttie0\qa k\en
    \NOtes\qa i\en
    \NOtes\qa j\en
    \NOtes\qa k\en\bar
    \NOtes\qa l\en
    \NOtes\qa m\en
    \NOtes\qa l\en
    \Notes\qa k\en\bar
    \staffbotmarg=2.5\Interligne\stafftopmarg=5\Interligne
    \Notes\qa m\en
    \NOTes\ha l\en
    \Notes\qa k\en\bar
    \NOtes\itied0j\wh j\en\bar
    \NOtes\ttie0\wh j\en\bar
    \NOTes\wh k\en\bar
    \NOTes\ha i\en
    \NOTes\ha k\en\bar
    \Notes\qa j\en
    \Notes\qa i\en
    \NOTes\itied0h\ha h\en\bar
    \NOtes\ttie0\qa h\en
    \NOtes\qa f\en
    \NOtes\qa g\en
    \NOtes\qa h\en\bar
    \NOtes\qa i\en
    \NOtes\qa j\en
    \NOtes\qa i\en
    \NOtes\qa h\en\bar
    \NOtes\qa j\en
    \NOTes\ha i\en
    \NOtes\qa g\en\Setvolta1\doublebar
    \NOtes\itied0f\wh f\en\bar
    \NOtes\ttie0\hup f\qp\en\bar
    \NOtes\pause\en\bar
    \NOtes\pause\en\setendvoltabox\Setvolta2\rightrepeat
    \NOtes\qa f\hpausep\en\bar
    \NOtes\pause\en\setendvoltabox\setvolta3\doublebar
    \NOtes\itied0f\wh f\en\bar
    \NOtes\ttie0\wh f\en\bar
    \NOtes\wh{_k}\en\bar
    \NOtes\hlp i\en
    \NOtes\qa{_k}\en\bar
    \NOtes\itieu0m\wh m\en\bar
    \NOtes\ttie0\itieu0m\wh m\en\bar
    \Notes\ttie0\qa m\hpausep\en\bar
    \Notes\pause\en\Endpiece

    \end{music}
    \end{document}
  4. 譜表兩行、歌詞兩段

    以上是譜表只有一行時(one staff)的情形,如果有兩行咧?兩個 staffs,每個 staff 各有兩行歌詞的情形如下面例 5 所示,staff 之間的音符以 pipe「|」分隔。這個例子值得注意的新東西有:
    • \setlyricsmulti{i}{s}{歌詞代碼1,歌詞代碼2...} % 設定第 i 個樂器的第 s 個 staff 的歌詞有哪些。
    • \lyrraisemulti{i}{s}{a/b n\internote} % 設定第 i 個樂器的第 s 個 staff 的歌詞與五線譜的距離。a 或 b 選一種(但我還不知道意思)。n 是數值,可正可負。
    • \interstaff{is} % 在兩個 staff 之間加入空白的 staff,使詞的垂直空間變大。i 指第幾個樂器,s 指加上第幾個 staff。

    例 5
    \documentclass[11pt,a4paper]{article}
    \usepackage{musixtex}
    \input musixlyr
    \begin{document}
    \begin{music}
    \setlyrics{soprano1}{La Si Do Re Mi Fa So La Si Do}
    \setlyrics{soprano2}{a b c d e f g h i j}
    \setlyrics{bass1}{Do Re Mi Fa So La Si Do Re Mi}
    \setlyrics{bass2}{J K L M N O P Q R S}
    \assignlyricsmulti12{soprano1,soprano2}
    \assignlyricsmulti11{bass1,bass2}
    \lyrraisemulti12{b -0.3\internote}
    \lyrraisemulti11{b -3.5\internote}
    \interstaff{13}
    \interstaff{14}
    \interstaff{15}
    \nobarnumbers
    \instrumentnumber{1}
    \setstaffs12
    \generalmeter{}
    \setclef1\bass
    \songtop2
    \songbottom1
    \sepbarrules
    \startextract
    \NOTes\wh{J}|\en
    \NOTes\wh{K}|\en
    \NOTes\wh{L}|\en
    \NOTes\wh{M}|\en
    \NOTes\wh{N}|\en
    \NOTes\wh{O}|\wh{a}\en
    \NOTes\wh{P}|\wh{b}\en
    \NOTes\wh{Q}|\wh{c}\en
    \NOTes\wh{R}|\wh{d}\en
    \NOTes\wh{S}|\wh{e}\en
    \NOTes|\wh{f}\en
    \NOTes|\wh{g}\en
    \NOTes|\wh{h}\en
    \NOTes|\wh{i}\en
    \NOTes|\wh{j}\en
    \zendextract
    \end{music}
    \end{document}
  5. 在歌詞最前面編碼或加上文字

    而如果要在兩段歌詞前面編號或寫其他字,其做法是在歌詞前加上 \llap{},{} 內為要加的數字或文字,例如:
    \setlyrics{soprano1}{\llap{1. }歌詞內容 1}\setlyrics{soprano2}{\llap{2. }歌詞內容 2}
    另一種做法是加在音符開始前,例如加上:
    \znotes\loffset{2.2}{\verses{\lyric*{1.},\lyric*{2.}}}\en\hardspace{4mm}%
    就會為歌詞編號,第二行是在編號與歌詞之間設定空白距離。

    例 6
    \documentclass[11pt,a4paper]{article}
    \usepackage{CJK}
    \usepackage{musixtex}
    \input musixlyr
    \begin{document}
    \begin{CJK*}{Bg5}{bsmi}
    \begin{music}
    \setlyrics{soprano1}{\llap{唱名~~~}La Si Do Re Mi Fa So La Si Do}
    \setlyrics{soprano2}{\llap{代碼~~~~}a b c d e f g h i j}
    \setlyrics{bass1}{La Si Do Re Mi Fa So La Si Do}
    \setlyrics{bass2}{J K L M N O P Q R S}
    \assignlyricsmulti12{soprano1,soprano2}
    \assignlyricsmulti11{bass1,bass2}
    \lyrraisemulti12{b -0.3\internote}
    \lyrraisemulti11{b -3.5\internote}
    \interstaff{13}
    \interstaff{14}
    \interstaff{15}
    \setlyrstrut
    \nobarnumbers
    \instrumentnumber{1}
    \setstaffs12
    \generalmeter{}
    \setclef1\bass
    \sepbarrules
    \startextract
    \znotes\loffset{2.2}{\verses{\lyric*{唱名},\lyric*{代碼}}}\en
    \hardspace{4mm}%
    \NOTes\wh{J}|\en
    \NOTes\wh{K}|\en
    \NOTes\wh{L}|\en
    \NOTes\wh{M}|\en
    \NOTes\wh{N}|\en
    \NOTes\wh{O}|\wh{a}
    \en\NOTes\wh{P}|\wh{b}\en
    \NOTes\wh{Q}|\wh{c}\en
    \NOTes\wh{R}|\wh{d}\en
    \NOTes\wh{S}|\wh{e}\en
    \NOTes|\wh{f}\en
    \NOTes|\wh{g}\en
    \NOTes|\wh{h}\en
    \NOTes|\wh{i}\en
    \NOTes|\wh{j}\en
    \zendextract
    \end{music}
    \end{CJK*}
    \end{document}
  6. 樂器兩種、歌詞各一段的情形

    有一種以上樂器的情形時,使用 musixlyr 的方式如例 7。例 7 設定樂器兩個,歌詞各一段,樂器之間以「&」隔開。對我來說目前想知道的新東西有:
    • \interinstrument=xmm % 在兩個樂器之間加入多少 mm 垂直空白的意思。
    • \setsongraise{i}{xmm} % 設定第 i 個樂器的歌詞上升多少 mm。x 可為負數。

    例 7
    \documentclass[11pt,a4paper]{article}
    \usepackage{musixtex}
    \input musixlyr
    \begin{document}
    \begin{music}
    \nobarnumbers
    \instrumentnumber{2}
    \generalmeter{}
    \setclef1\bass
    \setlyrics{soprano}{La Si Do Re Mi Fa So La Si Do}
    \setlyrics{bass}{Do Re Mi Fa So La Si Do Re Mi}
    \assignlyrics2{soprano}
    \assignlyrics1{bass}
    \songtop2
    \songbottom1
    \interinstrument=8mm
    \setsongraise2{-0.5mm}
    \setsongraise1{-0.2mm}
    \documentclass[11pt,a4paper]{article}

    \sepbarrules
    \startextract
    \NOTes\wh{J}&\sk\en
    \NOTes\wh{K}&\sk\en
    \NOTes\wh{L}&\sk\en
    \NOTes\wh{M}&\sk\en
    \NOTes\wh{N}&\sk\en
    \NOTes\wh{O}&\wh{a}\en
    \NOTes\wh{P}&\wh{b}\en
    \NOTes\wh{Q}&\wh{c}\en
    \NOTes\wh{R}&\wh{d}\en
    \NOTes\wh{S}&\wh{e}\en
    \NOTes\sk&\wh{f}\en
    \NOTes\sk&\wh{g}\en
    \NOTes\sk&\wh{h}\en
    \NOTes\sk&\wh{i}\en
    \NOTes\sk&\wh{j}\en
    \zendextract
    \def\atnextbar{\znotes\lyric{}&\lyric{}\en}
    \end{music}
    \end{document}
此外從這兩個例子也可以注意到,同一個樂器有兩個 staff 跟兩個樂器,最左邊的括弧形狀並不相同。

補記。2012-04-23

練習了幾份譜之後,發現單純使用 musixtex 這個編譯方法,做出來的譜自動長得很漂亮,但直接在文件裡寫,就容易出問題,而且怎麼改都改不好,一直抄來抄去,成為待解的問題(這應該是無法 input musixsty.tex 的緣故)。加上回頭來看當初的〈Mamma〉,音符與音符之間的距離比例很失準,因此整理了一下當初寫的內容,再依友人的建議,以 input 的方式,分別在兩份主文件裡引入樂譜檔,重新製作〈Mamma〉的譜。這樣果然好多了。

首先是樂譜及歌詞本身,命名為 mamma.tex:
\nobarnumbers
\parindent0pt
\resetlyrics
\generalmeter{\meterfrac44}
\generalsignature{-4}
\metron{\smallnotesize\lqu}{ca. 90}
\scale{1.1}

\setlyrics{mamma1}
{Mam-ma, son tan-to fe-li-ce_
per-ch\'e ri-tor-no da te._
La mia can-zo-ne ti di-ce_
ch'\`e\lyrlink il pi\`u bel sog-no per me!_
Mam_ ma, son tan-to fe-li-ce..._
Vi-ver lon-ta-no per-ch\'e?_
Mam-ma,_ so-lo per te la mia can-zo-ne vo-la,_
Mam-ma,_ sa-rai con me, tu non sa-rai pi\`u so-la!_
Quan-to ti vo_ glio be-ne!_
Ques-te pa-ro-le d'ar-mo-re_
che ti sos-pi-ra\lyrlink il mio cuo_ re_
For-se non s'u-sa-no pi\`u,_
Mam-ma!_ ma la can-zo-ne mia pi\`u bel-la sei tu!_
Sei tu la vi_ ta_ e per la vi-ta non ti la-scio mai pi\`u!_
pi\`u!
pi\`u!_ Mam-ma, mai pi\`u!__}
\setlyrics{mamma2}
{Sen-to la ma-no tua stan-ca:_
cer-ca\lyrlink i miei ric-cio-li d'or._
Sen-to,\lyrlink e la vo-ce ti man-ca,_
la nin-na nan-na d'al-lor._
Og_ gi la tes-ta tua bian-ca_
io vo-glio strin-gere al cuor._}

\assignlyrics1{mamma1,mamma2}

\startpiece\bigaccid
\staffbotmarg=4\Interligne\stafftopmarg=4.5\Interligne
\leftrepeat
\NOTes\ha j\en
\Notes\qa j\en
\Notes\qa j\en\bar
\NOTes\ha j\en
\Notes\qa i\en
\Notes\qa h\en\bar
\Notes\qa i\en
\NOTesp\itied0g\hup g\en\bar
\NOTEs\ttie0\wh g\en\bar
\NOTes\ha i\en
\Notes\qa i\en
\Notes\qa i\en\bar
\Notes\qa j\en
\NOTes\ha h\en
\Notes\qa g\en\bar
\NOTEs\itied0f\wh f\en\bar
\NOTEs\ttie0\wh f\en\bar
\NOTes\ha j\en
\Notes\qa j\en
\Notes\qa j\en\bar
\NOTes\ha j\en
\Notes\qa i\en
\Notes\qa h\en\bar
\Notes\qa i\en
\NOTesp\itied0g\hup g\en\bar
\NOTEs\ttie0\wh g\en\bar
\NOTes\ha i\en
\Notes\qa i\en
\Notes\qa i\en\bar
\Notes\qa j\en
\NOTes\ha h\en
\Notes\qa g\en\bar
\NOTEs\itied0f\wh f\en\bar
\NOTesp\ttie0\hup f\en
\Notes\qp\en\bar
\NOTes\itied0g\ha g\en
\Notes\ttie0\qa g\en
\Notes\qa g\en\bar
\NOTes\ha g\en
\Notes\qa h\en
\Notes\qa i\en\bar
\Notes\qa h\en
\Notes\qa g\en
\NOTes\itied0f\ha f\en\bar
\NOTEs\ttie0\wh f\en\bar
\staffbotmarg=4\Interligne\stafftopmarg=4.5\Interligne
\NOTes\ha g\en
\Notes\qa h\en
\Notes\qa i\en\bar
\Notes\qa h\en
\NOTes\ha g\en
\Notes\qa i\en\bar
\NOTEs\itieu0j\wh j\en\bar
\setsign10\ignorenats\changesignature
\NOTEs\ttie0\wh j\en
\assignlyrics1{mamma1}%
\generalsignature{-1}\Changecontext
\NOTEs\wh h\en\bar
\NOTEs\itied0f\wh f\en\bar
\Notes\ttie0\qa f\en
\Notes\qa c\en
\Notes\qa d\en
\Notes\qa e\en\bar
\Notes\qa f\en
\Notes\qa g\en
\Notes\qa h\en
\Notes\qa i\en\bar
\staffbotmarg=3\Interligne\stafftopmarg=3.5\Interligne
\NOTesp\hlp j\en
\Notes\qa h\en\bar
\Notes\qa i\en
\NOTesp\itied0g\hup g\en\bar
\NOTEs\ttie0\wh g\en\bar
\NOTEs\wh g\en\bar
\NOTEs\itied0e\wh e\en\bar
\Notes\ttie0\qa e\en
\Notes\qa c\en
\Notes\qa d\en
\Notes\qa e\en\bar
\Notes\qa g\en
\Notes\qa h\en
\Notes\qa i\en
\Notes\qa j\en\bar
\NOTesp\hlp k\en
\Notes\qa j\en\bar
\Notes\qa i\en
\NOTesp\itied0h\hup h\en\bar
\NOTesp\ttie0\hup h\en
\Notes\qp\en\bar
\NOTes\ha j\en
\Notes\qa j\en
\Notes\qa j\en\bar
\NOTes\itieu0k\ha k\en
\Notes\ttie0\qa k\en
\Notes\qa j\en\bar
\Notes\qa h\en
\NOTesp\itied0f\hup f\en\bar
\NOTEs\ttie0\wh f\en\bar
\NOTes\ha j\en
\Notes\qa j\en
\Notes\qa j\en\bar
\Notes\qa k\en
\NOTes\ha j\en
\Notes\qa i\en\bar
\Notes\qa h\en
\NOTesp\itied0g\hup g\en\bar
\NOTesp\ttie0\hup g\en
\Notes\qp\en\bar
\NOTes\ha i\en
\Notes\qa i\en
\Notes\qa i\en\bar
\Notes\qa i\en
\NOTes\ha j\en
\Notes\qa{_k}\en\bar
\Notes\islurd0j\qa j\en
\Notes\tslur0{'a}\qa{_a}\en
\NOTes\itieu0j\ha j\en\bar
\NOTEs\ttie0\wh j\en\bar
\NOTes\ha i\en
\Notes\qa i\en
\Notes\qa i\en\bar
\Notes\qa i\en
\NOTes\ha{_k}\en
\Notes\qa m\en\bar
\NOTEs\itieu0l\wh l\en\bar
\NOtesp\ttie0\ha l\hp\en\bar
\NOTEs\wh m\en\bar
\NOTEs\itieu0k\wh k\en\bar
\notesp\ttie0\qa k\en
\notesp\qa i\en
\notesp\qa j\en
\notesp\qa k\en\bar
\Notes\qa l\en
\Notes\qa m\en
\Notes\qa l\en
\Notes\qa k\en\bar
\staffbotmarg=2.5\Interligne\stafftopmarg=6\Interligne
\Notes\qa m\en
\NOTes\ha l\en
\Notes\qa k\en\bar
\NOTEs\itied0j\wh j\en\bar
\NOTEs\ttie0\wh j\en\bar
\NOTEs\wh k\en\bar
\NOTes\ha i\en
\NOTes\ha k\en\bar
\Notes\qa j\en
\Notes\qa i\en
\NOTes\itied0h\ha h\en\bar
\Notes\ttie0\qa h\en
\Notes\qa f\en
\Notes\qa g\en
\Notes\qa h\en\bar
\Notes\qa i\en
\Notes\qa j\en
\Notes\qa i\en
\Notes\qa h\en\bar
\Notes\qa j\en
\NOTes\ha i\en
\Notes\qa g\en\Setvolta1\doublebar
\NOTEs\itied0f\wh f\en\bar
\NOTesp\ttie0\hup f\en
\Notes\qp\en\bar
\NOTEs\pause\en\bar
\NOTEs\pause\en\setendvoltabox\Setvolta2\rightrepeat
\Notes\qa f\en
\NOTesp\hpausep\en\bar
\NOTEs\pause\en\setendvoltabox\setvolta3\doublebar
\NOTEs\itied0f\wh f\en\bar
\NOTEs\ttie0\wh f\en\bar
\NOTEs\wh{_k}\en\bar
\NOTesp\hlp i\en
\Notes\qa{_k}\en\bar
\NOTEs\itieu0m\wh m\en\bar
\NOTEs\ttie0\itieu0m\wh m\en\bar
\Notes\ttie0\qa m\en
\NOTesp\hpausep\en\bar
\NOTEs\pause\en\Endpiece

接著是純樂譜檔的主文件,命名為 mamma_mux.tex:
\ifx\mxversion\undefined
\input musixtex
\input musixcpt
\input musixsty
\input musixlyr
\fi

%\title{Andante cantabile (D. Purcell)}
%\csname titremorceautoc\endcsname
%\fulltitle{Andante cantabile}
\title{Mamma}
%\subtitle{(extrait d'une sonate pour fl<96>te)}
\author{Cesore Andreo Bixio (1986-1978)}
%\shortauthor{D. Purcell, D. Taupin}
\othermention{Bruno Cherubini (1899-1987)}

\maketitle
\input mamma.tex
\bye

再來是把樂譜檔放在文件裡的方式的主文件,命名為 mamma_tex.tex
\documentclass[11pt,a4paper]{article}

\usepackage[top=2cm,bottom=1cm,left=1.1cm,right=1.1cm]{geometry}
\usepackage{musixtex}
\usepackage{times}
\input musixlyr

\pagestyle{headings}
\parindent0pt

\begin{document}
\thispagestyle{empty}

\centerline{\Huge \textbf{Mamma}}
\begin{flushright}
Cesare Andrea Bixio (1896-1978)\\
Bixio Cherubini (1899-1987)%Bruno
\end{flushright}
%\begin{flushleft}Bruno Cherubini\end{flushleft}

\begin{music}
\input{mamma}
\end{music}
\end{document}

把這些檔案放在同一個資料夾裡,對 mamma_mux.tex 做
$ musixtex mamma_mux.tex
對 mamma_doc.tex 做
$ latex mamma_tex.tex
$ musixflx mamma_doc.tex
$ latex mamma_doc.tex
就可以一次得到兩種形式的結果。但在此我主要是要得到較好的文件檔結果。以下附上上述結果的圖檔及 pdf 檔。
mamma_mux.jpg (NEW 20120504)
mamma_tex.jpg (NEW 20120504)
mamma_mux.pdf (NEW 20120504)
mamma_tex.pdf (NEW 20120504)


後記 2012-05-05

最後附上朋友為〈Mamma〉加上和絃的版本(chorded version),做為本篇的結束。
〈Mamma〉和絃版(chorded version)jpg 檔 pdf 檔

資料來源

http://icking-music-archive.org/software/musixtex/musixdoc.pdf
http://icking-music-archive.org/software/musixtex/add-ons/musixlyr.zip
http://icking-music-archive.org/software/musixtex/add-ons/

相關文章

MusiXTeX 筆記之初級篇

No comments:

Post a Comment