(57)【要約】【課題】演奏者が初心者であっても、簡単な押鍵で、安定し、変化に富んだ自動伴奏を生成することが可能となる自動伴奏生成装置および自動伴奏生成方法を実現するためのプログラムを提供する。【解決手段】演奏者が伴奏パターンデータを選択すると、この伴奏パターンデータ（のパターンデータリスト）の各イベントデータにそれぞれ含まれる各音高が、まず、当該伴奏パターンデータ、演奏者の押鍵音および前記音高変換マップに基づいて変更（移動）され（イベントによっては、その音高を変更しないものもある）、次に、変更後の各音高が、当該伴奏パターンデータの基準音および上記押鍵音中の基準音に基づいて変更（移動）される。【選択図】    図６
2004286974.tif 000002
【特許請求の範囲】
【請求項１】
所定の音名を基準として予め作成された、複数のイベントデータからなる伴奏パターンデータであって、該各イベントデータはそれぞれ音高情報を含むものを記憶する伴奏パターン記憶手段と、
少なくとも１つの音高情報を入力する入力手段と、
該入力手段によって入力された、少なくとも１つの音高情報から基準音を決定する決定手段と、
該決定手段によって決定された基準音に基づいて、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報を変換する変換手段と
を有することを特徴とする自動伴奏生成装置。
【請求項２】
前記変換手段によって変換された、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報に対して、前記決定手段によって決定された基準音以外の、前記入力された音高情報の音名を持つ音高情報に差し替え可能か否かを判別する判別手段と、
該判別手段による判別の結果、差し替え可能と判別された、前記伴奏パターンデータ内のイベントデータに含まれる音高情報に対しては、当該入力された音高情報の音名を持つ音高情報に差し替える差し替え手段と
をさらに有することを特徴とする請求項１に記載の自動伴奏生成装置。
【請求項３】
前記入力手段によって入力され得る各音高情報それぞれの音名の、前記決定手段によって決定された基準音の音名からの音程毎に、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報に対して、該各音高情報の変換の仕方を示す変換マップを記憶する変換マップ記憶手段をさらに有し、
前記変換手段は、前記決定手段によって決定された基準音および前記音高変換マップ記憶手段に記憶された変換マップに基づいて、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報を変換する
ことを特徴とする請求項１に記載の自動伴奏生成装置。
【請求項４】
所定の音名を基準として予め作成された、複数のイベントデータからなる伴奏パターンデータであって、該各イベントデータはそれぞれ音高情報を含むものを伴奏パターン記憶手段に記憶する記憶手順と、
少なくとも１つの音高情報を入力する入力手順と、
該入力手順によって入力された、少なくとも１つの音高情報から基準音を決定する決定手順と、
該決定手順によって決定された基準音に基づいて、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報を変換する変換手順と
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、予め作成された伴奏パターンに基づいて自動伴奏を生成する自動伴奏生成装置および自動伴奏生成方法を実現するためのプログラムに関する。
【０００２】
【従来の技術】
予め作成された伴奏パターンに基づいて自動伴奏を生成する自動伴奏生成装置は、従来から知られている。
【０００３】
このような自動伴奏生成装置として、アルペジエータと呼ばれるものがある。アルペジエータは、演奏者の押鍵に応じてアルペジオ（分散和音）を生成するものであり、たとえば、複数のキー番号（音高に対応したノートナンバではなく、単純な番号）とその発音タイミングとからなるアルペジオパターンを予めメモリに記憶しておき、複数の鍵が同時に押鍵されると、該各押鍵にそれぞれ対応する各ノートナンバに、所定のルール（たとえば、音高の低い順）に従って番号を割り振り、この割り振られた番号に一致する、アルペジオパターン中のキー番号の発音タイミングで、該割り振られた番号に対応するノートナンバの音を発音させるようにして、押鍵音に基づいてアルペジオを生成するように構成されている。また、固定モードスイッチを設け、このスイッチがオンのときには、押鍵に応じて、固定音高のノートナンバが入力され、この固定音高のノートナンバに基づいて、上記方法と同様にして、アルペジオを生成するように構成されたアルペジエータもある（たとえば、特許文献１参照）。
【０００４】
一方、各種スタイル（ジャンル等）に応じた多種類の伴奏パターンを記憶し、演奏者の選択した伴奏パターンに基づいて、鍵盤等から検出した入力和音に合わせて自動伴奏を行うようにした自動伴奏装置もある。伴奏パターンは、個々の伴奏音に対応した音高データとタイミングデータとをセットにしたものであり、たとえばＣメジャなどの所定和音に基づいたソースパターンとして用意されている。そして、入力和音の種類に応じてソースパターン内の音高データの音高を変換するとともに、変換後の音高データの音高を、入力和音の根音の音高に応じてシフトし、入力和音にあった音高の伴奏音を生成するようにしている（たとえば、特許文献２参照）。
【０００５】
【特許文献１】
特開２００１−２２３５４号公報
【特許文献２】
特許３３１９３９０号公報
【０００６】
【発明が解決しようとする課題】
しかし、上記従来の自動伴奏生成装置のうち、押鍵音に基づいてアルペジオを生成するものでは、演奏者が押鍵している音高の音のみが発音されるので、演奏者は、自分自身のイメージ通りの伴奏音が発音されるように考慮して、押鍵操作をしなければならず、特に初心者にとっては、自動伴奏を生成するための押鍵操作が難しかった。
【０００７】
また、上記従来の自動伴奏生成装置のうち、押鍵音ではなく、固定音に基づいてアルペジオを生成するものでは、特に初心者であっても、自動伴奏を生成するための押鍵操作は簡単であるものの、演奏者の押鍵音は考慮されないので、演奏者自らが自動伴奏音に変化を付けることができなかった。
【０００８】
さらに、上記従来の自動伴奏生成装置のうち、演奏者の選択した伴奏パターンに基づいて、鍵盤等から検出した入力和音に合わせて自動伴奏を行うようにしたものでは、生成される自動伴奏の音高は、演奏者が押鍵している音高だけではなく、押鍵状態から検出された和音によっても決まるので、演奏者自らが自動伴奏音に変化を付けることができるものの、演奏者は、和音が成立するような（あるいは、意図した和音が検出されるような）押鍵操作をしなければならず、特に初心者にとっては、自動伴奏を生成するための押鍵操作が難しかった。
【０００９】
本発明は、この点に着目してなされたものであり、演奏者が初心者であっても、簡単な押鍵で、安定し、変化に富んだ自動伴奏を生成することが可能となる自動伴奏生成装置および自動伴奏生成方法を実現するためのプログラムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の自動伴奏生成装置は、所定の音名を基準として予め作成された、複数のイベントデータからなる伴奏パターンデータであって、該各イベントデータはそれぞれ音高情報を含むものを記憶する伴奏パターン記憶手段と、少なくとも１つの音高情報を入力する入力手段と、該入力手段によって入力された、少なくとも１つの音高情報から基準音を決定する決定手段と、該決定手段によって決定された基準音に基づいて、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報を変換する変換手段とを有することを特徴とする。
【００１１】
好ましくは、請求項１に記載の自動伴奏生成装置において、前記変換手段によって変換された、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報に対して、前記決定手段によって決定された基準音以外の、前記入力された音高情報の音名を持つ音高情報に差し替え可能か否かを判別する判別手段と、該判別手段による判別の結果、差し替え可能と判別された、前記伴奏パターンデータ内のイベントデータに含まれる音高情報に対しては、当該入力された音高情報の音名を持つ音高情報に差し替える差し替え手段とをさらに有することを特徴とする。
【００１２】
さらに、好ましくは、請求項１に記載の自動伴奏生成装置において、前記入力手段によって入力され得る各音高情報それぞれの音名の、前記決定手段によって決定された基準音の音名からの音程毎に、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報に対して、該各音高情報の変換の仕方を示す変換マップを記憶する変換マップ記憶手段をさらに有し、前記変換手段は、前記決定手段によって決定された基準音および前記音高変換マップ記憶手段に記憶された変換マップに基づいて、前記伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報を変換することを特徴とする。
【００１３】
また、請求項４に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１５】
図１は、本発明の一実施の形態に係る自動伴奏生成装置の概略構成を示すブロック図である。
【００１６】
同図に示すように、本実施の形態の自動伴奏生成装置は、文字入力用キーボード、マウス等のポインティングデバイスおよび各種スイッチ等の複数の操作子からなる操作子群１と、該操作子群１の各操作子の操作状態を検出する検出回路２と、装置全体の制御を司るＣＰＵ３と、該ＣＰＵ３が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ４と、楽曲データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ５と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する外部記憶装置６と、各種情報等を表示する、たとえば液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等を備えた表示装置７と、外部ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）機器等の外部制御機器１００を接続し、この外部制御機器１００とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）８と、上記記憶された楽曲データ等を楽音信号に変換する音源回路９と、該音源回路９からの楽音信号に各種効果を付与するための効果回路１０と、該効果回路１０からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Ｄｉｇｉｔａｌ−ｔｏ−Ａｎａｌｏｇ  Ｃｏｎｖｅｒｔｅｒ）やアンプ、スピーカ等のサウンドシステム１１とにより構成されている。
【００１７】
上記構成要素２〜１０は、バス１２を介して相互に接続され、通信Ｉ／Ｆ８には外部制御機器１００が接続され、音源回路９には効果回路１０が接続され、効果回路１０にはサウンドシステム１１が接続されている。
【００１８】
外部記憶装置６としては、たとえば、フレキシブルディスクドライブ（ＦＤＤ）、ハードディスクドライブ（ＨＤＤ）、ＣＤ−ＲＯＭドライブおよび光磁気ディスク（ＭＯ）ドライブ等を挙げることができる。そして、外部記憶装置６には、前述のように、ＣＰＵ３が実行する制御プログラムも記憶でき、ＲＯＭ４に制御プログラムが記憶されていない場合には、この外部記憶装置６に制御プログラムを記憶させておき、それをＲＡＭ５に読み込むことにより、ＲＯＭ４に制御プログラムを記憶している場合と同様の動作をＣＰＵ３にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１９】
通信Ｉ／Ｆ８には、図示例では、外部制御機器１００が直接接続されているが、これに限られず、たとえばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネット、電話回線等の通信ネットワークを介して、サーバコンピュータが接続されるようにしてもよい。この場合、外部記憶装置６に上記各プログラムや各種パラメータが記憶されていなければ、通信Ｉ／Ｆ８は、サーバコンピュータからプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータ（本実施の形態では、自動伴奏生成装置）は、通信Ｉ／Ｆ８および通信ネットワークを介してサーバコンピュータへとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワークを介してコンピュータへと配信し、コンピュータが通信Ｉ／Ｆ８を介して、これらプログラムやパラメータを受信して外部記憶装置６に蓄積することにより、ダウンロードが完了する。
【００２０】
外部制御機器１００としては、本実施の形態では、ＭＩＤＩ鍵盤装置が接続されているものとする。ＭＩＤＩ鍵盤装置は、演奏者が押鍵すると、その押鍵音に対応するＭＩＤＩイベントデータを生成して出力する。通信Ｉ／Ｆ８は、この出力、すなわちＭＩＤＩイベントデータを受信して、ＲＡＭ５の所定位置に確保されたＭＩＤＩイベント領域に格納する。
【００２１】
なお、本実施の形態の自動伴奏生成装置は、上述の構成から分かるように、汎用的なパーソナルコンピュータ上に構築されたものであるが、これに限らず、本発明を実施できる最小限要素のみから構成した専用装置上に構築してもよい。
【００２２】
図２は、前記外部記憶装置６から読み出されて前記ＲＡＭ５の所定領域に格納された１つの伴奏パターンデータの一例を示す図である。
【００２３】
同図に示すように、伴奏パターンデータは、ヘッダ情報、パターンの基準音名およびパターンデータリストによって構成されている。ヘッダ情報は、当該伴奏パターンデータの書誌的事項を記載するためのものであり、ヘッダ情報としては、たとえば、伴奏パターン名、基準となる拍子、当該伴奏パターンデータのデータ長などが記載されている。パターンの基準音名とは、当該伴奏パターンデータを作成するときに基準とした音名であり、図示例では、“Ｃ（ド）”を基準としている。なお、基準とした音は、音名に限らず、ノートナンバであってもよい。パターンデータリストは、当該伴奏パターンを生成するための基礎となる複数のデータが記載されたリストであり、発音タイミング（Ｔｉｍｉｎｇ）、発音持続時間（Ｇａｔｅ）、発音音高（Ｎｏｔｅ）およびベロシティ（Ｖｅｌ）からなるイベントデータ複数によって構成されている。なお、図示例では、１拍を４８０クロックとしているが、もちろん、これに限られる訳ではない。また、発音音高の横の括弧内の数字（たとえば、“Ｃ３”に対する（６０））は、ノートナンバを表している。なお、パターンデータリスト内の音高は音名で表現しておき、実際の発音音高、つまりオクターブを含む音高は、演奏者の押鍵音に基づいて決定するようにしてもよい。
【００２４】
伴奏パターンデータは、各種伴奏パターンに応じた個数だけ予め作成され、外部記憶装置６に記憶されており、演奏者がいずれかを選択すると、選択された伴奏パターンデータが読み出されてＲＡＭ５の上記所定領域に格納される。
【００２５】
図３は、選択された伴奏パターンデータのパターンデータリスト内の各発音音高を、演奏者の押鍵音に応じて変換する音高変換マップの一例を示す図であり、該音高変換マップは、たとえば前記ＲＯＭ４の所定領域に格納されている。
【００２６】
同図において、「パターン基準音名からの半音距離」とは、当該伴奏パターンデータの基準音名から、そのパターンデータリスト中、変換対象の音の音名までの音程（距離）を、半音単位で表したものである。また、「パターン基準音名がＣの場合の音名」とは、当該伴奏パターンデータの基準音名が“Ｃ”の場合に、そのパターンデータリスト中、変換対象の音の音名を表したものである。なお、「パターン基準音名からの半音距離」と「パターン基準音名がＣの場合の音名」とは、表現方法が異なるのみで、同じことを意味している。本実施の形態では、「パターン基準音名からの半音距離」を採用し、「パターン基準音名がＣの場合の音名」は採用していない。このため、「パターン基準音名がＣの場合の音名」は、括弧書きで表現されている。
【００２７】
さらに、「押鍵音中の基準音名からの半音距離」とは、押鍵音中の基準音（押鍵音が複数ある場合には、たとえば、最低音高のもの）の音名から、押鍵音中、対象となる音の音名までの音程（距離）を、半音単位で表したものである。
【００２８】
そして、マップを構成するデータは、変換対象の音の音高を移動させる変動量（移動量）を示している。なお、この音高変換マップを用いて、変換対象の音の音高を変動させる方法については、後述する。
【００２９】
以上のように構成された自動伴奏生成装置が実行する制御処理を、まずその概要を説明し、次に図４〜図７を参照して詳細に説明する。
【００３０】
本実施の形態の自動伴奏生成装置は、演奏者が選択した伴奏パターンデータ（のパターンデータリスト）の各イベントデータにそれぞれ含まれる各音高を、まず（１）当該伴奏パターンデータ、演奏者の押鍵音および前記音高変換マップに基づいて変更（移動）し（イベントによっては、その音高を変更しないものもある）、次に（２）変更後の各音高を、当該伴奏パターンデータの基準音および上記押鍵音中の基準音に基づいて変更（移動）した後、対応する発音タイミングで出力することにより、自動伴奏を生成するようにしている。
【００３１】
そして、本発明の特徴は、演奏者の押鍵音を、伴奏パターンデータの各イベントデータにそれぞれ含まれる各音高を変更するために用いていることにある。これにより、演奏者の押鍵音がそのまま発音されず、さらに、押鍵操作も何らかの規則（たとえば、押鍵音が和音を構成するというような規則）通りに行わなくてもよいので、演奏者が特に初心者であっても、簡単な押鍵操作で安定した伴奏を生成でき、また、演奏者の押鍵音に基づいて伴奏パターンは変化するので、変化に富んだ伴奏を生成することもできる。
【００３２】
次に、この制御処理を詳細に説明する。
【００３３】
図４は、本実施の形態の自動伴奏生成装置、特にＣＰＵ３が実行する伴奏データ生成処理の手順を示すフローチャートであり、図５および図６は、図４のステップＳ１１のデータリスト（ＤａｔａＬｉｓｔ）作成処理サブルーチンの詳細な手順を示すフローチャートである。
【００３４】
本伴奏データ生成処理は、主として、
（ａ）初期化処理
（ｂ）押鍵状態の検出処理
（ｃ）キーオンリスト（ＫｅｙＯｎＬｉｓｔ）作成処理
（ｄ）データリスト（ＤａｔａＬｉｓｔ）作成処理
（ｅ）伴奏音発音処理
の各処理によって構成されている。
【００３５】
以下、上記（ａ）〜（ｅ）の各処理を、順に説明する。
【００３６】
たとえば、演奏者が前記操作子群１の所定操作子を操作して、伴奏データ生成モードが選択されると、本伴奏データ生成処理が起動し、まず、処理は上記（ａ）の初期化処理に移行する。この（ａ）初期化処理では、音色の設定や伴奏パターンデータの選択設定、テンポ設定等の初期設定を行い（図４のステップＳ１）、前記ＲＡＭ５の所定位置に確保された領域ＫｅｙＯｎＬｉｓｔおよび領域ＤａｔａＬｉｓｔを初期化する（ステップＳ２）。ここで、領域ＫｅｙＯｎＬｉｓｔは、演奏者の押鍵に応じて入力されたイベントデータ（主として、ノートナンバ）を格納するための領域であり、領域ＤａｔａＬｉｓｔは、上記選択設定された伴奏パターンデータのパターンデータリストに含まれる全イベントデータ（主として、ノートナンバ）を格納するための領域である。なお、領域ＫｅｙＯｎＬｉｓｔおよび領域ＤａｔａＬｉｓｔを初期化するときには、該各領域ＫｅｙＯｎＬｉｓｔおよびＤａｔａＬｉｓｔに関連する領域も、同様に初期化しておく。領域ＫｅｙＯｎＬｉｓｔに関連する領域とは、図７（ａ）の領域ＢＮｋ，Ｎｋ（ｘ），Ｄｋ（Ｎｋ（ｘ））等であり、領域ＤａｔａＬｉｓｔに関連する領域とは、図７（ｂ）の領域ＢＮｄ，Ｎｄ（ｙ），Ｄｄ（Ｎｄ（ｙ）），Ｓ等である。なお、各領域に格納されるデータの内容については、後述する。
【００３７】
次に、処理は前記（ｂ）の押鍵状態の検出処理に移行する。この（ｂ）押鍵状態の検出処理では、たとえば、前記ＭＩＤＩイベント領域内のデータを読み出すことにより、押鍵状態を検出し（ステップＳ３）、読み出されたデータと領域ＫｅｙＯｎＬｉｓｔ内のデータとを比較することにより、押鍵状態に変化があったか否かを検出する（ステップＳ４）。このとき、押鍵状態に変化があれば、領域ＤａｔａＬｉｓｔは初期状態か否か、つまり、押鍵なし状態から押鍵あり状態に変化したか否かを判別し（ステップＳ５）、領域ＤａｔａＬｉｓｔが初期状態でないとき、つまり、ある押鍵状態から他の押鍵状態に変化したときには、変化前の押鍵状態で行っている自動伴奏処理（具体的には、後述するステップＳ１２でなされている処理）を中止した後（ステップＳ６）、前記ステップＳ２と同様に、領域ＫｅｙＯｎＬｉｓｔおよび領域ＤａｔａＬｉｓｔ（および両領域ＫｅｙＯｎＬｉｓｔおよびＤａｔａＬｉｓｔに関連する各領域）を初期化する（ステップＳ７）。一方、領域ＤａｔａＬｉｓｔが初期状態であるとき、つまり、押鍵なし状態から押鍵あり状態に変化したときには、直ちに、領域ＫｅｙＯｎＬｉｓｔおよび領域ＤａｔａＬｉｓｔ（および両領域ＫｅｙＯｎＬｉｓｔおよびＤａｔａＬｉｓｔに関連する各領域）を初期化する（ステップＳ７）。
【００３８】
次に、処理は前記（ｃ）のキーオンリスト作成処理に移行する。この（ｃ）キーオンリスト作成処理では、まず、ＭＩＤＩイベント領域に格納されているＭＩＤＩイベントデータを読み出し、その中の音高（ここで、音高とは、オクターブ情報を含む音名（たとえば、“Ｃ３”等）を意味するが、これに限らず、ノートナンバを採用するようにしてもよい）を抽出して、領域ＫｅｙＯｎＬｉｓｔに格納する。なお、オクターブは異なるものの、音名の同じ音高は、領域ＫｅｙＯｎＬｉｓｔに格納しなくてもよい。これは、本伴奏データ生成処理では、音名に基づいて各種処理を行うように構成されているからである。次に、領域ＫｅｙＯｎＬｉｓｔに格納された、少なくとも１つの音高（押鍵音）から基準音を決定する（ステップＳ９）。ここで、基準音を決定する方法は、本実施の形態では、最低音高のものを基準音とする方法を採用しているが、何らかの規則に従って、いずれか１つの音高を基準音として決定できれば、その決定方法はどのようなものを採用してもよい。次に、領域ＫｅｙＯｎＬｉｓｔに格納された各音高について、その音名Ｎｋ（ｘ）（ただし、ｘは、１以上の整数であって、領域ＫｅｙＯｎＬｉｓｔに格納された音高の個数までの値を取る）の、基準音の音名ＢＮｋに対する半音距離Ｄｋ（Ｎｋ（ｘ））を算出して、前記ＲＡＭ５の所定位置に確保された領域Ｄｋ（Ｎｋ（ｘ））に記憶する（ステップＳ１０）。なお、ステップＳ１０では、以降の処理に必要な半音距離Ｄｋ（Ｎｋ（ｘ））のみを記憶するようにしているが、半音距離Ｄｋ（Ｎｋ（ｘ））を算出するときに必要なデータ、すなわち、基準音の音名ＢＮｋ、および領域ＫｅｙＯｎＬｉｓｔに格納された各音高の各音名Ｎｋ（ｘ）も記憶しておいた方が好ましい。したがって、図７（ａ）の例では、領域ＫｅｙＯｎＬｉｓｔおよび領域Ｄｋ（Ｎｋ（ｘ））に加えて、その関連領域として、ＲＡＭ５上に、基準音の音名ＢＮｋを格納する領域ＢＮｋ、および領域ＫｅｙＯｎＬｉｓｔに格納された各音高の各音名Ｎｋ（ｘ）を格納する領域Ｎｋ（ｘ）を設けるようにしている。
【００３９】
次に、処理は前記（ｄ）のデータリスト作成処理に移行する。この（ｄ）データリスト作成処理では、選択された伴奏パターンデータのパターンデータリスト中の各イベントデータにそれぞれ含まれる各音高を、以下に述べる方法で変換することにより、目的の伴奏パターンデータを生成するようにしている。なお、（ｄ）データリスト作成処理は、具体例を用いて説明した方が理解し易いので、図７の例に従って説明する。
【００４０】
図７（ｂ）は、上記算出された半音距離Ｄｋ（Ｎｋ（ｘ））、図２のパターンデータリスト中の各音高（Ｎｏｔｅ）および図３の音高変換マップを用いて、図５および図６のフローチャート中、ステップＳ２１〜Ｓ３２の処理を行ったときの結果を示す図である。
【００４１】
図７（ｂ）において、まず、図２の伴奏パターンデータから、パターンの基準音名“Ｃ”を読み出して、ＲＡＭ５の所定位置に確保された領域ＢＮｄに格納し（ステップＳ２１）、伴奏パターンデータのパターンデータリスト中の各イベントデータの音高“Ｃ３”，“Ｅ３”，“Ｇ３”および“Ｃ４”を読み出して、ＲＡＭ５の所定位置に確保された領域ＤａｔａＬｉｓｔ（初期ＤａｔａＬｉｓｔ）に格納する（ステップＳ２２）。
【００４２】
次に、領域ＤａｔａＬｉｓｔに格納された各音高からそれぞれの音名Ｎｄ（ｙ）（ただし、ｙは、１以上の整数であって、領域ＤａｔａＬｉｓｔに格納された音高の個数までの値を取る）を取得し、当該音高と対応付けて、領域Ｎｄ（ｙ）に格納し、各音名Ｎｄ（ｙ）の、基準音名ＢＮｄ（＝Ｃ）に対する半音距離Ｄｄ（Ｎｄ（ｙ））を算出して、ＲＡＭ５の所定位置に確保された領域Ｄｄ（Ｎｄ（ｙ））に記憶する（ステップＳ２３）。
【００４３】
そして、領域ＤａｔａＬｉｓｔに格納されたすべての音高について、１音高ずつ、該音高を移動させる音高移動量Ｓを決定し、この決定された音高移動量Ｓだけ当該音高を移動させ、領域ＤａｔａＬｉｓｔとは別の領域（調整ＤａｔａＬｉｓｔ）の対応する位置に格納する。なお、移動後の音高は、領域ＤａｔａＬｉｓｔの対応する位置に上書きするようにしてもよい。以下、音高移動量Ｓの決定方法を説明する。
【００４４】
まず、領域ＤａｔａＬｉｓｔ（初期ＤａｔａＬｉｓｔ）の先頭に格納された音高“Ｃ３”について、該音高“Ｃ３”に対応する半音距離Ｄｄ（Ｎｄ（１））は、“０”であり、領域ＫｅｙＯｎＬｉｓｔに格納された各音高“Ｃ３”および“Ｅ♭３”に対応する各半音距離Ｄｋ（Ｎｋ（１））およびＤｋ（Ｎｋ（２））は、それぞれ“０”および“３”であるので、図３の音高変換マップから、最初に“０”列目の“０”行目の値（＝０）を読み出して、音高移動量Ｓ（このとき、領域Ｓはリセット（０）されている）に加算し（Ｓ＝０）、次に“０”列目の“３”行目の値（＝０）を読み出して、音高移動量Ｓに加算する（Ｓ＝０＋０）。このようにして得られた音高移動量Ｓで、音高“Ｃ３”を調整する（ステップＳ２５〜Ｓ２９→Ｓ２６〜Ｓ３０）。この場合、音高移動量Ｓの最終値は、“０”であるので、音高“Ｃ３”は変動しない。
【００４５】
次に、領域ＤａｔａＬｉｓｔ（初期ＤａｔａＬｉｓｔ）の先頭に格納された音高“Ｅ３”について、該音高“Ｅ３”に対応する半音距離Ｄｄ（Ｎｄ（２））は、“４”であり、領域ＫｅｙＯｎＬｉｓｔに格納された各音高“Ｃ３”および“Ｅ♭３”に対応する各半音距離Ｄｋ（Ｎｋ（１））およびＤｋ（Ｎｋ（２））は、それぞれ“０”および“３”であるので、図３の音高変換マップから、最初に“４”列目の“０”行目の値（＝０）を読み出して、音高移動量Ｓ（このとき、領域Ｓはリセット（０）されている）に加算し（Ｓ＝０）、次に“４”列目の“３”行目の値（＝−１）を読み出して、音高移動量Ｓに加算する（Ｓ＝０＋（−１））。このようにして得られた音高移動量Ｓで、音高“Ｅ３”を調整する（ステップＳ３１→Ｓ３２→Ｓ２５〜Ｓ２９→Ｓ２６〜Ｓ３０）。この場合、音高移動量Ｓの最終値は、“−１”であるので、音高“Ｅ３”は、“Ｅ♭３”に変動する。
【００４６】
このような処理を、領域ＤａｔａＬｉｓｔ（初期ＤａｔａＬｉｓｔ）に格納されたすべての音高について行った後、調整ＤａｔａＬｉｓｔに格納された各音高を、押鍵音の基準音に合わせてシフトする（ステップＳ３２→Ｓ３３）。
【００４７】
最後に、処理は前記（ｅ）の伴奏音発音処理に移行する。この（ｅ）伴奏音発音処理では、調整ＤａｔａＬｉｓｔ（上書きした場合には、領域ＤａｔａＬｉｓｔ）に格納された各音高で、前記選択された伴奏パターンデータのパターンデータリスト中の、対応するイベントデータの音高を差し替え、差し替え後の内容で、伴奏データを生成し、前記音源回路９に送信する（図４のステップＳ１２）。
【００４８】
このようにして、本実施の形態では、選択された伴奏パターンデータのパターンデータリスト中の各イベントデータにそれぞれ含まれる各音高を、演奏者の押鍵音に応じて変更して、新たな伴奏パターンデータを生成するようにしたので、簡単な押鍵操作で安定した伴奏を生成できるとともに、変化に富んだ伴奏を生成することもできる。
【００４９】
なお、前記（ｄ）データリスト作成処理では、音高変換マップを用いて、調整ＤａｔａＬｉｓｔを作成するようにしたが、音高変換マップを用いないで、アルゴリズムのみによって調整ＤａｔａＬｉｓｔを作成するようにしてもよい。たとえば、まず、領域ＫｅｙＯｎＬｉｓｔに格納された各音高について、その音名Ｎｋ（ｘ）を取得し、領域Ｎｋ（ｘ）に格納しておく。次に、選択された伴奏パターンデータのパターンデータリスト中の各イベントデータの音高を、領域ＤａｔａＬｉｓｔに格納し、この音高を、伴奏パターンデータの基準音名ＢＮｄと、領域ＫｅｙＯｎＬｉｓｔに格納された各音高から決定した基準音の音名ＢＮｋとに基づいて変動させる。そして、変動後の各音高にそれぞれ対応する各音名と、上記各音名Ｎｋ（ｘ）とを比較し、両者の半音距離が、たとえば“２”以内である場合、当該音高の音名が、当該音名Ｎｋ（ｘ）になるように、当該音高を変動させる。
【００５０】
また、本実施の形態では、音高変換マップは１つとしたが、これに限らず、複数個用意しておき、その中から演奏者が選択できるようにしてもよい。あるいは、伴奏パターン毎に用意するようにしてもよい。また、音高変換マップ中の各マップデータは、そのまま使用するようにしたが、これに限らず、演奏者が編集できるようにしてもよい。
【００５１】
さらに、演奏者によるイベントデータの入力は、本実施の形態では、ＭＩＤＩ鍵盤装置から行うようにしたが、入力手段は、もちろんこれに限られる訳ではなく、ＭＩＤＩイベントデータ以外のデータ形式のイベントデータを出力する鍵盤装置でも、鍵盤装置以外の、たとえば、弦楽器型の装置でも、さらには、シーケンサなどのように、予め記憶された演奏データを再生して出力するような装置でも、音高情報を含むイベントデータを入力できるものであれば、どのような種類のものを採用してもよい。
【００５２】
また、本実施の形態では、伴奏パターンデータは、予め作成されたもの複数の中から選択して使用するようにしたが、これに限らず、演奏者（ユーザ）が一から作成したり、既製のものを編集したりできるようにし、これを選択して使用するようにしてもよい。また、伴奏パターンデータは、複数パート分あってもよい。さらに、伴奏パターンデータのパターンデータリストには、本実施の形態では、音高を記憶するようにしたが、これに限らず、たとえば基準音からの半音距離数で表現したものを記憶するようにしてもよい。
【００５３】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ３やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００５４】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５５】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００５６】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００５７】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ３などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００５８】
【発明の効果】
以上説明したように、請求項１または４に記載の発明によれば、少なくとも１つの音高情報が入力され、該入力された、少なくとも１つの音高情報から基準音が決定され、該決定された基準音に基づいて、伴奏パターン記憶手段に記憶された伴奏パターンデータ内の各イベントデータにそれぞれ含まれる各音高情報が変換されるので、つまり、入力された音高情報がそのまま発音されず、さらに、入力操作も何らかの規則（たとえば、入力された音高情報が和音を構成するというような規則）通りに行わなくてもよいので、演奏者が特に初心者であっても、簡単な入力操作で安定した伴奏を生成でき、また、演奏者によって入力された音高情報に基づいて伴奏パターンは変化するので、変化に富んだ伴奏を生成することもできる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る自動伴奏生成装置の概略構成を示すブロック図である。
【図２】図１の外部記憶装置から読み出されて図１のＲＡＭの所定領域に格納された１つの伴奏パターンデータの一例を示す図である。
【図３】選択された伴奏パターンデータのパターンデータリスト内の各発音音高を、演奏者の押鍵音に応じて変換する音高変換マップの一例を示す図である。
【図４】図１の自動伴奏生成装置、特にＣＰＵが実行する伴奏データ生成処理の手順を示すフローチャートである。
【図５】図４のデータリスト作成処理サブルーチンの詳細な手順を示すフローチャートである。
【図６】図５のデータリスト作成処理サブルーチンの続きの手順を示すフローチャートである。
【図７】図５および図６のデータリスト作成処理サブルーチンによる処理結果の一例を示す図である。
【符号の説明】
３…ＣＰＵ（決定手段、変換手段、判別手段、差し替え手段）、４…ＲＯＭ（変換マップ記憶手段）、５…ＲＡＭ（伴奏パターン記憶手段）、６…外部記憶装置（伴奏パターン記憶手段）、１００…外部制御機器（入力手段）
【図１】
2004286974.tif 000003
【図２】
2004286974.tif 000004
【図３】
2004286974.tif 000005
【図４】
2004286974.tif 000006
【図５】
2004286974.tif 000007
【図６】
2004286974.tif 000008
【図７】
2004286974.tif 000009