Archive for the ‘音楽配信’ Category

唐突に(いや、詳しい方は知っていたのだろうが)、AmazonのMusic Unlimitedという音楽配信サービスが開始された。どういう訳か、他社と横並びの「4千万曲」(これ、誰かちゃんと数えたの?)のライブラリと月約千円(プライム会員でない場合)だそうだが、とりあえず、試す価値はありそうだ(30日間試用可能)。

一番気になるのは、レパートリーの広さと音量の正規化ができるかだ。あとは、ラジオの質だろうか。それから、手持ちの曲のアップロードができれば、更に良い。

でも、おそらく、Linux(正確には、非純正のプログラム)からは使えないだろうから、すぐに移行するメリットはないだろう。が、GPMが駄目になった時に移る先が増えたことは喜ばしい。

(11/9 7:54 追記) 昨夜、(入会しない範囲で)試してみた。その結果、いくつかいい点はあるものの、すぐにGPMから移行するほどではないことが分かった。

長所

  • Webで、検索結果が100項目以上出る(GPMは最大100項目)。
  • 言語の切り替えが可能(web)。
  • 初出年が正しいことが多い(℗の年が書いてある)。
    • ただし、発売日が℗の前日(=前年の大晦日)になっている(web)。これは、不要な時差の計算(UTC → JST: 9時間引く)をしているためのようだ。
    • 例: "℗©1983"なのに、"発売日: 1982/12/31"

短所

  • 非純正も含め、Linux用のアプリなどは全くない(webでアクセスするのみ)。
  • 音量の正規化機能はない。
  • 手持ちの曲のアップロードは250曲まで無料? (入会していないので、確認不可)
  • レパートリーはGPMに負けていることが多い。たまにGPMより多いことがある程度。
    • ただし、GPMは検索結果数の制限(100)で、全部は出てこない。
  • GPM同様、小泉今日子、キャンディーズ、小林道夫、クロマニヨンズやRushの"Power windows"など、ないものはない。
  • 検索はイマイチ。
    • 例: "serkin mozart"では一部しか出ない。
  • Webのテキストのコピーができない。

結論

Amazon Music UnlimitedはGoogle Play Musicより良い訳ではない。

 

(11/10 7:32 語句を変更)

PS. 上記の「不要な時差の計算」はどうもおかしいことに気付いた。UTCからJSTに直すなら、9時間足すのだ。純粋なバグ(例: ℗の年をローカル時刻(JST)と想定し、発売日をUTCで出そうとしている?)か、もっと深い変なことをしているのか。まあ、変なことは確かなので、何でも構わない。言えるのは、

Amazonよ、見えるところくらいちゃんと確認しろ!

だ。 (11/10 7:39)

  •   0
  •   0

土曜にちょっと思い付いて始めたことが結局無駄だったので、週末を潰した。まあ、雨だったし、外出しない予定だったからいいけど、ちょっと気分が悪い。

やりたかったのは、以前から気になっていた、GPMの曲に初出年が入っていない(GPMのページに表示されている年も誤っていることが多い)ので、自分で付ける仕組みを作ることだ。

これが意外に奥が深かったのと、GPMのお節介のせいもあって、意外に難しかった。基本的には、曲・演奏情報の公開DB(今回はMusicBrainzを使おうとした)で検索すればいい。が、そもそも、演奏者名、アルバム名、曲名で検索すると複数の候補が出て来て、どれが「正しい」かの判別が難しい。例えば、同じアルバムが再発された場合である。その場合は最古のものを選べば正しい可能性が高い。一方で、クラシック音楽の演奏のように、同じ人が同じ曲を何度も録音して、同じアルバム名で発売している場合、最古では正しくない。また、ライブ盤の区別もする必要がある。

更に、GPMは表示のモード(日本語/英語)によって、前記の情報をローマ字(英語モードの時の日本語の曲)や片仮名(日本語モードの時の海外の曲)にしてしまうことがあるので、演奏者名などでの比較すらままならないことがある。

かなり苦労して、年を取得する手順・方法は見つかったのだが、やっぱり最後は複数候補の判別が困難なことが分かったので、正式な実装・採用は止めた。

基本的には、音響指紋(fpcalcやffmpegなどのプログラムでAcoustIDが計算できる)を使うことで、ある演奏から、演奏者名と曲名の特定ができる! と思ったのだが、再発などによる複数の候補が出てくるうえに、意外に重複するようで、あるAcoustIDで検索すると、別の人の全く違う曲(演奏)も出て来る(処理時間やデータ量による制限なのだろうが、これで本当に「指紋」と言えるのか?)。そのため、指紋以外に、演奏者名や曲名などでの判定も要ることが分かった。

その場合、上記のGPMのローマ字・片仮名問題以外に、一般的な問題もある。例えば、同じアルバムなのに、異なる名前・表記になっていることがあるのだ。具体的には、リマスター盤のアルバム名や曲名の最後に"(2009 Remaster)"のような文字列が追加されていることが多いが、それが、GPMとDBで記載方法が異なっているのだ。元々、正式には付いていないものなので、どちらが正しいとも言えないし、正式な曲名にも付いていることがある(例: 森高の「ザ・ストレス (ストレス中近東ヴァージョン)」)ので、"("や"["以降を全部無視すればいい訳でもない。そもそも、リマスター盤の初出年をいつにするかも難しい。更に、名前の中の記号の表現が異なる場合(例: "~"と"〜")もある。演奏時間も使えると思ったが、実際には、微妙に(1秒前後)異っている場合が多いので、単純には使えない。

