Archive for the ‘音楽’ Category

自作の音楽再生履歴・感想の記録・検索システム Mlhi※の現状について、他の方が見ても有用ではないだろうが、自分のまとめとして書く。

※ふと頭に浮かんだ「ライフログ」という単語から思い付いたのだが、システム名は「音楽(再生)ログ」や「音楽(再生)ロガー」とかそういうのが適当そうで、簡潔でいい。ようやく、自分が何を求めていたのか分かったのかも知れないw これで行けば、英語の略称(Mlhi)の元としては"Music logger managing listening history and impressions"のようなものがこじつけられる。(こういう「逆のこじつけ」とかこじつけの変遷は良くあるので、気にしないことw) (7/19 6:42追記)

状態: 一段落、あるいは、停滞中 (85%くらい?: 随時新しくやりたいことが増えるので、この値にどの程度の信頼性があるか不明)

現状のままでも、SpotifyとGMBで再生した曲の履歴が自動で記録できるので、データ収集に関しては当初の目的が達成され(残件は収集したデータの使い方や見せ方が主になる)、webの表示・検索もそれなりに使えて大きな問題がないので、ちょっと満足してしまった。鞍点?

今できること

  • Spotifyとgmusicbrowser(GMB)で再生した曲を自動でDBに登録する。
  • WebでSpotiyとDBから曲を検索する。
  • WebでSpotifyとGMBでの再生履歴を表示する。
  • Spotifyのミニプレーヤー(minisp)に、評価、再生履歴(再生回数、完奏率)、コメントを表示する。
  • [同曲複数トラック統合のサポート] 統合先(親)のトラックIDが設定されている場合、統合元トラック(子)の曲情報(再生履歴など)は統合先のものを使用する。
    • 同じ曲(演奏)が複数のアルバムに収録されている場合などに、それらを一つに統合する機能。Spotifyの曲はISRCで概ね統合できているが、SpotifyとGMBで同じ曲を統合したいので追加した。

TODO

  • Web: 検索を使いやすくする。
    • 検索プリセット: プリセットを自分で登録できるようにする。: 今は、Spotifyの検索文字列やSQLの検索条件を手で入力している。
  • GMBのミニプレーヤーで評価、再生履歴(再生回数、完奏率)、コメントを表示する。
  • 同曲複数トラックの統合処理
    • あるトラック(子)の曲情報(再生履歴など)を別のトラック(親)に統合(マージ)する。
      • 実行時(オンザフライ)の処理(DBアクセス時(= 表示時など)に自動で統合する)とオフライン処理(外部プログラムで統合する)で揺れている。今は後者にする方針で、やればできそうだが、着手できていない。
      • 統合のポリシーが煮詰め切れていないのも大きい。
        • 例: リマスターはどうする?: 統合する/しない
      • 手で統合するので実用性があるかという問題もある。(自動で統合したいが、「同じ演奏」の判定が難しい)
  • minisp, GMBのミニプレーヤー: 評価・コメントを付けられる・書けるようにする。
  • minisp: 評価の低い曲を自動でスキップする。
  • Web: 検索結果(例: 曲数)が多い時にページ分けする。
  • Web: 再生履歴の自動更新 (例: 自動スクロール)
  • Web: アルバム全体の評価(評価の概要)を出す。
  • Web: Spotify: 日本のアーティスト名を日本語で表示する。
  • Web: GMB: 改良(完全にする)
  • Web: DBメンテ(保守)機能の追加
  • minisp: Mlhi DBの値でSpotifyの曲情報(例: 曲名)を上書き(調整・修正)する。
    • 特に再生ゲインを調整したい。
  • Spotifyの評価・履歴の自動取り込み
    • 履歴はスマフォのSpotifyアプリで再生した曲の取り込みに有用
  • UIや動作の細かい調整
  • 汚い・無理があるプログラムを綺麗に・・・
  • その他、いろいろな細かいこと・・・

そして、夢・・・

  • GMBとSpotifyのシームレスな(シャフル)再生
  • GMBとSpotifyのミニプレーヤーを統合する("minisp V2")。
    • ついでに作り直したい。
  • スマフォのSpotifyアプリで再生した曲も(自動で)登録したい。
    • サーバで現在の再生曲を取得して記録するプログラムを動かせばできそう。
  • [さっき思い付いたこと※] YouTube(など)で再生した曲も(自動で)登録したい。
    • YouTubeには固有のトラックIDがあるので、理論的にはできそう。
    • 便利にするには、YouTubeのAPIを使う必要がある。
    • プロキシを使えば、YouTubeのAPIを使わなくても、再生する曲をリアルタイムに記録できる? (7/19 6:50)
    • (Webでの)再生も簡単にできそう。

※昨夜見付けた・聴いたJun Asai(浅井純)の「展覧会の絵」(2014)とFlying Doctorの演奏(→ )がとても気に入り、それらはCDなどで発売されていないので、是非やりたくなった。

ここに書くのは適当でないが、Asaiの演奏は以前から気に入っているのに、SpotifyはおろかCDすら売っていないのが残念だ。まったくもったいない。この演奏が発売されたら、是非手に入れたい。それから、Flying Doctorは(気持ちだけは)全力で応援したい^^

といった感想を自分のDBに記録したいのだ。

 

大きな不便や問題がなく使えているうえに、時々「夢」を思い付いて、そっちを考えたり作ったりするほうがおもしろいので、なかなか本流の完成度が高まらない。(Googleとかにありがちなパターン?w)

 

(19:40, 20:40 若干加筆; 7/19 朝 加筆)

  •   0
  •   0

うまい人は何だっていいんだよ。道具にこだわる(「*がないからできない」、「*があればできる」)なんて、幻想とか愚の骨頂(昔の僕も含めてw)だ。

ピアニストの妻におもちゃのピアノをプレゼントしたら…… さすがの即興演奏に「すごい」「ずっと聴いていたい」の声

 

PS. (済みません。例によって傲慢かまします) 元のツイッターに投稿された動画を観るまでは、最初の行のように感激していたのだが、観たらちょっとがっかりした(最初に思ったのだが、止めておけば良かった)。僕に言わせれば「まあまあ」だ。もちろん、個人の感覚による。それに、例え気に入らないにしても、その場に居合わせたいという気分はある。なんといっても楽しいではないか! こういう人が身近に居たら、僕も通い詰めて、何時間でもいろいろ会話とか注文して楽しめそうだ。

そういう意味では、道具でなくて「人」にこだわるのは重要だと思う。それが時代遅れなのか、分からないが。

PS2. これで、そのおもちゃピアノを買う人が増えそうだが、マジで「止めとけ!」と言いたい。まず無駄だから。まあ、買ってみれば分かる。まず、スマフォとかを弾きこなせたら考えてもいいんじゃない?

PS3. おもちゃピアノの音を生かした演奏がなかなかなかったのだが、さっき、ようやく一つ見付かった。「トイピアノ弾いてみた ~ SWEET MEMORIES / 松田聖子」(2018)だ。これはすごくいい!

