NumScoreヘルプ

記譜法について
  五線譜と数字譜
  文字譜
  数字譜のテキスト記述
  ソースコード

使用方法
  動作環境作成
  作業手順
  プロパティ
  自動整形
  文字譜

ソースコード
  テキスト記述の基本
  ソースコードの構成
  弓法指示
  運指指示(ノート属性)
  装飾音指示(ノート属性)
  装飾音表示位置指定
  属性のまとめ書き
  進行制御(小節属性)
  制限値

タグ・予約語 記述規約
  コメントタグ
  ノード記号
  小節線記号
  音価記号
  音価属性タグ
  連弓記号
  連弓属性タグ
  弓方向タグ
  運指タグ
  装飾音属性タグ
  小節属性タグ
  色変更タグ
  コメントアウト
  属性のまとめ書き
  音名定義タグ

ソースコード例題
  あかとんぼ

【記譜法について】

五線譜と数字譜

五線譜では五線と音符で音の高さと長さを表現しますが、数字譜では音名番号と下線でそれを表現します。
どちらも横軸を時間軸とするグラフですが、五線譜は縦軸をピッチとする2次元グラフなのに対し、
数字譜ではピッチを音名で表現するため1次元での記述が可能です。
数字譜は五線譜に比べビジュアルで音程を捉えにくいという難点はありますが、
文章のように記譜できるという利点があります。
また移動ドで表記するため、移調楽器や弦楽器にとっては便利な記譜法でもあります。

文字譜

数字譜は18世紀、ジャン・ジャック・ルソーが考案したものですが、このようなテキスト記述の譜面を一般的には
文字譜と言います。右脳型の五線譜に比べ左脳型の文字譜は演奏することより記述することに注目点があります。
実際、各国の民族音楽では色々な文字譜が使われていますが、これらは演奏家のためというより記録採譜や
学習教材として進化してきました。(本プログラムでは数字譜以外にドレミ譜、インド音楽のSRGM譜なども扱っています)
様々な文字譜に共通することは旋律や拍の記述は無論のこととして、その音間装飾の記述特化にあると言えます。
音楽の世界で「使う」ということは「伝える」こと。
演奏者にとっての楽器と同じように、文字譜には記述者の愛情が込められています。

数字譜のテキスト記述

既存のテキストエディタでは数字譜の上下のオクターブ付点や下線を記述することは出来ませんので若干の工夫が
必要です。例えば数字譜では付点の数でオクターブの音高を表現していますが、これを" , "と" ' "で代替しています。
1〜オクターブ上までの上行音列は1 2 3 4 5 6 7 1'で表現できますし、1〜オクターブ下までの下行音列では
1 7, 6, 5, 4, 3, 2, 1,,という具合になります。
また音価を現す下線についてはその対象音を"("と")"で括ることで指示します。
例: (12) 3. (2) 1 | (12) ((32) 1) 2 - |

ソースコード

こうして作成されたテキストファイル(拡張子は何でも構いません)をソースコードと呼びます。
HTML文書のビューワーとしてブラウザを使うのと同義、本プログラムはこのソースコードのビューワーです。

【使用方法】

動作環境作成

以下4点を適当なフォルダの中に置いてください。
・NumScore.exe:数字譜ソースコードのビューワープログラム
・NumScore.html:ヘルプファイル
・NumScore.ini:プロパティファイル(無ければ初回起動時に自動生成されます)
・NumScore.exe.manifest:ビジュアルスタイルマニフェスト(無ければ初回起動時に自動生成されます)

作業手順

1.既存のテキストエディタによるソースコードの作成(ソースコード規約については別途記述します)
2.NumScoreを起動してソースコードを読み込むか、ソースコードをNumScoreにドラック&ドロップ
 (ファイル選択ダイアログで「キャンセル」を選択すると空のドキュメントを開きます)
3.NumScoreビューワー画面を見ながらエディタ側でソースコードを修正、保存
4.NumScoreでソースコードの再読み込み。修正箇所があれば再びエディタ編集
 (HTMLビルダーを介さず直接エディタでHTML文書を編集、ブラウズテストするときと同じ手順です)
5.印刷
 印刷時、フォントサイズは用紙設定に対して最適化されています。
 それより拡大縮小したいときには、ファイルメニューの「印刷用フォントサイズの変更」で調整してください。

プロパティ