(10/30 21:16追記) リマスターで思い出した。更に重箱の隅をつつく話なのだが、リマスター盤の年をいつにするか(オリジナル盤の発売年か、リマスター盤の発売年か)は、まあ、オリジナル盤の発売年がいいだろう。が、良くリマスター盤のボーナストラックとして、当時未発表だった曲("Previously unreleased" tracks)が入っていることがある。それの年は、いったいいつにすればいいのか?

初出年=初めて発売(リリース・公開)された年という原則では、リマスター盤の発売年が正当だが、それではどうも納得できない。下に書いたように、「これが出た(出てないけど)頃は*してたなあ」や「世の中は*だったなあ」とか思えなくなってしまうのだ。逆に、その曲を録音した年にすると、公開されてもいない年を「初出年」にするから、捏造のようになって、記録の信頼性が下がってしまう。なので、今は、原則として、初公開のボーナストラックはリマスター盤の発売年にしている。なお、ライブ盤は、録音された時に演奏が公開されたのは確かなので、かなり後年に発売された場合には録音=演奏された年にしている。

まあ、記録というのは、本来、情緒とは正反対のものなのだろうから、割り切って、全部、その盤の発売年に統一すればいいのだろうが、趣味のものなので、何とも割り切れない状況が続いている。そして、この問題は、GPMに限らず、CDを買った場合に常に起こ得るので厄介だ。

この問題の原因は、初出年は単なる記録なのに、情緒を絡めていることなのだと思う。更に、「初出」としているからややこしくなる訳で、純粋に「リリース(発売)年」にすればいいのだろう。そうすれば、再発盤だってそれが発売された年にすればいいので、何も悩む必要はない。だから、単純に発売年にしているGPMのやり方は、規則が統一されているという点で、実は正当なのかも知れない(そして、これは、西洋人にはごく自然な論理的な思考から来ているのかも知れないと考えるのは、買いかぶり過ぎか)。ということは、僕は何も悩む必要がなかったのか? (そうではないと思うが) 全く奥が深い・・・

ローマ字や片仮名での表記は、ある程度は「別名」としてDBに入っているのだが、やはり、GPMとDBで異なる場合(例: The Beatlesの片仮名表記は、MusicBrainzでは「ザ・ビートルズ」、GPMでは「ビートルズ」)があって、判定は容易ではない。

そもそも、GPMがちゃんと年を入れてくれればこんな苦労はしないのだが、彼らも多くの人も、こんな些細なことには無頓着なのだろう。確かに、演奏が聴けることが一番重要だ。

では、なぜ演奏の初出年が欲しいかであるが、僕の物好きとしか言いようがない。もちろん、曲や演奏の良し悪しに背景は無関係と思っているのだが、聴きながら、その曲がいつ頃演奏・発売されたのかが分かると、同じ人が同じ曲を複数回録音している場合の違いから、「この人は、*年間でこんな風に成長(退化)したのか」とか思うことがあるし、「これが出た頃は*してたなあ」、「世の中は*だったなあ」とか思えば親近感が湧くような気がするし、郷愁にふけることもできるではないか。物好き以外に、特にクラシック音楽では、(このブログで書いているように)他の人に伝える場合に、「※の*年の版」と指定しなければ正しく伝わらないこともある。

そんな訳で、今はやりのAIを活用して、曲(演奏)を入れたら、音だけでなく、歴史的な情報(webはもちろん、過去の出版物など)を使って考証して、一発で正しい曲・演奏情報(メタデータ)を出してくれるシステムが欲しくなった。誰がいつ何を演奏・発売したという「事実」は、それほど多くのバリエーションは生じないだろうから、文章を理解できるAIに演奏家の経歴などの資料を片っ端から読ませればできそうではないか。Googleなら、やる気を出せばすぐにできるだろうが、こんな情緒的・ニッチなことに価値を見出さないだろうから、まずやらないだろうw

書いていて、「これはドクが西部劇の時代に作った製氷機(大山鳴動して氷一個)だ」と思ったw

更に、現実のことを考えると、GPMの曲(演奏)は一過性のもので、その時聴いたら終わりで、長く残る訳ではないのだから、こんなに手間を掛けて年を自動で付ける(しかも正しいとは限らない)なんてペイしない(元々曲名や演奏者名などは付いているのだから、それで充分だろう)。気になったら自分で調べれば良く、買ったものだけは詳しく調べて付ければいいのだ。が、そこは技術者の性で、理論的にできそうなことや、自分でやると手間が掛かるけど自動でできそうだったら、その仕組みを作りたくなってしまうのだろう・・・

  •   0
  •   1

GPM(Google Play Music)が思ったより使える。基本機能はもちろん、"I'm Feeling Lucky"ラジオ(何か分からないが、その人の好きそうな曲を掛ける?)もいいことが分かった。数日前、聴きたい曲もラジオも思い浮かばなかったので試してみた。最初の頃に試した時は、予想通り、クラシック音楽が楽章ごとに混ざっていたので、「邪道だ!」と思って使っていなかったのだが、その時は考えるのが面倒だったし、「一楽章だけでも、新しい曲や演奏を試すのもいいか」という気分になったのだ。

