■【第五章】音や音楽についての私の考え(無限に曲を生み出す装置)

以下は、私が2007.5.24に特許庁に出願した編曲装置についての発明です。第四章とはとても内容が似ていて、時系列波形データが時系列の音高データ(メロディやコード)になったものと考えていただいてよいでしょう。この技術はまず、ある曲を入力して、そのなかに織り込まれた曲の印象をアトラクタにし、そのアトラクタ空間内で任意に編集作業をしてから、ターケンスの埋め込みの逆変換で音楽を作り出すという構成です。この方法を用いると、ある曲の大切な印象部分を継承しながら、無限に似た音楽が作れるという可能性があります。また、ある部分を一音わざと変な音にしたとしますと、まるでそこをうまくごまかすかのような編曲もできる技術です。ちなみに2009年のイベント「数式に記された愛」ではこの技術をちらっと聴いていただきました。いまも研究続行中でいつか実験結果をご紹介したいと思っています。ご興味ある方はどうぞ読み進めてください。

特開2008−292724
【要約】
【課題】アトラクタの特徴を備えた各種音色の音高を発生する編曲装置を実現する。
【解決手段】ステップSB1では、外部から入力される音高データをサンプリングして得た原音高データにターケンス・プロットを施してアトラクタを表示する。ステップSB2では、表示されたアトラクタの軌道をユーザ操作に応じて変更する。ステップSB3では、ユーザ操作に応じて変更された変形アトラクタを再生成音高データに変換する。したがって、原音高データのアトラクタの特徴を変換して得た再生成音高データも、原音高データのアトラクタの特徴を具備するので、アトラクタの特徴を継承した編曲が可能となる。
【選択図】図5

↑【特許請求の範囲】
【請求項1】
入力された時間軸及び音高値軸を有する2次元相空間上の原音高データに対して、ターケンスの埋め込み定理によるn(n>2)次元相空間への埋め込みを、予め定められたプロットスケール値t及びリサンプリング時間Δtから成るプロット条件に基づいてターケンス・プロット処理を実行することにより、前記n次元相空間上にアトラクタを生成するターケンス・プロット処理手段と、
前記ターケンス・プロット処理手段により生成されたアトラクタを表わす波形を、表示手段の表示画面上に表示させるターケンス・プロット表示制御手段と、
前記ターケンス・プロット表示制御手段により表示されたアトラクタを表わす波形の形状をユーザ操作に応じて変更することにより、変形アトラクタを生成するアトラクタ変更手段と、
前記アトラクタ変更手段により生成された変形アトラクタに対して、前記ターケンス・プロット処理の逆変換処理を行うことにより、2次元相空間上の音高データを生成する音高変換処理手段と、
を具備することを特徴とする編曲装置。
【請求項2】
前記ターケンス・プロット処理手段は、入力された2次元相空間の原音高データの時間軸上に夫々プロットスケール値tの間隔をおいたn個のサンプリング位置を指定し、当該n個のサンプリング位置の音高値夫々をn次元相空間上の各軸上の位置に対応させることによって最初の座標位置を決定し、その後前記n個のサンプリング位置を同時にリサンプリング時間Δtだけ時間軸上を順次シフトいくことにより前記n次元相空間上のアトラクタの座標位置を順次決定することを特徴とする請求項1記載の編曲装置。
【請求項3】
前記音高発生装置はさらに、
前記プロットスケールt及びリサンプリング時間Δtの少なくとも一方を順次変更することにより複数種の異なるプロット条件を決定し、当該決定されたプロット条件夫々に基づいたアトラクタを複数種順次生成するように前記ターケンス・プロット処理手段を制御する制御手段と、
基本アトラクタを表わす波形の形状を記憶した基本アトラクタ記憶手段と、
前記ターケンス・プロット処理手段により生成された複数種のアトラクタを表わす波形の形状夫々と前記基本アトラクタ記憶手段に記憶された基本アトラクタとの相関値を抽出する相関値抽出手段と、
この相関値抽出手段により抽出された相関値が最大となるプロット条件に基づいて生成されたアトラクタを決定し、当該決定されたアトラクタを前記表示制御手段に出力するとともに、前記プロット条件を前記予め定められたプロット条件とする決定手段と、
を有することを特徴とする請求項1記載の編曲装置。
【請求項4】
前記音高変換処理手段は、前記アトラクタ変更手段により生成された変形アトラクタの座標位置を最後から順次読み出し、読み出された最後の座標位置を表わすn個の軸上の位置夫々を、前記2次元相空間の時間軸上にプロットスケール値tの間隔をおいて指定されたn個のサンプリング位置夫々の音高値とし、その後座標位置が読み出される毎に前記n個のサンプリング位置を同時にリサンプリング時間Δtだけ時間軸上を順次シフトし、当該シフトされたn個のサンプリング位置夫々の音高値として、前記読み出された座標位置を表わすn個の軸上の各位置を割り当てる動作を繰り返すことを特徴とする請求項1記載の編曲装置。
【請求項5】
入力された時間軸及び音高値軸を有する2次元相空間上の原音高データのコード進行を抽出するコード進行抽出手段と
前記原音高データに対してターケンスの埋め込み定理によるn(n>2)次元相空間への埋め込みを、予め定められたプロットスケール値t及びリサンプリング時間Δtから成るプロット条件に基づいてターケンス・プロット処理を実行することにより、前記n次元相空間上にアトラクタを生成するターケンス・プロット処理手段と、
前記ターケンス・プロット処理手段により生成されたアトラクタを表わす波形を、表示手段の表示画面上に表示させるターケンス・プロット表示制御手段と、
前記ターケンス・プロット表示制御手段により表示されたアトラクタを表わす波形の形状をユーザ操作に応じて変更することにより、変形アトラクタを生成するアトラクタ変更手段と、
前記アトラクタ変更手段により生成された変形アトラクタに対して、前記ターケンス・プロット処理の逆変換処理を行うことにより、2次元相空間上の音高データを生成する音高変換処理手段と、
前記ターケンス・プロット処理の逆変換処理により、得られた2次元相空間上の音高データの音高を前記コード進行抽出手段より得られたコード進行に適合するように修正する修正手段を備えたことを特徴とする編曲装置。
【請求項6】
コンピューターに、
入力された時間軸及び音高値軸を有する2次元相空間上の原音高データに対して、ターケンスの埋め込み定理によるn(n>2)次元相空間への埋め込みを、予め定められたプロットスケール値t及びリサンプリング時間Δtから成るプロット条件に基づいてターケンス・プロット処理を実行することにより、前記n次元相空間上にアトラクタを生成するステップと、
前記生成されたアトラクタを表わす波形を、表示手段の表示画面上に表示させるターケンス・プロット表示制御ステップと、
前記表示されたアトラクタを表わす波形の形状をユーザ操作に応じて変更することにより、変形アトラクタを生成するアトラクタ変更ステップと、
前記生成された変形アトラクタに対して、前記ターケンス・プロット処理の逆変換処理を行うことにより、2次元相空間上の音高データを生成するステップと、
を実行させることを特徴とする編曲処理プログラム。

