2019年11月17日日曜日

MIDIファイルを入力とした分析の準備(2):和音の分類とパターンの可視化(2021.8.23更新)

重心計算を除けば、MIDIデータを入力としたこれまでの作業は、ほんの初歩的なデータ処理に過ぎなかったわけですが、ようやく「音楽」として普通にイメージされる分析の出発点として、各小節頭拍で鳴っている和音(含む単音、2音)を

(1)ひとまず転回を無視して分類
(2)単音、2音、長三和音、短三和音、七の和音、付加6の和音を抽出
(3)転回を判定するために、最も低い音を抽出
(4)上記を用いて、長三和音、短三和音が鳴っている時点を転回つきで抽出する

といったことをやってみました。データとしては既に公開済の基本データのなかのseqと呼んでいる、同時に鳴っている音の組み合わせの系列を抽出したデータのうち、B系列と呼んでいる各小節頭拍のデータのみを抽出した結果を使いました。ただしそれだけだと(4)のための情報がないため、上記に加えて、同時に鳴っている音の組み合わせのうち、最低音の音名の系列を抽出したデータを用意しました。

結果を示すために、リュッケルト歌曲集の「私はやわらかな香りをかいだ」についての上記の処理結果を図示したものを以下に示します。



一番左の列が(1)の結果です。37小節分のデータがあり、そのうち36小節を分析しています。(MIDIファイルでは、曲頭の小節を色々な初期設定情報を詰め込むためのダミーとすることが良くあります。)和音のパターンは、単音、2音はすべて、三和音、四和音、五和音、六、七、九は分析対象としたマーラーの作品(全交響曲と幾つかの歌曲)や比較対照用の他の作曲家の作品に出現するものを直観的に頻度が高そうなものを130種類くらい用意しました。

  • 4,5行目に0小節,100%と出ているのは、未分類の和音の数、分類進捗率を示します。未分類の和音がなく、分類がすべて終わっていることを示します。
  • 6,7行目の15小節、41.667%というのは、3和音, 4和音からなる小節数、占める割合です。
  • 8,9行目の0小節、0%は、5和音以上の複雑な和音の小節数、占める割合です。この例では5和音以上の複雑な和音は使われていないことを表しています。

10行目以降が各小節毎の和音の種類を示します。
背景色は、単音、2音、長三和音、短三和音、七の和音、付加6の和音についてはパターンを表現し、その他の和音については、3和音なのか4和音なのか、5つ以上の複雑な和音なのかの分類を表現したものです。数字は例えば32がCの単音、256がAの単音、2057は432はGesの長三和音といったように、和音のパターンを示します(ビット表現を10進数で表したものです)。またわかりやすさのために、1音、2音のは文字色を青に、未分類の和音は文字色を赤にしてあります。この歌曲は「大地の歌」の末尾と同様、付加6の和音で終わることで知られていますが、最後の背景色桃色の番号3456はDの付加6を表しており、正しく抽出されていることがわかります。

二列目が(2)の結果です。

  • 4,5行目に4小節, 88.889%と出ているのは、単音、2音、長三和音、短三和音、七の和音、付加6の和音には分類されない和音の数、単音、2音、長三和音、短三和音、七の和音、付加6の和音の占有率を示します。4小節分は、上記に含まれない特殊な和音が使われていることを示します。
  • 6,7行目の21小節、58.333%というのは、単音と2音のみからなる小節数、占める割合です。
  • 8,9行目の11小節、30.556%は、長三和音、短三和音、七の和音、付加6の和音の小節数、占める割合です。
  • 背景色の定義は(1)は一列目に準じますが、ここでは背景色が白い部分は単音、2音、長三和音、短三和音、七の和音、付加6のいずれでもない和音を示します。またわかりやすさのために、1音、2音のは文字色を青にしてあります。
三列目は分類された和音パターンにラベルをつけたものです。同一の分類に属するビットパターンを正の整数とみなした場合の最小値としています。例えば単音の場合には、1,2,4,8,16,32,64,128,256,512,1024,2048の12種類(それぞれDesから五度圏のドミナント方向廻りにFisまでの12音の単音に対応)がありますが、このパターンのラベルは、12種類の中の最小値である1としています。最後の小節の27は付加6の和音のパターン(転回形は同じパターンに属するとして区別しない)を表します。