実際に聴いてみると、確かに全曲でないのは嫌だが、それぞれの作曲家や演奏者の特徴が分かる場合があって、意外に良かった。まあ、好きでない作曲家に関しては、今までのイメージが覆ることはほとんどない(例: パガニーニは時代がかった感じ、ベルリオーズは苦手、プロコフィエフはやっぱり変、ワーグナーはダサい)のだが、たまに、今まではほとんど聴かずに敬遠していたけど、実は結構いけると思う人(曲)があった。以下に例を挙げる。

  • フォーレ バイオリンソナタ 第1番 (第4楽章): 結構いい。
  • フォーレ 「夢のあとで」: 綺麗でいいかも。
  • ハイドン ピアノソナタ 第37番 作品30-3 (楽章不明): モーツァルトに通じるものがあって、馴染める。
  • ハイドン ピアノソナタ 第43番 作品41-4 (楽章不明): 聴き応えがある。

上を見ると、新たにフォーレやハイドンを試すのも良さそうだ。が、やっぱり、何となく面倒ではあるw それにしても、フォーレはどこから出てきたのか??

また、演奏者についても、いくつか再発見あるいは印象の変化があった。

  • ソコロフ: シューベルト 「3つのピアノ曲」 (第3曲)では、キレやパワーや広がりがあっていい感じだったが、別の曲(ゴルトベルク(ライブ))では、アクが強過ぎるのか、なんか疲れて飽きた。
  • キーシン: 基本的に遅すぎるイメージがあるのだが、「展覧会の絵」 (「バーバ・ヤーガ」)は結構良かった。

掛ける曲は、今までに「いいね!」(Thumbs up)したものやライブラリに保存(「お気に入り」のようなもの)したものや再生回数が多いものの傾向(作曲家、演奏者)から判定しているようだ。更に、どういう条件なのかは不明だが、クラシックだけでなく、ポップ音楽も掛かる(しかも、クラシックとポップ音楽が混ざらないのがありがたい。ラジオの再生を開始した時点で、どちらになるかが決まるようだ。)ので、なかなかおもしろい。

GPMには数千万曲もあるから、聴きたい曲・演奏が決まらない時や、知っている曲・演奏に飽きた時には丁度良さそうだ。旅行に例えれば、基本的には自分で全部決めて運転するドライブがいいが、たまには、行き先不明で、何も考えずにただ座っていれば(寝ていても)、「どこか」に行ける、ミステリー・バス・ツアーもおもしろいようなものだ。

PS. こういうところは、GoogleはSpotifyよりはるかにまともだと感じる。Googleは、昔(検索で始めた時)から、こういう機能をことさら宣伝せずに、淡々と(ある意味余興なのかも知れない)作って出すが、決して押し付けない。その点は当時から評価していた。ただ、「もう(飽きたから?)止めるので、別のを使ってね」が多いのは困るがw

一方でSpotifyは、全然使ってないのに勝手に「あなたのためのプレイリストを作りました!」などというお節介なメールを(解除しているのを無視して)押し売りのように送りつけてくる(しかも、最初の頃に見たら、そのリストの中身は全く的外れだった)。文化・センスの違いが大き過ぎる。例えれば、GoogleはUnix系、SpotifyはMicrosoft系だ。

  •   1
  •   0

術後から退院までの話の最後は、余った細々としたことを書く。なお、入院中にGPMで見つけた好みの演奏者については、別途書きたい。

リハビリ

医学の常識が変わったのか、今は、手術の翌日から積極的に身体を動かすように指示される。そうすることで、傷の治りが早くなるそうだ。

僕の居た病棟では、その階を歩いて周回することになっていた。術後しばらくは点滴が付いたままなので、キャスターがキーキーいう点滴の台を引きながら高速に周回する人が多かったから、なかなか賑やかだった(というか、うるさく感じることもあった)。

僕も点滴が外れるまではそうしていたのだが、一周30秒程度なので、飽きるうえに全く物足りなかった。それで、点滴が外れた後は、階段で一階まで降り、外来や受付の辺りまで徘徊していた。そして、途中の売店でお菓子や飲み物(例: チョコやコーヒーやポテトチップ)を買うのが楽しみだった。もちろん、戻る時は階段を昇った。その際、転倒・転落して本末転倒にならないように、細心の注意を払ったw

余談: 小学生の頃、虫垂炎で入院した時も、術後数日したら暇を持て余していたので、院内を徘徊していた。ただ、地下の階に行ったら、霊安室のような部屋があって、(ほとんど予備知識がないのに)ただならぬ雰囲気を感じたのを覚えている。だから、今回はそのような領域に近寄らないように、結構注意していた。

看護師さん

いつも忙しそうにされていて実際そうだし、ミスは許されないし、夜勤もあって体力的にも過酷だから、とても僕などにはできないと思う。そして、彼女/彼らの置かれた微妙な立場に少し考えるものがある。

日本だけなのかも知れないが、彼女たちは、(仮に自分が正しくたって)医師の指示には逆らえないし、患者にも厳しくできないし、事務の人からもいろいろ指示されるだろうから、いろいろなものの板挟みになって、辛いものがあるだろう。

