(57)【要約】   【課題】自動伴奏パターンを構成する音符の音高を音楽的に適切に変更することができる自動伴奏装置を提供する。  【解決手段】ノートオンの音高を示す値であるノートナンバをｎ０とする（Ｓ３１）。次に、ｎ０の値を１２で割った剰余（ｎ０％１２）に対応するシフト量を図７（ａ）のテーブルＣＴから求め、ｎ０に加算してｎ１とする（Ｓ３２）。この処理によりｎ１は、コードの構成音となる。次に、ｎ１の値を１２で割った剰余（ｎ１％１２）と鍵盤５により指定されたコードのルートに基づいて、図７（ｂ）のルートによるオルターレーションテーブルＲＡを参照し、シフト量を求めて音高ｎ１に加算し、音高ｎ２とする（Ｓ３３）。次に、コードタイプによる変更が行われ（Ｓ３４）、最後に、鍵盤５により指定されたコードのルートを加算することにより（Ｓ３５）オルタレーションを完了する。  【選択図】    図８
2006126697.tif 000002
【特許請求の範囲】
【請求項１】
ルート情報とコード種類情報とを有するコード情報を入力する入力手段と、複数の音符情報により構成される自動伴奏パターンを複数記憶する記憶手段と、その記憶手段に記憶された複数の自動伴奏パターンのうちから任意の自動伴奏パターンを選択する選択手段と、その選択手段により選択された自動伴奏パターンを前記記憶手段から読出し前記入力手段により入力されたコード情報に基づいて自動伴奏を行う自動伴奏手段とを備えた自動伴奏装置において、
前記記憶手段に記憶された自動伴奏パターンを構成する音符情報が示す音高が、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコードの構成音のいずれにも一致しない場合に、その音高を、コード構成音のいずれかの音高に変更するとともに、その音高を前記入力手段により入力されたコード情報が有するルート情報に基づいて、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する音高変更手段を備えていること特徴とする自動伴奏装置。
【請求項２】
前記音高変更手段は、前記入力手段により入力されたコード情報が有するルート情報に基づいて、前記記憶手段に記憶されている自動伴奏パターンを構成する音符情報の音高を、前記入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない場合に、その音高をコード構成音のいずれかの音高に変更するとともに、その音高を前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する変更情報を記憶する音高変更テーブルを備え、
前記入力手段により入力されたコード情報が有するルート情報と、自動伴奏パターンを構成する音符情報の音高とに応じて、前記音高変更テーブルに記憶された変更情報を参照することにより音符情報の音高を変更するものであること特徴とする請求項１記載の自動伴奏装置。
【請求項３】
前記音高変更手段は、自動伴奏パターンを構成する音符情報の音高が、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない場合は、その音高をコード構成音のいずれかの音高に変更するコード外音変更手段と、
そのコード外音変更手段により変更された音高を、前記入力手段により入力されたコード情報が有するルート情報に基づいて、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する置換手段とを備えていること特徴とする請求項１記載の自動伴奏装置。
【請求項４】
前記コード外音変更手段は、前記記憶手段に記憶される自動伴奏パターンを構成する音符情報の音高を、前記入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない音高をコード構成音のいずれかに変更する変更情報を記憶するコード外音変更テーブルを備え、
前記自動伴奏パターンを構成する音符情報の音高に応じて、前記コード外音変更テーブルが記憶する変更情報を参照することにより、自動伴奏パターンを構成する音符情報の音高を変更するものであること特徴とする請求項３記載の自動伴奏装置。
【請求項５】
前記置換手段は、前記入力手段により入力されるコード情報が有するルート情報と、前記コード外音変更手段により変更された音高とに対応して、自動伴奏パターンを構成する音符情報の音高を、前記入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する変更情報を記憶する置換テーブルを備え、
前記コード外音変更手段により変更された音高と前記入力手段により入力されたコード情報が有するルート情報とに応じて、前記置換テーブルに記憶された変更情報を参照することにより、音符情報の音高を変更するものであること特徴とする請求項３または４記載の自動伴奏装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動伴奏パターンをコード情報に応じて変更し自動伴奏を行う自動伴奏装置に関する。
【背景技術】
【０００２】
従来、自動伴奏装置には、複数パートからなる自動伴奏パターンを記憶し、鍵盤等から指示されたコード情報に従って変更（オルタレーション）して出力する機能、すなわち指示されたコードに従って伴奏パターンの一部の音符の音高を上げる、または下げるなどして出力する機能を備えたものが知られている。
【０００３】
特開平１１−２１９１８２号公報（特許文献１）には、音楽的な役割に応じたオルタレーションの仕方で自動伴奏を行うことができる自動伴奏装置が開示されている。例えば、イントロやエンディングのような部分では、旋律を主体とした伴奏が形成されているので、指定されたコード情報のルート情報だけに応じて全体的に音高をシフトする。このオルタレーションの仕方をオブリガートタイプと呼んでいる。一方、楽曲のメイン部分については、コード情報の変化に応じて伴奏の音域が大きく変化しないように、シフト量が少なくなるようなオルタレーションを行っている。このオルタレーションの仕方をコードタイプと呼んでいる。
【特許文献１】特開平１１−２１９１８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された自動伴奏装置において、コードタイプによるオルタレーションを行う場合、伴奏パターンを構成する音符情報の音高が指定されたコード情報により特定されるコード構成音である場合には、他のコード構成音へ変更され、音楽的に問題はないが、コード構成音でない音高が、コード構成音ではない他の音高に変更され、音楽的に好ましくない伴奏パターンに変化してしまうことがあった。
【０００５】
本発明はかかる問題点を解決するためになされたものであり、自動伴奏パターンを構成する音符の音高を音楽的に適切に変更することができる自動伴奏装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するために、請求項１に記載の自動伴奏装置は、ルート情報とコード種類情報とを有するコード情報を入力する入力手段と、複数の音符情報により構成される自動伴奏パターンを複数記憶する記憶手段と、その記憶手段に記憶された複数の自動伴奏パターンのうちから任意の自動伴奏パターンを選択する選択手段と、その選択手段により選択された自動伴奏パターンを前記記憶手段から読出し前記入力手段により入力されたコード情報に基づいて自動伴奏を行う自動伴奏手段とを備えたものであって、前記記憶手段に記憶された自動伴奏パターンを構成する音符情報が示す音高が、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコードの構成音のいずれにも一致しない場合に、その音高をコード構成音のいずれかの音高に変更するとともに、その音高を、前記入力手段により入力されたコード情報が有するルート情報に基づいて、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する音高変更手段を備えている。
【０００７】
請求項２に記載の自動伴奏装置は、請求項１記載の自動伴奏装置において、前記音高変更手段は、前記入力手段により入力されたコード情報が有するルート情報に基づいて、前記記憶手段に記憶されている自動伴奏パターンを構成する音符情報の音高を、前記入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない場合に、その音高をコード構成音のいずれかの音高に変更するとともに、その音高を前記入力手段により入力されたコード情報によって特定されるコードの他のコード構成音に変更する変更情報を記憶する音高変更テーブルを備え、前記入力手段により入力されたコード情報が有するルート情報と、自動伴奏パターンを構成する音符情報の音高とに応じて、前記音高変更テーブルに記憶された変更情報を参照することにより音符情報の音高を変更するものである。
【０００８】
請求項３記載の自動伴奏装置は、請求項１記載の自動伴奏装置において、前記音高変更手段は、自動伴奏パターンを構成する音符情報の音高が、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない場合は、その音高をコード構成音のいずれかの音高に変更するコード外音変更手段と、そのコード外音変更手段により変更された音高を、前記入力手段により入力されたコード情報が有するルート情報に基づいて、前記入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する置換手段とを備えている。
【０００９】
請求項４記載の自動伴奏装置は、請求項３記載の自動伴奏装置において、前記コード外音変更手段は、前記記憶手段に記憶される自動伴奏パターンを構成する音符情報の音高を、前記入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない音高をコード構成音のいずれかに変更する変更情報を記憶するコード外音変更テーブルを備え、前記自動伴奏パターンを構成する音符情報の音高に応じて、前記コード外音変更テーブルが記憶する変更情報を参照することにより、自動伴奏パターンを構成する音符情報の音高を変更するものである。
【００１０】
請求項５記載の自動伴奏装置は、請求項３または４記載の自動伴奏装置において、前記置換手段は、前記入力手段により入力されるコード情報が有するルート情報と、前記コード外音変更手段により変更された音高とに対応して、自動伴奏パターンを構成する音符情報の音高を、前記入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する変更情報を記憶する置換テーブルを備え、前記コード外音変更手段により変更された音高と前記入力手段により入力されたコード情報が有するルート情報とに応じて、前記置換テーブルに記憶された変更情報を参照することにより、音符情報の音高を変更するものである。
【発明の効果】
【００１１】
請求項１または３記載の自動伴奏装置によれば、記憶手段に記憶された自動伴奏パターンを構成する音符情報が示す音高が、入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない場合に、その音高をコード構成音のいずれかの音高に変更するとともに、その音高を、入力手段により入力されたコード情報が有するルート情報に基づいて、入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する音高変更手段を備えているので、伴奏パターンを構成する音符の音高が音楽的に適切に変更されるという効果がある。すなわち、入力手段により入力されたコード情報のルートに応じて伴奏パターンを変更する際、伴奏の音域が大きく跳躍することがなく、かつ、伴奏パターンを構成する音符の音高がコードの構成音でない場合にも、音楽的に適切な音高に変更される。
【００１２】
請求項２に記載の自動伴奏装置によれば、請求項１記載の自動伴奏装置の奏する効果に加え、音高変更手段は、入力手段により入力されたコード情報が有するルート情報に対応して、記憶手段に記憶されている自動伴奏パターンを構成する音符情報の音高を、入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない場合に、その音高をコード構成音のいずれかの音高に変更するとともに、その音高を入力手段により入力されたコード情報が有するコード種類情報によって特定されるコード構成音の他のコード構成音に変更する変更情報を記憶する音高変更テーブルを備え、入力手段により入力されたコード情報が有するルート情報と、自動伴奏パターンを構成する音符情報の音高とに応じて、音高変更テーブルに記憶された変更情報を参照することにより音符情報の音高を変更するものであるので、制御プログラムにより変更する場合に比べ、速く変更することができるという効果がある。
【００１３】
請求項４記載の自動伴奏装置によれば、請求項３記載の自動伴奏装置の奏する効果に加え、コード外音変更手段は、記憶手段に記憶される自動伴奏パターンを構成する音符情報の音高を、入力手段により入力されるコード情報が有するコード種類情報によって特定されるコード構成音のいずれにも一致しない音高をコード構成音のいずれかに変更する変更情報を記憶するコード外音変更テーブルを備え、自動伴奏パターンを構成する音符情報の音高に応じて、コード外音変更テーブルが記憶する変更情報を参照することにより、自動伴奏パターンを構成する音符情報の音高を変更するものであるので、制御プログラムにより変更する場合に比べ、速く変更することができるという効果がある。
【００１４】
請求項５記載の自動伴奏装置によれば、請求項３または４記載の自動伴奏装置の奏する効果に加え、置換手段は、入力手段により入力されるコード情報が有するルート情報と、コード外音変更手段により変更された音高とに対応して、自動伴奏パターンを構成する音符情報の音高を、前記入力手段により入力されるコード情報が有するコード種類情報によって特定されるコードの他の構成に変更する変更情報を記憶する置換テーブルを備え、コード外音変更手段により変更された音高と前記入力手段により入力されたコード情報が有するルート情報とに応じて、置換テーブルに記憶された変更情報を参照することにより、音符情報の音高を変更するものであるので、制御プログラムにより変更する場合に比べ、速く変更することができるという効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の好ましい第１の実施形態について、添付図面を参照して説明する。図１は、本発明の一実施形態である自動伴奏装置１の電気的構成を示したブロック図である。自動伴奏装置１は、ＣＰＵ２（中央処理装置）と、そのＣＰＵ２により実行される制御プログラムを記憶したＲＯＭ３（リード・オンリ・メモリ）と、ＣＰＵ２が制御プログラムを実行する際の作業用のメモリエリアを提供するＲＡＭ４（ランダム・アクセス・メモリ）と、演奏を行うための鍵盤５と、各種パラメータを設定したり自動伴奏装置１に指示を行う操作子６と、その操作子６により設定されたパラメータなどを表示する表示器７と、ＣＰＵ２により送信された演奏情報に対応した楽音信号を生成する音源８と、その音源８により形成された楽音を増幅する増幅器９と、その増幅器９により増幅された楽音を放音するスピーカ１０により構成されている。
【００１６】
ＲＯＭ３には、図３，４，６，８に示すフローチャートの処理を行う制御プログラムや、図５に示す伴奏パターンや、図７に示す変換テーブルなどが記憶されている。鍵盤５は、メロディを演奏するための鍵域（メロディ鍵域）と、コードを指定するための鍵域（コード鍵域）とが備えられている。
【００１７】
ＣＰＵ２は、メロディ鍵域において鍵が操作されたことを検出した場合は、その操作に対応する発音開始、または発音停止などの演奏情報を音源８に送信する。一方、コード鍵域において鍵が操作されたことを検出した場合は、その操作によりコードが確定されたか否かを判断する。コードが確定されない場合には、何も行わず、コードが確定された場合には、そのコードのルート情報（ルート）とコード種類情報（コードタイプ）とを求める。そのルート情報とコード種類情報とに基づいて、ＲＯＭ３から読出した伴奏パターンをオルタレーションし、そのオルタレーションを行った演奏情報を音源８に送信する。
【００１８】
伴奏パターンは、ロック、ジャズ、ポップス、クラシックなどのジャンル毎に分けられ、さらに各ジャンル毎の伴奏ぱパターンは、イントロ、メイン１、フィルイン１、メイン２、フィルイン２、エンディングと言ったディビジョン毎に記憶されている。
【００１９】
各伴奏パターンは、音名「Ｃ」をルートとする音符情報により構成され、メジャー、マイナー、セブンスのコードファミリ毎に記憶されている。従って、鍵盤５のコード鍵域で指定されたコードのタイプが属するファミリに応じて、伴奏パターンが読出される。
【００２０】
オルタレーションの仕方には、オブリガートタイプとコードタイプとがあり、イントロやエンディングの場合には、オブリガートタイプ、メイン部分では、コードタイプによりオルタレーションが行われる。オブリガートタイプのオルタレーションについては、本発明の要旨ではないので、その説明を省略する。
【００２１】
コードタイプのオルタレーションについては、まず、読み出した伴奏パターンを構成する音符の音高が、鍵盤５により指定されたコードのファミリにより特定されるコード構成音である場合には、そのままとし、コード構成音ではない場合には、直近のコード構成音に変更する。つぎに、鍵盤５により指定されたコードのルートに従って音高を変更する。単純にルートに従って音高を変更すると音域が大きく変化する場合があるので、そのような場合には、他のコード構成音に変更する。さらに、コードタイプ（アドナインス、サス４）により音高を変化し、最後にルートの値に応じて全体にシフトする。
【００２２】
次に、図２を参照してこの自動伴奏装置１の操作パネルについて説明する。図２は、自動演奏装置１の操作パネルの一部を示すものである。図示するように、操作パネルには、操作子６と表示器７とが備えられている。操作子６として、演奏のテンポを設定するテンポ設定ツマミ６ａと、自動伴奏パターンを選択する６つの伴奏パターン選択スイッチ６ｂと、自動演奏の開始または停止を指示するスタート・ストップスイッチ６ｃとが備えられている。
【００２３】
テンポ設定ツマミ６ａは、自動伴奏のテンポを設定する操作子で、伴奏パターン選択スイッチ６ｂにより選択された伴奏パターンには、予め所定のテンポ値が設定されており、このテンポ設定ツマミ６ａを操作しない場合には、その予め設定されているテンポで演奏され、テンポ設定ツマミ６ａが操作された場合は、そのテンポ値が変更される。
【００２４】
伴奏パターン選択スイッチ６ｂは、自動伴奏のパターンを選択するスイッチである。ロック、ジャズ、ポップス、クラシックなどのジャンルに対応して、それらのジャンルに適合した伴奏情報がＲＯＭ３記憶され、この伴奏パターン選択スイッチ６ｂにより、いずれかを選択し、自動的に伴奏を演奏させることができる。
【００２５】
スタート・ストップスイッチ６ｃは、自動伴奏を開始または停止するように指示するスイッチである。自動伴奏の停止中に、スタート・ストップスイッチ６ｃが操作された場合には、自動伴奏が開始され、自動伴奏が実行されている時に、スタート・ストップスイッチ６ｃが操作された場合には、自動伴奏が停止される。なお、自動伴奏装置１には、これらの操作子の他に、図示しないが、フィルインやイントロ、エンディングなどのディビジョンを指定するスイッチや、各パートの音色を設定するスイッチや音量を調整するボリュームなどが備えられているが、本発明の要旨ではないのでその説明を省略する。
【００２６】
表示器７は、ＬＣＤなどにより構成されるもので、図２に示すように、スタイル選択スイッチ６ｂにより選択された伴奏パターン名（Ｒｏｃｋ３）や、設定されているテンポ（１４６）が数値で表示される。
【００２７】
次に、図３および図４を参照して、ＣＰＵ２がＲＯＭ３に記憶された制御プログラムに従って実行する自動伴奏処理について説明する。図３は、メイン処理を示すフローチャートであって、自動伴奏装置１の電源が投入されてから遮断されるまで実行される処理である。
【００２８】
まず、初期化処理を行う（Ｓ１）。この初期化処理としては、自動伴奏を行うための時刻を０に設定したり、表示器７に所定の初期画面を表示する処理などを行う。次に、押鍵イベントが発生したか否かを判断する（Ｓ２）。ここでは、メロディ鍵域についての処理は、説明を簡単にするため省略し、コード鍵域において押鍵または離鍵があったか否かを判断する。
【００２９】
押鍵イベントが発生していない場合は（Ｓ２：Ｎｏ）、Ｓ５の処理へ進み、押鍵イベントが発生した場合は（Ｓ２：Ｙｅｓ）、押鍵の変化によりコードが確定されたか否かを判断する（Ｓ３）。このコードの確定とは、例えば、鍵が一つだけしか押下されなかった場合は、コードは確定せず、２つ以上押された場合であって、その押鍵によりコードのルートとタイプとを特定することができる場合を、コードが確定したという。
【００３０】
コードが確定しない場合は（Ｓ３：Ｎｏ）、Ｓ５の処理へ進み、コードが確定された場合は（Ｓ３：Ｙｅｓ）、コードのルートとタイプとを求める（Ｓ４）。なお、複数の押鍵からコードのルートとタイプを求める方法については、各種の方法が公知である。求められたコードのルートとタイプとは、ＲＡＭ４の所定の記憶領域に記憶する。
【００３１】
次に、クロックイベントが発生したか否かを判断する（Ｓ５）。このクロックイベントは、ＣＰＵ２に図示しないタイマが設けられ、自動伴奏が開始されると、ティックの時間間隔で、タイマがＣＰＵ２に指示するイベントである。このティックとは、テンポ値に対応する時間間隔であり、テンポ値により特定される１拍の時間長さを所定の値（例えば、１２０）で除算した時間である。例えば、テンポ値が１２０であれば、１拍の長さは、５００ｍｓｅｃであり、これを１２０で除算すると１ティックは、４．１７ｍｓｅｃとなる。
【００３２】
このクロックイベントが発生した場合は（Ｓ５：Ｙｅｓ）、後述するクロックイベント処理を実行する。クロックイベントが発生していない場合（Ｓ５：Ｎｏ）およびクロックイベント処理を終了した場合は、次に操作パネルの操作子が操作されたか否かを判断する（Ｓ８）。操作子が操作された場合は（Ｓ７：Ｙｅｓ）、後述する操作子処理を行う。操作子が、操作されていない場合（Ｓ７：Ｎｏ）および操作子処理を終了した場合は、Ｓ２の処理に戻る。
【００３３】
次に、図４を参照して、操作子処理について説明する。図４は、操作子処理を示すフローチャートである。まず、テンポ設定ツマミ６ａが操作されてテンポ値が変更されたか否かを判断する（Ｓ１１）。テンポ値が変更された場合は（Ｓ１１：Ｙｅｓ）、変更されたテンポ値に応じてティックの値を算出し、算出された時間間隔でタイマがＣＰＵ２に指示を行うように、タイマを設定する（Ｓ１２：テンポ変更処理）。
【００３４】
テンポ変更処理を終了した場合、またはテンポ値が変更されていない場合（Ｓ１１：Ｎｏ）は、次に、伴奏パターン選択スイッチが操作されて、伴奏パターンが変更されたか否かを判断する（Ｓ１３）。
【００３５】
伴奏パターンが変更された場合は（Ｓ１３：Ｙｅｓ）、変更された伴奏パターンにより自動伴奏が行われるように設定するとともに、変更された伴奏パターンに設定されているテンポ値に応じてティックの値を算出し、算出された時間間隔でタイマがＣＰＵ２に指示を行うように、タイマを設定する（Ｓ１４：パターン変更処理）。
【００３６】
パターン変更処理を終了した場合、または伴奏パターンが変更されていない場合（Ｓ１３：Ｎｏ）は、次に、スタート・ストップスイッチが操作されたか否かを判断する（Ｓ１５）。スタート・ストップスイッチが操作された場合は（Ｓ１５：Ｙｅｓ）、自動伴奏を停止している時は、自動伴奏を開始するようにタイマの計時を開始し、自動伴奏を行っている時は、自動伴奏を停止するようにタイマの計時を停止する（Ｓ１６：スタート・ストップ変更処理）。スタート・ストップ変更処理を終了した場合、またはスタート・ストップスイッチが操作されていない場合は（Ｓ１５：Ｎｏ）、この操作子処理を終了してメイン処理へ戻る。
【００３７】
次に図５を参照してＲＯＭ３に記憶されている伴奏パターンのデータについて説明する。図５は、伴奏パターンを構成するデータの一例を示している。伴奏パターンは、演奏が行われる順に、時間（ｄｔ）に対応してイベントであるＭＩＤＩメッセージが記憶されている。時間は、つぎのＭＩＤＩメッセージが音源に送られるまでの時間であり、この時間の単位は、ティックである。
【００３８】
ＭＩＤＩメッセージは、ＭＩＤＩ規格により定められた通信される情報で、音色などを設定するプログラムチェンジや、音量などを設定するコントロールチェンジや、発音の開始を指示するノートオンなどが規定されている。ＭＩＤＩメッセージは、チャネル番号により、複数の演奏パートをそれぞれ制御することができる。
【００３９】
図３に示された例では、第１番目のデータは、時間が０に設定され、ＭＩＤＩメッセージとしてプログラムチェンジが記憶されている。従って、演奏の開始と同時に、このプログラムチェンジにが、音源８に送られる。音源８は、このプログラムチェンジを受信すると、プログラムチェンジにより指定されるパートの音色をプログラムチェンジにより指定される音色に設定する。
【００４０】
第２番目のデータは、時間が０に設定され、ＭＩＤＩメッセージとして、コントロールチェンジが記憶されている。第１番目のデータの時間が０に設定されているので、このコントロールチェンジも、演奏の開始と同時に音源８に送られる。音源８は、このコントロールチェンジを受信すると、コントロールチェンジにより指定されるパートの音量などを設定する。
【００４１】
第３番目のデータは、時間が１２０に設定され、ＭＩＤＩメッセージとして、ノートオンが記憶されている。第２番目のデータの時間が０に設定されているので、このノートオンも演奏の開始と同時に読出される。このノートオンの音高であるノートナンバは、鍵盤５により指定されるコードに応じてオルタレーションが行われ、音源８に送られる。音源８は、このノートオンを受信すると、ノートオンにより指定されるパートにおいて、ノートオンにより指定される音高の楽音をノートオンにより指定されるベロシティ（押鍵速度）に応じた音量で発音する。
【００４２】
第４番目のデータは、時間が６０に設定され、ＭＩＤＩメッセージとして、ノートオンが記憶されている。第３番目のデータの時間が１２０に設定されているので、第３番目のデータのノートオンが音源８に送られてから、１２０ティック後に、この第４番目のノートオンがオルタレーションされて音源８に送られる。
【００４３】
第５番目のデータは、時間が２に設定され、ＭＩＤＩメッセージとして、ノートオフが記憶されている。第４番目のデータの時間が６０に設定されているので、第４番目のデータのノートオンが音源８に送られてから、６０ティック後に読出される。ノートオンが音源８に送られた際に、ＲＡＭ４に、いずれの音高をいずれの音高に変更して音源８へ送られたかを示す変更情報が記憶されている。ノートオフが読出された場合には、ＲＡＭ４に記憶されている変更情報から対応する音高の変更情報を読出して、ノートオフのノートナンバを変更し、音源８に送信される。音源８は、ノートオフを受信すると、ノートオフにより指定されるパートにおいて、ノートオフにより指定される音高の楽音をノートオフにより指定されるベロシティ（離鍵速度）に応じた速さで減衰させる。以下、同様に、伴奏パターンは、記憶されている。
【００４４】
次に、図６を参照して、クロックイベント処理について説明する。図６は、クロックイベント処理を示すフローチャートである。まず、時間を表す変数ｔを１減じる（Ｓ２１）。この変数ｔは、伴奏パターンに順次記憶されたイベントを時間経過に従って実行するためのもので、一つのイベントが実行されると、その次に実行されるイベントまでの時間が設定され、変数ｔが０になれば、そのイベントを実行するようになされたものである。
【００４５】
次に、時間の変数ｔが、０または、負の値であるか否かを判断する（Ｓ２２）。時間の変数ｔが、正の値である場合は（Ｓ２２：Ｎｏ）、このクロックイベント処理を終了してメイン処理へ戻る。時間の変数ｔが０または負の値である場合は（Ｓ２２：Ｙｅｓ）、イベントであるＭＩＤＩメッセージを読み出し（Ｓ２３）、そのＭＩＤＩメッセージがノートオンまたはノートオフを示すノート情報か否かを判断する（Ｓ２４）。ノート情報である場合は（Ｓ２４：Ｙｅｓ）、後述するノート情報処理を行う（Ｓ２５）。
【００４６】
ノート情報処理を行った後、その処理されたノート情報または、Ｓ２４の判断処理で、ノート情報ではないと判断したＭＩＤＩメッセージを音源８へ送信し（Ｓ２６）、次のイベントの時間ｄｔを時間変数ｔに加算し（Ｓ２７）、Ｓ２２の処理へ戻る。
【００４７】
次に、図７を参照して、自動伴奏装置１におけるオルタレーション処理に用いる各種テーブルについて説明する。なお、これらの各種テーブルはＲＯＭ３に予め記憶されているものである。図７（ａ）は、伴奏パターンに含まれる音符の音高が鍵盤で指定されたコードの構成音以外の音高である場合に、その音高をコードの構成音へ変更するためのコード外音変更テーブルＣＴである。これらのテーブルに記憶されているシフト量（変更情報）は、半音を単位とするものであり、「＋１」は、「半音上げる」、「−１」は、「半音下げる」を意味する。
【００４８】
例えば、図７（ａ）に示すように伴奏の音高が、Ｃ＃である場合には、このテーブルからシフト量「−１」が得られる。これは、Ｃ＃の音高を半音下げることを指示している。Ｃ＃の音高は、１であり１−１＝０という演算が行われ、Ｃ＃（１）は、Ｃ（０）に変更されるということを表している。同様に、音高がＤ（２）の場合には、テーブルから「−２」が得られ、Ｄの音高は２であるから、２−２＝０となり、Ｄは、Ｃに変更される。
【００４９】
同様に、Ｂ♭〜Ｄの音高はＣに変更され、Ｅ♭〜Ｆの音高は、Ｅに変更され、Ｆ＃〜Ａの音高は、Ｇに変更される。
【００５０】
コードのルートが、Ｃ以外の場合には、ルートがＣの場合に変換し、コードの構成音になるように変換した後、もとのルートに対応する音高に戻す。コードのファミリがメジャーでない場合は、マイナー、セブンスそれぞれの変更テーブルをＲＯＭ３に記憶し、それぞれを参照して変更を行う。
【００５１】
図７（ｂ）は、ルートによるオルタレーションテーブルＲＡ（置換テーブル）であり、鍵盤５により指定されるコードのルートと伴奏パターンを構成する音符の音高とに応じて、その伴奏パターンを構成する音符の音高を変更するシフト量が示されている。この図７（ｂ）に示すオルタレーションテーブルは、コードファミリがメジャーの場合を、示しており、コードファミリがマイナーまたはセブンスの場合のオルタレーションテーブルは、別途記憶されている。
【００５２】
このオルタレーションテーブルに示されるように、ルートがＣからＤまでの場合には、シフト量が０であって、伴奏パターンを構成する音符の音高を変更しない値となっている。ルートが、Ｅ♭〜Ｆ＃、Ｇ〜Ｂ♭、Ｂの場合について、伴奏パターンを構成する音符の音高が、Ｂ♭〜Ｄ、Ｅ♭〜Ｆ、Ｆ＃〜Ａについて、それぞれシフト量が設定されている。これらの値は、伴奏パターンを構成する音符の音高が、Ｃのメジャーコードを構成する音高であるＣ、Ｅ，Ｇを、ルートに応じて変更する（コード構成音を他のコード構成音に変更する）ものであって、伴奏パターンを構成する音符の音高がコード構成音でない場合には、直近のコード構成音のシフト量と同じシフト量としているものである。
【００５３】
図７（ｃ）は、タイプによるオルタレーションテーブルＴＡであって、入力されたコードのタイプに応じて、各音名毎にオルタレーションのシフト量を決めるテーブルである。このタイプによるオルタレーションテーブルＴＡにおいては、縦欄に入力されたコードのタイプ、横欄に伴奏パターンを構成する音符の音高が書かれ、入力されたコードのタイプに対して各音高を各々どれだけずつシフトするかが示される。
【００５４】
例えば、コードのタイプがメジャー（ｍａｊ）である場合には、すべての音高につていシフト量は０に設定されているので、変更は行われない。コードタイプが、アドナインス（ａｄｄ９）の場合には、音高がＣの場合にシフト量が２に設定され、その他の音高については、０に設定されている。従って、コードタイプが、アドナインスの場合には、Ｃの音高が２変更されて、Ｄになる。
【００５５】
同様に、コードタイプがサス４（ｓｕｓ４）の場合は、音高がＥの場合のシフト量が１に設定され、他の音高の場合には、０に設定されている。従って、コードタイプが、サス４の場合には、Ｅの音高がＦに変更される。
【００５６】
次に、図８を参照して、この自動伴奏装置１におけるノート情報処理について説明する。図８は、ノート情報処理を示すフローチャートである。まず、ノート情報がノートオンかノートオフかを判断する（Ｓ３０）。ノート情報がノートオンである場合は（Ｓ３１：Ｙｅｓ）、ノートオンの音高を示す値であるノートナンバをｎ０とする（Ｓ３１）。次に、ｎ０の値を１２で割った剰余（ｎ０％１２）に対応するシフト量を図７（ａ）のコード外音変更テーブルＣＴから求め、ｎ０に加算してｎ１とする（Ｓ３２）。１２で割った剰余を求めるのは、伴奏は、所定の音域に渡っている。一方、いずれのオルタレーションテーブルも音高については、最も低いオクターブの音高について記憶されている。したがって、伴奏の音高をもっとも、テーブルを参照するためである。この処理により、ノートナンバが示す音高が、コードの構成音のいずれにも一致しない場合に、直近のコードの構成音に変更される。
【００５７】
次に、ｎ１の値を１２で割った剰余（ｎ１％１２）と鍵盤５により指定されたコードのルートに基づいて、図７（ｂ）のルートによるオルタレーションテーブルＲＡを参照し、シフト量を求め、音高ｎ１に加算して音高ｎ２とする（Ｓ３３）。次に、音高ｎ２を１２で割った剰余（ｎ２％１２）と鍵盤５により指定されたコードのタイプに基づいて図７（ｃ）のタイプによるオルタレーションテーブルＴＡを参照し、シフト量を求め、音高ｎ２に加算して音高ｎ３とする。（Ｓ３４）、最後に、音高ｎ３に鍵盤５により指定されたコードのルートを加算し音高ｎ４とすることにより（Ｓ３５）オルタレーションを完了する。このようにしてオルタレーションを完了すると、ＲＡＭ４に、ノートナンバｎ０をｎ４に変更したことを示す変更情報を記憶する。
【００５８】
Ｓ３０の処理で、ノート情報がノートオンではなくノートオフであると判断した場合は（Ｓ３０：Ｎｏ）、そのノートオフのノートナンバに一致するｎ０の音高をＲＡＭ４に記憶した変更情報の中から検索し、その検索した変更情報に基づいてノートオンのノートナンバをｎ４の音高に変更するとともに、その変更情報をＲＡＭ４から消去する（Ｓ３６）。ノートオフは、オルタレーションを行わない理由は、ノートオンが読出された時に鍵盤５により指定されていたコードと、そのノートオンに対応するノートオフが読出されたときに鍵盤５により指定されているコードとが異なる場合があるからである。Ｓ３５、または、Ｓ３６の処理が終了するとメイン処理に戻る。
【００５９】
以上、第１の実施形態について説明したように、伴奏パターンを構成する音符の音高が鍵盤５により指定されたコードの構成音のいずれにも一致しない場合は、コードの構成音に変更し、鍵盤５により指定されたコードのルートにより変更する際に、音域が大きく跳躍しないように他のコードの構成音に変更される。従って、コードタイプのオルタレーションが、音楽的に適切に行われる。
【００６０】
次に、図９を参照して、第２の実施形態の自動伴奏装置１について説明する。図２は、第１の実施形態におけるコード外音変更テーブルＣＴと、ルートによるオルタレーションテーブルとを一つのテーブルに合成した音高変更テーブルＣＲである。なお、前記した第１の実施形態の自動伴奏装置１と同一部分については、説明を省略し、異なる部分についてのみ説明する。
【００６１】
この音高変更テーブルは、鍵盤５により指定されるコードのルートと、伴奏パターンを構成する音符の音高に対応して、伴奏パターンを構成する音符の音高を、鍵盤５により指定されるコード情報が有するコード種類情報により特定されるコード構成音のいずれにも一致しない場合は、コードの構成音に変更するとともに、鍵盤５により指定されるコード情報が有するルート情報に応じて、コード情報が有するコード種類情報により特定されるコード構成音の他のコード構成音に変更するシフト量を記憶したものである。
【００６２】
したがって、この第２の実施形態では、図８に示すノートオン処理において、Ｓ３１までの処理は、第１の実施形態と同一であり、Ｓ３２の処理とＳ３３の処理が同時に行われ、ｎ０の値と、ルートとからｎ２の値が求められる。ｎ２の値が求められると、それ以降の処理は、第１の実施例と同一である。
【００６３】
この実施形態の場合には、伴奏パターンを構成する音符の音高と鍵盤５により指定されたコードのルートとから、そのコードの構成音と一致しない音高をコードの構成音に変更することと、ルートによるオルタレーションとを速く行うことができる。
【００６４】
以上、実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。                        
例えば、上記第１の実施形態では、オルタレーションを行う際、まず音符情報の音高を指定されたコード情報により特定されるコードの構成音に変更し、つぎにそのコードのルート情報に従って変更されたコードの構成音を、音域が変化しないように変更したが、先に、音符情報の音高をコードのルート情報に従って音域が変化しないように変更し、その変更された音高を、コードの構成音に変更するようにしても良い。
【００６５】
また、上記第１および第２の実施形態では、コード情報は、鍵盤５により入力されるものとしたが、予め演奏の進行に対応するコード情報（コード進行）を記憶し、演奏の進行に従ってコード情報を読み出して、そのコード情報を入力するものとしてもよい。
【００６６】
また、上記第１および第２の実施形態では、制御プログラムを実行することによりＣＰＵ２が、各種のオルタレーションテーブルを参照し、伴奏パターンから読み出された音符の音高を変更するようにしたが、制御プログラムのみにより条件を判断して、音高を変更するようにしてもよい。
【００６７】
また、上記第１の実施形態では、まず、コード外音変更テーブルＣＴを参照して伴奏パターンを構成する音符の音高がコードの構成音のいずれにも一致しない場合は、コードの構成音に変更し、つぎにルートによるオルタレーションテーブルＲＡを参照して、他のコードの構成音に変更するようにしたが、伴奏パターンがコード構成音とそのコード構成音に対する装飾音符とで構成されているような場合には、コード外音変更テーブルＣＴによる変更を行わず、ルートによるオルタレーションテーブルＲＡによる変更を行うオルタレーションを行ってもよい。
【図面の簡単な説明】
【００６８】
【図１】本発明の自動伴奏装置の電気的構成を示したブロック図である。
【図２】自動伴奏装置の操作パネルを示す図である。
【図３】メイン処理を示すフローチャートである。
【図４】操作子処理を示すフローチャートである。
【図５】伴奏パターンの一例を示す図である。
【図６】クロックイベント処理を示すフローチャートである。
【図７】ノートオン処理を示すフローチャートである。
【図８】（ａ）は、音符の音高をコード構成音へ変更するコード外音変更テーブル、（ｂ）は、ルートによるオルタレーションテーブル（置換テーブル）、（ｃ）は、タイプによるオルタレーションテーブルである。
【図９】第２の実施形態における音高変更テーブルを示す図である。
【符号の説明】
【００６９】
１                          自動伴奏装置
２                          ＣＰＵ
３                          ＲＯＭ（記憶手段）
４                          ＲＡＭ
５                          鍵盤（入力手段）
６ｂ                        伴奏パターン選択スイッチ（選択手段）
ＣＴ                        コード外音変更テーブル
ＲＡ                        置換テーブル
ＣＲ                        音高変更テーブル
【図１】
2006126697.tif 000003
【図２】
2006126697.tif 000004
【図３】
2006126697.tif 000005
【図４】
2006126697.tif 000006
【図５】
2006126697.tif 000007
【図６】
2006126697.tif 000008
【図７】
2006126697.tif 000009
【図８】
2006126697.tif 000010
【図９】
2006126697.tif 000011