(57)【特許請求の範囲】
【請求項１】
複数の演奏パートの中から和音検出の対象とする複数の異なる演奏パートの組み合わせを指定する指定手段であって、該複数の異なる演奏パートの組み合わせを複数記憶したテーブルと、前記テーブルから１つの組み合わせを選択する選択手段とを含むものと、
複数の演奏パートについての演奏情報のうち、前記指定手段によって指定された組み合わせに該当する演奏パートについての演奏情報に基づき和音を検出する和音検出手段と
を具えた和音検出装置。
【請求項２】
前記テーブルに記憶する前記組み合わせの内容を編集する編集手段を更に具えた請求項１に記載の和音検出装置。
【請求項３】
和音検出処理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、コンピュータに付属されたメモリには、複数の演奏パートの中から和音検出の対象とする複数の異なる演奏パートの組み合わせを複数記憶したテーブルが記憶されており、前記和音検出処理プログラムは、前記コンピュータに、
前記テーブルに記憶された前記複数の異なる演奏パートの組み合わせのうち選択された１つの組み合わせを読み出させるステップと、
前記読み出された１つの組み合わせに該当する演奏パートを、和音検出の対象とする演奏パートとして指定させるステップと、
複数の演奏パートについての演奏情報のうち、前記ステップによって指定された前記１つの組み合わせに該当する演奏パートについての演奏情報に基づき和音を検出させるステップと
を実行させることからなる記録媒体。
【請求項４】
前記和音検出処理プログラムは、前記コンピュータに、前記テーブルに記憶する前記組み合わせの内容をユーザに編集させるようにするステップを更に実行させるものである請求項３に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入力された音高情報に基づいて和音検出を行う電子楽器等における和音検出装置及び記録媒体に係り、特に複数の演奏パートについての演奏情報を混合したものに基づいて和音を検出することのできる電子楽器等における和音検出装置及び記録媒体に関する。
【０００２】
【従来の技術】
従来から、いわゆる自動伴奏機能を備えた電子楽器が知られている。自動伴奏機能とは、コード（和音）演奏やベース演奏を準自動的に行う機能であり、指定されたコード（和音）に基づいてコード（和音）音やベース音を所定のタイミングで自動的に発音するものである。この自動伴奏を付加するときに、ＭＩＤＩ規格の演奏情報などの形態で当該電子楽器の外部から入力された音高情報に基づいてコード（和音）を検出し、指定されたリズム（自動伴奏パターン）に基づいてベース音（単音）及びコード音（和音）などからなる自動伴奏音を発生するものが本出願人から提案されている（特開平３−２１３８９９号）。このような自動伴奏機能を備えた電子楽器等において、外部から入力されたコード（和音）は同一のチャンネル番号が付与されたノートイベントに基づいて和音検出装置によって検出されている。すなわち、従来知られた和音検出装置では、外部から入力されるコード（和音）を検出するために使用されるチャンネルは１チャンネルのみであった。
【０００３】
ところで、外部から音高情報を入力するための電子楽器として、例えばＭＩＤＩ対応の電子アコーディオンのようなアコーディオン型のＭＩＤＩ機器がある。電子アコーディオンについて簡単に説明すると、電子アコーディオンは自然楽器のアコーディオン（図７参照）と同様に、右手部分がピアノやオルガンと同じ鍵盤操作子であり左手部分が押ボタン式操作子からなっている。この押ボタン式操作子は、或る１つのボタンを押すことによってそのボタンに割り当てられている所定のコード（和音）を発音する「コードベース」ボタンと、或る１つのボタンを押すことによって所定の音高のベース音（単音）を発音する「ベース」ボタンとによって構成されており、左手では１つのボタンを押すだけで簡単にコード（和音）演奏やベース（単音）演奏等の伴奏を行うことができるようになっている。
任意の「コードベース」ボタンが押された際に電子アコーディオンから出力されるコード（和音）の構成音（例えば、Ｃｍｉｎ（Ｃマイナー）の場合、「Ｃ」「Ｅ」「Ｇ」）には、全て同一のＭＩＤＩチャンネル番号が付与される。また、「ベース」ボタンを押した場合、「ベース」ボタンによって指定されたベース音（単音）に対しては、コード（和音）に付与されたＭＩＤＩチャンネル番号とは異なったＭＩＤＩチャンネル番号が付与されている。
【０００４】
【発明が解決しようとする課題】
上述したような電子アコーディオンには、「コードベース」ボタンは多くても、「メジャー・コード（長和音）」、「マイナー・コード（短和音）」、「セブンス・コード（属七和音）」、「ディミニッシュ・コード（減七和音）」の４つのコード種類しか具えられていない。
このような電子アコーディオンにおいて、コード音（和音）が鳴る「コードベース」ボタンの操作とベース音が鳴る「ベース」ボタンの操作とを同時に行うと、上述した４種類のコード（和音）以外のコード（和音）構成音を鳴らすことはできた（例えば、コード「Ｅｍｉｎ」の構成音“Ｅ  Ｇ  Ｂ”とベース音“Ｃ”とを同時に鳴らすと、「Ｃｍａｊ７」の構成音“Ｃ  Ｅ  Ｇ  Ｂ”となる）。しかしながら、上述したようにベース音（単音）とコード（和音）に付与されるＭＩＤＩチャンネル番号は異なったＭＩＤＩチャンネル番号であることから、両方を混合した形態ではコード（和音）を検出することができない。したがって、電子アコーディオンから入力することのできるコード種類は多くても４種類しか存在しなかった。そのために、電子アコーディオンのようなＭＩＤＩ機器から入力された音高情報に基づいてコード（和音）を検出して自動伴奏を行うとしても、単調な伴奏しか行うことができないので表現の豊かな伴奏を行うことができなかった、という問題点があった。
あるいは、電子オルガンのような２段鍵盤楽器の上鍵盤と下鍵盤、あるいは手鍵盤と足鍵盤などで異なったＭＩＤＩチャンネルのノートイベントが出力されるＭＩＤＩ機器において、上鍵盤のノートイベントと下鍵盤のノートイベントとで和音を構成するように演奏者が意図して各々の鍵盤を操作したとしても、演奏者の意図した通りの和音が和音検出装置により検出されないので、演奏者の意図した和音と自動伴奏装置による実際の伴奏との間に不一致が生ずる、という問題点があった。
【０００５】
本発明は上述の点に鑑みてなされたもので、入力された複数の演奏パートの演奏情報を混合したものに基づいて和音を検出することのできる電子楽器等における和音検出装置及び記録媒体、つまりは、ユーザの意向に沿う和音検出を行うことのできる電子楽器等における和音検出装置及び記録媒体を提供しようとするものである。更には、所定の基準に従ってベース音等の特定音を検出する特定音検出装置を提供しようとするものである。
【０００６】
【課題を解決するための手段】
本発明に係る和音検出装置は、複数の演奏パートの中から和音検出の対象とする複数の異なる演奏パートの組み合わせを指定する指定手段であって、該複数の異なる演奏パートの組み合わせを複数記憶したテーブルと、前記テーブルから１つの組み合わせを選択する選択手段とを含むものと、複数の演奏パートについての演奏情報のうち、前記指定手段によって指定された組み合わせに該当する演奏パートについての演奏情報に基づき和音を検出する和音検出手段とを具えたものである。
【０００７】
この発明では、和音検出手段は複数の演奏パートについての演奏情報に基づいて和音を検出することができる。すなわち、和音検出手段は指定手段によって指定された和音検出の対象とする演奏パートの組み合わせにより、該当する演奏パートについての演奏情報を抽出して、抽出された演奏情報に基づいて和音を検出する。そのため、和音を構成する構成音を各々異なった演奏パートで入力したような場合であったとしても、当該和音検出手段によると和音を検出することができるようになる。こうすると、従来では検出することができなかった和音であっても検出できるようになるので、ユーザはより多くの種類の和音を、いろいろな入力形態で指定することができるようになる。例えば、電子アコーディオンでは、コード音（和音）が鳴るボタンの操作によって出力される演奏情報とベース音が鳴るボタンの操作によって出力される演奏情報とをあわせて和音を指定することができるようになるので、従来指定することができなかった和音を出力することができるようになる。電子オルガンでは、上鍵盤と下鍵盤、あるいは手鍵盤と足鍵盤とを組み合わせて和音を指定することができるようになる。
また、記憶手段に複数の異なる演奏パートからなる組み合わせをテーブルに記憶しておき、選択手段によりこのテーブルから１つの組み合わせを選択できるようにすることで、ユーザは簡単に和音を検出するために抽出すべき演奏情報の設定を行うことができる。
なお、この発明における好ましい実施例として、前記演奏情報はＭＩＤＩ規格の演奏情報からなり、前記演奏パートはＭＩＤＩ規格の演奏情報におけるＭＩＤＩチャンネル番号によって区別されるものがある。
【０００８】
本発明は、装置発明として構成し、実施することができるのみならず、コンピュータプログラムの形態で実施することができるし、そのようなコンピュータプログラムを記憶した記憶媒体の形態で実施することもできる。
【０００９】
【発明の実施の形態】
以下、添付図面を参照してこの発明の実施の形態を詳細に説明する。
【００１０】
図１は、この発明に係る和音検出装置を内蔵した電子楽器全体の構成を示すハードブロック図である。この電子楽器は、マイクロプロセッサユニット１（ＣＰＵ）、ＲＯＭ２及びＲＡＭ３からなるマイクロコンピュータによって制御されるようになっている。
ＣＰＵ１は、この電子楽器全体の動作を制御するものである。このＣＰＵ１に対して、データ及びアドレスバス１Ｄを介してＲＯＭ２、ＲＡＭ３、押鍵検出回路４、スイッチ検出回路５、表示回路６、音源回路７、効果回路８、外部記憶装置９、ＭＩＤＩインタフェース（Ｉ／Ｆ）１０および通信インタフェース１１がそれぞれ接続されている。ＣＰＵ１には、タイマ割込み処理における割込み時間や各種時間を計時するタイマ１Ａが接続されている。
【００１１】
リードオンリメモリ２（ＲＯＭ）は、ＣＰＵ１により実行あるいは参照される各種プログラムや各種データあるいは各種テーブル（例えば、後述する和音検出用受信チャンネルテーブルやベース音検出受信チャンネルテーブル）等を格納するものである。  ランダムアクセスメモリ３（ＲＡＭ）は、演奏情報やＣＰＵ１がプログラムを実行する際に発生する各種データやテーブル等を一時的に記憶するものであり、所定のアドレス領域がそれぞれ割り当てられて、レジスタやフラグあるいはデータメモリ、テーブルなどとして利用される。
鍵盤４Ａは、楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有している。
押鍵検出回路４は、鍵盤４Ａの各鍵の押圧及び離鍵を検出し、検出出力を生じる。
【００１２】
スイッチ部５Ａは、各種の音楽条件（音高、音色、効果等）を選択・設定・制御入力するための各種の操作子を含んで構成される。例えば、数値データ入力用のテンキーや文字データ入力用のキーボード及びパネルスイッチ等からなる。
スイッチ検出回路５は、スイッチ部５Ａの各操作子の操作状態を検出し、その操作状態に応じたスイッチ情報をデータ及びアドレスバス１Ｄを介してＣＰＵ１に出力する。
表示回路６はＣＰＵ１の制御状態、設定データやテーブルの内容等の各種情報を、例えば液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイに表示するようになっている。
【００１３】
音源回路７は、複数の楽音発生チャンネルで楽音信号の同時発生が可能であり、データ及びアドレスバス１Ｄを経由して与えられた演奏情報を入力し、このデータに基づき楽音信号を発生する。音源回路７から発生された楽音信号は、サウンドシステム８Ａを介して発音される。また、効果回路８は前記音源回路７から発生された楽音信号に対して各種効果を与える。なお、周知のように楽音発生チャンネルはＭＩＤＩチャンネルとは異なるものである。すなわち、ＭＩＤＩチャンネルが演奏パートに対応しているのに対して、楽音発生チャンネルは具体的に１つの楽音を発生するチャンネルである。  前記音源回路７における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるＦＭ方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるＡＭ方式等の公知の方式を適宜採用してもよい。また、専用のハードウェアを用いて音源回路を構成するものに限らず、ＤＳＰ（ディジタルシグナルプロセッサー）とマイクロプログラム、あるいはＣＰＵとソフトウェアを用いてソフトウェア音源を構成するようにしてもよい。さらに、共通の楽音発生用ハードウェアを時分割で使用することによって複数の発音チャンネルを形成するような時分割処理方式からなるものでもよいし、１つの発音チャンネルが１つの楽音発生回路に対応するような並列処理形式のものであってもよい。
【００１４】
外部記憶装置９は、伴奏スタイルや伴奏パターンなどのような伴奏に関するデータやＣＰＵ１が実行する各種プログラム等の制御に関するデータ、あるいは各種テーブル等を記憶するものである。前記ＲＯＭ２に制御プログラムが記憶されていない場合、この外部記憶装置９（例えばハードディスク）に制御プログラムを記憶させておき、それを前記ＲＡＭ３に読み込むことにより、ＲＯＭ２に制御プログラムを記憶している場合と同様の動作をＣＰＵ１にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置９はハードディスク（ＨＤ）に限らず、フロッピィーディスク（ＦＤ）、コンパクトディスク（ＣＤ−ＲＯＭ・ＣＤ−ＲＡＭ）、光磁気ディスク（ＭＯ）、あるいはＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋの略）等の着脱自在な様々な形態の記憶メディアを利用する記憶装置であってもよい。
【００１５】
ＭＩＤＩインタフェース（Ｉ／Ｆ）１０は、当該電子楽器外部の他のＭＩＤＩ機器１０Ａ等からＭＩＤＩ規格の演奏情報を入力したり、あるいはＭＩＤＩ演奏情報を当該電子楽器外部へ出力するためのものである。例えば、他のＭＩＤＩ機器１０Ａとして、上述したような電子アコーディオンや電子オルガン等のＭＩＤＩ機器が接続される。なお、ＭＩＤＩインタフェース１０は専用のインタフェースに限らず、ＲＳ−２３２Ｃ、ＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェイスを用いて構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータをも同時に送受信するようにしてもよい。
通信インタフェース１１は、例えばＬＡＮ（ローカルエリアネットワーク）やインターネット、電話回線等の通信ネットワーク１１Ｂに接続されており、概通信ネットワーク１１Ｂを介して、サーバコンピュータ１１Ａと接続され、当該サーバコンピュータ１１Ａから制御プログラムや各種データを電子楽器装置側に取り込むためのものである。すなわち、ＲＯＭ２やハードディスクに制御プログラムや各種データが記憶されていない場合に、サーバコンピュータ１１Ａから制御プログラムや各種データをダウンロードするために用いられる。クライアントとなる電子楽器装置は、通信インターフェース１１及び通信ネットワーク１１Ｂを介してサーバコンピュータ１１Ａへと制御プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータ１１Ａは、このコマンドを受け、要求された制御プログラムやデータを、通信ネットワーク１１Ｂを介して本装置へと配信し、本装置が通信インタフェース１１を介して、これら制御プログラムや各種データを受信してハードディスクに蓄積することにより、ダウンロードが完了する。
【００１６】
図２は、図１のような電子楽器に自動伴奏を動作させる場合にメインとなる処理のフローチャートの一例を示す図である。図１のＣＰＵ１は、このメイン処理に従って動作する。このメイン処理は、主電源のオン操作と同時に開始され、主電源のオフ操作によって終了される。以下、図２のフローチャートに従って、自動伴奏の動作例を説明する。なお、以下の説明で、特に「楽音発生チャンネル」と断っていない限り、「チャンネル」とはＭＩＤＩチャンネルを指す。
まず、最初のステップＳ１では、初期化（すなわち、各種の初期設定）を行う。初期化では、図１のＲＡＭ３内の各レジスタなどに対して所定の初期値を設定する。具体的には、和音検出用ノートバッファ、ベース音検出用ノートバッファ、和音ルートバッファ、和音タイプバッファのそれぞれの内容をクリアする。これらのバッファの内容については各ステップの対応する処理の中で説明する。また、図示しない液晶表示パネル（ＬＣＤ）やＣＲＴ等から構成されるディスプレイの表示を初期状態に、つまり画面上に初期画面を表示する。
【００１７】
初期設定が終了すると、受信チャンネルテーブルの選択操作有りか、又は選択操作無しかの判定が行われ、それぞれの判定に従った処理が行われる（ステップＳ２）。選択操作有りと判定された場合には（ＹＥＳ）、当該選択操作に対応した受信チャンネルテーブルをＲＯＭ２から読み出して、所定のワークエリアへ書き込みを行う（ステップＳ３）。反対に、選択操作無しと判定された場合には（ＮＯ）、ステップＳ３の処理を行わないでステップＳ４へ進む。
受信チャンネルテーブルは、ＲＯＭ２内に予め多数記憶されているとともにＲＡＭ３内に１又は複数記憶されているものであって、ユーザはスイッチ部５Ａや鍵盤４ＡあるいはＧＵＩ（グラフィカル・ユーザ・インタフェース）など適宜の入力操作手段を用いて、ＲＯＭ２やＲＡＭ３に記憶されている受信チャンネルテーブルの１つを選択する。なお、ＲＯＭ２に記憶されているものはプリセットの受信チャンネルテーブルであり、ＲＡＭ３に記憶されているものはユーザ設定の受信チャンネルテーブルである。本実施例では、ユーザが上記入力操作手段を用いて楽器名（例えば、アコーディオン用や電子オルガン用）やユーザ名（例えば、ユーザ１、ユーザ２）等の指定（受信チャンネルテーブルの選択操作）を行うことにより、自動伴奏の際にコード音（和音）又はベース音を検出するために使用するＭＩＤＩチャンネル番号を設定できるようになっている。すなわち、多数の受信チャンネルテーブルの中から楽器名に対応づけられた受信チャンネルテーブルが所定のワークエリアに読み出され、この受信チャンネルテーブルの設定によりコード音（和音）やベース音を検出するためのノートイベントを決定する。
なお、ＲＯＭ２又は外部記憶媒体９やＲＡＭ３に受信チャンネルテーブルを複数記憶させておき、その中からユーザは所望の受信チャンネルテーブルを選択できるようにしてもよいことは言うまでもない。また、上記では受信チャンネルテーブルをユーザが選択できるようにしたが、接続されているＭＩＤＩ機器の種類を検出し、検出したＭＩＤＩ機器の種類に適するように自動的に受信チャンネルテーブルを選択するようにしてもよい。
【００１８】
ステップＳ４では、所望のユーザ設定テーブルを編集するか／しないかを判定する。所望のユーザ設定テーブルを編集する場合には（ＹＥＳ）、ユーザ設定テーブルの編集（ステップＳ５）を行い、ユーザ設定テーブルを編集しない場合には（ＮＯ）、上記ステップＳ５の処理を行わずに、ステップＳ６の処理へ飛ぶ。
ユーザ設定テーブルとは、ユーザが任意に作成でき、かつ、その設定の変更を行うことのできるテーブルである。ユーザは、受信チャンネルテーブルの一部を変更してユーザ設定テーブルを新たに作成してもよいし、あるいはユーザ設定テーブルをユーザが自由に作成してもよい。なお、ユーザ設定テーブルは異なった設定内容を持つテーブルが複数あってよい。この場合、ユーザ設定テーブルの選択は任意に付与されたユーザ名（例えば、ユーザ１、ユーザ２）等で指定するようにすればよい。
ユーザ設定テーブルを編集する場合には、ユーザ設定テーブルを直接編集してもよいし、所定のワークエリアへ書き込んで（コピーして）から編集を行ってもよい。所定のワークエリアへ書き込んだ場合、あるユーザ設定テーブル（例えば、ユーザ１）の一部を変更し、それを他のユーザ設定テーブル（例えば、ユーザ２）として別途登録することもできる。あるいは、あるプリセットテーブル（例えば、アコーディオン用）をワークエリアへ書き込み、その一部を変更し、それをユーザ設定テーブルとして登録することもできる。
【００１９】
ここで、受信チャンネルテーブル（及びユーザ設定テーブル）について詳細に説明する。図３は、受信チャンネルテーブル（プリセットテーブル及びユーザ設定テーブル）の構成の一実施例を示したものである。この実施例において、図３（Ａ）はコード音（和音）を検出するのための和音検出用受信チャンネルテーブルであり、図３（Ｂ）はベース音を検出するためのベース音検出用受信チャンネルテーブルである。ただし、各図の上段にＲＯＭ２に予め記憶されるプリセットの受信チャンネルテーブルを、下段にＲＡＭ３に記憶されるユーザ設定の受信チャンネルテーブルを示した。
受信チャンネルテーブル（和音検出用及びベース音検出用）は、どのチャンネル番号のノートイベントをコード音（和音）又はベース音として検出するか／しないかを設定するためのテーブルである。このテーブルは、図に示されるように、各種ＭＩＤＩ機器（電子アコーディオンや電子オルガン等）毎に、各ＭＩＤＩチャンネルｃｈ１〜ｃｈ１６に対応して「１」又は「０」を予めセットしてなるものである。図の左側から「チャンネル番号１」〜「チャンネル番号１６」の順番となっており、テーブルに「１」がセットされたチャンネル番号が付与されたノートイベントを和音（又はベース音）検出用のノートイベントとし、反対に「０」がセットされたチャンネル番号が付与されたノートイベントを和音（又はベース音）検出用のノートイベントとしない。勿論、「１」、「０」の関係は逆でもよい。このようにして、和音（又はベース音）を検出するためのノートイベントのＭＩＤＩチャンネルとして複数個のＭＩＤＩチャンネルを同時に和音検出用（又はベース音検出用）に設定できるようになっている。
図３に示したテーブルにおいて、「アコーディオン用」の受信チャンネルテーブルが選択された場合（図２のステップＳ２参照）、和音検出用のノートイベントとされるのは「チャンネル番号１」及び「チャンネル番号２」が付与されたノートイベントである。ベース音検出用のノートイベントとされるのは「チャンネル番号２」のみである。同様にして、「電子オルガン用」の受信チャンネルテーブルが選択された場合、和音検出用のノートイベントとされるのは「チャンネル番号１」及び「チャンネル番号２」が付与されたノートイベントであり、ベース音検出用のノートイベントとされるのは「チャンネル番号２」及び「チャンネル番号３」である。
なお、受信チャンネルテーブルとしては、上述したような「１〜１６の各チャンネルについて和音（又はベース音）を検出する／しないを記憶したもの」に限らず、「和音（又はベース音）を検出する（あるいは検出しない）１乃至複数のチャンネル番号を記憶したもの」であってもよい。
【００２０】
図２に戻り、ステップＳ６では、「その他の処理」を行う。「その他の処理」には、例えば、自動伴奏の開始指示が与えられることにより後述する自動伴奏割り込み処理を許可する処理や、自動伴奏の終了指示が与えられることにより自動伴奏割り込み処理を禁止する処理、自動伴奏に使用する伴奏スタイル（例えば、ロックやジャズ等）や伴奏セクション（メイン、イントロ、フィルイン等）の選択処理、鍵盤操作による発音／消音処理、あるいはその他のスイッチ操作による処理（例えば、電子楽器全体の音色設定、自動演奏のテンポ設定等）がある。
「その他の処理」が終了したら、当該メイン処理を終了するための指示操作、すなわち、電子楽器本体の主電源がオフされたかどうかを検出し、主電源がオフされた場合はメイン処理を終了する。そうでない、主電源オン（すなわち、主電源オフ操作がない）の場合にはステップＳ２へ戻り、当該メイン処理を繰り返し実行する。
【００２１】
図４Ａ及び図４Ｂは、ＭＩＤＩイベント受信割り込み処理のフローチャートの一例を示す図である。図４Ａに当該処理の前半部分のフローチャートを示し、図４Ｂに当該処理の後半部分のフローチャートを示す。つまり、図４Ａの処理の後に図４Ｂの処理が連続して行われるものである。当該処理は、外部から入力されたＭＩＤＩイベント信号を受信する度に、図２のメイン処理に対して割り込み的に行われる。
まず、受信したＭＩＤＩイベント信号のデータ内容が「ノートイベント」（すなわち、ノートオン又はノートオフ）であるか否かを判定する（ステップＳ１１）。「ノートイベント」でないと判定された場合（ＮＯ）には、その他のイベント処理を行い（ステップＳ１２）、当該ＭＩＤＩイベント受信割り込み処理を終了する。その他のイベント処理には、例えば「プログラムチェンジ」による音色の切替処理や、「コントロールチェンジ」によるビブラートやトレモロ等の効果処理などがある。
受信したＭＩＤＩイベント信号が「ノートイベント」であると判定された場合（ＹＥＳ）には、当該「ノートイベント」に付与されているチャンネル番号は選択された和音検出用受信チャンネルテーブルにおいて「１」か否かを判定する（ステップＳ１３）。すなわち、所定のワークエリアに書き込まれたプリセット又はユーザ設定の和音検出用受信チャンネルテーブル（上述した図２のステップＳ３）を参照して、受信した「ノートイベント」を和音検出するデータとして使用するか（当該チャンネル番号に対応するテーブルの内容が「１」である場合）、使用しないか（当該チャンネル番号に対応するテーブルの内容が「０」である場合）の判定を行う。
テーブルの内容が「０」である場合（ＮＯ）、ステップＳ１８の処理へ飛び、当該「ノートイベント」は和音を検出するためのデータとして使用されない。
テーブルの内容が「１」である場合（ＹＥＳ）、当該「ノートイベント」が「ノートオン」データであるか否かを判定する（ステップＳ１４）。「ノートオン」である場合（ＹＥＳ）、該「ノートイベント」のノートナンバを和音検出用ノートバッファに追加する（ステップＳ１５）。反対に「ノートオン」でない、つまり「ノートオフ」である場合（ＮＯ）、該「ノートイベント」のノートナンバを和音検出用ノートバッファから削除する（ステップＳ１６）。ステップＳ１７では、ノートナンバが追加又は削除された和音検出用ノートバッファの内容に基づいて和音のルートとタイプを検出し（例えば、和音検出用ノートバッファ内のノートナンバの構成と同じ構成を持つ和音を求める）、それぞれを別のバッファ（ルートバッファとタイプバッファ）に書き込む。ステップＳ１７において、和音検出用ノートバッファ内のノートナンバでは和音が構成されない場合には、和音のルートとタイプを検出できないので、バッファへの書き込みは行わないようにしてよい。つまり、バッファの内容を更新しないようにしてよい。
【００２２】
次に、図４ＢのステップＳ１８〜Ｓ２２において、ベース音について上述のステップＳ１３〜Ｓ１７までの処理と同様の処理が行われる。ステップＳ１８において、当該「ノートイベント」に付与されているチャンネル番号は選択されているプリセット又はユーザ設定のベース音検出用受信チャンネルテーブルにおいて「１」か否かを判定する。すなわち、所定のワークエリアに書き込まれたプリセット又はユーザ設定のベース音検出用受信チャンネルテーブル（上述した図２のステップＳ３）を参照して、受信した「ノートイベント」をベース音検出するデータとして使用するか（当該チャンネル番号に対応するテーブルの内容が「１」である場合）、使用しないか（当該チャンネル番号に対応するテーブルの内容が「０」である場合）の判定を行う。
テーブルの内容が「０」である場合（ＮＯ）、ステップＳ２３の処理へ飛び、当該「ノートイベント」はベース音を検出するためのデータとして使用されない。  テーブルの内容が「１」である場合（ＹＥＳ）、当該「ノートイベント」が「ノートオン」データであるか否かを判定する（ステップＳ１９）。「ノートオン」である場合（ＹＥＳ）、該「ノートイベント」のノートナンバをベース音検出用ノートバッファに追加する（ステップＳ２０）。反対に「ノートオン」でない、つまり「ノートオフ」である場合（ＮＯ）、該「ノートイベント」のノートナンバをベース音検出用ノートバッファから削除する（ステップＳ２１）。ステップＳ２２では、ノートナンバが追加又は削除されたベース音検出用ノートバッファの内容に基づいてベース音を検出して、バッファ（ベース音バッファ）に書き込む。ベース音検出とは、ベース音として発音する単音をベース音バッファ内のノートナンバの中から選択することである。ステップＳ２３では、受信したノートイベントに基づく発音／消音処理を必要に応じて処理する。
【００２３】
なお、和音検出、ベース音検出のアルゴリズムは上述した以外にも種々考えられる。例えば和音検出については、複数チャンネルのノートイベントをマージして和音検出用のノートとする際にチャンネル毎に重み付けをし、大きい重みの付いたチャンネルのノートイベントを優先的に和音やベース音検出に用いてもよい。ベース音検出については、ベース音検出用ノートバッファ内に複数のノートナンバがストアされている場合にその最低音をベース音として検出してもよいし、最高音をベース音として検出してもよい。また、ノートイベントを受信する度に和音やベース音を検出する例を示したが、受信のタイミングとは無関係に所定時間毎（例えば８分音符毎）のタイミングで和音やベース音を検出するようにしてもよい。また、複数の和音構成音に基づき和音を検出するいわゆるフィンガードタイプの和音検出に限らず、根音を指定するノートに基づき和音を検出するいわゆるシングルフィンガータイプの和音検出であってもよい。さらに、フィンガードタイプの場合、和音構成音の全てがそろって初めて和音を検出するものに限らず、一部の構成音を省略した場合であっても和音を検出できるようにしてもよい。
また、外部のＭＩＤＩ機器から受信したノートイベントに基づく発音／消音をするようにしたが（ステップＳ２３参照）、受信したノートイベントは和音検出、ベース音検出のみに使用し、発音／消音はしなくてもよい。
さらに、和音とベース音の両方を別々に検出する例を示したが、和音のみを検出するようにしてもよい。
【００２４】
図５は、入力された和音とベース音に対して、どのような和音及びベース音が上述した一連の処理が行われることにより検出されるのかを具体的に示した一覧表の一例である。図中の左側に入力された和音とベース音を示し、右側に入力に対応して検出された和音とベース音を示している。この場合、入力可能な和音の種類は電子アコーディオンから入力可能なメジャー、マイナー、セブンス、ディミニッシュの４種類とする。これに対して、検出可能な和音の種類はメジャーセブンス、マイナーセブンス等、多数ある。一覧表の最上段の例について説明すると、この場合に入力された和音は「Ｃｍａｊ」（Ｃメジャー）であり、ベース音は「Ｃ」である。この入力に対して検出される和音は「Ｃｍａｊ」（Ｃメジャー）であり、ベース音は「Ｃ」である。以下、同様の対応関係となっている。
【００２５】
ここでは、入力した和音に対して検出する和音とが異なる場合について説明する。例えば、和音に「Ｅｍｉｎ」（Ｅマイナー）及びベース音に「Ｃ」が同時に入力された場合（図５の上から６番目に示した例）について具体的に説明する。ただし、図２に示したメイン処理において、和音検出用受信チャンネルテーブル及びベース音検出用受信チャンネルテーブルは、図３に示したプリセットテーブル内の「アコーディオン用」を選択した場合について説明する。
電子アコーディオンの「コードベース」ボタンにより「Ｅｍｉｎ」が入力された場合、当該「Ｅｍｉｎ」を構成する和音構成音「Ｅ」「Ｇ」「Ｂ」の３音がノートオンイベントとして出力される。これらの和音構成音には、同一のチャンネル番号（例えば、チャンネル番号「１」）が付与される。これと同時に「ベース」ボタンにより「Ｃ」が入力された場合、ベース音「Ｃ」がノートオンイベントとして出力される。このベース音には、和音構成音に付与されたチャンネル番号と異なったチャンネル番号が付与される（例えば、チャンネル番号「２」）。これらのノートイベントは、図４に示したＭＩＤＩイベント割り込み処理で処理される。各和音構成音にはチャンネル番号「１」が付与され、和音検出用受信チャンネルテーブルのチャンネル番号「１」のデータ内容が「１」であることから、各和音構成音は和音検出用ノートバッファに追加される。さらに、ベース音にはチャンネル番号「２」が付与され、和音検出用受信チャンネルテーブルのチャンネル番号「２」のデータ内容が「１」であることから、ベース音も和音検出用ノートバッファに追加される。したがって、和音検出用ノートバッファには「Ｃ」「Ｅ」「Ｇ」「Ｂ」の４種類のノートナンバが保持されることになり、これらを和音構成音とするのは「Ｃｍａｊ７」（Ｃメジャーセブンス）であることから、和音のルート「Ｃ」及びタイプ「メジャーセブンス」が検出される（ステップＳ２３〜Ｓ２７参照）。そして、ベース音検出用受信チャンネルテーブルのチャンネル番号「１」のデータ内容が「０」であり、チャンネル番号「２」のデータ内容が「１」であることから、ベース音だけがベース音検出用ノートバッファに追加されてベース音として「Ｃ」が検出される。このようにして得られた和音のルート及びタイプあるいはベース音は、図６に示した自動伴奏割り込み処理によって参照されて発音される。
以上のように、単一のＭＩＤＩチャンネルのノート情報に基づき和音検出を行う従来の和音検出装置では和音として検出することのできなかった「Ｃｍａｊ７」（Ｃメジャーセブンス）が、複数のＭＩＤＩチャンネルを和音検出用の対象チャンネルに設定することによって、和音として検出することができるようになる。すなわち、本来入力不可能な「Ｃｍａｊ７」（Ｃメジャーセブンス）の和音を入力したい場合、入力可能な「Ｅｍｉｎ」（Ｅマイナー）和音の入力と「Ｃ」のベース音入力とを組み合わせることで、これが入力可能となる。つまり、複数の異なるＭＩＤＩチャンネルの入力に基づき和音の検出ができるようになる。また、複数入力されたベース音についても、複数のチャンネルをベース音検出用の受信チャンネルに設定することによって（例えば、図３（Ｂ）電子オルガン用参照）、複数のノートイベントからベース音となるノートイベントを任意に検出することができるようになる。例えば、電子オルガンにおいて、チャンネル番号「２」の下鍵盤とチャンネル番号「３」の足鍵盤をベース音検出用の受信チャンネルとした場合、足鍵盤の操作は勿論のこと、下鍵盤の操作によってもベース音を検出可能である。
【００２６】
図６は、図２に示したメイン処理に対して、所定のクロックタイミング毎に（つまり、定期的に）割り込み的に起動される自動伴奏割り込み処理である。例えば、４分音符長がタイマクロック数の９６に相当するように設定されたような場合に、図６の自動伴奏割り込み処理はこのタイマクロックの１クロック毎に実行される割り込み処理である。当該自動伴奏割り込み処理は、ドラムパート、ベースパート及びコードバッキングパートといった複数の伴奏パートについての伴奏パターンデータに基づき、楽曲の演奏の進行に従って伴奏演奏を自動的に実行する。
まず、リズムパートの伴奏パターンデータを読み出して発音／消音処理を行う（ステップＳ３１）。次に、コードバッキングパートの伴奏データを読み出し、検出された和音のルート及びタイプに応じてパターンデータの音高を決定して発音又は消音処理する（ステップＳ３２）。そして、検出された和音のルートと検出されたベース音が等しいか否かを判定する（ステップＳ３３）。等しい場合（ＹＥＳ）、ベースパートの伴奏パターンデータを読み出し、検出された和音のルート及びタイプに応じてパターンデータの音高を決定して発音又は消音処理する（ステップＳ３４）。一方、等しくない場合（ＮＯ）、ベースパートの伴奏パターンデータを読み出し、検出されたベース音に応じてパターンデータの音高を決定して発音又は消音処理する（ステップＳ３５）。ステップＳ３４又はステップＳ３５の各処理を行った後、当該自動伴奏割り込み処理は終了する。
このように、コードバッキングパート及びベースパートでは、ある所定の和音名（和音根音（ルート）及び和音種類（タイプ）：例えば、Ｃメジャーセブンス）を基準とする伴奏パターンデータが、指定された和音名、すなわち、ルートバッファ及びタイプバッファの内容に対応してオートベースコード処理によって音高変換される。ただし、ベースパートでは、指定された和音名のルートバッファと検出されたベース音バッファの内容が異なる場合には、伴奏パターンデータがベース音バッファの内容に対応して（つまり、ベース音を基準として）オートベースコード処理によって音高変換される。
【００２７】
図２、図４Ａ及び４Ｂ、図６のフローチャートに示す一連の処理によって、受信チャンネルテーブル内の設定データによって選択されたチャンネルに基づき、和音検出あるいはベース音検出を行うためのチャンネルを複数設定できるようになるので、従来では検出できなかった和音等による曲の伴奏ができる。すなわち、この実施の形態に係る電子楽器では、演奏者の意図した演奏どおりに、かつ、多彩な表現のできる自動伴奏が行われるようになる。
【００２８】
上述の実施例の説明では、ＭＩＤＩ機器として電子アコーディオンを例に挙げて説明したが、例えば、電子オルガンのような２段鍵盤楽器の上鍵盤と下鍵盤、あるいは手鍵盤と足鍵盤などで異なったＭＩＤＩチャンネルのノートイベントが出力されるようなものであってもよい。そのような場合、例えば、上鍵盤の演奏パートのＭＩＤＩチャンネルと下鍵盤の演奏パートのＭＩＤＩチャンネルとを和音検出用受信チャンネルテーブルで「１」にセットすれば、上鍵盤と下鍵盤の演奏鍵の組み合わせに基づき１つの和音を検出することができる。
また、検出した和音をリアルタイムに自動伴奏に利用する例を示したが、リアルタイムに和音を表示することに利用してもよいし、一旦和音をデータとして記録し、これを読み出して自動伴奏や和音表示に利用してもよい。このとき、和音検出装置としては和音を検出してその和音を外部機器へと出力する機能のみを有しており、自動伴奏や和音表示、和音データの記録／再生は他の機器にて行うようにしてもよい。
上述の実施の形態では、ＭＩＤＩチャンネルのみに言及し、ＭＩＤＩ端子については触れていないが、和音検出装置に複数のＭＩＤＩ端子が備わっているような場合には、どの端子で受信したＭＩＤＩノートイベントを和音やベース音の検出に用いるかを設定するようにしてもよい。
また、この発明に係る和音検出装置あるいはベース音等の特定音検出装置は、外部から入力されるＭＩＤＩ情報に基づき和音あるいは特定音の検出を行う形態に限らず、内部の鍵盤等で発生した演奏情報に基づき和音あるいは特定音の検出を行う演奏形態でもよい。さらに、演奏情報のデータ形式はＭＩＤＩに限らず、他の形態でもよい。
【００２９】
電子楽器は鍵盤楽器の形態に限らず、弦楽器や管楽器、あるいは打楽器等どのようなタイプの形態でもよい。また、上述の実施の形態では、音源装置、自動演奏装置等を１つの電子楽器本体に内臓したものについて説明したが、これに限らず、それぞれが別々に構成され、ＭＩＤＩインターフェイスや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものにも同様に適用できることはいうまでもない。また、パソコンとアプリケーションソフトウェアという構成であってもよく、この場合アプリケーションソフトウェアを磁気ディスク、光ディスクあるいは半導体メモリ等の記憶メディアから供給したり、ネットワークを介して供給するものであってもよい。さらには、自動演奏ピアノに適用してもよい。
【００３０】
自動演奏装置に適用する場合、演奏データのフォーマットは、イベントの発生時刻を曲や小節内における絶対時間で表した『イベント＋絶対時間』形式のもの、イベントの発生時刻を１つ前のイベントからの時間で表した『イベント＋相対時間』形式のもの、音符の音高と符長あるいは休符と休符長で演奏データを表した『音高（休符）＋符長』形式のもの、演奏の最小分解能毎にメモリの領域を確保し、演奏イベントの発生する時刻に対応するメモリ領域にイベントを記憶した『ベタ方式』形式のものなど、どのような形式のものでもよい。
また、複数チャンネル分の演奏データが存在する場合は、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。
メモリ上において、時系列の演奏データが連続する領域に記憶されるものに限らず、飛び飛びの領域に散在して記憶されているデータを、連続するデータとして別途管理するようにしてもよい（すなわち、時系列的に連続するデータとして管理することができればよく、メモリ上で連続して記憶されているか否かは問題でない）。
さらに、自動演奏のテンポを変更する方法は、テンポクロックの周期を変更するものや、テンポクロックの周期はそのままでタイミングデータの値を修正するもの、あるいは１回の処理においてタイミングデータをカウントする値を変更するもの等、どのようなものであってもよい。
【００３１】
【発明の効果】
この発明によれば、複数の異なった演奏パート（例えば、ＭＩＤＩチャンネル）の演奏情報を混合したものに基づいて和音を検出することができることになるので、多様な和音での伴奏を行うことができ、つまりは、従来では伴奏を行うことのできなかった和音についても伴奏を行わせることができるので、多彩な和音演奏を行うことができる、という効果がある。
【図面の簡単な説明】
【図１】この発明に係る和音検出装置を内蔵した電子楽器の構成を示すハードブロック図である。
【図２】図１に示した電子楽器を自動伴奏装置として動作させる場合のメイン処理の一例を示すフロー図である。
【図３】この発明に係る和音検出装置において用いられるテーブルの一実施例を示した構成概念図であり、図３（Ａ）は和音検出用の受信チャンネルテーブルを示し、図３（Ｂ）はベース音検出用の受信チャンネルテーブルを示したものである。
【図４Ａ】図２のメイン処理に対して、ＭＩＤＩイベント信号を受信する度に割り込んで実行されるＭＩＤＩイベント受信割り込み処理の一例を、その前半部分について示すフロー図。
【図４Ｂ】 同ＭＩＤＩイベント受信割り込み処理の一例の後半部分を示すフロー図。
【図５】入力された和音及びベース音と入力に対して検出される和音及びベース音との対応の一例を示した一覧表である。
【図６】図２のメイン処理に対して、所定の時間間隔毎に割り込んで実行される自動伴奏割り込み処理の一例を示すフロー図である。
【図７】アコーディオンの形態の一例を示す斜視図である。
【符号の説明】
１…ＣＰＵ、１Ａ…タイマ、２…プログラムメモリ（ＲＯＭ）、３…ワーキングメモリ（ＲＡＭ）、４…押鍵検出回路、４Ａ…鍵盤、５…スイッチ検出回路、５Ａ…テンキー＆キーボード＆各種スイッチ、６…表示回路、７…音源回路、８…効果回路、８Ａ…サウンドシステム、９…外部記憶装置、１０…ＭＩＤＩインタフェース、１０Ａ…他のＭＩＤＩ機器、１１Ａ…サーバコンピュータ、１１Ｂ…通信ネットワーク、１Ｄ…データ及びアドレスバス
【図１】
0003632487.tif 000002
【図２】
0003632487.tif 000003
【図３】
0003632487.tif 000004
【図４Ａ】
0003632487.tif 000005
【図４Ｂ】
0003632487.tif 000006
【図５】
0003632487.tif 000007
【図６】
0003632487.tif 000008
【図７】
0003632487.tif 000009