更に、法的に医師の指示がないと何もできないから、能動的に仕事ができないのも辛そうだ。確かに、学校では医師ほど詳しい知識は学んでいないだろうが、中には独学や経験で詳しくなった人も居るだろう。そういう人には、「しょうもない医師」の誤りを(言われるままにする方向もあるだろうけど、)どうやって角を立てずに修正するかの技術も要りそうで、やっぱり大変だと思う。個人的には、看護師が医師と議論できない(これは僕の想像)世界は無理があると思うし、良い方向には進まないと思う。

苔むした車

リハビリ兼徘徊の時、ちょっと外(病院の玄関の前)にも出たのだが、駐車場の一台の車に目をひかれた。びっしりではないが苔が生えていて、部分的に薄茶や緑色になっていた。その持ち主は一体どうしたのだろうか? 長く入院しているのか、この世にいないのか、ちょっと気になった。廃車するのが面倒で放置した可能性もあるが、ナンバーが付いていたから、それはないだろう。

あるといい物

大抵の物は旅行の要領で準備すればいいし、必要なものは入院の手引きに書いてあるのだが、事前には気付かないものもあった。以下にそんな物を列挙する。

  • 針金のハンガー: 床頭台の後ろの方に服を吊るして入れられる場所があるのだが、横棒だけでハンガー自体はなかったため、母に持って来てもらった。
  • 縦長のコップ: 普通のコップである。最初は、幅広の浅い物を持っていたのだが、それだと箸や歯ブラシを洗った後に立てておけないので、普通の深い物の方が便利だ。
  • ペーパータオル: なくてもいいが、食後に箸などの食器を洗った後、これで拭くと乾きやすい。
  • バスタオル: 通常のシャワー用以外に、手術後に身体をベッド間で移動させたり(看護師さんが引っ張る)、術後は血が出る可能性があるので、シーツを汚さないように身体の下に敷くのに使った。病院に依るだろうが、前のところでも要ったので、ほぼ共通のようだ(本来、入院の手引きなどに書かれるべきなのだが、なぜか書いてなかった)。
  • ストロー: 腰に麻酔をしたため、手術直後は頭や上半身を起こさないように指示される(頭痛の原因になるため)。が、水分を飲むことは可能なので、寝たまま飲むための道具が必要になった。何を使っても難しいのだが、ストローをペットボトルに挿して飲んだ。個人的には、飲むくらいの短時間なら起こしても問題ないと思うし、持ち上げないように注意していても軽い頭痛になったから、余り重要ではないように思う。

また、ウェットティシュー(除菌タイプ)があると、術後動けない時には、食前・食後に手や箸などを拭くなどに便利だ。今回はすぐに動けたので、余り使わなかった。ちなみに、これでスマフォの画面を拭いたら、ピカピカになった(ただし、材質によっては、曇ったりコーティングが取れたりすることがあるので注意)。

他には、スマフォの予備の充電ケーブルとACアダプタを持って行った。ケーブルやアダプタが壊れてスマフォが使えなくなったら、万事休すの時代なので。同様に、災害時に要りそうだったので、モバイルバッテリーも持って行った。また、電気カミソリのアダプタも持って行った方が安心だ。

なお、電熱器具の持ち込みが禁止されていたので、ドライヤーは持って行かなかった。そうでなくても、物を減らすために持って行かないつもりだった。実際には、洗面室に共用のがあったし、そもそも、手術の前の日しかシャワーの案内がなく、他の日は蒸しタオルで身体を拭くだけだったので、持って行っても無駄だった。

体重の変化

退院後は、入院前に比べて約1kg減った。食事のカロリーが最適だったからか、疲れたのか、両方かは分からないが、それほどお腹が空かなかったので、味はともかくとして、病院の食事は良く考えられているのだろう。なお、体脂肪率はほとんど同じだった。

GPMのデータ使用量

5日間(実質4日間)で約2.2GBを使用したので、1日辺り約550MBだった。繰り越しのおかげで使用可能データ量はまだ余っていたし、低速モードも使えることが分かったから、聴こうと思えばもっと聴けたのだが、ヘッドフォンは耳が疲れるので、これ以上は体力的に無理な感じだ。あと、ヘッドフォンは横臥して聴けないのが不便だった(これはイヤフォンでも同様)。

やっぱりSpotifyはクソ!

前にも書いたように、Spotifyの通知メールを全部offにしたにも関わらず、なおも「あなたのためのプレイリストがあります」のような余計なメールが来てムカついたので、入院中ではあったが、退会した。あそこは、そのうちシステム的に破綻すると希望予想している。

  •   0
  •   0

明日手術のため、昼から入院。設備の都合で、着いてすぐに剃毛・入浴することになり、なかなか忙しかった。

一番の心配ごとだった剃毛は必要な部分だけで済み、気まずいところは除外されたので、すごくほっとしたw でも、術後に管を入れるので、実はぬか喜びだ(爆)

担当の看護師さんは若くて明るくて親切な感じなので良かった。ただ、老眼の話をしたら、お父さんと同い年であることが分かり、複雑(微妙)な心境になったw でも、話が弾んで楽しいし、気も紛れるからいい。

