研究概要

本研究について

楽曲の進行とメロディーの構成にも大きな影響を与える「コード」に着目し,これを分析・可視化することで,楽曲検索・楽曲推薦が可能となるシステム「chord-vis」を構築しました.

そもそもコードとは何か

コード=和音のことで,3音以上の違う高さの音の重なりのことでメロディーに影響を与えます.音が5音以上重なると不協和音的な響きを持つ「テンションコード」という特殊なコードになり,楽曲のジャンルに影響を与えます.

コードを分析するとわかること

同じコード進行が使われている楽曲はメロディが似やすく,同じテンションが使われている楽曲はジャンルが近いと言われていることから,コード進行を調べると曲の類似性がわかると言えます.

本システムの特徴

ユーザーはコード進行が類似した楽曲群などから,自分の好みの楽曲を簡単に見つけることができます. さらに,コード情報を分析した結果から,楽曲に関する新たな知見を得ることができます.

研究の流れ

「コード譜の取得,コード進行の解析,可視化用ファイルの生成,楽曲検索・楽曲推薦システムの構築」の4つの処理手順を踏んでいます.

①コード譜の取得

インターネット上のコード譜公開サイトから,楽曲名・アーティスト名・作曲者に関するデータとコード進行 の文字列データから,楽曲の「コード譜」と「楽曲名・アーティスト・作曲者」を抽出します. インターネット上にコード譜公開サイトは複数ありましたが,本研究では最多の9万曲を提供している「U-FRET」の HTMLファイルからデータを取得しました.

②コード進行の解析

調性に依存せずにコード進行を比較できるように,全ての楽曲の調性をCメジャースケールに移調し,各楽曲のコード進行を1節ごとに区切り,計13種類の代表的な定型コード進行とのレーベンシュタイン距離を求め,定型コード進行の使用割合を各楽曲で算出します.

③可視化用ファイルの生成

楽曲間のコード進行の類似度を散布図で表示し,各楽曲ごとのコード進行出現割合・テンションコード使用頻度をそれぞれ帯グラフ・棒グラフで表示するための可視化用ファイルを生成します.散布図上の二次元座標は多次元尺度構成法(MDS:Multi-Dimensional-Scaling)で算出し,以上のデータを,グラフ・チャートを描画できるライブラリ「chart.js」を用いて可視化します.

【備考】 類似度はユークリッド距離で算出. ジャケ写はiTunesApiを叩いて取得していますが,楽曲名が同じ場合に別の楽曲を表示してしまうことがあります.

④楽曲検索・楽曲推薦システムの構築

JavaScript フレームワーク「Next.js」を用いて楽曲検索・楽曲推薦システムを構築します.システムは主に,全楽曲の類似度を可視化したトップページと,特定の楽曲名・アーティスト・作曲者に関する詳しい分析結果を表示する詳細ページで構成されています.