Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
コンテンツにスキップ

GNU LilyPond

出典: フリー百科事典『ウィキペディア(Wikipedia)』
GNU LilyPond
開発元 LilyPond開発チーム
最新版
2.20.0 / 2020年3月1日 (4年前) (2020-03-01)
最新評価版
2.21.6 / 2020年9月14日 (4年前) (2020-09-14)
リポジトリ ウィキデータを編集
プログラミング
言語
Scheme, C++, PostScript, METAFONT, Python
対応OS Windows, Linux, macOS, FreeBSD
プラットフォーム クロスプラットフォーム
サポート状況 開発中
種別 楽譜作成ソフトウェア
ライセンス GNU GPL
公式サイト https://lilypond.org/
テンプレートを表示

GNU LilyPond(グニュー リリーポンド)は、クロスプラットフォーム楽譜作成ソフトウェアである。

GPL ライセンスのもとにフリーで公開されている。C++ で記述され、Scheme ライブラリ (GNU Guile) でアセンブルされているが、ユーザ独自のカスタマイズや拡張も可能である。単純に音楽をテキストに記述してコンパイルすることにより、(PostScript 経由で)PDFSVGなどの形式で楽譜を出力できる。同時にMIDIファイルを出力させることも可能である。

FinaleSibeliusなどのような楽譜作成ソフトウェアとは異なり、LilyPond自体はGUIを持たない。しかしながら、出版にも耐えうるほどの質の高い楽譜を出力することができる。また、GUIをもつソフトウェアの中にも、RosegardenNoteEditCanorusDenemoFrescobaldiのようにLilyPondの形式で出力できるものがある。

LilyPond で作成された楽譜の例。

手作業で版が作成されていた時代の浄書のルールを忠実に再現することによって質の高い楽譜を作ることが、LilyPondの目標のひとつである。プログラマーの腕次第では、LilyPondは大手出版社の出力水準よりも質の高い楽譜を作ることができる。そのような楽譜はIMSLPに多く投稿されている。

ミュートピアプロジェクトでは、フリーの楽譜を配布することを目的としており、そのためにLilyPondを使用している。これは、コラボレーションによる音楽百科事典「ミュージペディアフランス語版」も同様である。Wikiの記事上のLilyPondに関する記事を直接編集するには、MediaWikiインタフェースのひとつであるWikiTeXイタリア語版を使うことができる。

LilyPond のソースファイルの例

[編集]

パーセント記号 (%) が書かれると、その行は以後コメントと見なされる。ここでは可読性の向上のために %% と書かれている。

LilyPondにおいては、音名オクターヴ音価の順に記述される。オクターブを指定するためには、引用符 (') とコンマ (,) を使用し、それぞれが基準音から1オクターヴ上、1オクターヴ下を意味する。なお、デフォルトでは基準音は中央ハの1オクターヴ下のハ音である。たとえば、 a'4 と記述すればそれは440Hz付近のA音(イタリア音名:ラ)の四分音符を意味する。

LilyPondの特殊な文法の一つとして、括弧類の扱いがある。直感的には、[d8 c]と記述したくなるような場合、d8[ c]と記述するのが正しい。すなわち、これらの命令は常に音の命令の後に指定し、それぞれの音の属性として処理される。なお、この括弧 [, ] は、八分音符を桁で繋げる命令である。

LilyPondの入力方式には、絶対入力と相対入力の2つの方法がある。絶対入力の方法においては、音のオクターヴは毎回指定されなければならない。相対入力の方法においては、直前の音から最も近いオクターヴを基準にして自動的に選ばれる。すなわち、オクターヴを指定しなければ直前の音から見て上下増四度以内の該当する音名の音が自動的に選択される。減五度以上跳躍する場合に、直前の音から相対的に何オクターヴ上下するかを記述すればよい。たとえば、c gと記述した場合、G音はC音から見て完全四度下のものが選択される。完全五度上のものを選択させるにはc g'と記述しなければならない。なお、ここの例では相対入力の方法で書かれている。

文字コードUTF-8のみが使用される。このため、一つのファイル内でデンマーク語ヘブライ語朝鮮語などの文章を混在させることも可能である。なお、ソースファイルの最初の一行は、 Emacsに常にUTF-8で読み書きを行うようにする命令である。 Emacs以外のテキストエディタを使用する場合には、各自UTF-8を使用するように注意しなければならない。

#!lilypond firebreathers.ly -*- coding: utf-8; -*-
%% Theme to "Fire Breathers", a homebrew NES game perpetually 
%% under development.  Composed by Urpo Lankinen.

%% Note: The composer has made this source code available 
%% to Wikipedia under the GFDL license.  Other versions outside 
%% Wikipedia are typically under CC BY-SA license.

%% This file uses Finnish note names (for example, where 
%% Americans use "F#" and "Bb", Finns use "Fis" and "B"). 
%% Dutch note names are used by default.
\include "suomi.ly"

%% Optional language upgrade helper.
\version "2.6.0"

%% The header block defines the titles and texts.
\header {
    title = "Theme to ``Fire Breathers!''"
    instrument = "For the 2A03 or SID"
    composer = "Urpo Lankinen"
    enteredby = "Urpo Lankinen"
    updatedby = "Jan Nieuwenhuizen"
    date = "June 2005"
}

Melody = \relative c'' {
   \clef treble
   \time 3/4
   \key a \minor

   %% The piece starts with a quarter-note partial bar, "\partial 4"
   %% tells so to LilyPond.
   \partial 4
   a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. | e2
   a4 | e'4.( d8[ c]) r8 | d4.( e8[ f]) r8 | e2. | r2
   e4 |  f4.( e8[ d]) r8 | d4.( c8[ h]) r8 | a2. | e2
   a4 | e'4.( d8[ c]) r8 | d4.( c8[ h]) r8 | a2. ~ a2 r4 | \bar "|."
}

%% This is the second voice.
SecondVoice = \relative c {
   \clef bass
   \time 3/4
   \key a \minor

   \partial 4
    r4 | e2.              | d2.             | a2. | e2
    a4 | e'2.             | d2       f4     | e2. | r2.
       |  f2.             | d2.             | a2. | e2
    a4 | e'2.             | d2       h4     | a2. ~ a2 r4 | \bar "|."
}


%% Melodies, lyrics and chords can be assigned to a variable and then
%% be *reused* elsewhere.  Here are three different accompaniment
%% patterns, which are used throughout the accompaniment melody.
AccompA = \relative c { a4 e'8 a, e' a, | }
AccompB = \relative c { g4 d'8 g, d' g, | }
AccompC = \relative c { e,4 h'8 e, h' e, | }

Accompaniment = {
   \clef bass
   \time 3/4
   \key a \minor

   \partial 4
    r4 | \AccompA \AccompB \AccompA \AccompA
        \AccompA \AccompB \AccompA \AccompA
        \AccompC \AccompC \AccompA \AccompA
        \AccompA \AccompB \AccompA | a2 r4 | \bar "|."
}

%% The top level music definition.
<<
  \new Staff \Melody
  \new Staff \Accompaniment
  \new Staff \SecondVoice
>>

上記の出力結果

[編集]

Rendered output

関連項目

[編集]

外部リンク

[編集]