October 2008

October 24, 2008

このエントリーをはてなブックマークに追加
一個前のエントリで、はてなダイアリーウクレレ記法をけっこう使ってるだなんだって話をしましたが、私はどちらかというとウクレレとか全然弾かなくて、ギターばっかり弾いてたりするので、なんか Music::Image::Chord という、それっぽいモジュールがあったので使ってみたら、何だか色々と残念な結果だったなんてつぶやきました。

で、やっぱ、ギターのタブ譜を出力するのは大変だなーって思ってたら、コメント欄でようちゃんから
むしろ、GD::Tab::Ukuleleを改造する方向でどうでしょう?
と提案してもらったので、その方向で検討してみました。


まず、ギターの場合、ウクレレと違って弦が 6 本なので、2 本追加して、フレットの長さを変えました。

それにともない、画像のサイズはウクレレのものより大きくしました。

ギターには、ミュート弦という概念があって「この弦は音を鳴らさないんだよー」なんていう場合に、弦の左はじのほうに、×マークがついてたりします。なので、その×マークを入れるスペースを左はじに確保しました。

ギターの場合、ローコードやバレーコードなど、ポジションによって押さえかたが異なるのですが、そんなことイチイチ言ってたらアレなので、アコースティックギター派の人向けにローコードを主に出力するようにしました。
もちろん、GD::Tab::Uklele 同様に、違うポジションでおさえたほうが指運がスムーズな場合は、chord() メソッドではなく、generate() メソッドを使って、より良いポジションが利用できます。

ちなみに、GD::Tab::Uklele の generate() メソッドを使う時、
$uk->generate('D7',[0,2,0,2])->png;
このようにすると

$uk->generate('D7', [0,2,0,2])->png

こんな感じになりますが、これって、[0,2,0,2] (1 弦から 4 弦) というよりは[2,0,2,0] (4 弦から 1 弦) の表現のほうがわかりやすいというか普通な気がします。
少なくともギターやってる人間は 6 弦から 1 弦に向かってフレット番号を入れるほうがシックリくるので、generate() メソッドを拡張して、こんな風に出来るようにしました。
$gtr->generate('G', '355433')->png;
こんな風に、無名配列ではなく、文字列で渡せるようにしました。
実際にこれを動かすと、

$gtr->generate('G', '355433')->png

こんな風になります。

ウクレレに比べて、弦が多いので、コードの種類はだいぶ増えて複雑なコードも使えるようになっています。
$gtr->chord('A7(#9)')->png;

$gtr->chord('A7(#9)')->png

もちろん、フレットを指定したりして、分数コードとかも出来て、音の幅が一層ひろがります。

$gtr->generate('Bb/A', '5x333x')->png;

$gtr->generate('Bb/A', '5x333x')->png


こんな感じ。


ということで、ほとんどが GD::Tab::Ukulele を改造しただけなのですが、ギター人口はウクレレよりも高いような気がしたので、GD::Tab::Guitar を CPAN にうpっておきました

もしよかったら、はてなで「ギター記法」とか出来ないかなーなんて勝手に期待しつつ、元の GD::Tab::Ukulele モジュールの作者である舘野氏 (リプライチャメント) に敬意を表します。

みなさん、よかったら使ってみてください。


nipotan at 22:08 | Comments(1) | TrackBack(3) | 技術 
このエントリーをはてなブックマークに追加

October 22, 2008

このエントリーをはてなブックマークに追加
A (あまちゃんに) Q (急に) F (ふられたので)、気ままに書くよ。
ほんと、ブログとか、もっと気ままに書きたいのさ。



はてなダイアリーって、ウクレレ記法ってのがあって、あれいいですよね。
完全にセコン氏 (ボンドアレイ) の趣味だと思うんですが、個人的にはよく使ってます。

ついコンシリーズに参加した時の自分の曲や、その他の参加者の皆さんの曲とかを、コードひろってウクレレ用コード譜にして公開していたりします。

ウクレレ弾く人、あと、ウクレレ弾かなくても、ギターやピアノでコード拾って演奏できるって人はなかなかいいんじゃないですかね。

とりあえず、現段階で私が書いた「ウクレレで弾く」ついコンの曲シリーズはこんな感じです。
あと、ウクレレのタブ譜は、GD::Tab::Ukulele モジュールで作れます。

use strict;
use GD::Tab::Ukulele;

my $uk = GD::Tab::Ukulele->new;
open my $tab, '>', 'ukulele.png' or die $!;
print $tab $uk->chord('G#m7(b5)')->png;
close $tab;

これで、こんな風になります。


GD::Tab::Ukulele による TAB


素敵です。

こうなると、ギターのタブ譜も書きたいです。
ギターの場合は Music::Image::Chord を使って、簡単に書けます。

use strict;
use Music::Image::Chord;