↑【発明の詳細な説明】
↑【技術分野】
【0001】
本発明は、編曲装置および編曲処理プログラムに関する。
↑【背景技術】
【0002】
従来から、音楽家が曲を作成する場合にまず考えねばならないことは、頭の中に描いているイメージを、曲ごとにどのようにしてリスナーに強く印象づけるか、ということである。この曲作成という作業は全くの無音の状態から頭の中に思いつくメロディを書き出す「作曲」と呼ばれる方法と、あるいは既に世の中に存在しているフレーズや曲の音高を所定の音楽理論を用いて異なる音高にならべかえる「編曲」と呼ばれる方法が一般的に行われている。
【0003】
特に音楽家が「編曲作業」を行う場合、元々世の中に存在する曲の特徴の一つである「音高変化の印象」、つまり「音高変化の人の心に残るような特性」を抽出し、積極的にこれを利用する場合が多い。しかしながらこの「音高変化の印象」を抽出することは、一般的な手法として確立されたものでなく、経験と感性に頼る部分が多い。したがって、よほど熟練した音楽家であってもこの作業を行うことは容易でなく、一つの作品を作り上げるためには膨大な労力と時間を必要としていた。
【0004】
さらには「音高変化の印象」を首尾よく抽出し、それが十分表現されている曲が作れたとしても、この曲をさらに別の曲の作成のため再利用を繰り返すということをしがちである。これは、利用している「音高変化の印象」が音楽家にとって非常に魅力的かつ重要であると感じた場合は、これに代わる同じような音の印象をもった別の曲を作成することが非常に困難を伴うからである。このような再利用を繰り返せば、リスナーに対して、同じような曲ばかりが安易に繰り返し多用されていて創造性に欠ける、という良くない印象を与えかねないし、曲の個性が失われて飽きられるという致命的な問題が生じてくる。
【0005】
もちろん、これを避けるため曲のイメージを強く印象付けるということについてある程度妥協することが考えられる。つまり、既存の曲に対してその音高変化を曲のイメージというものを考慮せずに何らかの条件に基づいて変更することもひとつの手法である。例えば、特許文献1では、入力された演奏データからコード進行を抽出し、そのコード構成音を用いて編曲を行う構成が開示されている。
【0006】
【特許文献1】特開2002−258846号公報
【発明の開示】
↑【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に開示の手法では、熟練した作曲家が実際、脳の中で行っている作業である「音高変化の印象」を抽出するということが全く考慮されていないため、「音高変化の印象」は簡単に失われてしまい、リスナーに対して結果的に強い印象を与えられる曲が提供できなくなってしまう。このように作曲家がリスナーに対して強く印象づけられる曲を数多く提供しようとしても、それに必要な「音高変化の印象」の抽出という手法が確立されていないため、膨大な労力と時間がかかる音の並び替え作業を経験にたよりながらさらに続けなければならなかった。
【0008】
しかし、近年になってターケンス・プロットとよばれる、脳で行われる情報の処理と類似していると見られる手法を用いることにより、ある音の並びからアトラクタを生成すると、このアトラクタは「音高変化の印象」を表わすものであることがわかってきた。その理由は、人間の脳のメカニズムを知ることで理解することが可能となってきている。
【0009】
まず人間の脳は、外部からうけた刺激を情報として取り込み、これが何であるかを認識(特徴を抽出)して記憶している。この認識は入力された情報のみで行うのではなく、過去にうけた刺激により記憶された情報を参考にして認識していると考えられる。たとえば、映画で見たあるシーンが過去の自分の経験と重なっていると、大きな感動を憶えることである。これは脳が映画のシーンを認識する際、過去に記憶された経験の記憶を参考にして認識し、同じ特徴を有する経験があればそれが強い刺激として認識されるため感動が大きくなっていると考えられる。また、過去にどこかで聞いた曲を再び聞いた場合、それについて親しみを感じるということも同様である。
【0010】
この脳の認識の手法においては、このように遠い過去の記憶まで参照して認識するものだけでなく、もっと短時間での過去も多大な影響を与えていると考えられる。そして聴覚に関する情報である音高についても、より短時間の直前の音高と照らし合わせて認識していると考えられる。
【0011】
このことから、ターケンス・プロットで「現時点での音高を所定のプロットスケール幅によって複数同時に選択している作業」は、脳で行われている「現時点の情報を認識するときに同時に過去の情報も参考にしている」という作業ときわめて類似したものであるといえる。このため、音を表わす波形からターケンス・プロットによってアトラクタを描画する作業は、脳にとっては、その曲を認識するに必要な「音高変化の印象」を抽出する作業に他ならない。
【0012】
すなわち、ターケンス・プロットを用いで表示されたアトラクタは、その音の「音高変化の印象」という特徴の部分が視覚的に表現されているといえる。
【0013】
本発明は、このような事情に鑑みてなされたもので、曲の「音高変化の印象」をアトラクタの特徴として抽出し、このアトラクタの特徴を備えた曲をユーザの任意の操作によって新たに作成することができる編曲装置および編曲処理プログラムを提供することを目的としている。
↑【課題を解決するための手段】
【0014】
上記目的を達成するため、請求項1に記載の発明では、入力された時間軸及び音高値軸を有する2次元相空間上の原音高データに対して、ターケンスの埋め込み定理によるn(n>2)次元相空間への埋め込みを、予め定められたプロットスケール値t及びリサンプリング時間Δtから成るプロット条件に基づいてターケンス・プロット処理を実行することにより、前記n次元相空間上にアトラクタを生成するターケンス・プロット処理手段と、
前記ターケンス・プロット処理手段により生成されたアトラクタを表わす波形を、表示手段の表示画面上に表示させるターケンス・プロット表示制御手段と、
前記ターケンス・プロット表示制御手段により表示されたアトラクタを表わす波形の形状をユーザ操作に応じて変更することにより、変形アトラクタを生成するアトラクタ変更手段と、前記アトラクタ変更手段により生成された変形アトラクタに対して、前記ターケンス・プロット処理の逆変換処理を行うことにより、2次元相空間上の音高データを生成する音高変換処理手段と、を具備することを特徴とする。
【0015】
上記請求項1に従属する請求項2に記載の発明では、前記ターケンス・プロット処理手段は、入力された2次元相空間の原音高データの時間軸上に夫々プロットスケール値tの間隔をおいたn個のサンプリング位置を指定し、当該n個のサンプリング位置の音高値夫々をn次元相空間上の各軸上の位置に対応させることによって最初の座標位置を決定し、その後前記n個のサンプリング位置を同時にリサンプリング時間Δtだけ時間軸上を順次シフトいくことにより前記n次元相空間上のアトラクタの座標位置を順次決定することを特徴とする。
【0016】
上記請求項1に従属する請求項3に記載の発明では、前記音高発生装置はさらに、
前記プロットスケールt及びリサンプリング時間Δtの少なくとも一方を順次変更することにより複数種の異なるプロット条件を決定し、当該決定されたプロット条件夫々に基づいたアトラクタを複数種順次生成するように前記ターケンス・プロット処理手段を制御する制御手段と、基本アトラクタを表わす波形の形状を記憶した基本アトラクタ記憶手段と、前記ターケンス・プロット処理手段により生成された複数種のアトラクタを表わす波形の形状夫々と前記基本アトラクタ記憶手段に記憶された基本アトラクタとの相関値を抽出する相関値抽出手段と、この相関値抽出手段により抽出された相関値が最大となるプロット条件に基づいて生成されたアトラクタを決定し、当該決定されたアトラクタを前記表示制御手段に出力するとともに、前記プロット条件を前記予め定められたプロット条件とする決定手段と、
を有することを特徴とする。
【0017】
上記請求項1に従属する請求項4に記載の発明では、前記音高変換処理手段は、前記アトラクタ変更手段により生成された変形アトラクタの座標位置を最後から順次読み出し、読み出された最後の座標位置を表わすn個の軸上の位置夫々を、前記2次元相空間の時間軸上にプロットスケール値tの間隔をおいて指定されたn個のサンプリング位置夫々の音高値とし、その後座標位置が読み出される毎に前記n個のサンプリング位置を同時にリサンプリング時間Δtだけ時間軸上を順次シフトし、当該シフトされたn個のサンプリング位置夫々の音高値として、前記読み出された座標位置を表わすn個の軸上の各位置を割り当てる動作を繰り返すことを特徴とする。
【0018】
請求項5に記載の発明では、入力された時間軸及び音高値軸を有する2次元相空間上の原音高データのコード進行を抽出するコード進行抽出手段と、前記原音高データに対してターケンスの埋め込み定理によるn(n>2)次元相空間への埋め込みを、予め定められたプロットスケール値t及びリサンプリング時間Δtから成るプロット条件に基づいてターケンス・プロット処理を実行することにより、前記n次元相空間上にアトラクタを生成するターケンス・プロット処理手段と、前記ターケンス・プロット処理手段により生成されたアトラクタを表わす波形を、表示手段の表示画面上に表示させるターケンス・プロット表示制御手段と、前記ターケンス・プロット表示制御手段により表示されたアトラクタを表わす波形の形状をユーザ操作に応じて変更することにより、変形アトラクタを生成するアトラクタ変更手段と、前記アトラクタ変更手段により生成された変形アトラクタに対して、前記ターケンス・プロット処理の逆変換処理を行うことにより、2次元相空間上の音高データを生成する音高変換処理手段と、前記ターケンス・プロット処理の逆変換処理により、得られた2次元相空間上の音高データの音高を前記コード進行抽出手段より得られたコード進行に適合するように修正する修正手段を備えたことを特徴とする。
【0019】
請求項6に記載の発明では、コンピューターに、入力された時間軸及び音高値軸を有する2次元相空間上の原音高データに対して、ターケンスの埋め込み定理によるn(n>2)次元相空間への埋め込みを、予め定められたプロットスケール値t及びリサンプリング時間Δtから成るプロット条件に基づいてターケンス・プロット処理を実行することにより、前記n次元相空間上にアトラクタを生成するステップと、前記生成されたアトラクタを表わす波形を、表示手段の表示画面上に表示させるターケンス・プロット表示制御ステップと、前記表示されたアトラクタを表わす波形の形状をユーザ操作に応じて変更することにより、変形アトラクタを生成するアトラクタ変更ステップと、前記生成された変形アトラクタに対して、前記ターケンス・プロット処理の逆変換処理を行うことにより、2次元相空間上の音高データを生成するステップと、を実行させることを特徴とする。
↑【発明の効果】
【0020】
本発明によれば、曲の「音高変化の印象」をアトラクタの特徴として抽出し、このアトラクタの特徴を備えた曲の音高をユーザの任意の操作によって新たに作成することができる。
↑【発明を実施するための最良の形態】
【0021】
以下、図面を参照して本発明の実施の形態について説明する。
A.構成
図1は、本発明の実施の一形態による編曲装置100の構成を示すブロック図である。この図に示す編曲装置100は、入力部10、操作部20、表示部30、鍵盤40、CPU50、ROM60、RAM70およびサウンドシステム80から構成される。入力部10は、MIDIインターフェースとADコンバータを備え、CPU50の制御の下に、外部から入力される曲のMIDIデータをバスへ出力する。入力部10から出力されるMIDIデータはRAM70の原音高データエリアに格納される。
【0022】
操作部20は、操作パネルに配設される各種スイッチを備え、ユーザのスイッチ操作に対応したスイッチイベントを発生する。操作部20から出力されるスイッチイベントは後述するCPU50に取り込まれる。操作部20に配設される主要なスイッチとしては、装置電源をオンオフする電源スイッチの他、動作モードを選択するモードスイッチや発生楽音の音色を選択する音色選択スイッチなどがある。また、操作部20は、ポインティングデバイスとして、周知のクリック操作およびドラッグ操作が行われるマウスを備える。
【0023】
表示部30は、LCDパネルおよび駆動ドライバから構成され、後述するCPU50から供給される表示制御信号に応じて、装置各部の設定状態や動作状態を表示する他、後述するアトラクタの軌道を表示する。鍵盤40は、押離鍵操作に応じたキーオン/キーオフイベントおよびノート番号、ベロシティ等からなる演奏情報を発生する。
【0024】
CPU50は、操作部20から供給されるスイッチイベントに応じて装置各部を制御する。具体的には、操作部20に配設されるモードスイッチの操作により選択される動作モードに従った処理動作を実行する。設定モードに遷移したCPU50は、ユーザ操作に応じて入力される設定パラメータに従って各動作モード下における装置各部の動作態様を指定する。入力モードに遷移したCPU50は、入力部10にMIDIデータ入力の開始を指示する一方、この指示に応じて入力部10から取り込まれたMIDIデータをRAM70の原音高データエリアに保存する。
また、音高発生モードに遷移したCPU50は、音高発生処理(後述する)を実行し、RAM70の原音高データエリアに格納した原音高データからアトラクタを抽出、変更し、さらにこのアトラクタから新たな音高データを再生成してRAM70の再生成音高データエリアに保存する。さらに、演奏モードに遷移したCPU50は、鍵盤40から供給される演奏情報に応じた楽音データを発生する演奏処理を実行する。
【0025】
ROM60には、各種制御プログラムが記憶される。ここで言う各種プログラムとは、後述するメインルーチンおよび音高発生処理を含む。音高発生処理は、後述するターケンス・プロット表示処理、アトラクタ変更処理および音高再生成処理を含む。またすでに発見されているリミットサイクルやストレンジ、トーラス、ローレンツなどの有名なアトラクタの特徴を有するアトラクタデータを格納する基本アトラクタデータエリアに基本アトラクタデータが格納されている。
【0026】
RAM70は、各種レジスタ・フラグデータを一時記憶するワークエリアと、入力部10から出力される原音高データを格納する原音高データエリアと、ターケンス・プロット表示処理(後述する)により原音高データをターケンス・プロットして得られるアトラクタデータを格納するアトラクタデータエリアと、アトラクタ変更処理(後述する)により軌道変更された変形アトラクタデータを格納する変形アトラクタデータエリアと、変形アトラクタデータに基づき再生成される再生成音高データを格納する再生成音高データエリアとを備える。
【0027】
図2は、RAM70における原音高データエリア内の原音高を示す図であり、各音高値W(n)(n=0〜N)が記憶されるようになっている。図3は、RAM70のアトラクタデータエリアにおけるアトラクタデータ(後述)の内容を示す図であり、n=0〜Nまでの表示部30の画面上の座標が書き込まれる。各座標は、x成分、y成分、z成分から成る。
【0028】
また図1におけるサウンドシステム80は、演奏モード下のCPU50が発生する楽音データをD/A変換してなる楽音信号から不要ノイズを除去する等のフィルタリングを施した後に増幅してスピーカから放音する。
【0029】
B.動作
次に、上記構成による編曲装置100の動作について説明する。以下では、図4を参照して編曲装置100のCPU50が実行する「メインルーチン」の動作を説明した後、図5〜図16を参照してメインルーチンからコールされる「音高発生処理」の動作を説明する。
【0030】
(1)メインルーチンの動作
図4は、CPU50が実行するメインルーチンの動作を示すフローチャートである。装置電源が投入されると、CPU50は図4に図示するメインルーチンのステップSA1に処理を進め、RAM70に設けられる各データエリアを初期化するイニシャライズを実行する。続いて、ステップSA2では、ユーザのモードスイッチ操作に応じて動作モードを設定する。そして、ステップSA3〜SA6では、上記ステップSA2において設定された動作モード(設定モード、入力モード、音高発生モードおよび演奏モード)を判別する。以下、設定モード、入力モード、音高発生モードおよび演奏モードに設定された場合の動作について述べる。
【0031】
<設定モードに設定された場合>
設定モードに設定されると、ステップSA3の判断結果が「YES」になり、ステップSA7に進み、設定処理を実行する。設定処理では、ユーザ操作に応じて入力される設定パラメータに従って各動作モード下における装置各部の動作態様を指定する。例えば、後述する入力モードにおける音高サンプリング期間長やサンプリング周期を設定したり、演奏モードにおける音色選択や効果付与するエフェクトの種類などを設定する。
【0032】
そして、ステップSA8では、設定モード終了を指示する操作イベントの有無を判断する。終了指示する操作イベントが無ければ、判断結果は「NO」となり、ステップSA7の設定処理を継続するが、終了指示する操作イベントが発生すると、判断結果が「YES」になり、上述したステップSA2の動作モード設定状態に復帰する。
【0033】
<入力モードに設定された場合>
入力モードに設定されると、ステップSA4の判断結果が「YES」になり、ステップSA9に進み、音高入力処理を実行する。音高入力処理では、本処理に必要なイニシャライズ処理を行った後、入力部10に音高サンプリングの開始を指示し、この指示に応じて入力部10から取り込まれる原音高データを、上述した設定モードにおいて設定される音高入力態様に従って取り込み、取り込んだ原音高データの各音高値W(n)(n=0〜N)をRAM70の原音高データエリアに順次ストアする。
【0034】
そして、ステップSA10では、入力モード終了を指示する操作イベントの有無を判断する。終了指示する操作イベントが無ければ、判断結果は「NO」となり、ステップSA9の音高入力処理を継続するが、終了指示する操作イベントが発生すると、判断結果が「YES」になり、上述したステップSA2の動作モード設定状態に復帰する。
【0035】
<音高発生モードに設定された場合>
音高発生モードに設定されると、ステップSA5の判断結果が「YES」になり、ステップSA11に進み、音高発生処理を実行する。音高発生処理では、後述するように、RAM70の原音高データエリアに格納した原音高データから抽出されたアトラクタの特長を備えた再生成音高データを再生成してRAM70の再生成音高データエリアに保存する。
【0036】
そして、ステップSA12では、音高発生モード終了を指示する操作イベントの有無を判断する。終了指示する操作イベントが無ければ、判断結果は「NO」となり、ステップSA11の音高入力処理を継続するが、終了指示する操作イベントが発生すると、判断結果が「YES」になり、上述したステップSA2の動作モード設定状態に復帰する。
【0037】
<演奏モードに設定された場合>
演奏モードに設定されると、ステップSA6の判断結果が「YES」になり、ステップSA13に進み、演奏処理を実行する。演奏処理では、鍵盤40から供給される演奏情報に応じた楽音データを発生する演奏処理を実行したり、入力されたMIDIデータや本発明によって編曲されたMIDIデータを再生する機能をもつ。また上述した設定モードにおいて音色選択された音色を用いて鍵盤40で押鍵された鍵の音高で発音することができる。
【0038】
そして、ステップSA14では、演奏モード終了を指示する操作イベントの有無を判断する。終了指示する操作イベントが無ければ、判断結果は「NO」となり、ステップSA13の演奏処理を継続するが、終了指示する操作イベントが発生すると、判断結果が「YES」になり、上述したステップSA2の動作モード設定状態に復帰する。尚、前記入力モードから入力される原音高データは、この演奏モードで演奏された演奏データを使用してもかまわない。
【0039】
(2)音高発生処理の動作
次に、図5〜図16を参照して音高発生処理の動作を説明する。図5は、CPU50が実行する音高発生処理の動作を示すフローチャートである。上述したメインルーチンのステップSA11(図4参照)を介して実行される音高発生処理は、ターケンス・プロット表示処理(ステップSB1)、アトラクタ変更処理(ステップSB2)、音高再生成処理(ステップSB3)から構成される。以下、これら各処理の動作を説明する。
【0040】
a.ターケンス・プロット表示処理の動作
音高発生処理のステップSB1(図5参照)を介して本処理が実行されると、CPU50は図6に図示するターケンス・プロット表示処理のステップSC1に処理を進め、初期設定を行う。初期設定では、本処理に必要なイニシャライズ処理の他、後述のステップSC2において実行するターケンス・プロット処理に必要なプロット条件(音高区間長Stime、プロットスケール幅tおよびリサンプリング周期Δt)をユーザ操作に応じて設定する。
【0041】
ステップSC2では、上記ステップSC1において初期設定されたプロット条件(音高区間長Stime、プロットスケール幅tおよびリサンプリング周期Δt)に基づき、RAM70の原音高データエリアに格納される原音高データにターケンス・プロット処理を施す。ターケンス・プロット処理は、原音高データからアトラクタを生成するものであり、その動作について図7を参照して説明する。
【0042】
図7は、ターケンス・プロット処理の概要を説明するための図である。ターケンス・プロットでは、RAM70の原音高データエリアに格納される原音高データをリサンプリングするプロットスケールが用いられる。図7に図示する一例は、2次元の原音高データから3次元のアトラクタを生成する場合のプロットスケールを例示している。プロットスケールは、プロットスケール幅tを隔てた3点(x成分、y成分およびz成分)における原音高データの音高値T(x,y,z)を指定する。
【0043】
原音高データの音高値T(x,y,z)を指定するプロットスケールは、リサンプリング周期Δt毎に時系列順に移動する。リサンプリング周期Δtは、原音高データのサンプリング周期以上の時間幅を有する。リサンプリング周期Δt毎に、時系列順に移動するプロットスケールによって、音高値T1(x,y,z)〜音高値Tn(x,y,z)が得られる。音高値T1(x,y,z)〜音高値Tn(x,y,z)の数は、上記ステップSC1で設定される音高区間長Stimeで決まる。
【0044】
図8はターケンス・プロット処理を示すフローチャートである。まず、変数nを0にリセットし(ステップSF1)、次にステップSF2において、プロットを行うためにプロットスケール幅tを隔てた3点が原音高の時間軸上での位置関係を設定する。すなわち最初の点であるt0が0と決まると、tの幅だけ時間を隔てた点t1、そしてさらにtの幅だけ時間を隔てたt2が設定されるようになっている。
【0045】
次に、CPU50は、RAM70のアトラクタデータエリア内のxnに、時間t0における位置での音高値W(t0)を格納する(ステップSF3)。そしてynには、時間t1における音高値W(t1)を格納する(ステップSF4)。さらにzn2には時間t2における音高値W(t2)を格納する(ステップSF5)。この処理によって、表示部30の画面上に表示されるアトラクタの最初の3次元座標T1(図7参照)が決定する。その後、nをインクリメントし(ステップSF6)、時間軸上の各プロットスケール位置t0、t1、t2をΔtだけシフトさせる(ステップSF7)。
【0046】
続いて、時間t2がStimeを越えたか否か判断し(ステップSF8)し、超えていなければステップSF3の処理に戻って再びx成分、y成分、z成分の値を順次読み出し、RAM70内のアトラクタデータエリアへの書き込みを行う。この動作は、時間t2がStimeを越えるまで繰り返す。これにより、音高値T1(x,y,z)〜音高値Tn(x,y,z)が全て格納され、ターケンス・プロット処理の動作を終了する。
【0047】
次に、図6に図示するステップSC3では、得られた音高値T1(x,y,z)〜音高値Tn(x,y,z)についてのアトラクタが、最もその特徴を表現できるように、相関抽出処理が行われる。図9は相関抽出処理のフローチャートである。ここでは、すでに有名となっているアトラクタの特徴である「リミットサイクル、ストレンジ、トーラス」などの他、優れた編曲が行われている楽曲のアトラクタなど基本的な複数種のアトラクタ(以後基本アトラクタと称する)が予めROM60の基本アトラクタデータエリアに記録されており(図示せず)、この基本アトラクタと前述のターケンス・プロット処理により得られたアトラクタとの3次元相空間内での相関関係を調べて、もっとも高い相関性が得られる最適プロット条件を検出するための処理を行う。
【0048】
まず最初に、記録されている複数の基本アトラクタの中からひとつの基本アトラクタデータをROM60から呼び出す(ステップSH1)。次に、図8のターケンス・プロット処理により得られたアトラクタデータを呼び出す(ステップSH2)。そしてこれら呼び出された二つのアトラクタの形状の比較を行う(ステップSH3)。
【0049】
この図形の比較は、指紋認証を行うように二つの図形の位置やスケール、角度などを調整して多面的に比較することが好ましいが、特にこれに限定されるものでなく、別の3次元相空間における図形の比較の方式を用いてもよい。
【0050】
次に、この二つの図形の比較によってその相関性を定量的に示すべく相関値を決定する(ステップSH4)。例えばこの方法は、画像処理で行われるピクセルマッチングなどの方法がある。そして算出された相関値をRAMのワークエリアの相関値レジスタの値と比較し、大きい場合は算出された相関値と対応するプロット条件をストアする(ステップSH5)。続いて、記憶されている基本アトラクタを全部参照し終えたか否か判断し(ステップSH6)、参照し終えていないなら、別の基本アトラクタを順次指定してステップSH2〜SH6の処理を繰り返す。
【0051】
全ての基本アトラクタとの参照が終われば、ステップSH8へと処理を進める。すなわち、相関値レジスタは、この時点でもっとも基本アトラクタのどれかに最も高い相関性をもった相関値とその時に使用されたプロット条件が記録される。そして、ステップSH8では次のターケンス・プロットを行う準備を行うべく、RAM70内のアトラクタデータエリア内のデータT1〜Tnのデータを消去する。
【0052】
ここで、ROM60に記録されている基本アトラクタデータを記憶する基本アトラクタデータエリアであるが、図3に示すアトラクタデータエリアと同じ構造をとっている。この基本アトラクタデータエリアには、アトラクタの中でも有名な形状のアトラクタデータが記憶されている。例えばストレンジアトラクタを示す場合ではカオス状態である可能性が高いことがわかっており、このカオス状態は人間を含む自然界に含まれる状態として非常に有名である。
【0053】
このように、事前にアトラクタの特徴と曲の「音高変化の印象」の実際の関係がわかっているのであれば、ROM60に予め必要な基本アトラクタとして記録しておくことができる。これにより必要なアトラクタが効率的に表示させることが可能となる。そして、自ら自分が発見した無名のアトラクタが格別の効果があると判明した場合は、そのアトラクタを基本アトラクタとすることにより、基本アトラクタを増やしていくことも考えられる。さらには、ユーザがアトラクタの表示される相空間上に自由にアトラクタを描画できる機能を付加することにより、描画したアトラクタを基本アトラクタとして利用することができるようにしてもよい。
【0054】
次に、図6において、ステップSC4では、全てのプロット条件の処理を実行したか否かを判断する。まだ全てのプロット条件についてターケンス・プロットと相関抽出処理を行っていない場合は、判断結果が「NO」になり、ステップSC5に進み、プロット条件更新を実行した後、再び上記ステップSC2〜SC3を繰り返す。
【0055】
プロット条件更新は音高区間長Stimeの範囲において、複数のプロットスケール幅tと複数のリサンプリング周期Δtによって作り出される組み合わせが新しいプロット条件となるように更新するものである。この処理によって、多数のプロット条件を用いターケンス・プロットを自動で効率よく行えるようになる。
【0056】
尚、このプロット条件の組み合わせは、tおよびΔtがどれくらいのステップ量の細かさで組み合わせを作るのかによって増減するが、そのステップ量はCPUの処理能力によってユーザが自由に設定できるようにしてよい。また最初から実験値によって得られた適当な値を設定しておくことも可能である。
【0057】
さらに本実施形態においては、音高区間長Stimeについては固定しているが、これを可変とすることにより、プロット条件を増やしてもよい。また、プロットスケールtの各成分毎の間隔(x成分からyまでのtとyからzまでのt)を別々に変更することによりプロット条件を増加させて比較処理の回数を増やし、相関値算出精度をアップすることも可能である。
【0058】
本実施形態においては、ターケンス・プロット処理におけるプロット条件を自動的に種々変更して最適なプロット条件とアトラクタ抽出ができるようになっている。このため、操作する人の手間がかからず、簡単に最適なアトラクタの表示が可能となる。もちろん、本実施形態の如く自動的に最適なアトラクタを抽出するのではなく、ユーザが任意の値を設定しながら、最適と思われるアトラクタを抽出するようにしてもよい。
【0059】
さらに本実施形態では、基本アトラクタと原音高のアトラクタの比較による相関値をみてアトラクタの特徴を抽出しているが、この方法の限りではない。またカオス性を見出すために、現在様々な方法が提案されているが、リアプノフ指数を計算する機能を別途追加してリアプノフ指数が正となれば、カオスの傾向を表すためにアトラクタの色を変更したり、フーリエ変換サロゲート法を実行する機能を追加して、今扱っている曲の音高の並びがカオスであることを別に設けられた表示部などに表示させるようにしてもよい。これにより、その音高の並びの持つ特徴をさらに詳しくユーザに示すことができ、さらに効率的な使い勝手のよい編曲装置の提供が可能となる。
【0060】
再び図6に戻り、全てのプロット条件でターケンス・プロットとその相関抽出が終わると、ステップSC4の判断結果が「YES」となる。そして、ステップSC6に進み、図9のステップSH5においてレジスタに記憶されたプロット条件を、最大相関値が得られる最適プロット条件であると決定する。
【0061】
次に、ステップSC7において、この決定された最適プロット条件で再び原音高に対してターケンス・プロット処理を実行してアトラクタを求める。そしてこの求められたアトラクタを表示部に表示するとともに、次のステップSC8においてアトラクタデータエリアに保存する。
【0062】
この結果、最適なプロット条件で求められたアトラクタの各座標値である音高値T1(x,y,z)〜音高値Tn(x,y,z)が表示部30上の3次元相空間にプロットされ、これにより最も基本アトラクタと相関性のあるプロット条件でのアトラクタが表示されることになる。ここにおいて、表示部30にプロット条件と、相関値が高かった基本アトラクタの名称などの情報も同時に表示するようにして、このアトラクタがどのような傾向であるのかをユーザに知らせるようにしてもよい。こうすることにより、より使い勝手がよくなり、ユーザは計画性のある編集を行うことが可能になる。
【0063】
図10は、アトラクタの一例を表示した図であり、原音高データのアトラクタが軌道のように表示部30に表示される。このアトラクタを表示する際、軌跡をはっきりと見せるために、プロットされた点と次の点とをスプライン処理などを行って薄い色の線としてわかりやすく表示するようにしてもよい。
【0064】
b.アトラクタ変更処理の動作
次に、図11〜図14を参照してアトラクタ変更処理の動作を説明する。上述したターケンス・プロット表示処理により2次元の原音高データから3次元のアトラクタが生成され、図10に図示する一例のように、原音高データのアトラクタを描画し終えると、CPU50は図11に図示するアトラクタ変更処理のステップSD1に処理を進める。ステップSD1では、図12に図示するように、アトラクタ軌道上にマウスカーソルをポインティングした状態でマウスの左ボタンをクリックすると、このマウスカーソルと交接するアトラクタ軌道上の複数のデータ変更点を指定する。
【0065】
次いで、ステップSD2では、上記ステップSD1で指定された複数のデータ変更点を起点としてアトラクタの軌道を変更させるマウス操作量(x軸成分変位量、y軸成分変位量およびz軸成分変位量)を検出する。すなわち、図13に図示するように、マウスの左ボタンをクリック操作して複数のデータ変更点を指定した状態から当該マウスを前後にドラッグ操作した場合には、そのドラッグ操作された移動量がマウスカーソルのy軸成分変位量として検出される。また、マウスを左右にドラッグ操作した場合には、そのドラッグ操作された移動量がマウスカーソルのx軸成分変位量として検出される。さらに、マウスのホイール回動操作量がマウスカーソルのz軸成分変位量として検出される。
【0066】
続いて、ステップSD3では、アトラクタ変更描画処理を実行する。アトラクタ変更描画処理では、上記ステップSD1で指定された複数のデータ変更点を、上記ステップSD2において検出したマウス操作量(x軸成分変位量、y軸成分変位量およびz軸成分変位量)に応じて3次元直交座標上で移動させると共に、この移動された複数のデータ変更点を中心としたデータ補間エリア(図12参照)に含まれるアトラクタ軌道を変形させる。
【0067】
アトラクタ軌道を変形させるには、移動させた複数のデータ変更点の新たな座標位置に対して、RAM70のアトラクタデータエリアに保存したアトラクタデータ(音高値T1(x,y,z)〜音高値Tn(x,y,z))の内、データ補間エリア(図12参照)に含まれるアトラクタデータを、例えばスプライン関数などによる内挿補間演算を施して新たな軌道位置を求めればよい。
【0068】
尚、ターケンス・プロットの方法で、リサンプリングを続けた結果、その時間の累積による大きさがプロットスケール幅tの大きさを越える場合があり、その場合は今までyとして扱っていた数値が再びxとして扱われるようになり、zとして扱っていたデータが再びyとして扱われるようになる。すなわちこのようなプロット条件で作成されたアトラクタ上でのデータを変更すれば、それにともなって変更されるべき他の時間での音高値が存在することになる。この場合は、必要に応じてデータが変更されたときに、同時に原音高との整合性をもたせるためにアトラクタ上の関係する軌道を同時に修正するなどの自動処理を行うとよい。
【0069】
これにより、図10に図示したアトラクタ軌道は、例えば図14に図示するように、変更されたアトラクタ軌道が描画されて表示部30に表示される。そして、ステップSD4では、変更されたアトラクタ軌道を表す変更アトラクタデータ、すなわち3次元直交座標上の各音高値をRAM70の変形アトラクタデータエリアに保存して本処理を終える。
【0070】
c.音高再生成処理の動作
次に、図15を参照して音高再生成処理の動作を説明する。この音高再生成処理は、今まで行ってきたターケンス・プロットとは逆の処理を行わせて、3次元相空間のアトラクタから2次元の音高データを作り出すものである。
【0071】
まず上述したアトラクタ変更処理により原音高データから得たアトラクタの軌道を所望の形状に変形させ終えると、CPU50は図5に図示するステップSB3を介して音高再生成処理を実行する。音高再生成処理が実行されると、CPU50は図15のステップSI1に処理を進め、変数nに対して前回ターケンス・プロットした最後の値であるNを格納する。
【0072】
さらに、ステップSI2では再生される音高の終端の時間軸上の位置をt2とし、ここから時間軸上をプロットスケール幅tだけ遡った時間t1とし、さらにtだけ時間軸上を遡った時間t0と決定する。すなわちここでは時間軸上を逆方向にプロットスケールを動かすための準備作業を行っている。
【0073】
そして、ステップSI3では、変更アトラクタデータのn番目の座標であるzn,yn,xnを読み出す。この読み出されたzn,yn,xn夫々を、2次元音高の時間軸上の位置t2、t1、t0での音高値W(t2)、W(t1)、W(t0)として、RAM70に確保した再生成音高データエリアに書き込んでいく(ステップSI4〜ステップSI6)。この再生音高エリアは図2に示した原音高エリアと基本的に同じような構造をしている。次にステップSI7ではnをデクリメントしてt2、t1、t0をΔtだけ時間を遡るように移動させる。続くステップSI8ではnが0より小さいかどうか判断し、小さくないならステップSI3までもどり、ステップSI3〜SI7までの処理を繰り返し行う。そしてnが0より小さくなると、ステップSI8の判断はYESとなりこの音高再生処理を終了する。この音高生成処理によって、変更アトラクタデータは2次元の再生成音高データに変換されて再生成音高データエリア内に記憶される。
【0074】
図16は、この処理によって進められる音高の2次元への並び替え処理を図示したものである。プロットスケールはこのようにΔtだけ順次時間を遡りながら2次元音高を完成させる。
【0075】
このように、音高再生成処理では、上述のアトラクタ変更処理にて変形されたアトラクタについて、前述したステップSC2のターケンス・プロット処理(図6参照)とは逆の処理操作を施して3次元の変形アトラクタデータから2次元の再生成音高データを生成する。これにより、音の並びとして聞くことが可能な曲を生成することができる。
【0076】
以上説明したように、本実施の形態では、外部から入力される曲の音高をサンプリングして得た原音高データにターケンス・プロット処理を実行し、当該原音高データのアトラクタを表示し、この表示されたアトラクタの軌道をユーザ操作に応じて変更して変形アトラクタを作成し、さらにターケンス・プロットの逆の処理を行うことで再生成音高データを生成している。したがって、原音高データのアトラクタの特徴を継承した音の並びをもった曲を発生することが可能となる。
【0077】
なお、上述した実施形態では、外部から入力される原音高データとして用いているが、原音高データを用いずに、n次元のアトラクタが描かれる相空間に対して、アトラクタをマウスで直接描画することで、アトラクタデータを創りだし全く新しい音高を生成することも可能であり、この場合は0から作曲するということが可能になる。また本実施例では理解を容易にするために入力される原音高データの音と次の音の間が開いていない状態を示したがその部分が無音である場合は、直前の音が継続していると判断させるようにすればよい。ただしこのように原音高データが発音タイミング以外のときにも音高データとしてアトラクタ作成のために使用されるので、アトラクタ内でのデータ量が増えてしまうが、音高再生成処理ではその逆の処理を行ったとき、同じ音高であった部分のデータについては一つの音としてつなげて戻す処理を行うことで原音高データに近いデータ量にすることも可能である。これについては、ユーザの好みに応じて選択的にしてもよい。
【0078】
さらに、本実施の形態では、2次元の原音高データから3次元のアトラクタを作成する一例について言及したが、本発明の要旨はこれに限定されず、2次元の原音高データから4次元以上のアトラクタを生成する態様であっても勿論適用可能である。
【0079】
次に、実施形態の変形例について説明する。上述した実施形態では、説明の簡略化を図る為、原音高データが単音から構成されるものとしたが、実際には和音を含むこともある。そこで、変形例では、和音を含む原音高データをターケンス・プロットする手法について述べる。図17は、原音高データを表す楽譜(図17(a))と、それに対応する音高を時間軸上に並べた状態(図12(b))とを示す図である。
【0080】
この図に示す通り、4つの単音「C3」、「E3」、「G3」および「B3」の次の第5音目が構成音「C3,E3,G3,B3」からなる和音である場合、この和音を時間軸上の音高データで表現すると、全ての構成音が同時に発音するわけではなく、実際には各音高データは発音タイミング差Δtのようにずれている場合が頻繁に存在する。この発音タイミング差Δtが所定時間(例えば32分音符長)より大きい場合には、例えば図17(b)に図示する通り、構成音中の発音の早い順から順番にプロットするようにすればよい。こうすることで元曲のメロディパート中の和音もターケンス・プロットすることが可能になる。なお、和音の発音タイミング差Δtが0であった場合は、低い音の順番(もしくは高い順)からターケンスプロットすればよい。
さらに音高再生成処理でのアトラクタからの2次元相空間への処理についても上記プロットの逆の処理をすれば和音の生成が可能となる。
【0081】
また、図18図は図5に示す音高発生処理の応用例である。SB1〜SB3は本実施例の図5に示しているSB1〜SB3と同じ処理であるが、この応用例では、原音高データのコード進行を編曲後にも反映させ、一定の類似度は残した編曲を行いたいときに用いるものである。このため応用例での音高発生処理では新たにコード進行抽出処理SJ1とコード進行適合処理SJ2を追加して行っている。コード進行抽出処理には様々な方法があるが、例えば原音高データの小節などで区切り、その区間内の音名を自動集計し、頻度の高い音名を構成音として用いられているコードをその区間の該当するコードとして抽出するものが一般的である。
【0082】
そして、原音高データにおける最初から最後まで全てのコード抽出を行い、得られたコード進行情報は前記RAM70に一時的に記憶される。このコード進行情報は、SB3の音高再生成処理が終わった後に、生成された再生成音高データを原音高データのコード進行感が維持されるように修正されるため、再び使用される。すなわち前記音高再生成処理で生成された再生成音高データの中に、前記コード進行抽出処理で得られたコード進行のコード内で一般的に用いられるスケール構成音に対して異なる音が発見された場合は、スケール構成音にもっとも音高差が近い音に強制的に変更を行う。
0083
たとえば、音高生成処理後の再生成音高データの中にCメジャーのコードになるべきタイミングがあったとする。ここでCメジャーのスケールは「C、D、E、F、G、A、B」である。しかし再生成音高データの中に「E♭」の音が生成されてしまっていた場合は、この音はCのスケール音ではない。すなわちこの音はこのスケールには含まれてないのでこの音が発音されるとCmの感覚が出てきて、原音高データのコード進行感は失われる方向となる。このため強制的にもっとも近いCメジャースケールのスケール構成音であるEにデータを修正する。この処理を行うことで、現音高データのコード進行感を阻害せずある程度維持した編曲が可能となる。このように応用例を使用すれば編曲後の曲の類似性を高めたい場合は作業効率がアップし、使い勝手が向上する。
【0084】
尚、本発明の応用例ではCのコードが来たときにCのスケール構成音「C、D、E、F、G、A、B」としたが、これをCのコード構成音「C、E、G」とすれば、コードの構成音のみに合わせこまれるため、より一層のコード進行感のある編曲装置が可能となる。
↑【図面の簡単な説明】
【0085】
【図1】本発明による実施形態の構成を示すブロック図である。
【図2】原音高データエリアの構成を示す図である。
【図3】アトラクタデータエリアの構成を示す図である。
【図4】メインルーチンの動作を示すフローチャートである。
【図5】音高発生処理の動作を示すフローチャートである。
【図6】ターケンス・プロット表示処理の動作を示すフローチャートである。
【図7】図6に図示するステップSC2のターケンス・プロット処理の動作を説明するための図である。
【図8】ターケンス・プロット処理を示すフローチャートである。
【図9】相関抽出処理を示すフローチャートである。
【図10】描画されたアトラクタ軌道の一例を示す図である。
【図11】アトラクタ変更処理の動作を示すフローチャートである
【図12】アトラクタ軌道におけるデータ変更点の指定を示す図である
【図13】ステップSD2のマウス操作量検出を説明するための図である。
【図14】変更されたアトラクタ軌道の一例を示す図である。
【図15】音高再生成処理を示すフローチャートである。
【図16】音高再生成処理の動作を示す図である。
【図17】原音高データを表す楽譜と、それに対応する音高を時間軸上に並べた状態を示す図である。
【図18】音高再生成処理の応用例を示す図である。
【符号の説明】
【0086】
10 入力部
20 操作部
30 表示部
40 鍵盤
50 CPU
60 ROM
70 RAM
80 サウンドシステム
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】

【図15】

【図16】

【図17】

【図18】