本プログラムのプロパティ(環境定数)はINIファイル(NumSore.ini)に定義しています。
このプロパティはテキストエディタで編集できますが、メニューバーからプロパティダイアログ経由でも変更できます。

プロパティとしてはプログラム起動時の表示色の他、"自動整形"タイプ、"文字譜"タイプなどを扱っていますが、
メニューバーから実行する"移調"、"自動整形"タイプの変更、"文字譜"タイプの変更は一時的な状態ですので、
プロパティには反映されません。
次回起動時にも永続的な動作環境として設定したい場合にはプロパティ変更を願います。

プロパティを初期化したいときは、プロパティダイアログで「初期化」を実行するか、アプリケーションフォルダから
INIファイルを削除した後、本プログラムを再起動することでこれを自動生成します。
(ソースコードによってプロパティを使い分けたいとき、プロパティをソースコードに書き出す機能はありませんが
リネームしたINIファイル名をソースコード内にコメントしておき、後で再利用することで同様の処理が可能です)

自動整形

美しく分かりやすい譜面を作るためには行毎に横(タイム進行)方向についてある程度の整列が必要です。
しかし余り細かい拍節までグリッドしてゆくと、譜面はどんどん横に長くなりますので、3通りの整列方法を用意しました。
・なし…半角スペースを使って記述者が自由にスペーシング整形できます。
・小節線を揃える…各行の小節線のみに注目して整列します。(半角スペースは小節内先頭のもの以外は評価されません)
・拍節を揃える…各行の小節内タイムまで注目して整列します。(半角スペースは小節内先頭のもの以外は評価されません)

文字譜

もともと本プログラムは二胡学習者への教材配布を目的として作ったものですが、他の民族楽器での流用や、
バンド編成時のメモ代わりに使うためのチューンを重ねた結果、現在4通りの音名表示が可能となりました。
・数字譜:デフォルトの音名ですが、二胡以外では大正琴など一部の邦楽器でも使用しています。
・ドレミ譜:伊式のドレミ表記です。ドとファのみ半角2文字を使ってしまうのが若干気になっています。
・SRGM譜:インド音楽スケールSRGMPDNはサレガマパダニと読みますが7つの音がそれぞれ神様の頭文字になっています。
・コード譜:米英式のCDE表記。バンド編成など、旋律の上に歌詞やコード名をコメントするときには便利です。

但し、これらはあくまで出力形式であり、ソースコード自体は数字譜形式で入力する必要があります。
しかしコード譜を作成するのにいちいち頭の中で数字変換するのも面倒ですので、
ソースコード記述を文字で行いたいときのために"<notation>"タグを用意しました。
具体的にはソースコードの先頭で<notation=s1,s2,s3,s4,s5,s6,s7>という宣言をすることで、
この宣言以降に出現するs1〜s7の文字は数字譜の1から7と見なされます。
(例えばコード譜の場合は<notation=C,D,E,F,G,A,B>と宣言することで、数字ではなくCDE記述が可能となります)

【ソースコード】

数字譜テキスト記述の基本

数字譜では付点の数でベースノートオクターブ音高を表現していますが、これを" , "と" ' "で代替します。
1〜オクターブ上までの上行音列は1 2 3 4 5 6 7 1'で表現できますし、1〜オクターブ下までの下行音列では
1 7, 6, 5, 4, 3, 2, 1,,という具合になります。

