★★★★★( ゚д゚ )彡
斜め上ロックチャンピオンの4枚目。またもジャンル分け、分類を拒む曲たち。執拗な繰り返しと意外性、期待を絶対に裏切ってやるという執念、でも曲として破綻していない上にエネルギーも感じられるという不思議な40数分間だった。ギターは(意図的に)コピー用紙みたいな音だし、ドラムも上手いわけじゃないのに、なぜか引き込まれてしまう。4曲目で下痢みたいなシンセもあるが悪くない。特に1曲目Krautrockの塊のようなサウンド、3曲目Jenifferや8曲目It’s a bit of Painの意味不明ギター、5曲目Picnic on a Frozen Riverのイントロと激しく乖離してずっこける歌部分と後半、はすさまじいものがある。過去の3作品と比べると、尖鋭性と演奏感が程よく合わさっているこのアルバムが個人的にはベストか。
未分類
列車の始点と終点
列車オブジェクトを画面上に配置するにあたって、その座標が問題となる。路線の上にそのまんま乗せると、上り電車と下り電車が衝突する。怖いし見づらい。したがって、若干線路からずらす必要がある。
日本の電車は左側通行なので、上図でいうと直線ABから一定距離離れた直線A1B’上を列車が動けばよい。この一定距離をrとする。
まず点A1の位置を求める。駅Aの位置を(Xa, Ya), 駅Bの位置を(Xb, Yb)とする。ベクトルABは(Xb-Xa, Yb-Ya)となる。
左側通行を実現するために単位法線ベクトルN=(Nx, Ny)を求める。ABを左側に90度回転して、さらにABの長さで割る。ABを90度回転したベクトルは(Ya-Yb, Xb-Xa)なので
Nx = (Ya-Yb) * Math.sqrt((Xb-Xa)^2 + (Yb-Ya)^2)
Ny = (Xb-Xa) * Math.sqrt((Xb-Xa)^2 + (Yb-Ya)^2)
あとはこれをr倍して(Xa, Ya)に足してやれば、点A1の位置が求まる。これが列車の始点になる。rは見た目から考えて一定値にはにならないだろう。倍率やスキンに応じて変更する。
次に駅Bの停車位置B1を求める。B1は駅Bに法線ベクトルを足したB’の位置ではない。B’とB”の間をつなぐ経路が必要だ。これを実現するため、駅Cに登場してもらう必要がある。B, CをBCから一定距離離した点B”, C’を考える。すると直線A1B’と直線B”Cの交点が、求める列車の停止位置B1になる。
さてB’、B”、C’はA1と同じ手法を使って求められるので、あとは、2直線の交点を求める作業だけだ。二元連立方程式を使ってもいいけど、でもそれだと万が一X軸Y軸に垂直な直線になった時困るなぁ。と思って探していたら、ちゃんと交点を求める手法があった。外積を使うらしい。
4点からなる交点の求め方 画像処理ソリューション
この式を使うなら、それぞれA1=(X1, Y1), B’=(X2, Y2), B”=(X3, Y3), C’=(X4, Y4)とすれば
S1 = {(X4 – X3) * (Y1 – Y3) – (Y4 – Y3) * (X1 – X3)} / 2
S2 = {(X4 – X3) * (Y3 – Y2) – (Y4 – Y3) * (X3 – X2)} / 2
交点の座標は
X = X1 + (X2 – X1) * S1 / (S1 + S2)
Y = Y1 + (Y2 – Y1) * S1 / (S1 + S2)
なんと4行で書ける!エレガントすぎる!図形的には、外積で三角形の面積S1とS2を求め、その比を使ってベクトルを定数倍する、という意味になる。これは素晴らしい。
あとは、順次C1,D1と列車の位置を求めていくことになる。他線への乗り入れがあることを考えると、列車の位置は駅によって一定ではない。列車ごとにそれぞれ計算することになるだろう。また、行き先表示の文字列は、上りは左側・下りは右側、なんて単純にはならないから、さっき求めた単位法線ベクトルを使って、線路と垂直な位置に文字を配置するとよいのでは。
Amon Tobin – Out From Out Where (2002)
★★★★★
4枚目。前作からの一番変わったのは、音質が格段に向上したこと。特に前半はヒップホップ風の曲もありやや明るく、夜中の2時が夜明け前の4時くらいになった。デジタル音の割合が増し、アナログ的な音を食っている。4曲目Searchersの印象が強烈だ。喉の詰まったような謎の笛なのか何かの音、突然入るストリングス、バックで流れている得体の知れないベース音と何考えてるかわからないドラムで気持ち悪さでは今までの曲の中で群を抜いている。ここからまた真っ暗闇の不気味なハイウェイぶっ飛ばし曲が増えていく。9曲目El Wraithも儀式めいていて怖い。毎回劇的に変貌するAmon Tobinさんの楽曲は次はどんな姿を見せてくれるのか。
King Crimson – The ConstruKction of Light(2000)
★★★☆☆
5年ぶり12枚目。何があった、と言いたくなるくらい音が変わっている。ヘビィなのはいいが、中途半端だ。FraKctured、Larks’ Tongues in Aspic-Part IV といった、以前の曲の焼き直しも、ヘビーなはずが以前よりも衝撃度がない。何がまずいってやっぱりドラムがスッカスカなところかなぁ。全然ドキドキしない。思い切りのいい ProzaKc blues と The World’s My Oyster Soup/Kitchen Floor Wax Museum は好きです。現時点で手に入るクリムゾンのオリジナルアルバムは、あと1枚。最後は、どんな音を聞かせてくれるのか。
路線の表示
六帖webアプリ
kickzone/TrainNavi2 · GitHub
駅、線路の描画のみ完成。現時点では、路線を選択してStartボタンを押すと駅と路線が描画されるだけ。将来の拡張を見越して、スクロール前の絶対位置や倍率なども考慮して設計しながらコードを書くので骨が折れる。でも後で楽になるはず。
ソースを分散したので、開発効率は大幅に上がった。以前のようにメモ帳だけ、しかも単一ファイルで開発していてはデバッグが大変すぎて苦しかった。来週は電車を走らせてみよう。
課題
Javascriptはクラスベースの言語ではない。仕事でC++やC#ばかり使っているので、どうしてもオブジェクトの共通メソッドとしてのクラスメソッドを実装したくなってしまう。しかしながら、クラスメソッドとしてプロトタイプにメソッドを記述すると、thisの嵐になってしまう。
TNStation.prototype = { makeObject : function(cj, stage, coefXY, latView, lonView){ this.stage = stage; this.cj = cj; var sha = new cj.Shape() this.shape = sha; var gr = sha.graphics; //描画 gr.beginStroke(this.line.lineColor).beginFill(this.line.lineColor).drawRect(-5, -5, 10, 10, 1); //stageに追加 stage.addChild(sha); //初期位置、係数を保存しておく this.initLatView = latView; this.initLonView = lonView; this.coefXY = coefXY; }, setScale : function(scale){ this.scale = scale; this.shape.scaleX = scale; this.shape.scaleY = scale; }, moveObject : function(latView, lonView, centerX, centerY){ var x = ((this.longitude - this.initLonView) * this.coefXY + (lonView - this.initLonView) * this.coefXY) * this.scale + centerX; var y = ((this.initLatView - this.latitude) * this.coefXY + (this.initLatView - latView) * this.coefXY) * this.scale + centerY; this.shape.x = x; this.shape.y = y; } }
thisばっかりで読みにくいし、thisを付け忘れやすくエラーの原因にもなる。なんとかならないか。
さむさむ
昨日今日と最低気温がたったの3度、寒い!
寒いのに蚊は家の中に入ってくるし、猫は1日中小屋から出てこなくなったし、手も足も冷えるし、冬服や冬布団を準備しなきゃいけないし大変だ。
毎年季節は巡るけれど、一度として同じ気持ちで季節を迎えたことがない。今年は、冬が来ることに対して緊張している。なぜだろう。
今年は仕事の密度が急激に上がり、1日10時間程度の労働の後、手持ちの時間が1時間あるかないか。時間が過ぎるスピードが加速している。メイド・イン・ヘブンでも食らったのではないか。
The Rough Guide To Irish Music (1996)
★★★★★
アイルランド音楽。これはいいよ!これこそ牧歌的、と言えるサウンドが多いものの、ポップなものも、ダンス的なものも、地元賛歌のカントリー曲も、あらゆる要素が詰まっている。ダンス的なものはやはり繰り返しが多く、楽器も、ギターとフィドルがベースだけれどインド風打楽器もあるしバンドネオンもあるしケーナ?のような笛もあるしもう何でもありだ。一番燃えたのが4曲目のOn Horseback。ギターとベースで現代的な要素を混ぜつつノリノリ超人フィドル+右側の萌え打楽器というどストライクな編成に、新幹線もビックリな新快速超快速な楽曲。こんな爽快な曲があるなんて!youtubeに楽曲があった。'On Horseback' ~ Eileen Ivers – YouTube
14曲目のHand Me Down The Tackleも単純ながら高揚する。足音も掛け声もイカしてる。
Michel Petrucciani – Solo Live(1998)
★★☆☆☆
古めのジャズと並行して最近のジャズも聞いておこう、ということで、ボックスセット “Dreyfus Jazz 20 Years” 20枚組を順に聞いていきます。
1枚目。非常に独特なタッチで有名らしい、ミシェル・ペトルチアーニのソロピアノCD。打音が非常に強く、それだけではなく、1音1音が異常に長い。ピアノロールでいうとすべての音のタイムラインが全部重なっている感じ。したがって、全く飛べない。言わば、地を這うジャズ。地底ジャズ。私には、合いませんでした。これも強烈な個性の一つなんだろうけど、この長ーい地面を掘り進む音は、疲れます。ごめんなさい。もっと老人になってから聞きます。とどめは10曲目caravan。海底火山でも掘り当ててしまったかのような絶望しかない音色。でも、アンコール前の”I remember one more!(もう1曲あるんだった!)”という一言が、すごーくかわいい。
秋も深まり
富士山の雪が積もったり溶けたりの繰り返し。朝は寒くなるし、寝室も寒く布団を被ってしまいがちなので起きづらい。
起きられないせいもあって、とにかく毎日時間がない。足りない。
Bill Evans – Waltz for Debby(1961)
★★★★☆
ジャズの100枚。 – 「ジャズの100枚。」シリーズ全100タイトルセット – UNIVERSAL MUSIC JAPAN
のシリーズが安いので、1枚ずつ聞いていくことにした。まず1枚目。定番中の定番らしい。透明なピアノ、もやの向こう側にいて見えづらいドラムス、うなりの強いベース、特にベースの演奏は今まで聞いたことのないくらい歌っている。エヴァンスさんの演奏はキレイすぎてなぜかいつも落ち込む。ライブの収録みたいなんだけれど、編集の都合か売り手の都合か、拍手がすぐにフェードアウトするのは良い印象を受けない。余計なものを一切省いたスタンダード中のスタンダード、といった演奏は素晴らしいんだけど、自分の精神が、まだこの曲が体に浸透するに至るまで発展していないようで、いい演奏なのはわかるけれど、いま一つ足りなく感じてしまう。通り過ぎてしまう。BGMになってしまう。力技や技巧、目まぐるしい展開や独創性、そういったものに飽きて、いずれこのCDに戻ってくると気が来るのかもしれない。時々、自分に語り掛ける目的で聞いてみるといいのかな。