2011年11月3日木曜日

node.jsとMIDI信号でHTMLをいじる

準備

node.jsでMIDIを拾うには、node-midiを使います。RtMidiというOSごとの差異をうめるライブラリを呼び出しているので、MacでもLinuxでも、もちろんWindowsでも大丈夫なようす。npmにはもうひとつPure JSでMIDIを扱えるものがありますが、こっちはサンプルを見たところLinux依存のようです。


MIDI信号をひろう

とりあえずサンプルのとおりに。

var midi = require('midi');
var input = new midi.input();

// MIDI INの信号を拾ったら実行する
input.on('message', function(deltaTime, message) {
  console.log('m:' + message + ' d:' + deltaTime);
}); 

// ポートを読み始める
input.openPort(0);

実行結果は以下の動画で。引数にファイル名を指定していないのは、どういうわけか実行ができなかったから。ノブをぐりぐりしたりキーを叩いたりすると、ターミナルに表示されているのがわかりますね。



HTMLに送る

node.jsでつかまえられるということはあれこれいじれますな。せっかくシンセサイザーにノブが3本ついているので、それぞれをRGBとしてSocket.IOでHTMLの背景色をいじってみます。コードはgithubに。


コードのなかでは何をやっているのか。MIDI信号を拾ってからの処理のうち、前半はこのシンセサイザーのための処理をやっています。XYZ3個のつまみがついているのですが、つまみを回した瞬間に「どのつまみを回した」という名刺がわりの信号がとび、そのあとに回し具合の信号がずらずらつづきます。回し具合の信号は3つのつまみで共通なので、「いまどのつまみを回したのか」を正しく知るための処理ということになります。

後半は、つまみの回し具合をカラーコードの文字列に変換しているところです。ここもハードウェアの縛りがあって、Xだけが127(実際はもっと大きい)、それ以外は100が最大値という仕様らしいので、それを255(0xFF)が最大になるように計算しています。この計算だと#FFFFFFにはできないんですけど、そこは手をぬきました。

最後にio.sockets.emit()で、Socket.IO経由でつながっているHTMLにカラーコードを送ります。HTML側では、受け取ったカラーコードをそのまま背景色につっこんでいるだけですね。

2011年10月30日日曜日

東京node学園祭に行ってきたよ

東京node学園祭に行ってきましたよ。六本木遠いわー。


アメーバ水をもらいました。なかみはふつうの水のようです。

Yahoo! Japanの中村さんが発表していた、バスの現在位置を共有がとても興味ぶかくて。渋滞その他で遅れがちな路線バスを、GPSでリアルタイムに地図上に表示するというもの。バス側にどんな仕掛けがあるのかが気になるところなのだけど、残念ながらそのあたりの話はなく。もっと聞きたかったっす。


むしろ後夜祭のほうがアツいというかアガるというか。ぼくが「nodeはいろんなハードウェアと組み合わせたら絶対おもしろい」的な話をしたら、周りの方々から「ソフトウェアをわかっていても、ハードウェア、というか電気回路になると壁を感じる」とか「ハードがわかる人とソフトがわかる人とが、もっと関わりを持てるといいよね」とか、いい方向のおしゃべりができたなと。

オームの法則程度で十分なんとかなる程度でも、やっぱりとっつきにくいものだし、わからなくてもいいようになっている。その大きな例がキネクトだね。ハードウェア屋さんがビシーッとデバイスをつくりこんで、APIを提供する。ソフトをつくる人はAPIを叩いたらどんな反応があるかをわかっていれば、ソフトから簡単にいろんな機能を使えるようになるし最高じゃないですか。そんな方向の話にひろがっていって楽しかった。名古屋でもこういう場があればいいな。なければ東京へ引っ越すだけなのだけど。

2011年10月2日日曜日

ラジオがないと困るたったひとつの理由

RADIO-iが閉局して1年ということで、ラジオがないと困る個人的な理由を。

ラジオがないと、新しい音楽に出会わないのだ。防災情報云々って言うと思った?そんなことを今になって説いているのは普段ラジオなんか聞いていないやつらだ。

