(57)【要約】【課題】ユーザ操作による入力（押鍵）音高を常に全て自動伴奏音に反映させること。【解決手段】この自動伴奏生成システムでは、複数のパターンノートＰ１；Ｐ２；…から成る伴奏パターンデータＡｐが使用され、これらのパターンノートＰ１〜Ｐ５は、夫々が有するタイミング情報（0000，0480，0960，1440 )により時系列的に関連付けられている。伴奏用鍵５から任意の音高（例えば、Ｄ３，Ｆ３）を指示する押鍵音情報Ｍａ，Ｍｂを入力すると、伴奏パターンデータＡｐ内から夫々のタイミング情報Timingに従って、順次、読み出される各パターンノートＰ１；Ｐ２；…の音高は、入力された全ての押鍵音情報Ｍａ，Ｍｂにより指示される音高（Ｄ３，Ｆ３）に変更されて、自動伴奏音を表わす伴奏ノートＮ１ａ，Ｎ１ｂ；Ｎ２ａ，Ｎ２ｂ；…が次々に生成され、これら伴奏ノートに対応する伴奏音が発音される。【選択図】図３
2005077763.tif 000002
【特許請求の範囲】
【請求項１】
発音タイミングを表わす夫々のタイミング情報により時系列的に関連付けられた複数の音符情報から成る伴奏パターンデータを記憶する記憶手段と、
伴奏音の音高を指示する音高指示情報を入力するための入力手段と、
上記伴奏パターンデータ内の各音符情報をそのタイミング情報に従って順次読み出す読出し手段と、
読み出された音符情報から、入力されている全ての音高指示情報により指示される音高を持つ伴奏音情報を生成する生成手段と、
生成された伴奏音情報に基づいて伴奏音を発音させる発音手段と
を具備することを特徴とする自動伴奏生成装置。
【請求項２】
前記伴奏パターンデータは所定形式の演奏データに含まれることを特徴とする請求項１に記載の自動伴奏生成装置。
【請求項３】
前記生成手段は、発音タイミングが前後する音符情報の時間範囲が重なるとき、後の音符情報の発音タイミングに応じて、前の音符情報から生成される伴奏音情報の時間長を制限する制限手段を備えることを特徴とする請求項１又は２に記載の自動伴奏生成装置。
【請求項４】
発音タイミングを表わす夫々のタイミング情報により時系列的に関連付けられた複数の音符情報から成る伴奏パターンデータを記憶する記憶手段、及び、伴奏音の音高を指示する音高指示情報を入力するための入力手段を具備する音楽情報処理装置に対して、
伴奏パターンデータ内の各音符情報をそのタイミング情報に従って順次読み出すステップと、
読み出された音符情報から、入力されている全ての音高指示情報により指示される音高を持つ伴奏音情報を生成するステップと、
生成された伴奏音情報に基づいて伴奏音を発音させるステップと
から成る手順を実行させるための自動伴奏生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、伴奏パターンを用いてユーザの押鍵音に従い自動伴奏音情報を生成する自動伴奏生成システムに関する。
【背景技術】
【０００２】
従来より、伴奏パターンを用いて自動伴奏を生成する手段としてアルペジエータや伴奏スタイルを使ったものが知られており、例えば、アルペジエータは、特許文献１に示されるようなものがある。
【特許文献１】特開２００１−２２３５４号公報
【０００３】
アルペジエータは、押鍵に応じてアルペジオ（分散和音）を生成するものであり、アルペジオパターンとして、複数のキー番号（音高に対応したノートナンバーではなく、単純な番号）とその発音タイミングを記憶している。そして、同時に押鍵された複数のノート番号に所定のルール（例えば、音高の低い順）に従って番号を割り振り、アルペジオパターン中のキー番号に対応した番号が割り振られているノート番号を、その発音タイミングにおいて発生させるようにして、押鍵音を元にアルペジオを生成している。
【０００４】
アルペジエータによる自動伴奏生成においては、ユーザが押鍵している音名が発音されるが、全ての押鍵音が常に自動伴奏に反映されるとは限らない。例えば、アルペジオパターンで想定されている押鍵数よりも多く押鍵されているときは、発音されない押鍵音がある。また、アルペジオパターンによってはオクターブシフトされて発音されるケースもあり、押鍵音の音高が常に発音されるとは限らない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、このような事情に鑑み、複数の音符情報（ノートイベント）から成る伴奏パターンデータを使用して自動伴奏音情報を生成する際に、ユーザの演奏操作による押鍵音などの入力音高を常に全て自動伴奏音情報に反映させることができる自動伴奏生成システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の主たる特徴に従うと、発音タイミングを表わす夫々のタイミング情報（Timing）により時系列的に関連付けられた複数の音符情報（Ｐ１；Ｐ２；…）から成る伴奏パターンデータ（Ａｐ）を記憶する記憶手段（２〜４）と、伴奏音の音高を指示する音高指示情報（Ｍａ，Ｍｂ，…）を入力するための入力手段（５，ＰＤ）と、伴奏パターンデータ（Ａｐ）内の各音符情報（Ｐ１；Ｐ２；…）をそのタイミング情報（Timing）に従って順次読み出す読出し手段（Ｓ５〜Ｓ６）と、読み出された音符情報（Ｐ１；Ｐ２；…）から、入力されている全ての音高指示情報（Ｍａ，Ｍｂ，…）により指示される音高を持つ伴奏音情報（Ｎ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…）を生成する生成手段（Ｓ６〜Ｓ１８）と、生成された伴奏音情報（Ｎ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…）に基づいて伴奏音を発音させる発音手段（７，Ｓ１４）とを具備する自動伴奏生成装置〔請求項１〕、並びに、発音タイミングを表わす夫々のタイミング情報（Timing）により時系列的に関連付けられた複数の音符情報（Ｐ１；Ｐ２；…）から成る伴奏パターンデータ（Ａｐ）を記憶する記憶手段（２〜４）、及び、伴奏音の音高を指示する音高指示情報（Ｍａ，Ｍｂ，…）を入力するための入力手段（５，ＰＤ）を具備する音楽情報処理装置に対して、伴奏パターンデータ内の各音符情報（Ｐ１；Ｐ２；…）をそのタイミング情報（Timing）に従って順次読み出すステップ（Ｓ５〜Ｓ６）と、読み出された音符情報（Ｐ１；Ｐ２；…）から、入力されている全ての音高指示情報（Ｍａ，Ｍｂ，…）により指示される音高を持つ伴奏音情報（Ｎ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…）を生成するステップ（Ｓ６〜Ｓ１８）と、生成された伴奏音情報（Ｎ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…）に基づいて伴奏音を発音させるステップ（Ｓ１４）とから成る手順を実行させるための自動伴奏生成プログラム〔請求項４〕が提供される。なお、括弧書きは、対応する実施例の参照記号であり、以下においても同様である。
【０００７】
この発明の自動伴奏生成装置において、伴奏パターンデータ（Ａｐ）は所定形式の演奏データに含まれ〔請求項２〕、また、生成手段（Ｓ６〜Ｓ１８）は、発音タイミングが前後する音符情報（Ｐ１，Ｐ２）の時間範囲が重なるとき（Ｔａ〜Ｔｂ）、後の音符情報（Ｐ２）の発音タイミングに応じて、前の音符情報（Ｐ１）から生成される伴奏音情報の時間長（Gate）を制限する制限手段（Ｓ９〜Ｓ１０）を備える〔請求項３〕ことができる。
【発明の効果】
【０００８】
この発明による自動伴奏生成システムで使用される伴奏パターンデータ（Ａｐ）は複数の音符情報（Ｐ１；Ｐ２；…）から成り、これら音符情報（Ｐ１；Ｐ２；…）は、夫々のタイミング情報（Timing）により時系列的に関連付けられており、例えば、音高（Note）、長さ（Gate）、音量（Vel ）などの情報を含む。システムは、自動伴奏の開始に伴い、伴奏パターンデータ（Ａｐ）内の各音符情報（Ｐ１；Ｐ２；…）がタイミング情報（Timing）に従って順次読み出す（Ｓ６）。ユーザ押鍵操作などにより所望の音高（例えば、Ｄ３，Ｆ３）の音高指示情報（Ｍａ，Ｍｂ，…）が入力手段（５，ＰＤ）から入力されると、有効に入力された全ての音高指示情報（Ｍａ，Ｍｂ，…）が指示する所望の音高を取得する。そして、読み出された各音符情報（Ｐ１；Ｐ２；…）の音高（Note）を所望の音高に差し替える等の方法を用いて、全音高指示情報（Ｍａ，Ｍｂ，…）が指示する所望の音高を持つ伴奏音情報（Ｎ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…）を生成し（Ｓ１３，Ｓ１７）、音源部(7)を通じて、対応する自動伴奏音を発音させる（Ｓ１４）。
【０００９】
この発明では、このように、タイミング情報を含む複数の音符情報から成る伴奏パターンデータを使用しユーザの演奏操作に応じて伴奏音情報を自動生成するに際し、伴奏パターンデータから、各タイミング情報に従って各音符情報を順次読み出し、読み出された音符情報が持つ長さや音量などの情報と、ユーザ操作に基づく全ての入力音高（押鍵音高）を持つ伴奏音情報を生成し発音するようにしているので、ユーザ入力音高（押鍵音高）を全て常に使用した自動伴奏音に反映させることができる。さらに、ユーザ入力音高（押鍵音高）が、全て、そのまま音符情報のパターンに乗って直ちに発音されるので、ユーザは、自身の押鍵状態と生成される自動伴奏音との対応を演奏しながら簡単に認識することができる。また、自動伴奏音の元になる伴奏パターンデータ内の音符情報は、各タイミング情報が表わす発音タイミングにつき１音分でよいので、従来の各種伴奏パターンデータと比較してデータ量が少なくなり、これを記憶するメモリなどを節約することができる。
【００１０】
また、この発明のシステムで使用される伴奏パターンデータは、ＭＩＤＩで代表される所定の汎用形式の演奏データに含まれ、その音符情報が該汎用形式で記述されるので、伴奏パターンデータの制作者は、電子楽器などで一般的に利用可能な任意の曲データの一部や、電子楽器などによる実際の演奏を記憶したものを、そのまま利用することができる。
【００１１】
この発明では、さらに、発音タイミングが時間的に前後する音符情報（Ｐ１，Ｐ２）に時間的な重なり（Ｔａ〜Ｔｂ）が生じる場合、前の音符情報（Ｐ１）に従って生成される先行伴奏音情報の時間長（Gate）を後の音符情報（Ｐ２）のタイミング情報（Timing＝Ｔａ）に応じて制限する。例えば、後の音符情報（Ｐ２）に従って新しい後続伴奏音情報を生成する際に、既にその時点で発音中の自動伴奏音をオフする（Ｓ９〜Ｓ１０）。これにより、自動伴奏音の同時発音数は、全ユーザ入力音数（押鍵音数）に一致してこれを超えることがない。従って、最大同時発音数を超えたり、先行伴奏音情報により既に発音中の自動伴奏音のオフが来るまで音量が大きくなってしまう、などの問題が起きない。
【発明を実施するための最良の形態】
【００１２】
〔システム構成〕
図１は、この発明の一実施例による自動伴奏生成システムのハードウエア構成例を示す。この例では、自動伴奏生成生成装置には、電子楽器などの音楽専用の音楽情報処理装置が用いられるが、パーソナルコンピュータに演奏入力及び楽音生成機能を設けた汎用の情報処理装置を用いてもよい。この自動伴奏生成装置は、中央処理装置（ＣＰＵ）１、ランダムアクセスメモリ（ＲＡＭ）２、読出専用メモリ（ＲＯＭ）３、外部記憶装置４、入力操作部５、表示部６、音源部７、通信インターフェース（通信Ｉ／Ｆ）８などの要素を備え、これらの要素１〜８はバス９に接続される。
【００１３】
装置全体を制御するＣＰＵ１は、所定の制御プログラムに従い、タイマーの計時クロックを利用して各種処理を実行し、ＲＡＭ２は、これらの処理で利用される種々の情報を一時的に記憶するための処理バッファとして機能する。例えば、自動伴奏生成プログラムによる処理時には、押鍵音情報（Ｍａ，Ｍｂ，…）や伴奏ノート情報（Ｎ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…）、パターンノート情報（Ｐ１；Ｐ２；…）を格納するためのバッファ領域（KeyOnList ，DataList，PatternNote ）がＲＡＭ２上に確保される。また、ＲＯＭ３は、ＣＰＵ１に自動伴奏生成プログラムを含む各種制御プログラムや、パターンノート情報を含む伴奏パターンデータ（Ａｐ）等の各種データを記憶している。
【００１４】
外部記憶装置４は、ハードディスク（ＨＤ）や、コンパクトディスク・リード・オンリィ・メモリ（ＣＤ−ＲＯＭ）、フレキシブルディスク（ＦＤ）、光磁気（ＭＯ）ディスク、ディジタル多目的ディスク（ＤＶＤ）、メモリカード等の記憶媒体を用いた記憶手段である。自動伴奏生成プログラム等の各種制御データ、曲データや伴奏パターン集等の各種データは、ＲＯＭ３だけでなく外部記憶装置４に記憶させることができる。
【００１５】
例えば、ＲＯＭ３に制御プログラムが記憶されていない場合、ＨＤやＣＤ−ＲＯＭなどの外部記憶装置４に制御プログラムを記憶させておきそれをＲＡＭ２に読み込むことで、ＲＯＭ３に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができ、制御プログラムの追加やバージョンアップ等を容易に行うことができる。例えば、自動伴奏生成処理等に用いられるプログラムや各種データ等をインストールすることによって、所望の自動伴奏生成装置を実現することができる。
【００１６】
入力操作部５は、マウスやキー等のパネル操作子や演奏鍵盤などの演奏操作子及び検出回路から成り、操作子による設定／演奏入力操作の内容を検出回路で検出し設定情報や押鍵音情報などをシステム本体内に導入する。例えば、パネル操作子にて、自動伴奏のスタート／ストップ等、このシステムの動作状態を設定したり、自動伴奏生成処理に必要な各種情報を入力し、或いは、演奏操作子の操作に従って演奏データを入力することができる。ここで、演奏操作子の演奏鍵盤において、伴奏用鍵域又は伴奏用鍵盤として設定された複数の鍵（以下、「伴奏鍵」という）は、伴奏音の音高を指示する押鍵音情報（音高指示情報）を入力するのに用いられる。表示部６は、ディスプレイ（ＣＲＴ、ＬＣＤ等の表示器）１０の表示内容や各種インジケータの点灯状態をＣＰＵ１からの指令に従って制御し、入力操作部５の操作に対する表示援助を行う。
【００１７】
音源部７は、音源（ソフトウエアを含む）や効果付与ＤＳＰを含み、ＣＰＵ１で処理された入力演奏データや自動伴奏データなどに対応する楽音信号を生成し、音源部７に接続されるサウンドシステム１１は、Ｄ／Ａ変換部やアンプ、スピーカを備え、音源部７からの楽音信号に基づく楽音を発生する。つまり、音源部７及びサウンドシステム１１は楽音生成部を形成し、例えば、自動伴奏生成処理時には、押鍵音情報に応じて生成された自動伴奏データに従って伴奏音を発音することができる。
【００１８】
また、図示の通信Ｉ／Ｆ８は、ローカルエリアネットワーク（ＬＡＮ）や、インターネット、電話回線などの一般用通信ネットワーク、或いは、ＭＩＤＩ用ネットワークに接続される各種インターフェースを一括して表わしており、サーバ等の他のコンピュータやＭＩＤＩ機器などの種々の外部機器ＰＤと、必要な各種情報を授受することができる。例えば、この装置に制御プログラムや各種データ等が記憶されていない場合、通信Ｉ／Ｆ８を介して他のコンピュータＰＤから制御プログラム等をダウンロードすることができる。また、外部機器ＰＤに、他の鍵盤や、弦楽器、管楽器を含むＭＩＤＩ演奏操作装置を用いて、その演奏操作に基づく演奏データや演奏音を通信Ｉ／Ｆ８から取り込むこともできる。
【００１９】
〔伴奏パターンデータと自動伴奏生成の例〕
この発明の一実施例による自動伴奏生成システムでは、或る伴奏鍵５を操作（押鍵）すると、自動伴奏生成プログラムに従って、ＲＯＭ３又は外部記憶装置４に記憶された伴奏パターンデータＡｐを利用して全ての押鍵音高を反映した伴奏データを自動的に生成し楽音生成部７，１１から伴奏音を放音することができる。図２及び図３は、この発明の一実施例による伴奏パターンデータと自動伴奏生成例を数値及びタイムチャート（第１周期分のみ）で表わしたものである。
【００２０】
ここで、図３を用いてこのシステムにおける自動伴奏生成の概要を極く簡単に説明しておく。この自動伴奏生成システムでは、複数のノートイベントＰ１〜Ｐ５から成る伴奏パターンデータＡｐが使用され、これらのノートイベントＰ１〜Ｐ５は、夫々が有するタイミング情報Timingにより時系列的に関連付けられている。伴奏用鍵５から任意の音高（例えば、Ｄ３，Ｆ３）を指示する押鍵音情報Ｍａ，Ｍｂ，…を入力すると、伴奏パターンデータＡｐ内から夫々のタイミング情報Timingに従って、順次、読み出される各ノートイベントＰ１；Ｐ２；…の音高は、有効に入力された全ての押鍵音情報Ｍａ，Ｍｂにより指示される音高（Ｄ３，Ｆ３）に変更されて、自動伴奏音を表わすノートイベントＮ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…が次々に生成され、これらのノートイベントＮ１ａ，Ｎ１ｂ，…；Ｎ２ａ，Ｎ２ｂ，…；…に対応する伴奏音が発音される。
【００２１】
以下、図２及び図３につき、より詳しく説明する。図２（１）は、１パート分の伴奏パターンデータＡｐの一例を表わしており、この伴奏パターンデータＡｐは、１パート分の一例が図２（１）に示されるように、複数の伴奏パターンノートイベント（以下、「パターンノート」という）Ｐ１，Ｐ２，…が所定の時間（以下、「パターン時間」という）Ｔｐにわたって時系列的に配列されて成る。各パターンノートＰ１，Ｐ２，…（各行）は、タイミング情報Timing、ゲートタイム情報Gate、音高情報Note、ベロシティ情報Vel （以下、「情報」の用語は省略することがある）等の情報から成り、それらの音高を時間的に展開すると図３（１）のようになる。
【００２２】
なお、このような伴奏パターンデータＡｐは、ＭＩＤＩなどの所定の汎用形式で記述されており、既存の曲データ中から引用したものであっても、実際の演奏を記録したものであってもよい。また、図２（１）及び図３（１）は、説明を簡単にするためにパターン時間Ｔｐ＝１小節分の伴奏パターンデータを例示しているが、これより長くてもよいし、勿論、短くしてより簡単なパターンにしてもよい。
【００２３】
ここで、タイミングTiming及びゲートタイムGateは、それぞれ、各パターンノートＰ１，Ｐ２，…の発音開始時点（タイミング）及びノートオン時間の長さを示す時間情報である。図示の例では、１拍を４８０クロックとしたクロック数で表わされており、パターン時間Ｔｐ＝１９２０クロックである。なお、第１パターンノートＰ１のゲートタイムGate(P1)＝“0490”は、第２パターンノートＰ２のタイミングTiming(P2)＝“0480”を超えており、レガートっぽい演奏表現が企図されている。
【００２４】
次に、音高Note及びベロシティVel は、それぞれ、各パターンノートＰ１，Ｐ２，…の音高及び音量（押鍵速度乃至強度）を表わす情報である。図示の例では、音高情報Noteに音高名“Ｃ４”，“Ｄ４”，…又はノート番号（ナンバ）値を用い、音量情報Vel にはベロシティ値を用いており、各値は、ＭＩＤＩ規格に従い、最小値＝“０”又は“１”〜最大値＝“１２７”の範囲内に設定される。
【００２５】
このシステムでは、任意数且つ任意音高の伴奏鍵をユーザが操作（押鍵）して、当該各鍵に対応する音高を表わす押鍵音情報Ｍａ，Ｍｂ，…が入力されると、有効に入力された押鍵音情報Ｍａ，Ｍｂ，…は、全て、伴奏音の音高を指示する音高指示情報として用いられる。例えば、図２（１）及び図３（１）の伴奏パターンデータＡｐに対して、音高“Ｄ３”，“Ｆ３”に対応する２鍵が押鍵されると、自動伴奏生成プログラムにより、同鍵操作中、伴奏パターンデータＡｐから、パターンノートＰ１；Ｐ２；…のタイミングTimingに従って、順次、各タイミングTimingに関連付けられたパターンノートＰ１；Ｐ２；…が読み出されるのに伴い、図２（２）及び図３（２）に示すように、押鍵音情報Ｍａ，Ｍｂが指示する２つの音高“Ｄ３”，“Ｆ３”を持つ伴奏ノートイベントＮ１ａ，Ｎ１ｂ；Ｎ２ａ，Ｎ２ｂ；…を自動伴奏データＡｎとして自動的に生成する。
【００２６】
つまり、各パターンノートＰ１；Ｐ２；…のタイミングTimingに基づく読出しタイミング（Ｔｒ）が到来する毎に、順次、各パターンノートＰ１；Ｐ２；…；Ｐ５が読み出され、これらのゲートタイムGate及びベロシティVel 、並びに、ユーザの押鍵音高“Ｄ３”，“Ｆ３”（ノートナンバ“６２”，“６５”）を持つ自動伴奏ノートイベント（以下、「伴奏ノート」という）Ｎ１ａ，Ｎ１ｂ；Ｎ２ａ，Ｎ２ｂ；…が生成される。そして、このような伴奏ノートの生成は、同一伴奏鍵の押鍵操作が持続している間、継続して行われ、伴奏パターンデータＡｐのパターン時間Ｔｐを１周期として循環的に繰り返される。
【００２７】
ここで、或るパターンノートＰｎのタイミングTiming(Pn)＝Ｔａが前のパターンノートＰｎ−１のゲートタイムGate(Pn-1)の消費時点ｔ＝Ｔｂ＝Timing(Pn-1)＋Gate(Pn-1)よりも前にある場合、パターンノートＰｎ−１に従ってそのまま伴奏ノートＮｎ−１を生成すると、タイミングＴａ〜Ｔｂの間、伴奏ノートＮｎ−１の発音を継続しつつ、パターンノートＰｎに対応する次の伴奏ノートＮｎが生成されて、発音数が２倍になってしまう。このような場合は、両伴奏ノートＮｎ−１，Ｎｎが重ならないように、先行する伴奏ノートＮｎ−１のゲートタイムGate(Nn-1)を制限する。このため、例えば、次の伴奏ノートＮｎの生成タイミングＴａでは、音源部７によりパターンノートＰｎ−１のゲートタイムGate(Pn-1)に従って既に発音中の全ての伴奏ノートＮｎ−１を消音する。或いは、音源部７に送る伴奏ノートＮｎ−１自体のゲートタイムGate(Nn-1)を、次のパターンノートＰｎのタイミングＴａに合った長さ〔Gate(Nn-1)＝Timing(Pn)−Timing(Pn-1)〕に短縮する。
【００２８】
図示の例では、図３タイムチャートに「（注１）」で示すように、第１パターンノートＰ１のゲートタイムGate(P1)の消費時点Ｔｂ＝４９０（クロック）は、第２のパターンノートＰ２のタイミングTiming(P2)＝４８０＝Ｔａをオーバし、時間Ｔａ〜Ｔｂ＝４８０〜４９０の間、両パターンノートＰ１，Ｐ２が重なる。そこで、第１パターンノートＰ１に従って生成される第１伴奏ノートＮ１ａ，Ｎ１ｂは、次に第２パターンノートＰ２に従って生成される第２伴奏ノートＮ２ａ，Ｎ２ｂに重ならないように、矢印で示すように、タイミングＴａで消音され、ゲートタイムGateが第２パターンノートＰ２のタイミングに合った長さ〔Gate(N1a,N1b) ＝Timing(P2)−Timing(P1)＝４８０〕に短縮される。
【００２９】
また、伴奏パターンデータＡｐ内においてタイミングTimingがほぼ等しい〔例えば、３２分音符長（６０クロック）以内で近接している〕複数のパターンノートは、和音とみなし、適当な所定の方法に従って選ばれた何れか一つのパターンノートについてのみ伴奏ノートを生成し、他のパターンノートは自動伴奏生成に反映させない。
【００３０】
図示の例では、図３タイムチャートの「（注２）」に示すように、第４及び第５パターンノートＰ４，Ｐ５は、開始タイミングＴｃが同じ〔Ｔｃ＝Timing(P4)＝Timing(P5)＝1440〕なので、和音とみなされ、時間長が大きい第４パターンノートＰ４〔Gate(P4)＞Gate(P5)〕に従って伴奏ノートＮ４ａ，Ｎ４ｂが生成され、第５パターンノートＰ５は自動伴奏生成に反映されない。つまり、この例では、最長時間のパターンノートを優先する方法を採用し、第５パターンノートＰ５については、時間範囲Ｔｃ〜Ｔｄ〔Ｔｄ＝Timing(P5)＋Gate(P5)＝1660〕が第４パターンノートＰ４の時間範囲Ｔｃ〜Ｔｅ〔Ｔｅ＝Timing(P4)＋Gate(P4)＝1670〕に含まれるため、自動伴奏音を生成させない。
【００３１】
〔自動伴奏生成の動作フロー〕
図４及び図５は、この発明の一実施例による自動伴奏生成の動作例を表わすフローチャートである。入力操作部（パネル操作子）５のユーザ操作により自動伴奏スタートが指示され、この自動伴奏生成の動作フローがスタートすると、ＣＰＵ１は、まず、ユーザ操作或いはデフォルトに従って初期設定を行う（ステップＳ１：なお、以下においては、記号“Ｓ…”単独で該当ステップを表わす）。初期設定には、例えば、この自動伴奏生成に使用する伴奏パターンデータＡｐの設定や、伴奏鍵の設定（例えば、伴奏用鍵域を定めるスプリットポイントの設定、伴奏鍵盤の指定など）、自動伴奏の最大同時発音数（例えば、１６）の設定などがある。この伴奏パターンデータＡｐの設定には、予めＲＯＭ３又は外部記憶装置４に用意された曲データから所望トラックの伴奏パターン部分を選択したり、伴奏パターン集から所望の伴奏パターンを選択したり、ユーザの実演奏による伴奏パターンを記録した後使用登録するなどの方法が用いられる。
【００３２】
ＣＰＵ１は、次いで、押鍵音情報格納領域KeyOnList 、伴奏ノート情報格納領域DataList及びパターンノート情報格納領域PatternNote （以下、各領域は、参照記号単独で表わす）をＲＡＭ２上にセットして、これらを初期化すると共に（Ｓ２）、タイマーをスタートする（Ｓ３）。なお、KeyOnList ，DataListは、初期状態では要素数が“０”であり、最大要素数は最大同時発音数となる。また、PatternNote に格納される伴奏パターンデータＡｐの各ノートイベント（パターンノート）のデータ構造は、通常のノートイベント情報と同じ記述形式でよく、初期状態は無効値がセットされる。そして、所定時間間隔のタイマー割込みにより、以後の本処理段階（Ｓ４〜Ｓ１８）に入る。
【００３３】
本処理段階では、まず、自動伴奏ストップの指示があったか否かを判別し（Ｓ４）、自動伴奏ストップ指示がないときは（Ｓ４→ＮＯ）、さらに、現在、初期設定（Ｓ１）で設定された伴奏パターンデータＡｐのパターンノートを読み出すべき読出しタイミングＴｒであるか否かを判断する（Ｓ５）。ここで、読出しタイミングＴｒは、伴奏パターンデータＡｐのパターン周期Ｔｐのｎ倍に個々のパターンノートのタイミングTimingを加算した値であり、Ｔｒ＝ｎ×Ｔｐ＋Timingで表わされる。なお、値ｎは、当初は０であるが、自動伴奏の時間進行がパターン時間Ｔｐを越える毎に“１”ずつ増加する自然数である。
【００３４】
ここで、読出しタイミングＴｒであれば（Ｓ５→ＹＥＳ）、伴奏パターンデータＡｐから当該パターンノートを読み出してPatternNote に記憶する（Ｓ６）。図２及び図３の例では、演奏開始時点ｔ＝０（クロック）で処理が開始され、この時点に等しい読出しタイミングＴｒ＝Timing(P1)＝“0000”で、直ちに第１パターンノートＰ１を読み出してPatternNote に記憶し、以後も、読出しタイミングＴｒ＝ｎ×1920＋Timing（ｎ＝０又は自然数）毎に、順次、パターンノートＰ２，Ｐ３，…を読み出していく。
【００３５】
なお、読出しタイミングＴｒの判断（Ｓ５）は、或る程度余裕のある時間幅（時間幅は設定可能であってもよい）を持って行われる。また、パターンノート記憶ステップ（Ｓ６）では、読出しタイミングＴｒが同時又は所定の余裕時間（例えば、６０クロック）以内で、和音とみなし得るパターンノートを全て読出し、複数イベントが読み出されたときは、適当な方法で選定された何れか１つのパターンノートをPatternNote に記憶する。例えば、図２及び図３のように、タイミングｔ＝Ｔｃ＝1440で第４及び第５パターンノートＰ４，Ｐ５が読み出されたときは、第４パターンノートＰ４をPatternNote に記憶する。
【００３６】
続いて、KeyOnList を初期化し（Ｓ７）、さらに、伴奏鍵５の押鍵に基づく現在の押鍵音情報を取得し、KeyOnList に記憶する（図５：Ｓ８）。この場合、初期設定ステップ（Ｓ１）で設定された最大同時発音数を超える押鍵については無視し、この発音数以下の押鍵を有効とする。なお、図２及び図３の例では、第１読出しタイミングＴｒ＝Timing(P1)＝０で、押鍵音記憶ステップ（Ｓ８）にて、押鍵音高“Ｄ３”（６２），“Ｆ３”（６５）がKeyOnList に記憶される。
【００３７】
次いで、発音中の自動伴奏音があるか否かを判断する（Ｓ９）。ここで、前のパターンノートに従ったDataList内の伴奏ノートによる自動伴奏音が継続して発音しているときは（Ｓ９→ＹＥＳ）、発音中の自動伴奏音をオフするように音源部７に指令し（Ｓ１０）、DataListを初期化する（Ｓ１１）。図２及び図３の例で説明すると、第２読出しタイミングＴｒ＝Timing(P2)＝“0480”＝Ｔａで、第２パターンノートＰ２がPatternNote に記憶され（Ｓ６）、このとき、その前の第１パターンノートＰ１に基づくDataListの伴奏ノートＮ１ａ，Ｎ１ｂにより、自動伴奏音が発音中である（Ｓ９→ＹＥＳ）。そこで、ＣＰＵ１は、この時点Ｔａで直ちに、音源部７に全自動伴奏音をオフさせ（Ｓ１０）、DataListを初期化する（Ｓ１１）。従って、伴奏ノートＮ１ａ，Ｎ１ｂのゲートタイムGateは結果的に値Ｔａに短縮される。
【００３８】
さらに、伴奏鍵５の押鍵タイミングが、PatternNote に格納されているパターンノートのタイミングTimingが表わす時刻Ｔｓより後ろの時刻であるか否かを判定する（Ｓ１２）。なお、この時刻Ｔｓは読出しタイミングＴｒに等しい。つまり、時刻Ｔｓは、物理的に厳密に云えば読出しタイミングＴｒに若干遅れるかもしれないが、音楽データ取扱い上は無視し得る遅れであり読出しタイミングＴｒと実質的に同じである。
【００３９】
ここで、開始時刻Ｔｓ以前に押鍵されたときは（Ｓ１２→ＮＯ）、KeyOnList 中の各押鍵音情報に対して、当該パターンノートのタイミングTimingに対応する開始時刻Ｔｓ、長さGate及び音量Vel 、並びに、押鍵音高を持つ伴奏ノートを生成し（要するに、パターンノートの音高情報Noteのみを変更された音高に書き換える）、それぞれ、DataListに記憶する（Ｓ１３）。そして、DataList内の伴奏ノートを音源部７に送り、対応する自動伴奏音をサウンドシステム１１から発音させる再生処理を行った後（Ｓ１４）、ストップ指示判別ステップ（図４：Ｓ５）に戻る。
【００４０】
次いで、読出しタイミング判定ステップに戻って読出しタイミングＴｒでないと判定されたときは（Ｓ４・ＮＯ→Ｓ５・ＮＯ）、続いて、現在の押鍵状態がKeyOnList の押鍵音高と同じか否かを判断する（Ｓ１５）。ここで、同一押鍵状態が維持されているときは（Ｓ１５→ＹＥＳ）、ストップ指示判別ステップ（Ｓ４）に戻り、読出しタイミングＴｒの到来毎に（Ｓ５・ＹＥＳ）上述の動作（Ｓ６〜Ｓ１４）を繰り返す。
【００４１】
図２及び図３の例では、第１パターンノートＰ１の開始時刻ｔ＝Ｔｓ＝０（クロック）で伴奏鍵Ｄ３，Ｆ３が押鍵されるので（Ｓ１２→ＮＯ）、音高情報Noteのみを押鍵音高Ｄ３，Ｆ３に書き換えた第１伴奏ノートＮ１ａ，Ｎ１ｂをDataListに記憶した後（Ｓ１３）、この押鍵状態が維持されている間、各パターンノートＰ２，Ｐ３，…が、順次、同じ態様で記憶される（Ｓ１３）。但し、DataListに記憶されるタイミングTimingは、それぞれの伴奏ノートの開始時刻Ｔｓ＝ｎ×1920＋Timing（ｎ＝０又は自然数）となる。
【００４２】
さて、押鍵状態判定ステップ（Ｓ１５）において、KeyOnList の押鍵音高とは別の押鍵がなされた判断したときは（Ｓ１５→ＮＯ）、さらに、押鍵変更された時点で、PatternNote のパターンノートが有効か否か、即ち、PatternNote に記憶されているパターンノートが発音持続時間中かどうかをチェックする（Ｓ１６）。ここで、押鍵変更時点において、このパターンノートのゲートタイムGateが消費されておらず、当該パターンノートの発音期間を維持しているときは（Ｓ１６→ＹＥＳ）、前述したKeyOnList 初期化〜DataList初期化ステップ（Ｓ７〜Ｓ１１）を経て、押鍵タイミング判定ステップ（Ｓ１２）に進む。なお、パターンノート有効性判定ステップ（Ｓ１６）や押鍵タイミング判定ステップ（Ｓ１２）におけるタイミング比較は、或る程度の時間幅を持って行ってもよい。また、それぞれの時間幅は設定可能であってもよい。
【００４３】
この場合、押鍵タイミング判定ステップ（Ｓ１２）では、PatternNote に格納されているパターンノートの開始時刻Ｔｓの後、つまり、対応する伴奏ノートの発音中に押鍵されたと判定され（Ｓ１２→ＹＥＳ）、当該パターンノートのタイミング及び長さを押鍵タイミングに応じて調整し、KeyOnList 中の各押鍵音情報に対して、調整されたタイミングTiming及び長さGateと、当該パターンノートの音量Vel と、押鍵音高とを持つ伴奏ノートを生成し、それぞれDataListに記憶する（Ｓ１７）。そして、当該伴奏ノートの再生処理を行った後（Ｓ１４）、ストップ指示判別ステップ（Ｓ４）に戻る。
【００４４】
例えば、図３において、第２パターンノートＰ２の開始時刻Ｔｓ＝Timing(P2)＋1920×０＝４８０＝Ｔａより後乃至同パターンＰ２の終了時刻＝９６０より前（第２伴奏ノートＮ２ａ，Ｎ２ｂが発音中）の時点ｔ＝Ｔｆで押鍵されたときは、伴奏ノートの途中での押鍵変更と判断され（Ｓ１６→ＹＥＳ）、当該パターンノートＰ２のタイミングTimingを押鍵タイミングＴｆに変更し、ゲートタイムGateをGate(P2)−（Ｔｆ−Ｔａ）に変更する調整を行い、ベロシティVel をVel (P2)＝７２とし音高Noteを新たな押鍵音高とした伴奏ノートをDataListに記憶する（Ｓ１４）。
【００４５】
また、PatternNote に記憶されているパターンノートの開始時刻Ｔｓ以前に別の伴奏用鍵が押鍵された場合〔Ｓ１５（ＮＯ）→Ｓ１６（ＮＯ）〕には、一旦当該パターンノートの記憶ステップに進んでから〔Ｓ４（ＮＯ）→Ｓ５（ＹＥＳ）→Ｓ６〕、KeyOnList 初期化〜DataList初期化ステップ（Ｓ７〜Ｓ１１）を経て、伴奏ノートの発音開始以前での押鍵と判定され（Ｓ１２→ＮＯ）、当該パターンノートの音高Noteのみを当該押鍵音高に書き換えて（タイミングTimingは開始時刻Ｔｓとなる）をDataListに記憶する（Ｓ１３）。
【００４６】
図２及び図３で説明すると、当初の押鍵（Ｄ３，Ｆ３）後、PatternNote に記憶されている何れかのパターンノートＰ１〜Ｐ５の開始時刻Ｔｓ以前に別の伴奏用鍵が押鍵された場合、例えば、図３の時刻Ｔｇ〜Ｔｃ〔Ｔｇ＝Timing(P3)＋Gate(P3)＝1210〕間のように、前後のパターンノートＰ３〜Ｐ４間にノートイベントが存在しない空白の時間範囲で押鍵された場合は、上述の過程〔Ｓ１５・Ｓ１６・Ｓ４（ＮＯ）→Ｓ５（ＹＥＳ）→Ｓ６〜Ｓ１２（ＮＯ）〕を経て、PatternNote のパターンノートＰ４の開始時刻Ｔｓ＝Timing(P3)＝Ｔｃ＝1440で、同パターンノートに対応する伴奏ノートをDataListに記憶する。
【００４７】
なお、この自動伴奏のスタート時に押鍵がないときは、伴奏パターンデータＡｐの読出しタイミング毎に、パターンノートを読み出してPatternNote を更新していく。この間、KeyOnList は初期化（Ｓ７）で“空”にされたままであり、DataListも、実質的に伴奏ノートイベントは記憶されない“空”の状態となる。
【００４８】
以上のようにして、所定の伴奏ノートの再生処理を行った後（Ｓ１４）、ストップ指示判別ステップ（Ｓ４）に戻った際、パネル操作子５のユーザ操作や曲データ進行の終了などによる自動伴奏ストップ指示を検出すると（Ｓ４→ＹＥＳ）、発音中の自動伴奏音があればそのオフを音源部７に指令して（Ｓ１８）、この自動伴奏生成フローを終了する。
【００４９】
〔種々の実施態様〕
以上、この発明の好適な一実施例について説明したが、これは単なる一例であって、この発明は、その精神を逸脱しない範囲で種々の変更が可能であり、種々の態様で実施することができる。例えば、伴奏パターンデータは、実施例では１パート（トラック）即ち１つの音色又は楽器音を想定しているが、複数のパート（トラック）でもよい。
【００５０】
伴奏パターンデータ内の音符情報列は、単音状態ばかりでもよいし、和音状態が混ざっていてもよい。伴奏パターンデータ内に和音がある場合、和音中の１音について長さや音量の情報を自動伴奏生成に用いればよい。その際、１音の選び方は、例えば、当該和音中で最初に読み込まれたものや、最長の時間長を持つものなど、適当な様々な方法を適用することができる。また、和音状態の判断の仕方は、例えばタイミング情報が３２分音符程度の所定時間幅内にある複数の音符情報を１つの和音と判断するようにしてもよい。
【００５１】
同時発音数の上限は、実施例では１６としたが、これに限らない。もしくはユーザ設定可能でもよい。また、音高指示情報を入力する手段には、実施例の特定の鍵盤（伴奏鍵盤）や鍵盤の一部鍵域（伴奏用鍵域）の外に、弦楽器や管楽器など非鍵盤タイプの演奏操作子又は機器を用いてもよい。音高指示情報は、さらに、リアルタイムで演奏されるものでもよいし、ＭＩＤＩ形式などで既に記録されたものを順次受信するようにしてもよい。
【００５２】
また、音高指示情報の入力に関して、実施例では実際の押鍵状態で押鍵音の有無を判断しているが、例えば、一度押鍵すれば、離鍵しても音高指示の入力状態を維持（ホールド）するように指令し、異なる押鍵若しくはストップ操作による解除指令が行われるまで、その押鍵を有効とするように構成してもよい。
【図面の簡単な説明】
【００５３】
【図１】この発明の一実施例による自動伴奏生成システムのハードウエア構成例を示すブロック図である。
【図２】この発明の一実施例による伴奏パターンデータと自動伴奏生成の例を数値的に説明する図である。
【図３】この発明の一実施例による伴奏パターンデータと１パターン時間（１小節）分の自動伴奏生成の例をタイムチャートで説明する図である。
【図４】この発明の一実施例による自動伴奏生成の動作例を表わすフローチャートの一部である。
【図５】この発明の一実施例による自動伴奏生成の動作例を表わすフローチャートの他部である。
【符号の説明】
【００５４】
Ｐ１；Ｐ２；…  伴奏パターンデータＡｐを構成するパターンノート（音符情報）、
Ｔｐ  パターン時間（繰返し周期）、
Ｍａ，Ｍｂ，…  押鍵音情報（音高指示情報）、
Ｎ１ａ，Ｎ１ｂ；Ｎ２ａ，Ｎ２ｂ；…  自動伴奏データＡｎを構成する伴奏ノート（伴奏音情報）。
【図１】
2005077763.tif 000003
【図２】
2005077763.tif 000004
【図３】
2005077763.tif 000005
【図４】
2005077763.tif 000006
【図５】
2005077763.tif 000007