こんな狭い世界でbayashiさんのと被ってしまってなんですが、ギターのコード譜を画像表示するMTプラグインを作成しました。たぶんMT4.2位専用です。





動作環境



お使いのサーバーで、画像処理ライブラリのGDと、PerlからGDを利用するためのモジュールがインストールされている必要があります。自分の利用しているXreaのサーバーでは、いずれも利用可能なようです。


インストール



プラグインディレクトリに、解凍したGuitarToolsプラグインのpluginsディレクトリ以下をアップロードしてください。

外部モジュールとして、画像作成ににぽたんさん作成GD::Tab::Guitar、コード認識にMusic::Chord::Namerを利用しています。プラグインのパッケージには同梱していませんので、これらのモジュールをCPANからインストールするか、またはextlibに適宜展開して下さい。



また、lines記法を利用するためには、以下のスタイルシートをメインのスタイルシートテンプレートのおしりなどに張り付けるなどの形で、参照できるようにしてください。


.guitarlines {
line-height: 50px;
background-color: #F4F8Fc;
font-size: 16px;
}

.guitarlines .guitarchord {
position: relative;
width: 52px;
top: -7px;
margin: 0 -52px 0 0;
border: 0;
}

.guitarlines .chordname {
position: relative;
display: inline-block;
width: 0;
top: -1.2em;
font-weight: bold;
}



利用方法



プラグインがインストールされると、グローバルモディファイア「guitar_tools」と、テキストフォーマット「GuitarTools」が有効になります。これらが有効な箇所で、ギター記法を利用できます。

ごくたまにエントリーで使う程度ならフォーマットから利用し、日常的にギター記法を利用するブログでは、EntryBodyタグなどのモディファイアとして、テンプレートに組み込んでしまうのがよいかと思います。


シンタックス



基本


角括弧で囲んで「chord:」と書いた後にコードネームを書いてください。

[chord:C]と書くと[chord:C]のように画像に変換されます。


フレットを指定する


デフォルトで登録されているコードのフォームが気に食わない、コードが特殊、など、フレットを指定したい場合「C6@032030」のように@マークで区切ってください。


[chord:C6@032030]

[chord:C6@032030]



  • 6弦から1弦に向かって書きます。

  • ミュートは小文字のxです。



複数のコードをズラッと書く。


複数並べたい場合、スペースで区切って記入できます。


[chord:C6@032030 GM7 Bm7 Em]

[chord:C6@032030 GM7 Bm7 Em]


コードネームの自動推定


コードネームの代わりに「auto」と指定することで、自動的にコードを推測することができます。


[chord:auto@320003 auto@xx0232 auto@x7678x auto@576755 auto@123456]

[chord:auto@320003 auto@xx0232 auto@x7678x auto@576755 auto@123456]


その他の例


フレット指定するならコードネームは適当でもおkです


[chord:Jimi@x7678x]

[chord:Jimi@x7678x]


二桁のフレット数が混じるときはカンマ区切りで


[chord:Ab_oct@x,11,x,13,x,x]

[chord:Ab_oct@x,11,x,13,x,x]


コードの表記例



メジャー、マイナー

[chord:C Cm]

[chord:C Cm]


メジャーセブンスは大文字M7。セブンス、メジャーセブン、マイナーセブン、マイナーメジャーセブン。

[chord:C7 CM7 Cm7 CmM7]

[chord:C7 CM7 Cm7 CmM7]


ディミニッシュ、オーギュメント、サスペンテッドフォー、アドナイン

[chord:Edim Eaug Esus4 Eadd9]

[chord:Edim Eaug Esus4 Eadd9]


テンションは括弧でくくる

[chord:C7(9) C7(9,13)]

[chord:C7(9) C7(9,13)]


シャープはシャープ記号。フラットは小文字のb

[chord:C# C7(#9) C7(b5)]

[chord:C# C7(#9) C7(b5)]



lines記法


歌詞っぽいものをかけます。


歌詞全体を[lines: ... ] で囲みます。

そして、コードネームを弓かっこ「{」「}」で囲んではさむと、歌詞中にコードネームやポジション画像を埋め込むことができます。

コードネームのみとしたい場合、コードネームの先頭にマイナスを付けてください。


[lines:
{F#m(11)@x44200}two jumps in a week a bet you {Asus2@x02200}think that's pretty clever {E}don't you boy?
{F#m(11)@x44200}Flying on your motorcycle, {Asus2@x02200}watching all the ground {Eb@688666}beneath you drop
{-F#m(11)}You'd kill yourself for recognition, {-Asus2}kill yourself to never {-E}ever stop
{-F#m(11)}You broke another mirror, you're {-Asus2}turning into something {-E}you are not

So don't leave me {F#m(11)@x44200}high____{Asus2@x02200}don't leave me {E}dry____
Don't leave me {-F#m(11)}high____{-Asus2}don't leave me {-E}dry____
]


[lines:
{F#m(11)@x44200}two jumps in a week a bet you {Asus2@x02200}think that's pretty clever {E}don't you boy?
{F#m(11)@x44200}Flying on your motorcycle, {Asus2@x02200}watching all the ground {Eb@688666}beneath you drop
{-F#m(11)}You'd kill yourself for recognition, {-Asus2}kill yourself to never {-E}ever stop
{-F#m(11)}You broke another mirror, you're {-Asus2}turning into something {-E}you are not

So don't leave me {F#m(11)@x44200}high____{Asus2@x02200}don't leave me {E}dry____
Don't leave me {-F#m(11)}high____{-Asus2}don't leave me {-E}dry____
]