(57)【特許請求の範囲】
【請求項１】
各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、
曲全体に対する作曲条件を設定する設定手段と、
該設定された作曲条件のうち、作曲すべき楽曲におけるリズムパターンの特徴を、当該楽曲を構成する下位の要素に対して振り分ける振り分け手段と、
該振り分けられたリズムパターンの特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段と
を有することを特徴とする自動作曲装置。
【請求項２】
各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、
作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、
該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段と
を有し、
前記リズムパターンの特徴には、少なくとも当該リズムパターンの打点数を示す情報が含まれており、作曲すべき楽曲における該打点数が変更されたときには、前記選択手段は、その変更後の打点数のリズムパターンであって、打点数以外の特徴データが元のリズムパターンに近似するリズムパターンを、前記リズムパターンデータベースから選択する
ことを特徴とする自動作曲装置。
【請求項３】
各種の小節単位のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、
作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、
該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段と、
対象小節が、前記小節単位の単一のリズムパターンを割り当てることができない小節であるときに、当該小節を、該小節に属する区間と該小節の直後小節に属する区間とに分割する区間分割手段と
を有し、
前記選択手段は、該分割された２区間のそれぞれに異なったリズムパターンを選択する
ことを特徴とする自動作曲装置。
【請求項４】
各種の小節単位のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースから、設定手段を用いて設定された、作曲すべき楽曲におけるリズムパターンの特徴に適合する特徴データを検索し、該検索された特徴データに対応するリズムパターンを選択する選択ステップと、
対象小節が、前記小節単位の単一のリズムパターンを割り当てることができない小節であるときに、当該小節を、該小節に属する区間と該小節の直後小節に属する区間とに分割する区間分割ステップと
を有する自動作曲方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み取り可能な記憶媒体であって、
前記選択ステップでは、該分割された２区間のそれぞれに異なったリズムパターンを選択する
ことを特徴とする記憶媒体。
【請求項５】
曲全体に対する作曲条件を設定する設定手段を用いて設定された作曲条件のうち、作曲すべき楽曲におけるリズムパターンの特徴を、当該楽曲を構成する下位の要素に対して振り分ける振り分けステップと、
各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースから、前記振り分けられたリズムパターンの特徴に適合する特徴データを検索し、該検索された特徴データに対応するリズムパターンを選択する選択ステップと
を有する自動作曲方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【請求項６】
所定の最短音符長に従った各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、
作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、
該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段と、
作曲すべき楽曲の最短音符長が前記所定の最短音符長と等しい場合には、前記選択されたリズムパターンをそのまま利用する一方、作曲すべき楽曲の最短音符長が前記所定の最短音符長と一致しない場合には、前記選択されたリズムパターンの時間軸を変更して利用することにより、当該作曲すべき楽曲の最短音符長に対応したリズムパターンを生成するリズムパターン生成手段と
を有することを特徴とする自動作曲装置。
【請求項７】
各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースであって、前記各リズムパターンには、複数の最短音符長に対応して互いに異なる複数の特徴データが付与されているものと、
作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、
該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段であって、作曲すべき楽曲の最短音符長に対応した特徴データに基づいて前記リズムパターンデータベースを検索するものと
を有することを特徴とする自動作曲装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音楽に関する各種の条件に応じて自動的に作曲を行う自動作曲装置および記憶媒体に関する。
【０００２】
【従来の技術】
従来、音楽に関する各種の条件に応じて自動的に作曲を行う自動作曲装置として、たとえば特開平９−５０２７８号公報には、次の装置が開示されている。
【０００３】
すなわち、この自動作曲装置は、各種の既存曲の音楽的特徴を分析して抽出し、その分析・抽出結果を対応する既存曲の曲テンプレートとして演奏データメモリに記憶し、この記憶された各種の曲テンプレートのうちいずれかの曲テンプレートにユーザが適宜修正を加え、修正の加えられたものに基づいて自動的に作曲を行うように構成されている。
【０００４】
曲テンプレートに記載されるデータのうち、フレーズ毎のリズムに関するものには、たとえば、「粗密パターン（粗密）」、「フレーズ先頭の休符の有無（フレーズ先頭の遅れ指定）」、「対比／模倣される楽節（対比／模倣）」、「シンコペーションの有無（シンコペーション指定）」等が含まれている。これらのデータに基づいて、音符割当ての優先順位を決定するテーブルである拍優先順位決定表を作成し、この拍優先順位決定表と、その小節における音節数に従って、各音節の発音タイミング、すなわちリズムパターンを決定している。
【０００５】
【発明が解決しようとする課題】
しかし、上記従来の自動作曲装置では、リズムパターンは、曲テンプレートに記載されたフレーズ毎のリズムに関するデータに応じて一意的に決定される拍優先順位決定表に基づいて決定されるので、曲テンプレートに設定された特徴が同様であれば、同様のリズムパターンが生成される可能性が高かった。
【０００６】
そして、リズムパターンを変化させたい場合には、すべてのフレーズのそれぞれに対して、前記各データ値、すなわち「粗密パターン（粗密）」、「フレーズ先頭の休符の有無（フレーズ先頭の遅れ指定）」、「対比／模倣される楽節（対比／模倣）」、「シンコペーションの有無（シンコペーション指定）」等を設定する必要があるため、ユーザは非常に面倒な設定を行わなければならなかった。
【０００７】
さらに、既存曲の音楽的特徴を分析・抽出して曲テンプレートを生成するときに使用する特徴抽出アルゴリズムは非常に複雑であるため、そのプログラミングに時間を要するとともに、プログラム容量も増大し、その結果、製造コストが増大していた。
【０００８】
また、ピックアップ小節のあるリズムパターンを生成することができないため、ピックアップ小節のあるリズムパターンを生成したいというユーザの要求に応えることができなかった。
【０００９】
本発明は、この点に着目してなされたものであり、簡単な設定のみでリズムパターンを様々に変化させることが可能な自動作曲装置および記憶媒体を提供することを第１の目的とし、既存曲の音楽的特徴を簡単に抽出することが可能な自動作曲装置および記憶媒体を提供することを第２の目的とし、ピックアップ小節等の特異な小節が含まれている曲に対してもリズムパターンを生成することが可能な自動作曲装置および記憶媒体を提供することを第３の目的とする。
【００１０】
【課題を解決するための手段】
【００１１】
上記第１の目的を達成するため、請求項１に記載の自動作曲装置は、各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、曲全体に対する作曲条件を設定する設定手段と、該設定された作曲条件のうち、作曲すべき楽曲におけるリズムパターンの特徴を、当該楽曲を構成する下位の要素に対して振り分ける振り分け手段と、該振り分けられたリズムパターンの特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段とを有することを特徴とする。
ここで、下位の要素とは、たとえば、楽節、フレーズ、小節をいい、振り分けるとは、楽節、フレーズまたは小節に、曲全体に対する作曲条件を適宜分散して設定することを意味する。（請求項が変わっても同様）
同様の目的を達成するため、請求項２に記載の自動作曲装置は、各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段とを有し、前記リズムパターンの特徴には、少なくとも当該リズムパターンの打点数を示す情報が含まれており、作曲すべき楽曲における該打点数が変更されたときには、前記選択手段は、その変更後の打点数のリズムパターンであって、打点数以外の特徴データが元のリズムパターンに近似するリズムパターンを、前記リズムパターンデータベースから選択することを特徴とする。
同様の目的を達成するため、請求項６に記載の自動作曲装置は、所定の最短音符長に従った各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段と、作曲すべき楽曲の最短音符長が前記所定の最短音符長と等しい場合には、前記選択されたリズムパターンをそのまま利用する一方、作曲すべき楽曲の最短音符長が前記所定の最短音符長と一致しない場合には、前記選択されたリズムパターンの時間軸を変更して利用することにより、当該作曲すべき楽曲の最短音符長に対応したリズムパターンを生成するリズムパターン生成手段とを有することを特徴とする。
さらに、同様の目的を達成するため、請求項７に記載の自動作曲装置は、各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースであって、前記各リズムパターンには、複数の最短音符長に対応して互いに異なる複数の特徴データが付与されているものと、作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段であって、作曲すべき楽曲の最短音符長に対応した特徴データに基づいて前記リズムパターンデータベースを検索するものとを有することを特徴とする。
【００１３】
上記第３の目的を達成するため、請求項３に記載の自動作曲装置は、各種の小節単位のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースと、作曲すべき楽曲におけるリズムパターンの特徴を設定する設定手段と、該設定された特徴に適合する特徴データを前記リズムパターンデータベースから検索し、該検索された特徴データに対応するリズムパターンを選択する選択手段と、対象小節が、前記小節単位の単一のリズムパターンを割り当てることができない小節であるときに、当該小節を、該小節に属する区間と該小節の直後小節に属する区間とに分割する区間分割手段とを有し、前記選択手段は、該分割された２区間のそれぞれに異なったリズムパターンを選択することを特徴とする。
【００１６】
上記第３の目的を達成するため、請求項４に記載の記憶媒体は、各種の小節単位のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースから、設定手段を用いて設定された、作曲すべき楽曲におけるリズムパターンの特徴に適合する特徴データを検索し、該検索された特徴データに対応するリズムパターンを選択する選択ステップと、対象小節が、前記小節単位の単一のリズムパターンを割り当てることができない小節であるときに、当該小節を、該小節に属する区間と該小節の直後小節に属する区間とに分割する区間分割ステップとを有する自動作曲方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み取り可能な記憶媒体であって、前記選択ステップでは、該分割された２区間のそれぞれに異なったリズムパターンを選択することを特徴とする。
【００１７】
上記第１の目的を達成するため、請求項５に記載の記憶媒体は、曲全体に対する作曲条件を設定する設定手段を用いて設定された作曲条件のうち、作曲すべき楽曲におけるリズムパターンの特徴を、当該楽曲を構成する下位の要素に対して振り分ける振り分けステップと、各種のリズムパターンおよび該リズムパターンの特徴を示す特徴データによって構築されたリズムパターンデータベースから、前記振り分けられたリズムパターンの特徴に適合する特徴データを検索し、該検索された特徴データに対応するリズムパターンを選択する選択ステップとを有する自動作曲方法をコンピュータに実行させるプログラムを格納したことを特徴とする。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１９】
図１は、本発明の一実施の形態に係る自動作曲装置の概略構成を示すブロック図である。
【００２０】
同図に示すように、本実施の形態の自動作曲装置は、音高情報を入力するための鍵盤１と、各種情報を入力するための複数のスイッチ（ポインチングデバイスであるマウスを含む）を備えたパネルスイッチ２と、鍵盤１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムやテーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）２０をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Ｄｉｇｉｔａｌ−ｔｏ−Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００２１】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００２２】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００２３】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００２４】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、自動作曲装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００２５】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００２６】
図２および図３は、本実施の形態の自動作曲装置が実行する各種制御処理を視覚的に表した図である。以下、同図を参照して、この各種制御処理の概要を説明する。
【００２７】
図２において、まず、ユーザが、複数種類の全体作曲条件テンプレート（この全体作曲条件テンプレートは、たとえば前記ハードディスクに記憶されている）から１つを選択すると、当該テンプレートに記載されている全体作曲条件が設定（入力）される。全体作曲条件として設定される項目には、たとえば、楽節数、フレーズ数、小節数、拍子、調、曲の先頭ピッチ、曲の最後ピッチ、音域（最高音および最低音が与えられる）等があり、各テンプレートには、これらの項目に対応するデータが予め記載され、名称が付与されている。ユーザが、たとえば、前記マウスを用いて全体作曲条件を選択するモードを選択し、そのモード時に表示される「全体作曲条件」欄をクリックすると、前記テンプレート名が並んだポップアップメニューが表示される。この中から、ユーザがいずれかのテンプレート名を選択すると、その名称に対応するテンプレートに記載されている全体作曲条件が設定される。なお、作曲条件の各項目を個別に修正、または入力できるようにしてもよい。
【００２８】
このようにして設定された全体作曲条件のうち、楽節数、フレーズ数および小節数に基づいて、構成テンプレートデータベース３１が検索され、当該条件に最も適合する構成テンプレートが選択されるか、または当該条件に適合する複数の構成テンプレートをユーザに提示し、いずれかをユーザに選択させる。ここで、構成テンプレートデータベース３１は、たとえば、前記ハードディスク上に構築されたデータベースであり、複数の構成テンプレートから構成されている。そして、各構成テンプレートに記載される構成データには、たとえば、各楽節に設定される楽節記号（後述する図１６（ｂ）参照）、サビ（ｂｒｉｄｇｅ）楽節の位置および音節数等がある。なお、構成テンプレートデータベース３１から検索された構成テンプレートの構成データが、ユーザの意図するものと異なる場合には、ユーザは、他の候補から好みのものを選択することも、また、検索された構成テンプレートの構成データのうち、一部のデータを編集することもできるように構成されている。
【００２９】
このようにして生成された構成データ（ただし、音節数は除く）および前記全体作曲条件で設定された拍子に基づいて、メロディテンプレート・データベース３２が検索され、当該条件に最も適合したメロディテンプレートが選択される。メロディテンプレート・データベース３２は、たとえば、上記構成テンプレートデータベース３１と同様に、ハードディスク上に構築され、複数のメロディテンプレートから構成されている。各メロディテンプレートには、たとえば、メロディ骨格（本実施の形態では、全体骨格、楽節骨格およびフレーズ骨格からなり、全体骨格を最上位の階層として、以下、楽節骨格、フレーズ骨格の順で下位の階層になっている）、コード進行、メロディピッチおよびメロディ打点等の各データが記載されており、該各メロディテンプレートに記載のデータは、それぞれ、このままでも（すなわち、後述するように各種の変形を施さなくても）十分演奏可能なものとなっている。上述のようにして、メロディテンプレートが１つ検索されると、そのメロディテンプレートに記載された各データが設定（入力）される。なお、メロディテンプレートも、構成テンプレートと同様に、検索されたものがユーザの意図と異なるものであるときには、他の候補から好みのものを選択することができる。
【００３０】
このようにして、メロディテンプレートに記載された各データが入力されると、その中のピッチデータは、前記全体作曲条件で設定された調に応じて、移調や平行調への変換がなされ、その結果が、図３のメロディテンプレート変形処理部３３に供給される。また、ピッチデータ以外のデータは、そのままメロディテンプレート変形処理部３３に供給される。
【００３１】
メロディテンプレート変形処理部３３は、図３に示すように、リズムパターンデータ変形処理部３３ａと、コードデータ変形処理部３３ｂと、骨格データ変形処理部３３ｃと、メロディピッチデータ変形処理部３３ｄとによって構成されている。
【００３２】
リズムパターンデータ変形処理部３３ａは、検索されたメロディテンプレート中のリズムパターンがユーザの意図と異なる場合に、ユーザが設定した各種条件（その項目は、たとえば、アウフタクト（弱起）の有無、シンコペーションの有無（後述のように、設定レベルによって指定される）、ハネ（付点音符）の有無（シンコペーションと同様に、設定レベルによって指定される）、開始音長の長短、コンプレックス（難易度）のレベル等）に基づいて、リズムパターン特徴連結テーブル（上記各項目に対するデータ、すなわちリズムパターンの特徴を１小節毎に設定し、曲全体に亘って連結して構成したテーブル）を生成し、新たな打点データ（リズムパターンデータ）を生成する。打点とは、メロディの発音タイミングであり、１小節中の打点数は１小節中の音節数に相当する。このリズムパターン特徴連結テーブルの各小節毎の特徴連結データに基づいて、リズムパターンデータベース３４が検索されて、１小節分のリズムパターンが選択される。そして、各小節のリズムパターンを曲全体に亘ってつなぎ合わせることにより、曲全体のリズムパターンデータが生成される。
【００３３】
また、ユーザが設定した音節数と前記選択されたメロディテンプレートの打点数とが異なる場合（前述のように、メロディテンプレートの検索には、音節数の情報は参照されないので、このような場合が生ずる）、またはユーザが設定した音節数と前記生成された曲全体のリズムパターンデータの打点数とが異なる場合には、音節数合わせがなされる。この音節数合わせにおいては、置き換えられるメロディテンプレート中のリズムパターン、または生成されたリズムパターンの特徴と同じ特徴を持ち、音節数の異なる他のリズムパターンを、リズムパターンデータベース３４を検索することにより選択し、音節数の増減を伴ったリズムパターンの置き換えを行う。
【００３４】
なお、ユーザが、マニュアル操作によって打点の時間軸移動や打点の増減を行う編集機能も設けられ、これにより、打点の時間軸が移動したり、その数が変わったときには、リズムパターンデータ変形処理部３３ａは、対応するリズムパターンデータを変形する。
【００３５】
コードデータ変形処理部３３ｂは、前記選択されたメロディテンプレートのコード進行がユーザの意図と異なる場合に、ユーザの編集指示に応じて、コードデータの変形を行う。
【００３６】
骨格データ変形処理部３３ｃは、前記選択されたメロディテンプレートの各階層の骨格データを、それぞれ個別に変形する処理と、すべての階層の骨格データに対して一括の編集処理とを行う。
【００３７】
メロディピッチデータ変形処理部３３ｄは、前記選択されたメロディテンプレートのメロディピッチデータを、ユーザが設定したダイナミクス、非コード音頻度および音楽ルールに基づいて、音楽ルールデータベース３５を参照しながら変形する。さらに、ユーザが、マニュアル操作によって打点の音階軸移動を指示したときには、それに応じたメロディピッチデータの変形も行う。この変形は、本実施の形態では、通常小節とピックアップ小節とで個別に行われるため、音楽ルールデータベース３５は、通常小節用とピックアップ小節用の２種類のデータベースによって構築されている。
【００３８】
このようにして、リズムパターンデータ変形処理部３３ａでは、リズムパターンデータの変形処理が、骨格データ変形処理部３３ｃでは、全体骨格データ、楽節骨格データおよびフレーズ骨格データの各骨格データの変形処理が、メロディピッチデータ変形処理部３３ｄでは、通常小節のメロディピッチデータおよびピックアップ小節のメロディピッチデータの変形処理が、それぞれ独立してなされる。これらの各変形処理に併せて、その処理結果（作曲の途中経過）が、前記表示装置９に表示される。
【００３９】
また、本実施の形態の自動作曲装置は、メロディピッチデータ変形処理部３３ｄによって変形され生成されたメロディピッチデータ（楽音データ）を再生し演奏する機能に加えて、骨格データ変形処理部３３ｃによって変形され生成された３階層の骨格データの楽音データを各階層毎に再生し演奏する機能を備えている。このため、ユーザがある階層の骨格演奏を指定すると、骨格データ変形処理部３３ｃで変形された骨格データからその骨格に対応するピッチデータ（楽音データ）が読み出されて再生され、前記サウンドシステム１７によって音響に変換される。一方、ユーザによってメロディ演奏が指示されると、上記変形されたメロディピッチデータからメロディに対応するピッチデータ（楽音データ）が読み出されて再生され、サウンドシステム１７によって音響に変換される。
【００４０】
本発明は、メロディテンプレート変形処理部３３が実行する上記３種類の主要な処理、すなわちリズムパターンデータ変形処理、骨格データ変形処理およびメロディピッチデータ変形処理のうち、リズムパターンデータ変形処理にその特徴を有している。そして、リズムパターン変形処理には、本実施の形態では主として、リズムパターンデータ変形処理１および２の２種類の処理がある。
【００４１】
以下、まず、図４および図５を参照してリズムパターンデータ変形処理１およびリズムパターンデータ変形処理２の概要を説明し、次に、図６〜図１４を参照してリズムパターンデータ変形処理１の詳細を説明するとともに、図１５〜図２５を参照してリズムパターンデータ変形処理２の詳細を説明する。
【００４２】
１）リズムパターンデータ変形処理１（図４）：作曲条件を変更せず、メロディテンプレートのリズムパターンを若干変形する処理であり、次の処理ａ）、ｂ）、ｃ）から構成される
ａ）既存のリズムパターン（メロディテンプレートのリズムパターン）からその特徴を検出する処理（ステップＳ１）
ｂ）検出された特徴と同じ特徴を有したリズムパターンをリズムパターンデータベース３４から検索する処理
ｃ）音節数合わせの処理
なお、図４においては、上記処理ｂ）と処理ｃ）とを併せて「リズムパターン生成処理（ステップＳ２）」としている。
【００４３】
２）リズムパターンデータ変形処理２（図５）：作曲条件を新たに設定し、メロディテンプレート中のリズムパターンを大幅に変形する処理であり、次の処理ｄ）、ｅ）、ｂ′）、ｃ）から構成される
ｄ）リズムパターン特徴連結テーブルを生成する処理（ステップＳ１１）
ｅ）小節占有区間（リズムパターン生成区間）を決定する処理（ステップＳ１２）
ｂ′）設定された作曲条件に合致した特徴を有したリズムパターンをリズムパターンデータベース３４から検索する処理
ｃ）音節数合わせの処理
なお、図５においては、上記処理ｂ′）と処理ｃ）とを併せて「リズムパターン生成処理（ステップＳ１３）」としている。
【００４４】
ここで、処理ａ）は、たとえば生成されるメロディのリズムのバリエーションを増加させる目的、またはメロディテンプレートデータベース３２を充実させる目的でなされている。すなわち、後述するように本実施の形態では、打点の増減をする際に、メロディテンプレート中のリズムパターンと同じ特徴を有し、かつ打点数が異なる他のリズムパターンでリズムパターンを置き換えるようにしている。また、打点数は同じであっても異なるリズムパターンに置き換えたい場合に、メロディテンプレート中のリズムパターンと同じ特徴を有し、かつ打点数が同じである他のリズムパターンでリズムパターンを置き換えるようにしている。または、メロディテンプレート中のリズムパターンとは異なる特徴を有するリズムパターンに置き換えたいような場合もある。このような場合に、メロディテンプレート中のリズムパターン（既存のリズムパターン）の特徴を検出することで、同じ特徴を有する他のリズムパターンに置き換えたり、または異なる特徴を有する他のリズムパターンに置き換えたりすることが容易にできるようになり、その結果、生成されるメロディのバリエーションを増加させることが可能となる。また、メロディテンプレートデータベース３２にメロディテンプレート（リズムパターン）を登録するときに、人の手を掛けて該メロディテンプレート中のリズムパターンの特徴を検出する必要がないため、リズムパターンの特徴を分析するための音楽的知識のない人でもメロディデータをデータベースに登録でき、容易にメロディテンプレートデータベース３２を充実させることができる。
【００４５】
処理ｂ）は、処理ａ）で検出されたリズムパターンと同じ特徴を有したリズムパターンを、リズムパターンデータベース３４から検索することにより、元のリズムパターンと同じ特徴を有した、他のリズムパターンに変形する。
【００４６】
処理ｃ）、処理ｄ）については、前記図３においてその概要を説明したので、ここでの説明を省略する。
【００４７】
また、処理ｅ）は、１小節すべてに単一のリズムパターンを割り当てることができない場合（たとえば、ピックアップ小節である場合）に対処するために、小節占有区間、すなわち対象小節中、他の小節（直前の小節）に属さない区間を決定している。たとえば、対象小節がピックアップ小節の場合には、対象小節の一部（前半部）は直前フレーズの最後小節（対象小節の直前小節）に属するため、対象小節はその全区間を占有できない。したがって、この場合には、対象小節を、直前フレーズの最後小節の占有区間と、直後フレーズのピックアップ小節の占有区間とに分割する（後述する図２５参照）。また、対象小節がフレーズ最後小節であって、次フレーズの先頭がピックアップ小節で始まる場合にも、同様に、対象小節を、直前フレーズの最後小節の占有区間と、直後フレーズのピックアップ小節の占有区間とに分割する。さらに、対象小節が通常小節の場合には、対象小節はその全区間を占有できるため、分割は行わない。
【００４８】
処理ｂ′）は、前述の処理ｂ）とほぼ同じであるが、既存リズムパターンから検索した特徴と同じ特徴を有するリズムパターンをリズムパターンデータベース３４から検索するのではなく、ユーザが設定した曲条件に合致した特徴を有するリズムパターンを検索する点が異なる。
【００４９】
図６は、リズムパターンデータベース３４を構成するリズムパターンデータの一例を示す図である。
【００５０】
リズムパターンデータベース３４は、たとえば図２に示す拍子、すなわち２／４拍子、３／４拍子、４／４拍子、６／８拍子、３連３／４拍子、３連４／４拍子の各拍子毎に独立して６種類のリズムパターンデータによって構築されている。たとえば、４／４拍子のリズムパターン（最短音符を８分音符とした場合）は、次の個数存在する。すなわち、
１）０音節のリズムパターン数＝８Ｃ０＝  １
２）１音節のリズムパターン数＝８Ｃ１＝  ８
３）２音節のリズムパターン数＝８Ｃ２＝２８
４）３音節のリズムパターン数＝８Ｃ３＝５６
５）４音節のリズムパターン数＝８Ｃ４＝７０
６）５音節のリズムパターン数＝８Ｃ５＝５６
７）６音節のリズムパターン数＝８Ｃ６＝２８
８）７音節のリズムパターン数＝８Ｃ７＝  ８
９）８音節のリズムパターン数＝８Ｃ８＝  １
の合計２５６個存在する。
【００５１】
図６は、この４／４拍子のリズムパターンのうち、上記５）の４音節のリズムパターンを図示したものである。同図に示すように、各リズムパターンには、それぞれ上記作曲条件により適合性が判断される各種のリズムパターン特徴、すなわち「開始音長」、「シンコペーション」、「付点音符（ハネ）」、「終止感」および「コンプレックス」の各値が割り当てられている。したがって、前述のように、リズムパターン特徴連結テーブルが生成されて、１小節毎の作曲条件が設定されると、この作曲条件と、リズムパターンデータベース３４に記憶されている上記リズムパターン特徴とを比較することにより、この設定された作曲条件に適合するリズムパターンの候補が直ちに検索される。
【００５２】
なお、本実施の形態では、最短音符を１６分音符とした場合のリズムパターンをも生成することができるように構成されている。すなわち、上記最短音符が８分音符の場合のリズムパターンデータの時間軸を半分に圧縮するとともに、１小節を前半部と後半部とに分割し、この前半部および後半部に、各圧縮したリズムパターンを適用することにより、最短音符を１６分音符とした場合のリズムパターンを生成するようにしている。このため、図６に示すように、各リズムパターンにそれぞれ１６分音符表記が対応付けられている。そして、最短音符が８分音符のときと１６分音符のときとで、作曲条件の項目中、異なる値が対応付けられる場合がある（たとえば、リズムパターンの番号が“２”のとき、コンプレックスのレベルは、最短音符が８分音符の場合には“１”であるのに対して、最短音符が１６分音符の場合には“３”である）ので、図６中、このような項目の欄には、“８”と“１６”が記載され、それぞれ、最短音符が８分音符と１６分音符の場合を示している。
【００５３】
このように、各拍子および各音節数に対応してそれぞれリズムパターン群を生成し、各拍子および各音節数に対応してそれぞれ異なるバンクを設け、該各バンクにそれぞれ上記各リズムパターン群を対応付けることにより、リズムパターンデータベース３４を構築する。したがって、前述のように、拍子と音節数が決まると、対応するバンクが決まり、このバンク内のリズムパターン群から、設定された作曲条件に適合するリズムパターンの候補が選択される。このように本実施の形態では、リズムパターン群とバンクとを対応付けるようにしたので、選択すべきリズムパターンを絞り込み易くなり、リズムパターン検索のアルゴリズムを簡略化することができる。
【００５４】
次に、前記ステップＳ１のリズムパターン特徴検出処理を、まずその概要を説明した後に、図７のフローチャートに基づいて詳細に説明する。
【００５５】
前述のように、リズムパターンデータベース３４には、リズムパターンそのものと、そのリズムパターンを特徴付ける特徴データとが対になって記憶されている。本リズムパターン特徴検出処理は、特徴検出すべきリズムパターン、すなわち既存のリズムパターン（たとえばメロディテンプレートにおけるリズム＝打点パターン）とリズムパターンデータベース３４に記憶されており、打点数が同じ群のリズムパターンそのものとを１つずつ順に比較して行き、両リズムパターンが一致したときに、当該リズムパターンに対応付けられている特徴データをリズムパターンデータベース３４から読み出して、特徴検出すべきリズムパターンの特徴データとしている。このように、単純に比較するのみで、目的のリズムパターンの特徴を検出するようにしたので、リズムパターンの特徴を簡単に検出することができる。
【００５６】
図７は、このリズムパターン特徴検出処理の詳細な手順を示すフローチャートである。
【００５７】
同図において、まず、リズムパターン番号をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタであるリズムパターン番号カウンタを“１”に初期設定する（ステップＳ２１）。
【００５８】
次に、リズムパターン番号カウンタによって示されるリズムパターンデータベース３４中の特徴を検出すべきリズムパターンの打点数と同じ打点数の群のリズムパターンと、特徴検出すべきリズムパターンとが一致しているか否かを判別し（ステップＳ２２）、一致していないときには、リズムパターン番号カウンタを“１”だけインクリメントして、同群中の次のリズムパターンが示されるようにした（ステップＳ２３）後に、ステップＳ２２に戻る一方、一致しているときには、一致したリズムパターンに付属するリズムパターン特徴データを、リズムパターンデータベース３４から読み出して、特徴検出すべきリズムパターンに対応する特徴データメモリ（たとえば、前記ＲＡＭ上の所定領域を使用する）に記憶した（ステップＳ２４）後に、本リズムパターン特徴検出処理を終了する。
【００５９】
なお、特徴検出すべきリズムパターンの最短音符が８分音符のときには、リズムパターンデータベース中の各リズムパターンに対応する特徴データの内、最短音符が８分音符の場合の特徴データを読み出すようにし、同様に特徴検出すべきリズムパターンの最短音符が１６分音符のときは、最短音符が１６分音符の場合の特徴データを読み出すようにする。
【００６０】
このようにして、リズムパターンデータベース３４中のリズムパターンとの一致を検出するだけで、リズムパターンの特徴データを検出するようにしたので、複雑な特徴検出アルゴリズムを用いて特徴検出を行う必要がなくなり、プログラム開発時間が短縮化されるとともにプログラム容量が低減化され、これによりコストが低減化される。
【００６１】
次に、前記ステップＳ２のリズムパターン生成処理に含まれる音節数合わせ処理を、まずその概要を説明した後に、図８および図１０のフローチャートに基づいて詳細に説明する。
【００６２】
音節数合わせは、本実施の形態では、次の場合に行われる。すなわち、
１）ユーザが設定した音節数とユーザが選択したメロディテンプレートの音節数とが異なる場合
２）作曲途中で、ユーザが音節数を増減させた場合
そして、音節数合わせは、次のようにして行う。すなわち、
１）旧打点数が“０”の小節に新打点が設定された場合
ａ）優先順位１：当楽節が同名・同類楽節であって、その参照楽節の同番フレーズの同番小節の音節数が新音節数に等しい場合は、その小節のリズムパターンと同一とする
ｂ）優先順位２：設定された条件に従って、新リズムパターンを生成する
２）打点数が増加する場合
ａ）優先順位１：当楽節が同名・同類楽節であって、その参照楽節の同番フレーズの同番小節の音節数が新音節数に等しい場合は、その小節のリズムパターンと同一とする
ｂ）優先順位２：設定された条件に従って、旧リズムパターンを内包する（その意味については、図９を用いて後述する）新リズムパターンを生成する
３）打点数が減少する場合であって、少なくとも１個以上の打点が残る場合
ａ）優先順位１：当楽節が同名・同類楽節であって、その参照楽節の同番フレーズの同番小節の音節数が新音節数に等しい場合は、その小節のリズムパターンと同一とする
ｂ）優先順位２：設定された条件に従って、旧リズムパターンを外包する（その意味については、図１１を用いて後述する）新リズムパターンを生成する
４）打点数が“０”になる場合
すべての打点を消去する
図８は、打点増加処理の詳細な手順を示すフローチャートであり、上記音節数合わせの方法２）ｂ）を実現したものである。
【００６３】
同図において、まず、旧リズムパターンの打点を内包し、音節数が新音節数に等しいリズムパターンをテーブルから抽出し、これらを１次候補とする（ステップＳ３１）。
【００６４】
次に、１次候補のリズムパターンから当小節のリズムパターン生成条件に適合する（旧リズムパターンの特徴データと同じ特徴データを有する）リズムパターンを抽出し、これらを２次候補とする（ステップＳ３２）。なお、設定されたリズムパターン生成条件に適合するリズムパターンが存在しない場合には、その条件を適宜緩和して行くようにする。
【００６５】
さらに、２次候補のリズムパターンからランダムにリズムパターンを一つ選択し、これを当小節の新リズムパターンに決定した（ステップＳ３３）後に、本打点増加処理を終了する。
【００６６】
図９は、打点数が増加する場合に、ある小節の新リズムパターンに決定されたリズムパターンの一例を示す図である。同図には、ユーザによって設定された特徴データまたは前記リズムパターン特徴検出処理によって検出された特徴データの各種データ値に応じて決定された各種新リズムパターンが図示されており、各新リズムパターンは、それぞれ旧リズムパターンを内包している。ここで、旧リズムパターンを内包するとは、旧リズムパターンに含まれる打点を常に保存しつつ新リズムパターンを生成するという意味であり、図中鎖線で示すように、旧リズムパターンの打点に対応する位置には、新リズムパターンにおいても打点が生成されている。
【００６７】
図１０は、打点減少処理の詳細な手順を示すフローチャートであり、上記音節数合わせの方法３）ｂ）を実現したものである。
【００６８】
同図において、まず、旧リズムパターンの打点を外包し、音節数が新音節数に等しいリズムパターンをテーブルから抽出し、これらを１次候補とする（ステップＳ４１）。
【００６９】
次に、１次候補のリズムパターンから当小節のリズムパターン生成条件に適合する（旧リズムパターンの特徴と同じ特徴データを有する）リズムパターンを抽出し、これらを２次候補とする（ステップＳ４２）。なお、設定されたリズムパターン生成条件に適合するリズムパターンが存在しない場合には、その条件を適宜緩和して行くようにする。
【００７０】
さらに、２次候補のリズムパターンからランダムにリズムパターンを一つ選択し、これを当小節の新リズムパターンに決定した（ステップＳ４３）後に、本打点減少処理を終了する。
【００７１】
図１１は、打点数が減少する場合に、ある小節の新リズムパターンに決定されたリズムパターンの一例を示す図である。同図には、ユーザによって設定された特徴データまたは前記リズムパターン特徴検出処理によって検出された特徴データの各種データ値に応じて決定された各種新リズムパターンが図示されており、各新リズムパターンは、それぞれ旧リズムパターンを外包している。ここで、旧リズムパターンを外包するとは、旧リズムパターンに含まれる打点を減少させることによってのみ、新リズムパターンを生成するという意味であり、同図に示すように、新リズムパターンでは新たな打点が生成されていない。
【００７２】
図１２は、曲全体に亘るリズムパターン生成処理（前記ステップＳ２）の詳細な手順を示すフローチャートである。
【００７３】
同図において、まず、楽節数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである楽節カウンタを“１”に初期設定する（ステップＳ５１）。
【００７４】
次に、フレーズ数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタであるフレーズカウンタを“１”に初期設定する（ステップＳ５２）。
【００７５】
さらに、小節数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである小節カウンタを“１”に初期設定する（ステップＳ５３）。
【００７６】
次に、当楽節が同名・同類楽節であるか否かを判別し（ステップＳ５４）、当楽節が同名・同類楽節のときには、当小節と参照小節の音節数が等しい場合には、当小節のリズムパターンを参照小節のリズムパターンと同一とし、当小節と参照小節の音節数が異なる場合には、参照小節のリズムパターンを当小節の音節数に合わせた（すなわち打点数を増減させた）ものを当小節のリズムパターンとした（ステップＳ５５）後に、ステップＳ５７に進む一方、当楽節が同名・同類楽節でないときには、図１３を用いて後述する新規楽節のリズムパターン生成処理サブルーチンを実行した（ステップＳ５６）後に、ステップＳ５７に進む。上記ステップＳ５５の音節数合わせは、前述した音節数合わせ処理によって行う。
【００７７】
ステップＳ５７では、全小節に対して、上記ステップＳ５４〜Ｓ５６の処理を終了したか否かを判別し、処理すべき小節が残っているときには、小節カウンタを“１”だけインクリメントした（ステップＳ５８）後に、ステップＳ５４に戻る一方、すべての小節に対して処理を終了したときにはステップＳ５９に進む。
【００７８】
ステップＳ５９では、全フレーズに対して、上記ステップＳ５３〜Ｓ５８の処理を終了したか否かを判別し、処理すべきフレーズが残っているときには、フレーズカウンタを“１”だけインクリメントした（ステップＳ６０）後に、ステップＳ５３に戻る一方、すべてのフレーズに対して処理を終了したときにはステップＳ６１に進む。
【００７９】
ステップＳ６１では、全楽節に対して、上記ステップＳ５２〜Ｓ６０の処理を終了したか否かを判別し、処理すべき楽節が残っているときには、楽節カウンタを“１”だけインクリメントした（ステップＳ６２）後に、ステップＳ５２に戻る一方、すべての楽節に対して処理を終了したときには、本リズムパターン生成処理を終了する。
【００８０】
図１３は、上記ステップＳ５６の新規楽節のリズムパターン生成処理サブルーチンの詳細な手順を示すフローチャートである。このリズムパターン生成処理は、最短音長が８分音符で構成されるリズムパターンを、前記小節占有区間に割り当てる処理を示している。
【００８１】
同図において、まず、設定されている拍子および音節数に従ってリズムパターンデータベース３４の前記バンクを選択する（ステップＳ７１）。すなわち、前述したように本実施の形態では、リズムパターンデータベース３４は、拍子および音節数毎に１つのバンク（当該拍子および音節数のリズムパターン群が記憶されているバンク）が対応付けられており、まず、バンクを決定して、大まかなリズムパターン群を選択し、次に、そのリズムパターン群の中から、他の作曲条件に適合するリズムパターンの候補を選択するようにしている。
【００８２】
次に、作曲条件を満たし、かつ打点の存在位置が、前述のように決定された占有区間内のみであるリズムパターンを第１次候補としてリストアップし（ステップＳ７２）、リストアップされたリズムパターンの候補が存在するか否かを判別する（ステップＳ７３）。なお、分割された小節については、その前半と後半と別々にリズムパターンを生成する。
【００８３】
ステップＳ７３で、第１次候補のリズムパターンが存在しないときには、設定された作曲条件を順次無効とすることによって条件を緩和した（ステップＳ７４）後に、ステップＳ７２に戻って、再度第１次候補をリストアップする一方、第１次候補のリズムパターンが存在するときには、第１次候補のリズムパターンのうちから、ランダムに一つリズムパターンを決定した（ステップＳ７５）後に、本新規楽節のリズムパターン生成処理を終了する。
【００８４】
図１４は、他の新規楽節のリズムパターン生成処理サブルーチンの詳細な手順を示すフローチャートである。本新規楽節のリズムパターン生成処理は、上記図１３の新規楽節のリズムパターン生成処理に対して、最短音長が１６分音符で構成されるリズムパターンを割り当てる点が異なっている。
【００８５】
図１４において、まず、１小節内の音節数を設定された開始音長（長・中・短）に従って、小節前半と小節後半に分割する（ステップＳ８１）。たとえば、開始音長が「長」の場合には、前半の音符数を少なくして、後半の音符数を多く（比率＝３：７）し、開始音長が「中」の場合、前後半の音符数をほぼ同数（比率＝５：５）にする。
【００８６】
次に、小節前半の音節数、作曲条件および占有区間に従って、８分音符基準のリズムパターンデータベース３４からリズムパターンを一つ選択し（ステップＳ８２）、そのリズムパターンの時間軸を半分に圧縮する（ステップＳ８３）。なお、上記ステップＳ８２では、前記図６で説明したように、リズムパターンデータベース３４中、１６分音符に対応する（１６欄の）作曲条件を参照することは、いうまでもない。
【００８７】
同様にして、小節後半の音節数、作曲条件および占有区間に従って、８分音符基準のリズムパターンデータベース３４からリズムパターンを一つ選択し（ステップＳ８４）、そのリズムパターンの時間軸を半分に圧縮する（ステップＳ８５）。
【００８８】
そして、ステップＳ８３で生成した小節前半のリズムパターンと、ステップＳ８５で生成した小節後半のリズムパターンとを連結して、１小節分のリズムパターンを生成し（ステップＳ８６）、本新規楽節のリズムパターン生成処理を終了する。なお、最短音長が１６分音符の場合も、分割された小節についてはその前半と後半とで別々にリズムパターンを生成する。
【００８９】
このように、リズムパターン生成区間を決定した後に、該決定した生成区間に対してリズムパターンを割り当てるようにしたので、たとえば対象小節がピックアップ小節である場合等の１小節すべてに亘って１つのリズムパターンを割り当てることができない場合であっても、当該小節に適合するリズムパターンを的確に割り当てることができ、したがって、リズムパターンを生成できる曲の幅を拡大することができる。
【００９０】
図１５は、前記図５のリズムパターンデータ変形処理２の概要を視覚的に表した図である。
【００９１】
同図において、全体作曲条件のうち、リズムパターンデータを変形するための条件（その項目は、本実施の形態では、前記アウフタクトの有無、シンコペーションの有無、ハネの有無、開始音長の長短、コンプレックスのレベル）をユーザが設定すると、この設定条件に基づいて１小節毎のリズムパターン特徴連結テーブルが生成される。ここで、各種条件は、本実施の形態では、次のようにして設定する。すなわち、
１）開始音長は、「長」、「短」、「中」のいずれかを設定する
２）シンコペーションおよびハネは、ともに設定レベル（０〜３のいずれかの整数値）を設定する
３）終止感およびアウフタクトは、ともにＯＮ／ＯＦＦのいずれかを設定する
４）コンプレックスは、その設定レベル（０〜３のいずれかの整数値）を設定する
このようにして設定された全体作曲条件に基づいて、前記リズムパターンデータ変形処理部３３ａは、前記リズムパターン特徴連結テーブルを生成する。
【００９２】
図１６は、設定レベルと作曲条件適用可能な楽節、フレーズおよび小節との関係、および、生成されたリズムパターン特徴連結テーブルの一例を示す図であり、（ａ）が、設定レベルと作曲条件適用可能な楽節、フレーズおよび小節との関係を示し、（ｂ）が、生成されたリズムパターン特徴連結テーブルの一例を示している。
【００９３】
上述のように、設定レベルを設定できるシンコペーション、ハネおよびコンプレックスのうち、図１６（ａ）の関係は、シンコペーションおよびハネの２つに適用される。作曲条件として、たとえばハネを例に挙げると、その設定レベルとハネを適用可能な楽節、フレーズおよび小節との関係は、次の通りである。すなわち、
１）設定レベル＝０：全楽節、全フレーズおよび全小節に対してハネを適用しない
２）設定レベル＝１
ａ）楽節：新規楽節に対しては、ランダムにハネの適用（ＯＮ）／不適用（ＯＦＦ）を決定し、同名・同類楽節に対しては、参照楽節（対象楽節より前の同名または同類の楽節）と同一に決定する（ただし、ハネ適用楽節の数は全楽節の５０％以上とする）
ｂ）フレーズ：新規楽節内のフレーズに対しては、ランダムにハネの適用／不適用を決定し、同名・同類楽節内のフレーズに対しては、参照楽節の対応するフレーズと同一に決定する（ただし、ハネ適用フレーズの数は当該楽節内の全フレーズ数の５０％以上とする）
ｃ）小節：新規楽節内の小節に対しては、ランダムにハネの適用／不適用を決定し、同名・同類楽節内の小節に対しては、参照楽節の対応する小節と同一に決定する（ただし、ハネ適用小節の数は当該フレーズ内のハネ適用可能小節数の５０％以上とする。なお、ハネ適用不可能小節とは、音節数が“０”または“１”の小節をいう）
３）設定レベル＝２：全楽節、全フレーズに対してハネを適用するとともに、小節に対してはランダムにハネの適用／不適用を決定する
４）設定レベル＝３：全楽節、全フレーズおよび全小節に対してハネを適用する
シンコペーションについては、上記関係中、「ハネ」を「シンコペーション」で読み替えることにより、その設定レベルとシンコペーション適用可能な楽節、フレーズおよび小節との関係を得ることができる。なお、ハネとシンコペーションとで、前記関係を異ならせるようにしてもよい。
【００９４】
他の条件、すなわち開始音長、終止感、コンプレックスおよびアウフタクトの各設定値とそのリズムパターン特徴連結テーブルへの反映（振り分け）との関係は、次である。すなわち、
１）開始音長は、設定された開始音長の頻度が最も多くなるように、各小節にランダムに割り当てる（ただし、同名・同類楽節の各小節については、参照楽節の対応する小節と同一にする）
２）終止感は、“ＯＮ”が設定されているときには、各フレーズの最後小節のみを“ＯＮ”にする
３）コンプレックスは、その設定されたレベルを全小節にそれぞれ設定する。
【００９５】
上述の規則に従って、ユーザが設定した全体作曲条件が各小節に割り当て（振り分け）られ、たとえば図１６（ｂ）に示すようなリズムパターン特徴連結テーブルが生成される。同図中、第１楽節から第４楽節には、それぞれ、“Ａ”，“Ａ′”，“Ｂ”，“Ｃ”が設定されている。この記号は、楽節記号と呼ばれ、各楽節間の同一・同類の関係を示している。たとえば、第２楽節には、“Ａ′”が設定されているので、第２楽節は第１楽節の同類楽節である。本実施の形態では、同類の程度には、上記′同類と″同類の２種類あり、″同類は、′同類に比較して類似の程度が低く定義されている。同一楽節とは、たとえば第１楽節に設定された“Ａ”が、これ以降の他の楽節（図１６（ｂ）には図示されていない）に設定されているときの当該楽節をいう。
【００９６】
図１５に戻り、リズムパターン特徴連結テーブルが生成されると、そのテーブル内容が１小節毎に読み出され、すなわち、１小節分の「開始音長」、「シンコペーション」、「ハネ」、「コンプレックス」、「アウフタクト」および「終止感」が読み出され、他の条件（たとえば、前記拍子や音節数等）とともに、リズムパターンデータベース３４が検索されて、当該小節に対して、上記条件に適合するリズムパターンデータの候補が複数個選択される。
【００９７】
指定された作曲条件に適合するリズムパターンの候補がリズムパターンデータベース３４中に見つからない場合には、リズムパターンが見つかるまで、条件の項目を順次無効（作曲条件を緩和）にして行く。
【００９８】
このようにして、１小節ずつリズムパターンの候補が選択され、複数のリズムパターンが候補となった場合には、その中から乱数に基づいてランダムにリズムパターンを一つ選択する。そして、各小節に対して選択されたリズムパターンを、曲全体に亘ってつなげていくことにより、１曲分のリズムパターンを生成する。
【００９９】
ただし、以上の説明は、曲が通常小節のみで形成されている場合の曲全体に亘るリズムパターンの生成方法であり、ピックアップ小節を含む曲に対しては、そのピックアップ小節について、別の方法によりリズムパターンを選択する。すなわち、まず、ピックアップ小節の範囲（前記小節占有区間）を決定し、その先頭拍位置および最後拍位置を算出し、次に、前記作曲条件中、開始音長および終止感を無効にし、これらの条件に従ってリズムパターンデータベース３４を検索し、リズムパターンを選択する。
【０１００】
次に、リズムパターンデータ変形処理２を詳細に説明する。
【０１０１】
図１７は、前記ステップＳ１１のリズムパターン特徴連結テーブル生成処理の手順を示すフローチャートである。同図のリズムパターン特徴連結テーブル生成処理は、前記リズムパターン特徴連結テーブルのうちハネ項目を生成する処理を例に挙げたものである。他の項目、たとえば、シンコペーションについては、図１７の処理中、「ハネ」を「シンコペーション」に読み替えるだけで簡単に生成でき、シンコペーション以外の項目については、フローチャートに示すまでもなく、前述した規則に従って簡単に生成できるので、その説明を省略する。
【０１０２】
図１７において、まず、ハネ可能小節をリストアップするハネ可能小節リストアップ処理（後述）を実行し（ステップＳ９１）、ハネ可能フレーズをリストアップするハネ可能フレーズリストアップ処理（後述）を実行し（ステップＳ９２）、ハネ可能楽節をリストアップするハネ可能楽節リストアップ処理サブルーチン（後述）を実行する（ステップＳ９３）。
【０１０３】
次に、ハネ楽節を選択するハネ楽節選択処理サブルーチン（図１８を用いて後述）を実行し（ステップＳ９４）、ハネフレーズを選択するハネフレーズ選択処理サブルーチン（図１９および図２０を用いて後述）を実行し（ステップＳ９５）、ハネ小節を選択するハネ小節選択処理サブルーチン（図２１および図２２を用いて後述）を実行した（ステップＳ９６）後に、本リズムパターン特徴連結テーブル生成処理を終了する。
【０１０４】
前記ステップＳ９１のハネ可能小節リストアップ処理では、次のようにして、ハネ可能小節をリストアップする。すなわち、先頭小節から最後の小節までの各小節について音節数が“２”以上であるか否かを判断し、音節数≧２のときには、各小節毎に設けられ、ハネ可能小節であることを“１”で示すハネ可能小節フラグをセット（“１”）し、音節数＜２、すなわち音節数＝０または１のときには、ハネ可能小節フラグをリセット（“０”）する。
【０１０５】
前記ステップＳ９２のハネ可能フレーズリストアップ処理では、次のようにしてハネ可能フレーズをリストアップする。すなわち、先頭フレーズから最後のフレーズまでの各フレーズについて、当該フレーズに属する全小節に対応する前記ハネ可能小節フラグをチェックして、当該フレーズ内にハネ小節があるか否かを判別し、ハネ小節があるときには、各フレーズ毎に設けられ、ハネ可能フレーズであることを“１”で示すハネ可能フレーズフラグをセット（“１”）し、ハネ可能小節がないときには、ハネ可能フレーズフラグをリセット（“０”）する。
【０１０６】
前記ステップＳ９３のハネ可能楽節リストアップ処理では、次のようにしてハネ可能楽節をリストアップする。すなわち、先頭楽節から最後の楽節までの各楽節について、当該楽節に属する全小節に対応する前記ハネ可能小節フラグをチェックして、当該楽節内にハネ可能小節があるか否かを判別し、ハネ可能小節があるときには各楽節毎に設けられ、ハネ可能楽節であること“１”で示すハネ可能楽節フラグをセット（“１”）し、ハネ可能小節がないときには、ハネ可能楽節フラグをリセット（“０”）する。
【０１０７】
図１８は、前記ステップＳ９４のハネ楽節選択処理サブルーチンの詳細な手順を示すフローチャートである。
【０１０８】
同図において、まず、楽節数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである楽節カウンタを“１”に初期設定する（ステップＳ１０１）。
【０１０９】
次に、当楽節のハネ可能楽節フラグが“１”であるか否かを判別し（ステップＳ１０２）、ハネ可能楽節フラグ＝０のとき、すなわち当楽節がハネ可能楽節でないときには、当楽節のハネを“ＯＦＦ”に設定した（ステップＳ１０３）後に、ステップＳ１１１に進む一方、ハネ可能楽節フラグ＝１のときにはステップＳ１０４に進む。
【０１１０】
ステップＳ１０４では、当楽節が同名楽節または同類楽節であるか否かを判別し、同名・同類楽節のときには、当楽節のハネの“ＯＮ／ＯＦＦ”をその参照楽節と同一に設定した（ステップＳ１０５）後に、前記ステップＳ１１１に進む一方、同名・同類楽節でないときにはステップＳ１０６に進む。
【０１１１】
ステップＳ１０６〜Ｓ１１０では、ハネ設定レベルおよび前記図１６（ａ）の規則に応じてハネ楽節を決定する。すなわち、ハネ設定レベル＝０のときには、当楽節のハネを“ＯＦＦ”に設定し（ステップＳ１０６→Ｓ１０８→Ｓ１１０）、ハネ設定レベル＝１のときには、当楽節のハネの“ＯＮ／ＯＦＦ”をランダムに決定し（ステップＳ１０６→Ｓ１０７）、ハネ設定レベル＝２，３のときには、当楽節のハネを“ＯＮ”に設定する（ステップＳ１０６→Ｓ１０８→Ｓ１０９）。
【０１１２】
続くステップＳ１１１では、全楽節に対して、ステップＳ１０２〜Ｓ１１０の処理を終了したか否かを判別し、終了したときにはステップＳ１１３に進む一方、終了しないときには、楽節カウンタを“１”だけインクリメントした（ステップＳ１１２）後に、前記ステップＳ１０２に戻って上述の処理を繰り返す。
【０１１３】
ステップＳ１１３では、ハネ設定レベルが“１”であるか否かを判別し、ハネ設定レベル＝１のときには、ハネ楽節の頻度はハネ可能楽節の５０％以上となっているか否かを判別し、５０％以上となっているときには本ハネ楽節選択処理を終了する一方、５０％未満のときには、前記ステップＳ１０１に戻って、５０％以上になるまで上述の処理を繰り返す。
【０１１４】
一方、ステップＳ１１３で、ハネ設定レベル≠１のときには、本ハネ楽節選択処理を終了する。
【０１１５】
図２３（ａ）は、このようにして選択されたハネ楽節の一例を示す図であり、図中、斜線が施された楽節がハネ楽節を示している。そして、図示例では、設定レベルが“１”に設定されているため、ハネ楽節の頻度は、ハネ可能楽節の５０％以上に選択されている。
【０１１６】
図１９および図２０は、前記ステップＳ９５のハネフレーズ選択処理サブルーチンの詳細な手順を示すフローチャートである。
【０１１７】
図１９において、まず、前記ステップＳ１０１と同様にして、楽節カウンタを“１”に初期設定する（ステップＳ１２１）。
【０１１８】
次に、当楽節のハネ可能楽節フラグが“１”であるか否かを判別し（ステップＳ１２２）、ハネ可能楽節フラグ＝０のとき、すなわち当楽節がハネ可能楽節でないときには、当楽節の全フレーズのハネを“ＯＦＦ”に設定した（ステップＳ１２３）後に、ステップＳ１３６に進む一方、ハネ可能楽節フラグ＝１のときには図２０のステップＳ１２４に進む。
【０１１９】
ステップＳ１２４〜Ｓ１３５の処理は、前記ステップＳ１０１〜Ｓ１１２の処理中、「楽節」を「フレーズ」で読み替えることによって実現できるので、その説明を省略する。
【０１２０】
ステップＳ１３６では、全楽節に対して上記ステップＳ１２２〜Ｓ１３５の処理を終了したか否かを判別し、終了したときには、楽節カウンタを“１”だけインクリメントした（ステップＳ１３７）後に、ステップＳ１２２に戻って上述の処理を繰り返す一方、終了しないときにはステップＳ１３８に進む。
【０１２１】
ステップＳ１３８では、ハネ設定レベルが“１”または“２”であるか否かを判別し、ハネ設定レベル＝１，２のときには、ハネフレーズの頻度はハネ可能フレーズの５０％以上であるか否かを判別し（ステップＳ１３９）、５０％以上のときには、本ハネフレーズ選択処理サブルーチンを終了する一方、５０％未満のときには、前記ステップＳ１２１に戻って、５０％以上になるまで上述の処理を繰り返す。
【０１２２】
図２３（ｂ）は、このようにして選択されたハネフレーズの一例を示す図であり、図中、斜線が施されたフレーズがハネフレーズを示している。そして、図示例では、設定レベルが“１”に設定されているため、ハネフレーズの頻度は、ハネ可能フレーズの５０％以上に選択されている。
【０１２３】
図２１および図２２は、前記ステップＳ９６のハネ小節選択処理サブルーチンの詳細な手順を示すフローチャートである。
【０１２４】
図２１において、まず、前記ステップＳ１０１およびＳ１０２と同様にして、楽節カウンタを“１”に初期設定した（ステップＳ１４１）後に、当楽節のハネ可能楽節フラグが“１”であるか否かを判別する（ステップＳ１４２）。
【０１２５】
ステップＳ１４２で、ハネ可能楽節フラグ＝０のとき、すなわち当楽節がハネ可能楽節でないときには、当楽節の全小節のハネを“ＯＦＦ”に設定した（ステップＳ１４３）後に、ステップＳ１６１に進む一方、ハネ可能楽節フラグ＝１のときには図２２のステップＳ１４４に進む。
【０１２６】
ステップＳ１４４では、前記ステップＳ１２４と同様にして、フレーズカウンタを“１”に初期設定し、続くステップＳ１４５では、当フレーズのハネ可能フレーズフラグが“１”であるか否かを判別し、ハネ可能フレーズフラグ＝０のとき、すなわち当フレーズがハネ可能フレーズでないときには、当フレーズの全小節のハネを“ＯＦＦ”に設定した（ステップＳ１４６）後に、ステップＳ１５９に進む一方、ハネ可能フレーズフラグ＝１のときにはステップＳ１４７に進む。
【０１２７】
ステップＳ１４７では、小節数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである小節カウンタを“１”に初期設定し、続くステップＳ１４８では、当小節のハネ可能小節フラグが“１”であるか否かを判別する。
【０１２８】
ステップＳ１４８で、ハネ可能小節フラグ≠１のときには、当小節のハネを“ＯＦＦ”に設定した（ステップＳ１４９）後に、ステップＳ１５７に進む一方、ハネ可能小節フラグ＝１のときにはステップＳ１５０に進む。
【０１２９】
ステップＳ１５０では、当小節が含まれる楽節が同名・同類楽節であるか否かを判別し、同名・同類楽節のときには、当小節のハネの“ＯＮ／ＯＦＦ”を、参照楽節の対応する小節と同一に設定した（ステップＳ１５１）後に、ステップＳ１５７に進む一方、同名・同類楽節でないときにはステップＳ１５２に進む。
【０１３０】
ステップＳ１５２〜Ｓ１５６では、ハネ設定レベルおよび前記図１６（ａ）の規則に応じてハネ小節を決定する。すなわち、ハネ設定レベル＝０のときには、当小節のハネを“ＯＦＦ”に設定し（ステップＳ１５２→Ｓ１５４→Ｓ１５６）、ハネ設定レベル＝１，２のときには、当小節のハネの“ＯＮ／ＯＦＦ”をランダムに決定し（ステップＳ１５２→Ｓ１５３）、ハネ設定レベル＝３のときには、当小節のハネを“ＯＮ”に設定する（ステップＳ１５２→Ｓ１５４→Ｓ１５５）。
【０１３１】
ステップＳ１５７では、全小節に対して、上記ステップＳ１４８〜Ｓ１５６の処理を終了したか否かを判別し、まだ処理すべき小節が残っているときには、小節カウンタを“１”だけインクリメントした（ステップＳ１５８）後にステップＳ１４８に戻り、上述の処理を繰り返す一方、全小節に対する処理が終了したときには、前記ステップＳ１５９に進む。
【０１３２】
ステップＳ１５９では、全フレーズに対して、前記ステップＳ１４５〜Ｓ１５８の処理を終了したか否かを判別し、まだ処理すべきフレーズが残っているときには、フレーズカウンタを“１”だけインクリメントした（ステップＳ１６０）後にステップＳ１４５に戻り、前述の処理を繰り返す一方、全フレーズに対する処理を終了したときには、前記図２１のステップＳ１６１に進む。
【０１３３】
ステップＳ１６１では、全楽節に対して、前記ステップＳ１４２〜Ｓ１６０の処理を終了したか否かを判別し、まだ処理すべき楽節が残っているときには、楽節カウンタを“１”だけインクリメントした（ステップＳ１６２）後にステップＳ１４２に戻り、前述の処理を繰り返す一方、全楽節に対する処理を終了したときにはステップＳ１６３に進む。
【０１３４】
ステップＳ１６３では、ハネ設定レベルが“１”または“２”であるか否かを判別し、ハネ設定レベル＝１，２のときには、ハネ小節の頻度はハネ可能小節の５０％以上であるか否かを判別する（ステップＳ１６４）。
【０１３５】
ステップＳ１６４で、ハネ小節の頻度が５０％未満のときには、前記ステップＳ１４１に戻って、再度ハネ小節選択処理を実行する一方、ハネ小節の頻度が５０％以上のときには、本ハネ小節選択処理を終了する。
【０１３６】
図２３（ｃ）は、このようにして選択されたハネ小節の一例を示す図であり、図中、斜線が施された小節がハネ小節を示している。そして、図示例では、設定レベルが“１”に設定されているため、ハネ小節の頻度は、ハネ可能小節の５０％以上に選択されている。
【０１３７】
このように、曲全体に設定した特徴を、その設定レベルに応じて各楽節・フレーズ・小節に適宜分散して設定するようにしたので、異なる特徴のリズムパターンを得たい場合に、曲全体の特徴のみを変更するだけでよく、このため、ユーザは各楽節・フレーズ・小節に対してそれぞれ異なる特徴を設定する必要がなくなり、操作性が向上する。
【０１３８】
次に、前記図５のステップＳ１３のリズムパターン生成処理の概要を説明した後、この処理の前段の処理である前記ステップＳ１２のリズムパターン生成区間決定処理を、図２４および図２５に基づいて詳細に説明する。
【０１３９】
曲全体に亘るリズムパターンは、次のようにして生成する。すなわち、
１）１小節単位で、各小節にリズムパターンを割り当てて行くのを原則とするが、１小節すべてにリズムパターンを割り当てることができない場合（たとえば、ピックアップ小節（次小節の先頭部分が当小節に食い込んだ小節）である場合）があるため、小節占有区間を決定する
２）この決定された小節占有区間にリズムパターンを割り当てて行く
ａ）当楽節が同名・同類楽節であって、その参照小節（参照楽節の同番フレーズの同番小節）の音節数が当小節の音節数に等しく、参照小節の先頭打点から最後打点までの区間が当小節の占有区間以内の場合には、その参照小節のリズムパターンと同一にする
ｂ）当楽節が新規楽節または上記ａ）に該当しない場合には、前記生成されたリズムパターン特徴連結テーブルの当該小節のデータに最も適合するリズムパターンを、リズムパターンデータベース３４から選択する
３）このようにして、１小節毎にリズムパターンを割り当てて行き、１曲分のリズムパターンを生成する。
【０１４０】
図２４は、リズムパターン生成区間決定処理の詳細な手順を示すフローチャートであり、１曲分の前記小節占有区間を決定する処理を示している。
【０１４１】
同図において、まず、小節数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである小節カウンタを“１”に初期設定する（ステップＳ１７１）。
【０１４２】
次に、当小節が分割すべき小節か否かを判別し（ステップＳ１７２）、分割すべき小節のときには、当小節内に割り当てられた音節数に従って、当小節の分割位置を決定する（ステップＳ１７３）一方、当小節が分割すべき小節でないときには、ステップＳ１７３をスキップしてステップＳ１７４に進む。
【０１４３】
なお、当小節が分割すべき小節か否かの判別は、次のようにして行う。すなわち、前述のように本実施の形態においては、通常小節とピックアップ小節が存在する。ピックアップ小節とは、フレーズ先頭の小節のうち、その一部が前フレーズの最終小節の一部を占有しているような小節である。すなわち、分割すべき小節においては、その前半は前フレーズの最終小節に属し、後半は次フレーズの先頭小節（＝ピックアップ小節）に属することになる。各フレーズには、ピックアップ小節の有無、および有りの場合の音節数を示す情報が設定されており、この情報に基づいて当小節が分割すべき小節か否か（ピックアップ小節を含むか否か）を判別する。
【０１４４】
また、音節数に従った分割位置の決定は、具体的には次のようにして行う。すなわち、ピックアップ小節における音符数（該音符数が奇数個であれば＋１して偶数個にする）×８分音符長をピックアップ小節に与え、残りを前フレーズの最後小節に与える。たとえば、ピックアップ小節の音符数が１個であった場合、ピックアップ小節には（１＋１）×８分音符長＝４分音符長を与え、残りの４分音符長×３の長さを前フレーズの最後小節に与える。なお、リズムパターンの最短音符が１６分音符の場合、音符数×１６分音符長をピックアップ小節に与えるようにしてもよい。
【０１４５】
前記ステップＳ１７４では、全小節に対して、上記ステップＳ１７２およびＳ１７３の処理を終了したか否かを判別し、処理すべき小節が残っているときには、小節カウンタを“１”だけインクリメントした（ステップＳ１７５）後に、ステップＳ１７２に戻り、上述の処理を繰り返す一方、全小節に対する処理を終了したときにはステップＳ１７６に進む。
【０１４６】
ステップＳ１７６では、前記ステップＳ１７１と同様にして、小節カウンタを初期設定し、続くステップＳ１７７では、当小節が分割すべき小節であるか否かを判別する。
【０１４７】
ステップＳ１７７で、当小節が分割すべき小節であるときには、当小節の分割位置は当小節以前および以後の同名・同類楽節の同番フレーズの同番小節の分割位置より右側（後ろ側）にあるか否かを判定する（ステップＳ１７８）。
【０１４８】
続くステップＳ１７９では、その判定結果をチェックし、分割位置が右側のときには、当小節の分割位置を参照小節の分割位置まで、左方向（前方向）に移動させる（ステップＳ１８０）。ただし、当小節の前半に割り当てられた音節数が最低限占有する区間（最短音符長×音節数）を浸食しないこととする。このステップＳ１８０の処理により、同名・同類楽節における小節の分割位置はほぼ同じ分割位置となる。
【０１４９】
一方、ステップＳ１７９で、分割位置が右側でないときには、ステップＳ１８０をスキップしてステップＳ１８１に進む。
【０１５０】
ステップＳ１８１では、全小節に対して、前記ステップＳ１７７〜Ｓ１８０の処理を終了したか否かを判別し、処理すべき小節が残っているときには、小節カウンタを“１”だけインクリメントした（ステップＳ１８２）後に、ステップＳ１７７に戻る一方、すべての小節に対して処理を終了したときには、本リズムパターン生成区間決定処理を終了する。
【０１５１】
図２５は、上記リズムパターン生成区間決定処理によって決定されたリズムパターン生成区間の一例を示す図である。同図において、第１小節、第３小節および第４小節は、それぞれ通常小節であるため、当該小節のみが占有する区間となる。他方、第２小節はピックアップ小節であるので、そのうち、前半部分は第１フレーズの最後小節の占有区間と決定され、後半部分はピックアップ小節の占有区間と決定される。そして、前者は第１フレーズに属するものと、後者は第２フレーズに属するものとされる。
【０１５２】
以上のように、本実施の形態では、リズムパターンを変形するときに、同じ特徴を有する複数のリズムパターンの中からいずれかを選択するようにしたので、同じ特徴を有する異なるリズムパターンを容易に得ることができる。
【０１５３】
なお、リズムパターンデータベース３４内の各リズムパターンの特徴を示す特徴データは、例示したもの、すなわち「開始音長」、「シンコペーション」、「ハネ」、「コンプレックス」、「アウフタクト」および「終止感」に限る必要はなく、これより多くても、また少なくてもよい。
【０１５４】
また、前記図２４に示したリズムパターン生成区間決定処理のアルゴリズムは、例示であって、他のアルゴリズムを採用してもよい。
【０１５５】
また、作曲条件の設定レベル、および各楽節、各フレーズ、各小節にどのように条件を当てはめるかのルールは、例示したものに限らない。また、ランダム設定した際の頻度が５０％〜１００％となるようにしたが、頻度の範囲は５０％〜１００％に限らない。すなわち、下限は５０％より高くても低くてもよく、また上限は１００％未満であってもよい。
【０１５６】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは云うまでもない。
【０１５７】
この場合、記憶媒体から読出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記憶媒体は本発明を構成することになる。
【０１５８】
プログラムを供給するための記憶媒体としては、たとえば、前記ＨＤＤ１１のハードディスク、ＣＤ−ＲＯＭ２１，ＭＯ，ＭＤ，フロッピーディスク２０、ＣＤ−Ｒ（ＣＤ−  Ｒｅｃｏｒｄａｂｌｅ）、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムが供給されるようにしてもよい。
【０１５９】
また、コンピュータが読出したプログラムを実行することにより、上述した各実施の形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１６０】
さらに、記憶媒体から読出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した各実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１６１】
【発明の効果】
【０１６２】
以上説明したように、請求項１または５に記載の発明によれば、曲全体に対して設定された作曲条件が前記曲を構成する下位の要素に対して振り分けられるので、異なる特徴のリズムパターンを得たい場合に、曲全体の特徴のみを変更するだけでよく、したがって、ユーザの操作性が向上する。
【０１６３】
さらに、請求項２に記載の発明によれば、選択されたリズムパターンの打点数が変更されたときには、その変更後の打点数のリズムパターンであって、打点数以外の特徴データが元のリズムパターンに近似するリズムパターンが、前記リズムパターンデータベースから選択されるので、打点数のみ異なった近似リズムパターンを生成することができる。
【０１６５】
さらに、請求項３または４に記載の発明によれば、前記リズムパターンデータベースには小節単位のリズムパターンが記憶されており、対象小節が、前記小節単位の単一のリズムパターンを割り当てることができない小節であるときに、当該小節が、該小節に属する区間と該小節の直後小節に属する区間とに分割され、該分割された２区間のそれぞれに異なったリズムパターンが選択されるので、ピックアップ小節等の特異な小節が含まれている曲に対してもリズムパターンを生成することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る自動作曲装置の概略構成を示すブロック図である。
【図２】図１の自動作曲装置が実行する各種制御処理を視覚的に表した図である。
【図３】図１の自動作曲装置が実行する各種制御処理を視覚的に表した図である。
【図４】図１の自動作曲装置、特にＣＰＵが実行するリズムパターン変形処理１の手順を示すフローチャートである。
【図５】図１の自動作曲装置、特にＣＰＵが実行するリズムパターン変形処理２の手順を示すフローチャートである。
【図６】図３のリズムパターンデータベースを構成するリズムパターンデータの一例を示す図である。
【図７】図４のリズムパターン特徴検出処理の詳細な手順を示すフローチャートである。
【図８】打点増加処理の詳細な手順を示すフローチャートである。
【図９】打点数が増加する場合に、ある小節の新リズムパターンに決定されたリズムパターンの一例を示す図である。
【図１０】打点減少処理の詳細な手順を示すフローチャートである。
【図１１】打点数が減少する場合に、ある小節の新リズムパターンに決定されたリズムパターンの一例を示す図である。
【図１２】図４のリズムパターン生成処理の詳細な手順を示すフローチャートである。
【図１３】図１２の新規楽節のリズムパターン生成処理サブルーチンの詳細な手順を示すフローチャートである。
【図１４】他の新規楽節のリズムパターン生成処理サブルーチンの詳細な手順を示すフローチャートである。
【図１５】図５のリズムパターン変形処理２の概要を視覚的に表した図である。
【図１６】設定レベルと作曲条件適用可能な楽節、フレーズおよび小節との関係、および、生成されたリズムパターン特徴連結テーブルの一例を示す図である。
【図１７】図５のリズムパターン特徴連結テーブル生成処理の手順を示すフローチャートである。
【図１８】図１７のハネ楽節選択処理サブルーチンの詳細な手順を示すフローチャートである。
【図１９】図１７のハネフレーズ選択処理サブルーチンの詳細な手順を示すフローチャートである。
【図２０】図１７のハネフレーズ選択処理サブルーチンの詳細な手順を示すフローチャートである。
【図２１】図１７のハネ小節選択処理サブルーチンの詳細な手順を示すフローチャートである。
【図２２】図１７のハネ小節選択処理サブルーチンの詳細な手順を示すフローチャートである。
【図２３】選択されたハネ楽節、ハネフレーズおよびハネ小節の一例を示す図である。
【図２４】図５のリズムパターン生成区間決定処理の詳細な手順を示すフローチャートである。
【図２５】図２４のリズムパターン生成区間決定処理によって決定されたリズムパターン生成区間の一例を示す図である。
【符号の説明】
２  パネルスイッチ（設定手段）
５  ＣＰＵ（設定手段、選択手段、振り分け手段、決定手段、区間分割手段）
３４  リズムパターンデータベース
【図１】
0003557917.tif 000002
【図２】
0003557917.tif 000003
【図３】
0003557917.tif 000004
【図４】
0003557917.tif 000005
【図５】
0003557917.tif 000006
【図６】
0003557917.tif 000007
【図７】
0003557917.tif 000008
【図８】
0003557917.tif 000009
【図９】
0003557917.tif 000010
【図１０】
0003557917.tif 000011
【図１１】
0003557917.tif 000012
【図１２】
0003557917.tif 000013
【図１３】
0003557917.tif 000014
【図１４】
0003557917.tif 000015
【図１５】
0003557917.tif 000016
【図１６】
0003557917.tif 000017
【図１７】
0003557917.tif 000018
【図１８】
0003557917.tif 000019
【図１９】
0003557917.tif 000020
【図２０】
0003557917.tif 000021
【図２１】
0003557917.tif 000022
【図２２】
0003557917.tif 000023
【図２３】
0003557917.tif 000024
【図２４】
0003557917.tif 000025
【図２５】
0003557917.tif 000026