# 楽譜ジェネレータLilyPond入門

# はじめに

ちょっとドラム譜を作る用ができましたので、ドラム譜作成ソフトを紹介します。
マウス使ってポチポチ、というのでは面白くないので、テキスト情報から楽譜を生成する「GNU LilyPond」を扱います。
マニュアルは日本語化されていますが、その他の解説サイトが少ないですね。またマイナーなものばかりに興味を持って…
なお、ドラムは超絶初心者です。

# 準備

# インストール

環境はWindows 10です。
chocolateyでインストールします。管理者権限でコマンドラインを起動し、以下のコマンドを実行します。

choco install lilypond -y
1

# 起動

スタートメニューに「LilyPond」が追加されているので起動してみます。
名前は「LilyPond」ですが、実際は"C:\Program Files (x86)\LilyPond\usr\bin\lilypond-windows.exe"を起動しに行っているみたいです。GUIの開発環境です。
起動してすぐに分かるかと思いますが、メニューが文字化けしています。Windows版だとこの様になるようです。片っ端からメニューを叩いてみたけど言語設定のような物は無い。うーん残念。

# CUIで使う

C:\Program Files (x86)\LilyPond\usr\binに各種プログラムが入っているので、CUIで使いましょう。

cmd /c "C:\Program Files (x86)\LilyPond\usr\bin\lilypond.exe" --help
1

これでLilyPondのヘルプが表示されればOKです。

Usage: lilypond [OPTION]... FILE...

Typeset music and/or produce MIDI from FILE.

LilyPond produces beautiful music notation.
For more information, see http://lilypond.org

Options:
  -d, --define-default=SYM[=VAL]   set Scheme option SYM to VAL (default: #t).
                                     Use -dhelp for help.
  -e, --evaluate=EXPR              evaluate scheme code
  -f, --formats=FORMATs            dump FORMAT,...  Also as separate options:
      --pdf                        generate PDF (default)
      --png                        generate PNG
      --ps                         generate PostScript
  -h, --help                       show this help and exit
  -H, --header=FIELD               dump header field FIELD to file
                                     named BASENAME.FIELD
  -I, --include=DIR                add DIR to search path
  -i, --init=FILE                  use FILE as init file
  -l, --loglevel=LOGLEVEL          print log messages according to LOGLEVEL.  Possible values are:
                                     NONE, ERROR, WARNING, BASIC, PROGRESS, INFO (default) and DEBUG.
  -o, --output=FILE                write output to FILE (suffix will be added)
      --relocate                   relocate using directory of lilypond program
  -s, --silent                     no progress, only error messages (equivalent to loglevel=ERROR)
  -v, --version                    show version number and exit
  -V, --verbose                    be verbose (equivalent to loglevel=DEBUG)
  -w, --warranty                   show warranty and copyright

Report bugs via http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

楽譜を作るためのソースコードを作成します。
ファイル名はtest.lyとし、メモ帳などで以下のデータを作成します。
なお、このデータはLilyPond起動時に表示されるサンプルから、コメントを除いたものです。

\version "2.16.0"  % necessary for upgrading to future LilyPond versions.

\header{
  title = "A scale in LilyPond"
  subtitle = "For more information on using LilyPond, please see
http://lilypond.org/introduction.html"
}

\relative c' {
  c d e f g a b c
}
1
2
3
4
5
6
7
8
9
10
11

カレントディレクトリをtest.lyのあるフォルダに移動し、以下のコマンドを実行します。

cmd /c "C:\Program Files (x86)\LilyPond\usr\bin\lilypond.exe" test.ly
1

カレントディレクトリにtest.pdfが出力されれば成功です。

# ドラム譜の作り方

今回の目的はドラム譜を作ることです。

全体を\new DrumStaffブロックで括り、その中に\drummodeブロックを作ります。更にその中に譜面を書いていくようです。 音は「音色を表すアルファベット+長さを表す数字」で構成されています。例えばhh4と書くと、ハイハットの4分音符を意味します。数字を省略すると、直前と同じ長さになるようです。

サンプルで1小節作ってみました。

\new DrumStaff {
    \drummode {
        hh4 hh hh hh
    }
}
1
2
3
4
5

出力は以下の通り。

# 音色について

それぞれそのままの英単語と省略形があるようです。以下に代表的な音色を記載します。

詳細:LilyPond 記譜法リファレンス: A.14 Percussion notes

http://lilypond.org/doc/v2.18/Documentation/notation/percussion-notes

名前 記号 記号(省略)
ハイハット hihat hh
バスドラム bassdrum bd
スネアドラム snare sn

# ドラム譜をいじる

# 同時発音に対応する

当然ながら、複数音を同時に鳴らすようにしなければなりません。以下のようにするっぽいです。

\new DrumStaff {
    \drummode {
        << {
            hh4 hh hh hh
        } \\ {
            bd4 sn8 bd8 r8 bd8 sn4
        } >>
    }
}
1
2
3
4
5
6
7
8
9

<<>>でくくって、2つの譜面を\\で区切ります。

なお、rは休符です。

# 符尾(棒線)の向きを指定する

符尾(棒線)は標準だと自動で向きが決められますが、\stemUpstemDownで向きを指定できます。

\new DrumStaff {
    \drummode {
        << {
            \stemUp hh4 hh hh hh
        } \\ {
            \stemDown bd4 sn8 bd8 r8 bd8 sn4
        } >>
    }
}
1
2
3
4
5
6
7
8
9

# 繰り返し

ハイハットは繰り返しのことが多いです。\repeatを使うと回数で指定できます。

\new DrumStaff {
    \drummode {
        << {
            \stemUp \repeat unfold 4 hh4
        } \\ {
            \stemDown bd4 sn8 bd8 r8 bd8 sn4
        } >>
    }
}
1
2
3
4
5
6
7
8
9

# 終わりに

テキスト情報でドラム譜を作ることができました。コンピュータ技術者ならばテキスト情報のほうが扱いやすいですね。難しい譜面になると書けるか不安ですが、難しい譜面はそもそも叩けないので問題ありません(?)