【検証】最近の曲が短くてテンポが速いなら曲に含まれている情報量は昔と変わってない説
1. 導入
こんにちは、こめぬかです。
さて皆さん、SNSにおいて定期的に話題になる音楽に関連した事柄といえばなんでしょうか?
あなたがどのようなTLを構築してきたかによって流れてくる内容は異なるでしょうが、多くのユーザーが目にするものとしては①「最近の曲は短い」とか、②「最近の曲はテンポが速い」、あるいは③「最近の若者はソロを聞かない」などが挙げられるでしょう。
大抵の場合、それらはあまり好ましくない変化であるという前提のもと議論され、spotifyなどのストリーミングサービスやタイパ重視の価値観が槍玉にあげられます。そして話が進むにつれて、Xの日常である世代間/思想間論争の様相を呈していくわけです。それぞれの主張の妥当性なぞ私としては知ったこっちゃありませんが、事の発端となる意見は興味深いです。特に①と②を両方正しいと仮定すると、一つの疑問が浮かび上がってきます。
最近の曲が「短く」て、「テンポが速い」なら、曲に含まれている情報量は総合的に見て変わっていないのではないかと。
後ほどしっかり定義しますが、ここでの「曲に含まれている情報量」はその曲の歌詞の長さ、合計拍数、楽器の手数など、曲の全体を測ることができる何らかの定量的な値のことだと理解していただければ問題ありません。つまり、この仮説が正しければ、今と昔の曲を比べると一曲当たりの情報量が同じ分、今の曲の方が情報の密度が高いということになります。
2. 手法
謝辞(勝手に)
今回の仮説を検証するにあたって、楽曲のメタデータの収集には先行の類似事例であるぷらぐら氏のこちらの動画、「ChatGPTの力で最近の音楽が本当に短くなっているのか検証してみた」を参考にさせていただき、SpotifyのAPIとそれに対応したpythonのモジュール、spotipyを使用しました。
また、pythonのコードを書く上でchat-gptの力も大変助けになりました。ゼロショットで問題なく動作するプログラムを生成してくれるのでかなり便利でした。
手順
さて、具体的な手順の説明です。上述の通り、楽曲のデータはpythonのspotipyモジュールで取得しました。spotipyを用いると様々なメタデータを利用できますが、今回は
Track Name(曲名)
Artist Name(アーティスト名)
Duration(曲の長さ)
Tempo(曲の速さ/テンポ/BPM)
の4項目に限って収集しました。本当は歌詞も収集しておきたかったのですが、生憎spotify APIからは提供されていないので含まれていません。(今後時間があれば多分やります。)
流行した音楽の傾向を掴むためには異なる年代の曲を比較する必要があります。そのため今回はspotifyでユーザーが作成した各年代(今回は80s, 90s, 00s, 10s, 20s)を代表する音楽をまとめたプレイリストをサンプル元として利用しました。なるべくお気に入り数が多いプレイリストを選択して最大数が考える(、つまりバイアスの少ない)当時の人気曲を抽出できるようにしましたが、プレイリスト作成者の趣向が分析結果に反映されている可能性は否定できません。
利用したプレイリスト:
80年代: https://open.spotify.com/playlist/2sdQtcgnsqvcfvCTtEVXFt
90年代: https://open.spotify.com/playlist/7IGNg8tfbTYKZYkz4ti0sB
00年代: https://open.spotify.com/playlist/6KfKvkN7YEUFTwJHkczxdb
10年代: https://open.spotify.com/playlist/4cOJgAJG9PuDjz0UdggK6C
20年代: https://open.spotify.com/playlist/2QmnoSI9FqCPTQ7V6HQQYj*注
*注: プレイリスト内の「キュートアグレッション Leaks from Laptop」は極端に短いプレビュー版であり、分析においてはノイズになる可能性があったため、すでに公開されている楽曲「キュートアグレッション」のデータに置き換えました。
収集したデータは、まずcsv形式で保存し、google spreadsheetにインポートして基本的な分析(平均値、中央値、標準偏差)を行いました。また、今回の検証で情報量を表す定量データとして扱う拍数(後述)も計算しました。次にgoogle Colab上に拍数を合わせたcsv形式のデータをインポートし、より詳細な分析及びデータの可視化を行いました。
3. 結果
80年代は75曲、90年代は223曲、00年代と10年代はそれぞれ100曲、そして20年代は312曲の計810曲が分析され、合わせて348人のアーティストの曲が対象になりました。元データ全体は6章に添付されている「spotify_song_analysis」という名前のxslxファイル或いはcsvファイルから閲覧していただけます。
各年代の楽曲の長さ、テンポ、拍数の平均値、中央値、標準偏差、そして変動係数をそれぞれ下の表に示します。但し、拍数は$${\text{長さ} \times \text{テンポ} \div 60}$$とします。
集計した結果、①近年、特に2020年代の楽曲は以前より短く、②曲のテンポはあまり変化がなく③、①に伴って一曲中の拍数は減少している、という傾向が明らかになりました。より詳細な分析は次章において行います。
4. 評価
曲の長さ
まず、曲の長さの変遷から確認していきます。図2に年代ごとの一曲の長さを函ひげ図で示します。
図を見ると、880年代から00年代にかけて曲の長さの中央値は緩やかに上昇し、00年代でピークに達しています。しかし、それ以降は減少に転じ、20年代の曲の長さの中央値が最も短いことが分かります。また、髭と函の長さに着目すると、90年代と20年代の人気曲は長さに幅があり、様々な種類の曲が聞かれているたと予想できます。一方、10年代の人気曲の長さは比較的狭い範囲に収まり、曲の長さが均一化していたことが明らかです。極端な値に注目すると、20年代は曲の長さの最大値と最小値がともに最も小さくなっており全体の傾向として曲が短くなっていることが確認できます。同時に、外れ値についても五つの区分の中で唯一上に振れたものがなく他の年代で見られるような極端に長い曲がなくなっています。
このことから、①「最近の曲は短い」という前提が正しいことが認められました。
曲のテンポ
次に曲のテンポの傾向から二つ目の推測「最近の曲はテンポが速い」が確かかどうか調べます。分析のために長さ同様、年代ごとのテンポを函ひげ図に表しました(図3)。
長さと違い、曲のテンポにおいては明確な増加と減少のどちらの傾向も認められませんでした。四分位数や髭の長さから80、90年代と比べて20年代の人気曲のテンポはより多様であるといえるかもしれません。
このことから、①「最近の曲はテンポが速い」という予測が誤りであることがわかりました。
拍数
最後に一曲当たりの総拍数から一曲当たりの情報量の変化を確認します。(図4)
中央値や四分位数から20年代の曲は他の年代のものと比べて一曲当たりの総拍数が少ない傾向があることがわかります。その一方で20年代は髭が80年代や00年代よりも顕著に長く、様々な曲が聞かれていることが示唆されています。反対に一曲当たりの総拍数が最も多い傾向にあるのは10年代で拍数の変化の傾向が一様ではないことが推測できます。これは曲のテンポの変化に明確な傾向がないことに由来していると考えられます。
つまり、最近の曲は「短い」ものの「テンポが速い」わけではないので、一曲当たりの総拍数は減少しているということです。
5.課題と一旦の結論
今回は定量的なデータの取得のしやすさを優先して情報量を一曲の総拍数と定義しましたが、これは実際の感覚とは乖離していて不十分と言わざるを得ないでしょう。より厳密に検証するにはそれぞれの楽器の手数や歌詞の量、それに同じフレーズの繰り返し回数などを考慮する必要があります。ですので、今回の結果から言えるのは「曲の長さは年々短くなってきている」、「曲のテンポの変化に特定の傾向は認められない」、そして「一曲当たりの総拍数はこの十年で減少している」の三点のみで、一曲に含まれている情報量の変化についての結論を出すことは出来ません。
今後時間があるときに歌詞データなどを利用して再検証しようと思います。
6.引用・出典
見出し画像:Image by andreas160578 from Pixabay
プレイリスト:
80年代: https://open.spotify.com/playlist/2sdQtcgnsqvcfvCTtEVXFt
90年代: https://open.spotify.com/playlist/7IGNg8tfbTYKZYkz4ti0sB
00年代: https://open.spotify.com/playlist/6KfKvkN7YEUFTwJHkczxdb
10年代: https://open.spotify.com/playlist/4cOJgAJG9PuDjz0UdggK6C
20年代: https://open.spotify.com/playlist/2QmnoSI9FqCPTQ7V6HQQYj
7. データ
今回使用したデータはエクセル形式とCSV形式でダウンロードできるようにしておきました。ご自由にご活用ください。
エクセル形式
CSV形式
余談
spotifyAPIの練習のつもりでやったけどchat-gptが便利すぎてあまり身につかなかった。あと途中で書くのが面倒くさくなって尻すぼみになってしまった。物書きの人ってすごいですね。