五列目・六列目が(3)の結果です。
各小節頭拍で鳴っている音のうちMIDIコードで最も小さい値=最も低い音の音名のみを抽出したものです。数字は音名を表します。ここではDesが最下位ビット、Fis=Gesが最上位ビットとしてビット列を定義しているので、数字と音名との対応は以下のようになります。
Des  1
Aes 2
Es 4
B 8
F 16
C 32
G 64
D 128
A 256
E 512
H 1024
Fis 2048
背景色は私の持っている色聴をベースに、しかしそれに似せることを目的とせず、それらしく区別ができるように上記の数字と音との対応に基いてColorindexの中から適当な色を選択しています。なお、参考までに、同様の方法で最高音を抽出して色づけしたのが、名七列目・八列目になります。

四列目が(4)の結果となります。
(2)の中の長三和音、単三和音だけに注目して抽出したものに対して、各小節頭拍において(3)で抽出した最低音の音名から、それが各和音の基本形か第1転回形(6の和音)か第3転回形(4-6の和音)かを文字色で表現しています。即ち 黒=基本形、緑=第1転回形、赤=第二転回形です。文字はその音名を根音とする長三和音、単三和音に相当する音の組み合わせがその小節の頭拍で選ばれていることを表す形式的なものであり、楽曲分析の結果得られた主音を意味している訳ではありません。

背景色は、(2)に準じますが、長三和音、単三和音のみなので、ピンク色が長三和音、橙色が短三和音を表します。またここでは背景が白で数字が入っていない小節は、長三和音、単三和音以外が頭拍で鳴っていること一方、背景色が灰色の部分は、その小節では音が鳴っていないこと(ビット列に対応する数字は0)を示します。曲頭の灰色はMIDIデータにおけるダミーの小節でなければアウフタクトで始まる場合を表しています。曲末の灰色はその手前が最後の小節であることを表しています。

以上からわかる通り、ここで行っているのは通常の意味での楽曲分析ではなく、その手前の鳴っている音名の組み合わせが何であるか、またその最低音の音名が何であるかについての「記述」に過ぎません。しかしながら、上記の情報からだけでも、ある作品に使われている音の組み合わせ・和音の種類数の多寡とか、利用頻度の偏りといった統計的な情報が得られますし、特に主和音の基本形・転回形の出現頻度も同様に調べることができます。また単純なドミナント・サブドミナント・ドミナントセブン(と付加6)によるカデンツに相当するパターンを抽出することも可能でしょう。ただしあくまでもここで抽出できるのは、音の組み合わせの遷移のパターンであって、楽曲分析において機能づけされた和音のカデンツを見出すこととは違いがあります。例えば調性の概念や中心音の概念はまだありません。それらをアプリオリに前提とせずに、選ばられた音の組み合わせの系列の遷移過程を眺めることで、マーラーの音楽の特徴のようなものを抽出できないか、というのがここでの問題設定であることがご理解頂けるのではないかと思います。

最後に、今回の分析をやったづれづれの感想を記しておきます。また計算結果が出たばかりで、結果を細かくてみているわけではないのですが、幾つか今後の作業を進めるにあたって方針づけとなる知見も得られたように思います。

これまでに重心軌道計算結果や基本データを公開してきましたが、今回の分析をするにあたって、MIDIファイルから抽出された入力データが、そもそも(完全にではなくても、分析を進めるにあたって支障とならない程度には)正しく小節頭から抽出されているかをはじめとして、MIDIファイルのデータの信頼性について、大まかにではありますが検討を行いました。

その結果、従来の基本セットについて幾つかの問題があることがわかりました。そのうちの一つは、DTMの領域では「クオンタイズ」の対象とされる問題、つまり通常は演奏されたデータにつきもののタイミングのばらつきのために分析上正しい位置に音が存在しないことに由来する問題です。これは従って一般的にはMIDIシーケンサが持つ「クオンタイズ」の機能を用いれば解決する性質のものです(ただしそれを全自動でやることは非常に難しく、今日のAIのベースとなっている機械学習の恰好の問題であると思われます)が、「クオンタイズ」を行うことは楽譜への忠実さという点からはプラスになっても、それを聴いて利用する点からは却って不自然になる可能性もあり、目的に応じて判断は変わってくるでしょう。いずれにしても歌曲のデータのうち、最も多くの歌曲のデータを公開しているサイトのMIIDファイルが、「カラオケ」を提供するという目的故に、ここでの目的に限って言えば極めて信頼性が低く利用に耐えないらしいことがわかりました。それを踏まえて基本セットの見直しを歌曲について行い、対象作品を限定しました。(歌曲では、特にピアノ伴奏版において、高声用、中声用、低声用といったように原調から移調されたヴァリアントが存在するという事情もあります。)