TVは観ないと言ったら、「ラジオと本のイメージです」と言われた。音楽が好き(雑談でなく、仕事での質問)と言ったら、「クラシックですか?」、「すごいですねー」とか言われたので、インテリに見られている?w

なぜか血圧が異常に高かった(上が160くらい)。緊張したのかも知れない。血圧の関係か、眼の焦点が合いにくく、頭もぼーっとしていた。

あとは暇だったので、GPMで音楽を聴いたりしていた。すごく便利だ。が、電池が高速に減り、データ量も高速に増える(推定1GB/日)。データ量がカウントされない低速モード(200kbps)を試したのだが、音切れして駄目だった。曲のビットレートが192kbpsだとすれば、ぎりぎりで無理だし、電波が弱いせいもありそうだが、なんとも惜しい。もっと低ビットレート(例: 96kbps)のモードが欲しい。

→ どうやら、GPMの「再生中にキャッシュ」をoffにすると、低速モードでも行ける感じだ。再生とキャッシュを同時にすると帯域が不足するが、片方なら足りるのかも知れない。(22:31)

→ やはり、低速モードではたまに切れる。ただ、大抵は問題ないので、(あとでビデオを観るなどの予定がないなら、)低速モードは「最後の手段」にして、データ量制限になるまでは高速モードで聴くのがいいようだ。(10/20 19:22)

なお、(4Gの)電波が弱いからといって3Gにしてしまうと、電波は強くなるのだが、全然駄目になってしまった。これは腑に落ちない。ただ、調べると、3Gにするのは得策ではないようだ。(22:49)

あと、ヘッドフォンはやっぱり疲れるから、長くは聴きたくない。でも、イヤホンよりはましだから、まあ、仕方ない。

それにしても、グールドのゴルトベルク(1981)はやっぱり最高だった。乗れる!

他に、Klara Wurtzいう人のモーツァルトのピアノソナタ(第9番) (年は不明)は悪くなかった。安心して聴けるし、乗れた。

残念なこともいくつかある。ご飯はお世辞にも美味しいとは言えない(これに関しては、札幌の病院が最高だった)。他に、田舎らしく、公共心の欠けた人が結構居る。大声でしゃべるババア(患者、面会の人)、ベッドで電話するジジイ、TVをイヤホン(使う規則になっている)を使わずに観るジジイ・・・ みんな、「自分だけなら(誤差の範囲で)大丈夫」とか思っているのか? スタッフがそれを注意しない雰囲気なのも田舎のせい? まあ、そのおかげで、僕もスマフォを自由に使えるのだが。

まあ、長く居る訳ではない(居たくない)から、いいか。

  •   0
  •   1

使わないから、メールでの通知なんて全部解除しているのに、何度も「とっておきのプレイリスト」云々のメールが送られてくる。来るたびに「解除」をクリックしても効き目がないので、今日は、それをジャンク扱いにし、プッシュ通知(こっちは来たことがない)も全部解除した。もし次に来たら退会しよう。システムすらまともに作れない、So-potty-fy(の有料サービス)なんかに入らなくて良かった!

 

PS. さらにイラつくのは、pClouldというクラウドバックアップのソフトを試しに入れたら、時々(忘れた頃に)、「Spotifyの曲をプレゼント」云々の広告のポップアップが出ることだ。pClouldのソフトをアンインストールしても出るので、かなり質が悪い。一体、どっちが悪いのだろうか。次に出たら、Spotifyもアンインストールしよう。

pClouldとSpotifyの件で更にイラつくのは、そのポップアップが出ると目障りなので、反射的に即座に閉じてしまうので、何が原因か調べられていないことだw

(10/14 10:20 Spotifyは無関係だったので、関連する記述を修正し、題を変更: 下記参照)

PS2. pClouldの件、ジャンクメールを見たら、どうもSpotifyは関係ないようで、「クラウドから直接音楽を再生できます」とかいう、陳腐なものだった。件名が"Save great music and listen to it on the spot"で、"Save great music"と最後の"spot"で早合点したようだ。(10/14 10:20)

  •   0
  •   0

GPMDPとGMBの連携動作も大分煮詰まって来て、近頃は不具合修正ばかりである。聴いていると不意におかしな動作になるので、なかなか安心できない。それでも、今朝ちょっと思い付いて機能を追加できたので、忘れる前に自慢するために書く。

常々、GPMの表示を英語と日本語で簡単に切り替えたかったのだが、それができた。JavaScriptでGPMのページ(HTML)を書き換えて、ウインドウの右上に言語切り替えのリンクを追加した。GPMDPの起動直後に、HTMLからidが"material-one-right"という要素(右上のボタン類を格納している場所)を探し、その領域(innerHTML)の一番左(手前)に、日本語または英語のページに行くためのリンク(アンカー)を入れるようにしただけだ。

「だけ」とは言え、やっぱりHTMLだのJavaScriptは苦手(まじめに覚える気がないw)なので、それなりに苦労した。最初は、リンクを左上のGPMロゴの右に置いたのだが、なかなか縦の配置(上下の中央に置きたかった)がうまく行かなかった。力技(文字の上に、高さを低くした改行を入れた)で配置したのだが、狭くて矢印が入らないので、右に移した。

