LilyPond version 2.10

Preface(Lilypond)
It must have been during a rehearsal of the EJE (Eindhoven Youth Orchestra), somewhere in 1995 that Jan, one of the cranked violists told Han-Wen, one of the distorted French horn players, about the grand new project he was working on. It was an automated system for printing music (to be precise, it was MPP, a preprocessor for MusiXTeX. As it happened, Han-Wen accidentally wanted to print out some parts from a score, so he started looking at the software, and he quickly got hooked. It was decided that MPP was a dead end. After lots of philosophizing and heated email exchanges, Han-Wen started LilyPond in 1996. This time, Jan got sucked into Han-Wen’s new project.

In some ways, developing a computer program is like learning to play an instrument. In the beginning, discovering how it works is fun, and the things you cannot do are challenging. After the initial excitement, you have to practice and practice. Scales and studies can be dull, and if you are not motivated by others.teachers, conductors or audience. it is very tempting togive up. You continue, and gradually playing becomes a part of your life. Some days it comes naturally, and it is wonderful, and on some days it just does not work, but you keep playing, day after day.

Like making music, working on LilyPond can be dull work, and on some days it feels like plodding through a morass of bugs. Nevertheless, it has become a part of our life, and we keep doing it. Probably the most important motivation is that our program actually does something useful for people. When we browse around the net we find many people who use LilyPond, and produce impressive pieces of sheet music. Seeing that feels unreal, but in a very pleasant way.

Our users not only give us good vibes by using our program, many of them also help us by giving suggestions and sending bug reports, so we would like to thank all users that sent us bug reports, gave suggestions or contributed in any other way to LilyPond.

Playing and printing music is more than a nice analogy. Programming together is a lot of fun, and helping people is deeply satisfying, but ultimately, working on LilyPond is a way to express our deep love for music. May it help you create lots of beautiful music!
Han-Wen and Jan
Utrecht/Eindhoven, The Netherlands, July 2002.


Next: , Previous: (dir), Up: (dir)

このweb-documentは単なるこう言う物か程度の参照でお願いします. 私が譜面を 書く上で, 覚書している文書です.

本格的には http://lilypond.org/doc/v2.10/Documentation/ の開発チーム作成のdocumentを絶対にサーチして理解してください.
それがLilyPond(Music typesetter)の理解の早道です.
LilyPondは楽譜作成・midi作成をテキストマークアップ記述で実現している オペレーションシステムです.
且つ, 音楽計算はAUTOMATED MUSIC ENGRAVING(自動計算処理組版)のシステムになって おります.

DEVELOPMENT TEAM
(Honorific title abbreviation.)
Han-Wen Nienhuys - Core development
Jan Nieuwenhuizen - Core development
Graham Percival - Documentation Editor and Bug Meister
John Mandereau - Translation Meister
Mats Bengtsson - Support Guru
Below abbreviation.

LilyPondは各国言語に対応しております, もちろん日本語にも 対応しています. 日本語 Windows OS でも対応できます.
和語shift-jisコードの文章の中にも文書にもLilyPondの和語譜面, 和語楽譜は可能です.



Next: , Previous: Top, Up: Top

Concept Index



Next: , Previous: Concept Index, Up: Top

Cheat —LilyPond—

Syntax Description Example

1 2 4 8 16 32 64

durations

[image of music]

コード記述に於いて, 数値の付いてない音符(or 歌詞)は前々と参照し数値の付いている 音符を参照します
c8 c a g2 e c'4 e'' d'' = c8 c8 a8 g2 e2 c'4 e''4 d''4 と同価です.


Octave上がる度にnote' note”と付け, Octave下がる度にnote, note,,と" ' " or " , "を 添えます, default " c d e f g a b "は\clef bassにおける位置取りです.

[image of music]

• 音程の絶対値記述(上記例図)
a,,8 b,, c, d, e, f, g, a, | b, c d e f g a b | c'8 d' e' f' g' a' b' c'' | d'' e'' f'' g'' a'' b'' c''' d''' |

•音程の相対値記述方法(下記例図)
\relative c { c'' f, f c' g' c, a b }

[image of music]

\relative で括ってコードを綴るのですが, 解説は省きます

• 音符列を, そのまま, 例えば5度下げる(上もok)場合,
g'4 a' b' c''8 d'' | c''4 b' a' g' | %% 1-2小節目
\transpose g' c' { g'4 a' b' c''8 d'' | c''4 b' a' g' | }%% 3-4小節目 (完全5度下げる, cpuに自動計算処理をさせる)

[image of music]

本来なら g' ==> c' 等々と自己計算処理で綴っていくのですが,
\transpose で括って, その範囲内を一気にcpuが計算処理してくれます.
この場合, 調号記号\keyによる臨時記号の有無発生に注意が必要になります.

作曲して行く時, 下から徐々に上昇, 上から徐々に下降等々とし, 急な上下は初期段階では 避けた方が綺麗な作曲になります. 上昇や下降も完全音程(協和音)で行う心積もり. つまり, 大波小波等のうねり運動の上下重なりを連想して曲を書いていくと, 美しい曲に 響きます, その際, 協和音でうねり運動の重なりを綴って行くと良い曲になります.
和音構成綴りでの不協和音混入の例は 2007-siena.htmlに有ります. このノイズはmidiに於けるものではなく, 不協和音混入が原因です. 取り 除くと透き通る様な和音構成の曲になるはずですですが.

歌曲に於いては, その発音が音価(2分音符か, 4分音符か, 8分音符か, 16分音符か)は発声 に非常に重要になります.
この音価を, 一つの目安に歌曲を綴っていくと案外描けてきます. もちろんこの場合も 協和音の関係を保つですが.


note(音)は音価(note)と一体になっており, 音価はある値(duration,Octave)を持って 量られています. この値(Duration)が音符 (全音符・2分音符・4分音符・8分音符・16分音符・32分音符・64分音符・等々)です. これは, 全音の時間経過を定めて, その時間経過を均等に分割した値です.
演奏速度標語"Largo"と言った表現も, 人によって裁き方は千差万別です, ベートーベンはこれを嫌って ♪ = 120(1分間に120打の強弱-を8分音符とする)等々と指定する メトロノーム方式を開発し, 自己の楽譜譜面で用いだしてからメトロノームでの数値表現が 一般化しています(注意; 打・打・打でなく–自然打法=強[打]弱[打]強[打]弱[打]の 数えです, or その逆(人為打)–).
一方,音価その物はOctaveの基準を持って測られています. こちらは, その音の振動数値の 区切りで, その音が440HZ振動を持っている時を"a"と定めて880HZに鳴った時を"a'"としaの 1octaveのnote(音)等々と公称します. 前者のDurationは音楽界の決まりごとであり, 後者は 世界標準単位での定義決定事項です.
全音の数個の時系列集合のある一定区切継続が, 音楽界での1小節の定義になっています. これは例えば, "\time 3/2"等々と表記して1小節は2分音符時系列の3個の長さを持っている を意味します. ですから4分音符に換算すると6個の意味になりますが, 実際の譜面は様々な 音符の時系列並びで綴られいますが. 1小節内\timeの値を超える時間的長さは有り ません. 例外として音楽界のtieやslurの跨ぐ小節間はその限りではありません.

いずれにおいても, これら関係を, 記号表現法で確立しているのが「譜面」で楽譜として 綴じられます. つまり, その音の時間的長さ振動数を直に思考するのではなく, 記号で扱い ます. a=440HZのnoteと言っても, その前に前置詞の, これはpanoのa-note, trupetのa-note 等とせず, aの記号を用いれば, 同じ楽譜を見てピアニストはその音を, 管楽器はその音をと 解釈できます.
音楽家は作曲にしろ演奏にしろ, これら物の時間経過や振動数等々を思考せずnote(音価)で 書き綴っていけますし, 演奏家はそれを見て演奏も唄も可能になっています(結果的には 時間継続や振動数の考量しているのです).

この, 物の疎と満つの波動が観客のいる劇場空間を伝播していくのですが, その波動エネル ギーは, 自然界での表示する気圧単位よりははるかに小さな値です. 演奏している劇場空間に いると, アインシュタインの"力"が3次元に分解しているばかりか, 現宇宙(天体)は 時間にも分解している4次元の世界と立証した, この相対性理論を目の当たり実感すると思い ます. 時間に分解した? 演奏が終了し劇場を退出する時, 出入り口は同じでも時間的経過を 持って出て行きます. 入場した時間と退出した時間には差異があります. 例えに因らずとも, 時間軸は日常生活の基本的に働いています.

以下音階の振動数です(同振動数でも楽器よって響きは様々に鳴ります).
音価名はLilyPondによります.

[image of music]

ピッチパイプと言う調子笛(約1,000円程度)が市販されています, 小さな物で ポケットに持ち歩いていて, 興味or心に伝わってきた音をピッチパイプで でメモっておくと良いです, 正確でなく, 凡そでもいいのです. 音のコーデング すると, 以外に正確に綴りだしますので. ぜひ推薦します.



声楽に於ける音域です.

[image of music]

どうです, この振動数の集合体が一斉に発声する, その伝播する波動には これを見ただけで感動するでしょう.
何処の市町村やその近辺には, 必ずアマチュア合唱団が存在しています. satbと揃っている混声なら, なおさら顔を出して入団してみたらいかがです.? LilyPondは必ず力になります. 経験上から断言できます.







Syntax Description Example
r R rest

[image of music]

default; Vertical position.
R set up in type; center in bar.(R1 R2. ...)


上図例の休符位置がdefaultです.
1小節内, 全休符を意味するなら r1 , R1 , R1. 等と記述します. capital(or uppercase) letter R や R1. は小節内中央に組版します.
休符は休憩ではありません, 休と言う音符の一つです.
polyphony のstaff等々であるなら休符の位置は自動で垂直移動してその音符列に 並んで組版されます.
強制(人為)組版指示は, 例えば a''4\rest で 音階a”位置に4分休符を組版します.

数小節1行lineが全てR休符で......そう言った休符だけのlineを組版から 外すことが出来ます.
\layout {
\context { \RemoveEmptyStaffContext }
}

これで, 休符行は組版から消すことが出来ます. ただし, 譜面冒頭の休符行は組版 されます, 譜面冒頭の休符行も組版から消すには, そのパート冒頭行のコード記述へ
\override Score.VerticalAxisGroup #'remove-first = ##t
これで消せます. この二つのシーケンスを併用すると, 譜面組版上に現れる休符行lineは 全て組版から外すことが可能です. 参照; ave-rosary.html

休符の形式にはいろいろと有りますが, LilyPondはおおむね自動対応が原則で行ってくれます. 例えば, clarinet単独譜面での R1 * 20(20小節全休符)と言った譜面コーデングも, Orchestralの全譜面に組み込むと自動的に20小節間に渡ってR1が組版されるとかされます.

LilyPondのThe Lyrics contextでの翻訳機能は, 音符翻訳でのVoice contextでの r , R 等々の休符音符は無視しますので. stanza コーデングでは考慮しなくて OKです. 特に\addlyricsは自動で音符とコーデングstanzaの一致を行います. あるいは, " "4 等でr4に対応します. しかし, 概ねほとんど自動で処理がされます. ですので, R1 * 4 とのVoice contextの裁きはLyrics contextの方はstanzaを その旨に自動的に対応裁き(無視 * 4)を行います.







Syntax Description Example
is es ! alteration
accidental

[image of music]



• noteから見るとalteratio(派生音)ですが, 記号から見るとaccidental(臨時記号)の 意味です.
西洋音楽の五線譜序列 c d e f g a b は, 互い高さの幅(空間・距離=音程)がどの階も同じに 見えますが, noteから見ると, eとf , bとc' の音程は他の互いの音程の半分です. 既図の振動数譜面を見るとeとf, bとc'の間には派生音は入っていないが見れると思います.
上昇でのcis(sharp)と下降でのdes(flat)等々の派生音は同一音です. これは, 譜面綴り上 どちらを表記するかだけです. db.sharp , db.flat は全音移動なのでその階の音符名と 同じなのですが, 理論上db.sharp , db.flatで記述するのが音楽界の決まりごとになって います.

派生音を明示するのに臨時記号で表記するのですが, 例えば, 全ての音符に cis dis eis fis gis ais bis と楽譜全体に臨時記号符のついた譜面では 煩わしいので, 調号と言うis7個のみを纏めた列を五線譜の最初に置いて, 譜面の方は c d e f g a bでの表記で済ませます, 纏めてis?個置いた記号列を調号と称し通常?keyと 呼んでいます. 特にプレイヤーはこのkeyを探ります, keyさえ分かれば, 聴いた音楽は即座に 弾けるからです, あるいは, 歌えるからです. メロディーを聴いて譜面がなくとも, その メロディーのkeyさえ分かれば......彼らは即座に楽器を弾けますし即座に歌えます.

調号(key)がどうであれ, 1小節内に明記された臨時記号(派生音)符がその小節内に於い ては優先されます, 小節が終えればもとのkeyの関係符にもどります. 親切な作曲家は元に 戻った事を意味するnatural記号をつけて明示する書き方をする人もいますが, 多くはその ままです. 但し, 1小節内で派生音にしたり戻りした時にのみnatural記号は附けます. LilyPondは親切な方を選択していますので, 元に戻れば自動でnatural記号符を組版します. 但し, 1小節内で発生音させその音を元に戻すときは, 人為(強制)的note!(natural記号符)と コーデングはしますが, 概ねlilyPondは\keyによるstaffでは自動対応しています.


• 臨時記号の表記には色々ありますがその代表例です.

[image of music]

もちろん, 臨時記号はkeyによって変わります(isのkey記号で対応音符へesesを付けたら, !es音符になります. LilyPondは全て自動で処理してくれます.



Signature(調号記号) \keyを指定する事によって, notesに附く–組版する– 臨時記号を消します.
default \key c\major = LilyPond coding notes is like this, c d e f g a b

[image of music]


\key g\major = like this, c d e fis g a b

[image of music]


\key d\major = like this, cis d e fis g a b

[image of music]


\key a\major = like this, cis d e fis gis a b

[image of music]


\key e\major = like this, cis dis e fis gis a b

[image of music]


\key b\major = like this, cis dis e fis gis ais b

[image of music]


\key fis\major = like this, cis dis eis fis gis ais b

[image of music]


\key cis\major = like this, cis dis eis fis gis ais bis

[image of music]


\key f\major = like this, c d e f g a bes

[image of music]


\key bes\major = like this, c d ees f g a bes

[image of music]


\key ees\major = like this, c d ees f g aes bes

[image of music]


\key aes\major = like this, c des ees f g aes bes

[image of music]


\key des\major = like this, c des ees f ges aes bes

[image of music]


\key ges\major = like this, ces des ees f ges aes bes

[image of music]


\key ces\major = like this, ces des ees fes ges aes bes

[image of music]


この他に, \key \mainorや旋律等々での\key展開が有りますが省略します. いずれにしましても, これらが前ページの音程関連項目に振り分けられ 関連付けなされて, 不協和音は協和音へと導きを案内を示しています.

\keyは曲の途中で変更も出来ます. 通常, 作曲家はその知らせをしないまま \keyの変更している......案外多いです, 聴いていて気がついたら\keyが 変わっている! 目で見る譜面に is , es , ! 等々の臨時記号がやたら多い譜面部分が 有ったら要注意です, 拾い詳しく追ってみると\keyの変更!が, 演奏を聴いて いるだけだと, 心地よく知らない間に導かれてしまうので多くは見過ごしますが. LilyPondは明示的に\key変更を宣言してコーデングをすれば, 譜面にその旨を 表示してくれます. 参照; 2007-pompei5.html

LilyPondに於いては, 夫々の\key nameは同時に\clef nameへの対応も 自動手計算しますので, 自らの計算は必要ありません.







Syntax Description Example
. .. augmentation dots

[image of music]



文字通り, 増加(Durationsの)音符を意味するdotですが. その音の1.5倍が" . "で, その音の1.75倍を表したのが" .. "です. 例えば, a2.音符なら=2分音符 + 4分音符で, a4.音符なら=4分音符 + 8分音符です. 同様にa2..=2分音符 + 4分音符 + 8分音符で, a4..=4分音符 + 8分音符 + 16分音符の値です. 休符でも条件は同じです.
Augmentation dotsで記譜できない記述になると, 一般的に作曲家はtie記号を持ち出して 綴り, 音楽表現を行います.

こう言ったAugmentation dotsに注目した解きに, 作曲家は音価を加算で思考している? ......と研究され, 全音の除数音符(減算音符から産まれて来た)で評価して きた五線譜記述(録音)が, 現代では乗数(加算)音符構造で行われているのではないかと の理由付けになっています.







Syntax Description Example
\clef clefs

[image of music]

The same position; for sound c' by LilyPond.


サンプルは各音部記号での同一音c'に於ける表記です.
LilyPondは例えば,

     example = { music coding }
     \score {
     \new Voice = "soprano" { \clef soprano \key d\major \time 3/2
\example } \layout { } \midi { } }

こんな感じ等々で, 書き綴ったmusic codingを\clef name で自動で五線譜へ展開しますので, この\clef nameの部分を soprano, alto, tenor, bass, 等々に書き換えれば music coding 部分は夫々のclef対応での表記に自動対応します.
LilyPondでのmusic-codeing は各人色々な方法を採って自分に合った書き方をしています. おおよそ, \input 方式で書き綴っている方, 上記の私の様なmacro記述, \scoreへ 直に書き綴っている方, 等々の3者に分類できると思います. \input方式は完全にオーケストラ 用の楽譜譜面で最大の威力を持っています. 図例の如く\clef nameも曲の途中で 変更することが出来ます.

また, これらの\clef nameは\key nameでの表記も自動で対応 組版しますので, 人による面倒なかつ複雑な計算は一切必要ありません.







Syntax Description Example
\time time signature

[image of music]



通常, \time 2/2\time 4/4の二つは図例のように記号で印されます. \time 2/2 , \time 4/4をも数値印しで組版させるには.
\override Staff.TimeSignature #'style = #' ()と宣言後に\time 2/2 等とすれば数値印しで組版できます.

Time(\time 数値)は音楽の時間的流れのある単位を決めているものです. 通常音楽界では それを拍と呼んでいます. これが, 音楽表記での小節線での毎小節との区切りと絡んでいます. 例えば、\time 3/2 と記譜すると2分音符を拍と定めて, その3個の連続で区切って進行します ......のような表現になりますし, これは, 1拍2拍3拍等々数えることが出来ます. \time 3/4 も同じく1拍2拍3拍と数え, そこで区切って再び1拍2拍3拍と数えだします, つまり, 4拍5拍6拍......と連続どおりに数えて行くのではなく, あくまでも1拍2拍3拍と繰 り返しながら進行していきます.

実際の音楽では\time 3/2 でもその中には様々な音符で1小節が2分音符3個分の長さの中に 記譜されています. 1拍2拍3拍の区切りの繰り返しなら\time 3/2も\time 3/4も同じカウント です. 違うのは記譜されている音符のDuration(時間的長さ)が違うのみですが, 拍で起こる事 はおなじです. ただ, この3連続の繰り返しに"イチ・ニッ・サン" あるいは, "強弱弱"等々と 人が繰り返し意識=呼ぶ(カウント)=した時に3連続の繰り返しにリズムが生まれます.
\time 3/2 , \time 3/4 等々を3拍子(この発生したリズムをも含んで)と音楽界では呼びます, 3拍子音楽の代表はワルツ奏曲が有名ですが, 人が繰り返し意識した(呼んだ)時に, そこに アクセント・パターンが発生するがリズムの正体です.

\time 数値も曲の途中で変更することが出来ますが. 通常, 作曲家はこの様な major クラスでの変更でなく, 曲表情の変化として速度標語・曲速さ変化標語・曲想標語 等々とそれらに附ける"付加語", や奏法標語......等々を使ってminor クラスで 書いています. LilyPondはそれらを\markup {TEXT}の形で実現しています. また, midiの対応範囲内でそれも可能になっています.
これらの, 音楽界の使用標語とそれに附ける付加語等々は音楽専門書の方でお願いします.

拍をcountする時, いきなり数えだすのではなくヨーイ・ドンでstartする. そのヨーイの 部分をも取り入れて音楽で表現した譜面の小節を不完全小節と呼び, いきなりドンから startする曲の小節を完全小節と呼んでいます. 以下LilyPondでのその不完全小節の対応です.

[image of music]

\partial 8 f'8 | c'2 d' | e' d'8[ c'] e'4 | b'2.. \bar "|."
\time 数値 がどの様な値であっても \partial 数値 "その数値音符" で 書き始めれば可能です. ただし, 不完全小節の多くは譜面(曲の)最終小節で, 不完全部分の 残った分をコーデングして, 曲全体で完全小節として終了しています.

LilyPondの曲速指定は\tempo 4 = 68等々でmidiへ通知し, 組版も行います. 例えば

     playI = { music code }
     \score {
                 \context Staff = "Up" { \key d\major \time 3/4 \tempo 4 = 68
                                                \playI
                                           }
     
       \layout { }
       \midi { }
     }

こんな感じです. \tempo 音符 = 数値music code の中でも任意に変化指定 できますし, midiもそれに対応します(\clefの指定無は通常default \clef trebelが使われます).


LilyPondでの\layout\midiですが, 通常は\scoreのブロック内で 共に設定して譜面やmidiを作成する. これが普通ですが, 上記例で説明しますと
playI = { music code } を, そっくりcopyして以下のようなコーデングに仕上げます.
     playI = { music code }
     playM = { music code }
     
     %% get sheet music --------------------------------------------------------
     \score {
             \context Staff = "Up" { \clef treble \key d\major \time 3/4 %%\tempo 4 = 68
                                                \playI
                                           }
     
       \layout { }
     }
     
     %% get midi music --------------------------------------------------------
     \score {
             \context Staff = "Up" { \clef treble \key d\major \time 3/4 \tempo 4 = 68
                                              \unfoldRepeats   \playM
                                           }
     
       \midi {
                 %% \context { \Voice
                 %%             \remove "Dynamic_performer"
                 %%             \remove "Span_dynamic_performer"
                 %%           }
                 %% \context { \Score
                 %%              tempoWholesPerMinute = #(ly:make-moment 68 4)
                 %%           }
      }
     }

copyしたplayMの music code \tempo 音符 = 数値やDynamics等々を ターゲット部分へ追加コーデングしてmidiを得ます. \layout の方は速度標語等々 の音楽用語で記述します. これで, sheet-music(楽譜・譜面)と同時にそのmidiファイル を取得できます.
• \unfoldRepeats は譜面repeatをmidiに作用させます. 譜面コーデングにrepeat 記述が無ければこの定義は無視されるので別に邪魔にはなりません.
• %行はコメントで無視行です, \midiブロック内の%%を外せば, この定義は 作用します, music code の中に記述したDynamicをmidiへ作用させない指示です.
tempoWholesPerMinute = #(ly:make-moment 68 4)\tempo 4 = 68と 同じ意味で, \tempo 4 = 68 は書かず, こちらで指定している譜面コーデング している方も多いです.







Syntax Description Example
~ tie

[image of music]


(...) \(...\) slur

[image of music]



~(tie)は同じ2音符を繋いで1音の値にします. sulrは囲んだ音符間を滑らかに奏法する 等々の意味です. 同じ弧線でも意味が違います.
従って, 同じ音間の弧線がtie or sulrで意味合いが全く違ってきます. 同じ音間の 弧線が常にtieの意味とは限りません, sulrの弧線という事ことも有ります.

[image of music]



tie も slur も自動で改行等々にも対応しています. また, 弧線描は基本的に音符の符頭と符頭を結びます.
弧線描の制御は ^ or _ 明示して, 例えば音符^\(等々です.
Predefined commands(LilyPond)(LilyPondで定義されているコマンド名)
\tieUP , \tieDown , \tieNeutral
\slurUP , \slurDown , \slurNeutral , \phrasingSlurUp , \phrasingSlurDown , \phrasingSlurNeutral
\set doubleSlurs = ##t (Draw both side stem and note head)
描線として
\tieDashed , \tieDotted , \tieSolid
\slurDashed , \slurDotted , \slurSolid が有ります.
宣言すると, それらが自動的にdefault値に修正されますので, 終了時点で NeutralやSolidの値に戻しおきます. 1回限りの変更なら, これらのコマンドの前に \once\slurUP等々でもOKですが.

LilyPondのThe Lyrics contextでの翻訳では, 上記等々のVoice contextでの Slurはmelismaに翻訳されます. tieで結ばれる側の音符は無視されます(midiは+作用). stanza 例えば"bir8 ~ th2"の記法には, 日本語キーボードは対応していません, "bir8 – th2"とhyphen(一語の連結)で記法対処です. ただ, 個人的主観なのか? 楽譜で bir ~ th とtie弧線で連結した詩節句の表記譜面はhyphenで繋ぐ一般的文書記法よりも 譜面に於いては美しく見えます(また, music stanzaに見えます).
もちろん, \phrasingSlurについては melisma はしません, 対応stanzaになります.







Syntax Description Example
[ ...... ] beam

[image of music]



1小節目がLilyPondのdefault settingのautobeamの結果で, 2小節目の [ ...... ]でのコーデングが手動setting作用の結果です. 一度 [ ...... ]でコーデングを始めると, 以後はautobeamは解除され ます, 再度autobeam作用に戻すには, その場所で \autoBeamOn と宣言すれば以後auto作用に戻ります. 始めからautobeamを外すのなら \autoBeamOff と宣言して書き始めればOKです.
また, b8 c \nobeam d e と綴れば, autobeamであってもb8 cはビーム連結にはならず 夫々単独8分音符を組版しd eはビーム連結になります.

ビームと休符の譜面(組版)裁き

[image of music]


b'8[ a'] r[ g' a' b'] c''4 | b'8[ a'] r g'[ a' b'] c''4 |

[image of music]


b'8[ a'] g'[ r16 a' b'] c''4.. | b'8[ a' g'] r16 a'[ b'] c''4.. |
指揮者や演奏者がどう解釈するのか? 同じと見るか譜面の中でこの休符の違いを特別な 心理で解釈するのか? もちろん, その曲想の中で運指揮や運奏としてですが.


ビームの裁き

[image of music]


\set beatGrouping = #'(2 3) c''8[ c''16 c''8] |
\set beatGrouping = #'(3 2) c''8[ c''16 c''8] |
これは, 明確にビート(beat=アクセントを持った拍/リズム)が違うのか?. 私は音楽を 知らないし, まして楽器等々など弾けませんので分からないです. ただ, シーケンス語 beatGroupingから, beatに差異が生じるのか?と思いは持ちますが.

[image of music]

ビームの改行ですが, こういった記譜はしないほうが 良いのかも.
\set Score.allowBeamBreak = ##t
を宣言してmusic codeを書き始めれば行います.
LilyPondのautomatedに委ねるが正解でしょう.

ビームと譜面1: and \change Staff

\version "2.10.0"
#(set-global-staff-size 23)
stemExtend = \once \override Stem #'length = #15
noFlag = \once \override Stem #'flag-style = #'no-flag
UP = \change Staff = up
DOWN = \change Staff = down

pianoUP = { \clef treble \key ees\major \time 2/4
             \relative c'' { \stemUp \autoBeamOn
%1-4
             \DOWN g,16 bes \UP ees g ees \DOWN bes g bes |
             \UP ees16\f \DOWN g, bes \UP ees < d f > \DOWN bes
             \UP < ees g > \DOWN bes | \UP < d f >16 \DOWN bes \UP < d f > \DOWN bes
             \UP ees8\fermata r8\p |
             r16 bes < ees g > bes r16 bes < aes d > bes | }}

pianoDOWN = { \clef bass \key ees\major \time 2/4 \stemDown \autoBeamOn
%1-4
             < ees, ees>2 | << { \skip 8 * 2 \noFlag \stemExtend aes16 \skip 16
                             \noFlag \stemExtend g16 \skip 16 } \\
                { \context Voice = downvoice < ees, ees >8\f r8 bes,8 ees8 } >> |
             << { \noFlag \stemExtend aes16 \skip16
                  \noFlag \stemExtend aes16 \skip16 \noFlag \stemExtend g } \\
                {< bes,, bes, >4 < c, c >8\fermata } >> r8\p |
             < bes,, bes, >8 r8 <bes,, bes,>8 r8 | }


\score { \new PianoStaff \with {
           \override VerticalAlignment #'forced-distance = #9 }%% default is fixed
          <<
           \context Staff = "up" \context Voice = "upvoice" { \pianoUP }
           \context Staff = "down" \context Voice ="downvoice" { \pianoDOWN }
          >>

  \layout { indent = 0.00\mm line-width = 160.00\mm }
  \midi {}
}

[image of music]

説明は省略します(必要になったら参照するぐらいで).


ビームと譜面2: and \change Staff

\version "2.10.0"
#(set-global-staff-size 23)
\version "2.10.0"
UP = { \clef treble \time 3/8
% 1
           \stemDown
           f''16([\>^\f d'' b'\!^\p \change Staff = "bass"
            \stemUp
            \clef treble g'\ff ~ < g' e'>8)]~ |
% 2
           <g' e'>[ \change Staff = "treble"
           \stemDown  c''16\mp e'' f'' g'']^\fff |
% 3
            e''4.^\sf | }

DOWN = { \clef bass \time 3/8 
% 1-2
               <c a,>4. | s4. |
% 3
             \clef bass
             \stemUp e,32([ g, b, d f a
             \change Staff = "treble" \stemDown
             c' e' g' b' d'' f'')]  | }

\score {
         \new PianoStaff
          <<
           \context Staff = "treble" \context Voice = "upvoice" { \UP }
           \context Staff = "bass" \context Voice ="downvoice" { \DOWN }
          >>

  \layout { indent = 0.00\mm line-width = 160.00\mm }
  \midi {}
}

[image of music]

説明は省略します(必要になったら参照するぐらいで).
s 音符 はLilyPond独特の幽霊音符です. cpu計算上は実態が存在し, midiと組版(譜面) では姿を消します. \stemUP , \stemDownはstemのベクトル方向の指定です.







Syntax Description Example

\ppp \pp \p \mp
\mf \f \ff \fff \fp
\sf \sfff \sp \spp
\sfz \rfz

(...\pppp , \ppppp
...etc.)

dynamics
Operate to midi.

[image of music]



Dynamicsはmidiに作用します, そのsymbolsの組版位置は五線譜の下側がdefaultで, 人為 (強制)での note^がstaffの上側, note_がstaffの下側です.

• Dynamicaの時系列変化である, crescend, decrescend記号は.

[image of music]

note\>.........note\! , note\<.........note\! で組版位置は5小節目以後がdefaultで, 人為制御はnote^\> , note_\>等とコーデング します. もちろん, この間はmidiへも作用します.

dimcresc , decr等々のテキストでの明記は.

\version "2.10.0"
UP =  { \clef treble \time 3/4
            \setTextCresc      a'4\< b' c'' | c' a'4 b'\! |
            \setTextDecresc    c''\> c' a' | b' c'' c'\! |
            \setTextDim        a'\> b' c'' | c' a' b'\! |
            a'2.\espressivo | c''^\espressivo | }

\score {
         \new Staff { \UP }

  \layout { indent = 0.00\mm line-width = 160.00\mm }
  \midi {}
}

[image of music]

Defaultは全てstaffの下側ですが, a'4^\<......b'\! 等々でテキストは上側に 組版されます. もちろん, これらもmidiに作用をします.







Syntax Description Example

< ...... >


<< {...} \\
{...} >>

chord


polyphony

[image of music]



Single StaffでのHarmony(code,polyphony)譜面です, 1–3小節をchord譜面, 4–6を polyphony譜面等と区別わけをしていますが, musicのHarmony(二音以上が同時に鳴った響き) 譜面です.
1–2小節cordの記譜は< ...... >で,
3小節目はLilyPond独特の\chordmodeでの記譜です.
4–6小節polyphonyの記譜は<< {...五線譜上側...} \\ {... 五線譜下側...} >>になります.

3小節目は音楽業界のCM(C メジャー・コード名)の"実際のコード符"と"そのコード記号" の一部です. これはLilyPondの, 3小節目例ですと\chordmode { b,4 c d e }で OKです. 譜面をc\majorで書き始めているので, \chordmode 指示もCMで吐き出し, かつ, ie es ! にも自動でcpu計算されて組版されています. B C D Eのコード記号で組版 させるには(context Staffを呼び出し) \new ChordNames { \chordmode { ...music coding... } } music coding 部分はコード符号(記号)で組版します. コード符号(記号)は音楽界で名前が 全て定義されています(名前付けされている), 実際の市販ポピュラー譜面(楽譜)は殆ど コード符号(記号)記述です. ですので, 音楽界では"コード符号一覧表"の相当に分厚い本を 出版しています. LilyPondはその代表的なコード類には対応しています. もちろん, 作成され るMIDIも対応しています.
コードの作り方は音楽専門書の方で参照願います. 忘れてならないのは, コード名は 音楽界で全て定義されているので, その定義語を用いる事. コードと譜面, 及びその歌の参照: Blue_Love
Hi-Fi stream をクリック and Blue Love Load/Lyric sheet PDF file をクリック.
英語を少し聞き取れる力をお持ちなら, これらは多大の力になります. 英語の発音や 歌い方や等々.

Polyphonyのコーデングで注意を要するのは, 上モードで発信した情報は, 上モードのヶ所で受信すること. 下モードで発信した 情報は, 下モードのヶ所で受信する事. 上下をクロスさせる情報発信受信コーデングは, その時点でLilyPondはruningを止めるか, 作用無視します. そう言った意味からも組版に 於いては" s "音符は特に重要な幽霊音符です.







Syntax Description Example

\bar "|"
\bar ""
\bar "||"
\bar "|:"
\bar ":|"
\bar ":"
\bar ".|"
\bar ".|."
\bar "|."

bars

[image of music]



著者が音楽原稿を書いていく時には, 小節(区切り)線(\bar "|")は書く必要も 有りません, 全てLilyPondが\time 値で自動で処理します. ですが, 通常, 著者は | を加えながら区切り小節として書いています. LilyPondが自動 で挿入する小節線と著者が置いた | が一致しなければ, その時点でLilyPondは メッセージを出し, 同時に1小節内に音符が足りない・多い量を明示します. 曲終了の\bar "|."は書かねばなりません.

• 小節番号
Defaultは第2行目から行左端側にその行開始番号のみが組版されます
以下を, 宣言してコーデングした組版結果です.

\override Score.BarNumber #'break-visibility = #all-visible

[image of music]



番号を各小節へ組版します.



\override Score.BarNumber #'break-visibility =#end-of-line-invisible

[image of music]



(各)行末に組版される, 次行の開始番号明示を外す.
番号を途中で変更するには, 変更させるヶ所で, \set Score.currentBarNumber = #20 (この例では3小節目から)



\override Score.BarNumber #'font-size = #+2 (#数値; 組版は相対値)

[image of music]


番号のフォントサイズ変更. (例値; (2)#-3 (3)#-1 (4)#+2 (5)#+4 (6)#+8 (7)#0(=\normalsize) ) 囲みはcurrent fontsizeに自動伸縮対応しています.
番号の四角囲みは,
\override Score.BarNumber #'stencil
= #(make-stencil-boxer 0.1 0.25 ly:text-interface::print)

番号の丸囲みは,
\override Score.BarNumber #'stencil
= #(make-stencil-circler 0.1 0.25 ly:text-interface::print)



\set Score.barNumberVisibility = #(every-nth-bar-number-visible 3)

[image of music]



番号を小節毎に組版させる. (この例では3小節毎)
(no9,は次行頭の開始番号明示です)









Syntax Description Example

\repeat volta 2


\repeat unfold2
repeat

[image of music]



曲の繰り返し部分である, 例えば2回繰り返す \repeat volta 2 { music code } 等々記述ならrepeat指定範囲部分をrepeat記号 で組版します(ただし, \repeat volta 繰り返す回数はmidiには通用しません1回限り のmidiになり, repeatしません). \repeat unfold 2 { music code } でmidiは2回繰り返す作用になります(ただし, 組版(譜面)の方も同じ符が連続2回で組版されます).
著者の多くは, 譜面コーデングを \repeat volta 4 { music code } 等々で行い, midi(曲)の方への作用は(context Staffを呼び出し) \unfoldRepeats のコーデング方法をとっています.

repeat 作曲について(\unfoldRepeatsを用いた).
codingサンプルで綴りますと,

\version "2.10.0"
UP =  { \clef treble \time 3/4
            a'4\< b' c'' | c' a'4 b'\! |
            \repeat volta 2 { c''\> c' a' | b' c'' c'\! | }
            a'\> b' c'' | c' a' b'\! | }

UPM =  { \clef treble \time 3/4
            a'4\ppp b' c' | c'\pp a'4 b'\mp |
            \repeat volta 2 { c''\fff c' a' | b'\ff c'' c'\f | }
            a'\ppp b' c'' | c'\pppp a' b'\pppp | }

%% get sheet-music --------------------
\score {
         \new Staff { \UP }

  \layout { indent = 0.00\mm line-width = 160.00\mm }
}

%% get midi-music ---------------------
\score {
         \new Staff { \unfoldRepeats \UPM }

  \midi {}
}

UP = { music-code } をそっくり UPM = { music-code }と midi専用にcopyして, 音符に色々midi作用の細工をする....... これに,
Repeat歌詞等々が加わってくると, 完全にLayoutで出来あがったコーデングを そっくりmidi用にcopyして, 同じ譜面でmidi作用を思考した方がコーデング状況が すっきりします.


Repeat演奏を明記する音楽界の記号(その演奏順序を示す)は他に沢山あります, bis , ter , qurterDa Capo=D.C.における\bar "||"とFineや fermata. また, Dal Segno=D.S.におけるsegno, \bar "||",Fine,fermata. CodeのD.S. coda, Coda 譜面, Fine,fermata. 等々と音楽専門書の方で参照お願い します.

• About \alternative cording.
通常は, \repeatと対になってコーデングされます.
\repeat volta 2 {
\repeat volta 2 { gis'8[ b'] ais'2 b'8[ cis''] b'2 | }
\alternative { { gis'2 ais'2 e'2~ | e'2 fis'4 e'2. | }{ gis'2 ais'2 e'2 | } } }

[image of music]

これは, \repeat volta 2 \alternative が \repeat volta 2であると解釈されます. LilyPondはThe \alternative belong to the inner \repeat. の定義で 翻訳します.
1小節目からrepeatがある場合には, 1小節目のrepeat開始表示の印し(記号)は省かれます.


\repeat "percent" about Measure repeat.
play = { \repeat volta 2 { fis'4 g'8[ a'16 b'] c''4 | e''4 fis''4.  a'16[ g'] | }
           \set countPercentRepeats = ##t
         \repeat "percent" 20 {
             fis'4 g'8[ a'16 b'] c''4^\markup {\hspace #2 \italic "ad lib." } | }
         g'2. | g'2.^\fermata \bar "|." }

%% get sheet-music -----------------------------------
 \score { <<
             \new ChordNames \chordmode { s2. * 2 | e:7sus4 }
             \new Staff { \clef treble \key e\minor \time 3/4 \tempo 8 = 180
                               \play }
              >>
       \layout { indent=0.00\mm line-width=160.\mm }
}

[image of music]

ad lib. 部分明示のコーデングは人それぞれでしょうけど.



\repeatのブロック内(コード記述ではありません)が, 必ずしも\time valueを 満たす必要があるかです? 言い換えると, 小節内の任意ヵ所(途中)から==小節の 任意ヵ所まで(小節コード記述の方は\time valueを満たしている)repeat可能か?です, LilyPondは組版出力もmidiへもその旨を作用します.

[image of music]

上段(1–3)小節の\repeat内部も\time 3/2を守ったコード記述です.
下段(4–6)小節の\repeat内部は\time 3/2を無視した閉じで記述です.
但し, 下段(5–9)小節の\repeat処理は表面上cpuがerror-->メッセージを出しますが, 本体は見ての通り\timeのコードは正常なのでOKでしょう(\repeatブロック 内部の\time valueが不一致).
私自身は音楽を知りません. 本体が正常である限り, \repeatに限らず...... 内部の些細な(任意な人の行為の結果の)error-->メッセージは気にする必要がないと 思っています(事実, LilyPondは組版もmidiもtrueでoutputですので).

\version "2.10.0"
#(set-global-staff-size 16)

lower = {
     \override Score.BarNumber #'break-visibility = #all-visible
     \override Score.BarNumber #'stencil
                 = #(make-stencil-circler 0.1 0.25 ly:text-interface::print)
     \autoBeamOff
%%1-3
      c'16 b a g f4 \repeat volta 2 { d'16 c' b a g4 f16 g a b c'4 |
      d'16 r32 c'16 r32 b16 r32 a16 r32 g4. f16 r32 g16 r32 a16 r32 b16 r32 c'4. |
      g16 a b c' c'4 } b2 r2 |
\break
%%4-6
      c'16 b a g f4 \repeat volta 2 { d'16 c' b a g4 f16 g a b c'4 |
      d'16 r32 c'16 r32 b16 r32 a16 r32 g4. f16 r32 g16 r32 a16 r32 b16 r32 c'4. |
      g16 a b c' c'2. } b2 |
}

%% get sheet-music -----------------------------------------------------
\score {
           \new Staff { \clef bass \key c\major \time 3/2 \lower }

      \layout { indent = 0.00\mm }
}
%% get midi-misc -------------------------------------------------------
\score {
           \new Staff { \clef bass \key c\major \time 3/2 \tempo 4 = 68
                                       \unfoldRepeats          \lower }
      \midi {}
}










Staves 基本形です(pair staffs). <<......>>の中にmany Staffsを 加えることが出来ます. 多くの楽譜譜面はこれらを組み合わせて纏めています.

Syntax Example
         <<
     \context Staff = "UP" { music coding }
     \context Staff = "Down" { music coding }
          >>

[image of music]


     \context ChoirStaff = "Type choir" <<
       \context Staff = "UP" { music coding }
       \context Staff = "Down" { music coding }
          >>

[image of music]


     \context StaffGroup = "Type Group" <<
       \context Staff = "UP" { music coding }
       \context Staff = "Down" { music coding }
          >>

[image of music]


     \context GrandStaff = "Type grand" <<
       \context Staff = "UP" { music coding }
       \context Staff = "Down" { music coding }
          >>

[image of music]


     \context PianoStaff = "Type piano" <<
       \context Staff = "UP" { music coding }
       \context Staff = "Down" { music coding }
          >>

[image of music]



• Staffを呼び出す時には, \new Staff\context Staff が有ります.
• 互いのStaff間の垂直距離は処理される音符列によって自動的に 伸縮します. 1ページにどれだけのstavesが組版されるかはその処理によって自動改ページが 行われます.
• Staffはdefaultで大きさが用意されています. 11pt , 14pt , 16pt, 18pt, 20pt, 23pt, 26pt. ですが, 17ptや19pt等々でも対応します.
• 通常, 音符やそれに附帯するイベント・テキスト等々の値はStaffサイズの 相対値として処理がなされます.
\new Staff\context Staff は名前付けが可能で, 既存名前の 呼び出しは \context Staff = "name" で行います
• 新規Staffの名前付けは \new Staff = "name"\context Staff "name"です.
\new\contextと置き換えてもOKです. その逆は危険です. 既存 named Staffを呼び出しは\context Staff = "named"の指定のみですので.
• 名前付けとは, そのcontextの処理格納したメモリーに名前を付けておくで, 実際 のファイル上にsaveする意味ではありません(プログラム言語labelの意味です).
• 楽譜の改ページは, 例えばStaff-sizeを20pt==>19pt, or 21pt等々 にしてみるとか試みますが. 強制(人為改ページ)は避けた方が賢明です.


About LilyPond について極めて大事なこと
誤解がないように此処に挿入記述です, 説明でなく実際の譜面記述コードで図解します.
\context Staff or \new Staffは一個一個の音符等々の処理(翻訳・通訳)を 実際上行っていません,
一個一個の音符等々の処理は\contex Voice or \new VoiceのContextが行います. 但し,
(Context)Staff定義文の中にVoice(Context)を"受け取る"の文脈があるので, 多くの 原稿著者は, 歌詞がつかない限り\contex Staff or \new Staffを呼び 出して音楽処理をさせています.

[image of music]

%%% -*- Coding: utf-8 -*-
\version "2.10"
#(set-global-staff-size 18)

%%% Voice Context ---------------------------------------------------------------
bass = { \autoBeamOff
         r4^\markup{\hspace #1 \dynamic "f"} d4.^\markup{\box "Tutti"} dis8 c c |
         d4( e) f e | d e f8[( e]) d[( g]) | c4 d g c \bar "|" \break }

%%% Lyrics ----------------------------------------------------------------------
bassL = \lyricmode {
       Re -- qui -- em -- æ -- | ter -- nam, æ -- | ter -- nam do -- na __ |
       e --is, do -- na, | }

%% get sheet-music, midi-music --------------------------------------------------
\score {
        \context ChoirStaff = "Requem" <<
           \set Score.currentBarNumber=8
           \override Score.BarNumber #'break-visibility = #all-visible
           \override Score.BarNumber #'break-visibility = #end-of-line-invisible
         \new Voice = "Bass" { \clef bass \key d\minor \time 4/4
           %%        \set Staff.instrumentName = "basso"
                                                         \bass }
         \new Lyrics \lyricsto "Bass" { \bassL }
              >>

      \layout { linewidth = 160.00\mm }
      \midi { tempoWholesPerMinute = #(ly:make-moment 58 4) }
}

\new Voice の文字列を\new Staffでlilypondをrunさせてみて下さい, 日本語Windows OS ですと文字化けメッセージですけど, errorの 意味は"Voiceを使ってください!"の抗議がcpuから発信されます. (注意: 歌詞の æ はutf-8等々サポート文字で, Shift-Jisコードではありません, この文章(Shift-Jis)での表記は組版–文字–処理です)

\new Lyrics or \context Lyrics and \addlyrics等々(歌詞の処理)は Voice Contextの翻訳//通訳処理を直に注目すると言う意味です.
更に, 余計なことを書き添えますと, だからこそ, 音符処理が歌詞処理よりも前に済んで いないと駄目です......の意味にもなります.

丁寧なコーデングですと
\new Staff = "One" \new Voice = "OneVoice" { music code } 等々になるの ですが, "StaffはVoiceを受け取る" で, この悩ましき定義列文に風穴を開けているのかも?



Staves間の人為(一定)距離制御例です.(他にもあります, 詳細はlilyPond.pdf(current ver)を 参照で)

No1. 値#'(-4 . 4) default

[image of music]

No2. 値#'(-1 . 4) とdefault

[image of music]

No3. 値#'(-8 . 4) とdefault

[image of music]


説明は省きます. No1 Default setting
Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
No2

     \context StaffGroup = "Type group" <<
     \context Staff = "UP" { music coding }
      \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 4)
     \context Staff = "Down" { music coding }
     \context Staff = "plus" { music coding }
                       >>

No3

     \context StaffGroup = "Type group" <<
     \context Staff = "UP" { music coding }
      \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-8 . 4)
     \context Staff = "Down" { music coding }
     \context Staff = "plus" { music coding }
                       >>

他の\context Staff << ...... >>も上に同じ作用です. 人為強制設定は 音符処理によるstaves間の距離は自動伸縮はしません.
(付け加えますけど, staves間の距離は改ページに激しく影響します, 忘れないでください.)


ピアノStaves \context PianoStaffだけは特別な制御です.

Default #'forced-distance = #6

[image of music]

[image of music]

PianoStaff cannot be computed during formatting. Rather, to make cross-staff becaming work correctly.
ピアノstaves間の伸長はしません. クロスビーム等々の 為の縮小対応には応答します.

     \context PianoStaff = "Type piano" \with {
           \override VerticalAlignment #'forced-distance = #6 }
       <<
     \context Staff = "UP" { music coding }
     \context Staff = "Down" { music coding }
        >>

Context \PianoStaffのstaves-distanceはfixedされており, 数値<fixed<数値 でも それに対応してdistanceは縮小します(意味は#-6,#6でも縮小率は6で同一です).

LilyPondがページを作成するとき, Staves間の空を, まず注目します. 処理したStaffを, このページに組み込むか? 次ページに繰り越すかは? ページ内の各々Stavesの空の制御 計算に委ねられていると, これは私の推測です. この値に, LilyPond 開発チームは ある値を限界値とcpuに知らせています. その数値は楽譜組版職人が, これまで蓄積し伝承 されて来た彼らの技を数値化してLlyPondに組み込まれ......全てを制御してい ます.
ページ処理に限って言及すると, その限界値を超えると, LilyPondはページ内の各々Staves 間へ均一な空を挿入してページのバランスを揃えて, 問題のStaffを次ページから始めます, LilyPondはこの繰り返しで譜面ページを作成し楽譜としてきます. ですので, LilyPondで 初めて楽譜を書いた方も自己のプリンターで印刷した譜面を見て, その出来栄えは, あなた 自身の力より, 楽譜組版職人達の過去から現在へと受け継ぎ伝承されてきた力の成せる技で ある事を忘れないでください.


staffs(=staves)の改行もLilyPondはその音符列の処理によって自動的に伸縮して 決めていきますが, 人為(強制)改行指示は改行したいヶ所で \break で行います. 逆に, 此処のヶ所では改行するな! の明示は \noBreakです.



用紙サイズは; a6, a5, a4, a3, legal, letter 等々が用意されています.
codingは
\version "2.10.0"
#(set-default-paper-size "a4")
#(set-global-staff-size 20)
landscapeで組版したいのなら, #(set-default-paper-size "a6" 'landscape) 等々の記述.
もちろん, paper-sizeの任意には\paperにて対応可能です.

Page formatting.\paper
like this;

\paper {
        top-margin = 5.00\mm
        bottom-margin = 0.00\mm
        between-system-padding = 0.00\mm
        between-system-spacing = 0.00\mm
        ragged-last-bottom = ##f
        %%system-count = 8%% default; Unset
        head-separation = 0.00\mm
        paper-hieght = 15.00\mm
        paper-width = 20.00\mm
}

用紙レイアウトには, この他に多くのpage-layoutのパラメターがあります, LilyPond.pdf(version current)を 参照してください.


\layout と \midi
\layout は楽譜全体のレイアウト・パラメター
\layout { indent = 0.00\mm linewidth = 120.00\mm }
\midi はmusic-playへのパラメター
\midi { } block内部での詳細なパラメターと値はLilyPond.pdf(version current)を参照してください.










Syntax Description Example

\times

tuplets

[image of music]



Tuplets(連符)は\times(LilyPond)で現し, "単純音符,付点音符"を等しい長さに 分けた符をさします. 図例は4分音符(c''4)2個を8分音符3個に夫々分けた譜面です.
a'4 \times 2/3 {c''8 c'' c'' c'' r8 c''} a'4
\set tupletSpannerDuration = #(ly:make-moment 1 4)
a'4 \times 2/3 {c''8 c'' c'' c'' r8 c''} a'4

1小節目がdefault組版結果で, 2小節目は
"\set tupletSpannerDuration = #(ly:make-moment 1 4)" と宣言後に 書いたものです. 通常は下位の音符で等しく分けますが, 中には同じ音符で分けている 譜面にも出くわしますが. (*_*)?
\timesコーデングで注意は, \times { ... } が終了したら, 次の音符のDurationsは必ず添付しておく事です.

1個の4分音符を9個の32分音符に均等に分ける, 実際このような譜面が有るか無いかは別で, あるいは理論上での事で(私は音楽は知らないので).

up = { a'4 \times 8/9 {c''32 c'' c'' c'' c'' c'' c'' c'' c''} a'4 a' |
        a' a' a' \times 2/3 {c''8 c'' c''} | }
\score {
              { \clef treble \key c\major \time 4/4
                  \up }
\layout {}
\midi {}
}

[image of music]

ちなみに, midiは正常に奏でますけど(当たり前?).
\timesの(書式)書き方はこれで分かると思います. 説明文にするとやたら理解難くに なるので. もし, これでOK(32分音符有り)ならボーカル(歌詞)とスキャット等々に, 面白みを まして書けるかも.
音符水平間の空(距離)は, そのstaff1行lineに?小節の処理と音符が入るかによって 調整されますので, 上記の簡単な例図では計れません.










Syntax Description Example

\grace

\acciaccatura

\appoggiatura

\afterGrace
grace notes

[image of music]



Grace notes(修飾音符)自身は\timeに入りませんがmidiにはそのtoneは作用します. 母音を飾る輝き音です.

図例での3小節目(と4小節目)に注目ですが, \clefの変更しています. Grace内部で の\key変更もOKです. 言わずもがなになりますが, 目視では音符が上昇していますが, 御覧(clef bassで)のように 実音は激しく下降しています.
以下のように綴っています.
s2 \grace c'16( b'4) \appoggiatura {g'16[ a']} f'4 |
s2 \acciaccatura {c'16 d' e'} e'4 f'4 |
s2 \grace {c'16[( e' \clef bass c b]} f4) d |
\afterGrace d4\( {b16( a f d)\)} a2. |
— s2は幽霊2分音符です—

よく楽譜内で, 以下のような譜面仕上げを見るでしょう.

[image of music]

LilyPondは幽霊音符を使って組版します(b'2^\>~ | b'2*2/3 s2*1/3\! \bar "|.").










Syntax Description Example
\markup { ... } markup

[image of music]



譜面へのText挿入は\markup { ...Text... }で行います, 様々な (多種多様な)機能が有りますので, LilyPond.pdf(varsion current)の参照でお願いします.

図例は\markupでコーデングした脚注譜面(機能の一つ)です, 記述方法は他にも 有ります.
\version "2.10.0"
#(set-global-staff-size 23)

\score {
        { \clef treble \key d\major \time 4/4
          \autoBeamOff
        a''8 a'16 b' c''8 a' fis'^\markup{
                                  \score {{ \set fontSize = #-6
                                  \override NoteHead #'color = #red
                                  \override Stem #'color = #red  g'8 f'}
                                  \layout { indent = 0.00\mm line-width = 10.00\mm
                                  \context { \Staff \remove "Clef_engraver"
                                          \remove "Time_signature_engraver"
	                \override StaffSymbol #'staff-space = #(magstep -6)
                        }}}}
        fis' r b' | g'8.^\markup{
                       \score {{\autoBeamOff \set fontSize = #-6
                                  \override NoteHead #'color = #blue
                                  \override Stem #'color = #blue   a'8. g'16}
                       \layout { indent = 0.00\mm line-width = 10.00\mm
                       \context { \Staff \remove "Clef_engraver"
                                         \remove "Time_signature_engraver"
	                \override StaffSymbol #'staff-space = #(magstep -6)
                        }}}}
        g'16 g'4 r8 g' c'' e'' }

   \layout { indent = 0.00\mm line-width = 100.00\mm }
     }


\markup { ...Text... } のコーデングはLayout(\score)のブロック内 ばかりか, 外側でも, 指定してTextを配置できます. 簡単な音楽文書なら\markupコマンドで 可能です.
書式はこの様になります(注意: 基本的には Coding: utf-8 文字コードです).
\version "2.10.0"
#(set-global-staff-size 20)

\markup { ...Text... }
\markup { ...Text... }
\score {
        ......music code......
     \layout { }
     \midi { }
 }
\markup { ...Text... }
\markup { ...Text... }

こんな感じになります. これで, 音楽者が楽典を書かれた譜面をmutopiaのurlで見かけました. 和(日本)語だと, どうしてもデザインが不細工なので見た目の"美しき文章"にはほど遠いです ね. どうして? 考えてみたら和語コードはshift-jisつまり工業規格品で管理されている字体 なので, 明治や江戸や平安といった"美しき和語字形"は採算割れ製品・規格外製品として 今日の日本文化が捨てて来た, 利益優先の安価な文字だけが残った! これ結論です. この島国 に生まれ育ち......一変に日本が嫌いになりました. 今は鉛で作る活字文字の時代で はなく電子情報で文字を産み出す世の中です, 文字にかける印刷コストは少しでしょうに, その社会が滅び消えるとは...この様な推移から見て取れるのかも. 生き延びるため・ 未来へ伸ばすため, まず英語を公用語にし和語社会がいずれ英語化する. その流れが躍動し て来ている. 昨今の日本社会事情です.



現在の日本社会での和語符号(コード)化は, マイクロ・ソフト社(日本語Windows OS)が 握っています. 日本政府機関がどう定めようが日本語Windows OSでの実装がどうなるかで 社会的には決定されます. 日本語Windows Vista(editon)ではshift-Jisの延長上(標準化技術力)でラテン系文字も多分 サポートしているはずです(私は使っていないので推測です). Vista版のワードなどで確認できるはずですが?(Windows XPでは出来ません) これは, utf-8コードではないのでLilyPondでの和語歌詞には使えないはずです.
また, 日本政府の省庁再編製の課程で, 和語符号化の中心部会(意思決定)が何処に移って いるかも不透明なのでは?.
とにもかくにも, NEC, 富士通, マイクロソフト社(日本法人)での, 次期Windows OSの 日本語をどうするかで......決定! 当然ですが従来の文字(pc機種の)が文字化けする 和語符号化には? 日本語Windows vistaがその一つの解決策なのかも.





Next: , Previous: Cheat, Up: Top

Lyric

LilyPondはLyrics(歌詞)の処理に三つの大きなContext(歌詞翻訳//通訳)を提供しています. 1)\addlyrics , 2)\lyricmode , 3)\lyricsto です. これらを呼び出す のが\scoreブロック内での\new Lyrics , \context Lyrics です. \addlyrics については(Lyric Contextを呼び出さないで)直に記述してもOKです.
注意を要するのは, これら歌詞の翻訳//通訳は音符処理のVoice(Context)の処理を見て, 行っていることです.
LilyPondの歌詞処理は殆ど自動対応処理です. 休符が幾ら有ろうが意識せず 歌詞(stanza)をコーデングしていけます. 音符部のSlur, Tie等々はmelisamに翻訳されます. 音符部で\malisma......\malismaEndを音符に付ける事によって歌詞がmelismaで 跨ぐ部分(音符列)に対応も可能です. もちろん, \phrasingslurはその限りでは有りません (自動対応のmalisma効果をしません).


\addlyrics {... stanza-coding ...} は, 単一(melody)旋律への1,2,3番歌詞等々......対象音符列が一つに決まっている時に 殆ど利用されます. 旋律(音符列)の中で, polyphonyで1,2,3等々にstanzaが分かれるときの 対処コーデングはLilyPond.pdf(version current)のVocal sectionを参照願います.

\new Lyrics \lyricmode {...stanza-coding...}
\new Lyrics \lyricsto "Voiced-context-name" \lyricmode {...stanza-coding...}
は, 例えば, 4声合唱等々の夫々のstaffと夫々のstanzaの結合処理での利用です.
何も無ければ(指定が)LilyPondの歌詞処理は音符処理(Voice Context)の最初の処理スタックス を参照します. 従って\lyricstoでVoice Contextのlabel(name)を付けた処理 スタックスへLyrics Contextを結びつけます.

\new Lyrics or \context Lyricsはname(label)を 持つことで, "音符側のrepeat,歌詞(stanza)のrepeat"に対応できます.

LilyPondのLyricsのカテゴリーはutf-8 文字コードで書くように指示されています, これで, 各国(各文化)の文字に対応できるようになっています.

このpdfの文章内の全ては私のLilyPond利用での対処方法で, 人によっては別の対処方法で 実践していると思います. 要は与えられたcommands(命令), シーケンス(定義文)等々 を如何に応用して行くかです. 音楽に詳しい人ならもっと素早い端的な処理方法を組み合わ せて書いていると思います(譜面を書く(作曲等々)と言うことは, LilyPondのプログラム言語 自身に踏み込むこととは別問題です).

Example Lyric; No1. \new Lyrics \lyricsto "Label" \lyricmode

[image of music]



%% -*- Coding: utf-8 -*-(注意: 此処ではshift-jis コード表記です)
\version "2.10"
#(set-global-staff-size 18)

\header{
title = "1.INTROITUS"
poet= \markup {\hspace #4 "Requiem"}
composer = "Mozart"
meter = \markup {\hspace #12 "Adagio"}
}

%%% Voice Context ---------------------------------------------------------------
soprano = { \autoBeamOff
%%5--8
       R1 * 4 | \break
%%9--11
       r2 r4^\markup{\hspace #1 \dynamic "f"} a'4~^\markup{\box "Tutti"} |
       a'8 a'8 gis' gis' a'4( b') | c'' bes'!8 a' bes'4 a'8[( g']) | \break
%%12--14
       a'8 a'16 a' d''4. d''8 cis'' cis'' | d''4( e'') f'' e''8 e'' |
       d''8 d'' d''8. d''16 cis''4 r4 \bar "|" \break }

alto = { \autoBeamOff
%%5--8
       R1 * 4 | \break
%%9--11
       r4^\markup{\hspace #1 \dynamic "f"} d'4.^\markup{\box "Tutti"}
       d'8 cis' cis' | d'[( c'!]) b[( e']) a4 f' | e' fis' g'8[( f'])\melisma e'4~ |
%%12--14
       e'8\melismaEnd d'16 cis' d'8 a' bes'4(\melisma a')( |
       a'4.)\melismaEnd g'8 f'8 e'16 d' a'8 a' | a' bes' g'8. g'16 a'4 r4 \bar "|"
       \break }

tenor = { \autoBeamOff
%%5--8
       R1 * 3 |
       r2 r4^\markup{\hspace #1 \dynamic "f"} a'4~^\markup{\box "Tutti"} |
%%9--11
       a'8  a' gis' gis' a'4( g' | f') d''c'' d'' |
       e''8[( a']) d''[( c'']) bes'4. c''16 bes' |
%%12--14
       a'8. a'16 f''8 f'' e''4 e'' |
       a'4. a'8 a' a' a' c''16 a' | f''8 f'' d''8. d''16 e''4 r4 \bar "|" \break }

bass = { \autoBeamOff
%%5-8
       R1 * 3 |
       r4^\markup{\hspace #1 \dynamic "f"} d4.^\markup{\box "Tutti"} dis8 c c |
%%9--11
       d4( e) f e | d e f8[( e]) d[( g]) | c4 d g c |
%%12--14
       f8 f  bes a g f16 e a8 g | f[( e]) d[( cis]) d d c c |
       bes, bes, bes8. bes16 a4 r4 \bar "|" \break }

%%% Lyrics ----------------------------------------------------------------------
sopranoL = \lyricmode {
     Re --    qui -- em æ -- te- __    -rnam do -- na e -- is __
     Do --mi --ne, re --qui --em æ     te- __ -rnam do -- na
     e -- is Do --mi --ne: | }

altoL = \lyricmode {
     Re -- qui -- em æ --    te -- rnam do -- na    e -- is Do __
     mi --ne, do -- na e- __     -is Do -- mi -- ne, do --na
     e -- is Do -- mi --ne: | }

tenorL = \lyricmode {
     Re --   qui -- em æ -- te- __   -rnam do -- na --  e -- is __ Do -- mi --ne,
     re -- qui -- em æ -- te -- rnam    do -- na e -- is Do -- min --ne,
     e -- is Do -- mi -- ne: | }

bassL = \lyricmode {
     Re -- qui -- em -- æ -- | te- __ -rnam, æ -- | te -- rnam do -- na __ |
     e --is, do -- na, | do --na e -- is Do -- mi --ne, re -- qui -- |
     em  æ -- te -- rnam do --na | e -- is Do -- mi -- ne: | }

%% get sheet-music, midi-music --------------------------------------------------
\score {
        \context ChoirStaff = "Requem" <<
           \set Score.currentBarNumber=5
           %% \override Score.BarNumber #'break-visibility = #all-visible
           %% \override Score.BarNumber #'break-visibility = #end-of-line-invisible
         \new Voice = "Soprano" { \clef treble \key d\minor \time 4/4
                   \set Staff.instrumentName = "soprano"  \soprano }
         \new Lyrics \lyricsto "Soprano" { \sopranoL }

         \new Voice = "Alto" { \clef treble \key d\minor \time 4/4
                   \set Staff.instrumentName = "alto"  \alto }
         \new Lyrics \lyricsto "Alto" { \altoL }

         \new Voice = "Tenore" { \clef treble \key d\minor \time 4/4
                   \set Staff.instrumentName = "tenore"  \tenor }
         \new Lyrics \lyricsto "Tenore" { \tenorL }

         \new Voice = "Bass" { \clef bass \key d\minor \time 4/4
                   \set Staff.instrumentName = "basso"  \bass }
         \new Lyrics \lyricsto "Bass" { \bassL }
              >>

      \layout { linewidth = 160.00\mm }
      \midi { tempoWholesPerMinute = #(ly:make-moment 58 4) }
}

LyricsでのStanzaの小節線 | 区切り明示は, 小節間にSlurやTieで跨ぐコーデングが あれば, 数半角空白で区切るを推薦します. error表示(実際上は正確ですので)に気に障ら ないなら, |を置いて書き綴ってもOKです.

例えば, \new Lyrics \lyricsto "Soprano" { \sopranoL }\sopranoLのstanzaのターゲット旋律(Soprano)を指定しています. \lyricmodeは一種の\addlyricsの処理と似ています. stanza処理は殆ど 同じだと私は想像しています.




Example Lyric; No2. \addlyrics

[image of music]

%% -*- Coding: utf-8 -*-(注意: 此処ではshift-jis コード表記です)
\version "2.10.0"
#(set-global-staff-size 18)

\header {
 title = \markup { \override #'(font-name . "Sazanami Gothic") " 江戸の子守唄 " }
 subtitle = \markup { \override #'(font-name . "Sazanami Gothic") " 江戸地方民 謡" }
 composer = \markup { \override #'(font-name . "Sazanami Gothic") " 子守唄 " }
        }

\score {
         \relative c' { \clef treble \key f\major \time 4/4
         \set Staff.midiInstrument = "synthstrings 2"
              a'2 a4 g~ | g8 a c4 a g |
              r8 e g[ a] c4 a | g2. r4 \bar "|" \break
              c,4. c8 d4 c~ | c8 d e4 a g |
              r8 c, d4 e c |  d2. r4 \bar "|." }

         \addlyrics { \set stanza = "1."
          \override Lyrics . LyricText #'font-name = "Sazanami Mincho"
                        し ば の お り ど の
                        し ず − が や に \break
          \override Lyrics . LyricText #'font-name = "Sazanami Gothic"
                        お き な と お う な が
                        す ま い け り }

         \addlyrics { \set fontSize = #-2
                      \set stanza = "2."
          \override Lyrics . LyricText #'font-name = "Sazanami Mincho"
                        おき な は や − ま へ
                        し ば − か り に \break
          \override Lyrics . LyricText #'font-name = "Sazanami Gothic"
                        お う な は か − わ へ
                        き ぬ す す ぎ }

         \addlyrics { \set fontSize = #-3
                      \set stanza = "3."
          \override Lyrics . LyricText #'font-name = "Sazanami Mincho"
                        ぼう や は よ い こ だ
                        ね ん − ね し な \break
          \override Lyrics . LyricText #'font-name = "Sazanami Gothic"
                        ぼ う や の お も り は
                        ど こ へ いっ た }

         \addlyrics { \set fontSize = #-4
                      \set stanza = "4."
          \override Lyrics . LyricText #'font-name = "Sazanami Mincho"
                        あ の や ま こ え て
                        さ と へ い っ た \break
          \override Lyrics . LyricText #'font-name = "Sazanami Gothic"
                        さ と の お み − や に
                        な に も ろ た }

        \layout { linewidth = 170\mm }
        \midi { tempoWholesPerMinute = #(ly:make-moment 48 4) }
        }

和語(日本語)フォントは, 私はSazanami書体でコーデングしていますが, 他の書体を使っているなら, 使用書体名とそのフォントのLilyPondへの組み込み作業が 必要です.
(Sazanami書体ですとLunixのFedoraと共通なので, Fedoraは和語を意識せず, そのまま 欧米語と同じ感覚でコーデングできます)
Lyricsのstanzaコーデングは明示的に, 小節線を意味する|を置いて書いていません. stanza(歌詞)のコーデングになると目視的にも|が有ると邪魔になる, cpuも やはり同じ立場なのですね. 邪魔になるからどかせのerrorメッセージを出してくる (小節線のチックに失敗しました). 機嫌が良いと(小節をまたぐコーデングが無いと)出さない のは人間と同じ(気にならない)です.




Example Lyric; No3. \repeatにおけるコーデング

[image of music]

%% -*- Coding: utf-8 -*-(注意: 此処ではshift-jis コード表記です)
\version "2.10.0"
#(set-global-staff-size 18)

\header {
 dedication =
 "The Source send a messenger angel;GAVURIERU to Ave Maria's left side of Nazareth"
 title = \markup{ \line { \huge\bold  Ave Maria} }
 subtitle = \markup{ \line {\bold 1st \hspace #1 Movement; The Annunciation} }
 subsubtitle = \markup\center-align {
                   "soprano; C clef on 1th line,       alto; C clef on 3th line."
                   "       bass; F clef on 4th line,    tenor; C clef on 4th line."}
 composer = "Yukio Yoshida"
 arranger = "Fri 01 JST 2008"
 poet = "Yukio Yoshida"
 opus = "Op. 27, No.1"
 meter = "Largo"
 copyright = "public"
}

%%%%%%%%% soprano part %%%%%%%%%%%%%%%%%%%%%
soprano = {
%% 1-
    \autoBeamOff
    \repeat volta 2 { e''2^\<\melisma cis''4.. d''2\!^\pp\melismaEnd r16 | }
    \repeat volta 2 { c''8 e''2. d''2 r8 | }
      g'8 a'4. fis'16 a'4.. cis''2 |
\break
%% -5
      e'4 e' a'8 a'4. e'4 a'8 a' | d''2 e''4. fis''2 r8 |
%% 6-7(8)
     \new Voice = "sopranoTwo" \repeat volta 2 { c''8 e''2. d''2 r8 | } a'2 cis''1 |
\break
}

sopranoL = \lyricmode {
%% 1-
    æ2 __  | Ma8 -- ri2. -- a!2 |
    was8 telling4. and16 Received4.. That2 |
\break
%% -5
    frám4 SOURCE,4 To8 redeem4. people!4 To8 the8 | Lord's2 Bir4. -- th!2 |
%% 6-7(8)
    received2 That.1 |
}
sopranoLROne = \lyricmode { Ma8 -- ri2. -- a!2 }
sopranoLRTwo = \lyricmode { æ8 __ _ }


%%%%%%%%%% alto part %%%%%%%%%%%%%%%%%%%%%%
alto = {
%% 1-
     \autoBeamOff
     \repeat volta 2 { a'2^\<\melisma fis'4.. g'2\!^\pp\melismaEnd  r16 | }
     \repeat volta2 { f'8 a'2. g'2 r8 | }
     a8 b4. g16 b4.. d'2 |
\break
%% -5
    fis4 fis4 b8 b4. fis4 b8 b | e'2 fis'4. g'2 r8 |
%% 6-7(8)
    \new Voice = "altoTwo" \repeat volta2 { f'8 a'2. g'2 r8 | } b2 d'1 |
\break
}

altoL = \lyricmode {
%% 1-3(5)
     æ2 __ | Ma8 -- ri2. -- a!2 |
     was8 telling4. and16 Received4.. That2 |
\break
%% -5
    frám4 SOURCE,4 To8 redeem4. people!4 To8 the8 | Lord's2 Bir4. -- th!2 |
%% 6-7(8)
    received2 That.1 |
}
altoLROne = \lyricmode { Ma8 -- ri2. -- a!2 }
altoLRTwo = \lyricmode { æ8 __ _ }


%%%%%%%% tenor part %%%%%%%%%%%%%%%%%%%%%%%
tenor = {
%% 1-3(5)
     \autoBeamOff
   \repeat volta 2 { d'8-. cis'-. b-. cis'4-. r8 d'8^\( cis' b8. cis'4\) r16 | }
   \repeat volta 2 { \setTextDim bes8^\> d'2. cis'2\! r8 | }
     a8 b4. g16 b4.. d'2 |
\break
%% -5
    fis4 fis4 b8 b4. fis4 b8 b | e'2 fis'4. g'2 r8 |
%% 6-7(8)
    \new Voice = "tenorTwo" \repeat volta 2 { \setTextDim bes8^\> d'2. cis'2\! r8 | }
    b2^\< d'1\!^\pp |
\break
}

tenorL = \lyricmode {
%% 1
    Just8 at8 this8 moment!4 That8 was8 tell8.-- ing4 | óu __ _ _ |
%% 3
     was8 telling4. and16 Received4.. That2 |
\break
%% 4-5
    frám4 SOURCE,4 To8 redeem4. people!4 To8 the8 | Lord's2 Bir4. -- th!2 |
%% 6-7(8)
    received2 That.1 |
\break
}
tenorLR = \lyricmode {
%% 2Repeat-part
    Fró8 -- m8 the8 Source4 to8 Ma8 -- ri8. -- a!4 | Ma8 -- ri2. -- a!2 |
}

tenorLROne = \lyricmode { óu __ _ _ }
tenorLRTwo = \lyricmode { Ma8 -- ri2. -- a!2 }


%%%%%%% bass; part %%%%%%%%%%%%%%%%
bass = {
%% 1-3(5)
     \autoBeamOff
    \repeat volta 2 { d8-. cis-. b,-. cis4-. r8 d8^\( cis b,8. cis4\) r16 | }
    \repeat volta 2 { \setTextDim bes,8^\> d2. cis2\! r8 | }
     e8 fis4. d16 fis4.. a2 |
\break
%% -5
     cis4 cis fis8 fis4. cis4 fis8 fis | b2 cis'4. d'2 r8 |
%% 6-7(8)
    \new Voice = "bassTwo" \repeat volta 2 { \setTextDim bes,8^\> d2. cis2\! r8 | }
    fis2^\< a1\!^\pp |
\break
}
bassL = \lyricmode {
%% 1
    Just8 at8 this8 moment!4 That8 was8 tell8.-- ing4 | óu __ _ _ |
%% 3
     was8 telling4. and16 Received4.. That2 |
\break
%% 4-5
    frám4 SOURCE,4 To8 redeem4. people!4 To8 the8 | Lord's2 Bir4. -- th!2 |
%% 6-7(8)
   received2 That.1 |
\break
}

bassLR = \lyricmode {
%% 2Repeat-part
    Fró8 -- m8 the8 Source4 to8 Ma8 -- ri8. -- a!4 | Ma8 -- ri2. -- a!2 |
}
bassLROne = \lyricmode { óu __ _ _ }
bassLRTwo = \lyricmode { Ma8 -- ri2. -- a!2 }



%%%%%%%%%% midi music code part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sopranoM = {
%% 1-
    \autoBeamOff
    \repeat volta 2 {
     e''2\pppp cis''4..\ppp d''2\ppp r16 | }
    \repeat volta 2 { c''8 e''2. d''2 r8 | }
     e'8 fis'4. d'16 fis'4.. a'2 |
\break
%% -5
    cis'4 cis'4 fis'8 fis'4. cis'4 fis'8 fis' | b'2 cis''4. d''2 r8 |
%%6-7(8)
    \repeat volta 2 { c''8 e''2. d''2 r8 | } fis'2 a'1 |
\break
}

altoM = {
%% 1-
     \autoBeamOff
     \repeat volta 2 {
      a'2\pppp fis'4..\ppp g'2\ppp r16 | }
     \repeat volta2 { f'8 a'2. g'2 r8 | }
     a8 b4. g16 b4.. d'2 |
\break
%% -5
    fis4 fis4 b8 b4. fis4 b8 b | e'2 fis'4. g'2 r8 |
%% 6-7(8)
    \repeat volta2 { f'8 a'2. g'2 r8 | } b2 d'1 |
\break
}

tenorM = {
%% 1-
\autoBeamOff
\repeat volta 2 { d'8-.\sf cis'-.\sf b-.\sf cis'4-.\sf r8 d'8\mp cis'\p b8.\p cis'4\pp r16 | }
\repeat volta 2 { b8\pppp d'2.\pppp cis'2\pppp r8 | }
     a8 b4. g16 b4.. d'2 |
\break
%% -5
    fis4 fis4 b8 b4. fis4 b8 b | e'2 fis'4. g'2 r8 |
%% 6-7(8)
    \repeat volta 2 { b8\pppp d'2.\pppp cis'2\pppp r8 | } b2\ppp d'1\pp |
\break
}

bassM = {
%% 1-
\autoBeamOff
\repeat volta 2 { d8-.\sf cis-.\sf b,-.\sf cis4-.\sf r8 d8\mp cis\p b,8.\p cis4\pp r16 | }
\repeat volta 2 { b,8\pppp d2.\pppp cis2\pppp r8 | }
     e8 fis4. d16 fis4.. a2 |
\break
%% -5
      cis4 cis fis8 fis4. cis4 fis8 fis | b2 cis'4. d'2 r8 |
%% 6-7(8)
    \repeat volta 2 { bes,8\pppp d2.\pppp cis2\pppp r8 | } fis2\ppp a1\pp |
\break
}



%% get sheet music --------------------------------------------------------
\score {
         <<
           \context ChoirStaff = "FourPartStaffaddchorus" <<
           \new Voice = "soprano" { \clef soprano \key d\major \time 3/2
               \set Staff.instrumentName = "soprano" \soprano }
               \new Lyrics = "mainSL" \lyricsto "soprano" { \sopranoL }
               \context Lyrics = "mainSL" \lyricsto "sopranoTwo" { \sopranoLROne }
               \new Lyrics = "bassTwoR" \lyricsto "sopranoTwo" {
                        \set stanza = "repeat-part;   "  \sopranoLRTwo }

           \new Voice = "alto" { \clef alto \key d\major \time 3/2
               \set Staff.instrumentName = "alto   " \alto }
               \new Lyrics = "mainAL" \lyricsto "alto" { \altoL }
               \context Lyrics = "mainAL" \lyricsto "altoTwo" { \altoLROne }
               \new Lyrics = "bassTwoR" \lyricsto "altoTwo" {
                        \set stanza = "repeat-part;   "  \altoLRTwo }

           \new Voice = "tenor" { \clef tenor \key d\major \time 3/2
               \set Staff.instrumentName = "tenor  " \tenor }
               \new Lyrics = "mainTL" \lyricsto "tenor" { \tenorL }
               \new Lyrics = "repeatTR" \lyricsto "tenor" {
               \set stanza = "repeat-part;   " \tenorLR }
               \context Lyrics = "mainTL" \lyricsto "tenorTwo" { \tenorLROne }
               \new Lyrics = "bassTwoR" \lyricsto "tenorTwo" {
                        \set stanza = "repeat-part;   " \tenorLRTwo }

           \new Voice = "bass" { \clef bass \key d\major \time 3/2
               \set Staff.instrumentName = "bass   " \bass }
               \new Lyrics = "mainBL" \lyricsto "bass" { \bassL }
               \new Lyrics = "repeatBR" \lyricsto "bass" {
               \set stanza = "repeat-part;   " \bassLR }
               \context Lyrics = "mainBL" \lyricsto "bassTwo" { \bassLROne }
               \new Lyrics = "bassTwoR" \lyricsto "bassTwo" {
                          \set stanza = "repeat-part;   " \bassLRTwo }
                >>
         >>

  \layout {
            \context { \RemoveEmptyStaffContext }
           }
}

%% get midi music ---------------------------------------------------------
\score {
         <<
           \new Staff { \clef soprano \key d\major \time 3/2 \tempo 4 = 40
                         \set Staff.midiInstrument = "pad 4 (choir)"
                                         \unfoldRepeats       \sopranoM }

           \new Staff { \clef alto \key d\major \time 3/2 \tempo 4 = 40
                         \set Staff.midiInstrument = "pad 4 (choir)"
                                         \unfoldRepeats          \altoM }

           \new Staff { \clef tenor \key d\major \time 3/2 \tempo 4 = 40
                         \set Staff.midiInstrument = "pad 4 (choir)"
                                         \unfoldRepeats       \tenorM }

           \new Staff { \clef bass \key d\major \time 3/2 \tempo 4 = 40
                        \set Staff.midiInstrument = "pad 4 (choir)"
                                         \unfoldRepeats          \bassM }
         >>

   \midi { tempoWholesPerMinute = #(ly:make-moment 40 4) }
}

\lyricmodeの中で"words"にターゲット"音符の数値"を添えてコーデングも 出来ます.
(repeatだから, そうしているわけではありません. この様な方法もある例です.)


Lyricsのrepeat対応は\scoreの中でlabel(name)を付けたLyricsをどの様に処理しているか 見てのとおりです. 4声パートの一つを追えば......後は全てその繰り返し コーデングです.
wordsにターゲット音符の数値を付けてのコーデングは, 綴っていて安心感がありますが, 逆に, 慣れてくると煩わしさもあります. 慣れてくると何かまわずにwordsを書き綴って 行けるようになります(音符を書く時にwords(歌詞)との関連で自ずと書けます).

始めの出だしからrepeatを用いた応用での書き出して基本形が見えないが. repeatの基本形は, Sopranoの例をとり説明です(譜面組版として).
1小節目と2小節目のrepeatは同じ"æ"と"maria"の繰り返しなので, 考慮外でOKに なります.
6小節目が1回目"maria"で2回目が"æ"に分かれています.

repeat歌詞部分の基本形は(soprano例)
本体歌詞部分の"repeat" は外して, その前後を綴る. sopranoL
(同じ繰り返しなら, 単一旋律と同じなので考慮外)
1回目 歌詞部分の sopranoLROne = 1回目の歌詞部分(Maria).
2回目 歌詞部分の sopranoLRTwo = 2回目の歌詞部分(æ).
等々......夫々独立して綴る
それらを\scoreの中で,
本体歌詞部分の"label" = mainSL で, この本体をVoice Contextのsopranoにぶつけます.
\new Lyrics = "mainSL" \lyricsto "soprano" { \sopranoL }

1回目 repeat歌詞部分の"label" = sopranoTwo
\context Lyrics = "mainSL" \lyricsto "sopranoTwo" { \sopranoLROne }
—このsopranoTwoを, 既にある(スタックス) 本体歌詞のmainSLへ合わせます—

2回目 repeat歌詞部分の"label" = bassTwoR
—このbassTwoRを"sopranoTwo"(repeat; 1回目の歌詞処理)へ合わせます—
\new Lyrics = "bassTwoR" \lyricsto "sopranoTwo" { \sopranoLRTwo }

以上でOKです.
\set stanza = "repeat-part;は無視してください(指示の意味は見てのとおり).
\new Lyrics = "bassTwoR"は譜面のbassとは全く無関係です.
(一度展開したスタックスの挙動を知りたくて, しつこく使ったまでです. 1回展開すると 空になる; プログラム的な意味での詮索です, あくまでも命名は任意名前です.)
\new Lyrics\context Lyricsの違いを理解してください.
上記サンプル譜面のソースコードでの小節番号等々は無視してください, 綴りながら 私の頭の中でのもので, 実際の小節番号とは違っていることもありますので.
明示的にスタックスのcopy–>pastsは, name = {...}で随所での \nameでのpastと記述になるのかも.

midiの取得は御覧のように\unfoldRepeatsで簡素化(組版は考慮外)です. 私的でしょうが音符コーデングを\layout\midiにcopyで分けるメリットと 思っています. 上記説明部分でのlabel展開後"空"はオーケストラ譜面で実践しない限り 判断の是非はできません.

Repeatの基本形は見てのとおりです,
では, 始めからrepeatで歌詞が夫々で有ったら?, tenor と bass がその処理例です. 説明は省きます. 基本形での単なる簡易応用ですので.


Next: , Previous: Lyric, Up: Top

Articulations

cording; by sign on keyboard.

[image of music]

cording; by commands. (Attention 4bar; ^\ltoek)

[image of music]

At box-obje; cording PostScript languge-code and enter by \markup command.
#(let* ((port (open-output-file "box.eps")))
(display "%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
10 setlinewidth 10 10 moveto 0 90 rlineto 90 0 rlineto 0 -90 rlineto
closepath stroke" port) (close port))
{ c''4-\markup { \box \epsfile #X #5 #"box.eps" } }

[image of music]


Next: , Previous: Articulations, Up: Top

Header

\headerのSyntax

Syntax Description
dedication = "The dedicatee of the music"
title = "The title of the music"
subtitle = "Subtitle"
subsubtitle = "Subsubtitle"
poet = "Name of the poet"
composer = "Name of the composer"
meter = "Meter string"
opus = "Name of the opus"
arranger = "Name of the arranger"
instrument = "Name of the instrument"
piece = "Name of the piece"
copyright = "Copyright notice"
tagline = "Centered"


コード記述は
\header {
title = " タイトル名 "
composer = " 作曲者名 "
...............
...............
}


OutPut-Location
dedication is centered at the top of the first page.
title is centered just below the dedication.
subtitle is centered below the title.
subsubtitle is centered below the subtitle.
poet is flush-left below the subtitle.
composer is flush-right below the subtitle.
meter is flush-left below the poet.
opus is flush-right below the composer.
arranger is flush-right below the opus.
instrument is centered below the arranger.(and centered at the top of pages)
piece is flush-left below the instrument.
copyright is centered "copyright" at the bottom of the first page.
tagline is at the bottom of the last page.(default is LilyPond version)


Next: , Previous: Header, Up: Top

MIDI instruments —LilyPond—

The following is a list of names
coding; like this,
\set Staff.midiInstrument = "acoustic grand" (for midi music)
\set Staff.instrumentName = "piano" (for sheet-score)

acoustic grand contrabass lead 7 (fifths)
bright acoustic tremolo strings lead 8 (bass+lead)
electric