特開2017-219595(P2017-219595A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 田中 衞の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2017-219595(P2017-219595A)
(43)【公開日】2017年12月14日
(54)【発明の名称】音楽生成法
(51)【国際特許分類】
   G10H 1/00 20060101AFI20171117BHJP
   G10G 3/04 20060101ALI20171117BHJP
   G10L 25/51 20130101ALI20171117BHJP
【FI】
   G10H1/00 102Z
   G10G3/04
   G10L25/51 300
【審査請求】未請求
【請求項の数】8
【出願形態】OL
【全頁数】48
(21)【出願番号】特願2016-112315(P2016-112315)
(22)【出願日】2016年6月5日
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
(71)【出願人】
【識別番号】715004003
【氏名又は名称】田中 衞
(72)【発明者】
【氏名】田中 衞
【テーマコード(参考)】
5D182
5D478
【Fターム(参考)】
5D182AA16
5D182AC01
5D182AD01
5D182AD05
5D478GG00
(57)【要約】      (修正有)
【課題】音符粒子法による自動採譜と2変数自動微分法により回路現象の音から音楽を生成する。
【解決手段】節点と枝からなるグラフ構造の回路上の2つの節点間に接続される2変数素子の特性を電圧から電流に変換する2変数の関数として表現し、関数に関する計算グラフを利用して関数の関数値、およびまたは、偏導関数の値を2変数自動微分法で求め、その値を要素として含むヤコビ行列を構成し、数値積分法を使って回路の節点方程式の解を求める回路解析部と、回路解析部によって生成される2つの回路変数から生成されるアトラクタ上の座標点の集合に対応する周波数域集合を間引きおよびまたは内挿することでアトラクタから相似アトラクタを形成する静的周波数シフト部と、相似アトラクタ上の座標点に対応する代表の周波数をMIDI集合のピッチ周波数に近づけるようにする動的ピッチシフト部と、を有し、アトラクタ構造の音の波を生成する。
【選択図】図2
【特許請求の範囲】
【請求項1】
節点と枝からなるグラフ構造の回路であって、前記回路上の2つの節点間に接続される2変数素子の素子特性を電圧から電流に変換する2変数の関数としてネットリスト上に表現し、前記関数に関する計算グラフGを利用して前記関数の関数値、およびまたは、偏導関数の値を2変数自動微分法にて求め、前記偏導関数の値を要素として含むヤコビ行列を構成し、数値積分法を使って前記回路の節点方程式の解を求める回路解析部と、
前記回路解析部によって生成される2つの回路変数から生成されるアトラクタ上の座標点の集合を間引きおよびまたは内挿することで前記アトラクタから相似アトラクタを形成する静的周波数シフト部と、
前記数値積分法の固定刻み幅ごとに得られた前記相似アトラクタ上の座標点の集合を音楽の標準レートに対応するサンプリング周波数によって得られた座標点の集合とみなす単純サンプリング写像を実行し、前記相似アトラクタ上の前記座標点の時間域集合に対応する周波数集合に関して、その集合から得られる代表の周波数を要求された完全MIDI集合または不完全MIDI集合のピッチ周波数に近づけるようにシフトする動的ピッチシフト部と、
を有し、
前記アトラクタ構造の音から音楽の波を生成することを特徴とする音楽生成方法。
【請求項2】
前記動的ピッチシフト部は、所定数の主オクターブ領域において、前記相似アトラクタ上の座標点集合{(x(t)、y(t))}の時系列に対応する短時間周波数変換に基づいて得られる周波数集合を要求されるMIDI集合のピッチ周波数集合に合わせる陰的ピッチシフト部と、
前記主オクターブ領域以外のオクターブ領域において、前記回路の2変数素子を包含する前記ネットリストを含む入力ファイル内にシフト周波数を陽的に含む関数を表現し、前記関数内の前記シフト周波数を、要求された前記MIDI集合の各MIDI番号に対応するピッチ周波数に直接合わせるようにピッチシフトする陽的ピッチシフト部と、
から成ることを特徴とする請求項1記載の音楽生成方法。
【請求項3】
前記代表の周波数は振幅最大周波数であることを特徴とする請求項1記載の音楽生成方法。
【請求項4】
前記静的周波数シフト部は、前記相似アトラクタ上の前記座標点集合と同じ集合を複写する複写処理を有することを特徴とする請求項1記載の音楽生成方法。
【請求項5】
前記陰的ピッチシフト部は、前記周波数集合をシフトした後、周波数の帯域を選択、およびまたは、大きさを調整するフィルタ処理を含むことを特徴とする請求項1および2の音楽生成法。
【請求項6】
前記MIDI集合は、各列がMIDI記号、音符長、長さからなる音符を複数個含む複数チャネルからなる行を行方向に音符数個含む表セルから成る行列であることを特徴とする請求項1記載の音楽生成法。
【請求項7】
自動採譜のための音符粒子法であって、
音の波から隣接するフレームの音量増加量の増加差分情報を時間周波数変換し、その周波数成分からBPM空間における振幅最大周波数を検索しその逆数をすべての音符粒子に共通な音符粒子長として抽出するテンポ解析処理と、
音楽の音の波の時系列集合をガボール変換によって時間周波数変換し、変換で得られた複数チャネルの周波数集合から音符粒子集合の各音符粒子のピッチ周波数と大きさを抽出するガボール変換処理と、
要求されたチャネル数に分類する音符粒子集合のクラスタリング処理と、
前記テンポ解析処理、前記ガボール変換処理、前記クラスタリング処理に基づいて、前記音符粒子長単位ごとの複数チャネルの音符粒子集合の各行を行、各チャネルが、少なくとも、MIDI記号と前記音符粒子長の要素を含む前記複数チャネルを列とする基本音符行列を生成し、前記行列の行方向に隣接する時系列行間の同音程音符粒子の音符長を結合して、音符の長さを変更することにより、前記音符粒子集合から音符集合に変換する音符長変換処理と、を含む方法によって、
音楽の波に対応する非完全MIDI集合を求め、
前記非完全MIDI集合を前記動的ピッチシフト部に使用されるMIDI集合とすることを特徴とする請求項1記載の音楽生成法。
【請求項8】
5線楽譜に対応する圧縮型エクセル楽譜の展開法であって、計算機が、
列方向に、メロディ領域、和音領域、そして、繰り返し制御領域に区分する機能部と、
前記和音領域にある各和音記号に対応する4つの音符列に展開する和音展開処理部と、
前記繰り返し制御領域に存在する各繰り返し記号を分岐行記号と分岐先行記号の対に分類し、前記メロディ領域と前記和音領域に存在する音符集合において、展開処理のポインタが前記分岐行記号に対応する分岐行の位置にあるとき、前記ポインタが前記分岐先行記号に対応する分岐先行の位置に遷移したとき、前記ポインタの遷移に従って、遷移後に、読み出される部分音符集合を、前記分岐行の現在位置までに生成された累積部分音符集合に、追加するアペンド展開処理部と、
前記展開処理時において、複数チャネルの小区間で音符長の累積長が等価、そして、前記小区間にある行数と音符数が等価となるように、音符長0のダミー音符を前記小区間にある行に挿入するダミー音符の挿入処理部とを有し、
前記小区間同期の条件を満足しながら前記圧縮型エクセル楽譜を展開型エクセル楽譜に展開することを特徴とする行列楽譜処理部と、
前記展開型エクセル楽譜として表現される完全MIDI集合を前記動的ピッチシフト部に使用されるMIDI集合とすることを特徴とする請求項1記載の音楽生成法。



【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音符粒子法に基づく自動採譜と自動微分に基づく音源セルネットワークの生成に関し、特に、アトラクタ構造の音から音楽をつくる音楽生成法に関する。
【背景技術】
【0002】
音楽は、演奏され、そして、音楽の音の波として流される。自然界の波は、物理現象として生成され、現象の音の波として流される。現象の音の波を楽譜という音符の時系列集合に変換する技術は、工学である。表現のための工学である。特に、混合された多重音の理解と音符生成には、統計確率、時空間の構造、時間周波数の構造、同期、機械学習、調波、最適化、回路、ニューロ、ビッグデータ、スパースモデリング、通信、認識、歌唱言語の韻律、音素、知覚、発声など、いわば、非線形情報処理の解析を必要とする。楽譜は、時系列の音符集合の表現である。音符集合の各音符は、音程(ピッチ、周波数)、長さ、そして、大きさを有する要素である。音符の音程の周波数は一つであって、MIDI(Musical Instrument Digital Interface)番号に対応するが、楽器が奏でる音楽の音の波は、非線形で、ひとつの正弦波の基本周波数成分に加えて、可聴できる程の大きさの高調波成分をスペクトル構造として多く含む。いわば、音楽の音は、正弦波の混合波である。混ぜることは簡単であるが、混ぜた波から元の正弦波、すなわち、音符の音程、長さ、そして大きさを再現することはむつかしい。音源分離、混合音理解の難しさである。チャネル数が多くなればなるほどむつかしい。音楽の音の波から音符に対応する音程、長さ、大きさを検出する、いわば、多重周波数推定、楽譜自動生成(自動採譜)のむつかしさ、そして、現象の音を音楽の音にする技術とその自動採譜技術とを結合する融合化技術にもむつかしさがある。音楽というビッグデータのパターン情報をMIDIという単純な記号パターン情報に変換し、逆に、そのMIDIから元のビッグデータの音楽をつくるのは工学の挑戦である。自動採譜技術のひとつとして、本発明の基本技術となる音符粒子法を請求している特許文献1がある。音符粒子法は、音の波から、テンポ解析に基づいて、すべて等価な音符粒子長を検出し、その時間周波数変換により、各音符粒子の音程(MIDI番号)と大きさを求めて基本音符行列(エクセル(Microsoft社))をつくる。さらに、この基本音符行列のレベルにて、隣接時系列間にある同音程の音符粒子を結合することにより音符集合を求める。同期記述による自動採譜法である。基本音符行列は、行方向の時系列の各列方向に、音程(MIDI番号)、同じ長さの音符粒子長、音符の大きさからなる同期音符をチャネルの数だけ含む行列で、音のMIDI情報を表現している。音符粒子長が固定されているのでチャネル間ですべて同期記述されている。特許文献1の自動採譜技術では、短時間周波数変換として、ウエーブレット変換のひとつであるガボール変換を使用すること、そして、音符粒子法によって得られたMIDI集合を波の音にする技術は詳細には開示されていない。従来、MIDI集合を音楽集合に変換するMIDItoWav変換技術は多く存在する。例えば、MIDIのNote_On信号に対応する所望のPCM波形を記憶し再生するPCM音源方式、発振現象に基づき周波数変調波形を生成するFM変調方式などがある。FM変調方式は、キャリア正弦波的な音の音色を変調波にて自由に変化させることが可能であるが、キャリア正弦波的な音に限定される。
【0003】
一方、微分方程式の解曲線を求めることで現象を解析する数値積分技術が存在し、数学的な立場から開発されたMatlab(Mathworks社)や回路的な立場から開発されたSPICE(非特許文献1)などが有効に利用されてきた。Matlabは、数学的な微分方程式を数式記述し、種々の数値積分法を使用して解を求めることができるが、節点と枝からなる回路で表現される微分方程式を素子の結合系として記述し音をつくる技術は含まれていない。また、SPICEは、抵抗R、インダクタL、コンデンサCの受動素子とトランジスタなどの能動素子のネットリストを記述し、そのネットリストに対応する回路的な微分方程式を数値積分して回路の解析(非特許文献2参照)を行うことができるが、回路現象の音から音楽をつくる技術は含まれていない。音楽の音をユーザ自身が生成するためには、解が周期的になる方程式や微分方程式を入力ファイルとして記述する必要がある。Matlabのように直接、微分方程式を記述する数学的方式であれ、SPICEのように素子の結合として間接的に微分方程式を記述する回路的方式であれ、そこから、その解析波形を音楽の音の波、すなわち、楽譜に対応する時系列の音符集合の波に変換する技術を必要とする。この変換技術は、ユーザが入力する音源生成の方程式を数学的かつ回路的に表現する方法を必要とする。また、その方程式に包含される周波数集合をMIDI集合の時系列に従ってシフトするピッチシフト技術を必要とする。さらに、数学的に提案されている自動微分法(非特許文献3、4参照)を導入して入力ファイルの音源の数式を表現し計算グラフGから数値積分式に必要な関数値やヤコビ行列の要素を自動的に計算する技術を必要とする。自動微分法は加減乗除などの算術演算と基本的な演算を表現する計算グラフGによる処理で数式の関数値やヤコビ行列の要素値を自動的に求める方法である。
【0004】
ブラウザ上で音をつくり、ブラウザから直接MIDIデバイスと接続することにより、ユーザ自身がMIDIをつくり、そのMIDIに対応する音をつくるWeb Audio and MIDI APIのネット技術も開発されつつある。これと同様な技術を使えば、例えば、離れた場所にいる演奏家たちが仮想オーケストラを結成し、演奏音楽を配信するようなことができる。しかし、音源セルネットワークをネットリストで表現する技術や自動採譜と自動微分を結合する技術は開発されていないる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】行列楽譜処理法 特願 2015−94578
【0006】
【非特許文献1】L.W. Nagal, "SPICE2; A computer program to simulate semiconductor circuits”, Electronics Research Laboratory, memorandum no. ERL-M20, The University of California, Berkeley, 9 May. 1975.
【非特許文献2】A. Ushida and M.Tanaka, Computer Simulations of Electronics Circuits, Corona Publishing Co., Tokyo Japan 2002.
【非特許文献3】Kubota and Iri, Automatic Differentiation of Algorithms and Applications, Corona Publishing Co., Tokyo Japan.
【非特許文献4】M. Iri and K. Kubota, "Norms, rounding errors, partial derivatives and fast automatic differentiation”, IEICE Trans. vol.E74, no.3, pp.463-471, March.1991.
【非特許文献5】M. Asai and M.Tanaka, "Relaxation-based algorithm for analysis of large nonlinear networks”, IEICE Trans. vol.J70-A no.1, pp.82-92 Jan. 1987".
【非特許文献6】M.Tanaka and M. Asai,” Relaxation-Based Algorithm by Variable Virtual Capacitors for Analysis of Large Stiff Nonlinear Networks”, IEEE International Symposiumon Circuits and Systems, Philadelphia, Pennsylvania,May 1987.
【発明の概要】
【0007】
本発明は、音符粒子法に基づく自動採譜によって生成されるMIDI集合の時系列集合に従って遷移する音の波から音楽を生成する方法であって、特に、自動微分に基づく音源セルネットワークから生成されるアトラクタ構造の音の波を音楽にすることを目的とする。
【0008】
音符粒子法は、音の波から隣接するフレームの音量増加量の増加差分情報を時間周波数変換し、その周波数成分からBPM(Beats Per Minute)空間における振幅最大周波数を検索する。これがテンポ解析であって、その逆数をすべての音符粒子に共通な音符粒子長とする。そして、音符粒子法は、音楽の音の波の時系列集合をガボール変換によって時間周波数変換し、得られた複数チャネルの周波数集合から音符粒子集合のピッチと大きさを抽出する。さらに、音符粒子法は、要求されたチャネル数に分類する音符粒子集合のクラスタリング処理と、前記テンポ解析処理、前記ガボール変換処理とに基づいて、前記音符粒子長単位ごとの複数チャネルの音符粒子集合の各行を行、各チャネルが、少なくとも、MIDI記号と前記音符粒子長の要素を含む前記複数チャネルを列とする基本音符行列を生成する。最後に、音符粒子法は、前記行列の行方向に隣接する時系列行間の同音程音符粒子の音符長を結合して、音符の長さを変更することにより、前記音符粒子集合から音符集合を生成する音符長変換処理を含む。
【0009】
本発明は、この音符粒子法による自動採譜と2変数自動微分法を適用することによって回路現象の音から音楽をつくる。すなわち、節点と枝からなる回路で表現される微分方程式を2変数素子の結合系として記述し、ユーザ自身が音をつくる。R、L、Cの受動素子とジャイレータのような能動素子から生成される2端子の2変数素子の結合からなる音源セルをネットリストとして記述し、その音源セルネットワークに対応する回路的な微分方程式を2変数自動微分法で関数値とヤコビ行列を求めて数値積分する。さらに、回路内の2変数の解曲線(リサージュ曲線)に対応するアトラクタ構造を相似変換し、それを静的に周波数シフトして置き、その相似アトラクタ上の2変数の周波数集合を動的にピッチシフトする。このことにより、本発明は、2変数の音の波の周波数集合を自動採譜結果の時系列MIDI集合の時系列変化に従って遷移させることにより、音楽を生成する技術を提供する。
【発明が解決しようとする課題】
【0010】
五線楽譜の音符を直接MIDI音符に変換し、MIDI音符集合の各MIDI音符に対応する音符に音の波を乗せる音源方式は多く提案されているが、回路変数の離散的な解を刻み幅hごとに求める数値積分法を使って得られる任意のアトラクタ上の周期解、概周期解、カオス解を音楽に必要な固定レート、例えば、44、100Hzによってサンプリングされる音楽の波に変換するプログラム化技術は提案されていない。本発明が解決しようとする課題は、音符粒子法による自動採譜と2変数自動微分法を適用することによって回路現象の音から音楽をつくることである。すなわち、節点と枝からなる回路で表現される微分方程式を2変数素子の結合系として記述し、ユーザ自身が音をつくる方法を提供することである。
【課題を解決するための手段】
【0011】
本発明は、節点と枝からなるグラフ構造の回路であって、前記回路上の2つの節点間に接続される2変数素子の素子特性を電圧から電流に変換する2変数の関数としてネットリスト上に表現し、前記関数に関する計算グラフGを利用して前記関数の関数値、およびまたは、偏導関数の値を2変数自動微分法にて求め、前記偏導関数の値を要素として含むヤコビ行列を構成し、数値積分法を使って前記回路の節点方程式の解を求める回路解析部と、
前記回路解析部によって生成される2つの回路変数から生成されるアトラクタ上の座標点の集合を間引きおよびまたは内挿することで前記アトラクタから相似アトラクタを形成する静的周波数シフト部と、
前記数値積分法の固定刻み幅ごとに得られた前記相似アトラクタ上の座標点の集合を音楽の標準レートに対応するサンプリング周波数によって得られる座標点の集合とみなす単純サンプリング写像を実行し、前記相似アトラクタ上の前記座標点の時間域集合に対応する周波数集合に関して、その集合から得られる代表の周波数を要求された完全MIDI集合または不完全MIDI集合のピッチ周波数に近づけるようにシフトする動的ピッチシフト部と、
を有し、
前記アトラクタ構造の音から音楽の波を生成することを特徴とする音楽生成方法である。
【発明の効果】
【0012】
本発明は、音源セルを結合してできる回路(ネットワーク)の2変数を数値積分して生成されるアトラクタを間引処理によって相似アトラクタに変換し、その相似アトラクタ上の2変数の周波数集合をMIDI時系列の遷移に従って動的にピッチシフトすることにより、多様な音色を有する音楽を生成する。また、数値積分法において必要となる関数値とヤコビ行列は、回路の2変数素子に対応する2変数自動微分法によって生成され、多変数の自動微分値は回路の次元を増やすことによりその2変数自動微分法を使って生成できる。このことにより、回路構造に対応する任意の音源セルネットワークの音色の種類は非常に多種多様となる。また、本発明は、生楽器の再現性を目的としてきたPCM音源などと違って、数学的、回路的な発振機構に対応する非線形演算に基づいているため、新楽器をつくることができる。すなわち、演奏に合わせて音源セルネットワークの素子や結合パラメータを変えることができる。回路構造の変更により周波数成分が大きく変化し、周期的、概周期的、カオス的な挙動に対応する音の波を音楽としてユーザ自身が生成でき、しかも、その音色を劇的に変化させることが可能となる。例えば、ピアノ曲から多重奏音楽ができる。 Web Audio and MIDI APIとしても適用できる。
【図面の簡単な説明】
【0013】
図1図1は、本発明を実施するための処理を含む全体のシステムである。
図2図2は、本発明の音源セルネットワークに基づく音楽生成法の処理を実行する計算機(PC)の処理フローを示す図である。
図3図3は、本発明を実施するための処理を含む全体のハードウェアシステムである。
図4図4は、本発明の音源セルネットワークに基づく音楽生成法に使用するMIDI集合の時系列を実行する音楽プログラムの実行画像表示を示す図である。
図5A図5Aは、汎用の5線楽譜に使用されている一部の繰り返し記号の図である。
図5B図5Bは、汎用の5線楽譜に使用されている一部の繰り返し記号の図である。
図5C図5Cは、汎用の5線楽譜に使用されている一部の繰り返し記号の図である。
図6図6は、本発明の音源セルネットワークに基づく音楽生成法の2変数自動微分法を説明するための計算グラフGである。
図7図7は、本発明の音源セルネットワークに基づく音楽生成法の回路解析部に利用されるネットリスト図である。
図8図8は、本発明の音源セルネットワークに基づく音楽生成法の回路解析部に利用されるジャイレータによるインダクタの実現を説明する回路構成図である。
図9図9は、本発明の音源セルネットワークに基づく音楽生成法の回路解析部に利用される区分線形抵抗PWLの実現を説明する非線形関数図である。
図10A図10Aは、本発明の数値積分法によって解析されたローレンツ・アトラクタ図であるである。
図10B図10Bは、本発明の数値積分法によって解析された図10Aのローレンツ・アトラクタを1:40の間引き処理によって生成された相似アトラクタ図である。
図10C図10Cは、本発明の数値積分法によって解析された図10Aのローレンツ・アトラクタに対して1:40の間引き処理を3回実行することによって生成された相似アトラクタ図である。
図11A図11Aは、図10Aのローレンツ・アトラクタ上にある左音l(t)のFFTによる周波数集合である。
図11B図11Bは、図10Cのローレンツ・アトラクタ上にある左音l(t)のFFTによる周波数集合である。
図12図12は、本発明の音源セルネットワークに基づく音楽生成法の周波数シフト処理を実行する計算機(PC)の処理フローを示す図である。
図13図13は、本発明の音源セルネットワークに基づく音楽生成法によって得られた図10Cの相似アトラクタに対応する左音l(t)の1音符波形の生成結果を示す時間域の波形図である。
【発明を実施するための最良の形態】
【0014】
【実施例1】
【0015】
最初に、ガボール変換に基づく音楽粒子法について説明する。楽器を奏でることによって混合された音楽の音の波は、耳の蝸牛部分にある周波数振動子(有毛細胞)アレイの共鳴現象によって、基本振動波に分解され、脳に伝達され、認識される。脳は、楽譜情報を感覚的に復元している。計算機(マシン)は、音楽の音の波から楽譜情報をどこまで理解し、別な音色で元の音楽をどこまで再現できるだろうか? 音楽の音の波には、正弦波ひとつの基本周波数成分に可聴できる程の大きさを有する高調波成分が混合されている。音源生成の最も簡単な方法は周波数成分を多く持ち、様々な音色に使用される鋸波形、鋸波形よりも周波数成分が少なく丸い音がする三角波、Duty比の調整可能なパルス状の矩形波、非周期的なノイズ波形などを数学方程式によってデータ構造化しておき、その関数値を生成することである。すでに確立された方法である。この方法は、自由度が小さく、生成できる種類と音色が制限される。制限されないほどの自由度を上げる方法は多く考えられる。例えば、多くのオシレータの回路構成を回路シミュレーションにて記述し、内包する回路の微分方程式を数値積分することにより複数の波形を生成する。この回路解析法は、ネットリスト設計による自由度が高く、複数な波形を混合するだけでなく、オシレータを複雑組み合わせることにより、様々な音をつくることができる。回路によるSound Dynamical Program(SDP)をPC上で実行することになる。複数の線スペクトルを含む周波数集合を生成する回路で音を表現することができる。周期現象、カオス現象や概周期現象などを表現するのがアトラクタである。アトラクタは、微分方程式の解の時間発展によって生成される定常的な集合である。しかし、任意のアトラクタ構造に対応する音色の音の波を音楽として生成することができなかった。大きな問題は、アトラクタ現象を生成する微分方程式を解く数値積分法に使われる刻み幅hが固定であれ動的であれ、音楽の生成に使用とされる標準的な固定レート、例えば、44、100Hzを考慮して決められていないこと、数値積分によって生成されたアトラクタ現象の周波数集合をそのまま音の周波数集合として音を生成しても、音楽にならないことが多いということである。例えば、音が正弦波に近い単音的になること、逆にカオスアトラクタは雑音になることが多いこと、生成された周波数集合をMIDIの時系列集合に合わせてシフトすることがむつかしいことなどがある。音源によって生成されたアトラクタ構造の音の波は、楽譜に表現された各音符の音程、音符長、そして大きさの情報を含むMIDI情報の時系列に対応して遷移する音符集合、すなわち、音楽に変換される必要がある。
【0016】
次に、MIDIについて説明する。MIDI情報のうち、音程に対応するMIDI番号(例えば、69)、MIDIアルファベット(MIDI番号69に対応するA音)あるいはドレミ表記は、総称してMIDI記号と呼ぶ。音符は、MIDI記号、音符長、大きさの集合である。MIDI記号は、ピアノ鍵盤番号に対応し、音符の音程(例えば、A音なら周波数は440Hz)に対応する。本発明のチャネルは、行(下)方向に展開する音符の時系列の集合として定義される。音程は、MIDI番号に対応するひとつの周波数であるので、ひとつのチャネルは、ひとつの音程変化に依存した単音に対応し、鍵盤よるピアノ演奏では、1指演奏、すなわち、単鍵チャネルとして定義される。10指演奏は、10チャネル演奏、すなわち、複鍵チャネルとして定義される。複数チャネルは、複鍵チャネルを含む。和音は、展開すると最大4つの音符から構成されるので4チャネルの複数チャネルである。また、メロディチャネルは、ピアノでは、単鍵チャネルに対応する独立したひとつのチャネルとして定義される。間欠に演奏されるメロディチャネルも休符の多い独立したひとつの単鍵チャネルとして定義される。本発明では、音楽の音の波は同期記述の複鍵チャネルからなるピアノロールの複数トラックに写像される。どんな音でも、採譜先をピアノ楽譜と仮定すれば、複数チャネルという言葉は複鍵チャネルを含む意味で使われる。ピアノロールの各トラックは、MIDI番号が羅列した単チャネルに対応するが、元の音楽では、複数の楽器音を含む複数チャネルから構成される。逆処理(音から楽譜生成)では、複鍵が時間差のため単鍵化され、単鍵の複数化よる時系列集合となる場合も多いので、チャネルを単鍵チャネルと定義しても、元の音楽では複鍵チャネルを意味する場合も多い。逆処理でのチャネルはピアノロールの各トラックに対応するが、そのチャネルは、原音楽の複数楽器の音符情報を含み、音符粒子法を含む本発明では、楽器の区別処理は含まれない。
【0017】
本発明において利用されるMIDI情報の作成法は、特許文献1の方法に従うものとする。その方法には、5線楽譜から直接作成する完全MIDI集合生成法と音楽の録音の音から音符粒子法と呼ばれる自動採譜技術によってつくる不完全MIDI集合生成法とある。MIDI情報は、例えば、エクセルによる行列楽譜として生成され、その生成時には、行列上の複数チャネルは、チャネル間に渡る列方向に書き込まれ、演奏時には、生成された複数チャネルの行列は、チャネルごとに行方向に読み出される。
【0018】
図1は、本発明を実施するための処理を含む全体のシステムである。本発明は、特許文献1の行列楽譜処理法2の追加処理1となるので、本実施例において、その行列楽譜処理法2を説明しながら追加処理1を説明することになる。本発明の音源セルネットワークに基づく音楽生成法の処理の流れは図2に示される。図1は、行列楽譜処理法1と本発明を実施するための処理2は、計算機10(図3)が実行する処理である。行列楽譜処理法2は、MIDI空間における圧縮型と展開型のエクセル楽譜の生成処理である。エクセル(主に、マイクロソフト・エクセルの表計算ソフトを想定)は、セル要素からなる表セル集合である。ここで、空でない有効セルを要素とする表、すなわち、空セルの要素を含まない行と列からなる2次元のセル集合を行列と定義する。有効な空セルを含めたセル集合を行列と定義することもできるが、容易性の範疇である。
【0019】
順処理(楽譜から音)では、5線楽譜認識部100によって5線楽譜が認識される。その5線楽譜に対応する圧縮型エクセル楽譜は、生成処理部101にて、列方向に、メロディ領域、和音領域、そして、繰り返し制御領域に区分される。圧縮型エクセル楽譜の音符集合は、展開部102において、メロディ領域と和音領域に関し、繰り返し制御領域の各繰り返し記号の意味解析に従ったアペンド処理とスキップ処理による展開と和音展開とによって展開される。結果として、繰り返し制御領域は削除され、展開型エクセル生成処理部108において、メロディ領域と和音領域は、行列表現、すなわち、展開型エクセル楽譜となる。展開は、ダミー音符Dによる同期記述の処理を含む。ここで、ダミー音符D(DはMIDI記号で代表されるが、MIDI記号、0の音符長、大きさから成る音符)のセルは、エクセル上では、空セルでない有効セルであって、音符長が0である無長無音を表現する。
【0020】
逆処理(音から楽譜)の流れとして、音符粒子法に従った処理部103、104、105、106がある。展開型エクセル楽譜は、音楽の音の波から自動的に不完全MIDI集合として生成される。展開型エクセル楽譜は、音符時系列の複数チャネルの行列表現となる。この楽譜自動生成では、まず、Wavファイルとして入力された音楽の音の波の時系列集合は、短時間周波数変換部103にて、周波数集合に変換される。Wavファイルは、ステレオである場合、左音l(t)と右音r(t)に分けてダンプ化され、それぞれが周波数変換TによってF(l(t))とF(r(t))となる。テンポ(ビート)解析部104にて、周波数集合から、音符時系列の平均的周期性の仮定により、すべての音符に共通な音符長を求める解析が実行される。また、MIDI番号に対応する音程を含む周波数集合を求める短時間周波数変換STFTの解析が実行される。短時間周波数変換として短時間フーリエ変換STFTは高速であるが、時間と周波数との従属関係が強いという欠点がある。音符粒子法では、その関係に関する自由度がより高い短時間ウェーブレット変換のひとつであるガボール変換が主に利用される。共通な音符長を有する音符粒子集合は、複数チャネルの音符粒子の音符長が等価であるから、チャネル間で同期条件が満される同期記述の集合である。複数チャネルの各音符の音符長が等価、または、各チャネルの行方向の同音程小区間内の累積音符長が等価となるとき、それぞれ、行の同期、あるいは小区間の始点と終点における同期といい、書き込まれた結果を同期記述されたMIDI情報集合という。小区間は、5線楽譜の小節に相当する同期区間であるが、小区間内では、一般的には、音符の数がチャネル間で異なる。音符粒子法では、同期記述された同音程小区間は、始点と終点において時間同期する音符部分集合の時間小区域と定義され、同期記述された同音程小区間の最小は、共通な音符長を有する音符粒子のみから成る行である。始点と終点が等価となる音符粒子集合を表現する基本音符行列を生成するためには、音符粒子法では、クラスタリング部105にて、ガボール変換によって音符の音程集合を抽出された後、要求されたチャネル数の音符粒子集合に分類する、音符粒子集合のクラスタリング処理(k−means法等)が実行される。すなわち、音符時系列行と複数チャネル列からなる行列の音符粒子集合106を求める。基本音符行列の各行の各チャネルは、MIDI番号、音符粒子長の2列を必須とし、一般的には、さらに、大きさの要素からなる3列で表現される。この段階で、複数チャネルの基本的なエクセル楽譜が生成される。そして、音符長結合部107にて、行方向に隣接する時系列行間、すなわち、同音程小区間の同音程音符粒子の音符長を結合することにより、音符の長さを変更する。音符粒子集合から音符集合への変換である。音符集合は、同音程小区間における始点終点において、同期記述の条件を満たす行列として生成され、展開型エクセル楽譜108となって、記憶部11(図3)に保存される。これが複数チャネルの自動楽譜生成、音符粒子法による自動採譜の処理である。計算機10が自動採譜された展開型エクセル楽譜108を5線楽譜に変換するのは容易である。なお、標準MIDIシステムに内蔵されているデフォルト音源を利用する場合には、展開型エクセル楽譜を標準のMIDI.csv、MIDI.midファイルに変換する処理が必要となる。
【0021】
流れ101と102の順処理によって、圧縮型エクセル楽譜、あるいは、それを展開してできる展開型エクセル楽譜は、5線楽譜の音符集合を完全に包含する完全MIDI集合である。流れ103、104、105、106、107の逆処理(音符粒子法)によって、音楽の音の波から自動生成される展開型エクセル楽譜は、5線楽譜の音符集合を不完全に包含する不完全MIDI集合である。複数チャネルは不完全なMIDI集合となるが、本発明の音源セルネットワークに基づく音楽生成法の処理と結合すれば、多様な音色のある編曲音楽を自動的に生成できるという効果を有する。
【0022】
音楽の音は、MIDIシステムを使って生成できる。展開型エクセル楽譜108がMIDI.csv化部110にてチャネルの行方向展開型MIDI.csv(Format 0)に変換される。そして、複数チャネルの音源付き演奏が、処理部114にて、メロディのトラックリスト表示、ピアノロール表示、イベントリスト表示、5線楽譜自動表示が実行され、音の再生部115にて演奏される。MIDI.mid(バイナリ)への変換部113を介して演奏される場合もある。複数チャネルの数は、音符粒子集合のクラスタリング処理のクラスタ数以下の数によって決まる。ステレオの左音と右音は、それぞれが複数チャネルを含み、MIDIシステムにおける各トラックも複数楽器の意味での複数チャネルを含む。MIDI楽器の音が入力される場合、例えば、1ポート、楽器数に対応する16チャネルのMIDI入力端子のひとつのチャネルからその音が入力される場合でも、その音は、音符粒子法では、複数チャネル(複数音程、複鍵チャネル)への採譜処理対象となるので、本発明においても、各トラックは複数楽器の意味での複数チャネルから形成される。
【0023】
本発明は、順処理、逆処理のどちらの結果に対しても利用できる。本発明は、生成部108にて生成された展開型エクセル楽譜の複数チャネルの各MIDI情報を、MIDItoWav部109にてWavファイルに変換する処理部1の部分である。ここでは、各MIDI情報と回路解析部111にある回路シミュレータ(SDP)から生成される回路変数(アトラクタ)とがWav音源生成部112にて結合される。再生可能なWavファイルとなる。
【0024】
本発明は、図2に示される。図2は、本発明の音源セルネットワークに基づく音楽生成法の処理を実行する計算機(PC)の処理フロー図である。処理201にて、入力ファイルにて音源セルネットワークをグラフ的に結合してできる回路として、その構造を決定し、数値積分の刻み幅h(一定)、回路変数の初期値を決定する。音源セルネットワークの構造をネットリストで定義することが重要である。2変数自動微分法200を使って、ネットリスト上で表現される2変数素子に関する、処理202において、刻み幅hごとの節点方程式(状態方程式)を立てる。処理203において、数式の関数値とヤコビ行列を計算グラフGに基づいて求めて数値積分の処理を開始する。処理204にて、刻み幅hごとの線形化方程式であるニュートン・ラフソン法を収束するまで計算しながら、処理205の数値積分法の収束判定が実行される。処理205において数値積分が収束しない場合は、処理202から処理205まで繰り返されることになる。この繰り返し全体が数値積分処理である。数値積分法として、陰的Gear法または、陽的ルンゲクッタ法が使われる。処理205にて、数値積分法が収束し、解が得られた場合、本発明では、回路の2変数、すなわち、アトラクタ上の2変数の音を音楽にする処理が実行される。処理206において、まず、数値積分において利用された刻み幅hが音楽の標準44、100Hzと比較される。間引き処理(207)は、処理206において、刻み幅hが音楽の標準レート44、100Hzより大きい場合に適用され、それよりも、小さい場合には、サンプリング周波数の変換後、直接、処理210の動的シフト処理が実行される。回路の2変数を数値積分して生成されるアトラクタを間引き(処理207)または内挿補間(処理209)によって相似アトラクタに変換された場合は、処理210において、その複雑な周波数集合の部分集合がMIDI時系列に対応して動的にピッチシフトされる。このようにして、アトラクタの構造に対応する周波数集合が、多様な音色を有する音楽波形を生成することになる。低いサンプリング周波数fh=1/h、例えば、2.26757E−3を使用して得られる回路変数の時系列集合を標準レート(44、100Hz)でサンプリングされた集合とみなす写像を単純高サンプリング写像と呼ぶことにする。高いサンプリング周波数fh=1/h、例えば、2.26757E−7を使用して得られる回路変数の時系列集合を標準レート(44、100Hz)でサンプリングされた集合とみなす写像を単純低サンプリング写像と呼ぶことにする。間引き処理(207)の比率は1:qである。ここで、間引き処理は、1:1の間引き処理(スキップ)を含む。間引き処理によって、後処理の単純高サンプリング周波数、すなわち、刻み幅hから音楽の標準レート44、100Hzに強制変換する処理によって周波数集合は静的にシフト変更される。処理209の内挿処理は、間引き処理207の結果に対して、分解能を上げるために、必要ならば、適用される(処理208、処理209)。処理210において、本発明は、音楽の標準レート44、100Hzのサンプリング周波数を使って、音符長を確保するための複写処理とアタック、ディケイ、サステンション、レリーズの包絡処理を実行し、MIDIの時系列に対応して、2変数の周波数集合をFFT周波数域にて動的にシフトする。すなわち、動的ピッチシフト処理が実行される。シフト後にフィルタ処理によって帯域制限しながらFFT逆変換を実行し、結果として、2変数の時間域波形を取得する。処理211において、2変数の波形をステレオの左音と右音としてWavファイルに変換して音楽集合を取得する。処理212は処理の終わりである。
【0025】
本発明では、スティッフな系の陰的数値積分法(例えば、後退オイラー法、陰的ルンゲクッタ法、Gear法など)において必要となるヤコビ行列は、回路の2変数素子に対応する2変数の自動微分法によって生成され、多変数の自動微分値は回路の次元を増やすことによりその2変数自動微分法を使って生成できる。回路構成に対応する音源セルネットワークの音色の種類は非常に多様となる。ヤコビ行列は、陽的ルンゲクッタ法のような陽的数値積分法では必要としないが、この場合でも、処理202にて、変数の自動微分法に利用される関数表現に対応する2変数計算グラフGは生成され、2変数の関数f(x1、x2)の計算が実行される。また、本発明の処理過程は、生楽器の再現性を目的としてきたPCM音源などと違って、数学的、回路的な発振機構に対応する非線形演算に基づいている。そのため、演奏に合わせて音原セルネットワークの素子や結合のパラメータを変更することができるので、ユーザ自身が、周波数集合を多種多様に変更でき、周期的、概周期的、カオス的な挙動に対応する音の波の音楽を生成できる。しかも、その音色を劇的に変化させることが可能となる。以上の処理の流れも、図3の計算機10によって実行される。
【0026】
図3の計算機10は汎用PCである。記憶部11に命令とデータが記憶される。逐次、分岐、読み出し、書き込み等の命令に従って制御部13が制御し、演算部12がその命令に関する算術論理演算を実行する。制御部13の制御によって、記憶部11内のデータは入力部14から入力され、出力部15から出力される。無線を含むネットワーク関係の処理も入力部14と出力部15に含まれる。複数PCによる無線同期された多重音演奏も可能となる。基本音符行列のエクセル情報をQRコード化し、サーバから送信し、クライアントにて受信し、展開型エクセル楽譜に展開し音楽を再生することもできる。音符粒子法を含む図1の全体の処理、本発明の図2の処理も、図3の計算機10によって処理される。音符粒子法に基づいた自動採譜と自動微分に基づく本発明の音源セルネットワークに基づく音楽生成プログラムは、主として、C言語とC++言語をコンパイルして実行できる環境、例えば、マイクロソフト社が開発したVisual Studio の環境下で開発され、任意のユーザが任意の場所にて実行できる実行形式のファイルとしてまとめられる。
【0027】
次に、順処理について説明する。5線楽譜は縦(行)方向に同時に演奏される複数のチャネル(1トラック1チャネル形)を有し、人間、あるいは、計算機などの機械(マシン)が、横(列)方向に並んだ音符列を読む(認識する)ことにより、時系列音符集合が演奏される。ここでは、エクセル楽譜は列(横)方向に複数チャネルが構成され、行(縦)方向に表セルを読むことにより、時系列音符集合が演奏される。5線楽譜は、音符記号の5線上位置の情報による音程とq分音符(例えば、4分音符)による音符長を表現する。演奏者(人間)にとってたいへん読みやすい視覚的データ構造となっている。5線、音符記号、そのものが視覚的記号であるが、繰り返し記号も視覚的記号となっている。5線楽譜の特徴として、多種多様な繰り返し記号の記述があり、時系列な音符集合の特定部分集合に対する重複表現が最小化されている点がある。その特定部分集合の繰り返し処理あるいはスキップ処理は、主に、演奏者(人間)の行為となる。計算機が情報の読み書きを行う場合は、視覚的データ構造である必要性はなく、むしろ、記憶の内容を指定するポインタ(アドレス)によって指定される文字数値要素による行列型データ構造を必要とする。圧縮型エクセル楽譜は、行列型データ構造であり、メロディ領域M、和音領域Wからなる行列と、空なる表セルを含む繰り返し制御領域Rの表セル集合からなる5線楽譜に対応するデータ構造である。
【0028】
圧縮型エクセル楽譜は、音楽音符集合MTであって、そのi行目は音楽行ベクトルMiを形成する。音楽行ベクトルMiは、メロディ領域M、和音領域Wおよび繰り返し制御領域Rの3つの部分ベクトルに分割される。メロディ領域Mと和音領域Wは、有効表セルのみからなる行列であるが、繰り返し制御領域Rには、繰り返し記号のある表セル以外はすべて空(NULL)セルとなる。
【0029】
音楽音符集合MTのメロディ領域Mにおいて、i行目にあるj番目のメロディ音符はM(i、j)と表現され、音符M(i、j)の音程(MIDI記号)をm(i、j)、音符長l(i、j+1)に対応するq分音符をq(i、j+1)、正規化された音の大きさ(振幅)をa(i、j+2)とすれば、音符M(i、j)は、
M(i、j)= M(m(i、j)、q(i、j+1)、a(i、j+2));
j=0、3、6、・・・、3mm
として表現される。ここで、mm+1はメロディ数である。j=3mm+1の列には領域デリミタのセミコロン;が記述される。和音領域Wにおいて、和音(例えば、Am)のコード記号C(i、j)、音符長l(i、j+1)、 正規化された音の大きさをa(i、j+2)とすれば、
和音W(i、j)は、
W(i、j)= W(C(i、j)、l(i、j+1)、a(i、j+2));
j=3mm+2、3mm+3、3mm+4
として3列で表現される。決められた大きさaである場合には、
a(i、j+2)=a
が自動挿入される。3列表現の場合は、j=3mm+5の列にセミコロン;が記述される。和音が展開されると、和音領域Wは、メロディ領域Mに変更され、4つの音符列{M(i、j)}で表現されるので、チャネル数cは、c=(mm+1)(メロディ数)+4となる。なお、順処理では、1チャネル1トラック形であって、1トラックには1チャネルのみを含むものとする。
【0030】
繰り返し制御領域Rにおいて、繰り返し記号をR(i、j)とすれば、
R(i、j) ; j>3mm+4
として表現される。繰り返し記号R(i、j)が存在しない行は、空なる表セルとするので、繰り返し制御領域Rにおけるほとんどの行が空白R(i、j)=NULLとなる。また、i行目に存在する繰り返し記号R(i、j)は制御領域Rであれば、i行目のどこでもよい。
【0031】
以上の定義により、音楽行ベクトルMiを形成するi番目の行は、領域区別のデリミタ記号のセミコロン;を使用して
Mi={M(i、j1);W(i、j2);R(i、j3)}
と表現される。j1、j2、j3は、列番号である。
【0032】
圧縮型エクセル楽譜の空間では、音楽表セル集合MTは、小区間(始点と終点においてチャネル間にて同期する区間)すなわち小節の同期記述、すなわち、小節内では非同期でも、小節の始点と終点において同期している音符列集合の表セル集合の記述と、ダミー音符D(音符長0、T0の表記)の挿入処理と行列化処理を必要とする。例えば、音楽音符集合MTを具体的に圧縮型エクセル楽譜として表現すると、小区間すなわち小節の区間において、表1のようになる。
表1









【0033】
チャネル数cは、メロディが2、和音は展開されれば4なので、6である。1列目はメロディ1のMIDI番号に対応するアルファベット記述で、ピアノ鍵盤のオクターブ番号(C4の4)が付加される。オクターブ番号なしはデフォルトの3を意味する。1列目は、ドレミ表記またはMIDI番号表記(Aはラ音で、69)でもよい。2列目はq分音符の番号qである。音符長の時間表記の場合、Tの接頭字が付加され秒表現となる。3列目は正規化された音の大きさの表現である。4、5、6列はメロディ2であって、同様に表現されるが、HHは休み記号となっている。休み音符HHは、音符長は0でない場合が多いが、この例では、音符長0であるので、ダミー音符Dとなる。すなわち、音符長0の音符HHは、行の数と音符数の数が等価になるように挿入される。また、音符長T0となっているE4もダミー音符Dである。ダミー音符Dをセルに挿入することによって、行列化される。行数と音符数の数が等価になることによって、メロディ領域Mと和音領域Wが行列化される。7行目はセミコロンであって、メロディ領域Mの終わりと和音領域Wの始まりを意味する。8行目は和音のアルファベット記述(例えば、Am)である。9行目は、和音の大きさ、10行目はセミコロンであって、和音領域Wの終わりと繰り返し制御領域Rの始まりを意味する。GE(Go End)が繰り返し記号で、それ以外のセルは空なる表セルである。メロディ領域Mと和音領域Wは、有効表セルからなり、無効表セル(NULL)のない行列表現となる。
【0034】
ダミー音符Dの挿入による同期記述と行列化処理を実行することにより、音楽音符集合MTは、時系列の音楽行ベクトルMiの集合
MT={Mi|i=0、1、・・・、N0−1}
として定義される。メロディ領域Mと和音領域Wは、ダミー音符Dを含む行列、すなわち、小区間すなわち小節において、行の数と音符数が等価な音符集合として表現される。N0は、チャネルの音符数である。
【0035】
小区間同期記述と行列化処理の必要性は、エクセル、すなわち、表セル集合体によって、複数チャネルの5線楽譜と等価な論理動作(小節間同期のある複数行音符時系列)を表現し、認識処理を除き、人間が5線楽譜を読む動作と計算機がエクセル楽譜を読む動作を等価にするところにある。逆に、例えば、各チャネルの音符を上方向に詰めたエクセル表現であるとすると、特定な行の列方向に記述された音符集合は、5線楽譜表現と異なり、無相関、無秩序な音情報となる。有効な表セルの表セル集合を行列としているので、領域MとWは、要素(表セル)がすべて空(NULL)でない行列となり、どのチャネルも同じ行数N0となる。
【0036】
音符長l(i、j+1)がチャネル間で異なる場合、同期記述と行列化処理のために、ダミー音符Dが挿入される。音符M(i、j)=M((m(i、j)、q(i、j+1)、a(i、j+2))の同期記述を実行する処理は、計算機10による記憶部11への書き込み処理である。同期記述は、各チャネル間において、同時読み出し(演奏)される小区間内音符集合の音符長の累積時間長が等価、音符数が等価、行数が等価、そして、各小区間の始点終点時刻が同期するように音符長0のダミー音符Dを書き込む(記述する)ことである。
【0037】
今、エクセルの小区間内表セルの要求行数をTqとする。Tqは小区間音符数が最大となるチャネルのその行数である。これを音符数最大小区間と呼ぶ。音符数最大小区間以外の特定なチャネルのその小区間内における音符数をsとするとき、s<=Tqとなる。s個のq分音符q(i、j+1)の部分行集合に対して、
Tq−s
個のダミー音符D(音符長0)をそのチャネル小区間に挿入すれば、小区間内音符集合の行数はどのチャネルもTqに統一される。ダミー音符Dは任意のMIDI記号と音符長T0を含む無長音符である。ダミー音符Dは音符長0の休み音符(MIDI記号が0またはHH(非標準))でもよい。同期小区間内であれば、どの行に挿入されてもよい。すべての小区間に対してこの同期記述のルールを適用すれば、音楽音符集合MTのメロディ領域Mと和音領域Wは、エクセル上で表セル表現可能な行列として表現できる。すべてのチャネルの音符数は統一されN0となる。
【0038】
例えば、表2の圧縮型エクセル楽譜を使って同期記述を説明する。
表2





【0039】
1列目は、メロディ1のMIDIアルファベット記号列である。2行目が音符長列であって、最後の2行が音符長0(すなわち、時間表現T0)のダミー音符Dが存在する行となっている。4列目はメロディ2のMIDIアルファベット記号列である。5列目が音符数最大小区間(小節)の音符数Tq=6の行表現であって、2分音符、16、16、8音符による合計4分音符分、次の8、8による合計4分音符分で、合計すれば、全音符分の4s(sは秒、4分音符を1秒とする)の累積音符長4sに対応する。1小区間(小節)の累積音符長となっている。1列目は、最初の4行で、1小区間の累積音符長4sを満たすが、最大音符数はTq=6なので、s=6−4=2の2行分をダミー音符DのMIDIアルファベット記号=G4、HHを挿入し、音符長T0としている。大きさは、それぞれ、0.7、0.6となっているが、音符長はT0であるから無音となる。8列目の和音Emの音符長はすでに全音符に対応する4sとなっているので、2行目以降のHH(休み記号)が音符長0(T0と等価)のダミー音符Dとして挿入されている。
【0040】
今、小区間内の要求累積音符長(時間)をLとする。エクセルの小区間内表セルの要求行数をTqとすれば、Tqは音符数最大小区間の音符数である。特定なチャネルのその小区間内における音符数をsとするとき、s<=Tqとなるs個のq分音符q(i、j+1)を選択する。そのとき、s個の累積音符長をΣl(i、j+1)で表現すると、
Σl(i、j+1)+0*(Tq−s)=L
を満足する。0の累積音符長が0*(Tq−s)になるように、ダミー音符D(音符長0)を(Tq−s)個、チャネルの小区間に挿入する。小区間内音符集合の行数はどのチャネルもTqに統一される。ダミー音符Dは、DDなど記号、あるいは、休み音符(HH)でもよいが音符長は0である。小区間内であれば、どの行に挿入してもよい。すべての小区間に対して同期記述を適用すれば、領域MとWは、エクセル上でセル表現可能な行列で表現できる。
【0041】
圧縮型エクセル楽譜は、繰り返し制御に従った部分音符集合のアペンド処理とスキップ処理により、展開型エクセル楽譜に展開される。エクセルの音符表セル集合、あるいは、その部分集合の行番号iに対応するポインタがある。そのポインタによって、各チャネルの音符Miの時系列位置(行番号)が指定される。繰り返し制御領域Rにある繰り返し記号として、曲の始点から終点方向に、始点記号Sと終点記号Eが定義される。その記号は、方向の意味も含めて、予め定義されている。終点記号Eの行(分岐行)にある音符から始点記号Sの行(分岐先行)にある音符に、すなわち、Backward方向に、ポインタが戻る(無条件ジャンプ命令の)場合には、終点記号Eの行(分岐行)までの途中に他の制御記号Conがなければ、始点記号Sの行(分岐先行)にある音符から、終点記号Eの行(分岐行)にある音符までの遷移後の部分音符集合が、現在のポインタP(E)の行(分岐行)にある音符までの累積時系列音符集合に、アペンドされる。制御記号Conがあれば、始点記号Sの行(分岐先行が分岐行に変化)にある音符から、制御記号Conの行(分岐先行)にある音符までの部分音符集合が、現在のポインタP(E)の行(分岐行)にある音符までの累積時系列音符集合に、アペンドされ、その後は、制御記号Conの意味定義に従うことになる。始点記号Sの行(分岐行)にある音符から終点記号Eの行(分岐先行)にある音符に、すなわち、Foreward方向に、ポインタが進む(無条件ジャンプ命令の)場合には、始点記号Sの行(分岐行)にある音符の次の音符から終点記号Eの行(分岐先行)にある音符の前の音符までの部分音符集合は、現在のポインタP(S)の行(分岐行)にある音符までの累積時系列音符集合に、アペンドされずに、スキップされる。すなわち、終点記号Eの行(分岐先行)にある音符のそれ以降の時系列音符集合の始点Eに、ポインタが遷移される。繰り返し制御領域Rに存在する各繰り返し記号は、分岐行記号のある分岐行Aと分岐先行記号Bのある分岐先行Bの対に、分類される。このとき、メロディ領域Mと和音領域Wに存在する音符集合において、展開処理のポインタが、分岐行記号のある分岐行Aの位置にあるとき、そのポインタが、分岐先行記号のある分岐先行Bの位置に、遷移する。AからBへの遷移である。アペンド処理は、そのポインタ遷移に従って、AからBへの遷移後に読み出される部分音符集合を、分岐行記号のある分岐行Aの現在位置までに生成された累積部分音符集合に、追加する処理となる。なお、スキップ処理は、ポインタ(アドレス)のAからBへの遷移処理と等価であるから、読み書き処理はない。
【0042】
多種多様な繰り返し制御記号の始点記号Sと始点記号Eは、ペアになっている場合が多い。5線楽譜の標準ペアとして、2重線||とコロン:と、コロン:と2重線||がある。それらに対応する始点記号Sと終点記号Eがある。そのコロン:と2重線||に対応する終点記号Eの曲始点方向に部分音符集合の始点位置に、F1(制御記号)があって、その2重線||の直後に、F2(制御記号)がある場合、コロン:と2重線||に対応する終点記号Eの行から2重線||とコロン:に対応する始点記号Sのある行に戻って繰り返される。このとき、F1からF2の音符の前音符までの領域に含まれるその部分音符集合をスキップし、F2のある行の音符にジャンプする制御となる。この場合は、2重線||とコロン:に対応する制御記号Sの行にある音符からF1の行の直前にある行の音符までをアペンドし、その後、F2(制御記号E)の行にある音符にジャンプする制御となる。また、5線楽譜を使って説明すれば、例えば、D.C.(制御記号E)は、da Capo(最初から)の略で、曲の最初(制御記号S)に戻って再度処理され、「終わり」の意味の繰り返し記号Fine(制御記号E)まで処理される。Fineのかわりに図5Aの記号を使うこともある。D.S.(制御記号E)は、dal segnoの略で、図5Bの記号(制御記号S)に戻って再度処理される。そして、To Coda記号(制御記号S)から図5Cの記号(制御記号E)に分岐するように処理される。この記号は、VIDE「見よ」の意味で、これがあるときは、時として、その記号(制御記号S)から次の同じ記号(制御記号E)までを飛ばして、遷移後の部分音符集合がアペンドされる場合がある。このような場合でも、本発明では、5線楽譜のそれらの繰り返し記号に対応する制御記号SとEが定義され、エクセルの制御領域Rの適当な表セルに挿入される。それらの記号の意味解析に従った無条件ジャンプ命令によるポインタの遷移処理を実行すれば、音符集合のアペンド処理(または、スキップ処理)によって、圧縮型エクセル楽譜は展開型エクセル楽譜に連続した時系列音符集合として展開される。
【0043】
方向制御は、多種多様で、その数は膨大である。方向制御のすべてを表現した方向タイプをデータ構造として記憶することはできない。行列楽譜処理法では、ポインタの現在位置までに集計された累積部分音符集合に、その時点に現れた制御記号の意味に従って、ポインタ遷移後の次の部分音符集合を、アペンドし、再び現在位置のポインタとする。いわば、行列楽譜処理法の処理体は、部分音符集合の再帰機能的アペンド方式に従う制御プログラムである。展開時は、常に、ダミー音符Dの挿入処理により、同期記述の条件は満たされる。
【0044】
繰り返し制御による展開時には、和音の同時音符集合への展開も実行される。基本的には、記憶部11にある各和音記号(例えば、Am)の文字と圧縮型エクセル楽譜上の和音領域Wにある和音記号(Am)との一致処理で、特定された和音を構成する4個の音符列が4列として展開される。
【0045】
圧縮型エクセル楽譜における各行ベクトルMiは展開処理、すなわち、繰り返し展開と和音展開が実行されると、結果として、展開型エクセル楽譜の音符集合は、同期記述を満足し、
Mi={M(i、j)|j=0、3、6、・・・、3*(c−1)};
i=0、1、2、・・・、N0−1
と表現され、N0*(3*c)の行列に変換される。以降、この3列表現が代表として使われる。ここで、
M(i、j)=M(m(i、j)、q(i、j+1)、a(i、j+2));
j=0、3、6、・・・、3*(c−1)
である。cはチャネル数、N0はチャネルの音符数である。
【0046】
すなわち、展開型エクセル楽譜は、2次元集合
MT={M(i、j)|i=0、1、2、・・・、N0-1;
j=0、3、6、・・・、3*(c−1)}
として行列表現される。MTは完全MIDI集合となる。完全とは、原5線楽譜の音符集合をMIDI情報として完全に表現していることである。和音領域Wの展開後の和音チャネルの各行は音符長および大きさは同じ値となる。同時演奏により和音として聞こえることになる。デフォルトの展開型エクセル表現では、メロディの2チャネル、和音の4チャネルとし、合計6チャネルで構成される。生成された展開型エクセル楽譜を読み出し(演奏)する場合は、各チャネル(トラック)は縦読み、すなわち、行方向処理を基本とする。
【0047】
同期記述を含む圧縮型エクセル楽譜の生成処理は、5線楽譜からの変換処理によって行われる。完全MIDI音符集合である。重要なことは、演奏の読み出しはチャネルごとの行方向であるが、生成の書き込みは、複数チャネルに渡って列方向であるということである。行列楽譜処理法では、複数チャネルの小区間の同期イベントの概念、小区間の累積音符長の等価管理の概念がある。小区間の行数等価と音符数等価を条件とする行列化処理の概念がある。以上のことは、エクセル楽譜の標準化に寄与すると考える。
【0048】
計算機10を使って複数チャネルを同時演奏し、これを人間の耳で聞いたとき、同時音が正しく聞こえるためには、同期した始点行から終点行までの音符が、同時に読み出される必要がある。同期音符集合として保障されるべきものは、小節を含む小区間とチャネル全体である。読み出し処理は、展開型エクセル楽譜における各チャネルの0行目からN0−1行目までを行方向(縦)に読むことを基本とし、それをチャネル数cだけ列方向に繰り返ことを基本とする。すなわち、各チャネルの読み出しは縦読み原則である。読み出した音符集合M(m(i、j)、l(i、j+1)、a(i、j+2))は、音源生成時には、サンプリング周波数fcの離散時刻tの各音符の波形関数
W(t、 M(m(i、j)、l(i、j+1)、a(i、j+2))、x(i、t))
に変換される。ここで、x(i、t)は、本発明の生成音源の波形変数である。
【0049】
波形変数x(i、t)は、回路シミュレーション(SDP)上で設計されるオシレータ(発振器)の内部に内包する回路方程式から生成される変数である。回路シミュレーションによる音源生成である。x(i、t)は、オシレータの発音構造や共鳴構造を含む非線形現象の固有的な音色の波、すなわち、物理モデル音源からの変数である。2変数の場合には、物理モデルはアトラクタ構造で表現される。回路シミュレーションSDPによる音源生成は生の楽器だけでなく、実在しない楽器の音も作成することが可能である。例えば、回路として構成されたローレンツ・アトラクタは、振幅の大きな周波数を中心としてその周りの周波数特性が一定間隔の低スパイク状になるので、周波数集合をシフトすれば、音楽として使用可能な多様な音色を生成する。一般的には、周期倍周期によるカオス発振器では、そのアトラクタの周波数成分の振幅は複数の高スペクトル状にはならないことが多い。しかし、例えば、2次元アトラクタの周波数集合を間引きしたり、内挿補間し、さらに、MIDI集合の時系列に従ってピッチシフトすれば、十分、音楽に使用可能となる。不思議な音楽となる。フィルタによって選択された周波数領域において、可聴できるほどのスパイク状の振幅が複数個生成でき、多様な音色を生成する。このことが本発明の主たる処理となる。
【0050】
順処理では、圧縮型エクセル楽譜を展開した展開型エクセル楽譜では、複数チャネルの各チャネルに含まれる音符数N0が等価になる。それは、小区間同期記述を満足する行列である。複数チャネルは、完全MIDI集合、すなわち、5線楽譜の音符集合を完全に包含する行列となる。なお、大きさaの値は、5線楽譜上にある大きさ制御記号の意味に従って音符ごとに音楽演奏表現を考慮して決められる。
【0051】
展開型エクセル生成処理部108において、5線楽譜の音符集合を完全に包含する行列の展開型エクセル楽譜を直接、すなわち、繰り返し展開なしで、自動で生成する場合もある。このとき、各チャネルの各小区間の行数と音符数が等価になるように、必要ならば、特定なチャネルの小区間にダミー音符Dが挿入される。この挿入処理によって小区間同期記述が確立する。小区間同期記述によって、各チャネルの音符数N0はどのチャネルも等価となる。結果として、順処理では、音楽セル集合MTはN0*(3*c)の音符行列で表現されることになる。このように、順処理では、チャネル数c、音符数N0を含めて、展開型エクセル楽譜は、完全に、曖昧なく、5線楽譜に対応して、完全MIDI集合の行列として決定される。
【実施例2】
【0052】
逆処理では、展開型エクセル楽譜は、音楽の音の波から自動的に生成される。音符粒子法による自動採譜である。自動生成では、まず、音楽の音の波の時系列集合Wavファイルを短時間周波数変換部103にて周波数変換すれば、時系列化された周波数集合が生成される。テンポ解析処理104は、周波数の音符時系列の平均により、すべての音符に共通かつ等価な音符長を求める。短時間周波数変換部103では、音程抽出処理も実行される。フレームごとに時間周波数変換の処理が実行される。FFTは高速であるが、時間と周波数との依存関係が非常に強くかつフレーム間誤差、周波数集合の繰り返しによる誤差などが大きく、しかも、フレーム幅を決めるフレーム内データ数が2のべき乗でないといけないなどの制限が多い。そこで、それらの制限のないウエーブレット変換のひとつであるガボール変換を利用する。次のクラスタリング処理105は、音符の音程集合を分類する。それらの結果を使って、音符粒子の時系列行と複数チャネル列からなる行列、すなわち、音符粒子集合を音符粒子集合部106にて求める。逆処理では、音からMIDI集合を行(時間)方向に取得するので、チャネルは複数チャネル、複鍵チャネルの集合となる。すなわち、行方向で見れば、各チャネルの行集合は、複数チャネルを含み、その行集合は、MIDIシステムの各トラックに対応するものとなる。このとき、各行の各チャネルは、MIDI番号、音符粒子長、および大きさの要素からなる3列で表現される。生成された各チャネルは、複数楽器のMIDI集合となる。現状では、音符粒子法には、楽器の区別処理は含まれていない。音符粒子法の第1の重要性は、いろいろな処理や伝送の対象となる基本音符行列の生成にある。第2の重要性は、音符粒子の結合である。すなわち、音符長結合部107にて行方向に隣接する(行間に休止無音がない)時系列行間の同音程音符粒子の音符長を結合することであって、これにより音符の長さが変更される。音符粒子集合から音符集合への変換である。行方向に近接する(行間に有長休止無音がある)時系列行間の同音程音符粒子の音符長は連結されない。抽出された音符集合は、展開型エクセル生成処理部108にて小区間同期の条件を満たす行列として展開型エクセル楽譜となる。小区間は、元の5線楽譜にある小節に相当するが、自動生成により生成される同期記述の小区間である。小区間の始点と終点にてチャネル間の同期が維持されるという同期記述の概念は満たされる。結合時にダミー音符Dの挿入処理は自動的に実行され、常に、チャネル間秩序のある小区間同期記述を満たす空間での変換処理となる。これが音符粒子法による自動採譜である。
【0053】
次に、音符粒子法による展開型エクセル楽譜の自動生成について詳細に述べる。アナログ空間Saにおける1つの音の波をRMaとする。RMaをAD変換してできるデジタル空間Sdにおける音をRMdとする。すなわち、音の波形RMaを実サンプリング周波数fRでサンプリングしたとき、離散時刻tdごとに生成された音要素の集合がRMdとして定義される。音の波形RMaに対するAD変換あるいは音の物理現象に対する数値積分時に使われる実サンプリング周波数fRは、例えば、音楽サンプリング周波数fc=44、100Hz(あるいはそれよりも高いHigh Resolutionの周波数)よりも大きい高周波数あるいは小さい低周波数である。しかし、音楽で利用される時間tは音楽サンプリング周波数fcで離散化したときの離散時刻である。実サンプリング周波数fRの離散時刻は、音楽サンプリング周波数fcの離散時刻tに写像される。この写像処理は、MIDI集合から音楽の波をつくる場合に問題になるが、音楽の波からMIDI集合を求める音符粒子法では、提供されるWavファイルのヘッダー部から読み取られるサンプリング周波数に合わせて音楽サンプリングfcが決定される。音楽サンプリング周波数fcによって定義されるデジタル空間Mdにおいて、離散時刻tの音楽データの集合、すなわち、短時間周波数変換部103に入力されるWavファイルは、デジタル空間Mdにおける音楽である。音楽サンプリング周波数fcのサンプリングによって得られた時間域Tの音楽である。その音楽は、ステレオ音楽のWavファイルとして、左音と右音の各ダンプ情報として記憶部11に格納され、音符粒子法による自動採譜の処理が実行される。
【0054】
音楽のWavファイルの各ダンプ情報に対して、短時間周波数変換部103にてピッチ抽出のための短時間周波数変換処理Tを実行する。ガボール変換の実行である。得られる周波数の時系列集合をFMdとする。FMdの各要素の周波数成分は必ずしもMIDI音符の音程に対応するとは限らず、むしろかなり異なるものである。FMdは、周波数時系列であるが、離散時刻tにおける振幅が大きい周波数成分は複数ある。その周波数成分数に等しい数の音程(その周波数成分に最も近いMIDI周波数(音程))があると考えれば、音程に対応する音符もその数に等しい数だけ存在することになる。すなわち、採譜のための処理103、104、105、106、107の目的は、ガボール変換に基づく短時間周波数変換Tにより生成されたFMdの各要素を、最も確からしい音符M(i、j)の音符集合
Mi={M(i、j)|j=0、3、6、・・・、3*(c−1)}
に変換することである。ここで、音符M(i、j)の音程m(i、j)に近い周波数成分は、ガボール変換に基づく短時間周波数変換処理Tにより導出されるが、周波数音程変換を必要とする。音符M(i、j)の大きさa(i、j)も、短時間周波数変換処理Tにより導出される。大きさa(i、j)は、変換処理Tによる周波数成分の複素数における実部と虚部の2乗和の平方根である。音符M(i、j)の音符長l(i、j+1)は、音楽サンプリング周波数fcによってサンプリングされた離散時刻tの数によって定義される秒単位の長さである。チャネルの定義は、MIDI情報の時系列とする単鍵チャネルである。ただし、単鍵チャネルは、元のWavファイルに内包する複数楽器の音符情報を含む。各離散時刻にc個の音程があると仮定して、音符粒子法は、c個の複数チャネルを同期記述の条件下で生成する。採譜処理の問題は、チャネルの音符集合Miが未知、特に、音程m(i、j)が未知、チャネル数cの数が未知、チャネル内の音符の音符長l(i、j+1)が未知であることである。
【0055】
今、チャネル数cは、クラスタリング部105によるクラスタリング処理において、クラス数と等価にする。例えば、6と決める。音符番号iは音符時系列のi番目の音符を特定するインデックスである。音符番号iの成分Miの要素M(i、j)は、音符番号iのj列目の音符である。音符粒子法では、まず、音楽
MT={M(i、j)|i=0、1、2、・・・、N−1;
j=0、3、6、・・・、3*(c−1)}
内の音符M(i、j)の音符長l(i、j)も固定とする。音符長l(i、j+1)はテンポ解析部104で求められる。音符粒子集合部106が、音符粒子の時系列行と複数チャネル列からなる行列、すなわち、音符長が等しい音符粒子集合を求める。すべての音符粒子の長さは等価である。この段階で、基本音符行列が生成される。音符長結合部107の処理によって、小区間の同期記述を満足しながら音符粒子の長さが変更され、各チャネルの音符数はNとして固定化される。この処理において、行の列がすべてダミー音符となる場合があり、その行は削除されるため、順処理(音符数N0は既知か固定)と異なり、音符数Nは、音符長結合部107の処理結果に基づいて動的に決定される数である。また、順処理と異なり、音符数Nは、フレームの大きさDNにも依存する。
【0056】
音符M(i、j)のMIDI番号をm(i、j)、音程周波数をf(i、j)、音符長をl(i、j+1)、 正規化された音の大きさをa(i、j+2)とすれば、音符M(i、j)は、
M(i、j)=M(m(i、j)、l(i、j+1)、a(i、j+2))
として表現される。音程周波数f(i、j)とMIDI番号m(i、j)との対応関係は、次式で定義される。



【数1】






ここで、基準となる69はデフォルトのA音のMIDI番号で、440は、A音の周波数(Hz)である。音符M(i、j)のMIDI番号m(i、j)に対応する音程周波数f(i、j)は、単位時間の音符波形の繰り返し数に対応する。音程周波数f(i、j)はひとつなので、ガボール変換は直交基底ではないが、もし、時間周波数変換の逆変換を実行すれば、音符M(i、j)は、理想的には、周波数f(i、j)の正弦波系となる。音符M(i、j)そのものは、音符パルス波であるので、その時間域Tにおける陽的表現は複雑である。また、音符M(i、j)の正規化された音の大きさa(i、j+2)は、ガボール変換Tの複素数における実部と虚部の2乗和の平方根に対応する。音符長l(i、j+1)は音符M(i、j)の始点時刻から終点時刻までのサンプリング点数に(1/fc)を掛けた長さであるが、個々の音符M(i、j)の音符長l(i、j+1)を混合波から求めることは非常に難しい。そこで、複数チャネルにおける音符粒子の音程(MIDI周波数)の共通な音符長(平均時間)をテンポ解析部104にて求めることが重要となる。
【0057】
フーリエ変換処理を利用するテンポ解析について説明する。テンポ解析部104のテンポ解析によって、楽譜の音符粒子集合のすべての音符粒子に共通な音符長を求める。解析は、抽出、すなわち、1分間の拍数BPM(Beats Per Minute)をWavファイルから抽出することである。抽出は、場合によっては、時系列情報の統計処理、FFT、畳み込み、相関などの信号処理を必要とする。人間は、リズムを理解するが、計算機10は、音のエネルギー(音量、振幅値の2乗)の差分情報から生成する。
【0058】
先ず、サンプリング周波数をfc=44、100Hzとし、Wavファイル(例えば、Data Size = 43、057、152)をフレーム内のサンプリング数DN(例えば、4096*2)に分割し、フレームごとの音量(平均エネルギー)を次式に従って求める。

【数2】






ここで、D(n)は フレーム内のn番目のデータの振幅値である。また、例えば、sizeof(short)=8とし、 Nf=Data Size/sizeof(short)/2/DNは、フレーム数(例えば、1、314)とする。音量



【数3】




は、m=0、1、・・・、Nf−1番目の各フレームの音量(平均エネルギー)である。解析時間は、フレーム数Nf(1、314)*フレーム内サンプル数秒(DN*(1/fc))=244、088、163である。DNは各フレームのサンプリング数に対応するので、フレームの長さLfは
Lf=DN/fc(0.1857s)
で一定とする。
【0059】
次に、隣接するフレームの音量増加量を求める。m番目のフレームの音量をX(m)としたとき、減少する場合は0とし、増加差分、
DX(m)= X(m) – X(m−1)
を求める。その増加差分DXの周波数成分をテンポ解析部104内にて求める。m番目のフレームの音量の増加差分DX(m)が時間域のデータである。また、フレームのサンプリング周波数をfsとしたとき、BPM(Beats Per Minute)、すなわち、1分間(60s)に刻む拍数がテンポ解析における周波数の定義となる。周波数域の定義は、BPM空間域での定義となる。すなわち、BPP値を60から240まで変化させる。そして、各BPM空間の関数DX(m)対するフーリエ変換の実部Rと虚部Qを次式から導出する。

【数4】












ここで、fbはBPM値/60、fs=(1/Lf)はサンプリング周波数fc/(フレームのサンプル数DN)である。実際は、窓関数による波形端部の補正処理を含む。FFTはDNを2のべき乗にする必要があるが上記のフーリエ変換は、必ずしも、DNを2のべき乗にする必要はない。その意味で、音程抽出処理のガボール変換との相性がよいことになる。
【0060】
音符粒子の音符長解析は、BPM空間の周波数R(fb)、Q(fb)から求める方法となる。生のWav波形は、各音符区域の開始位置で音量が増加する特性があり、しかも、その音量の増加量は周期的現象となる。BPM空間において、各振幅値Aの最大値を検出する。音符長は、その最大値の周波数BPMmの逆数として定義され、抽出される。すなわち、解析の処理の流れは、Wavファイルのフレーム分割、隣接フレームの音量変化の取得、その時間変化分のフーリエ変換、振幅最大の周波数成分の検出、振幅最大の周波数成分の逆数の算出、となる。以上により、BPM空間におけるフーリエ変換を使って、音符粒子時系列の周期、すなわち、ひとつの平均音符長Lを求めることができる。音符粒子の平均音符長L(秒)は、例えば、曲依存値として、
L =60/BPMm
となる。
【0061】
次に、ガボール変換による時間周波数変換部103とクラスタリング部105において、音符粒子の音程(MIDI番号)の集合を求める。ステレオWavファイルの左音と右音を分けて実行する。時間域と周波数域におけるサンプリング周波数を同じfc(=44、100Hz)、フレームのサンプリング数をDN(4、096*2)とする。FFTを利用する場合は、DNは2のべき数に設定される必要があるが、ガボール変換では、その制限は基本的には必要としない。フレーム周期(時間)はLf=DN/fcである。変換部103における短時間周波数変換(ガボール変換)の結果を周波数f(t)とする。フーリエ変換、高速フーリエ変換FFT、あるいは、Goertzel変換では、周波数f(t)と離散時刻t、すなわち、周期Lfごとの時刻には関係がある。離散時刻tの周波数f(t)は、
帯域0<f(t)<DN/2において、
f(t)=t*(1/Lf)
帯域DN/2<=f(t)<DNにおいて、
f(t)=(DN−t)/Lf
となる。時間と周波数の分解能がこの時間周波数の変換基本式に支配される。ガボール変換ではf(t)を与える式は、いわば、tに依存しない関数で決めることができる。FFTでは、解析区間の長さによって一意に周波数分解能が決定される。ガボール変換は、その解析過程において解析周波数を時間tに対して自由度が非常に高い。時間分解能と周波数分解能をほぼ独立的に選択できる特徴を有する。そのため、結果の不完全MIDI集合と完全MIDI集合との差は、曲依存があり、解析時間がFFTの場合よりかかるが、FFTの結果よりも小さいという実験結果が得られている。
【0062】
ガボール変換について説明する。例えば、 時間域のステレオ左信号l(t)(あるいは、 右信号r(t))を周波数変換する。窓関数を時間方向に移動しながら、その時間区域の信号のスペクトルをフレームごとに解析することになる。変換に関し複素正弦波exp(−jωt)を乗じる操作とみなし、ガボール窓関数と信号l(t)との積をフーリエ変換するとすれば、

【数5】







となる。ここで、σ はガウス関数の広がりを定める定数である。スペクトルは時間b と各周波数ω の関数となる。この式は、基底関数が

【数6】






とする変換式の表現でもある。ここで、σとω は独立となる。短時間周波数フーリエ変換STFTであるから、このままでは、「不確定性の原理」が存在する。すなわち、jω の存在による短時間周波数変換では、 周波数分解能と時間分解能を両立させることができない。ω を削除し、ガボール変換に対応するマザーウェーブレットを

【数7】







とすると、この関数は、ωを一定、例えば、ω = 1 とする複素正弦波exp(ーjt)にガウス関数を乗じたものとなる。特徴は角周波数ω に依存しない式となっている点である。このマザーウェーブレットを時間方向に拡大・縮小及びシフトした関数

【数8】




を使うことになる。パラメータa は、その関数を時間方向に拡大・縮小する比率を決定するが、これが、周波数に相当する。また、パラメータb は、時間の移動量に対応し、ガウス窓の位置、すなわち、解析する時間を決定する。この関数を用いて、ガボール変換は、複素共役表現を用いて、

【数9】





によって定義される。本発明では、初期周波数f0から最終周波数fmまでの変化を表現する数種の関数を用意し、広さσも曲依存による選択とする。解析周波数間隔はセント単位(十二平均律のオクターブを1200 セント、半音の間隔は100セントとする)で設定される。また、ガボール変換では、フレーム長DN を2のべき乗にする必要はないので、DNの選択の自由度もFFTより大きいことになる。音符粒子法では、DNの大きさに従って、全体の音符数Nが異なる特徴がある。一般化調和解析も周波数と時間との間の依存度が小さく、周波数の選択に自由度があるが、原波形と正弦波集合との差分を小さくすることの繰り返しがあるため、膨大な時間がかかるのが問題である。現状では、ガボール変換がベストな方法である。
【0063】
周波数f(t)に対応するMIDI番号(音程周波数、ピッチ)は、intの整数化を使って「数1」の逆関数として、
MIDI番号=(int)(69.0+12.0*log2(f(t)/440.0))
となる。MIDI番号は、各フレームDN内のスペクトルf(t)に対応するので、その抽出数は、重複を含めると、DN個存在する。多数である。そこで、正規化された最大振幅値Amaxを有する線スペクトルfmax(t)を基準として、倍率パラメータbaiに対する下限振幅値bai*Amaxから上限振幅値AmaxまでのR個の線スペクトル
F={fk(t)|k=0、1、2、・・・、R−1}
に限定して抽出する。抽出数Rは各フレーム m=0、1、2、・・・、Nf−1ごとに異なるので、Rをチャネル数c(例えば、6)に固定する処理、すなわち、c個のクラスタのクラスタリング処理をクラスタリング部105にて実行する。
【0064】
音符粒子集合のクラスタリング処理を説明する。R<cのときは、抽出されたR個のMIDI番号中から適切なMIDI番号を(c−R)個複写する。ただし、複写されたチャネルは、後処理にてエクセル上で削除される場合が多い。チャネル数は必ずcとなる。R>cのときは、抽出されたR個の中からk−means法によりクラスタリングすることになる。k−means法は、MIDI番号集合において、c個のクラスタ重心(MIDI番号)に距離が近く、かつ、c個のクラスタ重心間の距離が大きくなるようにクラスタ重心を見つけるアルゴリズムである。c個のクラスタ重心に対応するc個のMIDI番号のみを選択することになる。デフォルトは、c=6、bai=0.9である。抽出数Rが大きすぎる場合もあるので、曲依存で倍率baiを選択する必要がある。k−means法の真の解を求める問題はNP困難となるが、抽出数が6以下となるフレームが多く、この場合、k−means法のルーチンがスキップされるので、6チャネル程度の音符粒子の集合を求めるk−means法は高速である。k−means法は初期値依存性などの欠点もある。他のクラスタリング手法、例えば、アフィニティマトリックス法、行列クラスタリング法、隣接行列クラスタリング法、相関行列クラスタリング法などを使ってもよい。例えば、クラスタリング処理後の音符粒子集合の展開型エクセル楽譜、すなわち、基本音符行列を表3に示す。
表3












【0065】
1列目は、メロディ1の音符粒子のMIDI番号である。2行目が音符粒子の音符長列で、すべて、0.253165と等価である。3行目は、メロディ1の音符粒子の大きさである。4行目はメロディ2の音符粒子のMIDI番号である。5行目がメロディ2の音符粒子の音符長列で、すべて等価である。6行目は、メロディ2の音符粒子の大きさである。7行目はメロディ3の音符粒子のMIDI番号である。8行目がメロディ3の音符粒子の音符長列で、すべて等価である。9行目は、メロディ4の音符粒子のMIDI番号である。10行目がメロディ4の音符粒子の音符長列で、すべて等価である。11行目は、メロディ5の音符粒子のMIDI番号である。12行目は、メロディ5の音符粒子の音符長で、すべて等価である。13行目は、メロディ6の音符粒子のMIDI番号である。14行目は、メロディ6の音符粒子の音符長で、すべて等価である。なお、3列表現を基本とするが、ここでは、メロディ3、4、5、6は、大きさが予め決められた2列表現である。すべての音符粒子の音符長は、テンポ解析結果として導出された値で、L=0.253165ですべて同じ値である。このように、各チャネルは、MIDI番号、音符粒子長、および大きさの要素からなる3列で表現されるが、大きさの要素は予め決められているならば表示上削除される。これが基本音符行列である。MIDI情報の処理、伝送の基本となる。
【0066】
音符長が等価な音符粒子集合の展開型エクセル楽譜、すなわち、基本音符行列に従って演奏すると、同期性と秩序性は高いが、当然、聞けば情緒性のない機械的な音楽になる。そこで、音符長結合部107における音符長結合処理を説明する。音符長が等価な音符粒子集合の展開型エクセル楽譜において、各チャネルは、MIDI番号、音符粒子長、および大きさの要素からなる3列、または、和音展開列の2列で表現される。ただし、自動採譜であるので、和音の再現は不完全となる。音符長結合部107では、行方向に隣接する(行間に休止無音がない)時系列行間の同音程音符粒子の音符長を結合することにより音符の長さを変更する。行方向に近接する、行間に有長休止無音がある時系列行間の同音程音符粒子の音符長は連結されない。小区間内の時系列行間の同音程音符粒子の音符長は累積され、その小区間の最後の行にある音符長が累積長に変更され、小区間内の他の行の音符長は0、すなわち、ダミー音符となる。列方向にてすべての音符がダミー音符となればその行は削除される。音符粒子集合から音符集合への変換である。抽出された音符集合は、同期記述、小区間同期、すなわち、小区間の始点と終点における同期の条件を満たす行列として展開型エクセル楽譜となる。
【0067】
音符集合からなる展開型エクセル楽譜を表4に示す。例えば、結合前の状態が表3の展開型エクセル楽譜であるが、音符長結合処理後は、表4の展開型エクセル楽譜となる。表3において、1列目の2行目にあるMIDI番号79は、3行目、4行目、さらに、5行目に連続して存在する。小区間は、4行分である。小区間内の各行の音符粒子の音符長は、それぞれ、0.253165ですべて同じ値である。音符長結合処理後の表4の展開型エクセル楽譜では、MIDI番号79は、表3の5行目にあるMIDI番号79としてまとめられ、音符長は、累積値0.253165*4=1.01266となっている。時系列行間の同音程音符粒子を含む他の小区間において、同様な結合処理が実行される。音符長結合部107の音符長結合処理によって、全体の行数は23から10行に減らされる。行のすべてのMIDIの音符長が0、すなわち、ダミー音符となる場合は、その行は削除される。以上が、音符粒子集合から音符集合への変換である。抽出された音符集合は、小区間同期の条件を満たす行列で、行列楽譜の展開型エクセル楽譜となる。これが音符粒子法による自動採譜である。結合部107の音符長結合処理では、ステレオの左音と右音をそれぞれ独立に実行される。この場合は、左音と右音の各有効音符数は異なるが、有効音符数が短い方の最終部にはダミー音符が挿入され、結果としては、どちらも同じ音符数Nとなる行列楽譜が生成される。左音と右音をまとめて、音符長結合処理を実行するモードもある。結合処理は、左音と右音を統一した大きな次元を有する行列上で実行される。しかし、結果的には、同期記述の同期性が強くなり過ぎ、むしろ、独立に実行した方が感覚的にはよいという実験結果が得られている。
表4







【0068】
音符粒子法では、同期記述された行(最小小区間)からなる音符長等価な音符粒子集合を生成し、時系列行間の同音程音符粒子を含む同期小区間内で音符長を結合して音符集合に変換している。同期記述の範囲での行列変換である。音楽表セル集合MTの展開型エクセル楽譜生成時には、チャネル間に渡る列方向の書き込み処理を含み、その展開型エクセル楽譜の読み出し時には、その読み出し処理は、チャネルごとの行方向で実行される。音楽表セル集合MTの展開型エクセル楽譜は、計算機10によって5線楽譜に変換されてもよい。処理部110にて、展開型エクセル楽譜は、汎用のMIDI.csvに変換される。変換後は、汎用のMIDIシステムを使うことができる。複数チャネルの音源付き演奏が、デスプレィ上で、トラックリスト表示、ピアノロール表示、イベントリスト表示、自動5線音符表示のうち少なくとも1つを動画表示しながら、計算機10によって実行される。編集もできる。図4は、行列楽譜処理法の処理を実行する計算機10内の音楽システムの画像表示である。MIDIシーケンサのPC上の画面である。上部にあるのが6トラックリストである。さらに、下部左側にあるピアノロール、下部左側の下にあるイベントリスト、下部右側にある自動採譜の譜面ウインドウが表示される。処理部110にて生成されたMIDI.csvは、本発明の回路解析部111からの変数の波と結合される。すなわち、アトラクタ構造を間引きする静的ピッチシフトで相似アトラクタを生成し、その変数に対応する周波数集合をそのMIDI集合の時系列に対応するようにシフトする動的ピッチシフト処理を含む処理部111にて結合される。そして、処理部112にて、Wavファイルに変換され、再生部115にて複数チャネルの同時演奏がPC上で実行される。処理部110にて生成されたMIDI.csvは、MIDI.midに変換され、標準音源を使用して再生部115においてPCM波で再生される場合もある。
【0069】
圧縮型エクセル楽譜は、小区間同期が記述された5線楽譜対応の媒体で、PC演奏、PC保存、インターネット通信の容易なITC媒体となる。展開型エクセル楽譜は、複数チャネルの時系列音符集合の各チャネルの音符の音程、音符長、大きさが列方向に展開されたICT媒体となる。ユーザにとって、極めて理解し易いエクセル楽譜の媒体である。基本音符行列は、音符長が統一されているので、同音程の結合処理を受信側で実行することを条件にすれば、すべての音符の音符長を伝送する代わりにひとつの音符長を伝送すればよいことになる。これは、例えば、QRコード化に適する。同音程の結合処理の結果である展開型エクセル楽譜は、音楽の音の波から小区間同期の条件を満たす行列楽譜として自動生成され、複鍵チャネルを含む複数チャネルの演奏楽譜となる。
【0070】
順処理による完全MIDI集合と逆処理による自動採譜の結果の不完全MIDI集合は、楽譜であって、音楽の音の波集合を包含してはいない。音符粒子法による自動採譜の結果の不完全MIDI集合は、編曲楽譜である。編曲楽譜ではあるが、完全MIDI集合の部分集合を有し、その編曲による音楽は、複数チャネルで、テンポある、リズミカルな、聞ける音楽となる。
【実施例3】
【0071】
次に、本発明の回路解析部111と数値積分法について説明する。回路において、2つの節点(a、b)の電圧を電流に変換する式で記述される素子を2変数素子と呼び、特に、単独で音の波を生成する2変数素子を(電流)音源素子または回路的に電流源素子と呼ぶ。ジャイレータは電圧制御電流源である。電圧源は、電流源と抵抗の並列接続によって構成される。SDPは、電圧制御電圧源(オペアンプ)や電流制御電圧源による音源設計、MOSやバイポーラのトランジスタによる音源設計も可能ではあるが、設計事項であるため、その説明は割愛される。2変数素子を複数結合してできる回路を音源セルと呼ぶ。その音源セルの集合を音源セルネットワークと呼ぶ。各音源セルは、回路の連続な状態変数によって常微分方程式(状態方程式)によって記述される。状態方程式は、節点とグランドG間に接続されたコンデンサCに流れる電流をその節点電圧の微分で表現することによって、回路の記述を表現することになる。コンデンサCの電圧は連続な状態変数なので、微分方程式の変数として利用できることになる。言い換えれば、2端子の2変数素子の端子a、bを節点とする節点電圧は連続となる。ここで、例えば、bがグランドGとする場合は、bの電圧は0、すなわち、回路の基準となる参照電圧0となり、端子aの電圧が連続な節点電圧となる。端子a、b共にグランドG以外の節点とするならば、その2変数素子は浮いた枝となるが、端子a、bの各節点電圧は連続となる状態変数である。インダクタLの電流は連続である。SDPでは、ジャイレータの2次側の節点とグランド間にコンデンサCが接続されることによって1次側から見たインピーダンスがインダクタンスに対応する構成でインダクタを形成する。インダクタの電流の連続性は、2次側の節点電圧の連続性として扱われる。従って、本発明の音源セル、音源セルネットワークは、構築する内部の節点電圧はすべて連続とし、すべての節点電圧の電圧微分、すなわち、電流として、節点から出る電流の和が零というキルヒホッフの電流則を基本として、節点方程式で記述される。ネットリストによる表現である。
【0072】
係数が時間tを含む時変系の微分方程式を表現するネットリストにおいて、時間tは、節点と他端がグランドGに接続されたコンデンサCと独立電流源CSとの並列接続のその節点電圧によって生成される。このようにして、係数に時間tを含む時変系の微分方程式の数値積分も可能となる。次に、自動微分に基づく音源セルネットワークの生成に関し、特に、アトラクタ構造の音から音楽をつくる音楽生成法に関して説明する。回路は、節点と枝からなるグラフGにおいて、L(インダクタ)、C(コンデンサ)、R(抵抗)、あるいは、電圧vに関する非線形関数f(v)で定義される電流非線形素子i=f(v)、電源などが枝として節点間に接続されたネットワークである。キルヒホッフの電圧則、キルヒホッフの電流則および枝特性(オーム則)を適用すると、回路の節点方程式は、非線形微分方程式(非線形状態方程式)

【数10】






で表現される。ここで、tは時間、vはグランド(アース)を除くn次元の節点電圧ベクトル、uは入力ベクトルである。陰的数値積分法の後退オイラー法は、離散時刻mと刻み幅h=Δtを使うと、非線形方程式

【数11】






で表現される。非線形関数fのヤコビ行列を

【数12】






とすれば、非線形方程式の解法は、刻み幅hごとに線形方程式

【数13】













を解く、ニュートン・ラフソン法に帰着される。ここで、kは、ニュートン・ラフソン法のkステップ目を意味する。この線形方程式は、ヤコビ行列JをLU分解し、前進代入、後退代入することにより、疎行列演算を含めて、直接法で解くことができる。また、節点とグランドG間に仮想キャパシタを挿入して、対角優位の収束条件を満たすように数値積分する仮想緩和法もある(非特許文献5、6)。緩和法は、ヤコビ行列Jの0成分をスキップすることができる。SDPには、直接法、仮想緩和法の両方法が含まれ、さらに、精度をよくするため、後退オイラー法を拡張した陰的多段法のGear法が組み込まれている。また、陰的ルンゲクッタ法も使用可能である。発振現象の数値積分にはヤコビ行列Jを必要とせず、収束するならば、精度が非常によい陽的ルンゲクッタ法も使用可能となっている。音楽の波を表現する非線形微分方程式は、時々、ヤコビ行列Jの固有値の大小関係が大きいスティフな系となることがあるので、デフォルトとして、仮想緩和法によるGear法を使用する。周波数集合の周波数が低い場合は、陽的ルンゲクッタ法を使用する場合も多い。
【0073】
安定性、精度、速度を考慮した数値積分法の選択問題がある。波形が有する周波数集合の周波数が低い場合には、解析上の問題はそれほどないと言える。例えば、刻みh=2.26757E−3とし、時間50sとして、仮想緩和法によるGear法あるいは陽的ルンゲクッタ法で非線形微分方程式を解くことができる。しかし、刻みh=2.26757E−3以下にしないと数値積分が安定的に解けない場合も多い。その場合、解析の設定基準は、左音楽l(t)と右音楽r(t)とするべき回路の2変数の集合{x(t)、y(t)}を、音楽の標準レートのサンプリング周波数44、100Hzに対応するh=2.26757E−5とすることである。この場合には、Gear法で、例えば、約0.2秒分の回路情報を取得し、解析ファイルに格納することになる。Gear法のような陰的数値積分は、刻み幅hごとに線形方程式(数13)を解く必要があるため、回路によっては、時間がかかるので、0.2秒程度に制限する必要がある。さらに、回路によっては、刻み幅hを2.26757E−5以下の値に設定せざるを得ない場合もある。約0.2秒分の回路情報を取得した場合、MIDIに対応する音符長は、4分音符で約1秒程度であるとすると、0.2秒ではひとつの音符長としては短いことになる。そのため、波形の複写処理が静的周波数シフト処理後に実行される。
【0074】
枝の特性が線形ならば、ヤコビ行列は、節点コンダクタンス行列、すなわち、対角成分には、節点に接続されるコンダクタンスの和、節点aと節点bに対応する非対角成分(a、b)にはaとbとの間に接続されたコンダクタンスgに負を付けたーgの値が挿入された行列となる。しかし、枝電圧vに関する非線形素子i=f(v)がある場合には、その微分値がその時点での枝コンダクタンスとなるので、素子微分(偏導関数値)が必要となる。トランジスタのような複雑な素子であっても、素子微分値を求める計算式をあらかじめデータ構造として記憶部に記憶しておけば、素子微分からヤコビ行列Jを求めることができる。SPICEには、このデータ構造の種類が多く記憶され、デバイス表現が非常に豊富なため、SPICEは、再業界において、集積回路の設計に有効に使われている。SDPは、MOS、バイポーラのトランジスタのモデルが組み込まれているが、SPICEと比べて、デバイス能力はそれほど高くはない。しかし、本発明において、初めて、素子微分値を求める計算式を2変数a、bに関する自動微分で求めるアルゴリズムが組み込まれた。すなわち、ユーザ自身が数式を表現すれば、2変数素子に関する2変数a、bの数式の関数値、および、その関数を自動微分して、ヤコビ行列Jを自動で求めることができる。節点aと節点bに対応する記号aと記号bを含む数式を表現する2変数自動微分法である。すなわち、2変数自動微分法は、音源セルネットワークを入力ファイルに表現し、自動微分する技術である。計算グラフGの構造に対応する数式を節点aと節点bに接続する2変数素子(a、b)として表現し、受動素子との並列接続(電圧同期)と受動素子との直列接続(電流同期)、あるいは、独立接続による回路を表現する技術である。2変数素子が電流源(2端子間を流れる電流が接続に無関係に内部に包含する時間t、固定値、あるいは外部節点電圧の制御で決定される素子)である場合、2変数素子のみのカットセットは存在しない。2変数素子枝は電流源である場合、異なる2変数素子枝のみの直列接続(電流同期)は存在してはならない。電源2変数素子のみの並列接続(電圧同期)は存在してはならないが、その並列接続(電圧同期)に少なくともとひとつの受動素子があればよいことになる。回路は、節点電圧の関数として与えられる電流の2変数素子を並列接続し、ひとつのコンデンサCに並列接続する構成である場合が多い。その回路構成は、微分方程式の1式を生成する。独立変数の数に等しい式を回路として構成すれば、多次元の状態方程式で記述される回路、すねわち、音源セルネットワークを構成することになる。
【0075】
次に、計算グラフGについて説明する。2変数(x1、x2)は回路の2変数素子(a、b)に対応し、変数x1は節点aの節点電圧、変数x2は節点bの節点電圧に対応する。今、受動の2変数素子の数式が

【数14】






で表現されるとする。この関数はx1とx2の2変数関数である。そして、正弦波sin(x2)を含む。x2が時間tに依存するならば、関数は音の波となる。節点電圧x2を独立電流源CSとコンデンサCの並列接続の節点電圧と等価にすれば、その節点電圧は、時間増加に伴い線形的に上昇する時間依存型節点電圧となる。このことから、x2の時間tの依存性は、その並列接続の回路から独立的に生成でき、上記の2変数関数は、x1も固定電圧あるいは時間tのみに依存するならば、電源素子、すなわち音源素子となる。図6は数式14に対応する計算グラフGである。根の最上位節点が2変数a、bの関数f(a、b)を表現し、最下位の葉が2変数x1、x2及び定数に対応する節点である。間の節点vは、中間変数である。枝di(ej)の表記は、上位節点iの変数を下位節点i_downの変数で微分した偏導関数値の重みを意味し、番号jは、上位節点iの演算対象である中間2変数a、bに対する左枝1、右枝2の番号j=1、2に対応する。
【0076】
図6の計算グラフGでは、各枝の偏導関数値はそれぞれ次のようになる。
【数15】
















【0077】
関数f(x1、x2)の変数x1に対する微分は、根から葉x1に至る経路(パス、始点から終点までの枝の集合)上にある枝の重み値(偏導関数値)の経路積を計算し、その経路がp個存在すれば、p個の経路積の和とする計算で求められる。関数f(x1、x2)の変数x2に対する微分は、根から葉x2に至る経路上にある枝の重み値(偏導関数値)の経路積を計算し、その経路がq個存在すれば、q個の経路積の和とする計算で求められる。ia、ibを2変数素子が接続される節点番号とすれば、ヤコビ行列Jの要素(ia、jb)の値は、計算された偏導関数値がすでに計算された並列枝の偏導関数値に符号を考慮して累積された値となる。根v5の初期値のみ1とし、それ以外の初期値を0とする節点の演算値(バッファ)をS(v)、S(x)とする。各計算値は以下のように導くことができる。
【0078】
【数16A】

















【数16B】

















以上が2変数自動微分法である。
【0079】
本発明では、2端子の2変数素子の特性として、2変数aとbに関する2変数自動微分法を使って計算グラフGに対応する関数を表現し、ネットリスト内で、素子の結合として回路を構成し、表現された音源セルネットワークの節点方程式を数値積分することになる。数値積分は、ヤコビ行列Jを必要とする陰的Gear法、または、ヤコビ行列Jを必要としない陽的ルンゲクッタ法を使って実行される。音をつくるための数値積分の刻み幅hは一定である。刻み幅hは、音楽の標準レート、例えば、44、100Hzに対応する2.26757E−5に合わせれば、解析空間から音楽空間への写像に関する変換誤差がないと考えられる。しかし、刻み幅hは、適切な数値積分法を選択し、さらに、その数値積分の安定性、精度および速度を考慮して独立に決定されなければならない。ヤコビ行列Jの最大固有値と最小固有値の大きさの差が大きいスティッフ系の微分方程式の解を得るためには、陰的Gear法などの陰的数値積分法が適用される。現象の音の波には非スティッフ系も多く、その現象を表現する微分方程式の解を得るためには、陽的ルンゲクッタ法などの陽的数値積分法も多く使用される。
【0080】
次に、ネットリストについて説明する。音源セルネットワークの回路内にある2変数素子は計算グラフGに対応する2変数関数f(a、b)としてネットリスト上に表現される。例えば、入力ファイルでの2変数素子(2端子素子)の表現は、
Func(a、b;f(a、b))
となる。aは枝(a、b)の電流が出る節点の番号、bは枝(a、b)の電流が入る節点の番号に対応する。関数f(a、b)は、節点電圧va(ボルト)と節点電圧vb(ボルト)の関数で、関数値は電流(アンペア)である。数式が枝電圧v=vaーvbの差分関数として表現されるならば、その2変数素子表現は、1変数vの表現として、
Func(a、b;f(v))
としてもよい。また、電圧制御電流素子の表現は、
FuncM(c、d、a、b;f(a、b))
である。これは、電流値f(a、b)が他の枝(c、d)に電圧制御電流源の電流として与えられることを意味する。節点における電流の方向は、電流が出る方向を正とする。
【0081】
例えば、図7は、SoundCと名付けられた音源セルネットワークのネットリスト、すなわち、入力ファイルの表現である。3つのセルCell0、Cell1、Cell2は、マクロ定義外のbranchとend間で使用され、出力端子outと入力端子inにネットリスト上の節点番号が置換されることによって、音源ネットワークの構築の構成部分となる。Macroと2つのEnd間がそれぞれの音源セルのマクロ定義である。各マクロは1つの音源セルの回路構成を定義するもので、受動素子、電源、2変数素子(電流素子)の結合系として構成される。例えば、ネットリスト内の表現

【数17】






が電圧制御電流素子の2変数素子である。番号1がセル内の節点番号1で、節点電圧aに対応し、記号Vinで、入力電圧Vinが与えられるセル内の節点で、節点電圧bに対応する。節点1は、
C(1、G;1.0)
CS(1、G;−1.0)
の表現に関係する節点である。この表現は、その節点1とグランドG間に接続された1FのコンデンサCと1Aの独立電流源CSの並列接続の節点を意味する。すなわち、この独立な並列回路は、電流積分による線形増加する節点電圧を発生する回路で、時間tの値に対応する節点電圧が節点1の電圧として生成される。すなわち、a=tとなる節点電圧が、記号“と記号”の間で定義された数式FuncM内で使われる。数式FuncM内の時間tは、本発明では、コンデンサCと独立電流源CSの並列接続の節点電圧とし定義される。時間tの方程式による電圧表現の一般化である。なお、独立電流源CSの電流がー1と負なっているのは、節点から出る電流を正としているので、節点1に入る電流は負となるからである。また、要求される入力波形が固定値または関数として定義される場合は、Vin=10.0(固定値)あるいはVin=g(t)の数式が入力ファイルにて表現される。入力電圧Vinが時間tに依存したパルス波形として定義される場合は、そのパルス波形は立ち上がりと立下りに関する時刻と電圧値のペアとして、別の波形入力ファイルで定義される。入力端子が複数個必要な場合は、Vinとは異なる文字列を使うことになる。電圧制御電流素子FuncMの表現によって、i=sin(2πf0t+0.2*sin(2πfmt))となる複雑な電流関数(周波数がベッセル関数で表現される時間域関数)がセルの出力端子outと入力端子in間に挿入されることになる。ここで、電流関数内のf0=440Hzはキャリア周波数、fm=Vin「ボルト」=10.0「Hz」は変調周波数である。その電流関数の周波数集合は、440Hzを中心としてその近傍に複数のスペクトルが存在する構造となる。この関数により、“さらさら”音が出力される。
【0082】
R(out、in;1.0)
で定義される抵抗Rは、1.0オームであって、セルの出力端子outと入力端子inとの間に接続される。
【0083】
C(out、in;0.00001)
で定義されるコンデンサCは、0.00001Fであって、セルの出力端子outと入力端子inとの間に接続される。従って、セルCell0は、電圧制御電流素子FuncM、抵抗R、コンデンサCが互いに並列接続された回路構造として定義されている。Cell1も同様であるが、変調周波数が10*0.5=5Hzで定義されている。Cell2は単なるLC回路の発振セルである。
【0084】
インダクタLは2端子素子であるが、入力端子が2つ、仮想出力端子が2つある。いわば、2端子対回路の表現
【0085】
L(in、out、1、G;0.359E−3)
として定義される。この理由は、SDPは、節点方程式のみで回路方程式を立てるからである。すなわち、各節点において、電圧依存する電流の代数和が零というキルヒホッフの電流則を基本としているからである。コンデンサCは、電圧微分によって電流が表現されるが、インダクタLは、電流微分によって電圧が表現されるので、節点方程式を立てる場合には、電圧と電流の相対性に対応する工夫が必要となる。SPICEは、修正節点方程式による工夫、すなわち、節点電圧変数以外にインダクタ電流も状態変数とする技術を基本としている。SDPは、電圧微分のみで節点方程式を立てる技術を基本としている。図8に示すように、電圧電流変換するジャイレータの仮想出力端子対(例えば、1とGの間)に仮想的なコンデンサC=0.359E−3「F」を接続した回路を構成し、ジャイレータの入力端子対側のinとout間から見ると、インダクタL=0.359E−3「H」と等価になることを利用している。ジャイレータの有効利用である。今、電圧をV、電流をI、コンダクタンスをgとし、番号1は入力側の端子、番号2は出力側の端子に対応するとき、図8のジャイレータの2端子対表現は、

【数18】



となる。その仮想出力端子対にコンデンサCを結合すると、ラプラス演算子sの領域では、入力電圧は、

【数19】



となる。この式において、インダクタンスLのインピーダンスはsLであるから

【数20】




となり、これは、等価インダクタンスLとなる。すなわち、g=1とすれば、コンデンサCの値と等価なインダクタンスLとなる。コンデンサCが接続される仮想の2次側端子対は、独立な節点とグランドGにすればよい。入力側端子対の2つの節点のいずれかをグランドGとする必要性はない。すなわち、インダクタLをグランドGから浮いた素子としても利用可能となる。このジャイレータ方式で、1次側のインダクタ電流I1は2次側の電圧V2として表現され、その分、修正節点方程式の場合と同様、節点方程式の次元はひとつ増えることになる。
【0086】
また、
PWL(in、out;−0.03)
の表現がある。この表現PWLは、線形区分関数を意味する。数値の部分が正とする
PWL(in、out;0.03)
の表現の場合は、図9の左側の関数P+(x)に示すように、飽和特性をもち、値が0.03オームであって、それが、出力端子inと入力端子outの間に接続される非線形抵抗を意味する。
PWL(in、out;―0.03)
の表現は、図9の右側の関数P_(x)に示すように、その抵抗が負性抵抗(−0.03)オームになっていることを意味する。Cell2の音源セルは、LとC、さらに、その負性抵抗が並列に接続された回路で構成されている。受動LC回路は、理想的にはLC発振回路であるが、離散化された場合には、減衰振動する波形となって、平衡解に落ちる。そこで、振動維持のため、発振器として構成する場合には、負の抵抗を有するPWLを必要とする。
【0087】
マクロで定義された3個のCell0、Cell1、Cell2を結合することにより、音源セルネットワークの構造が定義される。その定義は、本体のネットリスト部で定義される。各音源セルの出力端子outと入力端子inには、節点番号が具体的に挿入される。Cell0とCell2は節点1とグランドGの間に接続されているので互いに並列接続される。PWLは電源素子と受動回路との電圧同期である。また、Cell1は、節点2とグランドG間に接続されるので、その並列接続とは分離された独立回路となる。2変数素子(a、b)と受動素子(b、c)が並べられる場合は、直列接続となり、電流同期の接続となる。
【0088】
しかし、音源素子、電流源素子のみの直列接続はできない。また、枝集合として枝素子(a、G)と枝素子(b、G)があって、さらに、他の枝素子(a、b)がネットリスト内にあれば、その枝素子(a、b)は枝素子(a、G)と枝素子(b、G)とを結合する浮き枝となる。浮き枝(a、b)は、音源の2変数素子でもよいが、節点a、bそれぞれには、少なくともひとつの受動回路が接続されていなくてはならない。枝素子(a、b)は枝素子(a、G)と枝素子(b、G)の3個の枝全体で閉路を構成する構造となる。以上のように、閉路を増やせば、回路となり、複雑な音源セルネットワークが構成されることになる。
【0089】
変数x、y、zの微分方程式(状態方程式)

【数21】









を数値積分することによってできる2変数の座標点(x、y)をそれぞれプロットすると、図10Aのようなローレンツ・アトラクタが生成される。この微分方程式に対応する入力ネットリストの主要部は、



【数22】


















となる。 ここで、GYL(1、G、2、G;0、−10.0、0、0)

は、ジャイレータに対応する2端子対回路のコンダクタンス行列表現




【数23】




の要素g1、g2、g3、g4の値が、それぞれ、0、−10.0、0、0となるジャイレータを表現する素子部である。節点2とグランドGとの節点電圧を電流枝に変えて節点1とグランドGに挿入する働きをする回路である。すなわち、ネットリスト

【数24】







の部分が、微分方程式の第1式 (dx/dt)=―10x+10yを節点1から出る電流和が零という節点方程式として表現している。xは節点1の節点電圧で、yは節点2の節点電圧である。節点1に関する式に反映させるためには、2から1への電圧電流変換するジャイレータが使用されている。
【0090】
ネットリスト

【数25】








の部分が、微分方程式の第2式 dy/dt=28x―y―xzに対応する。3番目のFuncのaは、節点2の節点電圧の変数y、bはグランドGの節点電圧0に対応し、値が1.0のコンダクタンスを表現する。単に、枝電圧“v”としてもよい。4番目のFuncMにおいて、aは節点1の節点電圧の変数x、bは節点3の節点電圧の変数zに対応し、積xzの電圧を生成し、節点2への電流に変換されている。xは節点1の節点電圧で、zは節点3の節点電圧であるが、積xzの電圧を電流に変換し、節点2に関する電流に反映させるために、ジャイレータが内包されている。
【0091】
ネットリスト
【数26】








の部分が、微分方程式の第3式dz/dt=(−8/3)z+xyを表現する。2番目のFuncのaは、節点3の節点電圧の変数z、bはグランドの節点電圧0に対応し、コンダクタンス値8/3のコンダクタンスを表現する。3番目のFuncMのaは節点1の節点電圧の変数x、bは節点2の節点電圧の変数yに対応する。積xyの電圧を生成し、節点3への電流に変換している。xは節点1の節点電圧で、yは節点2の節点電圧であるが、積xyの電圧を電流に変換し、節点3に関する電流に反映させるために、ジャイレータが内包されている。
【実施例4】
【0092】
回路の音から音楽への写像について説明する。回路を解析する場合、数値積分する刻み幅hは、その安定性、精度および速度を考慮して決定される。その刻み幅hを、Wavファイルのヘッダーから抽出された標準レート、例えば、44、100Hzの逆数2.26757E−5に合わせることができれば、回路変数の波形変化は、そのまま、音の波形変化に写像される。さらに、その音の波形を時間周波数変換して得られる周波数集合をMIDI集合の時系列に対応するように動的にピッチシフトさせることができれば、その音楽は、回路によって記述される現象の音色の音楽となる。すなわち、本発明では、回路解析を実行する数値積分の刻み幅hとして、標準レート、例えば、44、100Hzの逆数である2.26757E−5を選択使用することが優先される。しかし、現象を表現する周波数集合の周波数は低い場合も高い場合もある。その現象を表現する回路の解を求めるための数値積分法の刻み幅hは、安定性、精度および速度を考慮して、低サンプリング周波数2.26757E−3、あるいは、高2.26757E−7とする場合もある。数値積分のサンプリング周波数fh=1/hを使用して得られた回路変数の波の軌跡を標準レート(44、100Hz)で得られる音楽の音の波の軌跡に変更するサンプリング写像が必要となる。 サンプリング周波数fh=1/hを使用して得られた回路変数の時系列集合をそのまま標準レート(44、100Hz)でサンプリングされた集合とみなす写像が単純サンプリング写像である。単純サンプリング写像によって、回路の周波数集合は、拡大、縮小の写像処理によって変更される。
【0093】
しかし、本発明では、単純サンプリング写像操作によって得られた音は、回路によって表現される現象の音のひとつと考える。回路によって表現される現象の音は、回路変数の2変数の解曲線から生成されるアトラクタ構造上の実数点(x0(t)、y0(t))の時間的変化による波である。実数点(x0(t)、y0(t))を操作(単純サンプリング処理を含む)によって音とから音楽をつくることを音操作Op(S)と呼ぶことにする。すなわち、音Sが音操作Op(S)によって音楽M=Op(S)が生成される。音操作Op(S)={O1、O2、・・・、Om}は多種多様の操作要素Oiの集合である。音操作Op(S)は、デジタル処理であるから、音操作Op(S)によって、当然、アトラクタ構造上の実数点(x0、y0)は、サンプリング写像処理、間引き処理(比率1:1の間引きも間引き処理に含む)、あるいは、内挿処理などによって離散点(x、y)に遷移する(遷移0も含む)。その離散点(x、y)は、アトラクタ構造上の実数点(x0、y0)の軌跡のε内の近傍領域の点であればよい。サンプリング写像処理は音操作Op(S)の要素Oiの一つである。音操作Op(S)によって生成される音楽Mは、アトラクタ構造固有の音楽であることが要求される。従って、例えば、カオス現象を表現する複雑なストレンジ・アトラクタ構造の音Sから音操作Op(S)によって生成された音楽Mが単純な正弦波(単なる円のアトラクタ)の音楽Mになったとしたら、その音操作Op(S)が悪いことになる。逆に、生成された音楽Mが感覚性を含む固有なものとなれば、その音操作Op(S)はよいことになる。マシンによる論理的な音操作Op(S)の評価は音楽を聴く感覚的な人間に依存する。音操作Op(S)に必要となるサンプリング写像処理は、デジタル信号処理、例えば、AD変換処理等に必要となるサンプリング周波数変換処理とは、異にする。
【0094】
汎用のサンプリング周波数変換処理は、間引き処理や、例えば、前値あるいは0値挿入による内挿処理とFFT処理におけるエリアジングひずみの発生防止用のLPF(ローパスフィルタ)を必ず必要とする。すなわち、デジタル信号処理において、信号の継続時間が不変のまま、サンプリング周波数をダウンする場合、入力データをLPF(ローパスフィルタ)で高周波数成分を除去した後に、p個置きにデータを間引くデシメーション処理を使用する。デジタル信号処理において、信号の継続時間が不変のまま、サンプリング周波数をアップする場合、入力データの間にq−1個の、例えば、0値のデータを挿入した後に、LPF(ローパスフィルタ)に通してひずみ成分を除去する0値挿入処理を使用する。一般的には、デジタル信号処理において、信号の継続時間が不変とする周波数比q:pのサンプリング周波数変換法は、中間にひとつのLPF(ローパスフィルタ)を挟んで0値挿入処理とデシメーション処理を実行することになる。LPF(ローパスフィルタ)は、特に、エリアジングひずみの発生を防止するために必要となる。
【0095】
しかし、この汎用的なサンプリング周波数変換法は、音操作Op(S)の音色維持処理に必ず必要となる処理ではない。エリアジングひずみの発生を防止するために、高周波数成分を除去する低域フィルタリング処理は、サンプリング周波数が最大入力周波数よりかなり大きい場合には必要としないこと、現象の波の高周波数成分を取り除いてしまう逆効果、さらに、場合によっては、エリアジング、すなわち、折り返し周波数による効果を逆に抑制してしまうという場合もある。0値の挿入処理は、音色維持のためではなく、信号の継続時間の維持のための処理である。波のアトラクタ軌跡の維持を条件とする場合には、間引き処理、そして、ニュートン補間あるいはスプライン補間等による内挿処理を利用する方がよいと考えられる。ただし、前値あるいは0値挿入は内挿処理に包含される。
【0096】
本発明は、現象の音Sの波をMIDI集合の時間系列に対応する固有な音楽Mの波に音操作Op(S)によって変換することを重要視する。本発明の静的周波数シフト処理は、周波数集合の最大周波数が標準レート(44、100Hz)のサンプリング周波数の半分(22、050Hz)に比べて 小さい、例えば、5000Hz以下の周波数帯域にて、要求されたMIDI集合の周波数に大まかに近づける処理である。その処理は、波の軌跡維持、すなわち、アトラクタ構造上の変数維持を条件に単純サンプリング写像を伴う間引き処理と、必要ならば、内挿補間処理を含む。
【0097】
今、周波数を高くするために、回路変数集合に関する、間引き処理、縮小処理(詰め処理)、単純高サンプリング写像、複写処理を含む静的周波数シフト処理について説明する。間引き処理は、例えば、刻み幅h=2.26757E−3とする短い時間区域の変数集合、
{0、1、2、3、4、5、6、7、8、9}
を{(0、1)、(2、3)、(4、5)、(6、7)、(8、9)}のように、部分変数集合に区切り、その部分変数集合の最初の変数{0、2、4、6、8}を残し他の変数を間引く処理で、縮小処理は、その間引き処理によって得られた縮小変数部分集合
{(0)、(2)、(4)、(6)、(8)}
を詰めて単にバファに記憶する処理である。複写処理は、全体の変数の数が、1音符長の長さに対応する数以上になるように、縮小変数部分集合の後に同じ集合を複写、すなわち、アペンドすることになる。結果の集合は、例えば、
{(0)、(2)、(4)、(6)、(8)、(0)、(2)、(4)、(6)、(8)}
となる。この集合取得に関するサンプリング周波数は単純高サンプリング写像による標準サンプリング2.26757E−5(44、100Hz)である。音の波の集合Sから音楽Mを生成するために、この静的周波数シフト処理後に動的ピッチシフト処理を実行することになる。その音操作Op(S)に関するサンプリング周波数は単純サンプリング写像による標準サンプリング周波数、すなわち、44、100Hzである。
【0098】
次に、刻み幅hの数値積分による解析結果の変数集合の要素数が少ない場合に、その音の波の点集合の分解能を向上するために、内挿処理が実行される場合がある。回路変数集合に関する、内挿処理、複写処理と単純サンプリング写像を含む静的周波数変更処理について説明する。内挿処理は、短い時間区域の変数集合、例えば、
{0、1、2、3、4、5、6、7、8、9}

{(0、1)、(2、3)、(4、5)、(6、7)、(8、9)}
のように、部分変数集合に区切り、その部分変数集合の変数{0、1、2、3、4、5、6、7、8、9}を残し、適当な内挿補間法を使って内挿する処理である。例えば、結果の変数集合は、拡大され、
{(0、0.5、1)、(2、2.5、3)、(4、4.5、5)、(6、6.5、7)、(8、8.5、9)}
となる。この集合に関するサンプリング周波数は単純高または単純低サンプリング写像による標準サンプリング2.26757E−5(44、100Hz)である。複写処理は、内挿処理で得られた変数集合の変数の数が、1音符長の長さに対応する数に達していない場合に実行される。すなわち、拡大した変数集合の後に同じ集合を複写、すなわち、アペンドする処理である。その結果を音の波の集合とし、その後に、動的シフト処理が実行される。その音操作Op(S)に関するサンプリング周波数は単純サンプリング写像によって写像された標準サンプリング周波数、すなわち、44、100Hzである。
【0099】
回路の周波数集合の最大周波数が大きい場合、しかし、その最大周波数が標準サンプリング周波数の半分44、100Hz/2を超えない場合、数値積分の刻み幅hは、標準レート2.26757E−5より小さく、例えば、2.26757E−7を使用することがある。数値積分の刻み幅hが小さいと、解析時間が長くなるので、解析の最大時間を小さくする必要があり、結果として、解析の変数集合の大きさが小さくなる。また、間引き処理によって、解析の変数集合の大きさが小さくなることもある。内挿処理は、解析空間において、分解能を向上するため、すなわち、点集合の大きさを増加させる場合に利用するが、結果として、単純サンプリング写像の使用による静的周波数シフト処理に対応することになる。例えば、ニュートンの内挿補間法は求める多項式を
【0100】
f(x)=d0+d1(x−x0)+d2(x−x0)(x−x1)+・・・
+dm(x−x0)(x−x1)・・・(x−xd−1)
として、順次、係数d0、d1、・・・、dmを与えられた点集合から求めていく方法である。例えば、y=f(x)上の5点のデータ集合{(x0、y0)、(x1、y1)、(x2、y2)、(x3、y3)、(x4、y4)}がアトラクタ構造上に存在する既知な値とするとき、最初の2点(x0、y0)、(x1、y1)を選択し、終点(x1、y1)を除く内挿点数10を指定すれば、始点(x0、y0)から終点(x1、y1)までの関数f(x)上の点集合として10個分出力されることになる。これが、内挿処理である。点の数が増加し、分解能が向上する。また、始点(x0、y0)を残し、他の4点(x1、y1)、(x2、y2)、(x3、y3)、(x4、y4)}を削除すれば、データ点数は5分の1(1:5)に減ることになる。これが、間引き処理となる。分解能は低下し、点の数は減少する。間引き率(1:1)も間引き処理に含まれる。
【0101】
間引き処理や内挿処理を含む音操作Op(S)によって得られた標準2.26757E−5でサンプリングされた回路変数集合{(x(t)、y(t))}の波の周波数集合{(F(x(t))、F(y(t)))}の最大周波数は標準サンプリング周波数の半分44、100Hz/2を超えないとする。この制限下であれば、入力周波数が標準レート(44、100Hz)の半分を超えることがないので、サンプリング定理を満たすことになる。静的周波数シフト処理後に低周波帯域の包絡処理(アタック、デケイ、サステンション、レリーズ)を実行し、その後に動的ピッチシフト処理を実行しても、動的ピッチシフト処理内にあるFFT処理によるエリアジングひずみは生じないことになる。
【0102】
図10Aは、刻み幅h=26757E−3による数値積分して得られる点集合{(x0(t)、y0(t))}のローレンツ・アトラクタの図である。x0(t)とy0(t)は、それぞれ、ステレオ音の左音l(t)と右音r(t)の波になる元の波である。FFTによる周波数変換を実行すると低周波数集合となる。 図11Aは、解析用サンプリング周波数26757E−3とするFFTの結果である。周波数が非常に低いことが示されている。問題は、このアトラクタ上の点集合{(x0(t)、y0(t))}の波を音楽の波にいかに変換するかである。単なる波は、当然、FFT変換すれば、スペクトルを有する周波数集合となる。しかし、その周波数集合{(F(x0(t))、F(y0(t)))}の要素の中で大きさが最大のスペクトル、すなわち、振幅最大スペクトルfmaxは、MIDI集合のその時点でのMIDI番号に対応する周波数とは異なる。また、周波数集合が音の音色を決めるとするならば、その音色を維持しながら、振幅最大スペクトルfmaxを要求MIDI番号に対応する周波数に合わせるピッチシフト技術を必要とする。
【0103】
本発明の周波数シフト処理の特徴は、常に、アトラクタ構造上の音となる2個の回路変数(x0(t)、y0(t))のペアに対して同期的にシフト処理を実行し音楽をつくることである。アトラクタ構造上の音の波は、時間tが陽には現れず、従って、刻み幅h、あるいはサンプリング周波数の値がどんな値であっても、アトラクタ上にある点(x0、y0)である。アトラクタ構造に依存する音であり、アトラクタ構造の音楽であることが保証される。点(x0(t)、y0(t))の2変数間の同期性も保障される。
【0104】
本発明は、回路解析部111内にある回路シミュレータSDPで得られたアトラクタをまず間引き処理によって、要求されたMIDI集合の周波数帯域に近くなるように、まず、静的周波数シフト処理を実行する。図10Aは、上記のネットリスト(数22)に対応する微分方程式(数21)をGear法(陽的ルンゲクッタ法でもよい)によって数値積分した結果のローレンツ・アトラクタの図である。刻み幅hは2.26757E−3で、解析の最終時間は大きく50秒である。解析刻み幅が標準刻み幅2.26757E−5より大きい場合には、間引き処理が実行される。図10Aに示したアトラクタを1:40で間引き処理すると、図10Bの相似アトラクタとなり、周波数集合は変更される。図10Aに示したアトラクタを1:40で3回連続して間引き処理すると、図10Cの相似アトラクタとなり、周波数集合は変更される。図10Cの相似アトラクタはフィルタ処理されていない。単純高サンプリング処理される前の状態である。図11Aは、元の図10Aのローレンツ・アトラクタの左音l(t)をFFTした周波数集合である。周波数域でのサンプリング周波数は、時間域での解析時の刻み幅hと同じ2.26757E−3としている。周波数スペクトルは存在するが、全体的に非常に低い周波数集合となっている。図11Bは、元の図10Cの相似アトラクタの左音l_c(t)をFFTした周波数集合である。図10Cの相似アトラクタの周波数集合(図11B)をみると、周波数集合は変更されている。すなわち、間引き処理と単純高サンプリング変換処理を実行すると、最大振幅スペクトルを中心とする周波数集合は変化要素数が減りシフトされ、音楽として聞ける周波数域にあることがわかる。図10Aの元のローレンツ・アトラクタの周波数集合(図11A)は、周波数は非常に低く、低域領域にある。間引き処理によって相似アトラクタに遷移し、単純高サンプリング写像の処理を実行すると、得られた図10Cの相似アトラクタ構造上の音の周波数集合(図11B)は、音楽の周波数集合に写像されることになる。ただし、1:1の間引き処理(スキップ)でも十分な場合もある。相似アトラクタにするための間引き処理は、付加価値として雑音抑制効果がある。間引き処理と単純サンプリング写像処理は、静的周波数シフト処理である。静的周波数シフト処理は、アトラクタ構造の全体像に変化がないように、相似アトラクタを形成し、静的に周波数集合をシフトすることである。すなわち、静的周波数シフト処理は、複写処理を含み、動的ピッチシフト処理の前処理となる。
【実施例5】
【0105】
図12の動的ピッチシフト処理について説明する。動的ピッチシフト処理は、周波数域でMIDI集合に対応するように周波数集合をシフトすることである。本発明で使用される動的ピッチシフト処理には2種類ある。一つは、音をつくる回路変数が、例えば、音源素子の関数

【数27】




の表現のように、最大振幅スペクトルの周波数f0が陽的に既知で、ネットリスト上に音源素子のキャリア周波数f0として表現しておく場合である。そのキャリア周波数f0を要求MIDI周波数に対応するように、その音源素子の数式をそのまま動的シフト処理に利用する陽的シフト方式308である。他のひとつは、最大振幅スペクトルの周波数が陽的には表現されていない場合である。このことを条件に、音源セルネットワークから出力される2変数に対応する相似アトラクタの最大振幅スペクトルの周波数を探索し、抽出した最大振幅スペクトルの周波数fとMIDI周波数との差分を小さくすることにより、ダイナミックにその周波数集合を動的シフトする陰的ピッチシフト方式311である。
【0106】
本発明では、音源ネットワークによって生成される回路変数の波が有する音色を維持することを重要視しているので、MIDI集合の主たる2オクターブ領域には陰的ピッチシフト方式311を使用する。それ以外のオクターブ領域では、陽的シフト方式308を利用する。陽的シフト方式でも、最大振幅スペクトルの周波数が陽的に表現されている2変数素子の数式はユーザ自身によって設定される。
【0107】
陰的ピッチシフト方式311を説明する。陰的ピッチシフト方式では、アトラクタ構造上あるいは相似アトラクタ構造上の2変数(x(t)、y(t))をペアとして、すなわち、各2変数が同期して、対応する周波数集合が動的に実行される。陰的ピッチシフト方式は、周波数集合{F(x(t))、F(y(t))}を大きさ不変のまま、周波数域上でシフト、すなわち、周波数集合{Shift[F(x(t))]、Shift[F(y(t))]}とする処理である。本発明では、シフト後の結果に対して、フィルタリング処理として部分的狭帯域の抽出、あるいは、大きさの倍率を変える場合がある。動的シフトされるのは、周波数集合の部分集合である。しかし、「部分」という言葉は省略される。周波数集合{F(x(t))、F(y(t))}において、最大振幅周波数が存在し、それぞれをFmax(x(t))、Fmax(y(t))とする。今、要求されるMIDI番号をMIDI_x、MIDI_yとする。それらの周波数をそれぞれFMIDI_x、FMIDI_yとする。陰的ピッチシフト処理は、差分

【数28】



が小さくなるような最大振幅周波数とMIDI周波数との比に対応するシフト量D_ffを探索し、探索結果の周波数集合{Shift[F(x(t))]、Shift[F(y(t))]}を求めることである。1フレーム内の周波数集合が選択される部分は、最大でDN/2である。短時間周波数変換としてFFTを使用するが、フレーム全体に対して変換を施すFFTの代わりに部分的に周波数点を選択できるGoertzelのアルゴリズムも有効に利用できる。
【0108】
入力集合{(x(t)、y(t));t=0、1、2、・・・、t_max}は短時間周波数変換STFTされ、シフト処理に適したFIFOに格納される。フレームごとの処理である。STFTとして、FFTを使うとすれば、各入力集合{x(t)、y(t)}の周波数集合{F(x(t))、F(y(t))}の各要素、例えば、F(x(t))は実部と虚部からなる複素数で表現される。実部と虚部から、大きさ、位相が取得されるので、隣接フレーム間の位相差を考慮して適切な周波数集合を周波数域にて取得する。次に、ピッチ(周波数)シフト処理を実行する。シフト後、シフトされた結果の複素数に対して逆FFTを実行し、時間域の変数に戻すことになる。以上の操作を音符の長さに対応する入力集合の時系列の終了まで続けられる。逆変換されるとき、窓関数が利用されるが、本発明では、この窓関数の狭帯域の選択にフィルタ処理が実行される。フィルタの帯域幅は、ユーザによって可変的に設定される。隣接フレーム間誤差や時間周波数変換誤差を小さくし、雑音を抑制するためには、逆変換時に利用される窓関数の形を周波数帯域によって可変とすること、そして、包絡処理を曲依存として調整することが重要となる。このようにして、音符粒子法による自動採譜によって生成されたMIDI集合の時系列に乗せる音の波を有する時系列集合が、音楽として、原メロディの近似音集合として抽出される。以上説明したように、本発明のピッチシフトは、アトラクタ構造の音に関する静的周波数シフト処理と、それに継続する動的ピッチシフト処理から成る。2次元アトラクタ構成上の左音の回路変数と右音の回路変数をペアとしてシフトするので、アトラクタ構造が維持される。そのことで、左の再生音と右の再生音の同期状態も維持できることになる。
【0109】
最後に、順処理または逆処理によって得られた展開型MIDI集合の時系列の各行にあるMIDI周波数集合に回路変数の周波数集合を合わせるピッチシフト処理について図12の処理フローを使って説明する。左音と右音に限定する。すなわち、回路変数は2個とし、この時間的変化の変数集合を使ってできるアトラクタを構造不変な相似アトラクタに変更する。相似アトラクタ上の対応する左音変数と右音変数が、ピッチシフト処理によって、左音と右音の音楽として生成されることになる。処理が開始すると、まず、1音符の長さまで処理したかの判断300を実行する。処理が終わりならば、次の1音符の処理となる。処理が終わりでなければ、処理301を実行する。記憶部に保存されている相似アトラクタ(刻み幅hによるサンプリング周波数によって取得された2変数集合)に対応する左音変数と右音変数を時間t=0において、必要な長さを維持するための複写処理を実行し、記憶部に保存しておく(301、302)。1音符長の長さを維持するために、必要ならば、複写処理することになる(302)。このとき、サンプリング周波数は標準レートの44、100Hzとする。時間tを進め、フレーム内のデータ数DNのデータが集計された段階で、1音符長の各フレームの時間領域内において、アタック、デケィ、サステンション、レリーズなどの波形の包絡処理(303)を実行し、さらに、陰的動的シフトの場合を条件として、高速なFFT(304)を実行し、周波数域での周波数集合のデータを取得する。その周波数集合において、振幅最大周波数fmax(=Fmax)を獲得し、要求されたMIDIに対応する周波数FMIDI_xと比較し、その比D_ffを計算する(306)。D_ffによってfmaxは動的シフト可能な周波数領域にあるかどうかをチェックする(307)。領域内ならば、動的な陰的ピッチシフト処理の初期化処理(309)を実行し、振幅最大周波数fmaxとMIDIの周波数FMIDI_xとの比D_ffに対応するシフトD_ff量をチェックし(310)、周波数領域にて陰的な動的ピッチシフトを実行する(311)。処理310において、306で計算されたシフト量D_ffが最適でない場合は、相似アトラクタ構造の変更処理を介して最初に戻る。シフト量D_ffが最適であれば、FFT(304)で得られら周波数集合をシフト量D_FFに対応してピッチシフトする(311)。その動的シフト処理(311)に組み込まれたFFT逆変換を実行し、さらにフィルタ処理し(312)、時間域の波にすれば、音楽の音となる。処理307において、領域外であれば、動的シフト処理としての陽的ピッチシフト処理を実行する(308)。すなわち、入力ファイルに組み込まれているキャリア周波数を陽に含むセル関数式に従って、要求MIDI番号に対応する周波数にそのキャリア周波数をシフトすれば、その関数値である時間域の音の波は、音楽の音となる。以上のフレーム処理を音符長の時間長まで繰り返す処理となる(300)。一曲の時間長のデータ数は膨大であるが、順処理では音符数N0、逆処理では、解析結果として求められた音符数Nの数となる。
【0110】
図13は、本発明の処理結果のローレンツ・アトラクタの1 音符波形(アタック、 デケィ、 レリーズ) である。不思議な音楽となる。
【産業上の利用可能性】
【0111】
産業の利用分野として、音符粒子法に基づく自動採譜と本発明の自動微分に基づく音源ネットワークは、楽譜の編曲ばかりでなく、ユーザ自身で、編曲の音色を変えることを可能にする。そのことで、音楽の自動採譜、自動編曲、音楽情報検索、音楽の加工などの分野への発展的応用が可能となる。音源セルネットワークに基づく音楽生成法は、ユーザにとって、音符粒子法が有する高データベース性、高圧縮性、高使用性、高理解性、高表現性、高通信性、高同期性を継承し、多種多様な音色を有する音楽の複数PCのオーケストラ演奏化、インターネット配信化に利用できる。音符粒子法と本発明の音源セルネットワークに基づく音楽生成法は、演奏の音から自動でエクセル楽譜、あるいは5線楽譜を作成することを含み、自動楽譜による複数チャネル演奏は、元の楽譜演奏とは異なる編曲された多種多様な音色を有する近似音楽となる。そのことが逆に新しい編曲産業を生む。
【0112】
クライアント側からの要求に基づいて、サーバ側のデータベースにある圧縮型エクセル楽譜あるいは展開型エクセル楽譜がインターネット媒体としてクライアント側にダウンロードされる。複数チャネルの音源付き演奏は、トラックリスト表示、ピアノロール表示、自動5線音符表示、イベントリスト表示のうち少なくとも1つを動画表示しながら、実行される。あるいは、ユーザ自身が本発明の音源セルネットワークに基づいて音源を設計し、自分の音の音楽を聞いて楽しむこともできる。
【符号の説明】
【0113】
1 本発明の音楽生成法の主要な部
2 音符粒子法を含む音符行列楽譜生成法の主要な部
100 5線楽譜認識部
101 圧縮型エクセル生成部
102 和音展開、繰り返し記号展開部
103 時間周波数変換(フーリエ変換、ガボール変換)部
104 テンポ解析(音符粒子長解析)部
105 クラスタリング(k−means法)部
106 音符粒子集合部
107 音符長結合部
108 展開型エクセル生成処理部
109 MIDItoWAV変換部
110 MIDI.csv生成部
111 本発明の回路解析部
112 音源(wavファイル)生成部
113 標準音源生成部かつmidファイル生成部
114 トラックリスト、ピアノロール、イベントリスト、5線楽譜自動生成部
115 音の再生部

200 2変数自動微分法
205 数値積分法
207 間引き処理
209 内挿処理
210 複写処理、包絡処理、動的シフト処理

10 計算機(PC)
11 記憶部
12 演算部
13 制御部
14 入力部
15 出力部
302 複写処理
303 包絡処理
311 陰的な動的シフト処理
308 陽的な動的シフト処理
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7
図8
図9
図10A
図10B
図10C
図11A
図11B
図12
図13