それからもう一個見付かった。これも音がすごくいい(もちろん演奏も)。: 「ラムのラブソング 【FlyingDoctor(フライングドクター)】  松谷裕子 アニメ「うる星やつら」主題歌 アンデス ウクレレ トイピアノ」(2015)

他に「こんぺいとうの踊り」もあったのだが、音は「まんま」(工夫がないという意味。最初は感激したが、良く考えれば当たり前な感じだ)で、演奏が今ひとつだったので、ここには挙げない。

探していて、音の出し方が悪いものが多くてがっかりした。多くは無造作に鍵盤を叩くようにして音を出して、耳障りな音になっていた。ピアノなんだからそれでは駄目だ。あと、楽器に合った曲選びは重要だし、テンポとか弾き方ももちろん重要だ。「おもちゃ」だからといって、いい加減にしないで欲しいと思った。 (7/17 22:25)

  •   0
  •   0

母にモーツァルトとショパンのCDを貸すことにしたので、昨日、試しにCD-RWに焼こうとしたら、消去でエラーになってしまった。別のメディアも駄目で、検索したら、どうやら、BDドライブが劣化してレーザーの書き込み出力が弱くなってしまったようだ。デスクトップは常時通電しているから劣化しやすいという情報もあったが、レーザーは常に書き込み用の強い出力で発光している訳はなく、仮にそうなら読み出しも駄目になるはずなのにそれは問題ないので、書き込み関係の素子(レーザーかコンデンサ?)が劣化したのだろう。まあ、調べたら、光学ドライブの寿命は5年程度だそうだが、僕のは8年以上経っているから、寿命でも仕方ない。

「もしかして埃のせいかも」と思って掃除もしたのだが、(HDDファンの前のフィルタはすごかったもののw、)ドライブには埃はほとんど付いておらず、やっぱり直らなかった。ドライブの中も掃除しようとしたのだが、不器用なせいで、光の出る側は開けられなかった。

なお、HDDファンの前のフィルタを掃除したおかげで、HDDの温度が4℃も下がった。天気の関係で気温・室温が低くなった可能性もあるが、2-3℃くらい下がったのは確かそうだ。掃除は重要だ(と言いつつサボるw)。

それで、代わりを買うことにした。こういう時以外、滅多に書き込むことはないのだが、もしかしたら何かに使うかも知れないので、あった方がいいと思ったのだ。それで、上記の常時通電による劣化を避けようと外付けタイプのDVDドライブを探すと、(内蔵タイプを外付けにした)大きいものは7千円くらいで結構高い。常時通電を我慢して内蔵のDVDドライブにするなら2千円からと安いが、今のと交換するとBDが読めなくなってしまうのがもったいないので、ポータブルのにした。

Amazonの評価では、バッファロー(DVSM-PLV8U2)かLITE-ON(EBAU108-11)のが良さそうだった。後者の方が数百円安かったのでそれにしようと思ったが、注文確定ボタンを押す直前に、前者はCPRM(僕にはまず関係ないだろうが)に対応しているのと、一応、日本の会社だからそれなりの信頼感があるので、バッファローにした。もちろん、ヨドバシ(こちらにはLITE-ONのはなかった)に注文したw

新しいDVDドライブ: バッファロー DVSM-PLV8U2

 

それにしても、BDドライブと同様に本体も8年以上経っているので、そろそろ故障し出す時期(= 寿命)かも知れない。ストレージやファンなどは適宜交換しているので、次はマザーボード(コンデンサ?)とかCPU、あるいは電源が壊れるのだろうか。そこら辺はSMARTのようなのはなくて予兆が分からないから、ちょっと怖い。

 

今日、注文したドライブが届き、一通り動作確認して問題なかったので、貸すメディアを焼いた。そして、一緒に貸すブックレットを探したのだが、アシュケナージのショパンのピアノ名曲集のがない。何度探してもないので、仕舞った場所の参考にとメディアを探したのだが、これもない。また行方不明だ。分かっているだけで、以下の3枚がどこかに行ってしまった・・・

  • アルゲリッチ 「子供の情景」 (1984) → 中古を買った。
  • ドラティ 「くるみ割り人形」(抜粋) (1976) → 全曲の盤を買った。
  • アシュケナージ ショパンのピアノ名曲集 (1971, 1983) ← 今ここ (買い直す必要はない)

誰かに貸したとかなら結構覚えているものだが、全く記憶にないのが不思議だ。貸した時に日記に書いたのかも知れないが、その頃は紙だろうから探す気が起こらない。そして、それらの音がPCに取り込まれているのも不思議だ。取り込んだあとに、「もう要らない(なくても困らない)だろう」とか思って誰かに貸したのだろうか。もしかして母? 母は受け取ったきり仕舞い込んでいて忘れている? そうだったら笑えるが。。。

仕方ないので、今回は曲目を手で書くことにする。まあ、ブックレットがあってもなくても、聴いたことのある曲以外は良く分からないだろうし、詳しく読むこともないだろうから、問題なさそうだ。

それにしても、物が大量にあると自然に損失が生じるってことだろうか。半減期とかエントロピーとか量子論的な話? いやいや、もしそれがあるなら、「ゴミ屋敷」は自然に解消するはずだw まあ、引越しの時に間違って塊で捨ててしまったのではないだろうか。だから、これからも行方不明が出て来そうだ・・・ でもまあ、曲のファイルだって多過ぎて大雑把にしか管理していない(例: 再生時にタグの誤りや曲の不足に気付くことがある)ので、これでいいのだw

 

PS. 確認のために、アシュケナージのショパンを聴いているが、悪くない(曲の良さが分かる)。買った当時(1990年頃)は熱心に聴いたものだ。特に、「別れの曲」は自分で弾くのが夢だった。

PS2. 今気付いた! 予備のミニPCやノートPCのDVDドライブで書き込めば良かったのだ。どちらも古いが、両方とも駄目ってことはないだろう。それなら無料ですぐにできたのだ。全くのアフォだ。もっと頭を柔らかくしないといけない。。。 (7/12 7:56)

  •   0
  •   0

単に僕の見識が浅かったということなのだろうけど、昨日、ちょっとしたきっかけで、「エッシェンバッハ(Christoph Eschenbach)もなかなかいい」と思った。そのきっかけというのは、母がモーツァルトのピアノソナタについて、「内田光子は少し違う」と言ったことだ。以前にもメールで書いて来て、これで2回目だから、結構強く感じだようだ。

背景・経緯を書くと、去年、食事の時に音楽の話になって、「聴きたければ(余るほどある)クラシックのCDを貸そうか」と言ったら、「じゃあ」ということになって、数枚送ったのだ。その中に内田の1枚があった。貸す時は、内田にこだわりがあったのではなく、話の中に日本人ピアニスト(例: 中村紘子)の話が出て、僕が中村よりは内田の方がいいと言ったので、そうした。実際には、外国人でもっといい・好きな人は居るが、とりあえず、日本人の例として選んだ。以前にも書いたように、近頃は、内田はその癖・個性がちょっとわざとらしく感じるので、昔ほど好きではなくなっている。