ラジオ、特にFMラジオはいろんな音楽をかけてくれるので、そこで新しい音楽を知っていくわけですよ。もちろんいい曲だけじゃなくて、売らなきゃいけない曲ばかりであることのほうが多いのだけど。いいDJだと、雰囲気に会う音楽を選んでかけてくれる。そのかかった音楽で「ああーこの曲いいなー」とか「このかっこいい曲は誰のだ?」とか思うじゃないですか。いま流行りの表現をすれば、ラジオDJはみんなが大好きなキュレーターだよね。ラジオ放送は聞く分にはお金がかからないから、自分でCD買うなりダウンロードする前に試聴できるようなものですよ。初めて聞く名前のミュージシャンの曲を試聴もなしに買うってハードルたかいしさ。

だからってラジオがあればそれでいいかと言うとそういうわけじゃなくて。FMラジオなんてしゃべってばかりじゃないっすか。今は愛知県在住だからZIP-FMを名指しで例に挙げるけどさ、DJがひたすらしゃべってその隙間になんか売れたらいいな的な曲を挟むだけなんだよね。それも似たりよったりの、コブクロかファンキーモンキーベイビーズの劣化コピー的な曲ばっかり。自分の好みだけでは手を出さないところから、いい曲をかけてもらいたいんだけどね。

2011年8月26日金曜日

npmでhttp-basic-authをインストールしようとするとエラーになる

package.jsonに誤りがあるので、npm install http-basic-authを実行してもエラーになります。


回避方法


githubに正しいpackage.jsonの書き込みが入っているので、これに入れ替えます。



  1. wget http://registry.npmjs.org/http-basic-auth/-/http-basic-auth-0.1.0.tgz

  2. tar zxvf http-basic-auth-0.1.0.tgz

  3. [解凍ディレクトリ]/package.json を、上記リンク先のものに入れ替える。

  4. npm install [解凍ディレクトリ]

2011年8月18日木曜日

ラジオ放送局が今かけている曲を抽出するには

会社の夏休みで実家に帰省して一週間、テレビはあるけどそれでも毎日ラジオを聞いている。というか、radikoでInterFMばっかり聞いてる。いろんな音楽をかけてくれるからね。もうすぐまた愛知県にもどるとおもうとさびしいよ。RADIO-iはとっくになくなっちゃったしね。


という話はおいといて。radiko経由でバックグラウンドで聞いていると、いまかかっている曲が気になることもしばしば(あるよね?)。で、知るとなればradikoのタブまで移動するか、放送局のサイトを開けばいい。だけど、それはちょっとめんどう。MacにはGrowlがあるんだから、そこに表示できれば横目で見られてステキだよね。邪魔にならないし。


そこで、放送局のサイトから放送中の曲名を引っ張り出すにはどうすればいいか。ちょっとまとめておこうかと。本当なら何らかのAPIでもあればいいんだけどね。



InterFM


hoge


ロゴの下にあるNow Playingの欄。これがFlashでできていて、別URLのテキストを呼び出す形になっている。


http://www.interfm.co.jp/flashLED/nowplayingflash2.cgi このURLで返ってくるのはアーティスト名と曲名の書かれたプレーンテキスト。flashLEDというのはリニューアル前のサイトの名残。



TOKYO FM


tfm


これもFlashから別URLを呼び出して表示するかたち。でもこっちはXMLでやってくる。しかも収録アルバム名やCDの番号まではいってるので、アートワークをアマゾンからもってきたりできそう。J-WAVEもこんな感じでXMLを吐いているが、ひとつの属性にタイトルやら全部押し込んじゃってるので不便。

NACK5


ここはちょっと大変。HTMLに直で書き込んであるのだ。でもNACK5の場合、あんまり曲かからないし、かかっても曲名細かく言うからいいか。



NHK-FMは放送中の曲を知る仕組みがない。だいたいは番組表に書いてある通りにかかるからいいけども、○○三昧とかだとちょっとね。

2011年7月25日月曜日

DDT両国大会観戦ツアー中に食べたもの

DDT両国大会観戦のため、一泊二日のツアーを敢行。いろんなものを食べてきました。

ニコニコカレーのカツカレー

中野にあるDDT運営のカレー屋さん。先代のミツボシカレーからリニューアルして営業していたけれど、両国大会のこの日に閉店ということで食べ納めに。

お昼過ぎにお店にいったものの、既に大半のトッピングは完売。トンカツとえびカツがまだあるということだったので、トンカツのほうを。ここのカレーはとろとろの牛肉と、カレーのなかにかくれている野菜がとてもおいしかった。キャベツなのかたまねぎなのか、煮込まれてなくなりかけている野菜ね。たまねぎっぽくない気がするけど、何だったのかな。

