(57)【特許請求の範囲】
【請求項１】
対象曲に対して、所定のメロディ生成条件を満足するような所定区間における複数のメロディピッチを生成するメロディピッチ生成手段と、
該メロディピッチ生成手段によって生成されたメロディピッチを評価する評価手段と、
該評価手段による評価の結果、合格の評価を得たときには当該生成されたメロディピッチを採用する一方、不合格の評価を得たときには、当該生成されたメロディピッチが所定の基準を満足するか否かを判断し、該所定の基準を満足する場合には、当該生成された複数のメロディピッチの一部を修正した後に採用し、該所定の基準を満足しない場合には、前記所定区間におけるメロディピッチの再度の生成を前記メロディピッチ生成手段に指示するように制御する制御手段と
を有することを特徴とする自動作曲装置。
【請求項２】
対象曲に対して、所定のメロディ生成条件を満足するような所定区間における複数のメロディピッチを生成するメロディピッチ生成ステップと、
該メロディピッチ生成ステップによって生成されたメロディピッチを評価する評価ステップと、
該評価ステップによる評価の結果、合格の評価を得たときには当該生成されたメロディピッチを採用する一方、不合格の評価を得たときには、当該生成されたメロディピッチが所定の基準を満足するか否かを判断し、該所定の基準を満足する場合には、当該生成された複数のメロディピッチの一部を修正した後に採用し、該所定の基準を満足しない場合には、前記所定区間におけるメロディピッチの再度の生成を前記メロディピッチ生成ステップに指示するように制御する制御ステップと
を有する自動作曲方法をコンピュータに実行させるプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音楽に関する各種の条件に応じて自動的に作曲を行う自動作曲装置および記憶媒体に関する。
【０００２】
【従来の技術】
従来、音楽に関する各種の条件に応じて自動的に作曲を行う自動作曲装置として、たとえば特開平９−５０２７８号公報には、次の装置が開示されている。
【０００３】
すなわち、この自動作曲装置は、各種の既存曲の音楽的特徴を分析して抽出し、その分析・抽出結果を対応する既存曲の曲テンプレートとして演奏データメモリに記憶し、この記憶された各種の曲テンプレートのうちいずれかの曲テンプレートにユーザが適宜修正を加え、修正の加えられたものに基づいて自動的に作曲を行うように構成されている。
【０００４】
曲テンプレートに記載されるデータのうち、フレーズ毎のピッチに関するものには、たとえば、「フレーズのピッチパターン」、「フレーズの最初−最後音」等があり、これらのデータに基づいて当該フレーズ内の各音節に対するピッチを決定している。具体的には、「フレーズの最初−最後音」に度数（I,II,III,IV,V,VI,VII）が設定されているときには、対象フレーズの最初と最後の音節の音高を、当該度数に対応する音高に決定する一方、度数が設定されていないときには、対象フレーズの最初と最後の音節の音高を、曲テンプレートに記載されている「感情の起伏」に基づいて決定する。そして、対象フレーズの最初と最後の音節以外の音節の音高は、「フレーズのピッチパターン」にピッチパターンが設定されているときには、このピッチパターンに基づいて決定し、「フレーズのピッチパターン」にピッチパターンが設定されていないときには、「感情の起伏」に示されたグラフィックパターンに近似したピッチパターンを選択し、この選択されたピッチパターンに基づいて決定している。このようにしてメロディが生成されると、ユーザは、メロディに不都合がないかを実際に曲を聴くことにより判断し、不都合があるときには、そのメロディをマニュアルで修正していた。
【０００５】
また、特公昭６０−４００２７号公報には、ランダムに選択した音高を所定の音楽条件と比較し、この音楽条件と合致した場合にはその音高を採用し、合致しない場合には再度音高をランダムに選択してメロディを生成するように構成された自動作曲装置が開示されている。
【０００６】
【発明が解決しようとする課題】
しかし、上記従来の自動作曲装置のうち前者では、曲テンプレートに記載されているデータ、すなわちフレーズ毎のピッチに関するデータに沿ったメロディを生成できるものの、音楽的に不都合のあるメロディが生成される可能性があり、このようなメロディが生成された場合には、ユーザがマニュアルで修正を行う必要があり、面倒であった。
【０００７】
また、後者では、ランダムに選択した音高と所定の音楽条件とを比較して合致した音高のみを採用するが、必ずしも音楽的に不都合のないメロディばかりが生成されるとは限らなかった。すなわち、新たな音高を決定する際に、過去の音高および今回の音高しか考慮できず、次の音高との関係で音楽的に不都合のある音高が選択される可能性があった。
【０００８】
本発明は、この点に着目してなされたものであり、音楽的に不都合のないメロディを自動的に作曲することが可能な自動作曲装置および記憶媒体を提供することを目的とする。
【０００９】
【課題を解決するための手段】
【００１２】
上記目的を達成するため、請求項１に記載の自動作曲装置は、対象曲に対して、所定のメロディ生成条件を満足するような所定区間における複数のメロディピッチを生成するメロディピッチ生成手段と、該メロディピッチ生成手段によって生成されたメロディピッチを評価する評価手段と、該評価手段による評価の結果、合格の評価を得たときには当該生成されたメロディピッチを採用する一方、不合格の評価を得たときには、当該生成されたメロディピッチが所定の基準を満足するか否かを判断し、該所定の基準を満足する場合には、当該生成された複数のメロディピッチの一部を修正した後に採用し、該所定の基準を満足しない場合には、前記所定区間におけるメロディピッチの再度の生成を前記メロディピッチ生成手段に指示するように制御する制御手段とを有することを特徴とする。
【００２１】
上記目的を達成するため、請求項２に記載の記憶媒体は、対象曲に対して、所定のメロディ生成条件を満足するような所定区間における複数のメロディピッチを生成するメロディピッチ生成ステップと、該メロディピッチ生成ステップによって生成されたメロディピッチを評価する評価ステップと、該評価ステップによる評価の結果、合格の評価を得たときには当該生成されたメロディピッチを採用する一方、不合格の評価を得たときには、当該生成されたメロディピッチが所定の基準を満足するか否かを判断し、該所定の基準を満足する場合には、当該生成された複数のメロディピッチの一部を修正した後に採用し、該所定の基準を満足しない場合には、前記所定区間におけるメロディピッチの再度の生成を前記メロディピッチ生成ステップに指示するように制御する制御ステップとを有する自動作曲方法をコンピュータに実行させるプログラムを格納したことを特徴とする。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２７】
図１は、本発明の一実施の形態に係る自動作曲装置の概略構成を示すブロック図である。
【００２８】
同図に示すように、本実施の形態の自動作曲装置は、音高情報を入力するための鍵盤１と、各種情報を入力するための複数のスイッチ（ポインチングデバイスであるマウスを含む）を備えたパネルスイッチ２と、鍵盤１の各鍵の押鍵状態を検出する押鍵検出回路３と、パネルスイッチ２の各スイッチの押下状態を検出するスイッチ検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムやテーブルデータ等を記憶するＲＯＭ６と、演奏データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば大型液晶ディスプレイ（ＬＣＤ）若しくはＣＲＴ（Cathode Ray Tube）ディスプレイおよび発光ダイオード（ＬＥＤ）等を備えた表示装置９と、記憶媒体であるフロッピディスク（ＦＤ）２０をドライブするフロッピディスクドライブ（ＦＤＤ）１０と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するハードディスク（図示せず）をドライブするハードディスクドライブ（ＨＤＤ）１１と、前記制御プログラムを含む各種アプリケーションプログラムや各種データ等を記憶するコンパクトディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）２１をドライブするＣＤ−ＲＯＭドライブ（ＣＤ−ＲＯＭＤ）１２と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）信号を入力したり、ＭＩＤＩ信号を外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１３と、通信ネットワーク１０１を介して、たとえばサーバコンピュータ１０２とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１４と、鍵盤１から入力された演奏データや予め設定された演奏データ等を楽音信号に変換する音源回路１５と、該音源回路１５からの楽音信号に各種効果を付与するための効果回路１６と、該効果回路１６からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１７とにより構成されている。
【００２９】
上記構成要素３〜１６は、バス１８を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１３には他のＭＩＤＩ機器１００が接続され、通信Ｉ／Ｆ１４には通信ネットワーク１０１が接続され、音源回路１５には効果回路１６が接続され、効果回路１６にはサウンドシステム１７が接続されている。
【００３０】
ＨＤＤ１１のハードディスクには、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、このハードディスクに制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００３１】
ＣＤ−ＲＯＭドライブ１２のＣＤ−ＲＯＭ２１から読み出された制御プログラムや各種データは、ＨＤＤ１１内のハードディスクにストアされる。これにより、制御プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このＣＤ−ＲＯＭドライブ１２以外にも、外部記憶装置として、光磁気ディスク（ＭＯ）装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【００３２】
通信Ｉ／Ｆ１４は、上述のように、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク１０１に接続されており、該通信ネットワーク１０１を介して、サーバコンピュータ１０２に接続される。ＨＤＤ１１内のハードディスクに上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１４は、サーバコンピュータ１０２からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、自動作曲装置）は、通信Ｉ／Ｆ１４および通信ネットワーク１０１を介してサーバコンピュータ１０２へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ１０２は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク１０１を介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ１４を介して、これらプログラムやパラメータを受信してＨＤＤ１１内のハードディスクに蓄積することにより、ダウンロードが完了する。
【００３３】
この他、外部コンピュータ等との間で直接データのやりとりを行うためのインターフェースを備えてもよい。
【００３４】
図２および図３は、本実施の形態の自動作曲装置が実行する各種制御処理を視覚的に表した図である。以下、同図を参照して、この各種制御処理の概要を説明する。
【００３５】
図２において、まず、ユーザが、複数種類の全体作曲条件テンプレート（この全体作曲条件テンプレートは、たとえば前記ハードディスクに記憶されている）から１つを選択すると、当該テンプレートに記載されている全体作曲条件が設定（入力）される。全体作曲条件として設定される項目には、たとえば、楽節数、フレーズ数、小節数、拍子、調、曲の先頭ピッチ、曲の最後ピッチ、音域（最高音および最低音が与えられる）等があり、各テンプレートには、これらの項目に対応するデータが予め記載され、名称が付与されている。ユーザが、たとえば、前記マウスを用いて全体作曲条件を選択するモードを選択し、そのモード時に表示される「全体作曲条件」欄をクリックすると、前記テンプレート名が並んだポップアップメニューが表示される。この中から、ユーザがいずれかのテンプレート名を選択すると、その名称に対応するテンプレートに記載されている全体作曲条件が設定される。なお、作曲条件の各項目を個別に修正または入力できるようにしてもよい。
【００３６】
このようにして設定された全体作曲条件のうち、楽節数、フレーズ数および小節数に基づいて、構成テンプレートデータベース３１が検索され、当該条件に最も適合する構成テンプレートが選択されるか、または当該条件に適合する複数の構成テンプレートをユーザに提示し、いずれかをユーザに選択させる。ここで、構成テンプレートデータベース３１は、たとえば、前記ハードディスク上に構築されたデータベースであり、複数の構成テンプレートから構成されている。そして、各構成テンプレートに記載される構成データには、たとえば、各楽節に設定される楽節記号（後述する図１０参照）、サビ（bridge）楽節の位置および音節数等がある。なお、構成テンプレートデータベース３１から検索された構成テンプレートの構成データが、ユーザの意図するものと異なる場合には、ユーザは、他の候補から好みのものを選択することも、また、検索された構成テンプレートの構成データのうち、一部のデータを編集することもできるように構成されている。
【００３７】
このようにして生成された構成データ（ただし、音節数は除く）および前記全体作曲条件で設定された拍子に基づいて、メロディテンプレート・データベース３２が検索され、当該条件に最も適合したメロディテンプレートが選択される。メロディテンプレート・データベース３２は、たとえば、上記構成テンプレートデータベース３１と同様に、ハードディスク上に構築され、複数のメロディテンプレートから構成されている。各メロディテンプレートには、たとえば、メロディ骨格（本実施の形態では、全体骨格、楽節骨格およびフレーズ骨格からなり、全体骨格を最上位の階層として、以下、楽節骨格、フレーズ骨格の順で下位の階層になっている）、コード進行、メロディピッチおよびメロディ打点等の各データが記載されており、該各メロディテンプレートに記載のデータは、それぞれ、このままでも（すなわち、後述するように各種の変形を施さなくても）十分演奏可能なものとなっている。上述のようにして、メロディテンプレートが１つ検索されると、そのメロディテンプレートに記載された各データが設定（入力）される。なお、メロディテンプレートも、構成テンプレートと同様に、検索されたものがユーザの意図と異なるものであるときには、他の候補から好みのものを選択することができる。
【００３８】
このようにして、メロディテンプレートに記載された各データが入力されると、その中のピッチデータは、前記全体作曲条件で設定された調に応じて、移調や平行調への変換がなされ、その結果が、図３のメロディテンプレート変形処理部３３に供給される。また、ピッチデータ以外のデータは、そのままメロディテンプレート変形処理部３３に供給される。
【００３９】
メロディテンプレート変形処理部３３は、図３に示すように、リズムパターンデータ変形処理部３３ａと、コードデータ変形処理部３３ｂと、骨格データ変形処理部３３ｃと、メロディピッチデータ変形処理部３３ｄとによって構成されている。
【００４０】
リズムパターンデータ変形処理部３３ａは、検索されたメロディテンプレート中のリズムパターンがユーザの意図と異なる場合に、ユーザが設定した各種条件（その項目は、たとえば、アウフタクト（弱起）の有無、シンコペーションの有無、ハネ（付点音符）の有無、開始音長の長短、コンプレックス（難易度）のレベル等）に基づいて、リズムパターン特徴連結テーブル（上記各項目に対するデータ、すなわちリズムパターンの特徴を１小節毎に設定し、曲全体に亘って連結して構成したテーブル）を生成し、新たな打点データ（リズムパターンデータ）を生成する。打点とは、メロディの発音タイミングであり、１小節中の打点数は１小節中の音節数に相当する。このリズムパターン特徴連結テーブルの各特徴連結データに基づいて、リズムパターンデータベース３４が検索されて、１小節分のリズムパターンが選択される。そして、各小節のリズムパターンを曲全体に亘ってつなぎ合わせることにより、曲全体のリズムパターンデータが生成される。
【００４１】
また、ユーザが設定した音節数と前記選択されたメロディテンプレートの打点数とが異なる場合（前述のように、メロディテンプレートの検索には、音節数の情報は参照されないので、このような場合が生ずる）、またはユーザが設定した音節数と前記生成された曲全体のリズムパターンデータの打点数とが異なる場合に、音節数合わせがなされる。この音節数合わせにおいては、置き換えられるメロディテンプレート中のリズムパターン、または生成されたリズムパターンの特徴と同じ特徴を持ち、音節数の異なる他のリズムパターンを、リズムパターンデータベース３４を検索することにより選択し、音節数の増減を伴ったリズムパターンの置き換えを行う。
【００４２】
なお、ユーザが、マニュアル操作によって打点の時間軸移動や打点の増減を行う編集機能も設けられ、これにより、打点の時間軸が移動したり、その数が変わったときには、リズムパターンデータ変形処理部３３ａは、対応するリズムパターンデータを変形する。
【００４３】
コードデータ変形処理部３３ｂは、前記選択されたメロディテンプレートのコード進行がユーザの意図と異なる場合に、ユーザの編集指示に応じて、コードデータの変形を行う。
【００４４】
骨格データ変形処理部３３ｃは、前記選択されたメロディテンプレートの各階層の骨格データを、それぞれ個別に変形する処理と、すべての階層の骨格データに対して一括の編集処理とを行う。
【００４５】
メロディピッチデータ変形処理部３３ｄは、前記選択されたメロディテンプレートのメロディピッチデータを、ユーザが設定したダイナミクス、非コード音頻度および音楽ルールに基づいて、音楽ルールデータベース３５を参照しながら変形する。さらに、ユーザが、マニュアル操作によって打点の音階軸移動を指示したときには、それに応じたメロディピッチデータの変形も行う。この変形は、本実施の形態では、通常小節とピックアップ小節とで個別に行われるため、音楽ルールデータベース３５は、通常小節用とピックアップ小節用の２種類のデータベースによって構築されている。
【００４６】
このようにして、リズムパターンデータ変形処理部３３ａでは、リズムパターンデータの変形処理が、骨格データ変形処理部３３ｃでは、全体骨格データ、楽節骨格データおよびフレーズ骨格データの各骨格データの変形処理が、メロディピッチデータ変形処理部３３ｄでは、通常小節のメロディピッチデータおよびピックアップ小節のメロディピッチデータの変形処理が、それぞれ独立してなされる。これらの各変形処理に併せて、その処理結果（作曲の途中経過）が、前記表示装置９に表示される。
【００４７】
また、本実施の形態の自動作曲装置は、メロディピッチデータ変形処理部３３ｄによって変形され生成されたメロディピッチデータ（楽音データ）を再生し演奏する機能に加えて、骨格データ変形処理部３３ｃによって変形され生成された３階層の骨格データの楽音データを各階層毎に再生し演奏する機能を備えている。このため、ユーザがある階層の骨格演奏を指定すると、骨格データ変形処理部３３ｃで変形された骨格データからその骨格に対応するピッチデータ（楽音データ）が読み出されて再生され、前記サウンドシステム１７によって音響に変換される。一方、ユーザによってメロディ演奏が指示されると、上記変形されたメロディピッチデータからメロディに対応するピッチデータ（楽音データ）が読み出されて再生され、サウンドシステム１７によって音響に変換される。
【００４８】
本発明は、メロディテンプレート変形処理部３３が実行する上記３種類の主要な処理、すなわちリズムパターンデータ変形処理、骨格データ変形処理およびメロディピッチデータ変形処理のうち、メロディピッチデータ変形処理にその特徴を有している。以下、まず、メロディピッチデータ変形処理の概要を説明し、次に、図４〜図１５を参照して、メロディピッチデータ変形処理を詳細に説明する。
【００４９】
メロディピッチデータ変形処理は、次のようにして行われる。すなわち、
１）作曲すべき曲が通常小節のみによって構成されている場合
ａ）最小生成単位を１小節とし、当該１小節に与えられた最大２個の節点ピッチ、設定された作曲条件および当該小節のために別途生成されたリズムパターンに従ってメロディピッチを生成する
i)当該小節が同名・同類楽節内の小節のときには、参照小節と相似性を保って当該小節のメロディピッチを生成する
ii )当該小節が新規楽節内の小節のときには、新規に当該小節のメロディピッチを生成する
ｂ）生成された１小節分のメロディピッチに音楽的評価を行い、その結果、音楽的評価を満足しない場合には、処理ａ）に戻って再度処理ａ）を行う一方、音楽的評価を満足した場合には、次の処理ｃ）を行う
ｃ）１小節に対するメロディピッチ生成処理ａ）を１フレーズ分繰り返し、当該フレーズのメロディピッチを生成する
ｄ）生成された１フレーズ分のメロディピッチに音楽的評価を行い、その結果、音楽的評価を満足しない場合には、処理ａ）に戻って再度処理ａ），ｂ）およびｃ）を行う一方、音楽的評価を満足した場合には、次の処理ｅ）を行う
ｅ）１フレーズに対するメロディピッチ生成処理ｃ）およびｄ）を全フレーズ分繰り返し、曲全体のメロディピッチを生成する
２）作曲すべき曲にピックアップ小節（ある小節の後半に次フレーズに含まれる音が食い込んでいる場合、この食い込み部分を次フレーズのピックアップ小節と呼ぶ）が含まれている場合
ａ）通常小節に対しては、上記１）ａ）〜ｄ）の処理を行い、その後、ピックアップ小節に対して次の処理を行う
ｂ）当該ピックアップ小節のために別途生成されたリズムパターン、直前フレーズの最後打点ピッチ、当フレーズのピックアップ小節の次に位置する小節の先頭打点ピッチおよび当該ピックアップ小節の音節数に従って、当ピックアップ小節に対するピッチカーブを決定する
ｃ）決定されたピッチカーブに沿って、当ピックアップ小節のメロディピッチを生成する
ｄ）処理ｂ）およびｃ）をすべてのピックアップ小節に対して個別に行う
ｅ）処理ａ）によって生成された通常小節のメロディピッチに処理ｄ）によって生成されたすべてのピックアップ小節のメロディピッチを結合して、曲全体のメロディピッチを生成する
ここで、「同名楽節」とは、当該楽節より前の楽節に同名の楽節記号が設定された楽節があるときの当該楽節をいい、「同類楽節」とは、当該楽節より前の楽節に同類（本実施の形態では、「′同類」と「″同類」の２種類がある）の楽節記号が設定された楽節があるときの当該楽節をいい、「新規楽節」とは、「同名楽節」または「同類楽節」のいずれでもない楽節をいう。そして、「楽節記号」とは、各楽節に設定され、各楽節相互の関係を示す記号（たとえば図１０では、第１〜４楽節にそれぞれ設定された“Ａ”，“Ａ′”，“Ｂ”，“Ｃ”）をいう。図１０の例では、「新規楽節」は、“Ａ”，“Ｂ”および“Ｃ”が設定された第１、第３および第４楽節であり、「同類楽節」は、“Ａ′”が設定された第２楽節である。なお、図１０の例には、「同名楽節」は設定されていない。さらに、「参照小節」とは、参照楽節（対象楽節より前の同名または同類の楽節）の同番フレーズの同番小節をいう。
【００５０】
さらに、上記処理１）ａ）では、具体的に、次のようにして１小節のメロディピッチを生成する。すなわち、
１）最小限の作曲条件（たとえば、前記ダイナミクス）、音楽ルールおよび対象打点の直前打点のピッチに従って、比較的緩い条件で節点ピッチ以外のピッチを１打点ずつ順次決定する
２）１小節分のメロディピッチが生成されたときには、前記条件よりも若干厳しい音楽的評価（＝前記１打点のピッチ決定の際の条件には含まれていなかった種類の作曲条件や音楽ルールをも満足するか否かの判定）を行い、音楽的評価を満足する場合は、生成された１小節分のメロディピッチを採用し、音楽的評価を満足しない場合は、最初の処理１）に戻って、当該小節のメロディピッチ生成を再度行う
３）上記処理１）ｃ）によって、１フレーズ分のメロディピッチを生成し、処理１）ｄ）によって、さらに厳しい音楽的評価（前記小節の音楽的評価には含まれていなかった種類の作曲条件や音楽ルールをも満足するか否かの判定）を行う
ａ）音楽的評価を満足する場合
生成された１フレーズ分のメロディピッチを採用する
ｂ）音楽的評価を満足しない場合
i)個々の打点のピッチを修正することにより音楽的評価を満足することができる場合には、その修正を行う
ii )個々の打点のピッチを修正するのみでは音楽的評価を満足することができない、またはかなり多くの修正を必要とする場合には、最初の処理１）に戻って、当該フレーズの各小節毎のメロディピッチ生成を再度行う
次に、メロディピッチデータ変形処理を詳細に説明する。
【００５１】
図４は、通常小節メロディピッチ生成処理の詳細な手順を示すフローチャートであり、上記メロディピッチ変形処理１）を実現したものである。
【００５２】
同図において、まず、楽節数をカウントするために前記ＲＡＭ７の所定領域に確保されたソフトカウンタである楽節カウンタを“１”に初期設定する（ステップＳ１）。
【００５３】
次に、フレーズ数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタであるフレーズカウンタを“１”に初期設定し（ステップＳ２）、同様に、小節数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである小節カウンタを“１”に初期設定する（ステップＳ３）。
【００５４】
次に、当小節が新規楽節内の小節であるか否かを判別し（ステップＳ４）、新規楽節内の小節であるときには、当小節のメロディ新規作成処理サブルーチン（このサブルーチンは、後述する図６のフレーズ骨格節点を重要打点に割り当てる処理および図７の重要打点間の打点ピッチを生成する処理によって構成される）を実行した（ステップＳ５）後に、ステップＳ２１に進む一方、新規楽節内の小節でないとき、すなわち同名・同類楽節内の小節であるときにはステップＳ６に進む。
【００５５】
ステップＳ６では、当小節の骨格は参照小節の骨格と同一であるか否かを判別し、同一のときにはステップＳ７に進み、当小節のコードは参照小節のコードと同一であるか否かを判別する。
【００５６】
ステップＳ７で、両小節のコードが同一のときにはステップＳ８に進む一方、前記ステップＳ６で両小節の骨格が同一でないとき、または、前記ステップＳ７で両小節のコードが同一でないときには前記ステップＳ５に進み、前記当小節のメロディ新規作成処理サブルーチンを実行する。
【００５７】
ステップＳ８では、両小節のリズムパターンが同一か否かを判別し、同一のときには、当小節のメロディを参照小節と同一とする（ステップＳ９）一方、同一でないときには、当小節と参照小節の同一打点のピッチは同一とし、新規打点のピッチは新たに生成した（ステップＳ１０）後、ステップＳ２１に進む。
【００５８】
ステップＳ５またはＳ１０により１小節分のメロディピッチが生成された後、ステップＳ２１では１小節分のメロディピッチの音楽的評価サブルーチン（その一例は、図９を用いて後述する）を実行する。続くステップＳ２２では、生成された１小節分のメロディピッチがステップＳ２１の音楽的評価を満足しているか否を判別し、満足している場合には、ステップＳ１１に進み、満足していない場合には、ステップＳ４に戻って当該小節のメロディピッチの生成をやり直す。  続くステップＳ１１では、全小節に対して、ステップＳ４〜Ｓ１０の処理を終了したか否かを判別し、まだ処理すべき小節が残っているときには、小節カウンタを“１”だけインクリメントした（ステップＳ１２）後に前記ステップＳ４に戻って上述の処理を繰り返す一方、全小節に対して処理を終了したときにはステップＳ１３に進む。
【００５９】
ステップＳ１３では、音楽的評価処理サブルーチン（その一例は、図８を用いて後述する）を実行し、続く図５のステップＳ１４では、音楽的評価を満足しているか否かを判別する。
【００６０】
ステップＳ１４で、音楽的評価を満足していないときには、ステップＳ１５で、修正可能か否かを判別する。ここで、修正可能か否かの判別は、たとえば次のようにして行う。
【００６１】
すなわち、音楽的評価を満足させるために修正すべき小節数が所定個以上、または修正すべき打点数が所定個以上あれば修正不可能（所定個未満であれば修正可能）と判断する。または、ある小節やある打点について音楽的評価を満足させるための修正を行った場合に、新たな音楽的不具合が生じたときには修正不可能（音楽的不具合が生じないときには修正可能）と判断する。なお、これら以外の判断基準により修正可能か否かを判別するようにしもよい。
【００６２】
このステップＳ１５での判別の結果、修正可能であるときには、音楽ルールに従って修正が必要な小節の打点のピッチを修正する（ステップＳ１６）。そして、全フレーズに対して、前記ステップＳ３〜Ｓ１６の処理を終了したか否かを判別し（ステップＳ１７）、まだ処理すべきフレーズが残っているときには、フレーズカウンタを“１”だけインクリメントした（ステップＳ１８）後に前記ステップＳ３に戻り、上述の処理を繰り返す。
【００６３】
一方、ステップＳ１４で、音楽的評価を満足しているときには、ステップＳ１５およびＳ１６をスキップしてステップＳ１７に進む。さらに、ステップＳ１５で、修正可能でないときには、前記ステップＳ３に戻って、再度当フレーズの全小節に対するメロディピッチ生成処理を再度行う。
【００６４】
続くステップＳ１９では、全楽節に対して、前記ステップＳ２〜Ｓ１８の処理を終了したか否かを判別し、まだ処理すべき楽節が残っているときには、楽節カウンタを“１”だけインクリメントした（ステップＳ２０）後に、前記ステップＳ２に戻り、上述の処理を繰り返す一方、全楽節に対して処理を終了したときには、本通常小節メロディピッチ生成処理を終了する。
【００６５】
図６は、前記ステップＳ５の当小節のメロディ新規作成処理サブルーチンを構成するフレーズ骨格節点を重要打点に割り当てる処理の詳細な手順を示すフローチャートである。ここで、フレーズ骨格節点とは、前記骨格データ変形処理部３３ｃによって変形され生成された、フレーズ骨格を形成する節点をいい、その節点の個数は、本実施の形態では、各小節毎に最大２個とする。
【００６６】
以下、本フレーズ骨格節点を重要打点に割り当てる処理を、フローチャートに基づいて詳細に説明する前に、そのアルゴリズムを説明する。
【００６７】
本処理は、次のようなアルゴリズムによって構成されている。すなわち、
１）フレーズ骨格節点の重要打点への割り当ては、通常小節についてのみ行い、ピックアップ小節については行わない
２）フレーズ骨格節点は、本実施の形態では、１小節に対して２つ生成するようにしているので、１小節に対して２つの重要打点（第１および第２重要打点）を検出し、各重要打点に対してそれぞれ生成したフレーズ骨格節点を割り当てる（ただし、音節数が“０”の小節には、そもそも重要打点がないので、本処理を行わず、音節数が“１”の小節には、重要打点が１つしかないので、この１つの重要打点に対して生成したフレーズ骨格節点の１つを割り当てる）
第１重要打点は、次のようにして検出する。すなわち、
１）優先順位１：原則として、小節の先頭打点を第１重要打点として検出する２）優先順位２：小節の先頭打点が短音で、第２打点が長音の場合には、その第２打点を第１重要打点として検出する
第２重要打点は、次のようにして検出する。すなわち、
１）優先順位１：当小節がフレーズの最後小節の場合には、当小節の最後打点を第２重要打点として検出する
２）優先順位２：第３拍目の打点を第２重要打点として検出する
３）優先順位３：第３拍目の打点の直前または直後の打点を第２重要打点として検出する
４）優先順位４：長音が割り当てられている打点を第２重要打点として検出する
次に、本フレーズ骨格節点を重要打点に割り当てる処理を、フローチャートに基づいて説明する。
【００６８】
図６において、まず、当小節がピックアップ小節であるか否かを判別し（ステップＳ３１）、ピックアップ小節でないとき、すなわち通常小節のときには、当小節の音節数が“０”であるか否かを判別する（ステップＳ３２）。
【００６９】
ステップＳ３２で、当小節の音節数≠０のときには、上記優先順位に従って当小節のリズムパターンの第１重要打点を検出し（ステップＳ３３）、次いでフレーズ骨格の第１節点ピッチを第１重要打点に割り当てる（ステップＳ３４）。
【００７０】
一方、ステップＳ３１で当小節がピックアップ小節であるとき、または、ステップＳ３２で当小節の音節数＝０のときには、本フレーズ骨格節点を重要打点に割り当てる処理を終了する。
【００７１】
続くステップＳ３５では、当小節の音節数が“１”であるか否かを判別し、当小節の音節数＝１のときには、本フレーズ骨格節点を重要打点に割り当てる処理を終了する一方、当小節の音節数≠１のときには、前記優先順位に従って当小節のリズムパターンの第２重要打点を検出し（ステップＳ３６）、次いでフレーズ骨格の第２節点ピッチを第２重要打点に割り当てた（ステップＳ３７）後に、本フレーズ骨格節点を重要打点に割り当てる処理を終了する。
【００７２】
図１０は、通常小節に対して生成されたメロディピッチの一例を示す図である。図中、塗りつぶされた四角形と白抜きされた四角形の２種類の四角形が記載されている。塗りつぶされた四角形は、上述のようにして、当該小節内の重要打点として検出され、フレーズ骨格の節点ピッチが割り当てられた打点を示している。白抜きされた四角形は、次に示す重要打点間の打点ピッチを生成する処理によってピッチが生成された打点を示している。
【００７３】
このように、フレーズ骨格の節点ピッチが重要打点のピッチに割り当てられるので、生成されるメロディに骨格を反映することができる。
【００７４】
図７は、前記ステップＳ５の当小節のメロディ新規作成処理サブルーチンを構成する重要打点間の打点ピッチを生成する処理の詳細な手順を示すフローチャートである。本処理を、フローチャートに基づいて詳細に説明する前に、そのアルゴリズムを説明する。
【００７５】
本処理は、次のようなアルゴリズムによって構成されている。すなわち、
１）重要打点間の打点ピッチの生成は、通常小節についてのみ行い、ピックアップ小節については行わない
２）重要打点間を１区間として、当該区間中まだピッチが生成されていない打点（重要打点以外の打点）のピッチを生成する
３）当小節の全区間に対して、処理２）を実行する
上記処理２）は、具体的には、次のようにして行う。すなわち、
１）当区間の先頭節点ピッチと最後節点ピッチとを取得する
２）処理１）によって取得された先頭節点ピッチ、最後節点ピッチおよび前記設定されたダイナミクスによって当区間の最高音リミットと最低音リミットとを決定する
３）その最高音リミットと最低音リミットとの間で、まだピッチが生成されていない打点のピッチを順にランダムに決定して行く
次に、本重要打点間の打点ピッチを生成する処理を、フローチャートに基づいて説明する。
【００７６】
図７において、まず、当小節がピックアップ小節であるか否かを判別し（ステップＳ４１）、ピックアップ小節のときには、本重要打点間の打点ピッチを生成する処理を終了する一方、ピックアップ小節でなく通常小節のときにはステップＳ４２に進む。
【００７７】
ステップＳ４２では、当小節の音節数が“０”であるか否かを判別し、当小節の音節数＝０のときには、本重要打点間の打点ピッチを生成する処理を終了する一方、当小節の音節数≠０のときにはステップＳ４３に進む。
【００７８】
ステップＳ４３では、区間数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである区間カウンタを“１”に初期設定し、続くステップＳ４４では、当区間の先頭節点ピッチと最後節点ピッチを取得する。
【００７９】
そして、このようにして取得された当区間の先頭節点ピッチ、最後節点ピッチおよび設定されたダイナミクスに基づいて、当区間の最高音リミットと最低音リミットを決定する（ステップＳ４５）。
【００８０】
図１１は、当区間の最高音リミットと最低音リミットを決定する処理を説明するための図である。当区間、すなわち先頭節点ピッチｐ１および最後節点ピッチｐ２間の区間の最高音リミットと最低音リミットは、図中、網掛けされた領域で示されるように、設定されたダイナミクスの値に応じて決定する。すなわち、
（ａ）ダイナミクス＝０：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）に決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）に決定する
（ｂ）ダイナミクス＝１：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）より、たとえば１度低いピッチに決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）より、たとえば１度高いピッチに決定する
（ｃ）ダイナミクス＝２：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）より、たとえば３度低いピッチに決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）より、たとえば３度高いピッチに決定する
（ｄ）ダイナミクス＝３：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）より、たとえば５度低いピッチに決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）より、たとえば５度高いピッチに決定する
図７に戻り、当区間の打点数をカウントするためにＲＡＭ７の所定領域に確保されたソフトカウンタである打点カウンタを“１”に初期設定する（ステップＳ４６）。
【００８１】
次に、当区間の最高音リミットと最低音リミットの音域内で、当打点のピッチをランダムに決定する（ステップＳ４７）。ただし、この場合のランダムとは、次のように条件付きランダムである。すなわち、
（ａ）ダイナミクス＝０：当打点と直前打点との音程が±３度以内となるように、当打点のピッチをランダムに決定する
（ｂ）ダイナミクス＝１：当打点と直前打点との音程が±４度以内となるように、当打点のピッチをランダムに決定する
（ｃ）ダイナミクス＝２：当打点と直前打点との音程が±４度以内となるように、当打点のピッチをランダムに決定する
（ｄ）ダイナミクス＝３：当打点と直前打点との音程が±８度以内となるように、当打点のピッチをランダムに決定する
続くステップＳ４８では、当区間の全打点に対してステップＳ４７の処理を終了したか否かを判別し、処理すべき打点がまだ残っているときには、打点カウンタを“１”だけインクリメントした（ステップＳ４９）後に、前記ステップＳ４７に戻って上述の処理を繰り返し、全打点に対して処理を終了したときにはステップＳ５０に進む。
【００８２】
ステップＳ５０では、全区間に対して、ステップＳ４４〜Ｓ４９の処理を終了したか否かを判別し、処理すべき区間が残っているときには、区間カウンタを“１”だけインクリメントした（ステップＳ５１）後に、前記ステップＳ４４に戻り、上述の処理を繰り返す一方、全区間に対して処理を終了したときには、本重要打点間の打点ピッチを生成する処理を終了する。
【００８３】
次に、前記ステップＳ１３のフレーズの音楽的評価処理サブルーチンで実行される音楽的評価を説明する。音楽的評価の例としては、次のものがある。すなわち、
１）長調のIコードまたは短調のIIIコードの第４音（アボイド・ノート）は、順次進行以外禁止になっているか
２）フレーズ最後のV７コードからIコードへの進行時、終止感を重視したメロディの流れとなっているか
３）非コード音からの３度以上の跳躍は抑制されているか
４）メジャーコード内の５th→７th→１stまたは１st→７th→５thの進行は禁止となっているか
５）３度以上の跳躍が連続する場合には、コード音となっているか
６）３打点で５度以上跳躍する場合には、後半２打点がコード音となっているか
７）ドリアンスケールの６th音は、順次進行以外禁止になっているか
図８は、上記音楽的評価例１）に基づいて音楽的評価を行うフレーズの音楽的評価処理サブルーチンの詳細な手順を示すフローチャートである。
【００８４】
同図において、まず、当フレーズの調が長調であるか否かを判別し（ステップＳ６１）、長調でないときには、本フレーズの音楽的評価処理を終了する一方、長調のときにはステップＳ６２に進む。
【００８５】
ステップＳ６２では、打点カウンタを“１”に初期設定し、続くステップＳ６３では、直前打点、当打点および直後打点の各ピッチを取得する。
【００８６】
そして、ステップＳ６３で取得した３打点のコードは“I”であるか否かを判別し（ステップＳ６４）、I のときには、当打点が第４音であるか否かを判別する（ステップＳ６５）。
【００８７】
ステップＳ６５で、当打点が第４音のときには、上記３打点は順次進行か否かを判別する（ステップＳ６６）。その結果、順次進行のときにはステップＳ６７に進み、全打点に対して前記ステップＳ６３〜Ｓ６６の処理を終了したか否かを判別し、処理すべき打点が残っているときには、打点カウンタを“１”だけインクリメントした（ステップＳ６８）後に、前記ステップＳ６３に戻って上述の処理を繰り返す一方、全打点に対して処理を終了したときには、評価を合格として（ステップＳ６９）、本フレーズの音楽的評価処理を終了する。
【００８８】
一方、ステップＳ６４で、３打点のコードが“I”でないとき、または、ステップＳ６５で、当打点が第４音でないときには、ステップＳ６６をスキップしてステップＳ６７に進む。
【００８９】
さらに、ステップＳ６６で、３打点が順次進行でないときには、評価を不合格として（ステップＳ７０）、本フレーズの音楽的評価処理を終了する。
【００９０】
次に、前記ステップＳ２１の小節の音楽的評価処理サブルーチンで実行される音楽的評価の例を説明する。小節の音楽的評価としては、当該小節内で完結する条件（前後の小節との関連性がない条件）が適する。たとえば、当該小節内に含まれる非コード音の頻度や、当該小節内に含まれる音の音域（最低音から最高音までの幅）などがある。
【００９１】
図９は、前記設定された非コード音頻度（図３参照）のレベルに基づいて音楽的評価を行った小節の音楽的評価処理サブルーチンの詳細な手順を示すフローチャートである。
【００９２】
同図において、まず、当フレーズ内の非コード音の数を検出し、当フレーズ内の全打点に対する頻度（％）を算出する（ステップＳ８１）。
【００９３】
次に、非コード音設定レベルを判別し、次のように分岐する。すなわち、
１）非コード音設定レベル＝０；ステップＳ８２→Ｓ８７
２）非コード音設定レベル＝１；ステップＳ８２→Ｓ８３→Ｓ８８
３）非コード音設定レベル＝２；ステップＳ８２→Ｓ８３→Ｓ８４
ステップＳ８７では、非コード音の頻度が０％であるか否かを判別し、頻度＝０のときには、評価を合格とする（ステップＳ８５）一方、頻度≠０のときには、評価を不合格とする（ステップＳ８６）。
【００９４】
ステップＳ８８では、非コード音の頻度が２０〜５０％であるか否かを判別し、２０≦頻度≦５０のときには、評価を合格とする（ステップＳ８５）一方、頻度＜２０または５０＜頻度のときには、評価を不合格とする（ステップＳ８６）。
【００９５】
ステップＳ８４では、非コード音の頻度が５１％以上であるか否かを判別し、頻度≧５１のときには、評価を合格とする（ステップＳ８５）一方、頻度＜５１のときには、評価を不合格とする（ステップＳ８６）。
【００９６】
図１２は、ピックアップ小節メロディピッチ生成処理の詳細な手順を示すフローチャートであり、前記メロディピッチ変形処理２）ｂ）〜ｄ）を実現したものである。
【００９７】
同図において、まず、前記ステップＳ１と同様にして、楽節カウンタを“１”に初期設定し（ステップＳ９１）、前記ステップＳ２と同様にして、フレーズカウンタを“１”に初期設定する（ステップＳ９２）。
【００９８】
次に、当フレーズにピックアップ小節があるか否かを判別し（ステップＳ９３）、ピックアップ小節がないときにはステップＳ１０６に進み、ステップＳ１０６〜Ｓ１０９で、前記ステップＳ１７〜Ｓ２０と同様の処理を実行する一方、ピックアップ小節があるときには、図１３のステップＳ９４に進む。
【００９９】
ステップＳ９４では、当楽節が新規楽節か否かを判別し、新規楽節のときには、当ピックアップ小節のピッチカーブを、作曲条件や音域等に従ってランダムに選択した（ステップＳ９５）後にステップＳ１０１に進み、当ピックアップ小節のメロディを、選択されたピッチカーブと設定されたコードに従って生成する。
【０１００】
図１４は、選択される各種ピッチカーブの一例を示す図であり、これら各種ピッチカーブは、たとえば前記図３の音楽ルールデータベース３５に予め登録されている。
【０１０１】
上記ステップＳ９５の処理では、図１４のような各種ピッチカーブから設定された作曲条件や音域等に応じて選択された複数個の候補から、ランダムに１つが選択される。たとえば、前フレーズの最後音から当フレーズの先頭音への進行パターン（作曲条件の一例）として、「上行進行」および「フレーズ先頭音へ順次進行」が設定されているときには、ピッチカーブは、「順次上行進行」中のパターン番号０１０のピッチカーブおよび「アルペジック上行進行」のパターン番号０３０のピッチカーブがその候補として選択され、そのうち１つのピッチカーブがランダムに選択されて、当小節のピッチカーブに決定される。
【０１０２】
図１３に戻り、ステップＳ９４で、当楽節が新規楽節でないとき、すなわち同名・同類楽節のときには、参照小節と音節数が同一であるか否かを判別する（ステップＳ９６）。その結果、音節数が同一のときには、当ピックアップ小節のピッチカーブを参照小節と同一のピッチカーブとした（ステップＳ９７）後に、ステップＳ９９に進む一方、音節数が異なっているときには、音節数等に従って、参照小節と相似のピッチカーブを選択して当ピックアップ小節のピッチカーブとした（ステップＳ９８）後に、前記ステップＳ１０１に進む。
【０１０３】
ステップＳ９９では、参照小節とコードが同一か否かを判別し、コードが同一のときには、当ピックアップ小節のメロディを参照小節と同一にする（ステップＳ１００）一方、コードが異なっているときにはステップＳ１０１に進み、前述のように、当ピックアップ小節のメロディを、選択されたピッチカーブと設定されたコードに従って生成する。
【０１０４】
続くステップＳ１０２では、前記ステップＳ１３と同様にして、音楽的評価を行い、その結果、当フレーズが音楽的評価を満足しているか否かを判別する（ステップＳ１０３）。
【０１０５】
ステップＳ１０３以降の処理は、前記ステップＳ１４以降の処理と同様であるので、その説明を省略する。
【０１０６】
このように、本実施の形態では、緩い第１のメロディ生成条件、すなわち設定されたダイナミクスや音節数等でフレーズ全体のメロディピッチを生成した（特に、ステップＳ５の当小節のメロディ新規作成処理における処理）後、生成されたメロディピッチを、より厳しい第２のメロディ生成条件、すなわち各種音楽ルールによって評価する（特に、ステップＳ１３の音楽的評価処理における処理）ようにしたので、ある音高（ピッチ）に着目したとき、過去の音高だけでなく次の音高をも考慮して音楽的に満足するか否かを判断することができ、したがって、曲全体に亘って音楽的に不都合のない曲を作曲することができる。さらに、第１段階として、緩いメロディ生成条件に合致した音高のみが採用されたメロディが生成されているので、第２段階の評価で不合格になる確率が低く、効率のよいメロディ生成を行うことができる。
【０１０７】
また、厳しいメロディ生成条件で評価した結果、合格したものは採用する一方、不合格したものであっても、修正できるものであれば、修正して採用し、修正できないものであれば、はじめに戻ってメロディピッチの再生成を行うようにしたので、不合格のメロディであっても多少の修正により合格する可能性があり、したがって、効率のよいメロディ生成を行うことができる。
【０１０８】
さらに、通常小節のメロディピッチとピックアップ小節のメロディピッチとを個別に生成するようにしたので、多彩で音楽的に満足するピックアップ小節のメロディを生成することができる。
【０１０９】
図１５は、前記表示装置９上に表示されたメロディピッチの一例であり、上述のようにして、生成されたメロディピッチをピアノロール譜状に表示したものである。
【０１１０】
一般的なピアノロール譜は、半音を含んだ１オクターブ１２音表示としているが、本実施の形態では、同図に示すように、調の音階音のみの１オクターブ７音表示とし、別途に＃／♭の選択表示欄（上段が＃を示し、下段が♭を示す）を設け、表示スペースを節約するとともに、表示したメロディのメロディラインを見易くしている。特に、＃／♭の有無により、メロディのピッチが調の音階音であるか否かが一目で分かる。また、フレーズ区間を非小節単位の黒塗りのバーで表示して、フレーズ単位でのメロディラインを一層見易くしている。これにより、特に曲にピックアップ小節（小節“０”で示されている）が含まれているときには、ユーザはフレーズの始まりと終わりとを容易に認識することができる。なお、図１５では、図面上の制約から、バーの色は黒としたが、実際にはこれに限らず、どのような色で表示してもよい。
【０１１１】
また、同図においては縦軸のメモリの表示を“Ｃ５”，“Ｂ５”等の音高で表示したが、ドレミファソラシドの階名で表示してもよく、調が変わっても表記が変化しない移動ド唱法で表示すれば、どの調であっても常にわかりやすい表示がなされる。また、曲の途中で転調があり、１つの表示画面上で複数の調が存在する場合、縦軸のメモリの表示を該転調位置にも表示するようにしてもよい。
【０１１２】
なお、生成されたメロディピッチをこのピアノロール譜上で編集してもよい。たとえば、マウスのドラッグ操作等により打点の位置や打点のピッチを修正できるようにしてもよく、またはマウスのクリック操作等により打点の位置や打点のピッチを修正できるようにしてもよく、またはマウスのクリック操作等により＃／♭の付与や消去ができるようにしてもよい。
【０１１３】
なお、本実施の形態では、メロディ骨格データをテンプレート中に記憶し、必要に応じて変形をした後に該メロディ骨格データのピッチを重要打点に割り当てるようにしたが、これに限らず、所定のアルゴリズムに基づいてメロディ骨格データを生成し、必要に応じて変形をした後に、該メロディ骨格のピッチを重要打点に割り当てるようにしてもよい。また、変形の際は、所定アルゴリズムに基づいて変形を施してもよいし、ユーザの操作（たとえば、メロディ骨格データを表示画面に表示しておき、該表示画面上でマウスのドラッグ操作を行う等）により変形を施してもよい。
【０１１４】
また、本実施の形態では、全体骨格、楽節骨格、フレーズ骨格という階層構造をもつメロディ骨格データを基にメロディピッチデータを生成するようにしたが、このような階層構造を持たないメロディ骨格データ、たとえばフレーズ骨格データのみを１曲分持ったものを基にメロディピッチデータを生成するようにしてもよい。
【０１１５】
次に、他の実施の形態に係る自動作曲装置を説明する。
【０１１６】
前記実施の形態では、重要打点間の打点ピッチを生成するときに、先頭節点ピッチと最後節点ピッチの音程が小さい（極端には、音程が“０”）場合には、当区間の最高音リミットと最低音リミットの幅が狭く決定されるため、生成される打点ピッチ間の音程は小さくなり過ぎ、この結果、単調なメロディしか得られなくなってしまう。これを補うために、当区間の最高音リミットと最低音リミットの幅を単純に広げると、今度は逆に先頭節点ピッチと最後節点ピッチの音程が大きい場合に、当区間の最高音リミットと最低音リミットの幅が広くなり過ぎてしまう。本実施の形態は、この不具合を解消するためになされている。
【０１１７】
本実施の形態の自動作曲装置は、前記実施の形態の自動作曲装置に対して、重要打点間の打点ピッチを生成する処理（図７参照）の一部、すなわち、同図のステップＳ４５中の「当区間の最高音リミットと最低音リミットを決定する」方法が異なっている。より具体的には、前記実施の形態では、前述したように、当区間の先頭節点ピッチおよび最後節点ピッチの各値とダイナミクスに応じて当区間の最高音リミットと最低音リミットが決定されるのに対して、本実施の形態では、先頭節点ピッチおよび最後節点ピッチの各値とダイナミクスに、先頭節点ピッチと最後節点ピッチの音程を加味し、これらに応じて当区間の最高音リミットと最低音リミットが決定される点が異なっている。
【０１１８】
本実施の形態の重要打点間の打点ピッチを生成する処理は、図７のステップＳ４５を図１６のステップＳ４５ａおよびＳ４５ｂで置き換えることにより実現できる。すなわち、図１６において、まず、先頭節点ピッチと最後節点ピッチとの音程Ｐｄｉｆを算出し（ステップＳ４５ａ）、この算出された音程Ｐｄｉｆと、先頭節点ピッチと、最後節点ピッチと、設定されたダイナミクスにより当区間の当区間の最高音リミットと最低音リミットを決定する（ステップＳ４５ｂ）。
【０１１９】
図１７は、当区間の最高音リミットと最低音リミットを決定する処理を説明するための図であり、前記図１１に対応するものである。当区間、すなわち先頭節点ピッチｐ１および最後節点ピッチｐ２間の区間の最高音リミットと最低音リミットは、図中、網掛けされた領域で示されるように、音程Ｐｄｉｆ（＝｜ｐ２−ｐ１｜；単位は度数）と設定されたダイナミクスの値に応じて決定する。すなわち、
１）Ｐｄｉｆ≦２
ａ）ダイナミクス＝０：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）より、たとえば３度低いピッチに決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）より、たとえば３度高いピッチに決定する
ｂ）ダイナミクス＝１：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）より、たとえば４度低いピッチに決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）より、たとえば４度高いピッチに決定する
ｃ）ダイナミクス＝２：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）より、たとえば５度低いピッチに決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）より、たとえば５度高いピッチに決定する
２）２＜Ｐｄｉｆ≦５
ａ）ダイナミクス＝０：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）より、たとえば２度低いピッチに決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）より、たとえば２度高いピッチに決定する
ｂ）ダイナミクス＝１：上記１）ａ）と同様（ただし、決定された最低音リミットおよび最高音リミットの各値は、上記１）ａ）で決定された各値と異なっている。以下同様）
ｃ）ダイナミクス＝２：上記１）ｂ）と同様
３）５＜Ｐｄｉｆ
ａ）ダイナミクス＝０：最低音リミットは先頭節点ピッチまたは最後節点ピッチのいずれかピッチの低い方（図示例では、先頭節点ピッチｐ１）に決定し、最高音リミットは残りの一方（図示例では、最後節点ピッチｐ２）に決定する
ｂ）ダイナミクス＝１：上記２）ａ）と同様
ｃ）ダイナミクス＝２：上記１）ａ）と同様
このように、本実施の形態では、特に先頭節点ピッチと最後節点ピッチの音程に応じて、最高音リミットと最低音リミットの幅を決定するようにしたので、ユーザが意図する重要打点間の打点ピッチを生成することができる。
【０１２０】
なお、最高音リミットからの拡大幅と最低音リミットからの拡大幅を同一としたが、異ならせてもよい。
【０１２１】
なお、本実施の形態では、当区間の最高音リミットと最低音リミットを決定するときに、設定されたダイナミクス値をそのまま使用している（図１６のステップ４５ｂ参照）が、これに限らず、算出された音程Ｐｄｉｆに応じてダイナミクス値を変更（後述する図１８のステップＳ２０２参照；すなわち、音程Ｐｄｉｆが小さい場合、ダイナミクス値を設定値より大きく変更）し、この変更されたダイナミクス値、先頭節点ピッチおよび最後節点ピッチに応じて、当区間の最高音リミットと最低音リミットを決定するようにしてもよい。このようにしても、ほぼ同等の効果が得られる。
【０１２２】
次に、さらに他の実施の形態の自動作曲装置を説明する。
【０１２３】
前記各実施の形態では、重要打点間の打点ピッチを生成するときに、当区間に含まれる音節数が多く、かつ、当区間の最高音リミットと最低音リミットの幅が狭い場合には、同一ピッチの打点が多く生成されてしまい、この結果、単調なメロディしか得られなくなってしまう。本実施の形態は、この不具合を解消するためになされている。
【０１２４】
本実施の形態の自動作曲装置は、前記実施の形態の重要打点間の打点ピッチを生成する処理（図７参照）に図１８の処理を追加することによって実現される。具体的には、図７の重要打点間の打点ピッチを生成する処理のステップＳ４４とステップＳ４５の間に、図１８のステップＳ２００〜Ｓ２０２の処理を追加する。
【０１２５】
図１８において、ステップＳ２００では、当区間の音節数が４個以下であるか否かを判別し、音節数≦４のときには、何もせずにステップＳ４５に進み、５≦音節数のときにはステップＳ２０１に進む。
【０１２６】
ステップＳ２０１では、現在設定されているダイナミクスは、設定可能なダイナミクス値の最大値であるか否かを判別し、最大値でないときには、ダイナミクス値を“１”だけインクリメントした（ステップＳ２０２）後に、ステップＳ４５に進む一方、最大値のときには、ステップＳ２０２をスキップしてステップＳ４５に進む。
【０１２７】
このように、本実施の形態では、当区間に含まれる音節数が多い場合にはダイナミクスの値を増加させるようにしたので、当区間の最高音リミットと最低音リミットの幅が広がり、この結果、異なるピッチの打点がより多く生成されるため、ユーザがより意図する重要打点間の打点ピッチを生成することができる。
【０１２８】
なお、本実施の形態では、当区間に含まれる音節数が少ない場合であっても、ダイナミクスの値は変更されていないが、これに限らず、音節数が少ない（たとえば２個以下）場合には、ダイナミクスの値を減少させる（たとえば“−１”）ようにしてもよい。
【０１２９】
また、ダイナミクスの増加減値は、本実施の形態では±１に固定的に設定されているが、これに限らず、たとえば音節数に応じて変化するようにしてもよいし、他の固定値（たとえば、±２または＋２＆−１）に設定するようにしてもよい。
【０１３０】
また、前述の先頭節点ピッチと最後節点ピッチとの音程に応じて、最高音リミットや最低音リミットの幅を拡大したのと同様に、音節数の大小に応じて最高音リミット、最低音リミットの幅を拡大するようにしてもよい。
【０１３１】
なお、上述した各実施の形態の機能を実現するソフトウェアのプログラムを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムを読出し実行することによっても、本発明の目的が達成されることは云うまでもない。
【０１３２】
この場合、記憶媒体から読出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記憶媒体は本発明を構成することになる。
【０１３３】
プログラムを供給するための記憶媒体としては、たとえば、前記ＨＤＤ１１のハードディスク、ＣＤ−ＲＯＭ２１，ＭＯ，ＭＤ，フロッピーディスク２０、ＣＤ−Ｒ（CD- Recordable）、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、他のＭＩＤＩ機器１００や通信ネットワーク１０１を介してサーバコンピュータ１０２からプログラムが供給されるようにしてもよい。
【０１３４】
また、コンピュータが読出したプログラムを実行することにより、上述した各実施の形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１３５】
さらに、記憶媒体から読出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した各実施の形態の機能が実現される場合も含まれることは云うまでもない。
【０１３６】
【発明の効果】
【０１３８】
以上説明したように、請求項１または２に記載の発明によれば、生成されたメロディを評価した結果、合格したものは採用する一方、不合格したものであっても、修正できるものであれば、修正して採用し、修正できないものであれば、はじめに戻ってメロディピッチの再生成を行うようにしたので、不合格のメロディであっても多少の修正により合格する可能性があり、したがって、効率のよいメロディ生成を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る自動作曲装置の概略構成を示すブロック図である。
【図２】本実施の形態の自動作曲装置が実行する各種制御処理を視覚的に表した図である。
【図３】本実施の形態の自動作曲装置が実行する各種制御処理を視覚的に表した図である。
【図４】通常小節メロディピッチ生成処理の詳細な手順を示すフローチャートである。
【図５】通常小節メロディピッチ生成処理の詳細な手順を示すフローチャートである。
【図６】図４の当小節のメロディ新規作成処理サブルーチンを構成するフレーズ骨格節点を重要打点に割り当てる処理の詳細な手順を示すフローチャートである。
【図７】図４の当小節のメロディ新規作成処理サブルーチンを構成する重要打点間の打点ピッチを生成する処理の詳細な手順を示すフローチャートである。
【図８】図４のフレーズの音楽的評価処理サブルーチンの詳細な手順を示すフローチャートである。
【図９】図４の小節の音楽的評価処理サブルーチンの詳細な手順を示すフローチャートである。
【図１０】通常小節に対して生成されたメロディピッチの一例を示す図である。
【図１１】当区間の最高音リミットと最低音リミットを決定する処理を説明するための図である。
【図１２】ピックアップ小節メロディピッチ生成処理の詳細な手順を示すフローチャートである。
【図１３】ピックアップ小節メロディピッチ生成処理の詳細な手順を示すフローチャートである。
【図１４】選択される各種ピッチカーブの一例を示す図である。
【図１５】図１の表示装置上に表示されたメロディピッチの一例である。
【図１６】他の実施の形態に係る自動作曲装置が実行する重要打点間の打点ピッチを生成する処理の一部の手順を示すフローチャートである。
【図１７】他の実施の形態における当区間の最高音リミットと最低音リミットを決定する処理を説明するための図である。
【図１８】さらに他の実施の形態に係る自動作曲装置が実行する重要打点間の打点ピッチを生成する処理の一部を示すフローチャートである。
【符号の説明】
２  パネルスイッチ
５  ＣＰＵ（メロディピッチ生成手段、評価手段、制御手段）
９  表示装置
【図１】
0003541706.tif 000002
【図２】
0003541706.tif 000003
【図３】
0003541706.tif 000004
【図４】
0003541706.tif 000005
【図５】
0003541706.tif 000006
【図６】
0003541706.tif 000007
【図７】
0003541706.tif 000008
【図８】
0003541706.tif 000009
【図９】
0003541706.tif 000010
【図１０】
0003541706.tif 000011
【図１１】
0003541706.tif 000012
【図１２】
0003541706.tif 000013
【図１３】
0003541706.tif 000014
【図１４】
0003541706.tif 000015
【図１５】
0003541706.tif 000016
【図１６】
0003541706.tif 000017
【図１７】
0003541706.tif 000018
【図１８】
0003541706.tif 000019