text文によるテキストの表示(text)
アセンブラの魔女 ⧫ VexFlow ⧫ VexTab ⧫ 言語仕様 ⧫ text文によるテキストの表示(text)
アセンブラの魔女 ⧫ VexFlow ⧫ VexTab ⧫ 言語仕様 ⧫ text文によるテキストの表示(text)

 notes文でのテキストの表示は音符を基準とした位置への歌詞やコード名の表示を主な目的としていますが、text文では、さらに自由度の高いテキスト表示が可能となります。

書式
書式1 text :{duration},(\.{vpos},)*(\.font={font},)*{text}(,{text})*{bar}
書式2 text (\+\+,) (\.{vpos},)(\.font={font},)*:{duration},{text}(,{text})*{bar}

{vpos}		10進整数
{duration}	{duration}	[w|h|q|1|2|4|8|(16)|(32)]
{text}		テキスト
{bar}		.|({barText})
{barText}	縦線位置に表示するテキスト
{font}		face.size.style形式のフォント名

 {vpos}は楽譜の少し上を起点としたテキストラインの垂直方向の位置を意味し、省略時はゼロがセットされます。

 {duration}の意味は、音符の長さで用いられる{duration}の意味と同じです。基本は音符の長さと同じ設定とします。

 {text}は表示する文字を意味します。通常は複数の文字をカンマで区切って指定します。カンマで区切られたそれぞれのテキストは{duration}で設定したそれぞれの拍に表示されます。

 書式1はデフォルトのテキストラインにテキストを表示します。複数行のテキストを表示する場合は、書式2を使って追加したテキストラインにテキストを表示します。

 次のサンプルはそれぞれの音符に1拍、2拍..とテキストを表示する例です。

tabstave notation=true tablature=false notes :h C-C-C-C/4 text :h,1拍,2拍,3拍,4拍

 上の例ではテキストの上側が少し欠けているかも知れません。その解決方法の一つは、楽譜(tabstave文)の前にスペースを確保することです。次の例では楽譜の上にspace値10のスペースを確保しています。

options space=10 tabstave notation=true tablature=false notes :h C-C-C-C/4 text :h,1拍,2拍,3拍,4拍

 上記の方法の他に、text文にはもっと上手い方法があります。{vpos}パラメータでテキストラインの垂直位置を指定する方法です。vpos値を1に設定すると文字の欠けはなくなりますが、この場合はvpos値2が違和感のない妥当な設定となります。

tabstave notation=true tablature=false notes :h C-C-C-C/4 text :h,.2,1拍,2拍,3拍,4拍

 この方法では、楽譜中にテキストを配置することもできます。上のコードボックスでvpos値の2を5に書き換えてみてください。テキストは五線譜の第1線と第2線の間付近に表示されるはずです。vpos値を10に設定すると楽譜の下に表示されますが、上の例ではVexFlowのロゴに隠れて良く見えません。この問題は楽譜の下の余白を確保することで解決することができます。

 下の例ではoptions space文でspace値8の余白を確保しています。

tabstave notation=true tablature=false notes :h C-C-C-C/4 text :h,.10,1拍,2拍,3拍,4拍 options space=8

 VexFlowのロゴが下に移動したことで楽譜下側のテキストが完全に読めるようになりました。

 書式2を使ってテキストラインを追加すれば複数行のテキストを表示することができます。

 次の例では、書式1でデフォルトのテキストラインに音名を表示し、書式2で追加した二つのテキストラインにタイトルと拍数を表示しています。

options space=10 tabstave notation=true tablature=false notes :h C-D-E-F/4 text :h,.10,Do,Re,Mi,Fa text ++, .12, :h,1拍,2拍,3拍,4拍 text ++, .2, :h,テキストライン確保のサンプル options space=30

 書式2を使ってテキストラインを追加すれば複数行のテキストを表示することができます。

 次の例では、書式1でデフォルトのテキストラインに音名を表示し、書式2で追加した二つのテキストラインにタイトルと拍数を表示しています。

options space=10 tabstave notation=true tablature=false notes :h C-D-E-F/4 text :h,.10,Do,Re,Mi,Fa text ++, .12, :h,1拍,2拍,3拍,4拍 text ++, .2, :h,テキストライン確保のサンプル options space=30

 楽譜に縦線がある場合は、テキストのその位置に',|'を追加して楽譜上の縦線と同期させる必要があります。'|'の直後にはその楽譜の縦線位置に表示するテキストを定義することができます。

 次の小節のテキストは次の行にtextキーワードから書きます。この場合、{duration}パラメータや{vpos}パラメータを省略すると、前の小節の設定が継承されます。

 次の例では、書式1でデフォルトのテキストラインに音名を表示し、書式2で追加した二つのテキストラインにタイトルと拍数を表示しています。{vpos}パラメータは小節ごとに新しい値を設定することができます。

 次の例ではデフォルトのテキストラインに音名を表示していますが、2小節目は表示位置を変えています。追加のテキストラインでは縦線の位置に'2小節目'と表示しています。

