Edited at
LilyPondDay 17

ほかの楽譜ソフトから LilyPond ソースに変換する (MusicXML)

More than 1 year has passed since last update.

LilyPond Advent Calendar 2017 12月17日の記事です。

こんばんは、 norisio (aka. skb_apos) です。


TL; DR

GUI ソフト → MusicXML → (musicxml2ly) → LilyPond ソース

musicxml2ly は python2 スクリプト


MusicXML とは


MusicXMLは、XML形式の楽譜表記のためのオープンなファイルフォーマットである。

(中略)

FinaleSibelius、Rosegarden、Notionなどの楽譜作成ソフトウェアによって作成することが可能である。


(Wikipediaより引用)

つまりは、「楽譜」の「共通フォーマット」ということですね。 LilyPond のパッケージには、この MusicXML を LilyPond ソースに変換するスクリプトが付属しています。

これを使うことによって、


  • 最初は他の GUI ソフトで MIDI キーボード を使ってゴリゴリ打ち込み

  • 変換して LilyPond で浄書

というフローをとることができそうです。


実際にやってみる

GUI ソフトで音符を打ち込み、 LilyPond ソースに変換して組版をかけてみます。


Musescore で打ち込み

できました。

ss 2017-12-16 21.43.40.png

強弱記号(デフォルト位置からずらす)、フェルマータを入れてみました。

これを、 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 で組版

できました。

ss 2017-12-16 21.59.57.png

歌詞が少し消えていますが、変換自体は概ね正しいものです。


musicxml2ly の出力の特徴

Musescore からの変換しか試せていませんが、概ね次のような特徴をもったソースを吐き出します。


  • 歌詞・パートはそれぞれの変数に代入される


    • 一部複数ボイスがあると s1 が量産される Voice ができる



  • Staff にひとつあればよい記述 (\bar など) が全てのパートに存在こともある

  • 連桁はすべて陽に記述される (autoBeaming = ##f)

  • 改行・改ページはすべて \break, \pageBreak で陽に記述される

  • 小節チェック | の箇所で改行され、小節番号がコメントされる


おわりに

LilyPond は打ち込み用のソフトウェアではないので、こういった分業もけっこう「あり」だと思います。