力技は好きじゃないが、実際には良くやる。それにしても、ページにリンクを突っ込むことに比べれば、テキストの縦配置を適当に調整するなんて、「赤ん坊のように」可愛いものだ。そして、JavaScriptでブラウザ中のHTMLを書き換えるなんて、全くの掟破り、チートだと思う。が、それがごく普通にまかり通っているのだから、世の中は不思議だ。

動的なページを作るなら、僕だったら、絶対にサーバ側で生成したいのだが、クライアント側でやりたい人は多いようだ。それでしかできないことは多いが、やる前に良く考えた方がいいと思う。こんな機能があるために、さまざまなセキュリティ上の問題が起こっているのではないだろうか?

例えば、ブラウザを乗っ取られたら、上に書いたような手法でショップや銀行のページを自由に(でも、見ても分からないように)書き換えられて、全く気付かないうちに注文されたり、他人に送金されたりするのだろう。。。

まあ、細かい話はおいといて、やっぱり歌謡曲は日本語表示がいいねw

  •   0
  •   0

プログラムの「詰め」というのは、とにかく手間と時間が掛かる。大体、中心となる部分を作るのの10倍以上の時間が掛かるのではないだろうか。プログラムを使い物にするにはどうしても必要な作業のだが、退屈だし疲れるので、余り好きではない。それでも、なかなかうまく行かなかったことを打開するような、ちょっとしたアイデアがひらめくことがあって、それが本当にうまく行った時は楽しい。だから、いじりだすとなかなか止められない。仕事と違って、納期も予算もないのが困るw

一方、世の中には、すごいアイデアを思い付いたら、素早く目を引くデモ的な物(ポップ音楽だったら、サビとかデモ版)を作って、有名になったりお金をせしめたりしたら手放して(どこかに売って)、トンズラする(あるいは、別の物を作り出す)、スマートな人が結構居るようだが、無責任で嫌いだ。確かに、いいアイデアを出せるのはすごいと思うが、「最初にちょろっと書くのは誰だって楽しいんだよ!」とか「もう少し面倒見ろよ」と言いたくなる。

という訳で、日々続けているGPMDP (Google Play Music Desktop Player)の改良(もはや改造と言った方がいいだろう)は大分いい感じになってきた。まだ詰め切れていない点や不具合や抜本的な改良案もあるのだが、おおよそ7.5割くらいの出来になって、普通に(これには「変わったことはしてはいけない」という意味もあるw)音楽を聴けるレベルになった。具体的には、GMBだけで聴いている時と使い勝手での違和感がほとんどなくなった。例えば、GMBのリモコンで操作できるので本当に便利だ。実際に、昨夜からは、(実装・修正するだけじゃなくて)GPMの曲を聴くのに使っている。

問題だったユースケース(GPMDPをどういうふうにGMBと統合・機能分担して使うか)も、作業しているうちに大分詰められた。基本的には、GPMDPは曲の検索に使い、GPMDPの再生ボタンを押したら、実際の再生や再生の操作はGMBで行おうと思っている。まだ完全にシームレスになったとは言えないが、なかなかうまく統合できたと思う。

今週はさまざまな改良や修正をしたのだが、主にGPMDPとGMB (gmusicbrowser)との連携動作(例: 曲の追加や変更の同期)に関するものなので、見た目では、先週と比べて目立った違いは余りない。大きな違いは、(実際に曲を再生している)GMBで次の曲に移ったことがGPMDPにも伝わって、曲情報やジャケット画像が更新されることだ。以下にデモ動画を置くので、興味のある方はご覧頂きたい。

画面左半分はGMBの、右半分はGPMDPのウインドウである。GMBで再生中の曲が次に変わると、少ししてから(その次の曲の取得と処理の時間: これは如何ともし難い)GMBにその次の曲が追加され(画面左下、5曲目)、GPMDPの曲情報やジャケット画像(画面右中央)が更新される。

下の動画は、力技でやっているうえに、まだバグがあって、(いつ何が起こるか分からず、)ドキドキする機能なのだが、GMB(画面左下)でリスト中の前の曲をダブルクリックして移動した場合でも、GPMDP(画面右中央)も戻るようになっている(戻るのが遅いのは愛嬌w)。もちろん、取得されている範囲で、先の曲に進むこともできる。

リストの最後(7曲目)に2曲目の曲が追加されるのはバグである。難しい。。。

冷静に考えれば、再生中の曲のGPMDPへの同期なんて、音楽を聴くには不要な機能で、本当に飾りなのだが、「おもしろそうで、不可能でないならやってみたい」という、技術者の無駄なこだわりがあって実装したw

(10/1 6:38 わずかに修正)

 

PS. プレーヤーにGMBを使ったのは正解だった。最初は単純な再生だけを考えていたので、alsaplayerなどの軽いものにしようかと思っていたのだが、機能的に不十分な点があったので、最初からGMBで試した。また、GMBはコマンドラインにPerlのプログラムを指定して実行できるという、夢(麻薬)のような機能があり、それでGMBの内部データにアクセスできるので、かなり役に立っている。もう開発は停まっているようだが、セキュリティホールになるので、公開版に入れ続けるのは難しいかも知れない。

PS2. かなりハードルが高いのだが、将来的には、GPMDPじゃなくて、ブラウザのGPMのページから直接GMBと連携できないかと思っている。GPMDPが必要なのではなく、GPMのページ内の要素にアクセスするために使っているだけなので、ブラウザのアドオンか何かでできるのではないだろうか。