そんな内田の癖や個性を母が分かったとは思えない。というのは、そもそも、さまざまなモーツァルトの曲を聴いた訳でもないのに、癖や個性が分かる訳がないからだ。「どの曲のどこ」とも言っていないから、おそらく、母特有の思い込み(例: 本能的に、この曲・フレーズは(脳内の)「こういうもの」だと思う: 良く考えると、僕もそういうところはあるw)のようなものだとは思うが、まあ、試しに別の人のほぼ同じ曲目を探して貸すことにした。

ちなみに、貸した内田のCD(1984-1986)の曲目は、K.333, K.545, K.475, K.457, K.397だった。この一連はポピュラーなようで、手持ちにほとんど同じ曲目の井上直幸のCDがあった。一方、腐るほどあると思っていたモーツァルトのピアノソナタのCDがそれほどなかったのが意外だった。持っていたのは、エッシェンバッハ、グールド、ピレシュ(2種)、井上、内田だけだった(それでも多いかw)。本当は、ゼルキンとかペライアとかが良さそうで、そこらをイメージしていたのだが、ないものは仕方ない。良く考えると、僕はピアノは好きだけど、ソナタよりもピアノ協奏曲が大好きなので、そっちが多い(調べたら、重複もあるだろうが、30組くらいあった)。それはともかく、手持ちを比較して選ぶことにした。主にK.333で比べた。

一番最初に思い浮かんだのはピレシュの新しい方(1989)だったが、聴いたらどうも気に入らなかった。第1楽章ではわずかに細いところがあって、それが物足りない感じだった。あと、跳ねる感じや、さらっと通してしまうところが好きになれなかった。

ピレシュの古い方(1974)は、同じ人のせいか、やっぱり音が細くてさらっとしていたが、意外に(一般的には)いい感じではあった。あと、当然ではあるが、どことなく若さが出ている感じだった。個人的には、1989年のよりこちらが好みだ。

井上(1999)も癖があったり、わずかに気に入らないところはあるものの、なかなかいい感じだった。これにしようかと思ったのだが、同じ日本人ではおもしろくないので、余りにも特徴がない(と思い込んでいて)最初から対象外にしていたエッシェンバッハの(-1971)も試すことにした(もちろん、グールドは聴くまでもなく対象外だったw)。

すると、意外に悪くなかった。K.333の第1楽章の出だしには少し違和感があったが、全体的に素直(オーソドックス)な感じで、曲の最後が良かった。ただ、少し速目ではあった。K.475も、パワーやダイナミックさがあって良かった。 演奏には関係ない細かいことだが、この曲と次のK.457との間隔が長いのが惜しかった(この2曲は組のように扱われていて、普通はK.475のあとですぐにK.457が始まるようになっている)。

という訳で、エッシェンバッハのを貸すことにした。1枚にはまとまっていないので、内田と同じ曲を抜き出してCD-Rに焼くことにする。

母の感想が楽しみだ。きっと、(この演奏も自分の思い込みとは違うので)「人によって違うねえ」とかだろうと想像するw ただ、上に書いたように、エッシェンバッハはいかにも素直な・良くあるパターンの演奏(でも、僕としても物足りなくはない)なので、「やっぱりこっちがいいねえ」という可能性もありそうだ。

それにしても、今までエッシェンバッハを軽んじていたのはもったいなかった。これからSpotifyでいろいろ試してみたい。 → と思って調べたら、モーツァルトの曲は、手持ちのソナタ集の他にはピアノ協奏曲が少ししかなくて、がっかりした。モーツァルトは余り得意でなかったのだろうか。 → Wikipediaを見たら、本人は元々指揮者志望だったようで、すぐに転向してしまったようだ。もったいないが仕方ない。でも、なんか、野球で言えば最初から監督を目指すみたいで、余り共感できない。

今、ちょっと不思議なのは、なぜ、彼のモーツァルト ピアノソナタ集を持っているかだ。エッシェンバッハは昔から知っていた気はするが、CDを買ったのは2002年で、結構遅い。どうして彼のを買おうと思ったのだろうか? どうも、前から別のCD(日本盤で彼の写真が載っていた気がする)を持っていて、そこから思い付いた気がするのだが、なぜかそのCDが出て来ない。これも誰かに貸して返ってこないのだろうか? → 分かった! ピアノを独学で始めようとした時に「バイエル」の模範演奏のCD(1979)を書ったのだが、その演奏者が彼だったのだ。

(7/11 18:42追記) 今日、別のCDを探していて本当の理由が分かった。すっかり忘れていたが、実は彼の別のモーツァルト ピアノソナタのCD(有名な曲が入っているもの)を持っていて、おそらく僕がクラシックを始めた頃にそれを買って、その記憶があって、ソナタ集を買ったのだろう。ただ、そのCD中の曲は後で買ったソナタ集に含まれるからPCに取り込んでいなくて、気付かなかったようだ。

(7/11 18:55追記) その後、Spotifyにあった彼のモーツァルトのピアノ協奏曲 第9, 19, 21, 23, 27番を試したが、なかなかグッとは来なかった。一番良かったのは第21番で、「まったく問題ない。」という感想だった。次は第19番で、第1楽章は以下のような感想だった。

出だしはいい感じ。 ピアノもいい。曲に合った可愛い弾き方だし、音もいい。ポリーニ・ベームよりいいかも。 ただ、やっぱり音質は良くない。 が、中盤の少し手前や後半の短音連続がポロポロした感じ(滑らかでない)で良くない。

第23番の第1楽章はちょっと滑らかさが足りなくて、今ひとつだった。 第2楽章は「結構ひどい。深みがないのか。」という感想だった。第3楽章は今ひとつで、セコセコしている感じだった。それから、母に貸すピアノソナタを再度聴いたら、どうも今ひとつな気がしたのだが、全く駄目な訳ではなく、既にCD-Rを焼いてしまったので、そのまま貸すことにする。

 

ちなみに、ついでに母にはもう1枚貸そうと思っていて、以下が候補になった。

  • ラフマニノフ ピアノ協奏曲 第2, 3番
  • ショパンの有名な曲集
  • ゴルトベルク変奏曲
  • 無伴奏チェロ
  • 「展覧会の絵」 (オリジナルのピアノ版)

やっぱり僕の趣味に走りがちだが、とりあえず、一番受けが良さそうなショパンかと思ったが、やっぱりゴルトベルクにしようかと思っているw あと、ラフマニノフだと、「(フィギュアの)真央ちゃんの曲だ」とか言って喜びそうな気はするが、それだけでは意味がないので、今回は見送る。

本人に「バッハとショパンはどっちが?」と聞いたら、やっぱりショパンを希望して来たので、そうする。

 