もういっこ。ミツボシカレー時代からの、ごぼうのフライね。ごぼうってちょっと苦い感じがあるけど、あんまりそういうのがなくて。ミツボシの当時、お店の人に聞いて初めてごぼうとわかったのです。

両国大会終了後に、お店のツイッタ公式アカウントからカレーも完売のお知らせが。大会前に行っておいてよかった。DDTのカレー屋さんはおいしいってのと昼間食べに行けるってところが魅力なので、またいつか復活してほしいところ。

すた丼

ツイッタで名前を聞いていて、いつか行こうと思ってたお店。ツイッタだと"秋葉原のすた丼"という投稿をよく見ていたので、秋葉原だけにあるお店なのかと思っていたのだけど、チェーン店なのね。"秋葉原にも歩いて行けるから"という理由でお茶の水のホテルをとったのだけど、まさかそのお茶の水駅のそばにもあるとはね。

学生のころ、大学ちかくの中華料理店にスタミナ丼があって、それを想像していたのだけどちょっと違った。しょうが焼きっぽい豚肉が丼にどーん。食べきれないかもと不安だったけど、意外とさらっと食べられたところ。みんな夢中になるのわかるわー。調子にのってテーブルにあったおろしにんにくを鬼のように盛って食べていたら、ホテルにもどってからにんにくの風味が抜けず困惑。ほどほどにしよう。

リナカフェのモーニングセット

A morning plate @ Linux Cafe, Akihabara

ケーキでも食べるつもりでいたけれど、意外にも安かったモーニングセット。選べる飲み物は限られるけど、これで380円。マヨネーズが攻めぎみなのはちょっと…。

リナックスカフェの店員さんってかわいい娘が多い気がする。ただし

ラディッシュのランチセットの麻婆豆腐

名古屋は鶴舞、どうでしょうでおなじみのお店。小倉トーストがヘビー級なのだけど、ランチセットも負けずヘビー級なのです。

おかず+ごはん+サラダ+飲み物orアイスクリームがセットのなかみで、これにおみそ汁がついたりつかなかったり。そのおかずの量が比較的多めなのですね。

大きさが伝わるかなー。おいしいのだけど味の主張がちょっと強いのもあって、はやめにおなかいっぱいがやってきてしまう感。ぼくはもうちょっと少なくても大丈夫だよと思います。うまくいいにくいね。

2011年5月16日月曜日

WiLL Viオフ会に行ってきたよ

mixiのWiLL Viコミュニティのオフ会に行ってきました。

岡崎のレストランでみんなで食事→トークとゲームなど→公園まで移動→ニヤニヤがおおまかな流れ。遅刻してすみませんでした。


まずはレストランに集合。これはゲームの景品の一部。ポストカードは販売されていた当時にディーラーさんで配布していたもの。あのころってこんな売り出し方だったんだとしみじみ。発売当時ぼくはまだ高校生で、ステキな自動車を横目に充実した高校生活を送ってた。もちろん運転免許さえもなく「いつかは…」と思ってたんだけど、あのころの夢がかなったような感覚に。金で解決しちゃってはいるけれども。


お食事とゲームの写真はほとんどなし。その場にいたみんなの想い出ということで。公園までみんなでドライブ。レストランの時点ですでにみんなニヤニヤ。かわいいもんね。一番手前はうちのね。


最初の公園がいっぱいで、他の行き先を考えている間に一枚。サイドミラーもバックミラーもずっとこの画なの。運転中もニヤニヤしてましたw


で、別の公園にて。どうコレ?ぎゅーっと引かないと、全部収まらないのだ。みんなでこの画を見てはかわいいかわいいと。萌え死ぬわー。また、同行いただいたWiLL Vi担当チーフエンジニアの方にあれこれ楽しい話を聞かせてもらいました。あのシートは実は…とか、ここのプレスは…とかね。

参加者みんな、この車が大好き感を全開にしてた。当初から乗り続けている人も、中古車で途中から仲間入りした人も。愛情がビシビシ伝わってきて、同じ車に乗ってることがうれしくなったよ。みんな今の一台を一生懸けて大事にしていく想いでいっぱいだったね。HONDAのBEATに近い愛され方が、まったく違うベクトルの車でも起きてるってことがうれしいわけ。みなさん、また会いましょう。そのときも同じ車で。