この「クオンタイズ」に纏わる問題は他の交響曲のMIDIデータでもかなりの頻度で発生していますし、類似した問題として、拍の頭がグリッドに対して規則的にずれている、それがチャネル毎に異なるようなケースもありますが、結果だけを見て、それが単に「クオンタイズ」をしていないだけなのか、楽器の特性等を考慮して意図的にずらしたものなのかを判断するのはしばしば困難を伴います。いずれにしても、「拍の頭で鳴っている音を抽出する」以上、鳴っている筈の音が、ほんのわずか遅れて鳴り始めるために拾えないこともあれば、前の拍に属する音が次の拍にかかってしまっていることもあるといった事態が致命的なことはご理解頂けるかと思います。この問題については分析の際に或る程度の補正をすることは考えられ、実際に試行も行っていますが、補正が常にうまくいくとは限らず、却って元のデータを誤って加工してしまう可能性が排除できないことから、公開しているデータは補正を行わずに解析を行った結果をとしています。

上記以外にもMIDIファイルの仕様に由来する(つまり楽譜だけからは思いつかないような)問題もあります。そのうち今回の分析にとって致命的なのは、タクトの情報が欠落している、或いは入っているがずれている場合です。これも入力したデータを再生して聴くだけなら全く問題が起きないことから、そもそもMIDIデータ作成の目的が異なれば仕方ないことではありますが、小節の頭拍の和音を抽出しラベルづけする、重心を計算するといったことをしようとした時には大きな問題になります。特にマーラーの場合、変拍子が比較的頻繁に発生するので、単純には解決できません。(その一方で、聴感上の強拍と譜面上のそれが意図的にずらされているケースもまたマーラーの場合珍しくないですが、こちらは別の問題で、そもそも小節の頭拍を機械的に抽出するという、今回のアプローチ自体の問題になります。)

もう一つ、これもマーラーの場合に特に問題になるのが打楽器の扱いです。MIDIの仕様上、ピッチの決まらない打楽器はデフォルトでは第10チャネルに割当られてられ、この場合に限り、MIDIノートナンバーが音高ではなく、音色の違いを表しているのはご存知の方も多いかも知れません。ただしMIDIファイルの作り方には大きな自由度があり、シーケンサによってやり方は様々です(従って入力をする人間がそれを常に意識しているとは限りません)。打楽器でもピッチのあるものは別チャネルになっている場合もあれば、第10チャネルの中に混在している場合もあります。後者の場合にはMIDIノートナンバーが実質的にピッチを表している場合とそうでない場合が混在していることになり、はなはだ厄介です。そこで考え付く極端な解決策は、第10チャネルを解析の対象から除外してしまうというやり方で、最終的にここで選択されたのは、実はこのやり方です。ピッチがある場合でも打楽器はその音色の特性からピッチが明確に聴き取れるわけではなく、しばしば他の楽器によって同じピッチが裏打ちされていることを考えれば一定の妥当性があるようにも思えますが、ご存知の通り、マーラーの場合にはティンパニを初めとして打楽器のソロというのが珍しくないので、MIDIデータの作り方によっては、そうした部分が切り落とされてしまうということが起きてしまいます。結局、何を目的で分析を行うのか、その是非を決めることになり、今回、私は、最終的にはそれを含めることで、分析結果にノイズが入り込む可能性よりも、それを除外することで一部の和音から音が欠落することの方がより問題が小さいという判断をしたことになります。

こうしたことを考えると、ありとあらゆる場合に対応した解析プログラムを作成することは非常に面倒な作業になるため、現実的な割り切りとして、対象としているデータセットにおいて問題が起きないようにプログラムを作るといったことが必要になります。その時、特定の人が特定のMIDIシーケンサを使って入力したデータは基準が統一されていることが期待できるので、対象データの選択にあたっては、まずカバレッジ(被覆率)の高い作者のデータを用いることが最初の選択肢となりますが、その際には、例えば入れ間違いの頻度といったことも含めた他の問題を抱えていないかどうかも併せての判断となり、しばしば一部の問題点については目を瞑らざるを得ないということが起きます。一長一短あるならば全てのデータの結果を公開するという発想もあるでしょうが、今度は、全てのデータについて対応できる汎用的なプログラムを用意すること、全てのデータについて、それぞれに異なる制限を確認する膨大な作業が発生することを考えると、これもまた現実的な選択肢になりませんでした。