PS. 上に載せた感想は、聴きながら、開発(停滞)中のMlhiに直接書き、今検索して取り出した。早速実用できて、いい感じだ。「近頃聴いたもの」とかコメント中のキーワードで検索できるので、手前味噌ながら、なかなか便利だ。

  •   0
  •   0

音楽プレーヤ(GMB)に表示されたSex Pistolsのアルバム(1977)のジャケットを見て、ふと思った。(天ぷらみたいにw)「ボロクソ」の語源は"bollocks"なのかと? が、調べたらそういう話はまったく出て来なかったので、偶然の一致のようだ。まあ、「一致」とは書いたものの、意味は同じゃないしね。でも、ちょっと残念だw

 

ちなみに、僕はこのバンドが全然好きじゃない。近年、調子は悪かったものの時間には余裕があった時に、「いろいろな音楽を聴いてみよう」と思って、レンタルしたり買いまくった時期があって、その時のものだ。そもそも、買うのも無駄だと思って散々迷った挙句にレンタルしたくらいだw ただ、偶然ではあるが、このバンドに居たらしい人のバンド(Public Image Ltd)が大昔に出した、"Compact disc"(1986)(元々からなのか、いろいろな形態があるからなのか、今は"Album"と呼んでいるようだ※)というアルバムは結構好きだ。学生の頃、店頭で見て、名前以外は何も知らなかったものの、いかにも人を喰ったようなタイトルや、ジャケットがいい感じだったので、買った。

※今、Spotifyでこのアルバムを見てみたら、ジャケット画像は"album"なのにアルバム名は"Compact Disc"になっていて、なかなか不思議だ。あと、Discogsを見たら、このアルバムには"Cassette"もあるようで、こういう(しょうもないことで遊ぶ)のは結構好きだw

あと、まったくどうでもいい(良くない)ことだが、このバンドの名前の最後に"."は付くのか付かないのか(彼らのサイトやWikipediaにはなく、Spotifyや僕の取り込んだCD(のデータ)にはある)、気になって夜も眠れなくなりそうだw

ついでに話を戻すと、"bollocks"は"bolloc"の複数形ではなく、元からsが付くようだ。これはこの単語が指す物から来ているのだろうか? 世の中に謎は多いw

  • Compact Disc

    Compact Disc

    Compact Disc, an album by Public Image Ltd. on Spo…

  •   0
  •   0

Jayson Gillhamのラフマニノフのピアノ協奏曲 第2番を聴きながら、例のDBに感想を書いていて思った。(第2楽章について)

オケもピアノもちょっと溜めが足りない(あっさりしている)感じ。

の「『溜めが足りない』とか『あっさりしている』って何だろうかね」と。

他には、近頃良く使う「わざとらしい」もある。楽譜に書いてあるのかないのか(ない気がする。テヌートのようなのは書いてありそうだが、少し違う気もする)、音楽用語があるのかないのか(これはあると思う)、分からないし、あってもなくてもどっちでもいいが、そう思った理由を自分で分からないので(いや、分かっては居るが言葉にできないだけなんだと思う。更に言えば、この、「文字」として書く時に問題になっているだけで、自分の感情としては理路整然としていて、何も不明なことはない。当たり前だが)、この表現は果たして正しいのか、ちょっと不安、というか、疑問に思った。この「正しい」というのも難しい。おそらく、「みんなが使っている」という意味だろうか。でも、別に他の人が使ってなくたって気にしないから、全く不安ではない。が、他の人に全く伝わらなかったら困るから、そこが「不安」となる。

いずれにしても、おもしろいのは、「曲がいい」ことは感じることだ(もう何百回も聴いているから、当たり前のことだ)。だからこそ、「なんでそういう風に弾くかな」(あくまでも個人的な感想w)と思ってしまうのだ。

 

書いてから少し考えたら、

自分でしか読まないなら、他人に分かる表現である必要はない。

が、

あとで自分で読んで分かる表現で書かないと、意味がない。

のが難しいと思った。上記の「溜めが足りない」などはまだいいが、例えば、その時の気分を率直に書いて(すごく良かった時に)「!!!」とかじゃ余り意味がないし、かといって、自分しか読まないのに長々と書くのは面倒なので、そこはうまい方法(技術)があるといいと思う。例えば、"."を押すだけで、その時の気持ちが記録できるといい。

そういうのが、配信などでの「評価」(例: ★の数、Thumbs up/down)に繋がっているのかも知れない。それだけでは足りないが。

  •   0
  •   0

