クーの自由研究

かえるのクーが素朴な疑問を実験して報告します。

計算機音楽~機械学習で「音楽」を学習します~

計算機音楽のススメ

このブログでの研究の本当の目的は『機械学習で「音楽」を学習させ、音楽の分析や作曲や演奏』をさせることです。
単に従来の曲の模倣でなく、いままで聞いたことがないような音楽ができたらいいなと思っています。
とはいえ、「現代音楽」のような頭痛や吐き気を催す強烈なものではなく、心地よい感覚をもたらすもの、何度も聞きたくなるものを目指したいです。

まずは基本中の基本の自己符号化器を自由研究していますが、「音楽」もしくは「サウンド」のための情報を、いろいろ仕入れておこうと思います。
ブログで「音楽を計算によって創生する」カテゴリとしての名前をつけようと思いましたが、なかなかいい言葉がみつかりませんでした。
「コンピュータミュージック」は打ち込みやDTMやツールとしてのイメージが強いのでしっくりきませんでした。
研究のジャンルとしては「音楽情報科学(musical informatics)」「音楽情報処理」「計算論的音楽」というのがあるようですが、名称としてアカデミックすぎると思いました。
無難に「自動作曲(Automatic Composition) 」かなともおもったのですが、分析も含めての見出しがいいな・・・と、いろいろ検索すると、「計算機音楽」というのがよさげな気がしてきました。
計算機音楽理論(計算論的音楽理論とも:Computational Music Theory)というのもあるようです。「計算機音楽」は古来の「イリアック組曲」(1957)などの『コンピュータで「計算によって作曲」された』イメージがなんとなくあります。
「イリアック組曲」は、実際に聴くまではもっと現代音楽風かランダムな感じのイメージはありましたが、ちゃんとした聞ける曲であり、ある意味驚きでした。
ヤニス・クセナキスも有名ですね。著書の「音楽と建築」を持っています。よい子は聞いてはいけない音だと思います。大人になってから聞いたほうがいいと思います。さもなくば3日寝込むことになります。ボクも3日寝込んで、よい子から卒業しました。

聞いてはいけないといわれてどうしても聞きたくなった方は、以下あたりから聞いては如何でしょうか?

Xenakis evryali - YouTube

何かもっていたっけ?と棚をみたらXenakisのPLEADESを持っていました。ボクもつくづく物好きだと思います。

でも、クセーノ博士クセナキスの方向性は目指しませんのでご安心ください。

で、あまり一般的でないのかもしれませんが、このブログではこの「計算機音楽」をカテゴリとして使おうと思います。

 

音楽を計算して創るって素敵ですね。

今余輩(ボク)の勧むる「計算機音楽」ももっぱらこの一事をもって趣旨とせり。

最近の「計算機音楽」作品について

最近ではちょっと調べただけでも以下のようにいろいろありました。
マラガ大学Francisco Vico氏ら Iamus Computer

Iamus Computer -- Hello World! - YouTube

Kulitta | Donya Quick's Website

  YaleNews | You’d never know it wasn’t Bach (or even human)

デイビッド・コープ氏(作曲家) Emmy(エミー)

  Chopin style Nocturne Emmy - YouTube

  David Cope Emmy Beethoven 2 beg - YouTube

  david cope emmy bach like fugue - YouTube 

  バッハ風とかすごくいいと思いました。

アルゴリズム作曲法によるコンピューター生成音楽 | Akihiko Matsumoto Blog

Computer-Generated Jazz Improvisation - YouTube

Music Theory - Genetic Algorithms and Python - YouTube

ポピュラーなブラウザでのサービスはいろいろありますが、面白いです。下のサイトはフリーアカウントを作成すれば、いくつかのパラーメタを選択して自動作曲してくれます。

www.jukedeck.com

情報収集しよう

以下の情報がとても参考になりました。

Vol.17 No.1 (2002/01) 音楽と人工知能 | 人工知能学会 (The Japanese Society for Artificial Intelligence)

N.Y.Cityのまちかど - What is musical informatics?

関数プログラミングの楽しみ - Google ブックス

