マッシュアップ曲を聞いてビックリしたので、音楽のコードを分析してみた / Examined the Similarity of Two Tunes by Analyzing their Chords

E9bfb4b63d4b9d328917d19b33d30bc5?s=47 Linus_MK
February 23, 2019

マッシュアップ曲を聞いてビックリしたので、音楽のコードを分析してみた / Examined the Similarity of Two Tunes by Analyzing their Chords

2019年2月23日
「music.dev [ITエンジニア向け音楽勉強会] #1」にて発表
https://creofuga.connpass.com/event/113602/
解説ブログ記事を執筆中です。少々お待ちください。

E9bfb4b63d4b9d328917d19b33d30bc5?s=128

Linus_MK

February 23, 2019
Tweet

Transcript

  1. マッシュアップ曲を聞いてビックリしたので、 音楽のコードを分析してみた @Linus_MK 2019年2月23日

  2. 自己紹介 • ライナス(@Linus_MK) • SIerにて、音声通信系のソフトウェア開発(C/C++) • 趣味でPython/機械学習を勉強中 • ブログ:子供の落書き帳 Renaissance

    https://linus-mk.hatenablog.com/
  3. 今日は何について話すのか? 音楽の和音(コード)の類似性を分析する話

  4. きっかけ (音楽分野での)マッシュアップ: 複数の楽曲を編集して複合し、1つの曲にする手法(ニコニコ大百科より) ある日ニコニコ動画を見ていて、あるマッシュアップ動画を見つけた 【マッシュアップ】ぼくらはみんな意味不明×妄想感傷代償連盟

  5. きっかけ 「元になった2曲を何度も聴いたことあるけど、 この2曲がきれいに合うわけ無いやろ」 曲がちゃんと合ってる!?一体何でだ!? ……というわけで、 2つの曲が何で合ってるのかを分析してみたくなった

  6. 2つの曲をマッシュアップしたときに合って聞こえる 「2つの曲が合っている」とは 主観的で曖昧……

  7. 2つの曲をマッシュアップしたときに合って聞こえる 「2つの曲が合っている」とは 主観的で曖昧…… 曲Aのメロディ 曲Bのメロディ 曲Aのメロディ 曲Aの伴奏 曲Bの伴奏 曲Bの伴奏 +

    → マッシュアップの構造 つまり「曲Aと曲Bの伴奏を入れ替え可能」なら良い →和音が似ていれば入れ替えても適合するだろうという仮説
  8. 2つの曲をマッシュアップしたときに合って聞こえる 2つの曲の和音(コード)が似ている 「2つの曲が合っている」とは 主観的で曖昧…… 曲から和音を抽出・比較すればよい →どうやれば抽出できる?

  9. 楽曲から和音を抽出する方法 • iOSのアプリ で和音を分析して抽出してくれるものがある iOSがないので断念 • プログラムの音楽系ライブラリ Pythonだとlibrosaが有名だが、実施例が見つからず断念 • Web

    API SongleというAPIが使えそう(次ページで詳述)
  10. Songleによる自動分析例

  11. Songleによる自動分析例 サビ/繰り返し区間 拍(ビート) 和音(コード) 音程 youtube/ニコ動の音楽が対象

  12. 楽曲から和音を抽出する方法 Web上から確認する他に APIを叩いて自動分析結果を取得できる (JSON / XML)

  13. 楽曲から和音を抽出する方法 ぼくらはみんな意味不明×妄想感傷代償連盟 の元になった2曲の和音を取得し、 • サビの区間を抽出 • 欠損値補完(自動分析に失敗した箇所を入力) • 転調を反映 •

    時間軸×音程(ピッチ) でグラフ化(クロマグラム)
  14. 2曲のサビ部分を比較

  15. 2つの曲の和音(コード)が似ている とは? 和音のうち2音が共通していれば似ているという仮説 C = ドミソ Em = ミソシ (和声理論の代理和音を参考にした)

  16. 2つの曲をマッシュアップしたときに合って聞こえる 2つの曲の和音(コード)が似ている 2つの曲の和音(コード)の構成音が2個以上共通している 「2つの曲が合っている」とは

  17. 2曲のサビ部分を比較 和音(コード)の構成音が2個以上共通している区間を塗りつぶし コードが似ていると言えそう

  18. まとめ 2つの楽曲について和音(コード)を抽出し、 音程を比較して類似性を調べた結果、 和音が似ていることが分かった ソースコード:GitHub Linus-MK/audio_chord_analysis ブログ記事:後日公開予定