同時に、可能な限り機能を外部に出して、JavaScriptの部分を減らして開発効率を向上させ、GPMのページ構成になるべく依存しないようにもしたい。

とは言え、本当にやりたいのは音楽を聴くことなので、苦労してそこまでやることもないかとも思っている。

(10/1 17:44追記) と書きつつも、(だるくてドライブを止めたため、)暇だったので、ちょっとだけ試してみた。一番最初に気になった、GPMのページ中の再生ボタンを押したらGMBに曲を送れるようにする時に必要な、ボタンのイベントハンドラを変更できるかを試した。

最初は、安直に、ローカルのHTMLでiframeでGPMのトップページを読み込んで、JavaScriptで書き換えればできるだろうと思ったのだが、駄目だった。それから、いくつかのライブラリやAJAXやjQueryまで試したが、駄目だった。

どうも、セキュリティ上の制限のようで、ローカルのファイルからGPMのサイトを呼び出すのが駄目なようだ(おそらく、元がローカルファイルじゃなくても、サイトをまたがるようなことが駄目なのだろう)。それを回避したかったのだが、できなかった。この制限は「同一生成元ポリシー」というものらしく、かなり昔からあるようだ。

それで、一旦、ローカルのHTMLを使うのは諦めて、(GPMDPを改造して使う前提で、)GPMのページ中の再生ボタンのイベントハンドラを変更できるかを試した。JavaScriptには疎いので、それすらも苦労したが、できた。getElementById()で再生ボタンの要素を探して、onclickメンバにハンドラを設定すれば良い。以下のようにすると、GPMの再生ボタンを押すと関数click_func()が呼ばれる。

var elem= document.getElementById("buttonContent");
elem.onclick= click_func;

function click_func() {...}

onclick(onClick)は属性ではないとのことで、setAttribute()で設定しても呼ばれないことに気付かず、苦労した。あと、ボタンの本来のハンドラが依然として有効(どうやっているのか不明)なのがちょっと気に入らないが、まあ、細かいことだ。

(10/2 7:08追記) その後、GPMの再生につながるボタンは山ほどあるので、それらを全部書き換えるのは現実的でないことに気付いた。それらの呼び先を修正するのも困難なので、やっぱり、低レベルなところはGPMDP(実際には、その下位のライブラリ)に依存するのがよさそうだ・・・

  •   0
  •   1

先日はユジャ・ワンに感心したので、今日の昼は彼女と同じ国のラン・ラン(Lang Lang)のモーツァルト ピアノ協奏曲 第24番 (2014)を聴いてみた。

イントロのオケ(指揮: アーノンクール、ウィーンフィル: ジャケットにはそのように書いてあるが、オケについては別の情報もあった)がすごく良かった。

ピアノも、意外に繊細で良かった。「意外」というのは、先入観があったということだ。何かがわずかに足りない気はするが、レベルは高い。すごく乗れて、「普通にいい」。ただ、それはオケが良過ぎたからかも知れない。

カデンツァはちょっと良くなかった。そして、段々、ピアノが、どことなく説明的な気がして来た。そのためか、滑らかさが少し不足している印象を受けた。

昼休みに聴き終わらなかったので、帰宅してから残りの第3楽章を聴いた。残念なのは、ここに来て、オケがわざとらしくなってしまったことだ。。。

この曲の後で、ラフマニノフのピアノ協奏曲 第2番 (2005)を聴いた。イントロはすごく遅かった。オケ(指揮: ゲルギエフ)は良かったが、ピアノは、やっぱり説明的だった気がする。決して悪くはないのだが・・・

そして、第3楽章の頭は、特に説明的で興ざめだった。だから、最終的には、僕には彼はユジャ・ワンよりは良くない印象だ。

それから、同じアルバムの「パガニーニ狂詩曲」を聴いた。この曲は余り好きでないから聞き流したので、特に書くことはない。

ただ、GPMDPからGMBに曲を渡す処理の実用性が確認できた(正確には、そのためにこの曲を掛けた)。今朝、先日見つかった、曲が勝手に次々とGMBに追加される問題を修正し、当初の想定どおり、再生中の曲の次の1曲だけが追加されるようにした。一方、この曲はそれぞれの長さが短い(数秒の曲もある)ので、処理が遅いと、次の曲の開始に間に合わない可能性があるので、ちょっと冷や冷やしなから聴いたのだが、ほとんど問題なかった。1-2曲、頭の音量が小さく、間に合わなかったかなというのがあった程度だ。ただ、問題が起こるとすれば曲間の長さで、音量は関係ないはずなので、マスタリングの問題だったのかも知れない。

ところで、上に書いた、「説明的」という言葉は、聴きながらふと頭に浮かんだので使ったのだが、自分でも何を指すのか分からない。さっき聴きながら考えたら、くどいとか、わざとらしいとか、その結果、滑らかさに欠けているということなのかも知れない。

こういう表現は、オーディオマニアの「アーティストの息遣いが聞こえる」のようなのに似ているが、そっちほどは眉唾でない気がする。というのは、こっちは感じたままを(伝わるかどうかは別として)文字に変換して書いているのだが、向こうは、聞こえるはずのない音が聞こえたと思い込んで(そうしないと、立つ瀬がないので)書いているのだから。でも、やっぱり同じこと??w

