(57)【要約】      （修正有）【課題】演奏者の押鍵状態に応じて伴奏コードを適切に出力するコード出力装置を提供する。【解決手段】ＣＰＵは、複数の音高データの取得のタイミング（取得時点が属する小節）に応答して、コード進行データＡ，Ｂ，Ｃの夫々に対応するコードデータの中から、取得した複数の音高データ夫々とのマッチ度が最大のコードデータ（取得した複数の音高データ夫々のコードマッチ値の合計値が最小のコードデータ）を選択し、コード進行データに基づいて出力する。【選択図】図２
2013045080.tif 000002
【特許請求の範囲】
【請求項１】
複数のコードデータおよび当該コードデータの夫々を読み出すタイミングデータを有するコード進行データを複数種記憶する記憶手段と、
この記憶手段に記憶された複数のコード進行データ夫々から、前記タイミングデータで定められたタイミングで対応するコードデータを読み出す読み出し手段と、
外部より複数の音高データを取得する取得手段と、
この取得手段の取得のタイミングに応答して、前記読み出し手段にて前記記憶手段から読み出されている、前記複数のコード進行データ夫々に対応するコードデータの中から、前記取得手段により取得された複数の音高データ夫々とのマッチ度が最大のコードデータを選択する選択手段と、
この選択手段によりコードデータが選択された後、当該コードデータを有するコード進行データに基づいて読み出されるコードデータを出力する出力手段と、
を有するコード出力装置。
【請求項２】
前記選択手段は、
前記取得手段により取得された複数の音高データで表わされる音高夫々が、前記各コード進行データに対応するコードデータで表わされるコードのコード構成音、コードスケール音あるいはそれ以外の音のいずれかを識別する識別手段と、
この識別手段による識別結果がコード構成音である場合、コードスケール音である場合、それ以外の音である場合の順で、前記音高と前記コードデータとのマッチ度を大きく判定する判定手段と、
を有する請求項１記載のコード出力装置。
【請求項３】
複数のコードデータおよび当該コードデータの夫々を読み出すタイミングデータを有するコード進行データを複数種記憶する記憶手段と、外部より複数の音高データを取得する取得手段と、を有するコンピュータに、
この記憶手段に記憶された複数のコード進行データ夫々から、前記タイミングデータで定められたタイミングで対応するコードデータを読み出す読み出しステップと、
この取得手段の取得のタイミングに応答して、前記記憶手段から読み出されている、前記複数のコード進行データ夫々に対応するコードデータの中から、前記取得手段により取得された複数の音高データ夫々とのマッチ度が最大のコードデータを選択する選択ステップと、
このコードデータが選択された後、当該コードデータを有するコード進行データに基づいて読み出されるコードデータを出力する出力ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏者の押鍵状態に応じて伴奏コードを適切に出力するコード出力装置およびプログラムに関する。
【背景技術】
【０００２】
従来、コードシーケンサと呼ばれる自動伴奏装置が知られている。この種の装置では、楽曲の進行順にコードデータ（和音データ）を記憶させてなるコード進行データを指定テンポに同期して読み出し、読み出したコードデータに応じて繰り返し読み出される伴奏パターン用シーケンスデータの音高を変換することにより自動伴奏を行うように構成されている。
コードデータとは、ルート（根音）およびタイプ（和音種類）からなり、発音すべき和音を指定する情報である。また、コード進行データとは、このコードデータを複数、楽曲の進行順にならべたデータから形成されている。
【０００３】
例えば、特許文献１には、予め定められた複数のコード進行データの中から、演奏者がスイッチを操作することで所望するコード進行データを選択し、この選択されたコード進行データによる伴奏が行われるように構成された自動伴奏装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５４３１５９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された自動伴奏装置では、常に予め定められたコード進行で伴奏が行われるだけであり、その伴奏形態は固定的である。通常、同じ曲を演奏する場合でも、その伴奏形態は演奏者夫々によって様々なバリエーションがあるのが現実であり、特許文献１に開示された構成では、演奏者が意図的に伴奏形態を変えようとしても、変更することが不可能であって、あまりにも面白味がなかった。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、演奏者の演奏意図を反映させた様々なバリエーションの伴奏形態を提供できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一態様のコード出力装置は、
複数のコードデータおよび当該コードデータの夫々を読み出すタイミングデータを有するコード進行データを複数種記憶する記憶手段と、
この記憶手段に記憶された複数のコード進行データ夫々から、前記タイミングデータで定められたタイミングで対応するコードデータを読み出す読み出し手段と、
外部より複数の音高データを取得する取得手段と、
この取得手段の取得のタイミングに応答して、前記読み出し手段にて前記記憶手段から読み出されている、前記複数のコード進行データ夫々に対応するコードデータの中から、前記取得手段により取得された複数の音高データ夫々とのマッチ度が最大のコードデータを選択する選択手段と、
この選択手段によりコードデータが選択された後、当該コードデータを有するコード進行データに基づいて読み出されるコードデータを出力する出力手段と、
を有する、
ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、演奏者の演奏意図を反映させた伴奏を行うことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るコード出力装置１の構成図である。
【図２】本発明の実施形態に係るコード進行データを示す図である。
【図３】本発明の実施形態に係るコード出力装置１において実行される全体処理を示すフローチャートである。
【図４】本発明の実施形態に係るコード出力装置１において実行される鍵盤処理を示すフローチャートである。
【図５】本発明の実施形態に係るコード出力装置１において実行される自動伴奏処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施形態について説明する。
【００１１】
図１は、本実施形態によるコード出力装置１の構成図である。
コード出力装置１は、図１に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３と、スイッチ（ＳＷ）群１０４と、鍵盤（演奏操作子群）１０５と、音源１０６と、発音回路１０７と、を備えた構成となっている。
ＣＰＵ１０１は、ＲＯＭ１０２に記録されているプログラムに従って各種の処理を実行する。
ＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラム、自動伴奏用の各種コード進行データ、および各種制御用データを格納する。
ＲＡＭ１０３には、ＣＰＵ１０１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
スイッチ（ＳＷ）群１０４は、各種スイッチを有する。
鍵盤（演奏操作子群）１０５は、ユーザーの押鍵により楽曲の音高を順次指定していくものである。
音源１０６は、ＣＰＵ１０１の指示に従ってデジタル楽音用波形データを生成し出力する。
発音回路１０７は、音源１０６が出力する波形データをアナログ波形信号（オーディオ信号）に変換して、出力する。
【００１２】
図２は、ＲＯＭ１０２に格納されたコード進行データを示す図である。
【００１３】
［コード進行データの構成］
図２に示すようにコード進行データは複数あり、コード進行データＡ（図２（ａ））、コード進行データＢ（図２（ｂ））、およびコード進行データＣ（図２（ｃ））が存在する。コード進行データＡを例として説明すると、コード進行データＡでは、小節ごとにコードとコードマッチデータが対応している。例えば、１小節目は、コードがＣ（コード構成音はＣ，Ｅ，Ｇ（ド、ミ、ソ））であり、２小節目は、コードがＡｍ（コード構成音はＡ，Ｃ，Ｅ（ラ、ド、ミ））であり、３小節目は、コードがＤｍ７（コード構成音はＤ，Ｆ，Ａ，Ｃ（レ、ファ、ラ、ド））、４小節目は、コードがＧ７（コード構成音はＧ，Ｂ，Ｄ，Ｆ（ソ、シ、レ、ファ））である。
【００１４】
ここで、コードマッチデータについて説明する。コードマッチデータは、１２個の音種（Ｃ（ド）、Ｃ♯（ド♯）、Ｄ（レ）、Ｅ♭（ミ♭）、Ｆ（ファ）、Ｆ♯（ファ♯）、Ｇ（ソ）、Ａ♭（ラ♭）、Ａ（ラ）、Ｂ♭（シ♭）、Ｂ（シ））ごとに数値（コードマッチ値）を有している。このコードマッチ値は、コード構成音である場合「０」、コードスケール音である場合「１」、アザートーン（コード構成音でもコードスケール音でもない音）である場合「２」である。
コードマッチ値とは、鍵盤１０５においてユーザーにより押鍵されている複数の音高の夫々がどのくらいコードに対して和声的に類似しているかを示す指標となる値である。そして、押鍵されている複数の音高の夫々のコードマッチ値の合計値が小さいほど、押鍵されている複数の音高がコードに和声的に類似する度合が大きくなる。本実施形態では、この類似の度合いをコードマッチ度と定義する。
なお、本実施形態では、ユーザーにより押鍵されている音高の数は複数あるものとして説明する。
【００１５】
本実施形態において、コードスケール音とは、現在のスケール（調性）の構成音のうちコード構成音を除いた音種である。
例えば、コードがＣの場合、コード構成音はＣ，Ｅ，Ｇ（ド、ミ、ソ）であり、これらに対応するコードマッチ値が「０」となっている。
また、コードスケール音は、現在のスケール（ハ長調）の構成音（Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ａ，Ｂ（ド、レ、ミ、ファ、ソ、ラ、シ））のうち、コード構成音（Ｃ，Ｅ，Ｇ（ド、ミ、ソ））を除いた（Ｄ，Ｆ，Ａ，Ｂ（レ、ファ、ラ、シ））であり、これらに対応するコードマッチ値が「１」となっている。
さらに、アザートーンは、上記１２個の音種から、コード構成音（Ｃ，Ｅ，Ｇ（ド、ミ、ソ））およびコードスケール音（Ｄ，Ｆ，Ａ，Ｂ（レ、ファ、ラ、シ））を除いた（Ｃ♯，Ｅ♭，Ｆ♯，Ａ♭，Ｂ♭（ド♯，ミ♭，ファ♯，ラ♭，シ♭））であり、これらに対応するコードマッチ値が「２」となっている。
その他のコードについても、同様である。
【００１６】
以上、コード進行データＡについて説明したが、他のコード進行データＢ，Ｃについても同様である。なお、コード進行データの種類は、コード進行データＡ，Ｂ，Ｃに限られず、その他のコード進行データ（例えば、コード進行データＤ，Ｅ…など）を追加してもよい。
【００１７】
［コード進行データによるコード決定方法］
さらに、図２を参照して、コード進行データによるコード決定方法について説明する。
例えば、ユーザーが２小節目にＣ，Ｅ（ド、ミ）の音を押した場合、コード進行データＡの２小節目のコードマッチデータのＣに対応するコードマッチ値は「０」、Ｅに対応するコードマッチ値は「０」である。さらにコードマッチ値の総和をとり、コードマッチ値の合計値は、０＋０＝０となる。
同様に、コードマッチ値の合計値は、コード進行データＢでは、１＋０＝１となり、コード進行データＣでは、０＋１＝１となる。
次に、コード進行データＡの場合に、コードマッチ値の合計値が一番小さな値となるので、コードマッチ度（コードに和声的に類似する度合）が最大となり、コード進行データＡの２小節目のコードであるＡｍが出力コードとして決定される。
【００１８】
他の例では、例えば、ユーザーが２小節目にＣ，Ｄ，Ａ（ド、レ、ラ）の音を押した場合、コード進行データＡでのコードマッチ値の合計値は、０＋１＋０＝１、コード進行データＢでのコードマッチ値の合計値は、１＋１＋０＝２、コード進行データＣでのコードマッチ値の合計値は、０＋０＋０＝０となり、コード進行データＣの場合に、コードマッチ値の合計値が一番小さな値となるので、コードマッチ度が最大となり、コード進行データＣの２小節目のコードであるＤ７が出力コードとして決定される。
したがって、２小節目において、ユーザーがＣ，Ｅ（ド、ミ）の音からＣ，Ｄ，Ａ（ド、レ、ラ）の音に変更した場合、出力コードがＡｍからＤ７に変更される。
なお、コードマッチ値の合計値の一番小さいものが複数になる場合があるが、この場合には、コード進行データＡ，Ｂ，Ｃの順番で優先してコードが出力される。例えば、コードマッチ値の合計値の一番小さなものがコード進行データＢとＣとから算出された場合、コード進行データＢのコードが優先して出力される。
また、押鍵が無い場合、コード進行データＡのコードが出力される。
【００１９】
［全体処理］
図３は、本実施形態に係るコード出力装置１において実行される全体処理を示すフローチャートである。
まず、ステップＳ１では、ＣＰＵ１０１は、電源の投入によりイニシャライズを行う。ステップＳ２では、ＣＰＵ１０１は、スイッチ処理を行う。スイッチ処理では、ＣＰＵ１０１は、発音の音色を指定するスイッチなど、種々のスイッチの操作信号を検出する。ステップＳ３では、ＣＰＵ１０１は、鍵盤処理（図４で後述する）を行う。ステップＳ４では、ＣＰＵ１０１は、自動伴奏処理（図５で後述する）を行う。ステップＳ５では、ＣＰＵ１０１は、その他の処理を行う。その他の処理では、ＣＰＵ１０１は、例えば、表示部（図示せず）に出力コードのコード名を表示するなどの処理を行う。
【００２０】
［鍵盤処理］
図４は、本実施形態に係るコード出力装置１において実行される鍵盤処理を示すフローチャートである。
【００２１】
まず、ステップＳ１１では、ＣＰＵ１０１は、鍵盤１０５上の各鍵の走査を行う。具体的には、ＣＰＵ１０１は、鍵盤１０５の１つの鍵の状態を読み込む。ステップＳ１２では、ＣＰＵ１０１は、この状態の変化を判断する。ＣＰＵ１０１は、押鍵状態になったと判断した場合には、処理をステップＳ１３に移し、押鍵状態から離鍵状態になったと判断した場合には、処理をステップＳ１５に移し、状態の変化が無いと判断した場合には、処理をステップＳ１８に移す。
【００２２】
ステップＳ１３では、ＣＰＵ１０１は、押鍵状態となった鍵に対応する音高データをＲＡＭ１０３に記憶する。ステップＳ１４では、ＣＰＵ１０１は、このＲＡＭに記憶された音高データに基づいてノートオンイベント（音高データ以外に押鍵の強さを表すベロシティなどの発音情報を含む）を作成して、ステップＳ１７に処理を移す。
【００２３】
ステップＳ１５では、ＣＰＵ１０１は、離鍵状態となった鍵の音高データをＲＡＭ１０３から消去する。ステップＳ１６では、ＣＰＵ１０１は、離鍵状態となった鍵盤の音高データについてノートオフイベント（対応する音高の楽音の発音を停止するための消音情報）を作成して、ステップＳ１７に処理を移す。
【００２４】
ステップＳ１７では、ＣＰＵ１０１は、ステップＳ１４で作成されたノートオンイベントまたはステップＳ１６で作成されたノートオフイベントを音源１０６に供給する。
ステップＳ１８では、ＣＰＵ１０１は、鍵盤全体の走査が終了したか否かを判断する。具体的には、ＣＰＵ１０１は、ステップＳ１１において未走査の鍵がないかを判断する。未走査の鍵がない場合、走査が終了したと判断し、ステップＳ１９に処理を移す。未走査の鍵がある場合、走査が終了していないと判断し、ステップＳ１１に処理を戻す。
【００２５】
ステップＳ１９では、ＣＰＵ１０１は、コードデータを読み出す。具体的には、ＣＰＵ１０１は、タイマ（図示せず）から現時点で何小節目であるかを示すタイミング情報を取得し、取得したタイミング情報に基づいて、ＲＯＭ１０２に記憶されたコード進行データＡ，Ｂ，Ｃ（図２参照）の夫々から、現時点の小節に対応するコード名およびコードマッチデータを読み出す。
例えば、タイミング情報が現時点で２小節目を示している場合、コード進行データＡからコード名「Ａｍ」およびコードマッチデータ「０，２，１，２，０，１，２，１，２，０，２，１」を読み出し、コード進行データＢから、コード名「Ａ７」およびコードマッチデータ「１，０，１，２，０，１，２，０，２，０，２，１」を読み出し、コード進行データＣから、コード名「Ｄ７」およびコードマッチデータ「０，２，０，２，１，２，０，１，２，０，２，１」を読み出す。
【００２６】
ＣＰＵ１０１は、ステップＳ２０では、コードマッチ値の合計値を算出し、ステップＳ２１では、コードを決定する。
【００２７】
コードマッチ値の合計値の算出方法およびコード決定方法については、図２の説明で上述したとおりであり、例えば、ユーザーが２小節目にＣ，Ｅ（ド、ミ）の音を押した場合、すなわちステップＳ１３で記憶された音高データが、Ｃ，Ｅの音高データである場合、ＣＰＵ１０１は、コード進行データＡの２小節目のコードマッチデータのＣに対応するコードマッチ値を「０」と識別し、Ｅに対応するコードマッチ値を「０」と識別する。そして、ＣＰＵ１０１は、コード進行データＡのコードマッチ値の合計値を０＋０＝０と算出する。同様に、コード進行データＢのコードマッチ値の合計値を１＋０＝１、コード進行データＣのコードマッチ値の合計値を０＋１＝１と算出する（ステップＳ２０）。
次に、ＣＰＵ１０１は、算出された、コードマッチ値の合計値のうち一番小さな値を導出したコード進行データとしてコード進行データＡを決定し、コード進行データＡの２小節目のコードであるＡｍを出力コードとして決定する（ステップＳ２１）。
【００２８】
なお、コードマッチ値の合計値の一番小さいものが複数ある場合には、ＣＰＵ１０１は、コード進行データＡ，Ｂ，Ｃの順番で優先してコードを出力する。例えば、コードマッチ値の合計値の一番小さなものがコード進行データＢとＣとから算出された場合、ＣＰＵ１０１は、コード進行データＢのコードを優先して出力する。
また、押鍵が無い場合、ＣＰＵ１０１は、コード進行データＡのコードを出力する。
【００２９】
ステップＳ２１の処理が終了すると、ＣＰＵ１０１は、鍵盤処理を終了する。
【００３０】
［自動伴奏処理］
図５は、本実施形態に係るコード出力装置１において実行される自動伴奏処理を示すフローチャートである。
【００３１】
まず、ステップＳ３１では、ＣＰＵ１０１は、ＲＯＭ１０２から伴奏データを読み出す。具体的には、ＣＰＵ１０１は、伴奏データとして指定されている伴奏用シーケンスパターンデータを読み出す。
【００３２】
ステップＳ３２では、ＣＰＵ１０１は、決定コードに基づいてノートオンイベントを作成する。具体的には、ＣＰＵ１０１は、ステップＳ２１で決定されたコードに応じた音高データ、ステップＳ３１で読み出した伴奏用シーケンスパターンデータなどに基づいてノートオンイベントを作成する。
【００３３】
ステップＳ３３では、ＣＰＵ１０１は、ステップＳ３２で作成したノートオンイベントを音源１０６に供給して、自動伴奏処理を終了する。
【００３４】
本実施形態においては、ＣＰＵ１０１は、複数の音高データの取得のタイミング（取得時点が属する小節）に応答して、コード進行データＡ，Ｂ，Ｃの夫々に対応するコードデータの中から、取得した複数の音高データ夫々とのマッチ度が最大のコードデータ（取得した複数の音高データ夫々のコードマッチ値の合計値が最小のコードデータ）を選択し出力する。
したがって、演奏者の押鍵状態に応じて伴奏コードを適切に出力することができる。
例えば、２小節目において、ユーザーがＣ，Ｅ（ド、ミ）の音からＣ，Ｄ，Ａ（ド、レ、ラ）の音に変更した場合、出力コードをＡｍからＤ７に変更することができる。
【００３５】
また、本実施形態においては、ＣＰＵ１０１は、取得した複数の音高データの夫々が、コード構成音である場合、コードスケール音である場合、それ以外の音（アザートーン）である場合の順で、音高とコードデータとのマッチ度を大きく（コードデータに対する音高のコードマッチ値を小さく）判定する。
したがって、音高がコード構成音であれば、コードマッチ値を最小にでき、音高がコードスケール音であれば、コードマッチ値をある程度小さくでき、アザートーンであれば、コードマッチ値を大きくできる。よって、コードマッチ値の合計値であるコードマッチ度を適切に判定することができ、適切なコードを選択して伴奏することができる。
【００３６】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００３７】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
複数のコードデータおよび当該コードデータの夫々を読み出すタイミングデータを有するコード進行データを複数種記憶する記憶手段と、
この記憶手段に記憶された複数のコード進行データ夫々から、前記タイミングデータで定められたタイミングで対応するコードデータを読み出す読み出し手段と、
外部より複数の音高データを取得する取得手段と、
この取得手段の取得のタイミングに応答して、前記読み出し手段にて前記記憶手段から読み出されている、前記複数のコード進行データ夫々に対応するコードデータの中から、前記取得手段により取得された複数の音高データ夫々とのマッチ度が最大のコードデータを選択する選択手段と、
この選択手段によりコードデータが選択された後、当該コードデータを有するコード進行データに基づいて読み出されるコードデータを出力する出力手段と、
を有するコード出力装置。
［付記２］
前記選択手段は、
前記取得手段により取得された複数の音高データで表わされる音高夫々が、前記各コード進行データに対応するコードデータで表わされるコードのコード構成音、コードスケール音あるいはそれ以外の音のいずれかを識別する識別手段と、
この識別手段による識別結果がコード構成音である場合、コードスケール音である場合、それ以外の音である場合の順で、前記音高と前記コードデータとのマッチ度を大きく判定する判定手段と、
を有する付記１記載のコード出力装置。
［付記３］
複数のコードデータおよび当該コードデータの夫々を読み出すタイミングデータを有するコード進行データを複数種記憶する記憶手段と、外部より複数の音高データを取得する取得手段と、を有するコンピュータに、
この記憶手段に記憶された複数のコード進行データ夫々から、前記タイミングデータで定められたタイミングで対応するコードデータを読み出す読み出しステップと、
この取得手段の取得のタイミングに応答して、前記記憶手段から読み出されている、前記複数のコード進行データ夫々に対応するコードデータの中から、前記取得手段により取得された複数の音高データ夫々とのマッチ度が最大のコードデータを選択する選択ステップと、
このコードデータが選択された後、当該コードデータを有するコード進行データに基づいて読み出されるコードデータを出力する出力ステップと、
を実行させるプログラム。
【符号の説明】
【００３８】
１０１・・・ＣＰＵ、１０２・・・ＲＯＭ、１０３・・・ＲＡＭ、１０４・・・ＳＷ群、１０５・・・鍵盤、１０６・・・音源、１０７・・・発音回路
【図１】
2013045080.tif 000003
【図２】
2013045080.tif 000004
【図３】
2013045080.tif 000005
【図４】
2013045080.tif 000006
【図５】
2013045080.tif 000007