(57)【特許請求の範囲】
【請求項１】
コンピュータにおける自動作曲方法であって、
作成すべき曲の時間長を前記コンピュータに入力するステップと、
入力された時間長に対応して使用すべき音符の数を前記コンピュータにより決定するステップと、
決定された数の音符を用いて曲を前記コンピュータにより自動的に作成するステップと
を含む自動作曲方法。
【請求項２】
作曲すべき曲の時間長を入力する入力手段と、
この入力手段で入力された時間長に対応して使用すべき音符の数を決定する決定手段と、
この決定手段で決定された数の音符を用いて自動的に曲を作成する作曲手段と
を備えた自動作曲装置。
【請求項３】
コンピュータにおいて使用される記録媒体であって、
作成すべき曲の時間長を入力するステップと、
入力された時間長に対応して使用すべき音符の数を決定するステップと、
決定された数の音符を用いて曲を自動的に作成するステップと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
コンピュータにおける自動作曲方法であって、
作成すべき曲の時間長を前記コンピュータに入力するステップと、
入力された時間長に対応する楽節の数を前記コンピュータにより決定するステップと、
各々決定された数の楽節からなる複数の楽節構成を前記コンピュータにより求めるステップと、
求めた複数の楽節構成のうちから１つの楽節構成を前記コンピュータにて選択するステップと、
選択された楽節構成を有する曲を前記コンピュータにより自動的に作成するステップと
を含む自動作曲方法。
【請求項５】
作成すべき曲の時間長を入力する入力手段と、
この入力手段で入力された時間長に対応する楽節の数を決定する決定手段と、
各々前記決定手段で決定された数の楽節からなる複数の楽節構成を決定する楽節構成決定手段と、
この楽節構成決定手段で決定された複数の楽節構成のうちから１つの楽節構成を選択する選択手段と、
この選択手段で選択された楽節構成を有する曲を自動的に作成する作曲手段と
を備えた自動作曲装置。
【請求項６】
コンピュータにおいて使用される記録媒体であって、
作成すべき曲の時間長を入力するステップと、
入力された時間長に対応する楽節の数を決定するステップと、
各々決定された数の楽節からなる複数の楽節構成を求めるステップと、
求めた複数の楽節構成のうちから１つの楽節構成を選択するステップと、
選択された楽節構成を有する曲を自動的に作成するステップと
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、自動作曲方法、自動作曲装置及び記録媒体に関し、特に入力した時間長に対応して音符数又は楽節数を決定すると共に決定に係る音符数又は楽節数に従って自動作曲を行なうことにより入力した時間長に一致又は近似した時間長の曲を得るのを可能にしたものである。
【０００２】
【従来の技術】
従来、自動作曲装置としては、データベースから読出した作曲用データに基づいて自動作曲を行なうものが知られている（例えば、特開平９−５０２７８号公報参照）。この場合、作曲用データとしては、Ａ−Ｂ−Ｃ−Ｃ’等の楽節配列により曲構成を表わす曲構成データと、メロディ特徴やリズム特徴等の曲特徴を表わす曲特徴データとを含むデータが使用される。
【０００３】
【発明が解決しようとする課題】
上記した従来技術によると、自動作曲処理が終了するまでは曲の時間長が判明せず、希望する時間長の曲を得ることはできなかった。自動作曲処理の終了後に時間調節のためにテンポを調整することも考えられるが、不自然にテンポが速い又は遅い曲になるおそれがあった。
【０００４】
この発明の目的は、所望の時間長の曲を得ることができる新規な自動作曲方法及び装置を提供することにある。
【０００５】
【課題を解決するための手段】
この発明に係る第１の自動作曲方法は、コンピュータにおける自動作曲方法であって、
作成すべき曲の時間長を前記コンピュータに入力するステップと、
入力された時間長に対応して使用すべき音符の数を前記コンピュータにより決定するステップと、
決定された数の音符を用いて曲を前記コンピュータにより自動的に作成するステップと
を含むものである。
【０００６】
第１の自動作曲方法によれば、作成すべき曲について所望の時間長を入力すると、入力された時間長に対応して２分音符、４分音符、８分音符等の使用すべき音符の数が決定される。そして、決定された数の音符を用いて自動的に曲が作成される。従って、入力した時間長に一致又は近似した時間長の曲を得ることができる。
【０００９】
この発明に係る第２の自動作曲方法は、コンピュータにおける自動作曲方法であって、
作成すべき曲の時間長を前記コンピュータに入力するステップと、
入力された時間長に対応する楽節の数を前記コンピュータにより決定するステップと、
各々決定された数の楽節からなる複数の楽節構成を前記コンピュータにより求めるステップと、
求めた複数の楽節構成のうちから１つの楽節構成を前記コンピュータにて選択するステップと、
選択された楽節構成を有する曲を前記コンピュータにより自動的に作成するステップと
を含むものである。
【００１０】
第２の自動作曲方法によれば、作成すべき曲について所望の時間長を入力すると、入力された時間長に対応する３楽節等の楽節の数が決定される。そして、各々決定された数の楽節からなる複数の楽節構成が求められると共に、該複数の楽節構成のうちから１つの楽節構成が選択され、選択に係る楽節構成を有する曲が自動的に作成される。従って、入力した時間長に一致又は近似した時間長の曲を得ることができると共に、曲の楽節構成にユーザの意志を反映させることができる。
【００１２】
【発明の実施の形態】
図１は、この発明の一実施形態に係る自動作曲装置を備えた電子楽器の回路構成を示すものであり、この電子楽器は、パーソナルコンピュータ等の小型コンピュータによって楽音発生、曲作成等が制御されるようになっている。
【００１３】
バス１０には、ＣＰＵ（中央処理装置）１２、ＲＯＭ（リード・オンリィ・メモリ）１４、ＲＡＭ（ランダム・アクセス・メモリ）１６、検出回路１８，２０、表示回路２２、音源回路２４、効果回路２６、外部記憶装置２８、ＭＩＤＩ（Musical Instrument Digital Interface）インターフェース３０、通信インターフェース３２、タイマ３４等が接続されている。
【００１４】
ＣＰＵ１２は、ＲＯＭ１４にストアされたプログラムに従って楽音発生、曲作成等のための各種処理を実行するもので、曲作成処理については図２〜１１を参照して後述する。
【００１５】
ＲＡＭ１６は、ＣＰＵ１２による各種処理に際して使用される種々の記憶部を含むもので、主な記憶部としては、作曲条件記憶部１６Ａ、作曲用データ記憶部１６Ｂ、曲データ記憶部１６Ｃ等を含んでいる。
【００１６】
検出回路１８は、鍵盤３６から鍵操作情報を検出するものである。検出回路２０は、スイッチ群３８から各種スイッチの操作情報を検出するものである。スイッチ群３８は、一例として文字入力及び数値入力が可能なキーボードからなり、マウスも含んでいる。
【００１７】
表示回路２２は、表示器４０の表示動作を制御することにより各種の表示を可能にするものである。
【００１８】
音源回路２４は、複数の楽音発生チャンネルを有するものである。
【００１９】
効果回路２６は、音源回路２４から発生される楽音信号にコーラス、リバーブ等の効果を付加するものである。効果回路２６から送出される楽音信号は、サウンドシステム４２に供給され、音響に変換される。
【００２０】
外部記憶装置２８は、ＨＤ（ハードディスク）、ＦＤ（フロッピーディスク）、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多目的ディスク）、ＭＯ（光磁気ディスク）等のうち１又は複数種類の記録媒体を着脱可能なものである。外部記憶装置２８に所望の記録媒体を装着した状態では、記録媒体からＲＡＭ１６へデータを転送可能である。また、装着した記録媒体がＨＤやＦＤのように書込可能なものであれば、ＲＡＭ１６のデータを記録媒体に転送可能である。
【００２１】
プログラム記録手段としては、ＲＯＭ１４の代りに外部記憶装置２８の記録媒体を用いることができる。この場合、記録媒体に記録したプログラムは、外部記憶装置２８からＲＡＭ１６へ転送する。そして、ＲＡＭ１６に記憶したプログラムに従ってＣＰＵ１２を動作させる。このようにすると、プログラムの追加やバージョンアップ等を容易に行なうことができる。
【００２２】
ＭＩＤＩインターフェース３０は、自動演奏装置等の他のＭＩＤＩ機器４４との間で演奏情報等の送受信を行なうために設けられたものである。
【００２３】
通信インターフェース３２は、通信ネットワーク４６（例えばＬＡＮ（ローカル・エリア・ネットワーク）、インターネット、電話回線等）を介してサーバコンピュータ４８と情報通信を行なうために設けられたものである。この発明の実施に必要なプログラムや各種データは、サーバコンピュータ４８から通信ネットワーク４６及び通信インターフェース３２を介してＲＡＭ１６又は外部記憶装置２８へダウンロード要求に応じて取込むようにしてもよい。
【００２４】
タイマ３４は、与えられるテンポデータＴＭに対応する周期でテンポクロック信号ＴＣＬを発生するもので、テンポクロック信号ＴＣＬは、割込命令としてＣＰＵ１２に供給される。ＣＰＵ１２は、テンポクロック信号ＴＣＬの各クロックパルス毎に割込処理を開始する。このような割込処理を利用することにより記憶部１６Ｃの曲データに基づいて自動演奏を行なうことができる。
【００２５】
上記した電子楽器において、ＣＰＵ１２は、鍵盤３６で鍵が押されるたびに、押された鍵に対応する音高情報と発音命令信号とを音源回路２４に供給する。音源回路２４は、音高情報及び発音命令信号に応じて、押された鍵に対応する音高を有する楽音信号を発生する。このようにしてマニュアル演奏音の発生が可能となる。
【００２６】
図２は、作曲ルーチンの第１の例を示すものである。ステップ５０では、作成すべき曲に関して時間長入力処理を行なう。すなわち、ユーザがスイッチ群３８中のスイッチの操作又はマウスの操作により所望の時間長を例えば「４０秒」のように指示すると、指示された時間長を表わす時間長データがＲＡＭ１６の作曲条件記憶部１６Ａに書込まれる。
【００２７】
次に、ステップ５２では、仮テンポと音符種類毎の音符使用割合とを指定する処理を行なう。すなわち、ユーザがスイッチ群３８中のスイッチの操作又はマウスの操作により例えば「１２０」（毎分当りの４分音符数）を指示すると、指示されたテンポを表わすテンポデータが記憶部１６Ａに書込まれる。テンポの指定は、表示器４０の画面に「遅い（４分音符＝６０）」、「中（４分音符＝１２０）」、「速い（４分音符＝１４０）」を表示し、ユーザに所望のテンポを選択させることで行なうようにしてもよい。
【００２８】
また、ユーザがスイッチ群３８中のスイッチの操作又はマウスの操作により例えば２分音符、４分音符及び８分音符について作成すべき曲中での音符使用割合を例えば「０．２」、「０．５」、「０．３」のように指示すると、音符種類毎に指示された音符使用割合を表わす音符使用割合データが記憶部１６Ａに書込まれる。音符種類毎の音符使用割合の指定は、例えばＲＯＭ１４等の記憶手段に時間長毎に１又は複数組の音符使用割合データを記憶しておき、ステップ５０での時間長の入力に応答して入力に係る時間長に対応する１又は複数の音符使用割合データを表示器４０の画面に表示させ、ユーザに表示中のいずれかの音符使用割合データを選択させることで行なうようにしてもい。この場合、記憶手段には時間長毎に「遅い（６０）」、「中（１２０）」、「速い（１４０）」の３通りのテンポに対応して３組の音符使用割合データを記憶しておき、入力に係る時間長と３通りのテンポとに対応する３組の音符使用割合データを表示器４０の画面に表示してユーザにいずれかの音符使用割合データを選択させるようにしてもよい。このようにすると、テンポ指定と音符種類毎の音符使用割合指定とを１回の操作で行なうことができ、独立したテンポ指定操作が不要となる。
【００２９】
ステップ５２においては、２分音符〜８分音符に限らず、全音符、１６分音符以下の音符、付点音符、連符、休符等について使用割合を指定するようにしてもよい。
【００３０】
次に、ステップ５４では、記憶部１６Ａの時間長データ、テンポデータ及び音符使用割合データに基づいて音符種類毎の音符数を算出する。このためには、まず、次の数１の式に従って作成すべき曲中の総音符数Ｑを求める。
【００３１】
【数１】
Ｑ＝Ｔ×ＴＭＰ／６０×（２×Ｒ２＋Ｒ４＋０．５×Ｒ８）
ここで、Ｔは入力した時間長、ＴＭＰは指定したテンポをそれぞれ表わし、Ｒ２、Ｒ４、Ｒ８はそれぞれ２分音符、４分音符、８分音符について指定した音符使用割合を表わす。
【００３２】
総音符数Ｑを求めた後、次の数２の式により２分音符数Ｑ２、４分音符数Ｑ４、８分音符数Ｑ８を求める。
【００３３】
【数２】
Ｑ２＝Ｑ×Ｒ２
Ｑ４＝Ｑ×Ｒ４
Ｑ８＝Ｑ×Ｒ８
一例として、Ｔ＝４０秒、ＴＭＰ＝１２０、Ｒ２＝０．２、Ｒ４＝０．５、Ｒ８＝０．３とすると、
Ｑ＝４０×１２０／６０×（２×０．２＋０．５＋０．５×０．３）≒７６
Ｑ２＝７６×０．２≒１５
Ｑ４＝７６×０．５≒３８
Ｑ８＝７６×０．３≒２３
となる。
【００３４】
次に、ステップ５６では、各音符種類毎に算出に係る数の音符を入力に係る時間長の区間内に割り振ってリズムを決定する。音符の割り振り方は、ランダムでもよいし、あるいは楽節構成（Ａ−Ｂ−Ａ−Ａ’等の楽節配列及び楽節毎の小節数）を指定してそれに従うようにしてもよい。楽節構成を指定した場合、楽節Ａと楽節Ａのような同一区間では同様の態様で音符を割り振り、楽節Ａと楽節Ａ’のような類似区間では類似の態様で音符を割り振り、楽節Ａと楽節Ｂのような対比区間では対照的に異なる態様で音符を割り振る。楽節構成を指定した場合には、図８、９又は図１０、１１を参照して後述する処理によりリズムを決定してもよい。また、リズム特徴（例えばシンコペーションの有無等）を指定して、それに従うようにしてもよく、あるいは拍子を指定して小節単位でリズム決定を行なうようにしてもよい。
【００３５】
次に、ステップ５８では、決定されたリズムを構成する各音符にピッチ（音高）を付与する。ピッチ付与の仕方は、ランダムでもよいし、あるいは楽節構成を指定してそれに従うようにしてもよい。楽節構成を指定した場合、楽節Ａと楽節Ａのような同一区間では同様の態様でピッチを付与し、楽節Ａと楽節Ａ’のような類似区間では類似の態様でピッチを付与し、楽節Ａと楽節Ｂのような対比区間では対照的に異なる態様でピッチを付与する。楽節構成を指定した場合には、図８，９又は図１０，１１を参照して後述する処理によりピッチを付与してもよい。また、ピッチ特徴（例えば跳躍度合い等）又はコード進行等を指定してそれに従うようにしてもよい。なお、ステップ５６、５８の処理では、音楽ルールを考慮するようにしてもよい。
【００３６】
ステップ５６，５８の処理で作成された曲データは、ＲＡＭ１６の記憶部１６Ｃに保存されている。ステップ６０では、記憶部１６ＡのテンポデータをテンポデータＴＭとしてタイマ３４に供給してテンポクロック信号ＴＣＬの周波数を決定する。そして、信号ＴＣＬに基づく割込処理により記憶部１６Ｃの曲データに基づいて作成曲の自動演奏を行なう。ユーザは、作成曲の自動演奏を試聴し、好みに合うように自動演奏のテンポを修正する。テンポの修正は、スイッチ群３８中のスイッチの操作又はマウスの操作により行なう。テンポ修正操作に応じて記憶部１６Ａのテンポデータ（タイマ３４に供給されるテンポデータＴＭ）の値が変更され、この値変更に応じてテンポクロック信号ＴＣＬの周波数が変更され、ＴＣＬの周波数変更に応じて自動演奏のテンポが変更される。テンポ変更方法としては、テンポクロック信号ＴＣＬの周波数を一定として、曲データ中のタイミングデータの値を設定テンポに応じて変更する方法、テンポクロック信号ＴＣＬを計数するカウンタの計数動作を設定テンポに応じて制御する方法等を用いてもよい。ただし、テンポを修正すると、入力した時間長とは異なる長さになってしまうので、時間長を保存する場合はテンポ修正をしない。
【００３７】
図３は、作曲ルーチンの第２の例を示すものである。ステップ７０では、ステップ５０で述べたと同様にして時間長入力処理を行なう。
【００３８】
次に、ステップ７２では、仮テンポと拍子とを指定する処理を行なう。仮テンポ指定処理は、ステップ５２で述べたと同様にして行なうことができる。拍子指定処理では、ユーザがスイッチ群３８中のスイッチの操作又はマウスの操作により４／４拍子、３／４拍子等のいずれかの拍子を指示すると、指示された拍子を表わす拍子データが記憶部１６Ａに書込まれる。
【００３９】
次に、ステップ７４では、記憶部１６Ａの時間長データ、テンポデータ及び拍子データに基づき且つ次の数３の式に従って作成すべき曲の小節数Ｍを求める。
【００４０】
【数３】
Ｍ＝Ｔ×ＴＭＰ／（６０×Ｂ）
ここで、Ｔは入力した時間長、ＴＭＰは指定したテンポ、Ｂは指定した拍子の４分音符数をそれぞれ表わす。
【００４１】
一例として、Ｔ＝４０秒、ＴＭＰ＝１２０、Ｂ＝４とすると、
Ｍ＝４０×１２０／（６０×４）＝２０［小節］
となる。なお、演奏の結果、小節数Ｍに端数が出た場合（例えばＭ＝２０．５の場合）は、近い整数（例えば２０又は２１）又は近く且つ音楽的に切りのよい整数（例えば２０又は２４）に丸め込む。
【００４２】
次に、ステップ７６では、算出に係る数の小節のうちの各小節に音符を割り振ってリズムを決定する。このとき、リズムが小節単位となるように調整する。音符の割り振り方は、ランダムでよいし、あるいは記憶した多数の小節単位のリズムパターンのうちからいずれかのリズムパターンを選択して選択に係るリズムパターンに従うようにしてもよい。また、ステップ５６で述べたと同様にして楽節構成を指定してそれに従うようにしてもよい。楽節構成を指定した場合には、図８，９又は図１０，１１を参照して後述する処理によりリズムを決定してもよい。さらに、リズム特徴（例えばシンコペーションの有無等）を指定してそれに従うようにしてもよい。
【００４３】
次に、ステップ７８では、決定されたリズムを構成する各音符にピッチ（音高）を付与する。ピッチ付与の仕方は、ランダムでもよいし、あるいはステップ５８で述べたと同様にして楽節構成を指定してそれに従うようにしてもよい。楽節構成を指定する場合には、図８，９又は図１０，１１を参照して後述する処理によりピッチを付与してもよい。また、ピッチ特徴（例えば跳躍度合い等）又はコード進行等を指定してそれに従うようにしてもよい。なお、ステップ７６，７８の処理では、音楽ルールを考慮するようにしてもよい。
【００４４】
この後、ステップ８０では、ステップ６０で述べたと同様にして記憶部１６Ｃの曲データに基づいて自動演奏を行ない、ユーザの好みに合わせてテンポを修正する。また、上述のように小節数を丸め込んだために、入力された時間長とは異なる長さになった場合は、テンポ修正により時間長を調節してもよい。
【００４５】
図４は、作曲ルーチンの第３の例を示すものである。ステップ９０では、ステップ５０で述べたと同様にして時間長入力処理を行なう。
【００４６】
次に、ステップ９２では、ステップ７２で述べたと同様にして仮テンポと拍子とを指定する処理を行なう。この後、ステップ９４では、ステップ７４で述べたと同様にして記憶部１６Ａの時間長データ、テンポデータ及び拍子データに基づいて小節数を算出する。
【００４７】
次に、ステップ９６では、算出された小節数に基づいて楽節構成を決定する処理を行なう。楽節構成決定処理としては、図５，６又は７について後述する方法を用いることができる。
【００４８】
次に、ステップ９８では、決定された楽節構成における各楽節に音符を割り振ってリズムを決定する。このとき、リズムが小節単位となるように調整する。音符の割り振り方は、ランダムでもよいし、あるいは記憶した多数の小節単位のリズムパターンのうちからいずれかのリズムパターンを選択して選択に係るリズムパターンに従うようにしてもよい。また、図８，９又は図１０，１１を参照して後述する処理によりリズムを決定してもよい。さらに、リズム特徴（例えばシンコペーションの有無等）を指定してそれに従うようにしてもよい。
【００４９】
次に、ステップ１００では、決定されたリズムを構成する各音符にピッチ（音高）を付与する。ピッチ付与の仕方は、ランダムでもよいし、あるいはピッチ特徴（例えば跳躍度合い等）又はコード進行等を指定してそれに従うようにしてもよい。また、図８，９又は図１０，１１を参照して後述する処理によりピッチを付与してもよい。なお、ステップ９８、１００の処理では、音楽ルールを考慮するようにしてもよい。
【００５０】
この後、ステップ１０２では、ステップ６０で述べたと同様にして記憶部１６Ｃの曲データに基づいて自動演奏を行ない、ユーザの好みに合わせてテンポを修正する。あるいは、時間長調節のためにテンポを修正する。
【００５１】
図５は、楽節構成決定処理の第１の例を示すものである。算出された小節数をＮとし、いずれもＳ小節である楽節の数をＫとし、Ｓ小節未満の余りの小節をＬとした場合、ステップ１１０では、次の数４の式によりＫとＬとを求める。
【００５２】
【数４】
Ｎ＝Ｋ×Ｓ＋Ｌ
次に、ステップ１１２では、Ｓ小節の楽節Ｋ個とＬ小節の楽節１個との順序の組合せを求める。一例として、Ｓ＝４、Ｎ＝１０とすると、Ｋ＝２、Ｌ＝２となり、楽節構成は、４小節の楽節２個と、２小節の楽節１個となる。そして、順序の組合せは、
４＋４＋２、４＋２＋４、２＋４＋４
の３種類となる。
【００５３】
次に、ステップ１１４では、各組合せ毎に（Ｋ＋１）個の楽節に対して所定のルールに従って楽節記号を割り振る。所定のルールとしては、例えば、
ルール１：記号の出現順序はＡ，Ｂ…のようにアルファベット文字の順とし、ダッシュはＡ’、Ａ”…のように１つずつ増大させていくこと、
ルール２：同じ記号又はそのダッシュ付き記号は同じ小節数の楽節に付すことという２つのルールを用いることができる。前述の３種類の組合せについてルール１，２に従って楽節記号を割り振ると、
４（Ａ）＋４（Ａ）＋２（Ｂ）、４（Ａ）＋４（Ａ’）＋２（Ｂ）
４（Ａ）＋２（Ｂ）＋４（Ａ）、４（Ａ）＋２（Ｂ）＋４（Ａ’）
２（Ａ）＋４（Ｂ）＋４（Ｂ）、２（Ａ）＋４（Ｂ）＋４（Ｂ’）
となる。
【００５４】
次に、ステップ１１６では、楽節記号が割り振られた複数の楽節構成（上記した例では６つの楽節構成）のうちから１つの楽節構成を選択する処理を行なう。表示等により提示された複数の楽節構成の中からユーザがスイッチ群３８中のスイッチの操作又はマウスの操作により所望の楽節構成を選択すると、選択された楽節構成を表わす楽節構成データが記憶部１６Ａに書込まれる。
【００５５】
図６は、楽節構成決定処理の第２の例を示すものである。この例では楽節の小節数を全く自由とし、算出された小節数の分割を優先的に行なう。すなわち、算出された小節数を予め定めた分割数で分割し、分割で得られた各楽節構成に楽節記号を割り振る。
【００５６】
一例として、分割数は、
１≦小節数≦４では、１分割
５＜小節数≦８では、２分割
９＜小節数≦１２では、３分割
のように予め定めておく。この場合、Ｐを整数とすると、一般的には、
４×（Ｐ−１）＋１≦小節数≦Ｐ×４では、Ｐ分割
のように表現することができる。
【００５７】
ステップ１２０では、算出された小節数に応じた分割数を上記のように予め定めた条件に従って求める。そして、ステップ１２２では、算出された小節数を求めた分割数に従って分割する。一例として、算出小節数が１０である場合は、３分割となるので、
２＋４＋４、２＋６＋２、４＋４＋２，４＋２＋４
等の楽節構成が得られる。なお、算出小節数が１小節の場合を除いて（２小節以上であれば）、楽節の小節数を２以上としてもよい。このようにすると、ステップ１２２の分割処理において、例えば１０小節を３分割する際に１小節からなる楽節を含む楽節構成が生ずるのを防ぐことができる。
【００５８】
次に、ステップ１２４では、分割で得られた各楽節構成に対して、ステップ１１４で述べたと同様にして楽節記号を割り振る。
【００５９】
この後、ステップ１２６では、楽節記号が割り振られた複数の楽節構成のうちから１つの楽節構成を選択する処理をステップ１１６と同様に実行する。この結果、ユーザの選択に係る楽節構成を表わす楽節構成データが記憶部１６Ａに書込まれる。
【００６０】
図７は、楽節構成決定処理の第３の例を示すものである。この例では、算出された小節数の分割を全くランダムに行なう。ステップ１３０では、例えば２，４等の小節数をランダムに発生する。
【００６１】
次にステップ１３２では、発生された小節数の合計が算出された小節数以上になったか判定する。この判定結果が否定的（Ｎ）であれば、ステップ１３０に戻り、再び小節数をランダムに発生する。
【００６２】
このような処理を何回か繰返すと、ステップ１３２の判定結果が肯定的（Ｙ）となる。一例として、算出された小節数が１０である場合は、４，２，４のように小節数が発生されると、ステップ１３２の判定結果が肯定的（Ｙ）となる。
【００６３】
ステップ１３２の判定結果が肯定的（Ｙ）になると、ステップ１３４に移り、発生に係る小節数配列からなる楽節構成に対して、ステップ１１４で述べたと同様にして楽節記号を割り振る。この結果、楽節記号が割り振られた楽節構成が１つであれば、該楽節構成を表わす楽節構成データを記憶部１６Ａに書込む。また、楽節記号が割り振られた楽節構成が複数であれば、複数の楽節構成のうちから１つの楽節構成を選択する処理をステップ１１６と同様にして行なう。上記例のように小節数配列４−２−４からなる楽節構成に楽節記号を割り振った結果として、
４（Ａ）＋２（Ｂ）＋４（Ａ）、４（Ａ）＋２（Ｂ）＋４（Ａ’）
のような楽節構成が得られたときは、いずれかの楽節構成をユーザに選択させる。この結果、ユーザの選択に係る楽節構成を表わす楽節構成データが記憶部１６Ａに書込まれる。
【００６４】
図８は、図４の作曲ルーチンの第１の変形例（図４のステップ９６〜１００に相当）を示すものである。ステップ９６では、図５，６又は７に関して前述した方法で楽節構成を決定する。
【００６５】
次に、ステップ９７では、リズム特徴テンプレートの選択処理を行なう。ＲＯＭ１４等の記憶手段には、図９（ａ）に示すように複数の楽節構成にそれぞれ対応した複数のリズム特徴テンプレートＲ１、Ｒ２、Ｒ３…が予め記憶されている。各リズム特徴テンプレートは、Ｒ１について代表的に示すように対応する楽節構成におけるＡ楽節−Ｂ楽節−Ａ楽節−Ａ’楽節等の楽節配列に従って各楽節毎にリズム特徴データを含むものであり、例えばリズム特徴テンプレートＲ１は、Ａ−Ｂ−Ａ−Ａ’に対応するリズム特徴データＲＤ１〜ＲＤ４を含んでいる。各楽節のリズム特徴データは、例えばシンコペーションの有無、付点音符の有無、音符数の多少、音符の粗密（小節前半で粗、小節後半で密等）などを表わす。Ａ、Ａ’、Ｂ等の楽節記号は、楽節間でデータの同一、類似又は対比の関係を表わす。例えば先頭のＡ楽節のリズム特徴データは、後方のＡ楽節のリズム特徴データと同一であり、Ａ’楽節のリズム特徴データとは類似である。また、Ｂ楽節のリズム特徴データは、Ａ楽節のリズム特徴データと対比した（対照的な）リズム特徴を有する。
【００６６】
ステップ９７では、記憶部１６Ａの楽節構成データに基づいて記憶手段のリズム特徴テンプレートＲ１、Ｒ２、Ｒ３…を参照し、楽節構成データと楽節構成が一致するリズム特徴テンプレートを記憶手段から読出してＲＡＭ１６の作曲用データ記憶部１６Ｂに書込む。そして、ステップ９８では、決定された楽節構成における各楽節毎に記憶部１６Ｂのリズム特徴テンプレートに従ってリズムを決定する。
【００６７】
次に、ステップ９９では、ピッチ特徴テンプレート及びコード進行テンプレートの選択処理を行なう。ＲＯＭ１４等の記憶手段には、図９（ｂ）に示すように複数の楽節構成にそれぞれ対応した複数のピッチ特徴テンプレートＰ１、Ｐ２、Ｐ３…が予め記憶されると共に、図９（ｃ）に示すように複数の楽節構成にそれぞれ対応した複数のコード進行テンプレートＣ１、Ｃ２、Ｃ３…が予め記憶されている。
【００６８】
各ピッチ特徴テンプレートは、Ｐ１について代表的に示すように対応する楽節構成におけるＡ楽節−Ｂ楽節−Ａ楽節−Ａ’楽節等の楽節配列に従って各楽節毎にピッチ特徴データを含むものであり、例えばピッチ特徴テンプレートＰ１は、Ａ−Ｂ−Ａ−Ａ’に対応するピッチ特徴データＰＤ１〜ＰＤ４を含んでいる。各楽節のピッチ特徴データは、例えばピッチの跳躍度合い、和音構成音の含有率、非和音構成音の音型（倚音、経過音等）、重要打点（強拍打点又は強拍に打点がない場合は強拍の近傍の打点）のピッチなどを表わす。Ａ，Ａ’，Ｂ等の楽節記号は、リズム特徴テンプレートに関して前述したと同様に楽節間でデータの同一、類似又は対比の関係を表わす。
【００６９】
各コード進行テンプレートは、Ｃ１について代表的に示すように対応する楽節構成におけるＡ楽節−Ｂ楽節−Ａ楽節−Ａ’楽節等の楽節配列に従って各楽節毎にコード進行データを含むものであり、例えばコード進行データＣ１は、Ａ−Ｂ−Ａ−Ａ’に対応したコード進行データＣＤ１〜ＣＤ４を含んでいる。各楽節のコード進行データは、コード進行を表わす。Ａ、Ａ’、Ｂ等の楽節記号は、リズム特徴テンプレートに関して前述したと同様に楽節間でデータの同一、類似又は対比の関係を表わす。
【００７０】
ステップ９９では、記憶部１６Ａの楽節構成データに基づいて記憶手段のピッチ特徴テンプレートＰ１、Ｐ２、Ｐ３…及びコード進行テンプレートＣ１、Ｃ２、Ｃ３…を参照し、楽節構成データと楽節構成が一致するピッチ特徴テンプレート及びコード進行テンプレートを記憶手段から読出して記憶部１６Ｂに書込む。そして、ステップ１００では、決定された楽節構成における各楽節毎に記憶部１６Ｂのピッチ特徴テンプレート及びコード進行テンプレートに従ってピッチを付与する。
【００７１】
図９（ａ）〜（ｃ）に示したリズム特徴テンプレート、ピッチ特徴テンプレート及びコード進行テンプレートは、記憶手段において別々に記憶してもよく、あるいはＲ１、Ｐ１、Ｃ１のように楽節構成を同じくするテンプレートをセットで記憶してもよい。テンプレートをセットで記憶した場合は、図８のステップ９７において記憶部１６Ａの楽節構成データと楽節構成が一致するリズム特徴テンプレート、ピッチ特徴テンプレート及びコード進行テンプレートを記憶手段から読出し、記憶部１６Ｂに書込む。そして、ステップ９８では、記憶部１６Ｂのリズム特徴テンプレートに従ってリズム決定を行ない、ステップ１００では、記憶部１６Ｂのピッチ特徴テンプレート及びコード進行テンプレートに従ってピッチ付与を行なう。この場合、ステップ９９は省略することができる。
【００７２】
記憶手段には、楽節構成毎に複数のリズム特徴テンプレートと複数のピッチ特徴テンプレートと、複数のコード進行テンプレートとを記憶してもよい。この場合、記憶部１６Ａの楽節構成データに基づいてリズム特徴テンプレート、ピッチ特徴テンプレート及びコード進行テンプレートがいずれも複数読出されるが、各テンプレート群毎にいずれかのテンプレートをユーザに選択させるか又はランダムに自動選択する構成とすればよい。このようにすると、同じ楽節構成であってもリズム特徴、ピッチ特徴及びコード進行の組合せを変えることができ、作成される曲のバリエーションが増加する。
【００７３】
図１０は、図４の作曲ルーチンの第２の変形例（図４のステップ９６〜１００に相当）を示すものである。ステップ９６では、図５，６又は７に関して前述した方法で楽節構成を決定する。
【００７４】
次に、ステップ１０４では、図１１に示すような作曲用データ生成処理を行なう。すなわち、ステップ１４０では、Ａ楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをランダムに生成し、ＲＡＭ１６内の所定領域に書込む。
【００７５】
次に、ステップ１４２では、記憶部１６Ａの楽節構成データを参照して最初の楽節がＡ楽節か判定する。この判定結果が肯定的（Ｙ）であればステップ１４４に移り、Ａ楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをＲＡＭ１６内の所定領域から記憶部１６Ｂにコピーする。記憶部１６Ｂには、リズム特徴データ、ピッチ特徴データ及びコード進行データをそれぞれ記憶するための第１、第２及び第３の記憶領域が設けられており、コピーに係るリズム特徴データ、ピッチ特徴データ及びコード進行データは、それぞれ第１、第２及び第３の記憶領域に書込まれる。
【００７６】
ステップ１４４の後は、ステップ１４６に移り、記憶部１６Ａの楽節構成データを参照して最終楽節についてデータを生成済みか判定する。最初の楽節についてデータを生成した直後は、ステップ１４６の判定結果が否定的（Ｎ）となり、ステップ１４２に戻る。そして、記憶部１６Ａの楽節構成データを参照して次の楽節がＡ楽節か判定する。この判定結果が否定的（Ｎ）であればステップ１４８に移る。
【００７７】
ステップ１４８では、次の楽節（ステップ１４２と同じ楽節）がＡ’楽節か判定する。この判定結果が肯定的（Ｙ）であればステップ１５０においてＡ楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをＲＡＭ１６の所定領域からコピーし、一部（例えば後半）を修正したものを記憶部１６Ｂの第１、第２及び第３の記憶領域に前回の書込データに続けてそれぞれ書込む。
【００７８】
ステップ１５０の後は、ステップ１４６に移り、前述したと同様に最終楽節についてデータを生成済みか判定する。この判定結果が否定的（Ｎ）であればステップ１４２に戻り、次の楽節がＡ楽節か判定する。この判定結果が否定的（Ｎ）であればステップ１４８に移り、次の楽節（ステップ１４２と同じ楽節）がＡ’楽節か判定する。
【００７９】
ステップ１４８の判定結果が否定的（Ｎ）であったときは、ステップ１５２に移り、次の楽節（ステップ１４８と同じ楽節）がＢ楽節か判定する。この判定結果が肯定的（Ｙ）であればステップ１５４においてＢ楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをランダムに生成し、記憶部１６Ｂの第１、第２及び第３の記憶領域に前回と同様にそれぞれ書込む。
【００８０】
ステップ１５４の後は、ステップ１４６に移り、前述したと同様にして最終楽節についてデータ生成済みか判定する。この判定結果が否定的（Ｎ）であればステップ１４２に戻る。そして、次の楽節がＡ、Ａ’、Ｂのいずれでもないと、ステップ１４２，１４８，１５２の判定結果がいずれも否定的（Ｎ）となり、ステップ１５６に移る。
【００８１】
ステップ１５６では、その他の楽節用の各種データを生成する。すなわち、次の楽節がＡ”楽節であれば、Ａ楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをＡ’楽節用のデータとは異なるように一部を修正したもの（又はＡ’楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをコピーして一部修正したもの）を記憶部１６Ｂの第１、第２及び第３の記憶領域に前回と同様にそれぞれ書込む。
【００８２】
また、次の楽節がＢ’楽節であれば、Ｂ楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをコピーして一部修正したものを記憶部１６Ｂの第１、第２及び第３の記憶領域に前回と同様にそれぞれ書込む。
【００８３】
さらに、次の楽節がＣ楽節であれば、Ｃ楽節用のリズム特徴データ、ピッチ特徴データ及びコード進行データをランダムに生成し、記憶部１６Ｂの第１、第２及び第３の記憶領域に前回と同様にそれぞれ書込む。
【００８４】
ステップ１５６の後は、ステップ１４６に移り、前述したと同様に最終楽節についてデータを生成済みか判定する。この判定結果が肯定的（Ｙ）になると、処理エンドとする。
【００８５】
図１１の処理によれば、記憶部１６Ａの楽節構成データが例えばＡ−Ｂ−Ａ−Ａ’のような楽節構成を表わしているときは、記憶部１６Ｂの第１、第２及び第３の記憶領域には、いずれもＡ−Ｂ−Ａ−Ａ’の楽節構成を有するリズム特徴データ、ピッチ特徴データ及びコード進行データがそれぞれ得られる。
【００８６】
図１０のステップ９８では、記憶部１６Ｂの第１の記憶領域に記憶されたリズム特徴データに従ってリズム決定を行なう。また、図１０のステップ１００では、記憶部１６Ｂの第２及び第３の記憶領域にそれぞれ記憶されたピッチ特徴データ及びコード進行データに従ってピッチ付与を行なう。
【００８７】
上記した実施形態によれば、時間長毎（又は小節数毎）に作曲用データを記憶手段に記憶しないので、少ない記憶データ量で入力時間長に一致又は近似した時間長の曲を作成することができる。
【００８８】
この発明は上記した実施形態に限定されるものではなく、種々の改変形態で実施可能なものである。例えば、次のような変更が可能である。
【００８９】
（１）テンポの調整方法としては、曲の始めから終りまで一様に調整するものに限らず、曲の楽節、小節などの所定区間毎に調整するものあるいは暫減（リタルダンド）又は暫増（アチェレランド）形式で調整するものであってもよい。
【００９０】
（２）楽節構成の表示方法としては、楽節配列及び楽節毎の小節数を表示するものに限らず、「イントロ４小節、Ａメロディ４小節、Ｂメロディ２小節、フィルイン２小節、エンディング４小節」のような表示方法でもよい。
【００９１】
（３）この発明は、メロディ曲の作成に限らず、リズムやベース等の伴奏曲の作成にも適用することができる。
【００９２】
（４）この発明は、電子楽器の形態に限らず、パーソナルコンピュータとアプリケーションソフトウェアとの組合せの形態でも実施することができる。アプリケーションソフトウェアは、磁気ディスク、光磁気ディスク、半導体メモリ等の記録媒体に記憶させてパーソナルコンピュータに供給してもよいし、あるいは通信ネットワークを介してパーソナルコンピュータに供給するようにしてもよい。
【００９３】
（５）この発明は、電子楽器に限らず、カラオケ装置、ゲーム装置、携帯電話等の携帯型通信端末、自動演奏ピアノ等に用いる曲データの作成にも適用することができる。
【００９４】
（６）この発明は、鍵盤式電子楽器に限らず、弦楽器式、管楽器式、打楽器式等の電子楽器にも適用することができる。
【００９５】
（７）この発明は、音源装置、自動演奏装置等を内蔵した電子楽器に限らず、鍵盤、音源装置、自動演奏装置等をＭＩＤＩや各種ネットワーク等の通信手段で結合した電子楽器にも適用することができる。
【００９６】
（８）メロディ、コード等の曲データのフォーマットは、イベントの発生時刻を１つ前のイベントからの相対時間で表わす「イベント＋相対時間」方式に限らず、イベントの発生時刻を曲や小節内の絶対時間で表わす「イベント＋絶対時間」方式、音符の音高と音符長及び休符と休符長で曲の内容を表わす「音高（休符）＋符長」方式、イベント発生の最小時間単位毎に記憶領域を確保し、イベントの発生時刻に対応する記憶領域にイベントを記憶する方式等の任意の方式を用いることができる。
【００９７】
（９）複数チャンネル分の曲データを作成する場合、複数チャンネルのデータを混在させて記録してもよいし、チャンネル毎に記録トラックを別にして記録してもよい。
【００９８】
（１０）曲データを記録する場合、メモリ内の連続する領域に時系列的に記録してもよいし、メモリ内の飛び飛びの領域に分散させて記録して連続するデータとして管理するようにしてもよい。
【００９９】
【発明の効果】
以上のように、この発明によれば、所望の時間長を入力すると共に入力した時間長に対応して音符数又は楽節数を決定し、決定に係る音符数又は楽節数に従って自動的に曲を作成するようにしたので、入力した時間長に一致又は近似した時間長の曲を作成可能となる効果が得られる。
【０１００】
また、楽節数を決定した場合において、各々決定した数の楽節からなる複数の楽節構成を求めると共に、求めた複数の楽節構成のうちから１つの楽節構成を選択し、選択に係る楽節構成を有する曲を作成すると、曲の楽節構成にユーザの意志を反映可能となる効果が得られる。
【図面の簡単な説明】
【図１】  この発明の一実施形態に係る自動作曲装置を備えた電子楽器の回路構成を示すブロック図である。
【図２】  作曲ルーチンの第１の例を示すフローチャートである。
【図３】  作曲ルーチンの第２の例を示すフローチャートである。
【図４】  作曲ルーチンの第３の例を示すフローチャートである。
【図５】  楽節構成決定処理の第１の例を示すフローチャートである。
【図６】  楽節構成決定処理の第２の例を示すフローチャートである。
【図７】  楽節構成決定処理の第３の例を示すフローチャートである。
【図８】  図４の作曲ルーチンの第１の変形例を示すフローチャートである。
【図９】  リズム特徴テンプレート、ピッチ特徴テンプレート及びコード進行テンプレートの記憶状況を示す図である。
【図１０】  図４の作曲ルーチンの第２の変形例を示す示すフローチャートである。
【図１１】  作曲用データ生成処理を示すフローチャートである。
【符号の説明】
１０：バス、１２：ＣＰＵ、１４：ＲＯＭ、１６：ＲＡＭ、１６Ａ：作曲条件記憶部、１６Ｂ：作曲用データ記憶部、１６Ｃ：曲データ記憶部、１８，２０：検出回路、２２：表示回路、２４：音源回路、２６：効果回路、２８：外部記憶装置、３０：ＭＩＤＩインターフェース、３２：通信インターフェース、３４：タイマ、３６：鍵盤、３８：スイッチ群、４０：表示器、４２：サウンドシステム、４４：他のＭＩＤＩ機器、４６：通信ネットワーク、４８：サーバコンピュータ。
【図１】
0003752940.tif 000002
【図２】
0003752940.tif 000003
【図３】
0003752940.tif 000004
【図４】
0003752940.tif 000005
【図５】
0003752940.tif 000006
【図６】
0003752940.tif 000007
【図７】
0003752940.tif 000008
【図８】
0003752940.tif 000009
【図９】
0003752940.tif 000010
【図１０】
0003752940.tif 000011
【図１１】
0003752940.tif 000012