Spotifyの使い勝手を改良するプログラム(暫定版)を作った。仮に「Spotify制御ツール」(spotify-ctl)と呼んでいる。(作るのに結構苦労した割には、)見た目はしょぼいが、僕には欠かせないものだ。以下のような機能がある。
- リモコンでSpotifyを操作できる。GMB(gmusicbrowser)と切り替えて使える。
- 音量正規化のon/offをボタンで切り替えられ、その状態を表示できる。
- リモコンで、「この曲の再生後に停止」を指示することができ、その状態を表示できる。
- Spotify制御ツール (再生中)
- 一時停止中
- 再生中 (この曲の再生後に停止)
意外なことに、ほとんど誰も「この曲の再生後に停止」機能を欲していないようだが、几帳面な僕には必要だ。今の曲で聴くのを一旦止めようと思った時、一瞬でも曲のお尻が欠けたり次の曲の頭が出るのが許せないのだ(これ、本気です)。常に「ぴったり」で停めたいのだ。それをやるのにこの機能がないと、(車の信号待ちの時のように)曲の終わり辺りで再生位置のメーターに神経を集中させる必要があるので、疲れるw
少し内部的なことを書くと、システムは、以下のように、リモコン対応部(GMB用のプログラムに機能を追加)と制御・表示部(本体)からなる。
リモコンサービスプログラム
- リモコンのキー(再生、停止など) → SpotifyまたはGMBに指示を送信する(DBus)。送信先(操作対象)は下のように切り替える。
- 対象切り替えキーまたはその時の状況(例: 片方のアプリしか起動してなかったら、そっちに送る。片方が再生中だったら、そっちに送る。)で、制御対象(SpotifyとGMB)を切り替える。
- 対象の切り替え時には通知を表示する。
- 「この曲の再生後に停止」のキー → 制御・表示プログラムに指示する。
制御・表示プログラム
- Spotifyアプリ (DBus) → 曲情報 → ウインドウに曲名、演奏者、アルバム名を表示する。
- Spotifyアプリ (DBus) → 再生状態 → ウインドウに表示する("Playng status": "▶"/"⎟⎟")。
- 音量正規化変更ボタンのクリック → Spotifyに設定し、ウインドウ下部のボタンに状態("RG is ON"/"RG is OFF")を表示する。
- リモコンからの「この曲の再生後に停止」の要求 → 要求の有無をウインドウに表示("Playng status": "▶"/"▶⎟⎟")し、要求がある場合、曲の切り替わり直後に停止する。その後、要求をクリアする。
なお、本当は、GMBのミニプレーヤー(下図左側)のようにテキストを綺麗に表示してジャケット画像も出したかったのだが、表示に使ったツール(yad)の機能の限界のために見送った。余裕があれば、別のツール(uzblブラウザが有望)で実現したい。が、簡単に操作できることが重要で、見栄えは本質でないので、優先度は高くない。あくまでもお遊びだ。
「なんだ、偉そうなこと言っておきながら、結局(GPMでやっていたことと)同じことを繰り返してるじゃん」と言われそうだが、結構違う。GPMの時は、第三者の作ったライブラリやアプリなどを改造して使っていたが、こっちは、純正のアプリを何も変えずにそのまま使い、一部(音量正規化の設定変更の仕方)を除いて、公開されている仕様(DBus/MPRIS)に基づいて作っているので、Spotifyの勝手な変更(仮にあったとしても)に右往左往させられる心配は少ない。だから、将来的な手間はずっと少ないはずなので、音楽(=本質)に集中できる。
↓
遊んでしまったw テキストを見やすくし、ジャケット画像をSpotifyから取得して表示するようにし、再生状態はアイコンにした。これならまあまあ許せるかな? 表示には前と同じプログラム、yadを使ったが、前(form)とは別のモード(list)を使った。 (6/3 3:33, 13:12)
PS. まったくの余談だが、デバッグ中に「さらば涙と言おう」(1971)が掛かった時(→ 図)、ものすごく懐かしかった。というのは、僕の通っていた小学校では、下校時間にこの曲が流されていたのだ。どうしてこの曲なのかは今となっては知る由もないが、毎日掛かっていたのだ。たまたま帰るのが遅くなって、夕方の薄暗い時に、ちょっと悲しい気分で聞いた記憶がある。なお、この曲がいつまで使われていたのかは記憶にない。
何十年振りに聴いた気がするが、清潔とかシンプルな曲だと思い込んでいたのに、(基本はそうだけど)意外な雰囲気だったことが分かった。例えば、ハワイアンな音(ギター)があるのだ。尾崎の「また逢う日まで」(1971)もそうだが、当時は結構妙なアレンジが多かったのかも知れない。まあ、今の歌(全然知らないがw)でも後でそう思われる気もする。
あと、彼がのちに県知事になるなんてのは、まったくおかしなことだw でも、USだって似たようなものだ(爆)
PS2. GPMを退会するに当たり、ライブラリ(お気に入りのようなもの)の一覧を保存しようと思っていたのだが、面倒だ。ツールはあるはずだが、それを引っ張りだして実行するのすら面倒だ。そして、意外なことに、近頃は、「そんな一覧なんてなくてもいんじゃない?」とすら思って来た。
というのは、確かに、気に入った曲の一覧があればいいが、今まで、それを見て聴くことがほとんどなかったからだ。逆に、重複のチェックに使った程度だ。あとで一覧を見て振り返ればおもしろいだろうが、その程度だし、それなら日記やこのブログに書いてあるからいい。(クラシック音楽については)僕は、常に、新しい(自分の知らない)、自分好みの演奏を聴きたいと思っているからだろう。あと、演奏者やジャケットを見れば思い出せることが多いし、気づかずに再度聴けば気に入る可能性もあるのだ(実際、最初は気に入らなかった演奏をあとで気に入ったことがあったし、その逆もあった)。
要は、昔の人のように、何かの曲の話になったら、「ああ、あれ(あの人の演奏)は良かったよ」みたいなものだと思っている。曲名と演奏者名が分かれば、世の中のどこかにあるはずだから、聴こうと思えば聴けるので、音楽を聴くのに(個人の)ストレージは不要になった。すごい時代だ。というか、昔に戻っただけ?w
↓
重い腰を上げて、ライブラリの曲一覧をダウンロードした。GPMでは190アルバムと表示されていたが、ダウンロードしたら184個だった。まあ、6アルバム程度は「誤差」として良しとするw
なお、Googleのサービスはもちろん、既成の(第三者の)プログラムでもできないようだったので(検索したら、ブラウザでGPMを開いて、開発者ツールにJavaScriptのプログラムを入れてなどという前時代的なことが書いてあって、げんなりした)、gmusicapiのMobileClientインタフェースのget_all_songs()を使って適当に作った。いつもながらPythonは嫌いだ。Perlよりはまともだが、なんで人気があるのか分からない。 (6/3 22:01)
PS3. 今気付いたが、このツールのおかげで、(Spotifyのアプリではできなかった)曲名や演奏者名などのコピーが容易になった。自分では気付かずに作ったが、これはうれしい!
PS4. それなりに動いていて便利なのだが、(いろいろ工夫はしたものの、)曲情報が改行されていないのはやっぱり見難いので、いろいろ試した結果、表示部に全世紀の遺物的なプログラム、Tcl/Tkがすごく良く使えそうな感じだ。今日、外側を作ってみたら、かなり理想に近くなった。あとは中身を作るだけだ。 (6/5 22:27)
コメントを書く / Write a comment