半音変化記号は"b"と"#"を後置して、1 2b 3 4# というように記述してください。
(スペースを省いて12b34#でも同じことを意味します)
臨時記号としてこれらを使用した際のナチュラルは"n"を後置してください。
半音とオクターブの記述の順番はどちらが先でも構いません。

数字譜では音価は音名の下線で示しますが、これは1つの線分の区間を1/2の拍子にする性格を持っています。
線分をテキストで表現するのは難しいので"("と")"で括ることで、これを代替します。
1234 の4拍を3拍に縮めるには 12(34) として、3/4拍子の場合、12は四分音符、34は八分音符を意味します。
また2/4拍子で 1(2(34)) とすると、1は四分音符、2は八分音符、34は十六分音符ということになります。

音価を1.5倍とする付点音符は"."、継続音は"-"、休拍は"0"を記述してください。
(例えば、1.(2)と1(-2)は同義ということになります)

尚、3連符5連符は(123)<3>、(12345)<5>、といった具合に")"の直後に"<3>"、"<5>"を記述してください。
(連符記号は<3><5><7>の3つまでしか対応していません)

一般的な小節線は"|"、反復小節線(リピート)の場合は"|:"と":|"で記述してください。

音名の位置決めに使用するスペース" "は音価としては評価しません。

ソースコードの構成

ソースコードは以下の要素で構成されます。
・ノード
・スペース
・小節線
・音価記号(括り指定)
・連弓記号(括り指定)
・色変更タグ(括り指定)
・コメントタグ

ノードはノート(単位音)とその属性タグで構成され、ノート属性には装飾音と奏法指示(指番号、弓方向)があります。
(例:3<^R4><f二><d>…4の後打音を伴って3を二指、拉弓で弾く)

スペースはノードの位置決めのためのスペーシングに使います。
(但し自動整形モードの下では、小節内の先頭スペースしか評価されません)

小節線は通常の小節線"|"と反復小節線"|:"、":|"のみで、終止線はサポートしていません。
この小節線の属性タグとして進行制御タグ(D.C.やD.S.、Fine、Segno、Coda等)があります。

音価記号は一連のノード群を"("と")"で括ることにより、その間の音価を1/2に指定します。
この括りは小節を跨ぐことはできますが、行を越えて指定することはできません。
音価属性として3連符〜7連符の用意がありますが、この間の音数はチェックしていません。
(正しく記述しないと自動整形モードで桁ズレが発生します)

連弓記号は一連のノード群を"{"と"}"で括ることにより、その間の連続音をひとつの弓で弾くことを指示します。
この連弓の属性タグとして撃打滑音属性"<・>"があります。
撃打滑音は三指音を挟んでの連弓で使用されますが構成音についてはチェックしていません。

色変更タグは一連のノード群を"<color={色指定}>"と"</color>"で括ることにより、
その間の表示色をプロパティ定義色から一時的に変更します。
但し、"<color={色指定}>"だけでは機能せず、"</color>"の出現によりはじめて評価されます。
色指定はRGB(rrr,ggg,bbb)といったRGB値を0〜255で記述する方法と、#rrggbbのように16進で記述する方法、
何れかが選択できます。

コメントタグは文字列表示を指定するもので"<text=XXXXXX>"と記述することで、"="以降の文字列が表示されます。
コメントタグは行の左端から記述されたものしか評価されません。
(例:<text=Intro >000(12)|3----| … ○   000(12)|3----|<text= Intro> … ×)

文字サイズはL(デフォルト)とSの用意があり、"<text {L|S}=>"といった形式で指定します。
曲のタイトルや調、歌詞やコード、演奏メモなどコメントタグの利用範囲は多岐に渡ります。

弓法指示

弓法には「連弓指示」と「ボーイング指示」の2つの種類があります。

連弓指示は性格的には音価記号と同じで、括られた区間を連弓にするもので、"{"と"}"でノードを括ります。
(例:{ 1 2 } { 3 4 } )

ボーイング指示(ノート属性)はダウンボー"<d>"、アップボー"<u>"をノートに対して後置してください。
(例:{(1<d>2)}34|{3<u>--}|)

運指指示(ノート属性)

"<f"+運指文字列+">"をノートに対して後置します。
例えば 4<f内三> 5<f0> 6<f一> 7<f二> 1'<f一> というように記述しますが、
運指文字列には何を書いても構わないため、到把を伴うノードは 1'<f→一> と書くこともできます。

一般的な二胡譜では指番号を"一"、"二"、"三"、"四"or"X"で表現しますが、
内弦か外弦かの区別がつき難いときには、その前に"内"、"外"を明示しています。
この内外弦の指示が初級者にとってはじつに混乱の元になりますので、外弦は音名の上側、内弦は下側に表記する
ことで表示がすっきりします。このとき上側表示(デフォルト)の場合は"T"、下側では"B"を文字列に前置します。
これを踏まえた上での運指属性タグの記述規約は、<f{T|B}{文字列}>ということになります。
(例:<f一><fB一>

もし一般的な二胡譜と同じように内/外の区別を上側に表示したいときは、<f外一><f内一>と記述してください。
また鍵盤楽器に馴れている方の場合、一〜Xでは一がどうしても親指に見えてしまうため、<f親><f人><f中><f薬><f子>
というような工夫をしてあげる必要があるかもしれません。

装飾音指示(ノート属性)

・打音  <^{L|R}{文字列}>
 直前の音に文字列の打音を付加することを指示します。
 デフォルトでは対象音に前置(L)、上部(T)に表示されますが、後置(R)、下部(B)の表示も指定できます。
・トリル <%{L|R}>
 直前の音にトリルを付加することを指示します。
・滑音  <~{L|R}{T|B}{文字列}>
 滑音属性。直前の音に滑る音を付加することを指示します。
・回転滑音 <@{L|R}>
 回滑音属性。直前の音に回滑音を付加することを指示します。
・撃打滑音 <・>
 "}"の直後に記述してください。
・モルデント <m>
 直前の音にモルデントを付加することを指示します。
・プラルトリラ <p>
 直前の音にプラルトリラを付加することを指示します。

装飾音表示位置指定

・左配置文字 "L"(デフォルト)
・右配置文字 "R"
・上配置文字 "T"(デフォルト)
・下配置文字 "B"

属性のまとめ書き記号

属性タグをノートに後置記述する際、"<"〜">"を幾つも並べているうち、ノートと属性の見通しが悪くなることがあります。
そのため、ひとつのノートに対する属性をまとめ書きするためのスプリッタ";"を用意しました。
(例:4<u><~RB5><f二>3<f三><LT5> → 4<u;~RB5;f二>3<f三;LT5>

進行制御(小節線属性)

・D.C.(ダカーポ) <DC>
 直前の小節線下に表示します。
・D.S.(ダルセーニョ) <DS>
 直前の小節線下に表示します。
・Fine(フィーネ) <FN>
 直前の小節線下に表示します。(小節線上のフェルマータ記号は用意していません)
・Segno(セーニョ) <SN>
 直前の小節線上に表示します。
・Coda(コーダ) <CD>
 直前の小節線上に表示します。
・反復小節のメロディー番号 <NO1><NO7>
 直前の小節線上に表示します。

制限値

・フォントタイプ
 プロポーショナルフォントは使用できません。
・フォントサイズ
 8〜70。
・連符
 <3>,<5>,<7>連符のみ使用できます。また連符指定の記述は")"から2バイト以内に記述してください。
・1行の制限
 500バイトまで。ノード数は256まで。
・小節線番号(リピート時)
 <NO1><NO7>まで。
・大文字と小文字
 タグ、予約語に大文字と小文字の制限はありません。

【タグ・予約語 記述規約】

コメントタグ    <text={文字列}> <text L={文字列}> <text S={文字列}>
ノード記号     0 1 2 3 4 5 6 7 - .  , ' # b n
小節線記号    | |: :| [ ]
音価記号     ( )
音価属性タグ   <3> <5> <7>
連弓記号     { }
連弓属性タグ   <・>
弓方向タグ    <u> <d>
運指タグ     <f{T|B}{文字列}>
装飾音属性タグ <^{L|R}{文字列}> <~{L|R}{T|B}{文字列}> <@{L|R}> <%{L|R}> <m> <p>
小節線属性タグ <DC> <DS> <FN> <SN> <CD>  <NO1> <NO2> <NO3> <NO4> <NO5> <NO6> <NO7>
色変更タグ    <color={RGB(rrr,ggg,bbb)|#FFFFFF}> </color>
コメントアウト   // <!-- --> <eof>
属性まとめ書き  ;
音名定義タグ   <notation={s1,s2,s3,s4,s5,s6,s7}>

コメントタグ
 <text L={文字列}>  文字列 (largeサイズ)。
 <text S={文字列}>  文字列 (smallサイズ)。
 <text={文字列}>   文字列 (largeサイズ)。"<text L=>"と同義
              "="の後ろに文字列を記述。行頭からしか使用できません。(例:<text L=サンプル>
ノード記号
 0    休符。
 1〜7  音名。上下オクターブは"'"と","で指示します。
 -    継続音。
 .    付点音符。
 ,    下オクターブ属性。2オクターブ以上のときは続けて指示。(例:543217,6,5,4,3,2,1,7,,6,,5,,)
 '    上オクターブ属性。2オクターブ以上のときは続けて指示。(例:1234671'2'3'4'5'6'7'1'')
 #    シャープ属性。前置表示されますが、記述時は音名の直後に記述してください。(例:1#)
 b    フラット属性。前置表示されますが、記述時は音名の直後に記述してください。(例:1b)
 n    ナチュラル属性。前置表示されますが、記述時は音名の直後に記述してください。(例:1n)

小節線記号
 |    小節線。
 |:    反復小節線(左)。
 :|    反復小節線(右)。
 [    反復小節線(左)。"|:"と同義。
 ]    反復小節線(右)。":|"と同義。

音価記号
 (    1/2音価の開始。"("〜")"で括ることにより現在音価の1/2と評価されます。(例:1234|1(23)((4567))1'|)
 )    1/2音価の終了。

音価属性タグ
 <3>  3連符属性。")"の直後に記述してください。
 <5>  5連符属性。")"の直後に記述してください。
 <7>  7連符属性。")"の直後に記述してください。

連弓記号
 {    連弓開始。"{"〜"}"で括ることにより一連の音を連弓で弾くことを指示します。(例:{(12)}34|3--|)
 }    連弓終了。

連弓属性タグ
 <・>   撃打滑音属性。"}"の直後に記述してください。

弓方向タグ
 <u>   アップボー属性。直前の音をアップボーでで弾くことを指示します。(例:{(1<d>2)}34|{3<u>--}|)
 <d>   ダウンボー属性。

運指タグ
 <f{T|B}{文字列}>  運指指示属性。直前の音をどの指で弾くかを指示します。
       デフォルトでは対象音の上(T)に表示されますが、内外弦の区別のため下部(B)に表示することも指定できます。
       (例1:5<f空>65<fB二>4|5---| 例2:5<f0>65<f内二>4|5---|)
       単に音名表示の上下に文字列を表示するだけの属性ですので、指番号以外の用途にも使用できます。
装飾音属性タグ
 <^{L|R}{文字列}>  打音属性。直前の音に文字列の打音を付加することを指示します。
       デフォルトでは対象音に前置(L)、上部(T)に表示されますが、後置(R)、下部(B)の表示も指定できます。
 <~{L|R}{T|B}{文字列}>  滑音属性。直前の音に滑る音を付加することを指示します。
 <@{L|R}> 回滑音属性。直前の音に回滑音を付加することを指示します。
 <%{L|R}> トリル属性。直前の音にトリルを付加することを指示します。
 <m>   モルデント属性。直前の音にモルデントを付加することを指示します。
 <p>   プラルトリラ属性。直前の音にプラルトリラを付加することを指示します。

小節線属性(進行制御)タグ
 <DC>  D.C.(ダカーポ)属性。直前の小節線下に表示します。
 <DS>  D.S.(ダルセーニョ)属性。直前の小節線下に表示します。
 <FN>  Fine(フィーネ)属性。直前の小節線下に表示します。(小節線上のフェルマータ記号は用意していません)
 <SN>  Segno(セーニョ)属性。直前の小節線上に表示します。
 <CD>  Coda(コーダ)属性。直前の小節線上に表示します。
 <NO1><NO7> 反復小節のメロディー番号を小節線上に表示します。

色変更タグ
 <color={RGB(rrr,ggg,bbb)|#FFFFFF}>  プロパティ定義の表示色を一時的に変更する開始位置。
       0〜255までのRGB指定、16進での指定が選択できます。
       (例1:1234|<color=RGB(255,0,0)>56</color>71' 例2:1234|<color=#ff0000)>56</color>71')
 </color> 一時的な色変更の終了位置。

コメントアウト
 //   出現行、出現位置以降をコメントアウト
 <!--   出現位置から以降をコメントアウト
 -->   出現位置までをコメントアウト
 <eof>  出現位置以降をコメントアウト

属性のまとめ書き記号
 ;     複数の属性を<〜>の括り内にまとめ書きする際のスプリッタ。(例:<u><~RB5><f二><u;~RB5;f二>

音名定義タグ
 <notation={s1,s2,s3,s4,s5,s6,s7}>  記述音名定義。ソースコードをs1〜s7の文字で記述することを宣言します。

【例題】

<text=「あかとんぼ」key=G>
<text=A >{(5<fB空><d>1<fB一>)}1<fB一><u>.(2<fB二><d>)|{(3<f一><u>5<f一>)}{(1'<fX><d>6<f二>)}5<f一><u>|{(6<f二><d>1<fB一>)}1<fB一><u>2<fB二><d>|3<fB三><u>--|
<text=B >|:{(3<f一><d>6<f二>)}5<f一><u>.(6<f二><d>)|{(1'<fX><u>6<f二>)}{(5<f一><d>6<f二>)}{(5<f一><u>3<f一>)}|{(5<f三><d>3<f一>)}{(1<fB一><u>3<fB三>)}{(2<fB二><d>1<fB一>)}|1<fB一><u>--:|