歌詞・注釈(notes $$)
アセンブラの魔女 ⧫ VexFlow ⧫ VexTab ⧫ 言語仕様 ⧫ 歌詞・注釈
アセンブラの魔女 ⧫ VexFlow ⧫ VexTab ⧫ 言語仕様 ⧫ 歌詞・注釈

 五線譜やTAB譜音符には歌詞や注釈などのテキストを表示することができます。

書式
{note}TEXT_TOKEN
({note})+TEXT_TOKEN

{note}			五線譜形式やTAB譜形式で表現された音
TEXT_TOKEN		$[.top.|.bottom.]?[{style}|{font}]?{text}$
{style}			[.medium.|.big.|.italic.]
{text_ontents}	{text}+(,{text})*
{text}			歌詞や注釈などのテキスト
{font}			.{fontname}.
{fontname}		face.size.style形式のフォント名
				例:Times-14-italic.Blah
					Arial-10-bold

 ${text}$で表現されるテキストは直前の音符に作用します。例えば次の例では三番目の音の直後に${text}$がありますので、三番目の音の下にテキストが表示されます。TAB譜が表示されているときは、TAB譜の下側に表示されます。

tabstave notation=true tablature=false notes C-D-E/4 $三番目の音$ F-G/4

 デフォルトではテキストは楽譜の下に表示されますが、'$'内のテキストの先頭を'.top.'や'.bottom.'にすることで、表示位置を楽譜の上側にしたり下側にすることができます。

 次の例は、上の例で下側に表示されたテキストを楽譜の上側に表示します。

tabstave notation=true tablature=false notes C-D-E/4 $.top.三番目の音$ F-G/4

 '.top.'や'.bottom.'は次のように独立したテキストとして定義してもOKです。

notes C-D-E/4 $.top.$ $三番目の音$ F-G/4

 '.top.'や'.bottom.'の効果はその後の音に対しても続きます。例えば次の例では五番目の音のテキストは、三番目の音の後で設定した'.top.'の影響が働いて楽譜の上側に表示されます。

tabstave notation=true tablature=false notes C-D-E/4 $.top.三番目の音$ F-G/4$五番目の音$

 これを楽譜の下側に表示するには、今度は'.bottom.'を使って上下の表示位置を下側に戻します。

tabstave notation=true tablature=false notes C-D-E/4 $.top.三番目の音$ F-G/4$.bottom.五番目の音$

 ここまでの例では、直前の1音に対してのみ作用するテキストを定義していましたが、直前の複数の音に対するテキストを一括定義することもできます。この場合、${text}$の'text'内にそれぞれの音に対応するテキストをカンマで区切って並べます。リストの最後のテキストが直前の音、最後から二番目のテキストが直前の音のさらに前の音というように対応します。

 次の例では、4つの音を定義した後に、それぞれの音に対応するテキストを一括定義しています。

tabstave notation=true tablature=false notes C-D-E-F/4 $Do,Re,Mi,Fa$

 ${text}$のテキスト中の冒頭で次のstyleキーワードを使ってフォントサイズやイタリック書体を指定することができます。

中文字(デフォルトより大きい)
styleキーワード説明
.big.大文字
.medium.
.italic.イタリック書体
nonestyleキーワードが存在しない場合デフォルトの文字(.medium.より小さな非イタリック書体)を使用します

 styleキーワードは${test}$中のテキストの冒頭部、.top.や.bottom.キーワードを指定する場合、styleキーワードはその後に置く必要があります。

 styleキーワードは音ごとに影響します(.top.や.bottom.のように後の音には影響を与えません)。

 標準のスタイルを明示的に指定するためのキーワードはなく、styleキーワードが存在しない場合デフォルトのスタイルが適用されます。

 次の例では、.big.サイズでコード名を表示します。

tabstave notation=true tablature=false notes :4 (C/4.E/4.A/4) $.big.Am$

 次の例では、.medium.サイズでコード名を表示します。

tabstave notation=true tablature=false notes :4 (C/4.E/4.G/4.B/4) $.medium.CMaj7$

 次の例では、イタリック書体で音名を表示します。

tabstave notation=true tablature=false notes :4 C/4$.italic.Do$ D/4 $.italic.Re$ E/4 $.italic.Mi$ F/4 $.italic.Fa$

 styleキーワードの代わりにface.size.style形式のフォント名を使って直接フォントを指定することもできます。

styleキーワード
.Arial-10-bold.P.
.游ゴシック-13-.

 フォント名は${test}$中のテキストの冒頭部、.top.や.bottom.キーワードを指定する場合、フォント名はその後に置く必要があります。

 フォント名は音ごとに影響します(.top.や.bottom.のように後の音には影響を与えません)。

 次の例では、.游ゴシック-13-.で音名を表示します。

tabstave notation=true tablature=false notes :4 C/4$.游ゴシック-13-.ど$ D/4 $.游ゴシック-13-.れ$ E/4 $.游ゴシック-13-.み$ F/4 $.游ゴシック-13-.ふぁ$

 単音ごとのテキストの定義と一括定義は一応それなりに表示されますが、VexFlowのロゴと重なる部分もあり基本的にはサポートされない様です。次の例では1音ごとにカタカナで音名を定義し、ローマ字での音名は一括して定義していますがいずれも同じように表示されます。

tabstave notation=true tablature=false notes C/4$ド$D/4$レ$E/4$ミ$F/4$ファ$ $Do,Re,Mi,Fa$

 それぞれの表示領域を.top.と.bottom.で分けてみれば良いかも知れないと考えたりもしましたが、やはりうまくいきません。

tabstave notation=true tablature=false notes C/4$.top.ド$D/4$レ$E/4$ミ$F/4$ファ$ $.bottom.Do,Re,Mi,Fa$

 .top.と.bottom.用の二つの一括定義を用意してみましたが、楽譜の上側に表示されるテキストが少し上側にズレて表示され微妙に違和感を感じます。

tabstave notation=true tablature=false notes C-D-E-F/4 $.bottom.Do,Re,Mi,Fa$ $.top.ド,レ,ミ,ファ$

 まとめると、現状のバージョンでは1つの音に対してテキストは楽譜の上側、または下側にしか表示できないと考えた方が良さそうです。

 以下の様に単音ごとに楽譜の上側、または下側にテキストを表示することについては問題はありません。

tabstave notation=true tablature=false notes C/4$.bottom.ド$D/4$.top.レ$E/4$.bottom.ミ$F/4$.top.ファ$

▼ Property
記事情報
datePublished2011-01-01
dateModified2018-07-27
authorアセンブラの魔女
headline歌詞や注釈の表示方法についての記事です
keywordsVexFlow
keywords楽譜
keywordsAPI
keywordsVexTab
keywords言語仕様
keywords音符
keywords歌詞
keywords注釈
publisher name= wiredFish, logo.name= wiredFish, logo.url= https://books-nekoya.jp/Programming/chigu-hagu-title-01.png size= 208 pixel x 50 pixel
image.url url= https://books-nekoya.jp/Programming/chigu-hagu-title-01.png , size= 208 pixel x 50 pixel