以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、この発明に係る電子鍵盤楽器の全体構成の一実施例を示したハード構成ブロック図である。本実施例に示す電子鍵盤楽器は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータによって制御される。CPU1は、この電子鍵盤楽器全体の動作を制御する。このCPU1に対して、通信バス1D(例えばデータ及びアドレスバス)を介してROM2、RAM3、外部インタフェース(I/F)4、演奏操作子(鍵盤)5、設定操作子6、表示部7、外部記憶装置8、音源9がそれぞれ接続されている。ROM2は、CPU1により実行あるいは参照される各種制御プログラムや各種データ等を格納する。RAM3は、CPU1が所定の制御プログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中の制御プログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
外部インタフェース(I/F)4は当該電子鍵盤楽器と外部機器4Aとの間で制御プログラムやデータなどの各種情報を送受信するための、例えばMIDIインタフェースや通信インタフェースなどである。MIDIインタフェースは、外部機器4A(この場合にはMIDI機器等)から所謂MIDIデータと呼ばれるMIDI形式の演奏データを当該電子鍵盤楽器へ入力したり、あるいは当該電子鍵盤楽器からMIDIデータを他のMIDI機器等へ出力するためのインタフェースである。他のMIDI機器はユーザによる操作に応じてMIDIデータを発生する機器であればよく、鍵盤型、ギター型、管楽器型、打楽器型、身振り型等どのようなタイプの操作子を具えた(若しくは、操作形態からなる)機器であってもよい。通信インタフェースは、例えばLANやインターネット、電話回線等の有線あるいは無線の通信ネットワークに接続されており、該通信ネットワークを介して外部機器4A(この場合にはパーソナルコンピュータやサーバコンピュータ等)と接続され、通信ネットワークを介して接続される外部機器4Aで生成された各種プログラムや各種データ等を電子鍵盤楽器本体にダウンロードするためのインタフェースである。このような外部インタフェース4としては、有線あるいは無線のものいずれかでなく双方を具えていてよい。
演奏操作子5は、楽音の音高を選択するための複数の鍵を備えた例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子5(鍵盤)は楽音演奏のために使用できるのは勿論のこと、演奏したい曲を選択するための入力手段などとして使用することもできる。また、この鍵盤を構成する多数の鍵それぞれには、図示しないLED(ガイドランプ)のような演奏ガイド部材が設けられており、後述する「ガイド(演奏教習)モード」時においては、左鍵域内の鍵の操作に応じて右鍵域内の対応する鍵のLED(ガイドランプ)を点灯・消灯することによる演奏ガイドが行われるようになっており、これにより、指導者は受講者に対して操作すべき鍵を指示しながら演奏教習を進めていくことができる。この演奏操作子5(鍵盤)は、例えば61鍵、76鍵、88鍵などの、その有する鍵数が異なる鍵盤を適宜に交換することができるように、電子鍵盤楽器本体と取り外し可能になっていてよい。設定操作子(スイッチ等)6は、例えば演奏教習する対象の曲やパートなどを選択するための選択スイッチ、あるいは鍵盤を用いての演奏モードを「通常演奏モード」又は「ガイド(演奏教習)モード」のいずれかに機器設定するためのモード設定スイッチなどの操作子である。勿論、上記スイッチ以外にも、音高、音色、効果等を選択・設定・制御するために用いる数値データ入力用のテンキーや文字データ入力用のキーボード、あるいはディスプレイ7Aに表示される所定のポインティングデバイスを操作するために用いるマウスなどの各種操作子を含んでいてよい。
前記「通常演奏モード」は、鍵盤の鍵域を分割することなく、鍵盤の全域を使用鍵域として演奏に用いるためのモードであり、演奏操作された各鍵に対応付けられている音高で楽音を発生する。すなわち、「通常演奏モード」は、従来知られた一般的な鍵盤演奏を行うモードである。一方、「ガイド(演奏教習)モード」は鍵盤の左側に位置する「左鍵域」と鍵盤の右側に位置する「右鍵域」の2つの鍵域に、1台の鍵盤の鍵域を分割して、該分割された一方の鍵域(例えば左鍵域)を演奏操作することに応じて、もう一方の鍵域(右鍵域)の演奏ガイドを行うことのできるモードであり、また本来ならば左鍵域と右鍵域とでは対応付けられている音高が違うにもかかわらず、左鍵域と右鍵域との相対的な位置関係が同じ位置にある鍵については同じ音高で楽音を発生させる(詳しくは後述する)。すなわち、「演奏教習モード」は、指導者が受講者の横に並んで、受講者が利用している鍵盤をそのまま使いながら実際に演奏操作を行うことができ、受講者の目の前で手本を示しながら電子鍵盤楽器の演奏教習を行うための専用のモードである。
表示部7は例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイ7Aに、演奏教習対象とすることが可能な曲の一覧、演奏教習対象とした曲の楽譜、指導者による左鍵域の演奏操作に応じて受講者が操作すべき右鍵域の対応する鍵を指示する演奏ガイド表示、あるいはCPU1の制御状態などの各種情報を表示するためのものである。外部記憶装置8は、CPU1が実行する各種制御プログラムや各種データなど(例えば、後述する図2に示す「楽音発生処理」、あるいは後述する図4に示す「鍵盤情報」など)を記憶する。また、前記ROM2に制御プログラムが記憶されていない場合、この外部記憶装置8(例えばハードディスク)に制御プログラムを記憶させておき、それを前記RAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1に実行させることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、外部記憶装置8はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の着脱自在な様々な形態の外部記録媒体を利用する記憶装置であってもよい。あるいは、半導体メモリなどであってもよい。
音源9は複数のチャンネルで楽音信号の同時発生が可能であり、通信バス1Dを経由して与えられた自動演奏データや演奏操作子のユーザ操作に応じて発生される演奏情報等を入力し、これらの演奏情報に基づいて楽音信号を発生する。音源9から発生された楽音信号は、アンプやスピーカなどを含むサウンドシステム9Aから発音される。この音源8から発生された楽音信号に対して、効果回路など(図示せず)を用いて所定の効果を付与するようにしてもよい。自動演奏データの形式はMIDI形式のようなディジタル符号化されたものであってもよいし、PCM、DPCM、ADPCMのような波形サンプルデータ方式からなるものであってもよい。この音源9とサウンドシステム9Aの構成には、従来のいかなる構成を用いてもよい。例えば、音源9はFM、PCM、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、CPU1によるソフトウェア処理で構成してもよい。
なお、演奏操作子5やディスプレイ7Aあるいは音源9などを1つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、MIDIインタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものであってもよいことは言うまでもない。さらに、本発明に係る電子鍵盤楽器は自然楽器を模した電子楽器の形態に限らず、パーソナルコンピュータやカラオケ装置やゲーム装置などの形態であって、演奏操作子として鍵盤を有しているものであれば、どのような形態の装置・機器に適用してもよい。
次に、1乃至複数のユーザによる鍵盤の演奏操作に応じて楽音を発生する「楽音発生処理」について、図2を用いて説明する。図2は、「楽音発生処理」の一実施例を示すフローチャートである。当該処理は、電子鍵盤楽器本体の電源オンに応じて開始される。
ステップS1は、「鍵盤分割処理」を実行する。詳しくは後述するが(図3参照)、「鍵盤分割処理」では、1台の鍵盤の鍵域を「左鍵域」と「右鍵域」の2つの使用鍵域に分割するためのデータ、不使用鍵域を決定するためのデータ、また分割後の「左鍵域」と「右鍵域」にそれぞれ含まれる多数の鍵それぞれに予め対応付けられている音高を、「左鍵域」と「右鍵域」とにおいて相対的な位置関係が同じ位置にある鍵については同じ音高となるように調整するためのデータなどを含んでなる、「鍵盤情報」(後述する図4参照)を取得する(生成する)。上記ステップS1の処理後、取得(生成)した「鍵盤情報」に基づいて、分割後の「左鍵域」と「右鍵域」とがそれぞれの鍵域内に含まれる多数の鍵の並びが同じでかつそれぞれの鍵域が同じ音域をもつように、1台の鍵盤の鍵域を分割して、また「左鍵域の発音時の(予め割り当て済みの音高からの)オクターブアップ数」や「右鍵域の発音時の(予め割り当て済みの音高からの)オクターブダウン数」などを決定するようにしている(後述する図3参照)。1台の鍵盤を「左鍵域」と「右鍵域」とに分けて、左右それぞれの鍵域を指導者と受講者とで使用することにより、演奏教習などを効率よく進めることができるようになる。
ステップS2は、当該電子鍵盤楽器において予め設定・記憶済みの「設定情報」(図示せず)を取得する。この「設定情報」は、ユーザによる所望の設定スイッチの操作に応じて設定され記憶される、例えば通常演奏モード又はガイド(演奏教習)モードいずれかのモード設定、発生させる楽音の音色設定や出力チャンネル設定などの情報である。ステップS3は、演奏が終了したか否かを判定する。具体的には、ユーザによる鍵盤操作に基づき発生されるキーイベント又は設定スイッチの操作に基づき発生されるその他のイベントが、所定時間(例えば1分)以上にわたって検出されなかった場合、あるいは電子鍵盤楽器本体の電源がオフされた場合などを、演奏が終了したものと判定する。演奏が終了したと判定した場合には(ステップS3のYES)、当該処理を終了する。一方、演奏が終了していないと判定した場合には(ステップS3のNO)、ユーザによる押鍵操作に基づき発生されるキーオンイベントを検出したか否かを判定する(ステップS4)。キーオンイベントを検出していない場合には(ステップS4のNO)、ステップS12の処理へジャンプする。キーオンイベントを検出した場合には(ステップS4のYES)、前記取得した「設定情報」に基づき、設定されているモード設定が「ガイドモード」であるか否かを判定する(ステップS5)。
設定されているモード設定が「ガイドモード」でない、つまり「通常演奏モード」であると判定した場合には(ステップS5のNO)、検出したキーオンイベントに基づき対応する音高の楽音をそのまま発音する(ステップS6)。すなわち、この場合には、後述するような「鍵盤情報」に基づくオクターブアップやオクターブダウンなどの楽音発音時の音高の調整を行うことなく、予め割り当てられている音高そのままで楽音を発生する。他方、設定されているモード設定が「ガイドモード」であると判定した場合には(ステップS5のYES)、前記取得(生成)した「鍵盤情報」に基づき、キーオンされた音高は「左鍵域」に属する鍵に予め割り当てられている音高であるか否かを判定する(ステップS7)。キーオンされた音高が「左鍵域」に属する鍵に予め割り当てられている音高であると判定した場合には(ステップS7のYES)、キーオンされた音高を、「鍵盤情報」に基づき決定される「左鍵域の発音時のオクターブアップ数」(図3参照)分高くシフトした音高で発音するとともに(ステップS9)、キーオンされた音高から「ガイド時の左鍵域のオクターブアップ数」(図3参照)分だけ高くした、「右鍵域」に属する音高を発生する鍵に対応付けられて配置されているガイドランプを点灯する(ステップS11)。
キーオンされた音高が「左鍵域」に属する鍵に予め割り当てられている音高でなく(ステップS7のNO)、「右鍵域」に属する鍵に予め割り当てられている音高である場合には(ステップS8のYES)、キーオンされた音高を、「鍵盤情報」に基づき決定される「右鍵域の発音時のオクターブダウン数」(図3参照)分低くシフトした音高で発音する(ステップS10)。前記ステップS11又はステップS10の処理終了後、ステップS3の処理へ戻る。なお、キーオンされた音高が「左鍵域」又は「右鍵域」のどちらにも属さない鍵に予め割り当てられている音高である場合、つまり「不使用鍵域」に属する鍵が操作されていた場合には(ステップS7とステップS8がともにNO)、上記したような楽音の発音やガイドランプの点灯等の処理を行うことなく、ステップS3の処理に戻る。
ステップS12は、ユーザによる離鍵操作に基づき発生されるキーオフイベントを検出したか否かを判定する。キーオフイベントを検出していない場合には(ステップS12のNO)、ユーザによる鍵の操作に基づき発生されるキーオンイベント又はキーオフイベント以外の「その他のイベント」、あるいはユーザによる設定スイッチの操作に基づき発生される「その他のイベント」を検出したか否かを判定する(ステップS13)。「その他のイベント」を検出した場合には(ステップS13のYES)、検出した「その他のイベント」に応じた「その他の処理」を実行する(ステップS14)。「その他の処理」としては、例えばモード設定の切替、音量の変更、音色の変更などの処理がある。一方、キーオフイベントを検出した場合には(ステップS12のYES)、前記取得した「設定情報」に基づき、設定されているモード設定が「ガイドモード」であるか否かを判定する(ステップS15)。設定されているモード設定が「ガイドモード」でない、つまり「通常演奏モード」であると判定した場合には(ステップS15のNO)、検出したキーオフイベントに対応する音高の楽音を消音する(ステップS16)。つまり、通常通りにユーザ操作に応じて発音中の楽音を消音させる。そして、ステップS16の処理終了後、ステップS3の処理に戻る。
上記ステップS15において、設定されているモード設定が「ガイドモード」であると判定した場合には(ステップS15のYES)、キーオフされた音高は「左鍵域」に属する鍵に予め割り当てられている音高であるか否かを判定する(ステップS17)。キーオフされた音高が「左鍵域」に属する鍵に予め割り当てられている音高であると判定した場合には(ステップS17のYES)、キーオフされた音高より「左鍵域の発音時のオクターブアップ数」(図3参照)分高くシフトした音高で発音されている楽音を消音するとともに(ステップS20)、キーオフされた音高から「ガイド時の左鍵域のオクターブアップ数」(図3参照)分高くした、「右鍵域」に属する音高を発生する鍵に対応付けられて配置されているガイドランプを消灯する(ステップS21)。キーオフされた音高が「左鍵域」に属する鍵に予め割り当てられている音高でなく(ステップS17のNO)、「右鍵域」に属する鍵に予め割り当てられている音高である場合には(ステップS18のYES)、キーオフされた音高より「右鍵域の発音時のオクターブダウン数」(図3参照)分低くシフトした音高で発音されている楽音を消音する(ステップS19)。前記ステップS21又はステップS19の処理終了後、ステップS3の処理へ戻る。なお、キーオフされた音高が「左鍵域」又は「右鍵域」のどちらにも属さない鍵に予め割り当てられている音高である場合、つまり「不使用鍵域」に属する鍵が操作されていた場合には(ステップS17とステップS18がともにNO)、上記したような楽音の消音やガイドランプの消灯等することなく、ステップS3の処理に戻る。
次に、上記した「楽音発生処理」で実行する「鍵盤分割処理」(図2のステップS1参照)について、図3を用いて説明する。図3は、「鍵盤分割処理」の一実施例を示すフローチャートである。
ステップS31は、鍵盤の種類を示す情報(例えば、61鍵、76鍵、88鍵などのように、電子鍵盤楽器が有する鍵盤の鍵数に応じて分類される鍵盤種類毎に付されている固有のIDなど)や、電子鍵盤楽器が有する鍵盤左端の鍵に予め割り当て済みの音高及び鍵盤右端の鍵に予め割り当て済みの音高を取得する。ただし、この際に、電子鍵盤楽器が有する鍵盤のうち一部範囲をユーザが自動伴奏用鍵域として指定できるような場合には、指定された自動伴奏用鍵域以外の「ユーザが教習用に使える鍵域」に関する情報を取得する。ステップS32は、前記取得した鍵盤種類、あるいは前記取得した鍵盤左端の鍵に予め割り当て済みの音高及び鍵盤右端の鍵に予め割り当て済みの音高に基づく音域に対応する「鍵盤情報」(図4参照)が、外部記憶手段8などに既に記憶されているか否かを判定する。
ここで、外部記憶手段8などに記憶される「鍵盤情報」について、図4を用いて説明する。図4は、「鍵盤情報」のデータ構成を示す一実施例である。
図4に示すように、「鍵盤情報」は、鍵盤種類毎の固有ID毎(ここでは、一例として61鍵、76鍵、88鍵と表している)に、音域データ、左鍵域データ、右鍵域データ、不使用鍵域データ、発音音域データの各データを記録している。音域データは、鍵盤分割前において鍵盤全域に予め割り当てられている音高の範囲(所謂音域)を、鍵盤の左端の鍵から鍵盤の右端の鍵までの鍵盤全域にわたって示すものである。例えば、公知のように、電子鍵盤楽器が61鍵の鍵盤を有する電子ピアノである場合、音域データは「C1(36:ノート番号、以下同じ)〜C6(96)」であり、電子鍵盤楽器が76鍵の鍵盤を有する電子ピアノである場合、音域データは「E0(28)〜G6(103)」であり、電子鍵盤楽器が88鍵の鍵盤を有する電子ピアノである場合、音域データは「A−1(21)〜C7(108)」である。
左鍵域データは、鍵盤のうち左鍵域とする音高の範囲を、左鍵域に含む左端の鍵から右端の鍵までにわたって示すものである。右鍵域データは、鍵盤のうち右鍵域とする音高の範囲を、右鍵域に含む左端の鍵から右端の鍵までにわたって示すものである。不使用鍵域データは、鍵盤のうち不使用鍵域とする音高の範囲を示すものである。ここに示す実施例において、電子鍵盤楽器が61鍵の鍵盤を有する電子ピアノである場合には上記音域データ(C1〜C6)のうち、「C1〜C3」を左鍵域データ、「C4〜C6」を右鍵域データ、そしてその間の「C♯3〜B3」を不使用鍵域データとしている。電子鍵盤楽器が88鍵の鍵盤を有する電子ピアノである場合には上記音域データ(A−1〜C7)のうち、「A−1〜C3」を左鍵域データ、「A3〜C7」を右鍵域データ、そしてその間にある「C♯3〜G♯3」を不使用鍵域データとしている。つまり、これらの場合には、鍵盤の中央部付近に位置するいくつかの鍵を不使用鍵域として、その不使用鍵域を挟んで鍵盤の鍵域を「左鍵域」と「右鍵域」とに分けている(後述する図5(A)及び(C)参照)。他方、電子鍵盤楽器が76鍵の鍵盤を有する電子ピアノである場合には上記音域データ(E0〜G6)のうち、「G♯0〜C3」を左鍵域データ、「G♯3〜G6」を右鍵域データ、そして「E0〜G0」を不使用鍵域データとしている。つまり、鍵盤の左端部からいくつかの鍵を不使用鍵域とし、その不使用鍵域を含まない鍵域を「左鍵域」と「右鍵域」とに分けている。この場合、「左鍵域」と「右鍵域」とは隣り合う(後述する図5(B)参照)。
発音音域データは、鍵盤の分割後における「左鍵域」又は「右鍵域」に属する多数の鍵と、前記多数の鍵それぞれの操作に応じて実際に発音させる楽音の音高との対応付けを示すものである。ここで、「左鍵域」又は「右鍵域」に属する各鍵と実際に発音させる楽音の音高とを対応付ける際には、まず「左鍵域」、「右鍵域」における一番低い鍵(各鍵域において左端の鍵)に対応付ける音高を、「左鍵域」、「右鍵域」において音高の音名が同じになるようにして、「C♯2」〜「C3」の中から決定する(ただし、実際に発音させる楽音の音高の基準として、デフォルトで中音域の「C3」を基準の音高に定義してある場合)。そして、この決定された各鍵域における左端の鍵の音高と、各鍵域に含まれる鍵数とに従って、各鍵域における一番高い鍵(各鍵域において右端の鍵)まで順次に対応付ける音高を決定する。こうすると、図4に示すように、電子鍵盤楽器が61鍵の鍵盤を有する電子ピアノである場合、発音音域データは「C3〜C5」、電子鍵盤楽器が76鍵の鍵盤を有する電子ピアノである場合、発音音域データは「G♯2〜G5」、電子鍵盤楽器が88鍵の鍵盤を有する電子ピアノである場合、発音音域データは「A2〜C6」となる。
図3に示すフローチャートの説明に戻って、外部記憶手段8などに上記した「鍵盤情報」が既に記憶されている場合には(ステップS32のYES)、該記憶されている「鍵盤情報」を部記憶手段8などから読み出して(ステップS39)、ステップS38の処理へ飛ぶ。一方、外部記憶手段8などに上記した「鍵盤情報」が記憶されていない場合には(ステップS32のNO)、「鍵盤情報」のうちの「左鍵域」データ、「右鍵域」データ、「不使用鍵域」データを自動的に求める処理を実行する(ステップS33)。前記各データを自動的に求める処理は、最初に「右鍵域」を鍵盤の右端の鍵〜鍵盤の左端の鍵と同じ音名を持つ鍵のうち最も鍵盤の右端に近い鍵、「左鍵域」を鍵盤の左端の鍵〜鍵盤の右端の鍵と同じ音名を持つ鍵のうち最も鍵盤の左端に近い鍵と仮定しておき、「右鍵域」については仮定した範囲のうちの左端の鍵から、「左鍵域」については仮定した範囲のうちの右端の鍵から、それぞれで仮定した範囲に含む鍵を1オクターブずつ増やすことを繰り返し行い、前記仮定した左右それぞれの範囲内に含まれる鍵の数が等しく、かつ左右それぞれの仮定範囲内に含まれる鍵が1つも重なっていることなく、さらには左右それぞれの仮定範囲の音域が一番広くなるようにして、「左鍵域」と「右鍵域」とをそれぞれ求める。そして、鍵盤の全域のうち、前記求めた「左鍵域」及び「右鍵域」に含まれる以外の鍵を「不使用鍵域」とする。
ステップS34は、上記決定した「不使用鍵域」が1オクターブを超える範囲であるか否かを判定する。上記決定した「不使用鍵域」が1オクターブを超えないと判定した場合には(ステップS34のNO)、上記決定した「不使用鍵域」を採用するので、ステップS37の処理へ飛ぶ。上記決定した「不使用鍵域」が1オクターブを超えると判定した場合には(ステップS34のYES)、上記決定した「不使用鍵域」を採用せずに新たな「不使用鍵域」として、鍵盤の左端の鍵〜鍵盤の右端の鍵と同じ音名を持つ鍵のうち最も鍵盤の左端に近い鍵まで、の範囲に再決定する(ステップS35)。そして、「左鍵域」を前記再決定した新たな「不使用鍵域」の右端の右隣の鍵〜鍵盤の右端と同じ音名を持つ鍵のうち最も鍵盤の左端に近い鍵(ただし、不使用鍵域を除く)、「右鍵域」を鍵盤の右端の鍵〜左鍵盤の左端の鍵(前記再決定した新たな「不使用鍵域」の右端の右隣の鍵)と同じ音名を持つ鍵のうち最も鍵盤の右端に近い鍵と仮定しておき、「右鍵域」については仮定した範囲のうちの左端の鍵から、「左鍵域」については仮定した範囲のうちの右端の鍵から、それぞれで仮定した範囲に含む鍵を1オクターブずつ増やすことを繰り返し行い、前記仮定した左右それぞれの範囲内に含まれる鍵の数が等しく、かつ左右それぞれの仮定範囲内に含まれる鍵が1つも重なっていることなく、さらには左右それぞれの仮定範囲の音域が一番広くなるようにして、「左鍵域」と「右鍵域」とをそれぞれ求める(ステップS36)。ステップS37は、前記求めた左右の各鍵域と不使用鍵域とを、この鍵盤の「鍵盤情報」(図4参照)として外部記憶装置8などに記憶する。こうした「左鍵域」、「右鍵域」及び「不使用鍵域」の各データの生成手順については、具体例を用いて詳しく後述する(図5参照)。
ステップS38は、上記のようにして求めた「左鍵域」と「右鍵域」とに従って、「鍵盤情報」の「発音音域」データを求め(図4参照)、該求めた「発音音域」データに基づき、左鍵域の発音時のオクターブアップ数、右鍵域の発音時のオクターブダウン数、ガイド時の左鍵域の音高のオクターブアップ数を決定する。図4に示した実施例において、「左鍵域の発音時の(予め割り当て済みの音高からの)オクターブアップ数」は、電子鍵盤楽器が61鍵の鍵盤を有する電子ピアノである場合に2オクターブ上、電子鍵盤楽器が76鍵の鍵盤を有する電子ピアノである場合に2オクターブ上、電子鍵盤楽器が88鍵の鍵盤を有する電子ピアノである場合に3オクターブ上となる。「右鍵域の発音時の(予め割り当て済みの音高からの)オクターブダウン数」は、電子鍵盤楽器が61鍵の鍵盤を有する電子ピアノである場合に1オクターブ下、電子鍵盤楽器が76鍵の鍵盤を有する電子ピアノである場合に1オクターブ下、電子鍵盤楽器が88鍵の鍵盤を有する電子ピアノである場合に1オクターブ下となる。また、例えば、「左鍵域」を指導者が操作する鍵域とした場合、「左鍵域」内の鍵の操作に基づきガイドランプを点灯させる対象とする「右鍵域」の鍵を示す「ガイド時の左鍵域のオクターブアップ数」は、電子鍵盤楽器が61鍵の鍵盤を有する電子ピアノである場合に「左鍵域」で押鍵された鍵に予め割り当てられていた音高の3オクターブ上、電子鍵盤楽器が76鍵の鍵盤を有する電子ピアノである場合に「左鍵域」で押鍵された音高の3オクターブ上、電子鍵盤楽器が88鍵の鍵盤を有する電子ピアノである場合に「左鍵域」で押鍵された音高の4オクターブ上となる。
次に、上記した「鍵盤分割処理」における「鍵盤情報」の左鍵域データ、右鍵域データ、不使用鍵域データの各データの生成手順(上記ステップS33〜ステップS37)について、図5を用いて具体的に説明する。図5は、「鍵盤情報」のデータ生成について具体的に説明するための概念図である。図5(A)は電子鍵盤楽器が61鍵の鍵盤を有する電子ピアノである場合、図5(B)は電子鍵盤楽器が76鍵の鍵盤を有する電子ピアノである場合、図5(C)は電子鍵盤楽器が88鍵の鍵盤を有する電子ピアノである場合を示す。ただし、ここでは、説明を理解しやすくするために、鍵盤の一部を自動伴奏用鍵域に割り当てることなく、鍵盤全体を「左鍵域」と「右鍵域」とに分割する場合を例に説明する。なお、これらの図では、「不使用鍵域」に該当する鍵の範囲を塗りつぶして示している。
図5から理解できるように、鍵盤全域の音域は61鍵で「C1〜C6」、76鍵で「E0〜G6」、88鍵で「A−1〜C7」であり、これは従来知られているように予め鍵盤種類毎に決まっている。したがって、鍵盤種類情報(固有ID)を取得することで上記したような範囲の音域データが決定されるとともに、鍵盤左端の鍵と鍵盤右端の鍵とを得る(ステップS31)。例えば、「61鍵、76鍵、88鍵」の順に記載すると(以下の説明では、同じ順で記載する)、鍵盤左端の鍵は「C1、E0、A−1」であり、鍵盤右端の鍵は「C6、G6、C7」である。「鍵盤情報」が記憶されていない場合、まず「右鍵域」及び「左鍵域」に含む鍵の範囲を仮定する。この仮定範囲は、図5(A)、図5(B)上段、図5(C)に示すように、「右鍵域」について鍵盤の右端の鍵「C6、G6、C7」〜鍵盤の左端の鍵と同じ音名を持つ鍵のうち最も鍵盤の右端に近い鍵「C6、E6、A6」、「左鍵域」について鍵盤の左端の鍵「C1、E0、A−1」〜鍵盤の右端の鍵と同じ音名を持つ鍵のうち最も鍵盤の左端に近い鍵「C1、G0、C0」と仮定する(図中において斜線で示す範囲)。
上記範囲の仮定後、図中において矢印で示す順番に従って、「右鍵域」については仮定した範囲のうちの左端の鍵から、「左鍵域」については仮定した範囲のうちの右端の鍵から、1オクターブずつそれぞれで仮定した範囲を増やすことを繰り返し行う。その際に、前記仮定した左右それぞれの範囲内に含まれる鍵の数が等しく、かつ左右それぞれの仮定範囲内に含まれる鍵が1つも重なっていることがないように判定しながら、繰り返し処理を進めていく(ステップS33)。このようにして、左右それぞれの仮定範囲の音域が一番広くなる状態を「左鍵域」と「右鍵域」に決定する。この例では、61鍵及び76鍵の場合については上記処理を2回、88鍵の場合には上記処理を3回繰り返すことによって、左鍵域が「C1〜C3、E0〜G2、A−1〜C3」、右鍵域が「C4〜C6、E4〜G6、A3〜C7」と決定する。これは、左右の鍵域それぞれに属する鍵数が同じである。そして、「不使用領域」は前記決定した「左鍵域」及び「右鍵域」以外であることから、図示のように鍵盤の中央部分に不使用鍵域が設定される(図中において塗りつぶした範囲参照)。
ここで、76鍵の場合には上記のようにして「左鍵域」が「E0〜G2」、「右鍵域」が「E4〜G6」とそれぞれ決定されるが、この場合「不使用鍵域」が「G♯2〜D♯4」となり、これは1オクターブ以上の範囲にわたって鍵を使用しないこととなり無駄である。そこで、より鍵盤を有効使用するために、76鍵の場合には、「左鍵域」データ、「右鍵域」データ、「不使用鍵域」データを再度求める処理を行う。この場合には、まず「不使用鍵域」を優先的に決定する(ステップS35)。具体的には、図5(B)下段に示すように、鍵盤の左端の鍵(E0)〜鍵盤の右端の鍵と同じ音名を持つ鍵のうち最も鍵盤の左端に近い鍵(G0)までを、「不使用鍵域」と再決定する。そして、「右鍵域」及び「左鍵域」に含む鍵の範囲を仮定する。この仮定範囲は、「右鍵域」について鍵盤の右端の鍵「G6」〜前記再決定した新たな「不使用鍵域」の右端の右隣の音高「G♯0」と同じ音名を持つ鍵のうち最も鍵盤の右端に近い鍵「G♯5」、「左鍵域」について前記再決定した新たな「不使用鍵域」の右端の右隣の音高「G♯0」〜鍵盤の右端の鍵と同じ音名を持つ鍵のうち「不使用領域」を除く最も鍵盤の左端に近い鍵「G1」と仮定する。
上記範囲の仮定後、上述したのと同様にして、「右鍵域」については仮定した範囲のうちの左端の鍵から、「左鍵域」については仮定した範囲のうちの右端の鍵から、1オクターブずつそれぞれで仮定した範囲を増やすことを繰り返し行う。この際にも、前記仮定した左右それぞれの範囲内に含まれる鍵の数が等しく、かつ左右それぞれの仮定範囲内に含まれる鍵が1つも重なっていることがないように判定しながら、繰り返し処理を進めていく(ステップS36)。このようにして、左右それぞれの仮定範囲の音域が一番広くなる分割状態を「左鍵域」と「右鍵域」に決定する。図5(B)下段に示す例では、左鍵域が「G♯0〜G3」、右鍵域が「G♯3〜G6」となる。これは、最初に求めた「左鍵域:E0〜G2」「右鍵域:E4〜G6」よりも、各鍵域に含まれる鍵の数が多く(つまり音域が広く)なっていることから、鍵盤を有効的に使用できることが理解できる。このように、76鍵の場合には、不使用鍵域を鍵盤の中央部分に設定しようとすると、不使用鍵域が1オクターブ以上になってしまい鍵が無駄になるので、不使用領域を鍵盤の左端部分(または右端部分であってもよい)に設定した方が左右の鍵域がそれぞれ広くなって、ユーザが鍵を有効に使うことができるようになってよい。
以上のようにして、鍵盤内に含まれる鍵の総数に応じて最適な鍵域分割を自動的に行うようにすると、不使用鍵域を極力狭くすることができ、同時に、分割後に使用できる左右の各鍵域を広く取ることができる。これにより、ユーザが演奏教習できる曲の種類が豊富になる。特に、本発明は、ユーザが鍵盤のうち左端又は右端から一部範囲内にある任意の鍵域を自動伴奏用鍵域(つまりコード入力鍵域)として指定できるような場合に有利である。すなわち、ユーザが自動伴奏用鍵域を指定した後に、さらに残りの鍵域を演奏教習のために「左鍵域」と「右鍵域」とに分けたいような場合、教習用として使用することのできる鍵盤数はユーザによる自動伴奏用鍵域の指定に応じてその数が変動することになるので一義に決まらず、従来のように「左鍵域」及び「右鍵域」の各鍵域に含む鍵の範囲を定義したテーブルを予め用意しておくことができず、そうした方法では対応することができない。そこで、同じ鍵盤を有する電子鍵盤楽器において、ユーザによる鍵盤の使い方を変えることができるような場合には、本発明のように、(ユーザにより指定された自動伴奏用鍵域以外の)鍵盤内に含まれる鍵の総数に応じて最適な鍵域分割を自動的に行うことができることは非常に有効である。これにより、例えば指導者が左手で自動伴奏用鍵域を利用してコード演奏を行いながら、「左鍵域」を利用して右手パートの教習を行い、受講者はそれにあわせて「右鍵域」を利用して右手パートの練習を行うような場合に、左右の各鍵域を広く取って教習を行うことが簡単にできるようになる。
また、分割後の左鍵域及び右鍵域の発音音域を一般的な曲中においてよく使われる中音域(上記実施例では「C3」)を基準にして決定するようにしたので、分割後の左鍵域又は右鍵域のそれぞれに含まれる鍵の操作に伴い発音される楽音がユーザにとり聴き易くなる。したがって、指導者及び受講者は、左鍵域及び右鍵域を使っての演奏教習がしやすく、わかりやすくなる。
なお、上述した実施例では、左鍵域を指導者用、右鍵域を受講者用としたが、その逆に右鍵域を指導者用、左鍵域を受講者用としてもよい。ただし、その場合には、ガイド時の左鍵域の音高のオクターブアップ数を決定するのではなく、ガイド時の右鍵域の音高のオクターブダウン数を決定し、これに基づき右鍵域内の鍵の操作に応じて左鍵域内の対応する鍵の演奏ガイドを行うようにすることは言うまでもない。
なお、上述した実施例のように、鍵盤の種類ごとにそれぞれ最適な「左鍵域」、「右鍵域」、「不使用鍵域」、「発音音域」を、鍵盤全体の音域から自動的に割り出すようにしてもよいし、予めユーザが任意の値を設定し、これを「鍵盤情報」として外部記憶手段8に記憶しておくようにしてもよい。また、自動的に割り出した後に、ユーザが適宜にその値を変更できるようにしてあってもよい。こうした場合の一例としては、記憶済みの「鍵盤情報」と自動的に割り出した「鍵盤情報」とを、ユーザが比較してどちらかを選択できるようにしてあってよい。
なお、「不使用鍵域」は、鍵盤内において飛び飛びの状態で複数箇所決定されてよい。例えば、鍵盤の中央部と鍵盤の両端の一部範囲にある鍵を共に「不使用鍵域」としてよい。
なお、上述した実施例では、演奏ガイド時に指導者の押鍵・離鍵に合わせて受講者用の鍵盤のガイドランプを順次に点灯・消灯するようにしたが、受講者がガイドされた鍵を押鍵するまでガイドランプの消灯を待つような仕様であってもよい。
なお、演奏ガイドする方法として、各鍵毎にガイドランプを対応付けて配置しておき、指導者による左鍵域の操作に応じて受講者が押鍵すべき右鍵域内の鍵に対応付けられたガイドランプを点灯する方法を示したがこれに限らず、他の方法により受講者が押鍵すべき右鍵域内の鍵をガイドしてよいことは言うまでもない。
なお、上述した実施例では、「鍵盤情報」の「発音音域」データを決定する際に、実際発音時に用いる基準とする「中音域」を、「C3」もしくはその数音下からの音域としたがこれに限らず、例えば「C2」を基準とする音域にするなどしてもよい。
1…CPU、2…ROM、3…RAM、4…外部インタフェース、4A…外部機器、5…演奏操作子、6…設定操作子、7…表示部、7A…ディスプレイ、8…外部記憶装置、9…音源、9A…サウンドシステム、1D…通信バス