ギターのコード譜を生成するプラグイン作った。
こんな狭い世界で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]と書くと
のように画像に変換されます。フレットを指定する
デフォルトで登録されているコードのフォームが気に食わない、コードが特殊、など、フレットを指定したい場合「C6@032030」のように@マークで区切ってください。[chord:C6@032030]
- 6弦から1弦に向かって書きます。
- ミュートは小文字のxです。
複数のコードをズラッと書く。
複数並べたい場合、スペースで区切って記入できます。[chord:C6@032030 GM7 Bm7 Em]




コードネームの自動推定
コードネームの代わりに「auto」と指定することで、自動的にコードを推測することができます。[chord:auto@320003 auto@xx0232 auto@x7678x auto@576755 auto@123456]





その他の例
フレット指定するならコードネームは適当でもおkです[chord:Jimi@x7678x]

二桁のフレット数が混じるときはカンマ区切りで
[chord:Ab_oct@x,11,x,13,x,x]

コードの表記例
メジャー、マイナー[chord:C Cm]

メジャーセブンスは大文字M7。セブンス、メジャーセブン、マイナーセブン、マイナーメジャーセブン。
[chord:C7 CM7 Cm7 CmM7]



ディミニッシュ、オーギュメント、サスペンテッドフォー、アドナイン
[chord:Edim Eaug Esus4 Eadd9]



テンションは括弧でくくる
[chord:C7(9) C7(9,13)]

シャープはシャープ記号。フラットは小文字のb
[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____
]
two jumps in a week a bet you
think that's pretty clever
don't you boy?
Flying on your motorcycle,
watching all the ground
beneath you dropF#m(11)You'd kill yourself for recognition, Asus2kill yourself to never Eever stop
F#m(11)You broke another mirror, you're Asus2turning into something Eyou are not
So don't leave me
high____
don't leave me
dry____Don't leave me F#m(11)high____Asus2don't leave me Edry____
Leave a comment