参考書としては以下が欲しくなりました。

http://www.hanmoto.com/bd/img/978-4-501-53210-9.jpg

コンピュータ音楽 « 東京電機大学出版局

2001年出版の古い本(原著は1996 Febなので20年前か)ですが、目次みただけで鼻血がでそうです。あまりにすごいので目次から抜粋しました。たぶん次はこれを買います。(なのでGPUはいつまでたっても買えません。。。)


 1.2 音信号の基礎
  1.2.1 周波数と振幅

   1.2.1.1 時間領域における表現
   1.2.1.2 周波数領域における表現
  1.2.2 位相
  1.2.3  位相の重要性
 1.3 音のアナログ表現
 1.4 音のデジタル表現


3.8 楽音の具体化
   3.8.1 音オブジェクト
  3.8.2 加算合成の具体化問題の例
   3.8.3 音楽家のインタフェース
   3.8.3.1 音楽入力装置
    3.8.3.2 演奏ソフトウェア
   3.8.3.3 エディタ
   3.8.3.4 言語
    3.8.3.5 アルゴリズム作曲プログラム
   3.8.3.6 音分析


4.3.3 分析/再合成のデータ量の削減
    4.3.3.1 折線近似
    4.3.3.2 主成分分析
    4.3.3.3 スペクトル補間合成
    4.3.3.4 スペクトルモデル合成


5.6 線形予測符号化
  5.6.1 線形予測とは何か?
  5.6.2 LPC分析
   5.6.2.1 フィルタ推定
   5.6.2.2 ピッチおよび振幅分析
   5.6.2.3 有声/無声判定
   5.6.2.4 分析フレーム


6.8 ウェーブシェーピング合成
   6.8.1 単純ウェーブシェーピング合成器
   6.8.2 シェーピング関数の例
    6.8.2.1 ウェーブシェーピングスペクトルの振幅感度
    6.8.2.2 チェビシェフシェーピング関数
   6.8.3 振幅正規化
   6.8.4 ウェーブシェーピングのバリエーション
  6.8.5 可動ウェーブシェーピング
  6.8.6 分数ウェーブシェーピング
  6.8.7 後処理およびパラメータ推定


10.2 デジタルフィルタ
  10.2.1 音楽家のためのフィルタ理論
  10.2.2 フィルタの背景
  10.2.3 フィルタのインパルス応答,周波数応答,位相応答
  10.2.4 方程式としてのフィルタ


 12.3 ピッチ検出の問題点
   12.3.1 ピッチ検出の応用
   12.3.2 ピッチ検出の難しさ
   12.3.2.1 アタックの過渡現象
    12.3.2.2 低い周波数
    12.3.2.3 高い周波数
    12.3.2.4 近視眼的ピッチトラッキング
   12.3.2.5 音響環境
  12.4 ピッチ検出法
   12.4.1 時間領域基本周期ピッチ検出
   12.4.2 自己相関ピッチ検出
   12.4.3 適応型フィルタピッチ検出器
   12.4.4 周波数領域ピッチ検出器
    12.4.4.1 トラッキングフェーズボコーダ分析
    12.4.4.2 ケプストラム分析
   12.4.5 耳のモデルに基づくPD
  12.4.6 ポリフォニックピッチ検出
   12.4.7 音楽的文脈の分析
  12.5 リズム認識
   12.5.1 リズム認識の応用
   12.5.2 リズム認識のレベル
  12.5.3 イベント検出
    12.5.3.1 振幅の閾値による検出
    12.5.3.2 ポリフォニック音楽における声部の分離
   12.5.4 採譜
    12.5.4.1 テンポトラッキング
   12.5.4.2 音価の割当て
   12.5.4.3 パターンへのグルーピング
   12.5.4.4 拍子と小節境界の推定
    12.5.4.5 回復