音楽再生履歴記録・検索システム(仮)を作りながら使っていると、いろいろなアイデアが浮かぶ。作ることや使っている時にバグが出て急いで直すwのには結構疲れているが、アイデアを出すのはおもしろい。そういうものの例を書く。

  • 検索条件のプリセットを登録できるようにする。
    • 固定のプリセットを何個か用意するのでなく、随時自分で登録できるようにする。: 今までは、どういうプリセットが要るか分からないから作るのをずっと先送りにしていたのだが、良く使う条件を登録できるようにすればいいことに気付いた。ただ、パラメータのあるもの(例: 「評価がN以上」)はどうするかとか、考え過ぎると進まないw
  • 曲・アルバム・アーティストの評価方法: 「ある曲(・アルバム・アーティスト)の好き/嫌い加減」をどうやって数値にするか。
    • 曲1: 評価※ × 平均完奏率: 好きなら最後まで聴くし、嫌いな曲は途中で飛ばすので。ちょっと試してみたら、そこそこ合ってそうな感じだった。
    • 曲2: 評価 × 平均完奏率 × 再生回数: 好きなら繰り返し聴くので、上よりいいのかも知れない。
      • → 両者を比較してみたら、今のところ、どちらも大差なかった。
    • アルバムやアーティスト: そのアルバムやアーティストの曲(演奏)で、評価が付いているもの(付いていないものは"0"にせず、除外する)の平均を取ると良さそうだ。それ以外に、最高・最低もおもしろそうだ。
      • ※評価の値は、最初はシンプルに「好き」(1)/「嫌い」(-1)だけにしようと思っていたのだが、DBの設計時に、いろいろ入れられるので「せっかくだから」±5にした(実際には整数なら何でも入る)。結果的には、自分でも「好きだけど『大好き』ではない」みたいな状態が表せて便利なことが分かったし、上のような使い方をするには数値が好都合だった。
  • 嫌いな曲の自動スキップ: Spotifyでリコメンドされて掛かってしまった嫌いな曲を手で飛ばすのが面倒なのだw
    • 評価を元に: Spotifyの「嫌い」を設定するのが面倒だし、付けられない場合もあるので、上記の評価値が悪い曲(演奏)やアーティストは自動で飛ばす(検出したら自動で「次の曲」にする)。ただし、場合によっては聴きたいこともあるから、猶予を持たせたい。でも、そのたびにダイアログを出すのも鬱陶しそうなので、いい手が要る。
    • ブラックリスト (アーティスト、曲、作曲家・・・): 新しいDBを作るのもいいし、曲ごとにそういうフィールド(例: "Hate", "Don't play")を作るのもいい。
    • 悪い評価を付けたら、その場で自動的にスキップする。: (今思い付いた) これは便利そうだ。今は、飛ばす前や後にこのシステムのwebで悪い評価を付けて、なおかつ、Spotifyで「嫌い」が付けられるなら付けるので、二度・三度手間になっている。
  • 音量正規化(再生ゲイン)の補正、タイトルなどの上書き(修正)
    • ミニプレーヤーに入れた、自作の音量正規化処理の結果がイマイチ(例: 音が大き過ぎる)な場合の対処のために、手で調整した音量の補正値を(DBに)記録できるようにして、その値がある時はそれで音量を補正する。
    • タイトルやアーティストや初出年も、自分で修正して(DBに)記録した内容を表示できると便利そうだ(Spotifyが間違っていることがあるので)。ただ、webとかミニプレーヤーにしか出せないので、本当に意味があるのかという気もする。
  • Spotifyからの評価の取り込み
    • Spotifyで「好き」/「嫌い」にした曲を取るAPIはないが、「好き」にした曲は「ライブラリ」(曲一覧が取れる)に自動的に入り、ラジオで好きにした曲はプレイリスト("Liked from radio")に入る。好きでもないのにライブラリに入れることはないので、ライブラリに入っていること= 「好き」として良さそうだ。
    • 随時「好き」を設定するので、この処理は自動で定期的に行わなくてはならないうえに、本システムで付けた評価とうまくマージしなくてはならないのが面倒だ。
  • gmusicbowser(配信でない曲のプレーヤー)との連携・統合
    • 曲の自動登録など、Spotify(のミニプレーヤー)でやりたいこと(今、外部プログラムでやっていること)は技術的には充分に可能だが、トラックID(演奏を一意に識別する記号)をどうするかという問題が大きい。(処理は重いけど)すべての曲の音響指紋を計算してISRCを検索して付けておくのが一番良さそうだが、ISRCのないもの(例: ライブの録音)もあるから、話は単純でない。などと考え過ぎると、やっぱり進まないw
      • → ちょっと試してみたら、AcoustID(音響指紋)とMusicBrainzのサービスを使えば、基本的にはISRCを取れることが分かったのだが、「スパっ」とは行かないことが分かった。AcoustIDが登録されていない演奏はあるし、ひとつのAcoustIDでMusicBrainzのIDが多数出て来るものもあり、更に、前に書いたように、ひとつのMusicBrainzのIDに複数のISRCが登録されていることがあって、容易にISRCを特定できないことが多いのだ(これでは、gmusicbowserで聴いた演奏とSpotifyの演奏がマッチしないことが多いだろう)。まさに「なんだかなぁ」だが、フリーのサービスだから仕方ない。そういう時は、こっちがcontributeしなくてはいけない(のが建前だ)。
  • Evernoteとの連携
    • 実現できそうな案はないが、このシステムに書いたコメントなどをEvernoteに(あるはその逆)転記しないで済むようにしたい。Evernote(Nixnote2)からこっちに飛べるリンク(URI)のようなものを作るといけそうではあるが・・・ → あ、webにならすぐにできるじゃん! → いや、そうじゃない。単純に飛ぶのでは何が書いてあるか分からないから、Evernoteにコメントを埋め込みたいのだ。

Spotifyのミニプレーヤーのプログラムが複雑なうえに、作ってから時間が経ってしまって中身を忘れているので、このシステムを組み込む(「ミニプレーヤーをこのシステムに対応させる」が正しい)のが億劫なのだが、自動スキップや音量正規化の補正は外部プログラムでもできそうなので、手軽に試せそうだ。

アイデアを考えてもすぐに試さずに考えて(「温めて」)いると、アイデアだけでなく実際の使い方も良く考えるので、いい方法(例: 簡単に実現できる)とか更にいいアイデアに繋がるのがおもしろい。すぐに作り出すのもおもしろいけど、無駄になることが結構多いのも興味深い。考えるうちに、「なんだ、これいらないじゃん」と、不要なことに気付く機能すらある(こういう時は手間が省けるので、「マジで」嬉しいw 結局、僕はプログラミング自体やパソコンだの計算機に張り付くのが好きではないのだろう。知らんけど。だって、そもそも画面を注視したりキーボードを叩くことが目的じゃないからね。僕にしてみれば、上に書いたことを「やって」と指示したらすぐにできるものがベストだ)。

そして、このシステムは、最初は「まだ聴いたことのない演奏を手軽にSpotifyで検索する」ために作ろうとしたのだったが、検索機能の充実はそっちのけで自動スキップのようなアイデアに夢中になっていたり、検索にしたって、「嫌いなアーティスト・演奏は出て来ないようにしたい」と思っている(いた)ところを見ると、僕がいかに「嫌いな曲は少しでも聴きたくない!」、わがままな奴かが分かったのも、おもしろいw

 

PS. そもそも、システムの名前をちゃんと決めなくてはと思っているのだが、なかなか付かない(ただ、何も呼び名がないと不便なので、自分では"Tih DB" (Tih= Track info. and history)や"Tih web"などと呼んでいる。: 名前からも分かるように、基本的にはSpotifyを中心としたシステムではない)。ここまで決まらないものは珍しい。それだけ、コンセプトが確定してない、やりたいことが多いってことだろうか。まあ、音楽は奥が深いからね。

PS2. 別の(まじめな?w)意味でのこのシステム作りでの大きな収穫は、DB(SQLite)とJavaScriptに抵抗がなくなったことだ。どちらも全く得意ではなく「ちょっと使える」程度だが、躊躇せず(「重い腰」を上げなくてもいいw)使えるようになった。DBは便利だとすら思って、他にもいろいろ使いたいほどだし、webはJavaScriptを使わないとできないことが多い(正確には、使わなくてもやればできるけど、ページ遷移が生じて鬱陶しくなるし、効率が悪くなってしまう)ので、仕方なく多用している。

PS3. 書こうと思っていたけど書けなかった、Spotifyの検索などのAPIがしょうもない件については別途書きたい。

(20:49 修正・加筆)

  •   0
  •   0

動作確認や修正や暇つぶしにSpotifyの再生履歴記録・検索システム(仮)のページを眺めていたら、なかなかおもしろいことがあった。単にテストのために思い付いて入れたのだと思うが、(ビートルズの)"Sgt. Pepper's"での検索結果を見ていたら、本物以外に数多くのカバーがあった。

それは当然だから驚きもしなかったし、ほとんどは「いかにも『カバーしてみました』」って感じで全然興味が湧かなかったのだが、数が多いのに感心して下まで見ていたら、2作、目をひくものがあった。一つはある意味恐ろしい問題作w、もう一つは感心するくらい良かった。こんなに幅広いとは、さすがビートルズだ。

まず、「問題作」は、大場久美子のカバー(シングル)、"Sgt. Pepper's Lonely Hearts Club Band"(1979?)である。そもそもこの人がこれを歌う意味や理由が不明だったが、「怖いもの見たさ」で聴いてみた。が、あえて書こう、