tabstave notation=true tablature=false notes :q C-D-E-F/4 |:q G-A-B-C/4 text :q,.10,Do,Re,Mi,Fa,| text :q,.11,So,Ra,Si,Do text ++, .2, :q, , , , ,|2小節目 options space=20

 text文では音楽記号を表示することもできます。音楽記号はtext文のカンマで区切られた一つのテキスト領域を占有しますので、そのフィールド中では他のテキストを表示することは出来ません。現在のドキュメントでは、一部の音楽記号しか紹介されていませんが、ソースコードを確認したところ次のような音楽記号が使えるようです。

名前説明
#segnoセーニョ
#turnターン
#turn_inverted逆ターン
#codaコーダ
#trトリル
#fフォルテ
#pピアノ
#mm
#ss
#zz
#pedal_openペダルオープン(ペダル)
#pedal_closeペダルクローズ(センツァ)
#caesura_straight-
#caesura_curved-
#breath名前はブレスですが、一般的なブレス記号とは絵柄が違います
#tickMIDIの時間単位tick?
#mordentモデラート
#mordent_upper-
#mordent_lower-

 現時点(2017-01-16)では、まだ不足している感じもしますが、今後のバージョンアップで拡充されることを期待しています。

tabstave notation=true tablature=false notes :w E/4 |:w E/4|:w E/4|:w E/4 text :w,.2, ,|#segno text ,|#coda text ++, .2, .font=游ゴシック-13-,:w,反復記号 ,| text ++, .9, .font=Times-12-italic,:w, ,| text , ,|Fine text :8, , , , , , , ,D.C,| text ++, .10, .font=Arial-10-bold.P.,:w, ,|segno text ,|coda options space=20 tabstave notation=true tablature=false notes :w E/4 =|= text :w,.2,#coda text ++, .10, .font=Arial-10-bold.P.,:w,coda

tabstave notation=true tablature=false notes :q E-E-E-E/4 text :q,.2, ,#p,#p,#f text ++, .2, .font=游ゴシック-13-,:w,強弱記号 ,| text ++, .9, .font=Arial-10-bold.P.,:q, ,p,p,f options space=0

tabstave notation=true tablature=false notes :q E-E-E-E/4 text :q,.2, ,#tr text ++, .2, .font=游ゴシック-13-,:w,装飾記号 ,| text ++, .9, .font=Arial-10-bold.P.,:q, ,tr options space=0

tabstave notation=true tablature=false notes :q E-E-E-E/4 text :q,.10, ,#pedal_open,#pedal_close text ++, .2, .font=游ゴシック-13-,:w,楽器特有の記号 ,| text ++, .12, .font=Arial-10-bold.P.,:q, ,pedal_open,pedal_close options space=28

tabstave notation=true tablature=false notes :q E-E-E-E/4 text ++, .2, .font=游ゴシック-13-,:w,TICK ,| text ++, .9, :32 ,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick,#tick options space=5

tabstave notation=true tablature=false notes :q E-E-E-E/4 | E-E-E-E/4 | E-E-E-E/4 | E-E-E-E/4 text :q,.2, , , , ,| text #m,#s,#z,#breath,| text #mordent text ++, .2, .font=游ゴシック-13-,:w,その他の記号 ,| text ++, .9, .font=Arial-10-bold.P.,:q , , , ,| text ,m,s,z,breath,| text mordent options space=5

 face.size.style形式のフォント名を使ってフォントを指定することができます。フォントは{vpos}オプションの後で指定します。

tabstave notation=true tablature=false text .2, .font=游ゴシック-13-,:w,游ゴシック-13-フォントでの表示 ,| text ++, .9, .font=Arial-10-bold.P,:w ,Arial-10-bold.Pフォントでの表示 ,| options space=5

▼ Property
記事情報
datePublished2011-01-01
dateModified2018-07-27
authorアセンブラの魔女
headlinetext文によるテキストの表示についての記事です
keywordsVexFlow
keywords楽譜
keywordsAPI
keywordsVexTab
keywords言語仕様
keywordstext
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