(57)【特許請求の範囲】
【請求項１】
所定のピッチ変化曲線を表示する表示手段と、
前記表示手段で表示される前記ピッチ変化曲線の形状を所定区間毎の端点の表示位置を移動することによって変更する変更入力手段と、
前記ピッチ変化曲線に従う前記端点の表示位置に応じて該端点に対応する楽音のピッチが割り当てられ、前記変更入力手段による前記端点の表示位置を移動させる変更入力が確定した時点で、該変更された端点に割り当てられたピッチの楽音を発音する楽音出力手段と、
前記形状変更されたピッチ変化曲線に基づいて自動作曲を行い楽音情報を生成する作曲手段と
を具備した自動作曲装置。
【請求項２】
所定のピッチ変化曲線を表示する表示手段と、
前記表示手段で表示される前記ピッチ変化曲線の形状を所定区間毎の端点の表示位置を移動することによって変更する変更入力手段と、
前記ピッチ変化曲線に従う前記端点の表示位置に応じて該端点に対応する楽音のピッチが割り当てられ、前記変更入力手段により前記端点が現在のピッチと異なるピッチの表示位置に移動された時点で、該移動された端点に割り当てられたピッチの楽音を発音する楽音出力手段と、
前記形状変更されたピッチ変化曲線に基づいて自動作曲を行い楽音情報を生成する作曲手段と
を具備した自動作曲装置。
【請求項３】
前記変更入力手段による前記端点の表示位置を移動させる変更入力に従って、移動した端点に割り当てられたピッチを所定の表示態様で表示する表示制御手段を更に具備した請求項１又は２に記載の自動作曲装置。
【請求項４】
前記表示制御手段は、更に、前記変更入力手段により移動させるべき端点が指示された場合に、該指示された端点に割り当てられているピッチを所定の表示態様で表示することを特徴とする請求項３に記載の自動作曲装置。
【請求項５】
所定のピッチ変化曲線を表示するステップと、
表示された前記ピッチ変化曲線の形状を所定区間毎の端点の表示位置を移動することによって変更するステップと、
前記ピッチ変化曲線に従う前記端点の表示位置に応じて該端点に対応する楽音のピッチが割り当てられ、前記変更するステップによる前記端点の表示位置の移動が確定した時点で、該移動された端点に割り当てられたピッチの楽音を発音するステップと、
前記形状変更されたピッチ変化曲線に基づいて自動作曲を行い楽音情報を生成するステップと
を具備する自動作曲プログラム。
【請求項６】
所定のピッチ変化曲線を表示するステップと、
表示された前記ピッチ変化曲線の形状を所定区間毎の端点の表示位置を移動することによって変更するステップと、
前記ピッチ変化曲線に従う前記端点の表示位置に応じて該端点に対応する楽音のピッチが割り当てられ、前記変更するステップにより前記端点が現在のピッチと異なるピッチの表示位置に移動された時点で、該移動された端点に割り当てられたピッチの楽音を発音するステップと、
前記形状変更されたピッチ変化曲線に基づいて自動作曲を行い楽音情報を生成するステップと
を具備する自動作曲プログラム。
【請求項７】
前記変更するステップによる前記端点の表示位置の移動に従って、移動した端点に割り当てられたピッチを所定の表示態様で表示するステップを更に備えた請求項５又は６に記載の自動作曲プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定の入力パラメータに従って自動的にメロディや伴奏等の作曲を行う自動作曲装置及び自動作曲プログラムに関する。特にパラメータ入力の際に所定の盛り上がりカーブ（ピッチ変化曲線）を用いる場合に、該盛り上がりカーブの所定区間毎の端点に割り当てる音高（ピッチ）を表示する若しくは発音することによって、ユーザが作曲完成後の曲イメージを把握しながら自動作曲を行うことができるようにした自動作曲装置及び自動作曲プログラムに関する。
【０００２】
【従来の技術】
近年、パーソナルコンピュータの普及に伴い、コンピュータを用いて楽器を演奏したり、作曲したり、編曲したり、音色を合成したりするコンピュータミュージックを用いて、誰でもが音楽を自由に楽しめるようになってきた。特に、コンピュータを用いた作曲の分野では、音楽的な専門知識の少ない初心者であっても簡単に作曲を行うことのできる自動作曲が出現している。このような自動作曲装置として、所定の盛り上がりカーブ（つまりピッチ変化曲線）に沿って音高（ピッチ）を適宜に決定していくことでメロディを自動作曲するものが従来から知られている（例えば、本発明人の請求に係る特開2000−221976号など）。この盛り上がりカーブは曲全体にわたって所定の区間毎（例えば、１楽節区間毎）に設定されており、該盛り上がりカーブに沿ってメロディの骨格音に対してピッチ（以下、骨格音ピッチと呼ぶ）を順次割り当てていくことによって、該該区間毎における盛り上がりカーブの形状と同じような形状の起伏を持ったメロディを生成することができるようになっている。この盛り上がりカーブにおける所定区間毎の端点は各所定区間の骨格音ピッチ(つまり、所定区間内に存在する多数の骨格音ピッチのうちの先頭と最後の２つ)を表し、マウス等の操作により設定された端点のピッチはメロディ生成の際の骨格音ピッチ(のうちの２つ)として用いられる。そこで、ユーザはこうした所定区間毎における盛り上がりカーブの端点をポインティングデバイス等を用いて移動操作して該盛り上がりカーブの形状を適宜に変化することによって、曲全体にわたってユーザ所望の起伏を持ったメロディを自動作曲することができる。すなわち、ユーザは盛り上がりカーブの形状を変化させることで、メロディの概要を考慮しながら自動作曲を行うことができるようになっている。例えば、ユーザは「サビ」部分にあたる区間における盛り上がりカーブの最後の端点ピッチを該区間の先頭の端点ピッチよりも高い位置に配置すると、当該区間におけるメロディ前半からメロディ後半にかけて次第に盛り上がっていく（ピッチが上がっていく）メロディを生成することができる。
【０００３】
【発明が解決しようとする課題】
上述したように、従来では盛り上がりカーブ（ピッチ変化曲線）の端点を移動操作して適宜の位置に配置して該カーブの形状を変更することができ、自動作曲時にこの盛り上がりカーブに沿ってメロディを割り当てることによってメロディの自動生成を行うようになっていた。しかし、従来の自動作曲装置においては盛り上がりカーブをドラッグ操作して端点を所定位置に配置した際に、端点に対しどのような骨格音ピッチが割り当てられるかは端点を配置した位置と所定の基準位置との表示上での相対的な位置関係の比較からユーザ自身が大まかなピッチを判断するしかなく、実際に端点に割り当てられるピッチがどのような音（例えば、音名、音高名、階名等）になるのかを正確に把握することが非常に困難である、という問題点があった。
【０００４】
本発明は上述の点に鑑みてなされたもので、メロディを自動作曲する際に用いられる盛り上がりカーブの端点を操作した際に、該端点に割り当てられる音の種類等を所定の態様でユーザに知らせることにより、自動作曲されるメロディの音楽的な特徴（特に曲の起伏）をユーザが把握しやすいようにした自動作曲装置及び自動作曲プログラムを提供しようとするものである。
【０００５】
【課題を解決するための手段】
本発明に係る請求項１に記載の自動作曲装置は、所定のピッチ変化曲線を表示する表示手段と、前記表示手段で表示される前記ピッチ変化曲線の形状を所定区間毎の端点の表示位置を移動することによって変更する変更入力手段と、前記ピッチ変化曲線に従う前記端点の表示位置に応じて該端点に対応する楽音のピッチが割り当てられ、前記変更入力手段による前記端点の表示位置を移動させる変更入力が確定した時点で、該変更された端点に割り当てられたピッチの楽音を発音する楽音出力手段と、前記形状変更されたピッチ変化曲線に基づいて自動作曲を行い楽音情報を生成する作曲手段とを具備する。
また、請求項２に記載の自動作曲装置は、所定のピッチ変化曲線を表示する表示手段と、前記表示手段で表示される前記ピッチ変化曲線の形状を所定区間毎の端点の表示位置を移動することによって変更する変更入力手段と、前記ピッチ変化曲線に従う前記端点の表示位置に応じて該端点に対応する楽音のピッチが割り当てられ、前記変更入力手段により前記端点が現在のピッチと異なるピッチの表示位置に移動された時点で、該移動された端点に割り当てられたピッチの楽音を発音する楽音出力手段と、前記形状変更されたピッチ変化曲線に基づいて自動作曲を行い楽音情報を生成する作曲手段とを具備する。
【０００６】
この発明によると、表示手段に表示されたピッチ変化曲線の形状を変更するために、変更入力手段を用いて所定区間毎の端点を移動した際に、該移動した端点に割り当てられるピッチを発音することから、ユーザは形状変更後のピッチ変化曲線に基づく自動作曲により生成される楽音情報の概要を把握しやすくなる。すなわち、表示手段には所定のピッチ変化曲線が表示されており、該ピッチ変化曲線における所定区間毎の端点を変更入力手段により移動することができるようになっている。所定区間毎の端点を移動すると、該ピッチ変化曲線の形状が変化する。楽音出力手段は所定区間毎の端点を移動した際に、移動した端点に割り当てられるピッチを発音することから、ユーザは端点移動後に割り当てられるピッチを確認しながらピッチ変化曲線の形状を変更することができる。作曲手段は、形状変更後のピッチ変化曲線に基づいて自動作曲を行い楽音情報を生成する。このようにすると、ユーザは移動した端点に割り当てられるピッチを確認しながらピッチ変化曲線の形状を変更することができることから、自動作曲の結果生成される曲のイメージが非常に捉えやすくなる。
【０００７】
本発明に係る請求項３に記載の自動作曲装置は、前記変更入力手段による前記端点の表示位置を移動させる変更入力に従って、移動した端点に割り当てられたピッチを所定の表示態様で表示する表示制御手段を更に具備する。これによると、所定区間毎の端点を移動してピッチ変化曲線の形状を変更する際に、移動した端点に割り当てられるピッチを所定の表示態様で表示する。こうすることによっても、自動作曲の結果生成される曲のイメージをユーザが捉えやすくなることから、非常に便利である。
【０００８】
本発明は、装置の発明として構成し、実施することができるのみならず、方法の発明として構成し実施することができる。また、本発明は、コンピュータまたはＤＳＰ等のプロセッサのプログラムの形態で実施することができるし、そのようなプログラムを記憶した記憶媒体の形態で実施することもできる。
【０００９】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明する。
【００１０】
図１は、この発明に係る自動作曲装置を内蔵した電子楽器の実施の形態を示すハード構成ブロック図である。
本実施例に示す電子楽器は、マイクロプロセッサユニット（ＣＰＵ）１、リードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３からなるマイクロコンピュータによって制御されるようになっている。ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してリードオンリメモリ（ＲＯＭ）２、ランダムアクセスメモリ（ＲＡＭ）３、検出回路４、スイッチ検出回路５、表示回路６、音源回路７、効果回路８、外部記憶装置９、ＭＩＤＩインタフェース（Ｉ／Ｆ）１０および通信インタフェース（Ｉ／Ｆ）１１がそれぞれ接続されている。更に、ＣＰＵ１には、タイマ割込み処理（インタラプト処理）における割込み時間や各種時間を計時するタイマ１Ａが接続されている。すなわち、タイマ１Ａは時間間隔を計数したり、作曲した楽曲を自動演奏する際に用いる演奏テンポを設定したりするためのテンポクロックパルスを発生する。このテンポクロックパルスの周波数は、パネル操作子５Ａの中の例えばテンポ設定スイッチ等によって調整される。このようなタイマ１ＡからのテンポクロックパルスはＣＰＵ１に対して処理タイミング命令として与えられたり、あるいはＣＰＵ１に対してインタラプト命令として与えられる。ＣＰＵ１は、これらの命令に従って各種処理を実行する。
【００１１】
ＲＯＭ２は、ＣＰＵ１により実行あるいは参照される各種制御プログラム（例えば、後述するメロディ生成処理などのプログラム）や各種データ（例えば、メロディ生成用データやコード進行データ、あるいは伴奏スタイルデータなど）等を格納するものである。ＲＡＭ３は、作曲した楽曲を自動演奏する際に用いる自動演奏情報やＣＰＵ１が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中の制御プログラムやそれに関連するデータを記憶するメモリ等として使用される。ＲＡＭ３の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。演奏操作子４Ａは楽音の音高を選択するための複数の鍵を備えた、例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子４Ａ（鍵盤等）は楽音演奏のために使用できるのは勿論のこと、自動作曲を行う際に用いるメロディのピッチやリズムなどを入力するための入力手段として使用することもできる。検出回路４は、演奏操作子４Ａの各鍵の押圧及び離鍵を検出することによって検出出力を生じる。パネル操作子（スイッチ等）５Ａは、楽曲を自動作曲する際における各種作曲条件等を入力するための各種のスイッチ等を含んで構成される。勿論、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはディスプレイ６Ａ上に表示される所定のポインティングデバイスを操作するために用いるマウスなどの各種操作子を含んでいてよい。スイッチ検出回路５は、パネル操作子５Ａの各スイッチの操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。表示回路６は自動作曲時に用いられる盛り上がりカーブ（ピッチ変化曲線）や各種作曲条件等の各種情報を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイ６Ａに表示するのは勿論のこと、自動演奏に関する各種情報あるいはＣＰＵ１の制御状態などをディスプレイ６Ａに表示する。
【００１２】
音源回路７は、複数のチャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた楽音データ（例えば、自動作曲を行うことにより生成されたメロディ（及び伴奏）などの楽音データ）を入力し、この楽音データに基づいて楽音信号を発生する。音源回路７から発生された楽音信号は、効果回路８を介して効果付与されてアンプやスピーカなどを含むサウンドシステム８Ａから発音される。楽音データの形式はＭＩＤＩ形式のようなディジタル符号化されたものであってもよいし、ＰＣＭ、ＤＰＣＭ、ＡＤＰＣＭのような波形サンプルデータ方式からなるものであってもよい。この音源回路７と効果回路８とサウンドシステム８Ａの構成には、従来のいかなる構成を用いてもよい。例えば、音源回路７はＦＭ、ＰＣＭ、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、ＣＰＵ１によるソフトウェア処理で構成してもよい。
【００１３】
外部記憶装置９は、自動作曲を行った結果生成されたメロディ（及び伴奏）などの楽音データや、ＣＰＵ１が実行する各種制御プログラム等の制御に関するデータなどを記憶するものである。前記ＲＯＭ２に制御プログラムが記憶されていない場合に、この外部記憶装置９（例えばハードディスク）に制御プログラムを記憶させておき、それをＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置９はハードディスク（ＨＤ）に限られず、フロッピィーディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Digital Versatile Diskの略）等の着脱自在な様々な形態の外部記憶媒体を利用する記憶装置であればどのようなものであってもよい。半導体メモリなどであってもよい。
【００１４】
ＭＩＤＩインタフェース（Ｉ／Ｆ）１０は、他のＭＩＤＩ機器１０Ａ等からＭＩＤＩ規格の楽音情報（つまり、ＭＩＤＩデータ）を当該電子楽器へ入力したり、あるいは当該電子楽器からＭＩＤＩ規格の楽音情報（ＭＩＤＩデータ）を他のＭＩＤＩ機器１０Ａ等へ出力するためのインタフェースである。他のＭＩＤＩ機器１０Ａはユーザによる操作に応じてＭＩＤＩデータを発生する機器であればよく、鍵盤型、弦楽器型、管楽器型、打楽器型、身体装着型等どのようなタイプの操作子を具えた（若しくは、操作形態からなる）機器であってもよい。
【００１５】
なお、ＭＩＤＩインタフェース１０は専用のＭＩＤＩインタフェースを用いるものに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインタフェースを用いてＭＩＤＩインタフェース１０を構成するようにしてもよい。この場合、ＭＩＤＩイベントデータ以外のデータをも同時に送受信するようにしてもよい。ＭＩＤＩインタフェース１０として上記したような汎用のインタフェースを用いる場合には、他のＭＩＤＩ機器１０ＡはＭＩＤＩイベントデータ以外のデータも送受信できるようにしてよい。勿論、楽音情報に関するデータフォーマットはＭＩＤＩ形式のデータに限らず、他の形式であってもよく、その場合はＭＩＤＩインタフェース１０と他のＭＩＤＩ機器１０Ａはそれにあった構成とする。
【００１６】
通信インタフェース（Ｉ／Ｆ）１１は、例えばＬＡＮやインターネット、電話回線等の有線あるいは無線の通信ネットワークＸに接続されており、該通信ネットワークＸを介して、サーバコンピュータ１１Ａと接続され、当該サーバコンピュータ１１Ａから制御プログラムや各種データを電子楽器側に取り込むためのインタフェースである。すなわち、ＲＯＭ２や外部記憶装置９（例えば、ハードディスク）等に制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ１１Ａから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる電子楽器は、通信インターフェース１１及び通信ネットワークＸを介してサーバコンピュータ１１Ａへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ１１Ａは、このコマンドを受け、要求された制御プログラムや各種データを、通信ネットワークＸを介して本電子楽器へと配信し、本電子楽器が通信インタフェース１１を介して、これら制御プログラムや各種データを受信して外部記憶装置９（例えば、ハードディスク）等に蓄積することにより、ダウンロードが完了する。なお、通信インタフェース１１及び通信ネットワークＸは、有線のものに限らず無線のものであってもよい。また、双方を具えていてもよい。
【００１７】
なお、上述した電子楽器において、演奏操作子４Ａは鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。該演奏操作子４Ａは、なくてもよい。また、電子楽器は演奏操作子４Ａやディスプレイ６Ａあるいは音源回路７などを１つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、ＭＩＤＩインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことはいうまでもない。さらに、本発明に係る自動作曲装置を適用する装置は電子楽器の形態に限らず、パーソナルコンピュータや携帯通信端末、カラオケや自動演奏ピアノのような自動演奏装置あるいはゲーム機器など、どのような形態の装置・機器に適用してもよい。
【００１８】
次に、図１に示した電子楽器で行う自動作曲に関する処理について、図２Ａ及び図２Ｂを用いて説明する。図２Ａ及び図２Ｂは、上述した電子楽器で実行する「メロディ生成処理」の一実施例を示すフローチャートである。図２Ａはメロディ生成処理における前半の処理を、図２Ｂはメロディ生成処理における後半の処理をそれぞれ示す。すなわち、電子楽器は、図２Ａに示した前半処理を実行した後に図２Ｂに示した後半処理を引き続き実行する。以下、図２Ａ及び図２Ｂに示したフローチャートに従って、当該処理の動作を説明する。
【００１９】
まず、図２Ａに示した「メロディ生成処理」の前半処理について説明する。
ステップＳ１では、メロディ生成用データを供給する。このメロディ生成用データの供給方法としては、例えば、メロディ生成用データが予めテンプレートとして外部記憶装置９等に多数用意されており、そのいずれかのテンプレートをユーザが選択することによってメロディ生成用データを供給する方法がある。ステップＳ２では、コード進行データを供給する。このコード進行データの供給方法についても上記メロディ生成用データと同様に、予めテンプレートとして外部記憶装置９等に多数用意されており、そのいずれかをユーザが選択することによって供給する方法がある。こうした場合におけるメロディ生成用データやコード進行データの選択は、ユーザに選択肢を提示していずれかをユーザに選択させることにより供給するようにしてもよいし、所定のキーワード（例えば、演歌調やジャズ調等の音楽ジャンルや、結婚式や運動会等のシチュエーションなど）、若しくは所定の感覚的な用語（例えば、明るい、暗い、派手、地味など）をユーザが指定して、それにマッチするテンプレートを検索して供給するようにしてもよい。すなわち、所定のキーワードや感覚的な用語毎に複数種類のメロディ生成用データやコード進行データが対応しており、選択されたキーワードや感覚的な用語に対応した複数種類のメロディ生成用データやコード進行データのうちのいずれかがそれぞれランダムに選択される。勿論、所定のキーワードや感覚的な用語毎に対して１つのメロディ生成用データやコード進行データが対応していてもよい。メロディ生成用データは、音符数（多、中、小）、拍子種類、シンコペーションの有無、楽曲の小節数、楽節構成等のリズム特徴データと、絶対的な音域幅（つまり、ダイナミクス）やピッチの変化幅といった所定の音楽ルール等のピッチ生成用データとからなる。コード進行データは、１楽曲分（例えば、４楽節３２小節分）のコード進行を表すデータからなる。
【００２０】
ステップＳ３では、供給されたコード進行データに基づき、所定の音階音テーブル（図示せず）を参照して音階音（例えば、アベイラブルノートスケール）を検出する。上記音階音テーブルは音階音を各コード毎に定義したデータであり、この音階音テーブルによって各コードに含まれる音階音を決定する。こうして決定された音階音は、重要打点以外の各打点に対してピッチを割り当てる際に用いられる（後述する図２ＢにおけるステップＳ１６及びステップＳ１７参照）。ステップＳ４では、骨格音ピッチの自動／手動モードを設定する。すなわち、重要打点に割り当てるピッチ（つまり骨格音ピッチ）の生成方法としては、骨格音ピッチをランダムに生成する「自動モード」による方法と、ユーザが設定した盛り上がりカーブに追従する骨格音ピッチを生成する「手動モード」による方法とがあり、ユーザは重要打点に割り当てるべき骨格音ピッチをそのいずれの方法によって生成するのかを選択することができるようになっている。これらによって生成される骨格音ピッチは、典型的にはコード構成音からなるピッチである。
【００２１】
ステップＳ５では、上述のステップＳ４において「自動モード」または「手動モード」のいずれのモードが設定されたかの判定を行う。骨格音ピッチの生成方法として「手動モード」が設定されている場合には（ステップＳ５のＹＥＳ）、後述の図３に示す「盛り上がりカーブ手動設定処理」を実行する（ステップＳ６）。そして、該「盛り上がりカーブ手動設定処理」終了後には、コード進行データとメロディ生成用データ中に含まれるダイナミクスや音楽ルール等（つまり、ピッチ生成用データ）に基づいて、上記「盛り上がりカーブ手動設定処理」においてユーザ設定された端点ピッチ以外の骨格音ピッチを自動生成して（ステップＳ７）、該前半の処理を終了し、引き続き後述の図２Ｂに示す後半処理を開始する。この際に生成される端点ピッチ以外の骨格音ピッチはユーザが設定した端点の骨格音ピッチに追従して生成されるものであり、例えば端点で決まるダイナミクスの範囲内のピッチが骨格音ピッチとして生成される。他方、骨格音ピッチの生成方法として「手動モード」が設定されていない場合、すなわち、「手動モード」ではなく「自動モード」が設定されている場合には（ステップＳ５のＮＯ）、コード進行データとメロディ生成用データ中に含まれるダイナミクスや音楽ルール等に基づいて、曲全体にわたる全ての骨格音ピッチ（つまり端点ピッチを含む）の自動生成を行う（ステップＳ８）。そして、生成した所定区間毎における端点の骨格音ピッチに基づき、盛り上がりカーブをディスプレイ６Ａ上に表示する（ステップＳ９）。盛り上がりカーブを表示する際には、所定区間の端点毎に、端点に割り当てられた音名(ＣやＥなど)／音高名(Ｃ４やＥ４など)／階名(ドやミなど)などを適宜に表示する（ステップＳ１０）。この端点音名／音高名／階名などの表示は常時行わなくてもよく、例えば、端点上あるいはその近傍にマウスカーソルを位置させたときに、所定時間あるいはマウスカーソルが位置している間だけ、音名／音高名／階名などを表示するようにしてもよい（後述する図５に具体例を示す）。ステップＳ１１では、ディスプレイ６Ａ上に表示された盛り上がりカーブの複数端点のうちのいずれかの端点に対してマウス等を用いたクリック操作が行われたか否かを判定する。いずれかの端点に対してクリック操作が行われている場合には（ステップＳ１１のＹＥＳ）、クリック操作対象の端点の骨格音ピッチに基づく楽音（端点楽音）を発生する（ステップＳ１２）。すなわち、端点に割り当てられたピッチの音を発音する。いずれの端点に対してもクリック操作が行われていない場合には（ステップＳ１１のＮＯ）、ステップＳ１２の処理を行うことなく該前半の処理を終了して、引き続き図２Ｂに示す後半の処理を開始する。
【００２２】
次に、図２Ｂに示した「メロディ生成処理」の後半処理について説明する。該後半処理は、前半処理の終了後に（図２ＡのステップＳ７、ステップＳ１１、ステップＳ１２参照）引き続き行われる処理である。
ステップＳ１３では、メロディ生成用データ中に含まれるリズム特徴データに基づいて、１曲分のリズムパターン（例えば、音符の存在位置を規定したデータ）を生成する。まず、数小節からなるモチーフ（例えば、楽曲の先頭部分やサビの部分）のリズムパターンをリズム特徴データに基づいて（若しくはユーザの入力操作に従って）生成し、該生成したモチーフとリズム特徴データの楽曲構成等から１曲分のリズムパターンが生成される。例えば、１曲分のリズムパターンは、楽節記号を反映すべく、同一記号楽節は対応する楽節と同一リズム、類似記号楽節は対応する楽節と一部（例えば前半部分）のみを同一リズムにすることなどによって得られる。ステップＳ１４では、リズムパターン中の重要打点を検出する。重要打点とはメロディを構成する全打点のうちの音楽的に重要な打点であり、一例として各小節の強拍すなわち第１、第３拍にある打点あるいは第１、第３拍の近くの打点が重要打点として検出され、その他の打点は非重要打点として検出される。勿論、こうした強拍あるいはその近傍の打点に限らず、他の条件に従って重要打点を検出するようにしてもよい。
【００２３】
ステップＳ１５では、検出した各重要打点に骨格音ピッチを割り当てる。ステップＳ１６では、メロディ生成用データ中に含まれるダイナミクスや音楽ルールと検出された音階音（図２ＡのステップＳ３参照）とに基づいて、重要打点間のピッチを自動生成する。ステップＳ１７では、重要打点以外の各打点に生成した重要打点間のピッチを割り当てる。すなわち、重要打点以外の各打点（つまり非重要打点）のピッチを作成する（スケール音を適宜割り当てる）。ステップＳ１８では、必要に応じて、コード進行データと伴奏スタイルデータに基づいて伴奏データを生成する。例えば、楽曲のスタイル毎に複数の伴奏スタイルデータ（１乃至複数のパートについて所定コードタイプに沿って作成された１乃至複数小節分の演奏データ）をＲＯＭ２やＲＡＭ３などに予め記憶しておき、パネル操作子５Ａの所定スイッチを用いてユーザが指定した、あるいはメロディ生成用データ中に含まれた伴奏スタイルデータを指定するための指定データ（例えば楽曲スタイル）に対応した伴奏スタイルデータを読み出し、コード進行データに基づいて伴奏スタイルデータに含まれる音高データを該コード進行データにマッチするよう修正し、これを１曲分繰り返すことで伴奏データは生成される。楽曲のスタイルとしては、「都会的な」、「土くさい」、「トロピカルな」、「ダンサブルな」等がある。なお、この伴奏データの生成は必須でなく、伴奏データは必要に応じて生成するようにすればよい。ステップＳ１９では、生成したメロディ（及び伴奏データ）を所定の出力形態で出力する。例えば、メロディ（及び伴奏）の出力形態としては、演奏する（通常の自動演奏、携帯通信端末等の着信メロディ、カラオケ伴奏等）、楽譜等に表示する、記録媒体に保存する、電子メールに添付して他者に送信する、Ｗｅｂサーバにアップロードする、などの多種多様な出力形態であってよい。
【００２４】
なお、メロディ生成処理は上述したようなアルゴリズムのものに限らず、他のどのようなアルゴリズムのものであってもよい。例えば、上述した図２Ａ及び図２Ｂに示した実施例においては、一旦「自動モード」または「手動モード」を設定したら、設定されたモードのみで骨格音ピッチを生成する例を説明している。しかし、これに限らず、「自動モード」または「手動モード」のどちらかのモードで骨格音ピッチを生成した後に、他のモードに移行して骨格音ピッチを生成しなおすようにアルゴリズムを構成してもよい。骨格音ピッチを生成しなおすようにアルゴリズムを構成する場合の一例として、自動生成した骨格音ピッチを手動で修正することができるようにしてもよいし、逆に手動で設定した骨格音ピッチが全く気に入らなかった場合に自動生成によって全ての骨格音ピッチを新たに生成しなおすようにしてもよい。あるいは、一部の骨格音ピッチのみを自動生成によって新たに生成しなおすことができるようにしてもよい。
なお、上述した実施例においては盛り上がりカーブを骨格音ピッチのみに反映する場合の例を示したがこれに限らず、例えば音量などにも反映させるようにしてもよい。
【００２５】
図１に示した電子楽器においては、自動作曲の際に用いる骨格音ピッチの生成方法として「手動モード」を選択すると、ディスプレイ６Ａ上に盛り上がりカーブが表示され、ユーザは手動で表示された該盛り上がりカーブの形状を所定区間毎に変化することによって、ユーザ所望の起伏を持ったメロディを自動作曲することができるようになっている（図２ＡのステップＳ５〜ステップＳ７参照）。そこで、この「手動モード」時に実行される「盛り上がりカーブ手動設定処理」について説明する。図３は、「盛り上がりカーブ手動設定処理」（図２ＡのステップＳ６参照）の一実施例を示すフローチャートである。以下、図３に示したフローチャートに従って、当該処理の動作を説明する。
【００２６】
まず、ディスプレイ６Ａ上に表示された所定区間毎における盛り上がりカーブの端点のいずれかが、ユーザによる操作に従うマウス等でドラッグ操作されたか否かを判定する（ステップＳ２１）。端点のいずれかがドラッグ操作された場合には（ステップＳ２１のＹＥＳ）、コード音吸い込みモードであるか、音階音吸い込みモードであるか、通常のモードであるかを判定する（ステップＳ２２及びステップＳ２５）。これらのコード音吸い込みモード、音階音吸い込みモード、通常のモードなどのモード設定は予め設定されていてもよいし、その都度ユーザが設定してもよい。例えば、キーボード上に配置されたキーの１つである「SHIFT」キーを押しながらドラッグ操作が行われた場合にはコード音吸い込みモードが設定され、「CTRL」キーを押しながらドラッグ操作が行われた場合には音階音吸い込みモードが設定され、マウスのみによる単独でのドラッグ操作が行われた場合には通常のモードが設定される。コード音吸い込みモードが設定されている場合には（ステップＳ２２のＹＥＳ）、端点に対応する骨格音ピッチをドラッグ操作位置に最も近いコード音へ吸い込みを行う（ステップＳ２３）。音階音吸い込みモードが設定されている場合には（ステップＳ２２がＮＯであり、ステップＳ２５がＹＥＳ）、端点に対応する骨格音ピッチをドラッグ操作位置に最も近い音階音へ吸い込みを行う（ステップＳ２６）。通常のモードが設定されている場合には（ステップＳ２２及びステップＳ２５が共にＮＯ）、端点に対応する骨格音ピッチをドラッグ操作位置の音高に設定する（ステップＳ２７）。
【００２７】
この実施例においては、盛り上がりカーブは所定区間(例えば１楽節区間)毎に設定されてディスプレイ６Ａ上に表示されるものであって、この所定区間毎の盛り上がりカーブにおける端点の表示位置は骨格音ピッチを表し、マウス等の操作により設定された端点の表示位置がメロディ生成の際の骨格音ピッチに対応する。こうした盛り上がりカーブにおける端点ピッチの設定は、端点をマウス等のポインティングデバイス（つまりマウスカーソル）で指定し、こうしたポインティングデバイスと共に上下方向にドラッグ操作することで行われる。すなわち、端点を上下方向にドラッグすることで該端点のピッチが変化する。この際に、変更可能なピッチはコード音に限定してもよいし、スケール音に限定してもよい。もちろん限定無しの１２音名全てに変更可能としてもよい。上述の「盛り上がりカーブ設定処理」においては、コード音吸い込みモード、スケール音吸い込みモード、通常モードのいずれかで変更可能なピッチを限定している（図３のステップＳ２２及びステップＳ２５参照）。コード音吸い込みモードでは、変更可能なピッチをコード音に限定する。すなわち、コード音に限定した場合には背景のコードにあったピッチのメロディを生成することができ、オーソドックスなメロディをつくることができる。スケール音吸い込みモードでは、変更可能なピッチをスケール音に限定する。すなわち、スケール音に限定した場合には、音痴の無い（すなわち、背景のコードとマッチしない音が生じない）メロディを生成することができる。通常モードでは、変更可能なピッチを限定しない。すなわち、ピッチの限定をしないとした場合には、背景のコードにしばられない斬新なメロディを生成することができる。また、コード音吸い込みモードやスケール音吸い込みモードに設定した場合において、ドラッグ操作によりコード音やスケール音を構成するピッチに対応する表示位置の近傍に端点を移動したときには、端点を該ピッチに対応する表示位置へと自動的に吸い込ませて(ジャンプさせて)表示するようにするとよい。すなわち、コード音やスケール音を構成するピッチに対応する表示位置にしか端点を移動できないようにするとよい。
【００２８】
ステップＳ２４では、ディスプレイ６Ａ上に表示された所定区間毎における盛り上がりカーブの端点毎に音名(ＣやＥなど)／音高名(Ｃ４やＥ４など)／階名(ドやミなど)などを表示する。この端点の音名／音高名／階名表示は常時行わなくてもよく、所定の操作時のみに表示するようにしてもよいことは既に説明した（上述した図２ＡのステップＳ１０参照）。また、端点がコード音か、音階音か、それ以外の音かを表示するようにしてもよい。この場合には、例えば、端点の色や音名／階名表示の色を変えたり、端点の近傍に「コード音」「音階音」などのように表示してもよいし、若しくはこれらを所定の記号（例えば、コード音は「Ｃ」、音階音は「Ｓ」など）で表現してそれらを表示するようにしてもよい。さらに、こうした音名表示、音高名表示、階名表示のいずれの表示を行うかをユーザが適宜に選択することができるようにしてもよい。
【００２９】
ステップＳ２８では、端点楽音を発生する。ステップＳ２９では端点をユーザがマウス等を用いてクリック操作したか否かを判定し、クリック操作されている場合には（ステップＳ２９のＹＥＳ）端点楽音を発生する（ステップＳ３０）。すなわち、ユーザが端点に割り当てられた骨格音ピッチを確認することができるようにするために、ユーザのクリック操作に応じてクリック操作された端点のピッチを発音する。この端点のクリック操作にあわせて発音するピッチは、生成されるメロディの音色でもよいし、まったく関係の無い音色でもよい。音長、音量はあらかじめ定めた所定値とすればよい。このように、端点をクリックしたときに設定されているピッチを発音させるようにすれば、設定されているピッチをあとから確認することができる。なお、こうした場合に、クリック操作した端点から該端点以降の端点毎に、端点楽音を順次に連続発音するようにしてもよい。あるいは、マウスで端点をドラッグ操作した場合に、隣の音（コード音、音階音、全ての音）へ達する毎に端点楽音を発生するようにしてもよいし、ドラッグ操作が終了した時点で初めて端点楽音を発生するようにしてもよい。ステップＳ３１では、ディスプレイ６Ａ上に表示された全ての所定区間の盛り上がりカーブに基づく骨格音ピッチの設定操作が終了したか否かを判定する。全ての所定区間の盛り上がりカーブに基づく骨格音ピッチの設定操作が終了した場合には（ステップＳ３１のＹＥＳ）、該「盛り上がりカーブ手動設定処理」を終了する。一方、全ての所定区間の盛り上がりカーブに基づく骨格音ピッチの設定操作が終了していない場合には（ステップＳ３１のＮＯ）、ステップＳ２１の処理に戻って、上述したステップＳ２１〜ステップＳ３１までの処理を繰り返し実行する。すなわち、該「盛り上がりカーブ手動設定処理」に従う端点毎の設定を続行する。
【００３０】
以上のように、端点ピッチを手動設定した際に該ピッチを発音させるようにしたことにより、ユーザは端点ピッチを手動設定する際に実際の音を確認しながら盛り上がりカーブの設定を行うことができるようになる。
また、端点ピッチを手動設定または自動設定した際に、該ピッチの音名、音高名、階名などを盛り上がりカーブと共に表示するようにしたことから、ユーザは視覚的に音を確認することができるようになる。
【００３１】
盛り上がりカーブは１曲全体にわたって所定区間毎に設定されており、所定区間毎のカーブの端点やその近傍をマウス等のポインティングデバイスで上下方向にドラッグすることにより、端点が配置された位置に対応するように定義されたピッチがメロディ生成の際に骨格音ピッチとして用いられることは上述した通りである。そこで、こうした盛り上がりカーブを用いた骨格音ピッチの設定について、図４に示す具体例を用いて説明する。図４は「手動モード」時にディスプレイ６Ａ上に表示される盛り上がりカーブの一実施例を示す概念図であって、図４上段は骨格音ピッチ設定前の初期表示の盛り上がりカーブを示すものであり、図４下段は骨格音ピッチ設定後の盛り上がりカーブを示すものである。この実施例における縦軸はピッチを表し、横軸は楽節区間（第１楽節区間〜第４楽節区間）毎の時間長さを表す。なお、この実施例では各楽節区間毎の端点を「○」表示によって示し、端点毎に音高名（Ｃ４やＥ４など）を表示した盛り上がりカーブを示した。
【００３２】
まず、「手動モード」が設定されると（図２ＡのステップＳ５参照）、図４上段に示すような盛り上がりカーブがディスプレイ６Ａに表示される。すなわち、図４上段に示した盛り上がりカーブは初期表示（すなわち、骨格音ピッチの設定操作が行われる前の表示）であって、この初期表示の盛り上がりカーブの端点は全て、所定の基準ピッチ（ユーザが予め設定した基準ピッチ、若しくはコード進行データに従って自動的に決定される基準ピッチ）に対応する表示位置に配置され、各楽節区間（第１楽節区間〜第４楽節区間）毎の端点は直線で結ばれるようにして表示がなされる。そして、所定位置に基準ピッチの音高名を表示する。例えば、基準ピッチが「Ｅ４」であり、この基準ピッチ「Ｅ４」に対応する端点の表示位置が図４上段に示すような中央の位置であるような場合には、直線形状の盛り上がりカーブが初期表示として表示される。勿論、初期表示として表示する盛り上がりカーブはこうした基準ピッチに対応する所定の表示位置に直線形状に表示されるものに限らず、折れ線形状で表示されるものであってもよい。例えば、コード進行データに従って各楽節区間毎の先頭及び最後の端点の骨格音ピッチを予めランダムに決定しておくことによって、初期表示として折れ線形状をした盛り上がりカーブを表示するようにしてもよい。すなわち、初期表示する盛り上がりカーブとして、図４後段に示したような骨格音ピッチ設定後の表示と同様の表示の盛り上がりカーブを表示するようにしてもよい。こうした場合には、各楽節区間の端点毎にランダムに決定された骨格音ピッチを端点近傍位置などの所定位置に表示するようにするとよい。
【００３３】
上述したように、ユーザは初期表示された盛り上がりカーブの端点のいずれかを適宜にマウス等のポインティングデバイスで指示して上下方向にドラッグ操作し、図４上段に示したような直線形状の盛り上がりカーブを図４後段に示したような折れ線形状の盛り上がりカーブへとその形状を変更する（すなわち、「手動モード」設定時における盛り上がりカーブの手動設定）ことによって、該盛り上がりカーブの形状と同様の起伏を持ったユーザ所望のメロディを自動作曲することができるようになる。例えば、第１楽節区間の先頭の端点をポインティングデバイスで指示してから（点線で示した矢印及び端点参照）下方向にドラッグ操作すると、該ポインティングデバイスで指示されている端点がドラッグ操作に伴い下方に移動する（実線で示した矢印及び端点参照）。端点をユーザ所望の位置まで移動しドラッグ操作を終了すると、端点はドラッグ操作が終了した時点の位置に表示される。そして、端点が表示されている表示位置に対応する骨格音ピッチが表示される。すなわち、端点を上下方向にドラッグして表示位置を変更する際には、該端点の骨格音ピッチの表示を該ドラッグ操作後の変更位置に応じて順次に変更表示する。
【００３４】
この実施例においては、最初骨格音ピッチが「Ｅ４」であった端点が骨格音ピッチ「Ｃ４」に対応する表示位置へと移動されることによって、先頭の端点の骨格音ピッチは「Ｅ４」から「Ｃ４」に変更される。一方、第１楽節区間の最後の端点については上方向にドラッグ操作されることにより、最初骨格音ピッチが「Ｅ４」であった端点が、骨格音ピッチ「Ｂ♭４」に対応する表示位置へと移動されている。すなわち、最後の端点の骨格音ピッチは「Ｅ４」から「Ｂ♭４」に変更されている。第２楽節区間では、先頭の端点の骨格音ピッチは「Ｅ４」のままであり（すなわち、ドラッグ操作されていない）、最後の端点の骨格音ピッチは「Ｅ４」から「Ｄ♭４」へ変更されている。第３楽節区間では、先頭の端点の骨格音ピッチは「Ｅ４」から「Ａ４」に、最後の端点の骨格音ピッチは「Ｅ４」から「Ｆ♯４」へ変更されている。第４楽節区間では、先頭の端点の骨格音ピッチは「Ｅ４」から「Ａ３」に、最後の端点の骨格音ピッチは「Ｅ４」から「Ｃ５」へ変更されている。こうした端点の骨格音ピッチを変更することによって生成された設定後の盛り上がりカーブに沿って、各重要打点に骨格ピッチを、重要打点以外の各打点に重要打点間ピッチを割り当てていくことによりメロディが生成される（図２ＢのステップＳ１５及びステップＳ１７参照）。例えば、第１楽節区間に表示した塗りつぶしの丸（●表示）は、端点以外の各打点（重要打点及び重要打点以外の打点）に割り当てられたピッチの一例を示すものである（実際の表示中には表示されないが、ここでは理解しやすくするために便宜的に表示した）。この図から理解できるように、端点以外の各打点には該第１楽節区間における割り込みカーブに沿ったピッチが割り当てられる。
【００３５】
なお、上述した実施例においては端点の近傍に音高名を表示した例を示したがこれに限らず、端点を示す「○」表示の中に音高名などを表示するようにしてもよい。
また、基準ピッチや各端点の骨格音ピッチの表示は予め表示しておく必要はなく、マウス等で端点等がクリック操作されたときにのみ表示するようにしてもよい（図２ＡのステップＳ１０又は図２ＢのステップＳ２４参照）。図５は、マウス等で端点等がクリック操作されたときにのみ各端点の骨格音ピッチを表示する場合の一実施例を示す概念図である。ただし、この実施例では一部区間の盛り上がりカーブのみを代表的に示した。この図５から理解できるように、端点をクリック操作する前には端点の骨格音ピッチを表示しない（クリック前参照）。このような表示状態の盛り上がりカーブに対して、端点をマウス等のポインティングデバイス（矢印で示す）で指示しクリック操作を行うと、該端点の骨格音ピッチを表示する（クリック後参照）。勿論、これに限らず、クリック操作することなく単にポインティングデバイスで端点を指示した際に、該端点の骨格音ピッチを表示するようにしてもよい。このようにして、端点またはその近傍をポインティングデバイスで指示したときにのみ、該ピッチの音名、音高名、階名などを表示するようにすると、普段の盛り上がりカーブの表示はこうした表示のないすっきりとした盛り上がりカーブが表示されるので、ユーザにとり非常に見やすい表示となる。そして、ユーザは必要なときにだけ必要な端点についてのみ、視覚的に音を確認することができるようになり便利である。
【００３６】
なお、メロディ生成処理（図２Ａ及び図２Ｂ参照）により生成されるメロディ（及び伴奏）の楽音データのフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で楽音データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。
【００３７】
【発明の効果】
この発明によれば、画面上に表示された盛り上がりカーブの端点の指定に従って、該端点に割り当てられた骨格音ピッチを表示あるいは発音するようにしたことから、ユーザが自動作曲されるメロディ全体のイメージを把握しながら盛り上がりカーブの設定を行うことができるようになる、という効果を得る。
【図面の簡単な説明】
【図１】  この発明に係る自動作曲装置を内蔵した電子楽器の実施の形態を示すハード構成ブロック図である。
【図２Ａ】  図１に示した電子楽器で実行する「メロディ生成処理」における前半の処理の一実施例を示すフローチャートである。
【図２Ｂ】  図２Ａに示した「メロディ生成処理」における前半の処理に引き続き行われる後半の処理の一実施例を示すフローチャートである。
【図３】  「盛り上がりカーブ手動設定処理」の一実施例を示すフローチャートである。
【図４】  「手動モード」時にディスプレイ上に表示される盛り上がりカーブの一実施例を示す概念図である。
【図５】  マウス等で端点等がクリック操作されたときにのみ各端点の骨格音ピッチを表示する場合の一実施例を示す概念図である。
【符号の説明】
１…ＣＰＵ、１Ａ…タイマ、２…ＲＯＭ、３…ＲＡＭ、４…検出回路、４Ａ…演奏操作子、５…スイッチ検出回路、５Ａ…パネル操作子、６…表示回路、６Ａ…ディスプレイ、７…音源回路、８…効果回路、８Ａ…サウンドシステム、９…外部記憶装置、１０…ＭＩＤＩインタフェース、１０Ａ…ＭＩＤＩ機器、１１…通信インタフェース、１１Ａ…サーバコンピュータ、Ｘ…通信ネットワーク、１Ｄ…データ及びアドレスバス
【図１】
0003719156.tif 000002
【図２Ａ】
0003719156.tif 000003
【図２Ｂ】
0003719156.tif 000004
【図３】
0003719156.tif 000005
【図４】
0003719156.tif 000006
【図５】
0003719156.tif 000007