ひどい・・・ 下手過ぎる。

数秒ではなかったが、(記録によれば)1/3くらいで止めた。もちろん、評価を-5(最低)にした。なんでこれが発売されているのか謎なレベルだ。そういえば、これの入っていたベスト盤の曲目を見て、「あれ? 『狼なんて−』とか、ヒットがあったはずだが・・・」と思ったあとで誤解に気付いたのだが、大場久美子は「コメットさん」ではあったが、石野真子ではなかったのだ(もちろん、浅田美代子でもない)w 石野には大変失礼なことをした。

気を取り直して、次のAndy Timmonsという人のカバーアルバム(ビートルズのと同じ曲目+1)、"Andy Timmons Band Plays Sgt. Pepper"(2011)を聴いてみたらなかなか良かったので、通して聴いた。一つだけ残念な曲("Being for the Benefit of Mr. Kite")※はあったが、それ以外はどれも好意的に聴けて、全体的にはとても良かった。

※残念だった理由は、この曲は大好きな曲なので期待して聴いたら、最初は良かったのに途中から"I want you"になって だらだらしてしまったからだ。本人としてはそうしたかったのだろうが、この曲はきびきび・活発で簡潔なところがいいのに、どろどろしてしまうのはちょっと違うと思った。

そもそも、なぜこれにひかれたのかは分からないが、ジャケットの雰囲気で期待させられたのだと思う。良くあるカバー作は、オリジナルを下手に真似てとてもセンスが悪いのだが、これは全くそうでなく、ストイックに、演奏したいからしたというような雰囲気が出ているところがいい。

石野真子とAndy Timmonsが並ぶ、シュールな再生履歴

※↑ 投稿時に酔っていたのだろうか、「大場久美子」と書くべきところを「石野真子」と書いていた。本当に混同していた証拠だ。申し訳ないので、訂正せずに恥を隠さないことにする。 (5/28 20:04)

という訳で、このシステムの検索機能はまだまだ開発途上ではあるのだが、それでもいろいろ遊べることが分かって「ご満悦」であるw それ以外に、昨夜、やっぱりテストや好奇心で検索結果を見ていたら、今まで聴いたことがないラフマニノフのピアノ協奏曲第3番の演奏(Lukas Vondracekのエリザベートコンクールでの演奏, 2016)が見付かって、早くも本来の用途に役立ったから、改良すれば便利になりそうだ。※

※これを書くのに、その演奏が誰の何だったか調べようとしたのだが、履歴検索はまだ手軽にできなくて(SQLの一部を打ち込むので、気軽に日付で検索するなんてことはできない)ちょっと苦労したけど(日記やDBブラウザを見れば一発だが、意地で使ってみたw)、ちゃんと見付かった。

  •   1
  •   0

先日HMVの広告で見た、Viviane Chassot(ヴィヴィアンヌ・シャッソ)という人の新作がSpotifyに入っていた。今回は丁度発売日だ。見付けてから結構日が経ったので、曲が何だったか忘れていた(「ゴルトベルク」と思い込んでいた)のだが、モーツァルトのピアノ協奏曲 第27番などだった。

それだけでは全く変哲がなく、広告を見たって待ってまで聴く気にならなかったのだが、なんと、楽器がアコーディオンなのだ。もう、それを見た時から、怖いもの見たさでw出るのを待っていたのだ。

今は先日書いた、再生履歴を自動記録するプログラムのプロトタイプを作っていて、そのテストがてら、今朝から聴いている。

掛ける前は、「どうせ、例によって『がっかり』のパターンだろうな・・・」(「ゴルトベルク」のピアノ以外の演奏に多い)と、全然期待していなかった。そもそも僕はアコーディオンが好きではない(嫌いでもないが、オルガン系なので余り積極的に聴かない)。

が、掛けた途端に、「これはいい!」と思った。最初の曲はピアノ協奏曲 第11番で馴染みがないし、頭はオケだけだが、アコーディオンが出る前からいい予感がした。オケ(Camerata Bern)の音がすごく綺麗なのは確かだ。相手がアコーディオンだからといって手加減している感じがしないのがいい。

で、アコーディオンが始まったら、これがなかなかおもしろくていい。アコーディオンの、暖かい、ヨーロッパの街角で演奏されてそうな(見たことはないw)、ちょっととぼけた音がいい。ちっと聞いただけだとヘタウマだと思いそうだが、音が絶妙だからそう聞こえるだけで、実際にはすごい腕だ。

気に入ったので聴き続けて、今は最後の曲、第27番(→ ライブでの演奏(一部): アルバム(→ プロモ)はこれよりずっといい)の終わりの辺りで、完全に気に入った。アコーディオンも悪くない。強いて言えば、最初の頃は音が少し弱い感じがしたが、聴き続けたら慣れた。アコーディオンがいいのはもちろんだが、上にも書いたように、オケがすごくいい。そして、HMVの広告にも書いてあったが、アコーディオンの音は木管楽器とすごく相性がいい。聴くまでは全然想像していなかったが、そこがすごく気に入った。

そして、選曲がうまい。収録されている曲は第11, 15, 27番で、どれも暖かい感じの曲だからアコーディオンの音が合ったのだろう。だから、第20番などは全く無理な気がする(それでも聴いてみたいし、彼女ならうまくやりそうだ)。選曲をちゃんとするのは当たり前のことなのだが、身の程知らずとか、自分の得意なところを分かってない人も多い気がする(挑戦するのは意味あるが・・・)。

いやぁ、アコーディオンだからといって馬鹿にしてはいけない。あと、こういう演奏とか雰囲気だったら、まさに音楽祭に持って来いではないだろうか。一方、系統が近いとはいえ、オルガンだったらイマイチな気がする。理由はすぐには出て来ないが、そういう気がする。好みの問題は大きいだろう。

 

PS. 再生履歴の自動記録は、Spotifyのミニプレーヤーがかなり複雑になっていて、改造するのが面倒だったので、別にプログラムを動かすことにした。プロトタイプなので、多少効率が悪くてもいいと考えたのだ。そして、たまたま、ミニプレーヤーがSpotifyから取得した、再生中の曲情報がファイルに格納されるようになっているので、それを参照すれば概ねうまくいくことが分かった。昨日から作り出してどうにか動き出し、Spotifyで再生した曲の情報が自動的にDBに記録されるようになった。DBなので、SQLというコマンドのようなものを入れれば、自由な条件で履歴を抽出できる。下に例を示す。

自動記録したSpotifyの再生履歴を抽出した例 (評価が良くて、コメントがあるもの)

もちろん、実際に使う時はSQLを打ち込むなんて面倒なことはせず、webなどから簡単に条件を指定できるようにするつもりだ。

ちなみに、記録し出してから1日も経っていないのに、エントリ(曲・トラック)数が150近くになった。今のDBのデータ量は約65KBで、1曲辺り0.5KB未満と小さい。それでも、10万曲だと50MBくらいになるので心配はあるが、画像管理ソフト(XnViewMP)のDBは180MBにもなっていて、それでも起動や処理が遅いことがないから、大丈夫そうだ。

