(57)【特許請求の範囲】
【請求項１】
生成すべきメロディの一部分における発音位置を示す打点から成る第１の打点群を記憶する第１の打点記憶手段と、
第２の打点群を記憶する第２の打点記憶手段と、
前記第１の打点群に対応する歌詞の音節数またはメロディの音符数を記憶する音節・音符数記憶手段と、
前記音節数またはメロディの音符数と前記第１の打点群の打点数とが不一致である場合に、前記第１の打点群を前記第２の打点群に近づけるように、前記第１の打点群の打点を増加または減少させる打点増減手段と、
前記メロディの各部分相互の類似・非類似関係を記憶する類似関係記憶手段と
を具備し、前記第１および第２の打点記憶手段は、相互に類似関係を有する二部分の打点群を各々記憶する
ことを特徴とする自動作曲装置。
【請求項２】
前記第１の打点群の打点数と前記音節数またはメロディの音符数との大小関係を判定する判定手段と、
前記打点を設けうる位置に対して優先順位を記憶する優先順位記憶手段と
をさらに具備し、前記打点増減手段は、
前記判定手段によって前記音節数またはメロディの音符数が大である旨が判定されると、前記第２の打点群に含まれ前記第１の打点群に含まれない打点を、前記優先順位が高い順に前記第１の打点群に挿入するものであり、
前記判定手段によって前記音節数またはメロディの音符数が小である旨が判定されると、前記第１の打点群に含まれ前記第２の打点群に含まれない打点を、前記優先順位が低い順に前記第１の打点群から削除するものである
ことを特徴とする請求項１記載の自動作曲装置。
【請求項３】
コンピュータを、
生成すべきメロディの一部分における発音位置を示す打点から成る第１の打点群を記憶する第１の打点記憶手段、
第２の打点群を記憶する第２の打点記憶手段、
前記第１の打点群に対応する歌詞の音節数またはメロディの音符数を記憶する音節・音符数記憶手段、
前記音節数またはメロディの音符数と前記第１の打点群の打点数とが不一致である場合に、前記第１の打点群を前記第２の打点群に近づけるように、前記第１の打点群の打点を増加または減少させる打点増減手段、および、
前記メロディの各部分相互の類似・非類似関係を記憶する類似関係記憶手段
として機能させるプログラムであって、
前記第１および第２の打点記憶手段は、相互に類似関係を有する二部分の打点群を各々記憶する手段
として機能させるプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、歌詞に応じたメロディを作成するために用いて好適な自動作曲装置および記録媒体に関する。
【０００２】
【従来の技術】
歌詞付きの楽曲を作詞・作曲する手順としては、作曲を先に行い曲に合わせて作詞を行う場合と、作詞を先に行い歌詞に合わせて作曲を行う場合とがある。特に曲（メロディ）を重視すべき場合は前者の手順が採られ、歌詞を重視すべき場合は後者の手順が採られる。本出願人は特に後者の場合を想定して、特願平８−１３２２０８号において、予め作成した歌詞に応じたメロディを容易に生成できる自動メロディ生成装置を提案している（未だ公知ではない）。
【０００３】
上記自動メロディ生成装置は、主として汎用パーソナルコンピュータ上で実現されるものであり、ユーザは、歌詞ファイルと、スタイル（音楽条件）とを指定することが可能になっている。
【０００４】
ここで、歌詞ファイルとは、歌詞を楽節、フレーズ毎に区切ったテキストファイルであり、この歌詞ファイルに基づいて、各楽節およびフレーズの音節数が検出される。そして、各フレーズの音節数に基づいて、生成されるメロディの各フレーズの打点数が決定される。また、「スタイル」とは、メロディに使用されうる最短の音符長や、リズムの分布等、メロディの性質を決定する条件である。
【０００５】
上記自動メロディ生成装置にあっては、複数の「曲テンプレート」が予め記憶されている。ここで曲テンプレートとは、メロディの原型であり、複数の打点と、各打点に対応する音高と、該曲テンプレートのスタイルとから成る情報である。
【０００６】
そして、ユーザによってスタイルが指定されると、指定されたものと同一または類似するスタイルを有する一の曲テンプレートが最終的に選択される。そして、この曲テンプレートを適宜加工することにより、各フレーズのメロディが生成される。
【０００７】
例えば、対象フレーズの歌詞の音節数と曲テンプレートの打点数とが異なる場合は、曲テンプレートにおける打点数を増減する必要がある。このため、上記装置にあっては、「打点優先順位表」なるものが記憶されている。打点優先順位表は、各フレーズを最短音符の打点ステップで区切り、各打点ステップに対して優先順位を定めたものである。
【０００８】
例えば、「１」フレーズが「２」小節であって、拍子が「４／４」、最短音符が「８分音符」であれば、「１」フレーズは「１６」打点ステップに分割され、各打点ステップに対して「１」〜「１６」の優先順位が付与されることになる。
【０００９】
そして、曲テンプレートに対して打点を追加する場合は、未だ打点の無い打点ステップの中から優先順位の高い順に打点が付与されていく。逆に、曲テンプレートに対して打点を減少させる場合は、打点を有する打点ステップの中から優先順位の低い順で打点が削除されてゆくのである。また、打点優先順位表が常に一定であれば、作曲されたメロディが単調になり易いため、打点優先順位表の内容をランダムに変更することができる。
【００１０】
【発明が解決しようとする課題】
ところで、メロディの楽節毎に「Ａ」，「Ａ’」，「Ｂ」，「Ｃ」等の記号を付与して、楽節の形式を表現することがある。ここで、「Ａ」と「Ａ’」のようにアルファベットが同一でダッシュ（’）の有無や数が異なる形式は類似する形式あり、「Ａ」と「Ｂ」のようにアルファベットそのものが異なる場合は全く異なる形式である。
【００１１】
すなわち、「Ａ」形式の楽節のメロディが作成された後に「Ａ’」形式の楽節のメロディを作成する場合は、各種の音楽条件について「Ａ」形式の楽節を参照しつつ「Ａ’」形式の楽節に反映させるべきである。しかし、上述した従来の装置においては、他の楽節の状態を加味して処理中のフレーズの打点位置を決定することが不可能であったため、楽節間の関係が崩れ、ユーザの意図に沿わないメロディが作成されるという問題があった。
【００１２】
この発明は上述した事情に鑑みてなされたものであり、ユーザの意図に沿ったメロディを生成できる自動作曲装置および記録媒体を提供することを目的としている。
【００１３】
【課題を解決するための手段】
上記課題を解決するため請求項１記載の構成にあっては、生成すべきメロディの一部分における発音位置を示す打点から成る第１の打点群を記憶する第１の打点記憶手段と、第２の打点群を記憶する第２の打点記憶手段と、前記第１の打点群に対応する歌詞の音節数またはメロディの音符数を記憶する音節・音符数記憶手段と、前記音節数またはメロディの音符数と前記第１の打点群の打点数とが不一致である場合に、前記第１の打点群を前記第２の打点群に近づけるように、前記第１の打点群の打点を増加または減少させる打点増減手段と、前記メロディの各部分相互の類似・非類似関係を記憶する類似関係記憶手段とを具備し、前記第１および第２の打点記憶手段は、相互に類似関係を有する二部分の打点群を各々記憶することを特徴とする。
さらに、請求項２記載の構成にあっては、請求項１記載の自動作曲装置において、前記第１の打点群の打点数と前記音節数またはメロディの音符数との大小関係を判定する判定手段と、前記打点を設けうる位置に対して優先順位を記憶する優先順位記憶手段とをさらに具備し、前記打点増減手段は、前記判定手段によって前記音節数またはメロディの音符数が大である旨が判定されると、前記第２の打点群に含まれ前記第１の打点群に含まれない打点を、前記優先順位が高い順に前記第１の打点群に挿入するものであり、前記判定手段によって前記音節数またはメロディの音符数が小である旨が判定されると、前記第１の打点群に含まれ前記第２の打点群に含まれない打点を、前記優先順位が低い順に前記第１の打点群から削除するものであることを特徴とする。
また、請求項３記載の構成にあっては、コンピュータを、生成すべきメロディの一部分における発音位置を示す打点から成る第１の打点群を記憶する第１の打点記憶手段、第２の打点群を記憶する第２の打点記憶手段、前記第１の打点群に対応する歌詞の音節数またはメロディの音符数を記憶する音節・音符数記憶手段、前記音節数またはメロディの音符数と前記第１の打点群の打点数とが不一致である場合に、前記第１の打点群を前記第２の打点群に近づけるように、前記第１の打点群の打点を増加または減少させる打点増減手段、および、前記メロディの各部分相互の類似・非類似関係を記憶する類似関係記憶手段として機能させるプログラムであって、前記第１および第２の打点記憶手段は、相互に類似関係を有する二部分の打点群を各々記憶する手段として機能させるプログラムを記憶したコンピュータ読み取り可能な記録媒体である。
【００１４】
【発明の実施の形態】
１．実施形態の構成
次に、本発明の一実施形態の自動作曲システムの構成を図１を参照し説明する。図において１はＣＰＵであり、後述する制御プログラムに基づいて、バス７を介して各部を制御する。４はタイマ回路であり、ＣＰＵ１に対して所定時間毎にタイマ割り込みを発生させる。３はＲＯＭであり、イニシャルプログラムローダ等のプログラムが記憶されている。２はＲＡＭであり、ＣＰＵ１によってアクセス可能になっている。
【００１５】
５は外部記憶装置であり、ハードディスクドライブ、フロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、ＭＯドライブ等によって構成されている。この外部記憶装置（例えばハードディスク）には、後述する制御プログラムや各種のデータが記憶される。６はインターフェース部であり、外部のコンピュータあるいは電子楽器との間でＭＩＤＩ信号や曲テンプレート、制御プログラム等の情報のやりとりを行う。８は鍵盤であり、その操作状態は検出回路９によって検出される。
【００１６】
次に、１０はスイッチ部であり、情報入力用のキーボード、マウス、音色設定操作子等により構成されている。そして、スイッチ部１０の操作状態は検出回路１１によって検出される。１２は表示回路であり、ユーザに各種の情報を表示する。１３は音源回路であり、バス７を介して供給された演奏情報に基づいて、楽音信号を合成する。１４は効果回路であり、バス７を介して供給されたパラメータに基づいて、この楽音信号に各種の特殊効果を施す。そして、特殊効果が施された楽音信号は、サウンドシステム１５を介して放音される。
【００１７】
２．実施形態の動作
２．１．実施形態の全体動作
次に、本実施形態の動作を説明する。ユーザがスイッチ部１０において所定の操作を行うと、図３に示すプログラムが起動される。図において処理がステップＳＰ１０１に進むと、歌詞に基づいて作曲を行うか否かがユーザに問い合わされる。
【００１８】
歌詞に基づいて作曲を行う旨が指定された場合は、ここで「ＹＥＳ」と判定され処理はステップＳＰ１０２に進む。ここでは、テキストエディタが呼び出され、ユーザによって歌詞が入力される。歌詞が入力された後にユーザが所定の操作を行うと、歌詞が確定される。すなわち、特定された歌詞が歌詞ファイルとして外部記憶装置５に記録され、処理はステップＳＰ１０３に進む。なお、上述の処理に代えて歌詞が記憶されている既存のテキストファイルをロードするようにしてもよい。
【００１９】
なお、ユーザは、歌詞ファイルを作成するにあたっては、歌詞をかな文字で入力することとし、小節の区切りをスペースで、フレーズの区切りを改行コードで、楽節の区切りを連続する「２」の改行コード（すなわち空白行が１行含まれる）で、各々表すこととする。
さて、ステップＳＰ１０３にあっては、入力された歌詞に基づいて、歌詞の構成が検出される。すなわち、楽節数、フレーズ数、小節数、各楽節・各フレーズ毎の音節数が検出される。ここで、「音節数」は小書き文字（ぁ、ぃ、ぅ、ぇ、ぉ、っ、等）および「ん」以外のかな文字数をカウントして求められる。換言すれば、「いっ」、「ぽん」、「てん」および「ばん」等は１個の音節としてカウントされることになる。
【００２０】
次に、処理がステップＳＰ１０４に進むと、楽曲全体の作曲条件が入力される。次に、ステップＳＰ１０５においては、各楽節の作曲条件が入力される。すなわち、全体の作曲条件に対して一部の楽節（またはフレーズ）についてのみ作曲条件を変更したい場合は、当該作曲条件をここで入力することになる。また、歌詞が入力されなかった場合は、各小節の音節数（打点数）あるいは作曲するメロディの各小節の音符数がユーザによって入力される。
【００２１】
次に、処理がステップＳＰ１０６に進むと、全体、楽節（またはフレーズ）、および小節に対する作曲条件に基づいて、該作曲条件に対して同一または類似のスタイルを有する曲テンプレートが検索される。次に、処理がステップＳＰ１０７に進むと、検索された曲テンプレートのうちの一つがユーザによって指定される。なお、作曲条件に基づいて曲テンプレートを選択する処理については、上述した特願平８−１３２２０８号に開示されている。
【００２２】
次に、処理がステップＳＰ１０８に進むと、選択された曲テンプレートに対してリズムパターン（フレーズ内における打点の数や位置）が決定される。これは、曲テンプレートが各小節毎に元々記憶している打点数と、上記歌詞の各小節の音節数とが比較され、両者が相違する場合は曲テンプレートの打点数が増減されるのである。なお、その処理の詳細については後述する。
【００２３】
ここで、曲テンプレートのデータ構造の概要を図２に示す。図において楽曲は複数の楽節に分割されており、各楽節毎に楽節記号（Ａ，Ａ'，Ｂ，Ａ''，……）が付与されている。また、各楽節は複数（曲テンプレートによって異なるが例えば「２」）フレーズから構成され、各フレーズは複数（曲テンプレートによって異なるが例えば「２」）小節から構成される。そして、各小節毎にリズムパターンとピッチパターンとが記憶される。なお、曲テンプレートには上述した以外の各種の音楽条件も記憶されている。
【００２４】
次に、処理がステップＳＰ１０９に進むと、曲テンプレート内の各打点に対してピッチが決定される。そして、処理がステップＳＰ１１０に進むと、１曲分のリズムパターンおよびピッチパターン全体に対して評価と変形が行われる。すなわち、跳躍が多すぎないか、１曲としてまとまっているか（統一感があるか）等が評価され、必要に応じてリズムあるいはピッチが修正される。
【００２５】
２．２．ステップＳＰ１０８における処理の詳細
次に、図３に示したステップＳＰ１０８において、選択された曲テンプレートに対してリズムパターンを決定する処理の詳細を説明する。まず、ステップＳＰ１０８が実行されると、図４に示すサブルーチンが呼び出される。
【００２６】
図において処理がステップＳＰ１に進むと、楽節カウンタｇに「１」が代入される。以下、ステップＳＰ２〜ＳＰ９の処理が行われた後、処理がステップＳＰ１０に進むと、全楽節に対してステップＳＰ２〜ＳＰ９の処理が行われたか否かが判定される。ここで「ＮＯ」と判定されると、処理はステップＳＰ１１に進み、楽節カウンタｇが「１」だけインクリメントされ、処理はステップＳＰ２に戻る。
【００２７】
なお、ここで「ＹＥＳ」と判定された場合は、後述するステップＳＰ１２以降の処理に進む。従って、ステップＳＰ１、ＳＰ１０、ＳＰ１１の処理により、全楽節に対してステップＳＰ２〜ＳＰ９を実行するループ（楽節ループ）が形成される。
【００２８】
同様に、ステップＳＰ２においてはフレーズカウンタｐに「１」が代入され、ステップＳＰ３〜７の処理が行われた後に処理がステップＳＰ８に進むと、第ｇ楽節の全フレーズに対してステップＳＰ３〜７の処理が行われたか否かが判定される。ここで「ＮＯ」と判定されると、ステップＳＰ９においてフレーズカウンタｐが「１」だけインクリメントされ処理がステップＳＰ３に戻る。
【００２９】
一方、ステップＳＰ８において「ＹＥＳ」と判定されると、処理は上述したステップＳＰ１０に進む。従って、ステップＳＰ２、ＳＰ８、ＳＰ９により、第ｇ楽節の全フレーズに対してステップＳＰ３〜ＳＰ７を実行するループ（フレーズループ）が形成される。
【００３０】
また、同様に、ステップＳＰ３においては小節カウンタｂに「１」が代入され、ステップＳＰ４，ＳＰ５の処理が行われた後に処理がステップＳＰ６に進むと、第ｇ楽節第ｐフレーズの全小節に対してステップＳＰ４，ＳＰ５の処理が行われたか否かが判定される。ここで「ＮＯ」と判定されると、ステップＳＰ７において小節カウンタｂが「１」だけインクリメントされ処理がステップＳＰ４に戻る。
【００３１】
一方、ステップＳＰ６において「ＹＥＳ」と判定されると、処理は上述したステップＳＰ８に進む。従って、ステップＳＰ３、ＳＰ６、ＳＰ７により、第ｇ楽節第ｐフレーズの全小節に対してステップＳＰ４，ＳＰ５を実行するループ（小節ループ）が形成される。
【００３２】
従って、楽曲内の全ての小節に対して、ステップＳＰ４，ＳＰ５の処理が順次実行されることになる。ここで、ステップＳＰ４にあっては、第ｇ楽節の第ｐフレーズの第ｂ小節（以下、処理対象小節という）について、曲テンプレートの打点数と歌詞の音節数とが等しいか否かが判定される。
【００３３】
ここで「ＹＥＳ」と判定されると、処理はステップＳＰ５に進み、処理対象小節のリズムパターンとして、元々の曲テンプレートの通りの内容が採用される。一方、「ＮＯ」と判定されると、処理はステップＳＰ６に進み、実質的な処理が行われないことになる。このように、ステップＳＰ１〜ＳＰ１１の処理においては、各小節について曲テンプレートの打点数と歌詞の音節数とが比較され、両者が一致した場合にのみ元々の曲テンプレートのリズムパターンが採用されることになる。
【００３４】
楽曲の全小節に対して上記処理が行われた後に処理がステップＳＰ１０に進むと、ここで「ＹＥＳ」と判定され、処理はステップＳＰ１２に進む。ステップＳＰ１２〜ＳＰ１４、ＳＰ１７〜ＳＰ２２は、先のステップＳＰ１〜ＳＰ３、ＳＰ６〜ＳＰ１１と同様に楽節ループ、フレーズループおよび小節ループを構成しており、楽曲の全楽節についてステップＳＰ１５、ＳＰ１６の処理が実行されることになる。
【００３５】
さて、ステップＳＰ１５にあっては、処理対象小節のリズムパターンが確定しているか否かが判定される。すなわち該処理対象小節に対して先にステップＳＰ５が実行されたか否かが判定される。ここで「ＮＯ」と判定されると、処理はステップＳＰ１６に進み、図５に示す打点増減処理サブルーチンが呼び出され、該処理対象小節の打点が増減され、リズムパターンが決定される。一方、「ＹＥＳ」と判定されると、処理はステップＳＰ１７に進み、該処理対象小節に対して実質的な処理は行われない。
【００３６】
２．３．打点増減処理
２．３．１．類似楽節の検索
ここで、図２の第２楽節第２フレーズの第２小節が処理対象小節であって、そのリズムパターンが確定していなかった場合を例として、図５の処理の詳細を説明する。なお、各楽節の楽節記号は図２に示す通り（Ａ，Ａ'，Ｂ，Ａ''，……）であったこととする。
【００３７】
図５において処理がステップＳＰ３１に進むと、処理対象小節が属する楽節の楽節記号のアルファベット部分が変数ｋに、ダッシュの次数が変数ｘに代入される。以下、変数ｋと変数ｘとを合わせて「処理対象楽節記号ｋx」という。すなわち、本サブルーチンにおいては、楽節記号におけるダッシュの数を上添字の数字で表現することがある。
【００３８】
ここで、処理対象小節は第２楽節に属するものであり、第２楽節の楽節記号は「Ａ'」であるから、変数ｋは「Ａ」、変数ｘは「１」になる。次に、処理がステップＳＰ３２に進むと、変数ｎに「０」が代入される。次に、処理がステップＳＰ３３に進むと、変数ｎと変数ｘとは等しいか否かが判定される。ここでは、両者は等しくないため「ＮＯ」と判定され、処理はステップＳＰ３４に進む。
【００３９】
次に、処理がステップＳＰ３４に進むと、楽節記号Ｋn（ここではＡ0＝Ａ）を有する楽節は存在するか否かが判定される。上記例にあっては、楽節記号Ａを有する第１楽節が存在するから、「ＹＥＳ」と判定される。次に、処理がステップＳＰ３５に進むと、この存在すると判定された楽節（ここでは、第１楽節）に第ｐフレーズ（同、第２フレーズ）は存在するか否かが判定される。上記例では第１楽節の第２フレーズは存在するため「ＹＥＳ」と判定される。
【００４０】
次に、処理がステップＳＰ３６に進むと、この存在すると判定されたフレーズの第ｂ小節（但し、ｂの値は処理対象小節と同一であり、ここでは「２」である）は確定されているか否かが判定される。ここで、第１楽節第２フレーズにそもそも第２小節が存在しない場合や、存在したとしても打点（リズムパターン）が確定していない場合は「ＮＯ」と判定される。ここで、該小節が存在し、かつ打点が決定されていた場合を想定すると、「ＹＥＳ」と判定され、処理はステップＳＰ３７に進む。
【００４１】
ステップＳＰ３７においては、打点が確定していると判定された小節（第１楽節第２フレーズ第２小節）は処理対象小節のリズムパターンを決定するための参照小節である旨が仮定される。次に、処理がステップＳＰ３８に進むと、曲テンプレートの打点数は歌詞の音節数未満であるか否かが判定される。
【００４２】
ここで、処理対象小節のリズムパターンが図６(c)の通り（打点数：３）であって、歌詞の音節数が「５」であったとすると、「ＹＥＳ」と判定され、処理はステップＳＰ３９に進み、参照小節の打点は処理対象小節のリズムパターンの打点を包含しているか否かが判定される。
【００４３】
ここで、打点の「包含」の概念について図６を参照し説明する。まず、同図(a)にリズムパターンの例を示す。ここで、最短音符が８分音符であり、拍子が「４／４」であったとすると、一小節は「８」打点ステップから構成されることになる。そして、同図(a)のリズムパターンは、付点４分音符の後に５個の８分音符が続いているから、打点に係る打点ステップは、「１」、「４」、「５」、「６」、「７」、「８」になる。
【００４４】
同様に、同図(b)の例にあっては、打点に係る打点ステップは「１」、「４」、「５」、「７」であり、同図(c)の例にあっては、「１」、「５」、「７」である。これらの打点は、全て同図(a)の打点に含まれている。このような関係を指して、同図(a)の打点は、同図(b)、(c)の打点を「包含する」と言うことにする。
【００４５】
一方、同図(d)の打点に係る打点ステップは「１」、「２」、「４」、「５」、「６」、「７」、「８」であり、同図(e)の例にあっては「１」、「３」、「４」、「５」、「７」である。これらの例にあっては、打点ステップ「２」または「３」に打点が存在するが、同図(a)において対応する箇所には打点は存在しない。従って、同図(a)の打点は、同図(d)、(e)の打点を「包含しない」ことになる。
【００４６】
ここで、上記前提（処理対象小節のリズムパターンが同図(c)の通りであって、歌詞の音節数は「５」）に加えて、参照パターン（参照小節のリズムパターン）が二つの２分音符（打点ステップは「１」および「５」）で構成されていたと想定する。かかる場合は、参照パターンは処理対象小節のリズムパターンを包含しないから「ＮＯ」と判定され、処理はステップＳＰ４１に進む。
【００４７】
ここでは変数ｎが「２」以上であるか否かが判定される。現時点で変数ｎは「０」であるから「ＮＯ」と判定され、処理はステップＳＰ４２に進む。ここでは、変数ｎが「１」だけインクリメントされ、処理はステップＳＰ３３に戻る。
【００４８】
ここで、変数ｎと変数ｘとは共に「１」であるから、「ＹＥＳ」と判定され、処理はステップＳＰ４１に進む。すなわち、ここでは第２楽節（楽節記号Ａ'）に類似する楽節（楽節記号ＡまたはＡ''）を検出しようとしているため、同一の楽節記号（Ａ'）を有する楽節を排除したものである。
【００４９】
さて、ステップＳＰ４１を介して処理が再びステップＳＰ４２に進むと、変数ｎが「１」だけインクリメントされ、「２」に設定される。次に、ステップＳＰ３３を介して処理がステップＳＰ３４に進むと、楽節記号Ｋn（ここではＡ2＝Ａ''）を有する楽節は存在するか否かが判定される。上記例にあっては、楽節記号Ａ''を有する第４楽節が存在するから、「ＹＥＳ」と判定される。
【００５０】
そして、第４楽節には第２フレーズが存在し、該第２フレーズには第２小節が存在し、かつ、その打点は確定しているから、ステップＳＰ３４〜ＳＰ３６においては何れも「ＹＥＳ」と判定され、処理はステップＳＰ３７に進む。
【００５１】
ステップＳＰ３７においては、この第４楽節第２フレーズ第２小節は参照小節である旨が仮定される。次に、ステップＳＰ３８を介して処理がステップＳＰ３９に進むと、参照小節の打点は処理対象小節のリズムパターンの打点を包含しているか否かが判定される。
【００５２】
上述したように、処理対象小節のリズムパターンは図６(c)の通りであって、歌詞の音節数は「５」である。ここで、参照パターンが同図(b)に示す通りであるとすると、同図(b)の打点は同図(c)の打点を包含するから、ステップＳＰ３９において「ＹＥＳ」と判定され、処理はステップＳＰ４３に進む。
【００５３】
２．３．２．参照小節に基づく打点の挿入
ステップＳＰ４３においては、図９，１０に示すサブルーチンが呼び出される。図９において処理がステップＳＰ７１に進むと、曲テンプレートの処理対象小節のリズムパターンの部分が、「目的パターンメモリ」と称するメモリ領域に転送される。以下、この領域に記憶されたリズムパターンを目的パターンという。
【００５４】
次に、処理がステップＳＰ７２に進むと、当該小節のタイプに応じた打点優先順位表が読み出される。本実施形態においては、打点優先順位表は、各小節を最短音符の打点ステップで区切り、各打点ステップに対して優先順位を定めたものである。すなわち、拍子が「４／４」、最短音符が「８分音符」であれば、「１」小節は「８」打点ステップに分割され、各打点ステップに対して「１」〜「８」の優先順位が付与されることになる。
【００５５】
ここで、各種の打点優先順位表について図１３(a)〜(c)を参照し説明しておく。ここでは小節のタイプが「粗密」（小節の後半に音符がおおい）である場合の打点優先順位表について例示する。同図(a)はピックアップ小節（いわゆる先頭喰い）に用いて好適な打点優先順位表と、この打点優先順位表に基づくリズムパターンを示す図であり、後方の打点ステップに行くほど優先順位が高くなっている。これは、ピックアップ小節は次の小節への導入に用いられるため、次の小節に近接するほど楽曲として自然になるからである。
【００５６】
また、フレーズの先頭小節および中間小節に用いて好適な打点優先順位表およびこれに基づくリズムパターンを同図(b)に示す。この打点優先順位表にあっては、強拍（第１拍および第３拍）を重視して第１ステップおよび第５ステップの優先度を最も高くしており、次にダウンビートを重視するとともに後半部分の優先順位を比較的高くしている。
【００５７】
また、フレーズの最終小節に用いて好適な打点優先順位表とリズムパターンとを同図(c)に示す。この打点優先順位表にあっては、先行する小節とのつながりを重視して、前半部分の優先度を高くしている。なお、打点優先順位表は小節のタイプ（「粗密」、「密粗」、「均一」など）に対応して異なる表が用意されている。
【００５８】
処理対象小節は第２フレーズの最後の小節である第２小節であるから、本来は同図(c)のものに対応するが、フレーズ内の小節が２小節である場合は同図(b)の打点優先順位表を用いた方が好適であるため、本実施形態においては、同図(b)の打点優先順位表が選択されるように音楽条件が設定されている。
【００５９】
図９に戻り、処理がステップＳＰ７３に進むと、処理対象小節の音節数「５」から目的パターンの打点数「３」が減算され、減算結果「２」が打点挿入数を表す変数ｉｎｓ＿ｍａｘに代入される。次に、処理がステップＳＰ７４に進むと、挿入カウンタ（変数）ｉｎｓ＿ｃに「０」が代入される。次に、処理がステップＳＰ７５に進むと、優先順位ｐｒｘに最上位すなわち「１」が代入される。
【００６０】
次に、処理がステップＳＰ７６に進むと、優先順位ｐｒｘの打点ステップにおいて目的パターンの打点が存在するか否かが判定される。ここで、優先順位ｐｒｘは「１」であり、図６(f)（図１３(b)の打点優先順位表と同じ）によれば同優先順位を有する打点ステップは「１」である。そして、目的パターンの第１ステップには、既に打点（図６(c)の２分音符）が存在するから、ここでは「ＹＥＳ」と判定され、処理がステップＳＰ８０に進む。
【００６１】
ステップＳＰ８０にあっては、全打点の挿入が完了したか否か、すなわち挿入カウンタｉｎｓ＿ｃの値と、打点挿入数ｉｎｓ＿ｍａｘとが等しいか否かが判定される。現時点にあっては、前者が「２」で後者が「０」であるから、ここで「ＮＯ」と判定される。次に、処理がステップＳＰ８１に進むと、優先順位ｐｒｘ（現時点で「１」）が最下位であるか否かが判定される。ここでは「ＮＯ」と判定され、処理はステップＳＰ８２に進む。
【００６２】
ステップＳＰ８２にあっては、優先順位が一つ下げられる。換言すれば、優先順位ｐｒｘが「１」だけインクリメントされ、「２」になる。そして、処理がステップＳＰ７６に戻る。ここでは、優先順位ｐｒｘ（＝２）の打点ステップ（＝５）に打点が存在するか否かが判定される。現時点では目的パターンは図６(c)のリズムパターンと同一であり、第５ステップには打点が存在するから「ＹＥＳ」と判定され処理は再びステップＳＰ８０に進む。そして、ステップＳＰ８０，ＳＰ８１を介して処理が再びステップＳＰ８２に進むと、優先順位ｐｒｘが「３」に設定される。
【００６３】
次に、処理がステップＳＰ７６に戻ると、優先順位ｐｒｘ（＝３）の打点ステップ（＝７）に打点が存在するか否かが判定される。図６(c)によれば、第７ステップには打点が存在するから「ＹＥＳ」と判定され処理は再びステップＳＰ８０に進む。そして、ステップＳＰ８０，ＳＰ８１を介して処理が再びステップＳＰ８２に進むと、優先順位ｐｒｘが「４」に設定される。
【００６４】
次に、処理がステップＳＰ７６に戻ると、優先順位ｐｒｘ（＝４）の打点ステップ（＝３）に打点が存在するか否かが判定される。図６(c)によれば、第３ステップには打点が存在しない。そこで、ここでは「ＮＯ」と判定され、処理はステップＳＰ７７に進む。ここでは、参照小節の該優先順位ｐｒｘにおいて打点は存在するか否かが判定される。ここで、参照小節（図６(b)）の第３ステップには打点が存在しないから、「ＮＯ」と判定され、処理は再びステップＳＰ８０に進む。そして、ステップＳＰ８０，ＳＰ８１を介して処理が再びステップＳＰ８２に進むと、優先順位ｐｒｘが「５」に設定される。
【００６５】
以下同様に、優先順位ｐｒｘが「５」および「６」である場合に、各々対応する打点ステップ（＝６および８）に打点が存在するか否かが判定される。図６(c)によれば、第６および第８ステップには何れも打点は存在しない。そこで、これらの場合は「ＮＯ」と判定され、処理はステップＳＰ７７に進む。ここでは、参照小節の該優先順位ｐｒｘにおいて打点は存在するか否かが判定される。ここで、参照小節（図６(b)）の第６および第８ステップには何れも打点が存在しないから、「ＮＯ」と判定され、処理は再びステップＳＰ８０に進む。そして、ステップＳＰ８０，ＳＰ８１を介して処理が再びステップＳＰ８２に進むと、優先順位ｐｒｘが「７」に設定される。
【００６６】
次に、処理がステップＳＰ７６に戻ると、優先順位ｐｒｘ（＝７）の打点ステップ（＝４）に打点が存在するか否かが判定される。図６(c)によれば、第４ステップには打点が存在しないから「ＮＯ」と判定され、処理はステップＳＰ７７に進む。一方、参照小節（図６(b)）の第４ステップには打点（８分音符）が存在するから、ここで「ＹＥＳ」と判定され、処理はステップＳＰ７８に進む。ここでは、目的パターンの当該位置（第４ステップ）に打点が挿入される。
【００６７】
次に、処理がステップＳＰ７９に進むと、挿入カウンタｉｎｓ＿ｃが「１」だけインクリメントされ「１」に設定される。そして、ステップＳＰ８０、ＳＰ８１を介して処理が再びステップＳＰ８２に進むと、優先順位ｐｒｘが「８」に設定される。
【００６８】
次に、処理がステップＳＰ７６に戻ると、優先順位ｐｒｘ（＝８）の打点ステップ（＝２）に打点が存在するか否かが判定される。現時点の目的パターンは、図６(c)の打点に第４ステップの打点を加えたものになっており、第２ステップには打点が存在しない。従って、「ＮＯ」と判定され、処理はステップＳＰ７７に進む。
【００６９】
ここで、参照小節（図６(b)）の第２ステップには打点が存在しないから、「ＮＯ」と判定され、処理は再びステップＳＰ８０を介してステップＳＰ８１に進む。ここで、優先順位ｐｒｘは最下位の優先順位である「８」に設定されているから「ＹＥＳ」と判定され、処理はステップＳＰ８３に進む。
【００７０】
以上のように、ステップＳＰ７１〜８２の処理においては、目的パターン（初期状態では図６(c)）と参照パターン（図６(b)）とが比較され、後者に有って前者に無い打点が、同図(f)の優先順位に従って、目的パターンに順次付加されてゆくことになる。
【００７１】
上記例にあっては、ステップＳＰ７１〜８２の処理が終了した時点で、目的パターンの第４ステップに打点が付加され、目的パターンは参照パターンと同一になった。そして、これに伴って、挿入カウンタｉｎｓ＿ｃの値すなわち挿入された打点数は「１」に設定されたのである。
【００７２】
ステップＳＰ８３においては、優先順位ｐｒｘは再び最上位である「１」に設定される。次に、処理がステップＳＰ８４に進むと、目的パターンの優先順位ｐｒｘ（＝１）の打点ステップ（＝１）に打点は存在するか否かが判定される。現時点の目的パターンは図６(b)と同様であり、第１ステップには打点が存在する。従って、ここでは「ＹＥＳ」と判定され、処理はステップＳＰ８７に進む。
【００７３】
ステップＳＰ８７においては、全打点の挿入が完了したか否か、換言すれば挿入カウンタｉｎｓ＿ｃが打点挿入数ｉｎｓ＿ｍａｘに達したか否かが判定される。現時点では、前者が「１」であるのに対して後者は「２」であるから「ＮＯ」と判定され、処理はステップＳＰ８８に進む。ここでは、優先順位ｐｒｘが「２」に設定され、処理がステップＳＰ８４に戻る。
【００７４】
以下同様に、優先順位ｐｒｘが「２」および「３」である場合に、各々対応する打点ステップ（＝５および７）に打点が存在するか否かが判定される。図６(b)によれば、第５および第７ステップには既に打点が存在するから何れも「ＹＥＳ」と判定されステップＳＰ８７を介して処理はステップＳＰ８８に進む。そして優先順位ｐｒｘが「４」に設定された後、処理は再びステップＳＰ８４に戻る。
【００７５】
次に、優先順位ｐｒｘ（＝４）に対応する打点ステップ（＝３）に打点が存在するか否かが判定される。図６(b)によれば、第３ステップには打点は存在しないから「ＮＯ」と判定され、処理はステップＳＰ８５に進む。ここでは、目的パターンの該打点ステップ（＝３）に打点が挿入される。この結果、目的パターンは図６(g)に示す通りになる。
【００７６】
次に、処理がステップＳＰ８６に進むと、挿入カウンタｉｎｓ＿ｃが「１」だけインクリメントされ「２」に設定される。これによって挿入カウンタｉｎｓ＿ｃは打点挿入数ｉｎｓ＿ｍａｘに達した。従って、次のステップＳＰ８７においては「ＹＥＳ」と判定され本サブルーチン（図９，１０）の処理は終了する。
【００７７】
図５に戻り、処理がステップＳＰ４８に進むと、最終的な目的パターン（上記例では図６(g)）が、曲テンプレートの処理対象小節の新たなリズムパターンとしてＲＡＭ２に記憶される。さらに、処理は図４のサブルーチンのステップＳＰ１７に戻り、未だリズムパターンが決定していない次の小節が検索される。
【００７８】
２．３．３．参照小節に基づく打点の削除
図４のステップＳＰ１５において未だリズムパターンが決定していない次の小節が検索されると、ステップＳＰ１６を介して、図５のサブルーチンが再び呼び出される。そして、図５のステップＳＰ３１〜ＳＰ３７、ＳＰ４１、ＳＰ４２の処理により、処理対象小節が属する楽節の楽節記号（例えばＢ''）に類似する楽節記号（例えばＢまたはＢ'）を有する楽節が検索される。
【００７９】
このような類似楽節が存在し、かつ、類似楽節において処理対象小節に対応する小節のリズムパターンが確定していた場合は、ステップＳＰ３７において、該類似楽節の小節が参照小節であると仮定される。以下、処理対象小節のリズムパターンおよび参照パターンが各々図６(e)および(b)の通りであって、音節数が「３」であった場合を例として説明する。
【００８０】
まず、上記例では処理対象小節の打点数「５」は音節数「３」以上であるから、ステップＳＰ３８にあっては「ＮＯ」と判定され、処理はステップＳＰ４０に進む。ステップＳＰ４０にあっては、曲テンプレートの処理対象小節のリズムパターンは参照パターンを包含するか否かが判定される。上記例にあっては、処理対象小節のリズムパターンは参照パターンを包含するから「ＹＥＳ」と判定され処理はステップＳＰ４４に進む。そして、ここでは図１１，１２に示すサブルーチンが呼び出される。
【００８１】
図１１のステップＳＰ９１、ＳＰ９２においては、上述したステップＳＰ７１、ＳＰ７２と同様の処理が行われる。すなわち、曲テンプレートの処理対象小節のリズムパターンが目的パターンとされ、当該小節のタイプに応じた打点優先順位表が読み出される。なお、この打点優先順位表は、図６(f)に示す通りであったとする。
【００８２】
次に、処理がステップＳＰ９３に進むと、目的パターン（現時点では図６(e)）の打点数「５」から処理対象小節の音節数「３」が減算され、減算結果「２」が打点削除数を表す変数ｄｅｌ＿ｍａｘに代入される。次に、処理がステップＳＰ９４に進むと、削除カウンタ（変数）ｄｅｌ＿ｃに「０」が代入される。次に、処理がステップＳＰ９５に進むと、優先順位ｐｒｘに最下位すなわち「８」が代入される。
【００８３】
次に、処理がステップＳＰ９６に進むと、優先順位ｐｒｘの打点ステップにおいて目的パターンの打点が存在するか否かが判定される。ここで、優先順位ｐｒｘは「８」であり、図６(e)によれば、対応する第２ステップには打点は存在しない。従って、ここでは「ＮＯ」と判定され、処理はステップＳＰ１００に進む。
【００８４】
ステップＳＰ１００にあっては、全打点の削除が完了したか否か、すなわち削除カウンタｄｅｌ＿ｃの値と打点削除数ｄｅｌ＿ｍａｘとが等しいか否かが判定される。現時点にあっては、前者が「０」で後者が「２」であるから、ここで「ＮＯ」と判定される。次に、処理がステップＳＰ１０１に進むと、優先順位ｐｒｘ（現時点で「８」）が最上位（１）であるか否かが判定される。ここでは「ＮＯ」と判定され、処理はステップＳＰ１０２に進む。
【００８５】
ステップＳＰ１０２にあっては、優先順位が一つ上げられる。換言すれば、優先順位ｐｒｘが「１」だけデクリメントされ、「７」になる。そして、処理がステップＳＰ９６に戻る。ここでは、優先順位ｐｒｘ（＝７）の打点ステップ（＝４）に打点が存在するか否かが判定される。同図(e)によれば、第４ステップには打点が存在するから、「ＹＥＳ」と判定され、処理がステップＳＰ９７に進む。
【００８６】
ステップＳＰ９７にあっては、参照パターン（図６(b)）の対応箇所（第４ステップ）に打点が存在するか否かが判定される。ここで打点は存在するから「ＹＥＳ」と判定され、処理は再びステップＳＰ１００に進む。そして、そして、ステップＳＰ１０１を介して処理が再びステップＳＰ１０２に進むと、優先順位ｐｒｘが「６」に設定される。
【００８７】
次に、処理がステップＳＰ９６に戻ると、優先順位ｐｒｘ（＝６）の打点ステップ（＝８）に打点が存在するか否かが判定される。図６(e)によれば、第８ステップには打点が存在しないから「ＮＯ」と判定される。そして、ステップＳＰ１００，ＳＰ１０１を介して処理が再びステップＳＰ１０２に進むと、優先順位ｐｒｘが「５」に設定される。
【００８８】
次に、処理がステップＳＰ９６に戻ると、優先順位ｐｒｘ（＝５）の打点ステップ（＝６）に打点が存在するか否かが判定される。図６(e)によれば、第５ステップには打点が存在しないから「ＮＯ」と判定される。そして、ステップＳＰ１００，ＳＰ１０１を介して処理が再びステップＳＰ１０２に進むと、優先順位ｐｒｘが「４」に設定される。
【００８９】
次に、処理がステップＳＰ９６に戻ると、優先順位ｐｒｘ（＝４）の打点ステップ（＝３）に打点が存在するか否かが判定される。図６(e)によれば、第３ステップには打点が存在する。そこで、ここでは「ＹＥＳ」と判定され、処理はステップＳＰ９７に進む。ここでは、参照小節の該優先順位ｐｒｘにおいて打点は存在するか否かが判定される。
【００９０】
ここで、参照小節（図６(b)）の第３ステップには打点が存在しないから、「ＮＯ」と判定され、処理はステップＳＰ９８に進む。ここでは、目的パターンから当該打点ステップ（３）の打点が削除される。この結果、目的パターンは図６(b)のリズムパターンと同一になる。次に、処理がステップＳＰ９９に進むと、削除カウンタｄｅｌ＿ｃが「１」だけインクリメントされ「１」に設定される。そして、ステップＳＰ１００，ＳＰ１０１を介して処理が再びステップＳＰ１０２に進むと、優先順位ｐｒｘが「３」に設定される。
【００９１】
次に、処理がステップＳＰ９６に戻ると、優先順位ｐｒｘ（＝３）の打点ステップ（＝７）に打点が存在するか否かが判定される。図６(b)によれば、第７ステップに打点は存在するから「ＹＥＳ」と判定される。しかし、参照パターン（同図）にも対応する打点が存在するため、ステップＳＰ９７にあっては「ＹＥＳ」と判定され、ステップＳＰ１００，ＳＰ１０１を介して処理が再びステップＳＰ１０２に進む。
【００９２】
以下同様に、優先順位ｐｒｘが「２」および「１」である場合に、各々対応する打点ステップ（＝５および１）について同様の処理が繰返される。何れの場合も目的パターンには打点が存在するが、参照パターンにも対応する打点が存在するため、ステップＳＰ９７で「ＹＥＳ」と判定される。そして、処理が再びステップＳＰ１０１に進むと、優先順位ｐｒｘは最高位である「１」になっているから「ＹＥＳ」と判定され処理はステップＳＰ１０３に進む。
【００９３】
以上のように、ステップＳＰ９１〜１０２の処理においては、目的パターン（初期状態では図６(e)）と参照パターン（図６(b)）とが比較され、前者に有って後者に無い打点が、同図(f)の優先順位の逆順に従って、目的パターンから順次削除されてゆくことになる。
【００９４】
上記例にあっては、ステップＳＰ９１〜１０２の処理が終了した時点で、目的パターンの第３ステップにあった打点が削除され、目的パターンは参照パターンと同一になった。そして、これに伴って、削除カウンタｄｅｌ＿ｃの値すなわち削除された打点数は「１」に設定されたのである。
【００９５】
さて、ステップＳＰ１０３においては、優先順位ｐｒｘは再び最下位である「８」に設定される。次に、処理がステップＳＰ１０４に進むと、目的パターンの優先順位ｐｒｘ（＝８）の打点ステップ（＝２）に打点は存在するか否かが判定される。現時点の目的パターンは図６(b)と同様であり、第２ステップには打点が存在しない。従って、ここでは「ＮＯ」と判定され、処理はステップＳＰ１０７に進む。
【００９６】
ステップＳＰ１０７においては、全打点の削除が完了したか否か、換言すれば削除カウンタｄｅｌ＿ｃが打点削除数ｄｅｌ＿ｍａｘに達したか否かが判定される。現時点では、前者が「１」であるのに対して後者は「２」であるから「ＮＯ」と判定され、処理はステップＳＰ８８に進む。ここでは、優先順位ｐｒｘが「７」に設定され、処理がステップＳＰ１０４に戻る。
【００９７】
次に、優先順位ｐｒｘ（＝７）に対応する打点ステップ（＝４）に打点が存在するか否かが判定される。図６(b)によれば、第４ステップには打点は存在するから「ＹＥＳ」と判定され、処理はステップＳＰ１０５に進む。ここでは、目的パターンの該打点ステップ（＝４）の打点が削除される。この結果、目的パターンは図６(h)に示す通りになる。
【００９８】
次に、処理がステップＳＰ１０６に進むと、削除カウンタｄｅｌ＿ｃが「１」だけインクリメントされ「２」に設定される。これによって削除カウンタｄｅｌ＿ｃは打点削除数ｄｅｌ＿ｍａｘに達した。従って、次のステップＳＰ１０７においては「ＹＥＳ」と判定され本サブルーチン（図１１，１２）の処理は終了する。
【００９９】
図５に戻り、処理がステップＳＰ４８に進むと、最終的な目的パターン（上記例では図６(h)）が、曲テンプレートの処理対象小節の新たなリズムパターンとしてＲＡＭ２に記憶される。さらに、処理は図４のサブルーチンのステップＳＰ１７に戻り、未だリズムパターンが決定していない次の小節が検索される。
【０１００】
２．３．４．参照小節に基づかない打点の挿入または削除
ところで、図５のステップＳＰ３３〜ＳＰ４２のループにおいては、変数ｎが「０」〜「２」の範囲で変更されつつ参照小節が検索される。そして、変数ｎが「２」に設定された場合においても参照小節が検索できなかった場合（ステップＳＰ３９，ＳＰ４０で「ＮＯ」と判定された場合も含む）は、ステップＳＰ４１において「ＹＥＳ」と判定されることになる。
【０１０１】
次に、処理がステップＳＰ４５に進むと、ステップＳＰ３８と同様に、曲テンプレートの打点数は歌詞の音節数未満であるか否かが判定される。ここで「ＹＥＳ」と判定されると、処理はステップＳＰ４６に進み、図７のサブルーチンが呼び出される。
【０１０２】
図７の処理は、上述した図９，１０の処理においてステップＳＰ７６〜ＳＰ８３を除いたものと同様である。すなわち、目的パターンに追加される打点を決定するために参照小節は用いられず、打点優先順位表のみに基づいて追加する打点が決定されることになる。
例えば、目的パターンが図６(c)の通りであって、歌詞の音節数が「６」であったとすると、優先順位の高い順に第４ステップ、第６ステップおよび第８ステップに順次打点が追加され、目的パターンは同図(i)に示す通りになる。
【０１０３】
また、図５のステップＳＰ４５において「ＮＯ」と判定された場合は、処理はステップＳＰ４７に進み、図８に示すサブルーチンが呼び出される。図８の処理は、上述した図１１，１２の処理においてステップＳＰ９６〜ＳＰ１０３を除いたものと同様である。すなわち、目的パターンから削除される打点を決定するために参照小節は用いられず、打点優先順位表のみに基づいて削除される打点が決定されることになる。
例えば、目的パターンが図６(i)の通りであって、歌詞の音節数が「５」であったとすると、優先順位の最も低い第８ステップの打点が削除され、目的パターンは同図(j)に示す通りになる。
【０１０４】
３．実施形態の効果
以上説明したように本実施形態によれば、曲テンプレートの処理対象小節の打点数が歌詞の音節数と異なる場合に、歌詞の音節数に応じて処理対象小節の打点数が増減される。その際、処理対象小節の属する楽節と類似する楽節が存在した場合は、処理対象小節に対応する小節（参照小節）を定め、処理対象小節を参照小節に近づけるように打点の増減が行われる（ステップＳＰ７５〜ＳＰ８２およびＳＰ９５〜１０２）。
【０１０５】
そして、参照小節との対比による打点の増減によって全打点の挿入または削除ができなかった場合には、打点優先順位表に基づいて打点の増減が行われる（ステップＳＰ８３〜ＳＰ８８およびＳＰ１０３〜ＳＰ１０８）。
これにより、歌詞の音節数に応じた打点数を設定しながら楽節間の類似関係を保持することができ、ユーザの意図に沿ったメロディを作成することができる。
【０１０６】
４．変形例
本発明は上記実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
４．１．上記実施形態にあっては、処理対象小節が属する楽節の楽節記号と類似する楽節記号を有する楽節を検索し、検索された楽節において処理対象小節に対応する小節を参照小節とした。
しかし、参照小節はこれに限定されるものではなく、複数のパターンの中からユーザが任意に選択できるようにしてもよい。さらに、ユーザが参照小節自体を作成するようにしてもよい。このため、参照小節を選択する必要が生じたときに、「類似パターンの自動選択」、「任意パターンの選択」、「ユーザによる作成」等の選択肢を表示回路１２に表示させ、何れの方法で参照小節を決定するかをユーザが選択できるようにしておくと好適である。
【０１０７】
４．２．また、上記実施形態にあっては、メロディの各部分を小節単位に分割したため、第１の打点群は小節のリズムパターンであり、第２の打点群（参照パターン）は参照小節のリズムパターンであった。
しかし、メロディの分割態様は、小節毎に限られるものではなく、フレーズ単位や楽節単位に分割してもよいことは言うまでもない。
【０１０８】
４．３．また、上記実施形態にあっては、曲を単位としてテンプレートを選択したが、これに代えて楽節単位、フレーズ単位、その他任意の単位のテンプレートを用いてもよい。
【０１０９】
４．４．また、上記実施形態にあっては、歌詞の音節数を小書き文字（ぁ、ぃ、ぅ、ぇ、ぉ、っ、等）および「ん」以外のかな文字数をカウントして求めたが、音節数の算出方法はこれに限定されるわけではない。例えば、長音（ー）も一音節としてカウントしてもよい。この場合、例えば「あーかーいー」の音節数は「６」になり、長音に対して単独の音高を付与することが可能になる。また、全ての長音を一音節としてカウントするのではなく、一部の長音のみを一音節としてカウントしてもよい。
【０１１０】
４．５．上記実施形態はパーソナルコンピュータ上で実現されたが、これを電子楽器上で実現してもよいことは言うまでもない。また、本実施形態のプログラムを記憶する記録媒体として、外部記憶装置５はハードディスクドライブ、フロッピーディスクドライブ、ＣＤ−ＲＯＭドライブ、ＭＯドライブ等によって構成されたが、それ以外に半導体メモリ、磁気テープ、紙テープ、ＤＶＤ（デジタル多目的ディスク）等、情報を記憶できるものであればどのようなものを用いてもよい。
【０１１１】
４．６．また、上記実施形態のプログラムをネットワークのサーバ等の記録媒体に記憶させ、これに接続されるクライエントの要求に応じてプログラムをダウンロードしてもよい。
【０１１２】
４．７．また、上記実施形態にあっては入力された歌詞に対してメロディを付与することを想定していたが、歌詞を入力することなく、メロディを単独で生成するものに適用してもよい。この場合、音節数に代えて、音符数を入力すればよい。
【０１１３】
【発明の効果】
以上説明したようにこの発明によれば、歌詞の音節数と第１の打点群の打点数とが不一致である場合に、第１の打点群を第２の打点群に近づけるように、第１の打点群の打点を増加または減少させるから、ユーザの意図に沿ったメロディを作成することができる。
【図面の簡単な説明】
【図１】  一実施形態のブロック図である。
【図２】  一実施形態のデータ構造図である。
【図３】  一実施形態のメインルーチンのフローチャートである。
【図４】  一実施形態のサブルーチンのフローチャートである。
【図５】  一実施形態のサブルーチンのフローチャートである。
【図６】  一実施形態の動作説明図である。
【図７】  一実施形態のサブルーチンのフローチャートである。
【図８】  一実施形態のサブルーチンのフローチャートである。
【図９】  一実施形態のサブルーチンのフローチャートである。
【図１０】  一実施形態のサブルーチンのフローチャートである。
【図１１】  一実施形態のサブルーチンのフローチャートである。
【図１２】  一実施形態のサブルーチンのフローチャートである。
【図１３】  一実施形態の動作説明図である。
【符号の説明】
１……ＣＰＵ（打点増減手段、判定手段）、２……ＲＡＭ（第１および第２の打点記憶手段、音節・音符数記憶手段、優先順位記憶手段、類似関係記憶手段）、３……ＲＯＭ、４……タイマ回路、５……外部記憶装置（記録媒体）、６……インターフェース部、７……バス、８……鍵盤、９……検出回路、１０……スイッチ部、１１……検出回路、１２……表示回路、１３……音源回路、１５……サウンドシステム。
【図１】
0003775004.tif 000002
【図２】
0003775004.tif 000003
【図３】
0003775004.tif 000004
【図４】
0003775004.tif 000005
【図５】
0003775004.tif 000006
【図６】
0003775004.tif 000007
【図７】
0003775004.tif 000008
【図８】
0003775004.tif 000009
【図９】
0003775004.tif 000010
【図１０】
0003775004.tif 000011
【図１１】
0003775004.tif 000012
【図１２】
0003775004.tif 000013
【図１３】
0003775004.tif 000014