my $guitar = Music::Image::Chord->new;
$guitar->debug(1);
$guitar->bounds(150, 150);
$guitar->font('/path/to/font.ttf');
$guitar->file('/path/to/guitar.png');
$guitar->grid(x => 10, y => 35, w => 20, h => 18);
$guitar->draw(name => 'G#m7(b5)', chord => '4x443x');

これで、こんな風になります。



Music::Image::Chord による TAB



残念すぎる結果です。




向きがアレだしフォントの大きさ固定だし、何しろ微妙にズレてたり、なんだか色々と残念です。
しかも、ドキュメントに書いてあるサンプルコードでは全く動かないでエラります。
ソースコード追わないとちゃんと動く方法がわからないのですが、あまりにスパゲティすぎて追う気が失せます。

あと、GD::Tab::Ukulele みたいに、コード名だけでタブが生成されるのは、メジャー (トライアド) とマイナーとセブンスのみ で、それ以外はどこを押さえるのかをこっちで指示してあげないといけません。

残念すぎます。

もっと残念なことに、じゃあ、普通のコードならちゃんとしたタブが出るよねー、それは便利だよねーなんて好意的に思って、上記のコードの最後の行を
$guitar->draw(name => 'G');
に変更してみて実行してみた結果はコレです。





Music::Image::Chord による TAB (G)


あのー、1 フレットずれてますよー





とにかく、実に残念な今日この頃です。


ついコン 2、よろしくおねがいします。


追記:

もうちょっとパラメータをいじって、GD::Tab::Ukulele と同じぐらいの弦、フレット幅で書いたらどうなるかと思って、コードを書きかえてみた。
とりあえず、フォントサイズが固定なのとか、向きとか、もうこの際あきらめる。

use strict;
use Music::Image::Chord;

my $guitar = Music::Image::Chord->new;
$guitar->debug(1);
$guitar->bounds(80, 80);
$guitar->font('/path/to/font.ttf');
$guitar->file('/path/to/guitar.png');
$guitar->grid(x => 10, y => 25, w => 6, h => 8);
$guitar->draw(name => 'G#m7(b5)', chord => '4x443x');


この結果はこうなった。


Music::Image::Chord による TAB 改訂版



もう、ズレんのはしょうがないや。。。
無理無理。
4 フレット押さえるように書いてるのに、どう見ても 5 フレット押さえてるもん。

でも色々残念だなぁ。。。

nipotan at 18:40 | Comments(2) | TrackBack(1) | 音楽 
このエントリーをはてなブックマークに追加
このエントリーをはてなブックマークに追加
常々思うんだけど、もっとカジュアルにブログ書きたい。
だから、もう、今日からそうするよ。

これはただの自分用メモ。
別に見なくてもいいし、ブクマしなくてもいいよ。
てか、好きにしたらいいよ。みんな。

IM は Mac 上で Adium を使ってるんだけど、どうも MSN Messenger (なんか、きょーびそんな呼びかたしないらしい。でも Adium 上では MSN Messenger ってなってる) のアカウントに、毎日毎日知らん奴から SPAM メッセージが来る。



お前誰だよ

こういうのが、一日に 5 〜 10 回ぐらいの来る。
これどうやって送ってるんだろ。
文面のパターンは、時期によって変化するけど、だいたい以下のパターンのどれか。
My cam still is not working. Message me on http://example.com so I can send you a cam invite.
Hope to chat soon :P
Hey xxx
I would like to chat with you but I this is my friends msn.
You you can send me a msn chat request here foobar@example.com
Hope we can chat :P
My cam still is not working. Message me on http://www.example.com so I can send you a cam invite.
Hope to chat soon :P
Re: hi .....I cant upload my pics to msn for some reason! Hit me back up on YAHOO messenger if you can, @@@@@ is my username on there. bye
Hey xxx .....
This is Kelly. My msn keeps stoping but would like to chat.
I am always online here foobar.example.com

:P
Hey xxx .....I cant upload my pics to msn for some reason!
Hit me back up on foobar.example.com
Hey xxx
I would like to chat with you but I can not get msn to stay online.
You you can send me a chat request here http://foobar.example.com
My name on the site it kellylove :P

意外にこのメッセージでググっても、いい情報にあたらないから、悩んでるの俺だけなのかな。ほんと。

で、なんか以前のバージョンの Adium で、こういうのをブロック出来た気がするんだけど、ある日バージョンあげてから、ブロック設定が解除されちゃってて、どこでブロックしてたのか思い出せずに、環境設定からありとあらゆる場所を探したけど見付からなかった。
だから、毎日毎日、何回も何回もやってくる SPAM にただただ悩む日々。
途中から、ああ、もう、好きにすりゃいいさみたいな感じで、完全に泣き寝入りの日々。

でも、今日うっかり見付けた。
やったぜ。