次は、Spotifyの検索と上述の再生履歴を統合するプログラムのプロトタイプを作りたい。Spotifyの検索結果を再生履歴の条件(例: 「1度も再生したことがない」、「評価が悪くない」)でフィルタリングするイメージだ。その後は、ミニプレーヤーに、「初めて再生する」とか「今までの評価がいい」とかいうマークを出せるようにしたい。夢はふくらんでおもしろいが、作るのは楽しいけど楽ではないw

PS2. 丁度、「いかにもアコーディオン」でがっかりするいい例があった。これも今日HMVで見付けたのだが、Nikola Djoricという人の「展覧会の絵」(2019)だ。これは、いかにも「アコーディオンだったら、まあ、こんなものだよね」的だ。。。 まさに、Chassotを聴く前に予想していて、外れたことだ。彼女がすご過ぎたようだ。そもそも、こちらは選曲が悪い。音が甘く・丸くて、曲に全然合ってない(僕の好みが大きいとは思うが)。 (19:20)

(19:31 加筆)

  •   0
  •   1

Spotifyで主にクラシックの演奏を選ぶ時に、以前聴いたかどうかと、聴いていた時はその時の感想や評価(例: 好き/嫌い)が出れば、二度手間にならなくていい※と思っているのだが、そういう機能はない(再生履歴は出るが、検索が楽ではない)。曲にコメントが記入できるといいのだが、無理だ。それで、少し前から、そういう仕組みを作りたくなって検討している。

※感想は聴くたびに変わる可能性があるが、少なくとも、「フォルテピアノ・古楽器だから駄目(「僕は嫌い」の意)」などという情報があれば「普通の演奏」だと思って掛けることがないから、二度手間にならないことは確実だし、それでフィルタリングできれば、選ぶ手間がかなり減る。こういう機能がマジで欲しいのだ。

主要な機能は以下だ。

  1. Spotifyで新しい(= 過去に再生したことがない)曲を再生したら、その曲の情報と再生日時を記録する。 → 「再生履歴」
  2. 曲の再生中または後に、その曲の再生履歴にコメント(感想)を記録できる。「嫌い」という情報(マーク)も記録できる。
  3. Spotifyで曲を検索し、結果に出た曲に再生履歴があれば、過去の再生日や評価やコメントなどを一緒に表示する。再生ボタンやリンクをクリックすると、Spotifyアプリで再生できる。

実現方法を考えたところ、1は自作のミニプレーヤー(minisp)を改造すればできそうだ。2は再生履歴の管理プログラムを作ることになる。3は、Spotifyの検索プログラムを作る必要がある。基本的には、web版Spotifyのようなイメージだ。そこに再生履歴の情報も合わせて表示する。SpotifyのAPIは公開されているので、面倒ではあるが、作るのは不可能ではない。

更に検討したところ、再生履歴の管理プログラムの再生履歴のデータをどのように格納・管理するかが問題になった。かなり多くの曲を再生し、それらが全部登録されるから、CSVのような普通のファイルでは処理が遅くなったり壊れたりして破綻しそうだ。

最初は、曲ごとに別々のファイルに再生履歴を格納することを考えたのだが、考えているうちに問題(この方式では一つのキー(= ファイル名)でしか高速な検索ができない)に気付いたり、(仕事でもないのに)いちから全部(例: ファイルフォーマット、作成・処理・管理)自分で作るのは馬鹿らしい気がして来た。それで、まずは近い用途の既存のプログラム(音楽などの管理プログラム)を使って手を抜くことを考えた。重要なことは、外部から(GUIでなくコマンドラインで)データの追加・変更ができることと、カスタムフィールドが追加できることだ。

以下に検討した候補の概要と結果を示す。

  • 音楽管理ソフト
    • × gmusicbrowser: 音楽プレーヤー
      • 現在、音楽ファイルの管理と再生に使っており、カスタマイズ(改造)もしている。
      • 曲情報を格納するファイルが一つ(CSVのようなもの)なので、曲数が多くなると破綻する。
      • 将来性が疑問(開発・サポートが終わっている)。
      • Perlで書かれているので改造や保守が大変。
    • Beets: 音楽管理ソフト
      • 試用の結果、使用可能なことが分かった。ただし、若干の細工(ダミーファイルをインポートするなど)が要る。
      • GUIはなく、コマンドラインのみ(webは貧弱)。
      • 拡張性が高い。
      • まだ完成していない感じ。
      • Pythonで書かれているので(以下略)。
  • 汎用コレクション・ライブラリ管理ソフト
    • × GCstar: 汎用コレクション管理ソフト
      • Perlのバージョンの問題か、うまく動作しなかったので却下した。
    • × Data Crow: 汎用メディア管理ソフト
      • コマンドラインでの実行はできなさそうなので却下した。
      • Javaで書かれている。。。
    • × BiblioteQ: 汎用ライブラリ管理ソフト
      • Linux用パッケージが壊れているので却下した。
      • ドキュメントが貧弱。
      • コマンドラインはなさそう。
    • × Tellico: 汎用コレクション管理ソフト
      • コマンドラインでは書籍しか登録できないので却下した。
  • その他
    • × tinyMediaManager: 映画の管理ソフト
      • 既に動画ファイル・DVDなどの管理に使っている。
      • ほぼ動画専用(映画の管理に特化した機能が多い)
      • この用途には若干の細工(ダミーファイルをインポートするなど)が要る。
      • コマンドラインは不明。
      • エントリ追加後の再スキャンが面倒。
    • calibre: 電子書籍管理ソフト
      • 既に電子書籍の管理に使っている。
      • コマンドラインでの操作が可能。
      • 試用の結果、使用可能なことが分かった。
        • ただし、音楽を書籍として扱うのは無理があるのと、ちょっとした問題(GUIが起動していないと、コマンドラインでの登録時に無駄な待ちが生じて遅い)がある。

試行錯誤して、Beetsとcalibreで再生履歴の管理ができそうなことが確認できたのだが、結局、実質的にはそれらの主たる機能でなく、DBの機能を(うまく誤魔化しながら)使っていることに気付いた。DB以外にGUIが使いやすければ便利だが、calibreは音楽は目的外なので最適化できず、BeetsにはGUIはない。

calibreを用いた音楽再生履歴の管理(プロトタイプ)

そこで、だましだまし他用途のアプリを使うのでなく、直接、DBと管理ソフトを使うことを考えた。ただ、(特にコマンドラインで)DBを直接操作するのは面倒な(そんなことが目的じゃないので、やってられない)ので、「ぱぱっ」と使えるものを探した。それほど詳しく調べていないのだが、多くは基本的にはSQLを自分で打ち込んで操作するもの(詳しい人用?)のようだったが、DB Browser for SQLite(以下、DB Browser)だけは簡単に使えそうな感じだったので、試してみた。

