(57)【特許請求の範囲】
【請求項１】
コード進行を記憶するコード進行記憶手段と、
メロディを記憶するメロディ記憶手段と、
上記コード進行における各コードの区間につき、核音として１つのコード構成音を割り当ててオブリガードの核を生成する核生成手段と、
上記メロディからメロディ音が所定の期間変化しない区間をオブリガードの展開区間として検出する展開区間検出手段と、
検出された展開区間に対して上記核音を複数の音から成る旋律に展開したオブリガード展開部を生成する展開部生成手段と、
生成されたオブリガードの核とオブリガード展開部とを合成してオブリガードの音列を生成する手段と、
を有することを特徴とするオブリガード自動生成装置。
【請求項２】
請求項１記載のオブリガード自動生成装置において、
上記展開部生成手段は、
複数の音種の列で表現される展開部生成ルールを記憶する展開部生成ルール記憶手段と、
コードの機能別に音階音情報を記憶する音階音記憶手段と、
検出された展開区間におけるコードの機能に対する、記憶された音階音情報に従って、上記展開部生成ルールの各音種を音高に変換する音高解読手段と、
を有することを特徴とするオブリガード自動生成装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は音楽装置に関し、特にオブリガード（メロディと対比されるカウンタメロディ）を自動生成するオブリガード自動生成装置に関する。
【０００２】
【従来の技術】
従来のオブリガード自動生成装置ではコード毎に１つのコード構成音をオブリガード音として選択することによりオブリガードのラインを生成していた。この従来技術によれば記憶すべきデータ量は少なくてすむが生成結果であるオブリガードが単調なものになる問題があった。
これに対し、メロディに伴奏を付ける自動伴奏装置では伴奏パターンデータを予め用意、記憶しておき、検出したコードに合わせて伴奏パターンデータの各音の音高を決定することが行われている。通常、伴奏パターンとして、ノーマル、バリエーション、イントロ、フィルインのように何種類かのパターンが用意され、音楽の進行に合わせて、いずれかのパターンを選択するようにしている。例えば、特開昭６２−２５７９２号の自動伴奏装置では、メロディ鍵の押鍵時間が所定時間を超えたときにパターンをノーマルからバリエーションのパターンに切り換えるようにしている。
いずれにしろ、この種の自動伴奏装置は伴奏パターンデータとして相当の記憶容量を必要とする問題がある。また、伴奏パターンはオブリガードの性格をもたないため、オブリガード自動生成装置への適用は困難であった。
【０００３】
【発明が解決しようとする課題】
したがって、この発明の目的は大量のデータ量を必要とすることなくメロディの進行に合わせて多様に変化し得るオブリガードを生成可能なオブリガード自動生成装置を提供することである。
【０００４】
【手段、作用】
この発明によれば、コード進行を記憶するコード進行記憶手段と、メロディを記憶するメロディ記憶手段と、上記コード進行における各コードの区間につき、核音として１つのコード構成音を割り当ててオブリガードの核を生成する核生成手段と、上記メロディからメロディ音が所定の期間変化しない区間をオブリガードの展開区間として検出する展開区間検出手段と、検出された展開区間に対して上記核音を複数の音から成る旋律に展開したオブリガード展開部を生成する展開部生成手段と、生成されたオブリガードの核とオブリガード展開部とを合成してオブリガードの音列を生成する手段と、を有することを特徴とするオブリガード自動生成装置。
【０００５】
この構成によればメロディが旋律として動いている間は、核生成手段によって生成された核音により、オブリガード音がコード進行のリズムに従って発生する。一方メロディが動いていない区間に対しては展開区間検出手段と展開部生成手段の作用により核音を複数の音から成る旋律に展開したオブリガード展開部が発生する。このようにして、メロディとは対比的な動きをするオブリガードを得ることができる。更にオブリガード自動生成装置は伴奏パターンデータのような音高列のデータを予め記憶しておく必要がないので記憶容量を節約できる。
一構成例において、展開部生成手段は、複数の音種の列で表現された展開部生成ルール記憶手段と、コードの機能別に音階音情報を記憶する音階音記憶手段と、検出された展開区間におけるコード機能に対する、記憶された音階音情報に従って展開部生成ルールの核音種を音高に変換する音高解読手段を有する。
この構成によればオブリガード展開部にコード構成音以外の音階音を含めることができる。また、生成されるオブリガード展開部は進行中のコードの機能（調性和声機能）に従った音高内容をもつので調から逸脱しない音楽的な自然さを確保できる。
【０００６】
【実施例】
以下、図面を参照してこの発明の実施例を説明する。
図１に実施例のオブリガード自動生成装置のハードウェア構成を示す。ＣＰＵ１０はプログラムメモリ１２に記憶されるプログラムを実行して装置各部を制御する。ワークメモリ１４はＲＡＭ構成でＣＰＵ１０の作業メモリとして用いられる。入力装置１６は鍵盤を含み、この入力装置１６からメロディ、コード進行、オブリガードの開始音等が入力される。メロディメモリ１８は入力装置１６から入力されたメロディのデータを記憶する。コード進行メモリ２０は入力装置１６から入力されたコード進行のデータを記憶する。ここに、コード進行データは、コード進行における各コードの機能（例えばＶ７）と長さ、及び各キーの音名と長さの情報をもっている。コード機能とキーの情報は入力装置１６から入力されたコード押鍵データからコード検出によって得られたコードのタイプと根音とで表現されるコード名（例えばタイプ７と根音Ｇで表現されるＧ７）の列を調・機能分析することに得られる。この種の調・機能分析として特願平３−６８９２２号に示す技術を使用できる。
【０００７】
本実施例に従い、ＳＤＢメモリ２２はコード機能別に音階音情報を記憶する。ＣＰＵ１０はこの音階音情報を、オブリガードの核音としてコード構成音を選択するとき、及びオブリガードの展開部における各音種を音高解読するときに参照する。
本実施例に従い、展開部ルールメモリ２４はオブリガードの展開部を生成するルールとして複数の音種の列を記憶する。
【０００８】
オブリガードはオブリガードの核部と展開部とを合成したものから成る。ＣＰＵ１０は生成したオブリガードデータをオブリガードメモリ２６に記憶する。
再生の際、ＣＰＵ１０はメロディメモリ１８とオブリガードメモリ２４から音情報を読み出して音源２８を制御して音源２８からメロディ音をオブリガード音の楽音信号を発生させる。発生した楽音信号はアンプ、スピーカを含むサウンドシステム３０を通して放音される。
【０００９】
図２に実施例のオブリガード自動生成装置の機能ブロック図を示す。本オブリガード自動生成装置は第１の段階でオブリガードの核（メロディが動いているところでのオブリガードを形成するもの）を生成し、第２の段階でオブリガードの展開部（メロディが動いていないところでのオブリガードを形成するもの）を生成する。
【００１０】
このために核生成部１０２はオブリガード開始音入力部１６０から与えられるオブリガード開始音を最初のコード区間に対するオブリガード音（核音）として受け取り、第２コード以降、１コードに付き１音の率で核音を決定することにより、オブリガードの核を生成する。ここに核音としてはコード構成音が使用される。このために核生成部１０２はコード進行メモリ２０からコード進行における各コードの機能とキーの情報を読む。そしてコード機能を用いてＳＤＢメモリ２２をルックアップすることにより、ＳＤＢメモリ２２からキーＣにおけるコード構成音の音高データを選択し、それにキーデータを加えて核音の音高を定める。
【００１１】
一方、展開区間検出部１０４はメロディメモリ１８にあるメロディを検査してメロディが動いていない区間、即ち、メロディ音が所定の時点（例えば小節の頭）から所定の期間（例えば４拍分）にわたって変化していない区間をオブリガードの展開区間として検出する。生成ルール選択部１０６はこの検出された展開区間に対して適用する展開部生成ルールを展開部ルールメモリ２４のルールベースから選択する。ルール解読部１０８は選択された展開部生成ルールに書かれた各音種を音高に変換して展開部データを生成する。この音高変換のために、ルール解読部１０８はコード進行メモリ２０から展開区間におけるキーとコード機能を読み、そのコード機能に対する音階音情報をＳＤＢメモリ２２から読み、そのなかから音種が指す音階音高を見つけ出し、それにキーを加えて音種の音高を決定する。
合成部１１０は核生成部１０２からのオブリガード核データとルール解読部１０８からの展開部データとを合成して最終的なオブリガードデータを得る。
【００１２】
図３にＳＤＢメモリ２２に記憶される音階音データベースＳＤＢの例を示す。図示のように音階音データベースはコード機能（例Ｉ、ＩＩｍ）別に音階音の音高情報（キーがＣのときの音高情報）を記憶する。記号“Ｋ”はその音高がコード構成音の音階音であることを示し、記号“ＳＴ”はその音高がコード構成音以外の音階音であることを示している。例えばコード機能ＩのときはＣ、Ｅ、Ｇがコード構成音ＫでＤ、Ａ、Ｂがコード構成音以外の音階音ＳＴであることが示されている。
【００１３】
図４に展開部ルールメモリ２４に記憶されるルールベースの例を示したものである。第１のルールベースＤＥＶ１は小節の頭から終りまでの展開区間に対して適用できる展開部ルールのセットを記憶する。図中、ｔ１、ｔ２、ｔ３、ｔ４はそれぞれ第１拍、第２拍、第３拍、第４拍を表わしている。例えば、ルールベースＤＥＶ１の第１ルールは第１拍を音種ＳＤ（ｉ）、第２拍を音種Ｋ＋、第３拍を音種Ｋ＋、第４拍を音種ＳＤ（ｉ）とすることを意味している。ここにＳＤ（ｉ）は展開区間におけるオブリガード核音を指し、Ｋ＋は前音より上に隣接するＫ音を表わしている。なお各音種の意味については後述する。第２のルールベースＤＥＶ２は第２拍目から小節の終りまでの展開区間に対して適用可能な展開部ルールのセットを記憶し、第３のルールベースＤＥＶ３は小節の頭から２拍分または３拍目から小節の終りまでの展開区間に対して適用可能な展開部ルールのセットを記憶する。
【００１４】
ＣＰＵ１０は図５に示すように第１段階でオブリガードの核を生成し（５−１）、第２段階で展開部を生成する（５−２）。
【００１５】
図６に核生成処理５−１のフローチャートを示す。最初に（６−１）、ＣＰＵ１０はコード進行の終りにエンドマークをつける。次に入力装置１６から入力されるオブリガード開始音高データを最初のコード区間に対するオブリガード核音として読み込む（６−２）。ｉ＝０に初期化し（６−３）、ＳＤ（ｉ）にオブリガード開始音高データをセットし、ＳＬ（ｉ）に最初のコード長データをセットする。ここに配列ＳＤ（０）、ＳＤ（１）、……はオブリガードメモリ２６におけるオブリガードの音高列を表わし、配列ＳＬ（０）、ＳＬ（１）……はオブリガードの音長列を表わす。なお、オブリガード開始音は最初のコードの構成音のなかから選択される。
【００１６】
続いてＳＤ（ｉ）の内容を前オブリガード音高レジスタＯＢにセットし（６−５）、ｉをインクリメントし、コード進行メモリ２０からの次コードの機能とキーを読み込む（６−６）。エンドマークに達してなければ音階音データベースのなかから、前オブリガード音高レジスタＯＢに最も近い現コードの構成音Ｋを見つけ出す。例えば、前オブリガード音高＝Ｂ４＝４×１２＋１１、現コード機能＝Ｖ７、現キー＝Ｇ＝７とすると、図３の“Ｃ”を“Ｇ”と読み替えて、図３の“Ｅ”の列をＢ４に対応するサーチ開始位置とする。右に１つ移るとＶ７のコード構成音がみつかる。したがってＫ＝Ｂ４＋１＝Ｃ５＝５×１２として現コード区間に対する核音の音高が求められる。そこで求めた核音音高ＫをＳＤ（ｉ）にセットし、現コード長をＳＬ（ｉ）にセットし（６−９）、６−５へ戻る。
以上の処理をエンドマークに達するまで続けることにより、１コードに付き１音の割でオブリガード音（核音）が生成される。
【００１７】
図７に展開部生成処理５−２のフローチャートを示す。
ＣＰＵ１０はメロディを先頭から調べていき、同一コードの下でメロディ音が２拍以上伸びているところをサーチする（７−１）。発見したときはそのメロディ音が小節の頭から４拍伸びている部分を含むかどうかをチェックする（７−２）。これに該当する場合、この小節の頭から４拍の区間はオブリガードの展開区間なので７−３に進み、４拍のルールベースＤＥＶ１のなかから１つの展開部生成ルールを選択する。そしてルールの各音種を音高に変換して展開部データを生成し（７−４）、それをオブリガードのデータ配列ＳＤ（ｉ）、ＳＬ（ｉ）中に挿入してオブリガードを合成する（７−５）。
【００１８】
７−２に該当しないときは７−６でそのメロディ音が２拍目から小節の終りまで伸びている部分を含むかどうかをチェックする。これに該当するときはこの２拍目から小節の終りまでの区間は３拍の長さをもつオブリガードの展開区間なので７−７に進み、３拍のルールベースＤＥＶ２のなかから１つの展開部生成ルールを選択する。そしてルールの各音種を音高に変換して展開部データを生成し（７−８）、オブリガードデータ配列ＳＤ（ｉ）、ＳＬ（ｉ）に挿入してオブリガードを合成する（７−９）。
【００１９】
７−６に該当しないときは７−１０でそのメロディ音が３拍目から小節の終りまでか１拍目から２拍伸びている部分を含むかどうかチェックする。該当するときは２拍の長さをもつオブリガード展開区間なので７−１１に進み、２拍のルールベースＤＥＶ３のなかから展開部生成ルールを１つ選択する。そしてルールの各音種を音高に変換して展開部データを生成し（７−１２）、オブリガードデータ配列ＳＤ（ｉ）、ＳＬ（ｉ）中に挿入してオブリガードを合成する。
以上の処理をメロディの終りに達するまで（７−１４）繰り返すことにより、展開部が生成され、オブリガードの核と合成されてオブリガードが完成する。
【００２０】
展開部ルールの音種を解読する音高解読処理の詳細を図８に示す。音種ＳＤ（ｉ）は現コードに対する核音の音高データをオブリガード核データから読みとることで音高に変換される。
【００２１】
音種Ｋ＋（またはＫ−）は前オブリガード音の音高より上（または下に）隣接するＫ音を音階音データベースＳＤＢから読むことによって音高に変換される。音種ＳＴ＋（ＳＴ−）は前オブリガード音より上（下）に隣接するＳＴ音を音階音データベースＳＤＢから読むことによって音高に変換される。ＳＴ＋（ＳＤ（ｉ＋１））（またはＳＴ−（ＳＤ（ｉ＋１））は次コード区間における核音より上（下）に隣接するＳＴ音を音階音データベースＳＤＢから読むことによって音高に変換される。ＳＴ＋（ｔｉ）（またはＳＴ−（ｔｉ））はｉ拍目のオブリガード音より上（下）に隣接するＳＴ音を音階音データベースＳＤＢから読むことによって音高に変換される。
【００２２】
４拍の合成処理７−５は次のようにして行われる。いま展開部音高列をＤ（１）、Ｄ（２）、Ｄ（３）、Ｄ（４）、音長列をＬ（１）、Ｌ（２）、Ｌ（３）、Ｌ（４）（それぞれ１拍の長さである）とし、現核音ＳＤ（ｉ）、ＳＬ（ｉ）の始端から展開区間の始端までの長さをＬ（ｓ）、展開区間の終端から現核音の終端までの長さをＬ（ｅ）とすると、ＳＤ（ｉ）＝ＳＤ（ｉ）、ＳＬ（ｉ）＝Ｌ（ｓ）、ＳＤ（ｉ＋ｐ）＝Ｄ（ｐ）（ただし、ｐ＝１、２、３、４）、ＳＬ（ｉ＋ｐ）＝Ｌ（ｐ）、ＳＤ（ｉ＋５）＝ＳＤ（ｉ）、ＳＬ（ｉ＋５）＝Ｌ（ｅ）としてセットされる。ただし、Ｌ（ｓ）＝０またはＬ（ｐ）＝０のときはそれに対応するデータは不要である。他の合成処理７−９、７−１３も同様にして実行できる。
【００２３】
図９に実施例のオブリガード自動生成装置の動作例を示す。コード進行として（ｂ）に示すように１小節目の第１拍でコードVIｍ、第２拍〜第４拍でＶ、２小節目でVIｍとなる進行が与えられる。また、キーは（ａ）に示すように１、２小節を通じてＣである。これに対してオブリガード自動生成装置は核生成処理５−１を実行して（ｄ）に示すオブリガードの核を生成する。ここに核は最初のコードVIｍの区間でＥ５、次のコードＶの区間でＤ５、最後のコードVIｍの区間でＥ５となる。次にオブリガード自動生成装置は展開部生成処理５−２を実行する。ここでオブリガード自動生成装置は２００に示すように第２小節目において同一コードVIｍの下に同じメロディ音Ａ４が伸びていることを検出する。ここにＡ４は第１〜第３拍までで第４拍は休みになっているが、休みの間はメロディに変化はなしとみなして第２小節の頭から終りまでの４拍の区間がオブリガード展開区間として検出される。ここでオブリガード自動生成装置は４拍（ｔ１〜ｔ４）の展開部生成ルールベースＤＥＶ１からルール２を選択したとする。ルール２によれば第１拍ｔ１が現核音を指す音種ＳＤ（ｉ）、第２拍ｔ２が前音（この場合ＳＤ（ｉ））の上に隣接するコード構成音Ｋ、第３拍ｔ３がＳＤ（ｉ）の上に隣接するコード構成音でない音階音、第４拍ｔ４がＳＤ（ｉ）である。したがってこのルール２をコード機能VIｍ、キーＣ、及び音階音データベースＳＤＢを用いて解読すると、（ｅ）に示すようなオブリガード展開部が得られる。ここにオブリガード展開部は第１拍が現核音の音高Ｅ５、第２拍がＡ５、第３拍がＦ５、第４拍がＥ５という旋律を形成する。最後に核ライン（ｄ）と展開部（ｅ）とを合成することにより（ｆ）に示すようなオブリガードが完成する。
【００２４】
以上で実施例の説明を終えるがこの発明の範囲内で種々の変形が可能である。例えば実施例では展開部生成ルールベースを４拍子用としているが、他の拍子（例えば３拍子）の展開部ルールベースを用意し、使用する音楽の拍子に従って該当する展開部ルールベースを展開部ルールメモリ２４から選択するようにしてもよい。
【００２５】
【発明の効果】
以上詳述したように、この発明によれば核生成手段によりコードの区間ごとに１つのコード構成音をオブリガード音（核音）として割り当ててオブリガードの核を生成し、展開区間検出手段によりメロディの静止領域からオブリガードを展開すべき区間（展開区間）を検出し、展開部生成手段によりこの展開区間に対して核音を複数の音から成る旋律に展開したオブリガード展開部を生成しているのでメロディラインの動きとは対比的なオブリガードラインを大量のデータを必要とすることなく生成することができる。
【図面の簡単な説明】
【図１】実施例のオブリガード自動生成装置のハードウェア構成を示すブロック図。
【図２】実施例のオブリガード自動生成装置のオブリガード生成機能を示すブロック図。
【図３】音階音データベースを示す図。
【図４】オブリガード展開部の生成ルールベースを示す図。
【図５】オブリガード生成処理のフローチャート。
【図６】核生成処理のフローチャート。
【図７】展開部生成処理のフローチャート。
【図８】展開音高解読処理の説明図。
【図９】実施例の動作の説明図。
【符号の説明】
１８  メロディ
２０  コード進行メモリ
１０２  核生成部
１０４  展開区間検出部
１０６  生成ルール選択部
１０８  ルール解読部
【図１】
0003554772.tif 000002
【図２】
0003554772.tif 000003
【図３】
0003554772.tif 000004
【図４】
0003554772.tif 000005
【図５】
0003554772.tif 000006
【図６】
0003554772.tif 000007
【図７】
0003554772.tif 000008
【図８】
0003554772.tif 000009
【図９】
0003554772.tif 000010