でも、いつかまたバージョンあがって、この設定が解除されてしまってたら、再び忘れてしまいそうだから、ここにメモっておこうって思っただけ。
ついでに、ほとんどの人が該当しないと思うけど、同じ悩みを持っている人がもしいたら、助けになれるといいね。
一応、日本語環境だけど、英語環境の人向けに英語の項目名も括弧内に書いておくよ。


[Adium] → [プライバシーの設定...]

[Adium] -> [プライバシーの設定... (Privacy Settings ...)] を選ぶ。
普通は [環境設定... (Preferences...) ] だと思うよね。
これは完全に罠だよ。


こういうのが出てくる

そうすると、こういうのが出てくる。


MSN Messenger のアカウントを選ぶ

この中から、アカウント (Account) から MSN Messenger のアドレスを選ぶ。
んー、ちょっとモザイク薄かったかな。
まあいいや。
あと、こないだ id:tokuhirom に「ギリモザがどうのこうのー」とか言われたけど「俺エロビデオ見ないから言ってることがよくわからないよ!」って答えておいた。
「エロビデオ」ってきょーび言わないよね。


メンバーリストのメンバーのみを承諾

プライバシーレベル (Privacy lebel) から、「メンバーリストのメンバーのみを承諾 (Allow only contacts on my contact list)」を選ぶ。


これで、変な見知らぬ IM SPAM は完全に防げる。
もうこれで悩み無用 (78364) だね。
薄毛に悩んでたらリーブ 21 に相談してみようね。

nipotan at 12:04 | Comments(1) | TrackBack(0) | その他 
このエントリーをはてなブックマークに追加

October 10, 2008

このエントリーをはてなブックマークに追加
実は、前回も参加していたのですが、時期的にバタバタしていて、ここでは特に告知をしていませんでした。

ついコン2!

「ついコン」という言葉を、どこかで耳にしたことがあるという方も少なくないかも知れませんが、ミニブログサービスの Twitter で知り合った、音楽仲間が、一人一曲ずつ持ち寄ってコンピレーションアルバムを作ろうという企画の第二弾

ついコン 2 〜 Realtime Results For You 〜

が、今日の日本時間の正午に公開されました。

実は当初、二日前の 10/8 の正午に公開する予定でそれに向けて色々頑張っていたのですが、公開直前の 11:40 頃に、私のほうで Mac で CD を焼いてみたら、データとアプリケーションの相性が悪く、「CD が焼けない」という現象が確認され、急遽公開延期になりました。

スラドのほうでタレコんでいただいてすごいアクセス数でした。当初曲順変更等を検討しなおし、10/15 に延期を予定していたのですが、今のデータでも焼けるアプリケーションが発見され、折角期待を煽ったんだから、この勢いは何としてでも維持したいということで、「萌えの日」である本日、予定を前倒しして公開しました。


今回始めてついコンの存在自体を知ったという方に、これは一体どんなものなのか、簡単に概要をお伝えします。
  • 収録曲は 27 曲 (前作は 19 曲) で、全曲 Twitter 参加者によるオリジナル曲となっています。
  • ダウンロードは基本的に全て無料です。
  • 複製や再配布、二次的著作物の作成が可能です。ただし、その際は Creative Commons の「表示-非営利-継承 (by-nc-sa) 2.1」条件に従っていただく必要があります。
  • 楽曲は、CD に焼くためのイメージファイルと、CD は要らないけどポータブルプレイヤー等で聴きたい人向けに MP3 が公開されています。
  • CD に焼いた際に、CD のジャケットも、素敵な 9 種類 (前作は 4 種類) の中からお好きなデザインをお選びいただけます (はさみやカッターナイフをつかうときは、おとなのひとといっしょに、あんぜんにつかいましょう)。


楽曲提供、ジャケットデザインの他にも、このプロジェクトでは、web サイトデザイン、ダウンロードデータ用のサーバ提供など、総勢で約 50 人の人達がかかわっています。
皆さんの趣味趣向が偏ってないぶん、それぞれに個性を強く感じる、とても面白いアルバムです。
このクオリティで無料配布なんて信じられませんね!
聴いてる皆さんが得をします!

これを機に何となく興味を持っていただいた方は、とりあえずついコン 2 サイトで、まず試聴をしてみてください。

あと、前作をまだ聴いたことがないという方も是非ダウンロードしてみてください。

また、第三弾がもしあったら参加してみたい!という方は Twitter で、今回参加者の発言や動向を追っていると、ふと「ついコン 3 をやろう」なんて誰かが言い出すかも知れませんね。

私は、次回、参加するかどうかわかりませんw
結構本腰入れてやらないと大変なプロジェクトですw


待ち望んでいてくださった皆様、お待たせしましたー。

今回参加の皆様、侃々諤々と (特にわたしが) 議論を交わして、最後にはちゃんと良いものが出来あがったので良かったです。
色々と口うるさく言ってすみませんでした。

お疲れ様でしたー。

ついコン2!

nipotan at 15:29 | Comments(0) | TrackBack(0) | 音楽 
このエントリーをはてなブックマークに追加