すると、確かにすごく簡単にDBを作成・操作できて、すぐに試用・評価が始められた。これはすごく推奨できる(対象者はとても限られるがw)。DBはSQLiteなので、当然、(GUIでなく)コマンドラインでの操作も可能だ。SQLiteはDBのファイルが単一なのが気になるが、DB用に処理を最適化しているはずだから、曲数が多くなっても破綻しないことが期待できる(実際に使用例は多い)。

DB Browser for SQLiteを用いた音楽再生履歴の管理(プロトタイプ)

ただ、calibreのGUIの手軽さは捨て難かった。しかし、この用途では、できればアルバム中の曲をまとめて扱いたい。例えば、感想を曲ごとだけでなく、アルバム全体にも付けられるようにしたい※。それはcalibreではどうしても無理だった(複数の本に共通するコメントが付けられないため)。逆に、DBを使えばできそうな気がした。

※これは、クラシック音楽の楽章(= 各トラック= 上記の「曲」)ごとでなく、曲(全部の楽章)全体に対して感想を書きたいからなのだが、良く考えると、アルバムには複数の曲が入っていることが多いから、アルバム全体に感想を付けるのも最適ではなく、任意の曲をまとめて扱える方がいいようだ。管理や操作が煩雑になりそうだが、DBを使うのであれば、アルバム全体の感想と同様に実現できる。ただ、そこまで凝らなくてもいい気もする。

実際に試してみたら、ちょっと苦労したもののできた。DBの「テーブル」というものを2つ作り、片方には曲(トラック)の、もう片方にはアルバムの情報を格納し、双方を結びつける情報(例: 「アルバムID」)を両方のテーブルに格納しておき、SQLでそれらを統合すればいい。図示するのが難しいが、統合の例として、トラック情報のテーブルアルバム情報のテーブルの中で同じアルバムIDを持つものを同じアルバムとし、同じアルバム中の各曲にアルバムのコメントを追加し、主要な情報だけを出力した場合を以下に示す。

両方のテーブルにアルバムID(図中の"album_id")を格納し、それを用いて同じアルバム中の曲を抽出できる※。アルバムID以外に双方で重複する情報は格納されていない。

※書いていて気付いたのだが、このデータ構造は、ある曲(トラック)が複数のアルバムに含まれることを想定していないので、もう少し検討が要りそうだ。やっぱり、アルバム単位での処理をしないほうが現実的なのかも知れない。

この処理のためのSQLは以下のようになった。

select t.title, a.album_artist, a.album_title, t.disc, t.track,
t.rating, a.album_comment, t.comment
from album a, trk_info_hist t
where t.album_id = a.album_id
order by t.album_id, a.album_title, disc, track;

DB BrowserのGUIは、機能は充分だが見た目や使い勝手は「まあまあ」で、calibreには劣る。が、この画面を使うのは管理とか保守の場合だけ(Spotifyの曲の検索画面は別途作る必要がある)と思われるから、これでいいのかも知れない。ただ、上に書いたように、実際にはアルバム全体のコメントは最適でないとか不要な気もして来たので、もう少し考えてみたい。

→ 考えたところ、以下のようにすれば良さそうだ。

  • 「演奏」ごとに「演奏ID」を割り当てる。
    • 演奏IDは同じ演奏なら同じ値にする。
      • 「同じ演奏」とは、例えばクラシック音楽なら一曲(全部の楽章)である。ポップ音楽の場合は曲ごとに別々にしたり、アルバム全体で一つにすることが考えられる。
  • 演奏IDの値は演奏ごとにユニーク(異なる)であれば何でも良い。
    • 例えば、一組の演奏を構成する曲(トラック)の最初の曲IDとする。
      • 今は、曲IDにはISRCを使おうとしている。
  • トラック情報テーブルで、曲ごとに演奏IDを格納する。
  • 演奏全体に対する感想などは、例えば、以下のいずれかのように格納する。
    • その演奏の最初のトラックに格納することにし、データ抽出時あるいは使用時に、それを演奏全体に対するものとして扱うようにする。: この場合、最初のトラックへの感想と全体への感想の区別ができない。
    • 「演奏テーブル」を作り、そこに演奏全体に対する感想などを格納するようにする。

上記の「演奏テーブル」を作らない場合のようにすればアルバム(または演奏)ごとの管理が不要にできるので、トラック情報テーブルだけで良くなる(「演奏テーブル」を作れば、より「正しく」かつデータ量の点で効率的になるが、管理が煩雑になる)。

なお、効率の点ではDB Browser(とsqlite3コマンド)を使うのが一番良かった。速度もデータサイズも最短・最小だった。ちなみに、calibreもBeetsも、内部ではSQLiteを使用している。calibreはデータサイズが大きく、速度も遅い。

DB BrowserでcalibreのDBを見てみたら、やたらにテーブルが多くて無駄に複雑な気がした。それでデータサイズが大きくなっているようだ。その点ではDB Browserを使うのがいい感じだ。ただ、calibreにもいい点はある(例: 機能が豊富: とはいえ、それが今回の用途には余り有効でない)ので、判断が難しい。

さらっと書いて来たが、題で触れたように、僕はDB(RDB= リレーショナルDB)やSQLが大嫌い・大の苦手で、ずっと避けて来た。というのは、RDBはセンスが悪い(≒ クソ)※と思うことと、SQLの構文がクソ(昔は全部大文字だったし、いつも、「"select"とか"where"とか何なんだ!」って思う)だからだ。仕事で必要な場合は仕方なく使ったが、自分から使おうと思ったことはない。しかし、さすがにDBが必要な・適する用途が出て来たので、使う羽目になりそうだ。

※大昔、RDBは表形式(Excelみたいな感じ)でデータを格納(正確には関連付ける?)することを最初に知った時、どうもおかしい(「は? そんなんでいいの? それが"DB"??」、「古臭い!」)し、分かりにくいと思った。一方、(近頃流行りらしいNoSQL DBの一つの)Key-Value型(あるいは連想配列)のデータ格納方式は分かりやすいから大好きで、昔から愛用していた(自分でも、何度も簡単な仕組みを作った)。だから、今だったらNoSQLなら馴染み易いのかも知れない(でも、実際に調べると訳の分からないことが多そうだ)w

更に全くの余談を書くと、その「大昔」に、いくつかの選択肢があった(確か、他はWordとExcelだったか・・・)中でRDB(製品名は全く分からない: dBase3?)を選ばなかったら、上記のような ほんの基礎的な知識すらなかったので、その時に「今までやったことがないから」選んだのは正解だったと言える。

それから、そもそも、これからSpotifyで新規の曲(演奏)をどのくらい再生するのかも気になっている。もうそれほど多くの新規の曲(演奏)がSpotifyに入らない・再生しないのであれば、手間を掛けて作る価値は少ない。ただ、Spotify用以外にも、自分の感想の記録にはなるから、その点では価値はありそうだ(その時には過去の記録を引っ張り出して転記する作業が必要で、それはそれで大変だし、自動化などできないw)。

  •   0
  •   0