13.1 スペクトル分析の応用
  13.2 スペクトルの表示法
   13.2.1 静的スペクトル表示
   13.2.2 パワースペクトル
  13.2.3 時間変動スペクトル表示
  13.3 スペクトル分析方法のモデル
 13.4 スペクトルと音色
  13.5 スペクトル分析:背景
   13.5.1 機械式スペクトル分析
   13.5.2 コンピュータによるスペクトル分析
    13.5.2.1 ヘテロダインフィルタ分析


第17章 音楽言語
  17.1 言語の評価
  17.2 ソフトウェア楽音合成言語
   17.2.1 ソフトウェア楽音合成の利点と欠点
   17.2.2 ユニットジェネレータ言語
   17.2.3 楽譜とオーケストラ
   17.2.3.1 楽譜言語
    17.2.3.2 オーケストラ言語
    17.2.3.3 ユニットジェネレータ間の相互接続


19.5.2 マルコフ連鎖(Markov Chain)
   19.5.2.1 音楽向きマルコフ連鎖の応用
    19.5.2.2 階層的マルコフ連鎖
  19.6 フラクタル
  19.6.1 1/f雑音
   19.6.2 自己相似性
   19.6.3 フラクタルアルゴリズム
  19.6.4 1/fの拡張
  19.7 カオス発生器
   19.7.1 線形システムと非線形システム
  19.7.2 カオスアルゴリズム
 19.8 文法
   19.8.1 文法の音楽への応用
   19.8.2 形式文法の記法
   19.8.3 音楽文法の例
   19.8.4 文法の適用性
  19.9 生成・検査法
   19.9.1 生成・検査法の拡張
  19.10 パターン照合と検索技術
   19.10.1 作曲におけるパターン指向検索の例
  19.11 制約
   19.11.1 制約を音楽に応用した例
   19.11.2 制約ネットワークの充足


第23章 コンピュータ音楽における音響心理学John W.Gordon
 23.1 強度の知覚
  23.2 人間の耳
  23.3 時間的な特徴の知覚
  23.4 周波数の知覚
   23.4.1 臨界帯域
  23.5 雑音の知覚
  23.6 融合と音色の知覚
  23.7 マスキング効果


24.1 フーリエ解析の歴史
  24.2 信号の数学的表現
   24.2.1 複素数および直交座標と極座標
   24.2.2 周波数,振幅,位相の表現
    24.2.2.1 ラジアン三角関数
    24.2.2.2 角速度としての周波数
    24.2.2.3 半径の大きさとしての振幅
    24.2.2.4 回転開始の地点としての位相
    24.2.2.5 サインとコサインの和としての位相
   24.2.3 複素指数関数としての信号
    24.2.3.1 オイラーの関係
  24.3 フーリエ級数フーリエ変換
   24.3.1 フーリエ級数
   24.3.2 フーリエ変換
  24.4 アナログ試験装置を使ったスペクトル解析
  24.5 離散時間フーリエ変換
  24.6 離散フーリエ変換
  24.7 短時間フーリエ変換とフェーズボコーダ
  24.7.1 窓かけされたDFT表現
   24.7.2 フィルタバンク表現
   24.7.3 フェーズボコーダフィルタの内部
    24.7.3.1 ヘテロダイン・バンドパス・フィルタ
   24.7.3.2 直交座標から極座標
   24.7.3.3 位相の展開
  24.8 信号に窓をかける
  24.8.1 窓長
   24.8.2 窓の形状
   24.8.3 窓の選択
   24.8.4 DFTにおけるゼロ詰め
  24.8.5 逆離散フーリエ変換
   24.8.6 オーバーラップ加算再合成
    24.8.6.1 オーバーラップ再合成の評価


もうこれはボクのために書かれた本としか思えません。

Pythonで音を扱う情報も(画像ほどには多くありませんが)、参考にさせて頂きます。

自己符号化器は計算機音楽の幻聴を聞くか?

 きわめつけはこれです。

http://www.geocities.jp/mobile_otherside/ha/floppy/flo04.html

最高です!!

これでもう「計算機音楽」以外ありえなくなりました。

当面自己符号化器の研究が主ですが、副主題として計算機音楽に関する話題と技術を収集していこうと思います。

そうです!これは自己符号化器で計算機音楽です。