LilyPond Advent Calendar 2017 12月17日の記事です。
こんばんは、 norisio (aka. skb_apos) です。
TL; DR
GUI ソフト → MusicXML → (musicxml2ly
) → LilyPond ソース
musicxml2ly
は python2 スクリプト
MusicXML とは
MusicXMLは、XML形式の楽譜表記のためのオープンなファイルフォーマットである。
(中略)
FinaleやSibelius、Rosegarden、Notionなどの楽譜作成ソフトウェアによって作成することが可能である。
つまりは、「楽譜」の「共通フォーマット」ということですね。 LilyPond のパッケージには、この MusicXML を LilyPond ソースに変換するスクリプトが付属しています。
これを使うことによって、
- 最初は他の GUI ソフトで MIDI キーボード を使ってゴリゴリ打ち込み
- 変換して LilyPond で浄書
というフローをとることができそうです。
実際にやってみる
GUI ソフトで音符を打ち込み、 LilyPond ソースに変換して組版をかけてみます。
Musescore で打ち込み
できました。
強弱記号(デフォルト位置からずらす)、フェルマータを入れてみました。
これを、 gakufu.xml
として MusicXML 形式でエクスポートしておきます。
musicxml2ly
で処理
コマンドラインから musicxml2ly
に MusicXML を食わせます。
$ /path/to/musicxml2ly gakufu.xml
Mac で LilyPond パッケージ版の場合、スクリプトは /Applications/LilyPond.app/Contents/Resources/bin/musicxml2ly
にあります。
Windows でインストーラを使ってインストールした場合、 C:\Program Files (x86)\LilyPond\usr\bin\musicxml2ly.py
にあります。
注意: python
コマンドで起動する Python インタプリタが Python 3 系であると動作しません。 Python 2 系が起動するように変更してください。
LilyPond で組版
歌詞が少し消えていますが、変換自体は概ね正しいものです。
musicxml2ly
の出力の特徴
Musescore からの変換しか試せていませんが、概ね次のような特徴をもったソースを吐き出します。
- 歌詞・パートはそれぞれの変数に代入される
- 一部複数ボイスがあると
s1
が量産される Voice ができる
- 一部複数ボイスがあると
- Staff にひとつあればよい記述 (
\bar
など) が全てのパートに存在こともある - 連桁はすべて陽に記述される (
autoBeaming = ##f
) - 改行・改ページはすべて
\break
,\pageBreak
で陽に記述される - 小節チェック
|
の箇所で改行され、小節番号がコメントされる
おわりに
LilyPond は打ち込み用のソフトウェアではないので、こういった分業もけっこう「あり」だと思います。