ということで現在公開しているデータセットは、上記のような様々な事情を勘案した上での或る種の妥協の産物であるに過ぎない点をここで明確にしておきたく思います。末尾に記載の[ご利用にあたっての注意]は、この場合に限っては形式的なものではなく、実質的なものであることにご注意ください。(ちなみに上に例として出した「私はやわらかな香りをかいだ」は、上述の様々な問題の影響が比較的少ないことを確認して掲出することにしたものです。)

また比較対照用に用意した他の作曲家のデータについても、今回の分析で大まかな傾向ではありますが、それなりに興味深い知見が得られました。

例えば今回用意した130くらいのパターンで、バッハから古典期にかけての作品は、あくまでも選択された作品の範囲ではありますが、ほとんんど分類可能であることが確認できました。その傾向は特に声楽曲に強いように見受けられました(声楽曲の方が単純、ないし保守的な傾向があるようです)。ロマン派ではブラームスに比べてシューマンの方が未分類の和音が若干多い傾向が見られました。ブラームスは和音が凝っている印象があったのでちょっと意外な気もしましたが、曲の選択のせいかも知れませんし、上述のMIDIファイルの精度の問題のせいかも知れません。マーラーはここでの分析結果に限れば、未分類率だけからすればシューマンの方により近く、作品によりばらつきがあるブルックナーやワグナーと似たような傾向を示す一方で、ラヴェルやシュトラウスは明らかに未分類率が高く、複雑な和音を用いていることを窺わせます。聴感とも一致しますが、マーラーが全音階的とはいっても、和声の種類について言えば保守的でもなければ単純というわけでもなく、その特徴を表すものが何なのかを突きとめるには、時間をかけてきちんと調べる必要がありそうです。ただし、今回確認した範囲でも、マーラーの中では、歌曲の方が複雑な和音を用いる程度が低く、年代区分としては、後期にいくに従い未分類の和音が増加する傾向は認められるように思えます。

転回形に関連して一つ不思議に思ったのが、シェーンベルクがプラハ講演で、マーラーの第8交響曲第1部におけるEsのIの4-6和音(第2転回形)を頻繁に用いていると述べている件があるのを何となく覚えていて、どうかと思って処理結果を眺めてみたのですが、単純な三和音だけに限定すれば、文字通りのEsのIの4-6和音(第2転回形)が有意に多いようには思えませんでした。ただしEsのI和音全体としてみれば、他の作品に比べて頻度が高いのは確実に言えそうです。しかもここでの分析は小節の頭拍のみに限定していますから、それ以外の拍に出現したEsのIの4-6和音(第2転回形)は考慮されていません。全ての拍について調べてみる必要もありそうです。

なお、上記の分析結果のデータのうち、マーラーの全交響曲と一部の歌曲のデータを以下で公開しています。

https://drive.google.com/file/d/1WlBYSIrJIgKi4cV039sa5rl5YzbpfLZr/view?usp=sharing

解凍するとexcelファイルが3種類とpdfファイルが1種類出てきます。
pdfファイル(experimental_MidiFileName.pdf)は対象となったMIDIデータ・作品の対照表です。excelファイルについては以下の通りです。

chord_seq:上記の1列目(sheet1)・3列目(sheet3)に対応。sheet2は3列目で用いているラベル毎に、各グループに属するビットパターンの類型出現回数を集計した結果です。
main_chord_seq:上記の2列目に対応
bass_seq:上記の:4列目(sheet1)・5列目(sheet2)・7列目(sheet3)に対応


用いているMIDIデータや対象となっているマーラーの作品については、以下の重心計算のページをご覧ください。

https://gustav-mahler-yojibee.blogspot.com/2019/09/midi.html

[ご利用にあたっての注意] 公開するデータは自由に利用頂いて構いません。あくまでも実験的な試みを公開するものであり、作成者は結果の正しさは保証しません。このデータを用いることによって発生する如何なるトラブルに対しても、作成者は責任を負いません。入力として利用させて頂いたMIDIファイルに起因する間違い、分析プログラムの不具合に起因する間違いなど、各種の間違いが含まれる可能性があることをご了承の上、ご利用ください。

(2019.11.17公開, 11.19データ公開, 11.22更新,11.24加筆・修正,12.1最高音のデータを追加し、第8交響曲第1部のEsのI46について付記、2020.1.28 データを改訂版に差し替え)、2.1 MIDIデータ解析上の様々な問題点について付記, 2021.8.23重心計算ページへのリンクを修正。)

0 件のコメント:

コメントを投稿