『haircuts for men』について(その3)~ミックス音源の曲を特定する(python-dejavu - Acoustic fingerprint)~
過去の関連記事
『haircuts for men』について
『haircuts for men』について(その2)
『haircuts for men』が全ての音源を開放
ハワイはホノルル出身のアーティスト、『haircuts for men』の全作品がまとめて販売されました。0.5ドルからという太っ腹です(※2021/02/16 もう購入できなくなりました…)。
私は自分が気に入った彼の作品はこれまでも一枚ずつちまちま買っていたのですが、もちろん購入しました。『MIDI JAMS』シリーズとか、イマイチ好きになれない作品も購入できたのでファンとしてこの際良かったです。
ミックス音源について
ところで、彼の作品にはミックス音源もいくつかあります。リリース量も膨大ですから、自分が作った曲だけでミックスを作って販売してしまいます。私も友人がイベントでDJするのを聴いたりして「やりたいな~」って思った時期もありましたが、「どうせなら自分が作った曲をこっそり混ぜたりしたいなー」とも思っていました。彼はトラックメイカーとしてはある種のゴールに到達している気がします。
しかし、このミックス、彼自身のBandcampのコメントでは、「未発表曲もあるよ」と書いてはいますが、私が2019年から聴き始めた新参者なこともあり、どれが未発表曲なのかイマイチわかりません。聴いていて、「あ、聴いたことあるな」と思っても、曲名がそもそも奇怪で覚えられないので、どの音源に入ってたアレだなとか、自分の中で一致させることが出来ず、モヤモヤしていたのでした(狙っているのかもしれませんけど)。
Winampの思い出(Gracenote)+Shazam、SoundHoundなどの音楽認識系ソフトウェアについて
その昔(今もあるか)、『Winamp』という音楽再生用のソフトウェアがありまして、このソフトには、音楽ファイルにアーティスト名やリリース年などのタグ情報をインターネットから取得して自動で入力するという機能がありました。Windows標準の『Windows Media Player』でCDをリッピングすると、”トラック 01.wma”といったファイルや、全角英字のファイルがエクスプローラー上に並んで不愉快でしたが、『Winamp』では割とマニアックなものにも、一貫性のあるタグがズバズバと入っていくのを見て大変感動したことを覚えています。余談ですが、『Winamp』はスキン(当時はダサいと思ったけど今見ると味がありますね)やプラグインも豊富で、歌詞ファイルを作って再生時間に合わせて表示させたり、『Last.fm』と連携したら再生したアーティストからレスポンスがあったり、『ASIO4ALL』を使った明瞭な出音に感動したり、Visualizations(スクリーンセーバーのようなもの)が結構イケてたり…私のインターネット+音楽体験として、大変思い出深いものです。
このタグ検索機能は『Gracenote』が提供する機能であり、『Winamp』においては2000年代中頃までは使えた記憶があります。その後スマホも普及し、iPhoneのアプリでは、『Shazam』や『SoundHound』などが登場し、皆さんもテレビにスマホをかざしたりしたんじゃないでしょうか。
長くなりましたが、このような機能を用いて『haircuts for men』のミックスに含まれる音楽を特定できないか、と考えました。しかし、Vaporwaveのアーティストである『haircuts for men』の曲が『Shazam』で判定できるとはとても思えません。そこで、自分で曲を登録できるような仕組みがあれば、上記のとおり彼の楽曲は全曲購入済みなので、既存の曲と未発表の曲を見分けられると考えました。以前と違いpythonを勉強しているので、フリーソフトではなく、使えそうなライブラリがないか調べたところ、『dejavu』というものを見つけました。
dejavu
あまり日本語で解説している記事等も見当たらなかったので、すこし説明しておきます。『Acoustic fingerprint』と呼ばれるようですが、音楽ファイルをスペクトログラムとして描画し、さらに画像処理技術を用い検出した複数の”ピーク”の位置情報を、その曲に特有の”指紋”として(『Shazam』のホワイトペーパーには”星座”と書いているそうです)、音楽ファイルに紐づけて保存し、検索するという方法のようです。
出展:https://willdrevo.com/fingerprinting-and-audio-recognition-with-python/
割と力業だなーと思いましたが、前述の『Shazam』は数千万ドルを調達していますし、夢のある話ですね。githubの使用方法を読むと、dockerを使う方法が簡単そうなので試しました。結構勉強になりました。
テスト実行
使い物にならないと悲しいので、本格的に使用する前にテスト実行をします。最近のリリースに『Latin All-Star Mix』というのがありますが、これはカバー画像に曲名が書かれています。
Latin All-Star Mix:2021年1月31日リリース
相変わらずセンスのいいアートワークです。ちなみにこれは、2021年1月29日に開催された、『▓▒░DΣΣSOLVTION░▒▓』などのラテン系?のVaporwaveアーティストが一堂に会した『LATIN ALL-STARS』というイベントで使用されたセットのようです。『Vapor Memory』というYouTubeチャンネルで開催されていたようですが知りませんでした。当日のセットについてはYouTube等で聴くこともできるようです。
LATIN ALL-STARSの告知:『SPECIAL GUESTS』に彼の名前があります
下準備として、ミックスを曲の切れ目で分割します。Cubase AIで手作業しました。AIでは『マルチチャンネル書き出し』ができないので面倒です。
カバー画像には9曲書かれていましたが、8曲に分かれました。実際には『04.から』が効果音的な使われ方をしていたので気付かなかったからです(このような場合は機械にやらせても無理だと思います)。分割した曲は一部で良いので、先頭から1分程度、Latinmix01.mp3~Latinmix08.mp3として書き出しました。
続きまして、曲の”指紋”を登録します。Issuesにも報告されていますが、めちゃくちゃ時間がかかりました。DBへの書き込みの問題だと思い、ちょっと調べたのですが改善できませんでした。時間はかかりますが登録はできます。Bandcamp上のリリースなど362曲を登録しましたが、寝ている間にやった方がいいと思います。DBへの書き込みが進んでいるか心配な場合は、DBにアクセスしてデータが増えているか確認するといいと思います。
コードを実行します。
このようにいろいろと出力されますが、'results'に結果が出ています。Latinmix01.mp3~Latinmix08.mp3の結果は以下の通りです。
nothing special, nothing wonderful - 02 my wife is on tinder
テンペスト地域 (COLLECTED EDITION) - 14 scent of regret
You Can Trust Me - 03 咳血
technicolor interlude - 03 6522227 (interlude)
違法 COLLECTION - 117 あなたの人生は、空のシェルです
010429 v1 - 01 0000271
私は家を取りました - 02 私はするつもりはなかったです
ethelreda malte - 11 0059874
素晴らしい!完全に一致しています。
本番実行
問題なく使用できることがわかったので、他のミックス音源も分割し、認識させていきます。
Corona Mix 2020:2020年4月26日リリース(※結構雑な印象)
SIDE A
テンペスト地域 (COLLECTED EDITION) - 05 middle decimal
テンペスト地域 (COLLECTED EDITION) - 12 heart races
1985 - 08 i can't think alone
EARLY TAPE WORKS (1993 - 1995) VOL.4 - 08 無題 8
テンペスト地域 (COLLECTED EDITION) - 07 hexa prismal
テンペスト地域 (COLLECTED EDITION) - 07 hexa prismal
nothing special, nothing wonderful - 03 jerking off to heavens gate
EARLY TAPE WORKS (1981 - 1984) VOL.1 - 08 無題 1
テンペスト地域 (COLLECTED EDITION) - 02 youtube takedown notice
EARLY TAPE WORKS (1985 - 1987) VOL.2 - 01 hover for love
EARLY TAPE WORKS (1981 - 1984) VOL.1 - 03 trubadour
19-83 - 05 Civil War
SIDE B
19-83 - 01 I Want My
19-83 - 07 Peter Reyn-Bardt
EARLY TAPE WORKS (1988 - 1992) VOL.3 - 02 terminal
EARLY TAPE WORKS (1988 - 1992) VOL.3 - 01 red liquid
1985 - 04 9 o'clock, schools shot
テンペスト地域 (COLLECTED EDITION) - 06 crouching through pain
違法 COLLECTION - 93 あなたの双子で酸をドロップ
nothing special, nothing wonderful - 02 my wife is on tinder
1985 - 05 - 酸っぱいブドウ
19-83 - 12 Brinks Mat robbery
結果が出力されたら、実際に音源を聴いて確認します。『SIDE A』に『hexa prismal』が2曲あるのは明らかにおかしいですが、実際に聴くと全く別物であることが分かりました(確かに5曲目は『hexa prismal』とよく似ています)。つまり5、6曲目が未発表音源ということが分かりました。『SIDE B』の2曲目、7曲目も、『Peter Reyn-Bardt』、『あなたの双子で酸をドロップ』とは全く違う曲でした。同様に2、7曲目が未発表音源であるということが分かりました。これは現時点での話であり、『1985』の方がリリースが後ですから、『1985』に含まれる曲はこのミックスが出た当初は未発表音源でした。
There Are Places You'll Never Be (2017 Year End Mix):2017年12月19日リリース(※おすすめです)
SIDE A
010429 v1 - 16 099655
19-83 - 05 Civil War
19-83 - 08 Wah Mee massacre
010429 v1 - 01 0000271
19-83 - 06 Strategic Defense Initiative
010429 v1 - 05 0111563
19-83 - 04 U.S Embassy bombing
テンペスト地域 (COLLECTED EDITION) - 07 hexa prismal
私は家を取りました - 02 私はするつもりはなかったです
私は家を取りました - 04 あなたが悲鳴を上げることができます
19-83 - 01 I Want My
テンペスト地域 (COLLECTED EDITION) - 01 menswear, isle 9
010429 v1 - 07 0115865
010429 v1 - 05 0111563
19-83 - 02 Hurricane Alicia
You Can Trust Me - 03 咳血
SIDE B
ダウンタンブルと死にます - 01 空き家
1985 - 02 heatwave, burning city
19-83 - 10 Giovanni Vigliotto
19-83 - 12 Brinks Mat robbery
010429 v1 - 02 0000584
これ以上の嘘 - 02 それだけではない私でした
010429 v1 - 04 0100415
違法 COLLECTION - 111 豊平区民toyohirakumin - 窓の外 (hfm 青銅の混乱 mix)
19-83 - 11 The co-culture model
19-83 - 09 Lotus 1-2-3
010429 v1 - 14 0753286
これも実際に聴いて答え合わせをします。太字の曲が未発表音源だと思われます。『19-83』からの曲が多いですが、2017年当時はほとんど未発表音源だったと思われます。
Mello Mix:2019年1月31日リリース(※これは『Nuages Records』からのセレクトだと本人も言っているので判定できない思われます)
違法 COLLECTION - 36 ヘイズバズ
EARLY TAPE WORKS (1988 - 1992) VOL.3 - 01 red liquid
下からの光を食べます - 05 数秒のためのオーシャンビュー
テンペスト地域 (COLLECTED EDITION) - 05 middle decima
010429 v1 - 06 0111589
違法 COLLECTION - 95 サブゲート
19-83 - 07 Peter Reyn-Bardt
когда зло господствует - 06 смотреть звезд ы
1989 - 09 patrick edward purdy
EARLY TAPE WORKS (1988 - 1992) VOL.3 - 02 terminal
EARLY TAPE WORKS (1988 - 1992) VOL.3 - 10 waking terror
共振 ep - 06 そのエコーおよびそれらの金切り声
全体的に彼の曲らしさもありますが、すべて違っていました。
満足のいく結果が得られたと思っています。
先駆者
ここまでやっておいてふとYouTubeを見ると、コメント欄に既に答えが投稿されていました。『haircuts for men』の人気の高さが伺えます。
『Corona Mix 2020』
『There Are Places You'll Never Be (2017 Year End Mix)』
しかもcelbuod氏は『Corona Mix 2020』の『SIDE B』の2曲目を『あなたは見たことが有りますか KIDS Pt 01』と特定しています。これには完敗です。SoundCloudに上げられた音源のようでした。
YouTube自体もかなり凄く、『haircuts for men』の音源がアップロードされると元ネタが次々と暴かれています。以下は明らかに『my wife is on tinder』の元ネタです(そのまんまですね)。ピッチの違いがあっても認識してしまうのはすごいです。微妙にピッチを下げたJPOPなどが丸上げされていることもYouTubeではよくあるので、著作権保護の技術的に必要な事なんでしょうね。
(もしかして『haircuts for men』は、Beatportにある曲や、誰も手に取らないようなコンピレーション・アルバムの再生速度を遅くし、カッコいいアートワークと意味深なタイトルを付けて配布するプロジェクトだった?)
本人お気に入りの曲
ミックスには本人が気に入っている曲を入れているそうなので、何度も使われている曲はおそらく彼のお気に入りでしょう。
nothing special, nothing wonderful - 02 my wife is on tinder
You Can Trust Me - 03 咳血
010429 v1 - 01 0000271
私は家を取りました - 02 私はするつもりはなかったです
19-83 - 01 I Want My
19-83 - 12 Brinks Mat robbery
まとめ
『dejavu』を使用した『Acoustic fingerprint』技術により、『haircuts for men』のミックス音源中の曲を特定することが出来ました。結果はRedditなどに張り付けてやろうと思っていたのですが、YouTubeに既に先駆者がいるようで残念です。しかし、dockerを触ることが出来たのでヨシとします。