ラン(名字はこれで正しいのか? なんかおかしい感じだ)は前の会社に居た中国の人に似ている。顔はもちろん、若いし、本人に会ったことなどないが、性格がすごく明るそうで、その点でも似てそうだ。

 

PS. ラン・ランの名前から、「留園行って幸せ食べよ」のCMを思い出した。ここの読者の方にはお馴染みとは思うが、今の若い人たちに言っても、きっと「なにそれ??」状態であろう。このお店は、今もやっているようだ。

店の名前は「龍園」だと思ったのだが、検索したら違っていた。この字は留年を連想させるのでw、イマイチの印象だ。おどろくべきことに、リンリン・ランランのアルバムがGPMにあった。もちろん聴かない。でも、中に「恋のパッコンNo.1」とかいう妙な題の歌があって、ちょっと聴きたくなった。何がパッコンなのか?w

  •   0
  •   0

GPMDPの改良。音量の正規化の改良について考えていたら、確か、以下のようなことだったと思うが、GPMDPでなく、外部プレーヤーで再生した方がいいのではないかということになった。

  • GPMDPの構造上避けられない、曲の開始と同時に一時停止しても先頭が一瞬再生されることがある問題は、外部プレーヤーを使わないと解決できない。
  • 再生ゲインの計算のために曲のファイルをキャッシュしているのだから、そのファイルをVLCやgmusicbrowser (GMB)などの外部のプレーヤーで再生することができる。
  • 再生ゲイン対応のプレーヤーなら、音量(ボリューム)の設定やファイルにを再生ゲインを乗算しなくても、再生ゲインタグに設定するだけで、プレーヤーによって反映されるのも良さそう。
  • GPMDPは使い勝手がいいとは言えないし、リモコンを2個にしたり、2つのプレーヤー間の切り替えもしたくないので、操作性を改善する点でもGMBで再生したい。

いずれにしても、昨夜までに構想が練り上がった気がしたし、基本的なところは容易にできそうだったので、今朝、GPMの曲をGPMDPでなく外部プレーヤーで再生できるようにしようとする作業を初めてしまった。そして、確かに、再生できるようにすること自体は簡単だった。14時前には、GMBで再生できるようになった。

GPMの曲をGMBで再生

図の左上はGMBのミニプレーヤーで、右はGPMDPのウインドウである。GPMDPが再生しているように見えるGPMの曲は、実際にはGMBで再生されている。その証拠に、双方で同じ曲・アルバムになっているし、僕はこのアルバムは持っていないし、GPMDPの再生時間は0だが、GPMは0ではない。

が、やっぱり難航し、この時間になっても終わっていない。残っている難しいことは、以下である。

  • 次に再生する曲を途切れないようにGMBに送り続ける(今は、最初の1曲の再生が終わったら停まってしまう)。また、ギャップレス再生のためには、再生中の曲が終わる前に送る必要がある。
  • GMBとGPMDPの連携 (例: GMBの再生が終わったことを検出して、次の曲を再生開始する)
  • GMBとGPMDPの操作の統合 (例:GPMDPで一時停止したら、GMBを一時停止させる)。GMBに統一すればいいのだが、曲の検索など、どうしてもGPMDPでしかできないことがある。まだ、ユースケースの検討が充分でないので、方針が固まっていないせいもある。

でも、今日のところは、目論見どおりGMBで再生できたので、良しとする。

(気が向いたら、詳細を追記します。)

(9/24 21:35追記) どうにかこうにか、次に再生する曲をGMBに送り続けられるようになった。GMBも自分で作ったGPMDPの追加プログラムも、想定外の動きをしたりして、なかなか大変だった(おもしろかったけどw)。

GPMの次の曲を自動でGMBに追加

図の左はGMBのウインドウで、右はGPMDPのウインドウである。GPMDPのプレイリストの、現在再生中の次の曲がGMBに自動的に追加され、連続再生できるようになった。

余談: 上のジャケットの工藤静香、なんかお化けみたいだ。。。

動き出したばかりで、まだまだ荒削りで、さまざまな不具合はあるが、とりあえずは音楽が聴ける状態になったので、一段落だ。それに、(GMBの)リモコンで一時停止などの操作ができるのは、すごく便利だ。

不具合の例:

再生していると、再生中の次の曲以降も勝手にGMBに追加される。まあ、悪いことではないが、想定外の動作なので複雑な心境だ。そして、それに伴ってGPMDPの下部のプレーヤー部分は、まだ再生していない曲になってしまう。しかも、それは上側のキューの再生中(と思っている)曲とも違うのが解せない。

  • 再生中の曲: "Here comes the Sun"
  • GPMDPが再生中(と思っている)曲: "Let it be"(上部)、「二人静」(下部)

細かいことが多いので、先は長そうだw

PS. 今日からか、URLに"?hl=en"を付けても無視するようになったようで、日本語で表示されるようになってしまった。やっぱり、ネットサービスはvolatileだなあ。 ← URLの書き方を間違えていたようだったので、撤回する。 (9/25 20:26)

(9/25 22:56 わずかに修正、余談を追加)

  •   0
  •   1