(57)【特許請求の範囲】
【請求項１】
押鍵が為されるに応答して、当該押鍵された鍵が指定する音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第１の装飾音生成手段と、
この第１の装飾音生成手段にて装飾音が所定期間発音された後、前記押鍵された鍵が指定する音高の押鍵音を発音させる押鍵音生成手段と、
この押鍵音が発音されるに応答して、前記押鍵された鍵が指定する音高と所定の音高差を有する音高を算出するとともに、当該算出された音高を予め指定された調に適合するように変換したハーモニー用の音高を生成するハーモニー音高生成手段と、
前記ハーモニー用音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第２の装飾音生成手段と、
この第２の装飾音生成手段にて装飾音が所定期間発音された後、前記ハーモニー用の音高を有するハーモニー音を生成して発音させるハーモニー音生成手段と、
を具備することを特徴とする鍵情報処理装置。
【請求項２】
前記鍵情報処理装置はさらに、前記押鍵された鍵が指定する音高を前記予め指定された調に適合するように変換した音高を前記押鍵された鍵が指定する音高とする第１の変換手段を有することを特徴とする請求項１記載の鍵情報処理装置。
【請求項３】
前記鍵情報処理装置はさらに、前記押鍵された鍵が指定する音高が鍵盤の白鍵に対応する音高か否か判断し、白鍵に対応すると判断された場合のみ当該指定された音高を前記第１の変換手段に送出する第１の白鍵判別手段を含むことを特徴とする請求項２記載の鍵情報処理装置。
【請求項４】
前記第１及び第２の装飾音生成手段はさらに、前記装飾用の音高を前記予め指定された調に適合するように変換した音高を前記装飾用の音高とする第２の変換手段を有することを特徴とする請求項１記載の鍵情報処理装置。
【請求項５】
押鍵が為されるに応答して、当該押鍵された鍵が指定する音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第１の装飾音生成過程と、
この第１の装飾音生成過程にて装飾音が所定期間発音された後、前記押鍵された鍵が指定する音高の押鍵音を発音させる押鍵音生成過程と、
この押鍵音が発音されるに応答して、前記押鍵された鍵が指定する音高と所定の音高差を有する音高を算出するとともに、当該算出された音高を予め指定された調に適合するように変換したハーモニー用の音高を生成するハーモニー音高生成過程と、
前記ハーモニー用音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第２の装飾音生成過程と、
この第２の装飾音生成過程にて装飾音が所定期間発音された後、前記ハーモニー用の音高を有するハーモニー音を生成して発音させるハーモニー音生成過程と、
を具備することを特徴とする鍵情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子楽器に用いて好適な鍵情報処理装置および鍵情報処理方法に関する。
【０００２】
【従来の技術】
従来より、鍵操作に対応して発生する鍵情報（音高）の内、指定された調に応じた幹音についてはその音高を半音上げたり、あるいは半音下げるように制御する鍵情報処理装置が知られており、この種の技術については例えば特開昭５８−１０２９９２号公報に開示されている。
【０００３】
【発明が解決しようとする課題】
ところで、上述した技術は、黒鍵を弾くべきところを白鍵の鍵操作に替えるようにして、鍵操作に不慣れなユーザでも簡易に弾けるようにするものであるが、そのようにしても、装飾音を交えた演奏やハーモニー音を伴う演奏など、多彩な演奏表現を行うことができない、という問題がある。
そこで本発明は、こうした事情に鑑みてなされたもので、鍵操作に不慣れなユーザであっても簡単に多彩な演奏表現を実現し得る鍵情報処理装置および鍵情報処理方法を提供することを目的としている。
【０００４】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、押鍵が為されるに応答して、当該押鍵された鍵が指定する音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第１の装飾音生成手段と、この第１の装飾音生成手段にて装飾音が所定期間発音された後、前記押鍵された鍵が指定する音高の押鍵音を発音させる押鍵音生成手段と、この押鍵音が発音されるに応答して、前記押鍵された鍵が指定する音高と所定の音高差を有する音高を算出するとともに、当該算出された音高を予め指定された調に適合するように変換したハーモニー用の音高を生成するハーモニー音高生成手段と、前記ハーモニー用音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第２の装飾音生成手段と、この第２の装飾音生成手段にて装飾音が所定期間発音された後、前記ハーモニー用の音高を有するハーモニー音を生成して発音させるハーモニー音生成手段と、を具備することを特徴とする。
【０００５】
請求項５に記載の発明では、押鍵が為されるに応答して、当該押鍵された鍵が指定する音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第１の装飾音生成過程と、この第１の装飾音生成過程にて装飾音が所定期間発音された後、前記押鍵された鍵が指定する音高の押鍵音を発音させる押鍵音生成過程と、この押鍵音が発音されるに応答して、前記押鍵された鍵が指定する音高と所定の音高差を有する音高を算出するとともに、当該算出された音高を予め指定された調に適合するように変換したハーモニー用の音高を生成するハーモニー音高生成過程と、前記ハーモニー用音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる第２の装飾音生成過程と、この第２の装飾音生成過程にて装飾音が所定期間発音された後、前記ハーモニー用の音高を有するハーモニー音を生成して発音させるハーモニー音生成過程と、を具備することを特徴とする。
【０００６】
本発明では、押鍵が為されるに応答して、当該押鍵された鍵が指定する音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させ、この装飾音が所定期間発音された後、押鍵された鍵が指定する音高の押鍵音を発音させる。
そしてこの押鍵音が発音されるに応答して、押鍵された鍵が指定する音高と所定の音高差を有する音高を算出し、算出された音高を予め指定された調に適合するように変換したハーモニー用の音高を生成し、このハーモニー用音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる。この装飾音が所定期間発音された後、ハーモニー用の音高を有するハーモニー音を生成して発音させる。このため、１つの鍵を押鍵するだけで調性に適した装飾音やハーモニー音を発生でき、これにより鍵操作に不慣れなユーザであっても簡単に多彩な演奏表現を実現し得るようになっている。
【０００７】
【発明の実施の形態】
以下、本発明の実施の一形態による鍵情報処理装置を搭載した電子楽器を実施例とし、これについて図面を参照して説明する。
【０００８】
（１）構成
図１は、本発明の一実施例による電子楽器の構成を示すブロック図である。この図において、１は楽器パネルに配設されるパネルスイッチ群であり、各スイッチ操作に応じたスイッチイベント信号を発生する。
このパネルスイッチ群１には、図示されていないが、押鍵音に対して上向き又は下向きに何半音離れた装飾音を付加するかを設定する装飾音付加スイッチや、押鍵音に対してハーモニー音を付加するか否かを指定するハーモニー音付加スイッチ、後述するダイアトニックスケールおよびアラビックスケールのいずれのスケール種を用いるかを選択するスケール選択スイッチ、調を指定する調指定スイッチなどが設けられている。２は押離鍵操作に応じたノートオン／ノートオフイベント、鍵番号ＫＮおよびベロシティ等からなる鍵情報を発生する鍵盤である。
【０００９】
３はＬＣＤパネル等から構成される表示部であり、後述するＣＰＵ４から供給される表示制御信号に応じて楽器各部の設定状態や動作モード等を表示する。ＣＰＵ４は、スイッチ操作に応じて発生するスイッチイベントに基づき楽器各部の動作状態を設定したり、鍵盤２からの鍵情報に応じたコマンド（例えば、発音指示コマンドや消音指示コマンド等）を生成して音源７に送出する。５は上記ＣＰＵ４にロードされる各種制御プログラムや、鍵情報生成に用いる各種データテーブルが記憶されるＲＯＭである。
【００１０】
ここで、図２〜図４を参照してＲＯＭ５に格納される各種データテーブルについて説明しておく。
図２（イ）は、押鍵された鍵が白鍵／黒鍵のいずれであるかを識別する際に用いられる白鍵識別テーブルＴＢＬ１の内容を示す図である。このテーブルＴＢＬ１では、押鍵音ｉを１オクターブ鍵域の１２音（音名）に対応させており、例えば押鍵音ｉが「０（ド）」、「２（レ）」などの白鍵に相当する場合には対応する識別データｎＳｃ［ｉ］が「１」となり、一方、押鍵音ｉが「１（ド＃音）」、「３（レ＃音）」などの黒鍵に相当する場合には対応する識別データｎＳｃ［ｉ］が「０」となる。
【００１１】
図２（ロ）は、押鍵音ｉに対応して付加すべきハーモニー音程を指定するハーモナイズ音程テーブルＴＢＬ２である。このテーブルＴＢＬ２は、第１ハーモニー音を指定するｎＨｒ［０］［ｉ］と、第２ハーモニー音を指定するｎＨｒ［１］［ｉ］とから構成される。
第１ハーモニー音を指定するｎＨｒ［０］［ｉ］では、例えば押鍵音ｉが「０（ド）」であれば、それから４半音上（長３度）の音程関係にある「ミ」のハーモニー音を指定する。
一方、第２ハーモニー音を指定するｎＨｒ［１］［ｉ］では、例えば押鍵音ｉが「０（ド）」であれば、それから７半音上（完全５度）の音程関係にある「ソ」のハーモニー音を指定する。
【００１２】
図３はダイアトニックスケールテーブルＴＢＬ３の内容を示す図である。このテーブルＴＢＬ３は、各調毎のダイアトニックスケールについて、押鍵音ｉに対応した音程変化を表す。
図４はアラビックスケールテーブルＴＢＬ４の内容を示す図である。このテーブルＴＢＬ４は、各調毎のアラビックスケールについて、押鍵音ｉに対応した音程変化を表す。
【００１３】
次に、再び図１を参照して実施例の構成について説明を進める。図１において、６はＣＰＵ４の演算に用いる各種レジスタ・フラグデータを一時記憶するＲＡＭである。なお、このＲＡＭ６に格納される代表的なレジスタ・フラグデータについては後述する動作説明にて述べる。
音源７は、周知の波形メモリ読み出し方式にて構成され、自己の内部メモリに記憶する波形データの内、ＣＰＵ４から供給されるパラメータにて指定される音色の波形データを読み出し、読み出した波形データについてＣＰＵ４から供給される演奏情報に応じて波形修飾を施して楽音出力ＷＡＶＥを発生する。８は音源７が発生する楽音出力ＷＡＶＥをアナログ波形信号に変換して不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカＳＰから発音させるサウンドシステムである。
【００１４】
（２）動作
次に、図３〜図１４を参照して実施例の動作について説明する。
▲１▼メインルーチンの動作
電源投入が投入されると、ＣＰＵ４はＲＯＭ５から所定の制御プログラムを読み出して自身にロードし、図３に示すメインルーチンを実行する。メインルーチンが実行されると、ＣＰＵ４は先ずステップＳＡ１に処理を進め、ＲＡＭ６のワークエリアに格納される各種レジスタやフラグ類をリセットしたり初期値をセットする初期化を行う。また、このステップＳＡ１では、音源７に対して各種レジスタやフラグ類を初期化するよう指示する。
イニシャライズが完了すると、ＣＰＵ４はステップＳＡ２に処理を進め、パネルスイッチ群１におけるスイッチ操作や鍵盤２の鍵操作の有無を検出すべくキースキャン処理を実行する。
【００１５】
次いで、ステップＳＡ３以降では、キースキャンで得たイベントに対応する処理を実行する。すなわち、ステップＳＡ３では、上記キースキャン処理にてスイッチ操作を検出したかどうかを判断し、スイッチ操作を検出した場合には判断結果が「ＹＥＳ」となり、ステップＳＡ４に処理を進める。
例えば、押鍵音に対して上向き又は下向きに何半音離れた装飾音を付加するかを設定する装飾音付加スイッチや、ハーモニー音を付加するハーモニー音付加スイッチが操作された場合には、それらスイッチ操作に対応した設定処理を実行した後、ステップＳＡ２に処理を戻す。
【００１６】
一方、上記キースキャン処理にてスイッチ操作が検出されなかった場合には、上記ステップＳＡ３の判断結果が「ＮＯ」となり、ステップＳＡ５に進む。ステップＳＡ５では、上記キースキャン処理にて押離鍵操作を検出したかどうかを判断する。
押離鍵操作を検出した場合には、判断結果が「ＹＥＳ」となり、ステップＳＡ６に処理を進める。ステップＳＡ６では、例えば押鍵された鍵の楽音について、指定された調に対応した装飾音やハーモニー音を付加する鍵情報処理（後述する）を実行した後、ステップＳＡ２に処理を戻す。
【００１７】
なお、この鍵情報処理において押鍵音に付加される「装飾音」および「ハーモニー音」の定義について図６を参照して説明しておく。この図に示すように、「ハーモニー音」とは、押鍵音の音高に対してハーモナイズするよう所定音高離れた楽音を指し、一方、「装飾音」とは押鍵音および「ハーモニー音」からそれぞれ所定音階離れ、押鍵音および「ハーモニー音」が発音される直前に発音される楽音を指す。
【００１８】
図６に図示する一例の場合、押鍵タイミングＴで押鍵音（ド）に対応する下向きの装飾音（シ）を所定期間発音させてから、押鍵音（ド）を発音させつつ、この押鍵音（ド）のハーモニー音（ミ），（ソ）と、それらハーモニー音（ミ），（ソ）に先行する装飾音（レ），（ファ）を、図示するタイミング関係で発音付加するようになっている。
【００１９】
▲２▼鍵情報処理ルーチンの動作
次に、図７を参照して鍵情報処理ルーチンの動作について説明する。上述したステップＳＡ６を経て鍵情報処理ルーチンが実行されると、ＣＰＵ４は図７に示すステップＳＢ１に処理を進め、鍵操作された鍵の鍵番号ＫＮをレジスタｐｉｔにストアする。
次いで、ステップＳＢ２では、レジスタｐｉｔにストアされた鍵番号ＫＮのｍｏｄ１２（剰余値）を求め、その剰余値に応じて白鍵識別テーブルＴＢＬ１から読み出す識別データが「１」か否かを判断する。つまり、鍵番号ＫＮのｍｏｄ１２から１オクターブ中の音名が求まり、その音名に対応する鍵が白鍵であるかどうかを判断する。
【００２０】
そして、黒鍵であると、判断結果が「ＮＯ」となり、この場合、何も処理せずに本ルーチンを完了するが、白鍵であると、判断結果は「ＹＥＳ」となり、次のステップＳＢ３に処理を進める。
ステップＳＢ３では、スケール選択スイッチの操作に応じて選択されるスケール種ｓａｃｌｅ（前述したダイアトニックスケールテーブルＴＢＬ３あるいはアラビックスケールテーブルＴＢＬ４のいずれか）において、調指定スイッチの操作で指定される調番号ｋｅｙと、鍵番号ＫＮの音名とに対応する音程変化を読み出し、それをレジスタｐｉｔに加算する。
【００２１】
次いで、ステップＳＢ４では、後述する装飾音処理にて装飾音を生成し、続くステップＳＢ５では、エラーフラグｂｅｒｒが「１」、すなわち、後述の装飾音処理にて行われるキーバッファリングでエラーが発生したかどうかを判断する。エラー発生の場合には、判断結果が「ＹＥＳ」となり、後述するステップＳＢ７に処理を進めるが、エラー発生していなければ、判断結果は「ＮＯ」となり、次のステップＳＢ６に進む。ステップＳＢ６では、押鍵操作時には音程変化が加算されたレジスタｐｉｔの音高の楽音を発音するよう音源７に指示し、一方、離鍵操作時にはレジスタｐｉｔの音高の楽音を消音するよう音源７に指示してからステップＳＢ７に進む。
【００２２】
そして、ステップＳＢ７では、スイッチフラグｓｗＨａｒが「１」、つまり、ハーモニー音付加スイッチの操作によってハーモニー音を付加する設定にされているかどうかを判断する。ハーモニー音を付加しない設定がなされている場合および離鍵された場合には、判断結果が「ＮＯ」となり、本ルーチンを完了させるが、ハーモニー音を付加する設定であると、判断結果は「ＹＥＳ」となり、ステップＳＢ８を介して後述するハーモナイズ処理にてハーモニー音を生成してから本ルーチンを完了させる。
【００２３】
▲３▼装飾音処理ルーチンの動作
次に、図８を参照して装飾音処理ルーチンの動作について説明する。上述した鍵情報処理ルーチンのステップＳＢ４を介して装飾音処理ルーチンが実行されると、ＣＰＵ４は図８に示すステップＳＣ１に処理を進め、鍵操作された鍵のイベントがノートオンであるか否か、つまり押鍵／離鍵のいずれであるかを判断する。以下、押鍵操作された場合と離鍵操作された場合とに分けて説明を進める。
【００２４】
（イ）押鍵操作された場合
押鍵操作に応じてノートオンが発生すると、ステップＳＣ１の判断結果は「ＹＥＳ」となり、ステップＳＣ２に進む。ステップＳＣ２では、レジスタｐｉｔに対応したキーバッファｎＫｅｙＢｕｆ［ｐｉｔ］の値をインクリメントする。
なお、キーバッファｎＫｅｙＢｕｆ［ｐｉｔ］とは、各鍵毎に対応して設けられ、鍵状態を表すデータを一時記憶するバッファであり、そのデータが「１」であれば対応する鍵が発音状態である旨を表し、「０」であれば対応する鍵が消音状態である旨を表す。
【００２５】
さて、このようなキーバッファｎＫｅｙＢｕｆ［ｐｉｔ］の値をインクリメントした後は、ステップＳＣ３に処理を進め、インクリメントされたキーバッファｎＫｅｙＢｕｆ［ｐｉｔ］の値が「２」以上であるか、つまり、発音中であった鍵がさらに押鍵される二重押鍵がなされたかどうかを判断する。
二重押鍵であると、判断結果が「ＹＥＳ」となり、ステップＳＣ４に処理を進め、既に発音中にある鍵の楽音の消音を音源７に指示する。そして、この後、ステップＳＣ５に進み、エラーフラグｂｅｒｒをゼロリセットし、エラー発生無しを表してから一旦、本ルーチンを完了させる。
【００２６】
一方、二重押鍵でない通常の押鍵の場合には、上記ステップＳＣ３の判断結果が「ＮＯ」となり、ステップＳＣ６に処理を進める。ステップＳＣ６では、スイッチフラグｓｗＳｏｕが「１」、つまり、装飾音付加スイッチの操作によって装飾音を付加する設定にされているかどうかを判断する。装飾音を付加しない設定であれば、判断結果は「ＮＯ」となり、この場合、上述したステップＳＣ５を介して本ルーチンを完了させる。
【００２７】
これに対し、装飾音を付加する設定であると、判断結果が「ＹＥＳ」となり、ステップＳＣ７に進み、後述する装飾音音程算出処理にて装飾音の音程を算出する。次いで、ステップＳＣ８では、スケール選択スイッチの操作に応じて選択されるスケール種ｓａｃｌｅ（前述したダイアトニックスケールテーブルＴＢＬ３あるいはアラビックスケールテーブルＴＢＬ４のいずれか）において、調指定スイッチの操作で指定される調番号ｋｅｙと、算出された装飾音の音名とに対応する音程変化を読み出し、それを算出された装飾音の音程に加算して装飾音ｎｅｗｐｉｔを発生する。
【００２８】
次に、ステップＳＣ９では、この生成した装飾音ｎｅｗｐｉｔの発音を音源７に指示し、続くステップＳＣ１０では装飾音ｎｅｗｐｉｔの発音期間に相当する所定時間待機する。
そして、所定時間経過後、ステップＳＣ１１に進み、装飾音ｎｅｗｐｉｔの消音を音源７に指示した後、ステップＳＣ５に進み、エラーフラグｂｅｒｒをゼロリセットし、エラー発生無しを表してから本ルーチンを完了させる。
【００２９】
（ロ）離鍵操作された場合
さて一方、離鍵操作された場合には、上記ステップＳＣ１の判断結果が「ＮＯ」となり、ステップＳＣ１２に処理を進める。ステップＳＣ１２では、レジスタｐｉｔに対応したキーバッファｎＫｅｙＢｕｆ［ｐｉｔ］の値をデクリメントし、続くステップＳＣ１３では、このデクリメントされたキーバッファｎＫｅｙＢｕｆ［ｐｉｔ］の値が「０」であるか否かを判断する。
ここで、キーバッファｎＫｅｙＢｕｆ［ｐｉｔ］の値が「０」であれば、判断結果は「ＹＥＳ」となり、ステップＳＣ１４に進み、エラーフラグｂｅｒｒをゼロリセットし、エラー発生無しを表してから本ルーチンを完了させる。
【００３０】
これに対し、キーバッファｎＫｅｙＢｕｆ［ｐｉｔ］の値が「０」でない場合、つまり、上述した二重押鍵後の離鍵であると、上記ステップＳＣ１３の判断結果は「ＮＯ」となり、ステップＳＣ１５に進み、エラーフラグｂｅｒｒを「１」にセットしてエラー発生を表す。
こうして、エラーフラグｂｅｒｒを「１」にセットすると、前述したステップＳＢ５（図７参照）の判断結果が「ＹＥＳ」となり、これにより二重押鍵後の離鍵操作に対応したノートオフ（消音指示）を音源７に送出するのを防いでいる。
【００３１】
▲４▼装飾音音程算出処理ルーチンの動作
次に、図９を参照して装飾音音程算出処理ルーチンの動作について説明する。上述した装飾音処理ルーチンのステップＳＣ７を介して装飾音音程算出処理ルーチンが実行されると、ＣＰＵ４は図９に示すステップＳＤ１に処理を進める。ステップＳＤ１では、装飾音付加スイッチの操作によって、押鍵音に対して上向きの装飾音を付加するように設定されているか否かを判断する。
ここで、上向きの装飾音を付加するように設定されていれば、判断結果が「ＹＥＳ」となり、ステップＳＤ２に進み、レジスタｄｅｖに「１」をセットする。一方、下向きの装飾音を付加するように設定されていれば、判断結果は「ＮＯ」となり、ステップＳＤ３に進み、レジスタｄｅｖに「−１」をセットする。
【００３２】
次いで、ステップＳＤ４では、カウンタｃｎｔをゼロリセットし、続くステップＳＤ５では、レジスタｐｉｔの値（鍵番号ＫＮ）をレジスタｎｅｗｐｉｔにストアする。そして、ステップＳＤ６では、レジスタｎｅｗｐｉｔにレジスタｄｅｖの値を加算する。つまり、鍵番号ＫＮに半音１つ分加算（もしくは鍵番号ＫＮから半音１つ分減算）する。
次に、ステップＳＤ７では、レジスタｎｅｗｐｉｔの値についてｍｏｄ１２（剰余値）を求め、その剰余値に応じて白鍵識別テーブルＴＢＬ１から読み出す識別データが「１」か否かを判断する。つまり、鍵番号ＫＮを半音１つ分加算（もしくは鍵番号ＫＮから半音１つ分減算）した鍵が白鍵であるかどうかを判断する。
【００３３】
黒鍵であると、判断結果は「ＮＯ」となり、ステップＳＤ６に処理を戻して再び鍵番号ＫＮを半音１つ分加算（もしくは鍵番号ＫＮから半音１つ分減算）する。そして、鍵番号ＫＮを半音１つ分加算（もしくは鍵番号ＫＮから半音１つ分減算）した鍵が白鍵になると、上記ステップＳＤ７の判断結果が「ＹＥＳ」となり、ステップＳＤ８に進む。ステップＳＤ８では、カウンタｃｎｔをインクリメントして歩進させ、続くステップＳＤ９では、この歩進したカウンタｃｎｔの値がレジスタｓｏｕｄｅｖ以上であるかを判断する。
なお、このレジスタｓｏｕｄｅｖには、装飾音付加スイッチの操作に応じて設定される装飾音の音程差、つまり、押鍵音に対して何度離れた装飾音であるかを指定する度数がストアされている。
【００３４】
したがって、このステップＳＤ９では、鍵番号ＫＮを半音１つ分加算（もしくは鍵番号ＫＮから半音１つ分減算）した鍵が白鍵になる毎に歩進されるカウンタｃｎｔの値が、設定された度数に達したかどうかを判断している。
ここで、設定された度数に達していなければ、判断結果は「ＮＯ」となり、上述したステップＳＤ６〜ＳＤ８を繰り返し、鍵番号ＫＮを半音１つ分加算（もしくは鍵番号ＫＮから半音１つ分減算）した鍵が白鍵になる毎にカウンタｃｎｔの値を歩進させる。そして、このカウンタｃｎｔの値が設定された度数に達すると、判断結果が「ＹＥＳ」となり、これによりレジスタｎｅｗｐｉｔの値が装飾音の音程が決り、本ルーチンを完了させる。
【００３５】
▲５▼ハーモナイズ処理ルーチンの動作
次に、図１０を参照してハーモナイズ処理ルーチンの動作について説明する。前述した鍵情報処理ルーチンのステップＳＢ８（図７参照）を介してハーモナイズ処理ルーチンが実行されると、ＣＰＵ４は図１０に示すステップＳＥ１に処理を進める。
ステップＳＥ１では、レジスタｉをゼロリセットし、続くステップＳＥ２では、レジスタｉの値が「２」以上であるか、つまり、押鍵音に対して２つのハーモニー音を付加し終えたかどうかを判断する。付加し終えると、判断結果は「ＹＥＳ」となり、本ルーチンを完了させるが、付加し終えていなければ、判断結果は「ＮＯ」となり、レジスタｉの値が「２」以上になる迄、後述するステップＳＥ３〜ＳＥ９を繰り返す。
【００３６】
ステップＳＥ３では、レジスタｐｉｔの値（鍵番号ＫＮ）をレジスタｈｐｉｔにストアする。そして、ステップＳＥ４では、レジスタｉの値に従って選択されるハーモナイズ音程テーブルＴＢＬ２（ｎＨｒ［０］又はｎＨｒ［１］）において、調指定スイッチの操作に応じて設定される調番号ｋｅｙと、鍵番号ＫＮの音名とに対応する音程変化を読み出し、それを鍵番号ＫＮの音程に加算してレジスタｈｐｉｔにストアする。
【００３７】
続いて、ステップＳＥ５では、スケール選択スイッチの操作に応じて選択されるスケール種ｓａｃｌｅ（前述したダイアトニックスケールテーブルＴＢＬ３あるいはアラビックスケールテーブルＴＢＬ４のいずれか）において、調指定スイッチの操作で指定される調番号ｋｅｙと、レジスタｈｐｉｔの値から導出した音名とに対応する音程変化を読み出し、それをレジスタｈｐｉｔに加算し、これにより最終的なハーモニー音の音程ｈｐｉｔ（以後、ハーモニー音ｈｐｉｔと記す）を発生する。
【００３８】
この後、ステップＳＥ６を介して前述した装飾音処理ルーチン（図８参照）を実行し、ハーモニー音に付加する装飾音を発生する。次いで、ステップＳＥ７では、装飾音処理ルーチンにてエラーが発生したか否かを判断し、エラー発生が無ければ、判断結果が「ＮＯ」となり、次のステップＳＥ８に進み、ハーモニー音ｈｐｉｔを音源７に送出して発音を指示した後、ステップＳＥ９に処理を進める。
一方、装飾音処理ルーチンにてエラーが発生すると、上記ステップＳＥ７の判断結果が「ＹＥＳ」となり、この場合、ハーモニー音ｈｐｉｔの発音を音源７に指示せず、ステップＳＥ９に進み、レジスタｉの値をインクリメントして歩進させた後、ステップＳＥ２に処理を戻す。
【００３９】
以上のように、本実施例によれば、例えば、図６に図示するように、押鍵タイミングＴで「ド」を押鍵すると、まず最初に押鍵音「ド」に対応し、かつ指定された調に応じた下向きの装飾音「シ」が生成され、これを所定期間発音させた後に押鍵音「ド」を発音させつつ、この押鍵音「ド」に対応し、かつ指定された調に応じたハーモニー音「ミ」，「ソ」と、これらハーモニー音「ミ」，「ソ」にそれぞれに対応し、かつ指定された調に応じた下向きの装飾音「レ」，「ファ」を、図示するタイミングで発音付加するので、鍵操作に不慣れなユーザであっても、白鍵を弾くだけで調性に適した装飾音やハーモニー音を交えた多彩な演奏が可能になっている。
【００４０】
本発明によれば、押鍵が為されるに応答して、当該押鍵された鍵が指定する音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させ、この装飾音が所定期間発音された後、押鍵された鍵が指定する音高の押鍵音を発音させる。そしてこの押鍵音が発音されるに応答して、押鍵された鍵が指定する音高と所定の音高差を有する音高を算出し、算出された音高を予め指定された調に適合するように変換したハーモニー用の音高を生成し、このハーモニー用音高と設定された度数の音高差を有する装飾用の音高の装飾音を生成して所定期間発音させる。さらにこの装飾音が所定期間発音された後、ハーモニー用の音高を有するハーモニー音を生成して発音させる。このため、１つの鍵を押鍵するだけで調性に適した装飾音やハーモニー音を発生でき、これにより鍵操作に不慣れなユーザであっても簡単に多彩な演奏表現を実現することができる。
【図面の簡単な説明】
【図１】本発明による一実施例の構成を示すブロック図である。
【図２】白鍵識別テーブルＴＢＬ１およびハーモナイズ音程テーブルＴＢＬ２の構成を示す図である。
【図３】ダイアトニックスケールテーブルＴＢＬ３の構成を示す図である。
【図４】アラビックスケールテーブルＴＢＬ４の構成を示す図である。
【図５】メインルーチンの動作を示すフローチャートである。
【図６】本発明における装飾音およびハーモニー音の定義を説明するための図である。
【図７】鍵情報処理ルーチンの動作を示すフローチャートである。
【図８】装飾音処理ルーチンの動作を示すフローチャートである。
【図９】装飾音音程算出処理ルーチンの動作を示すフローチャートである。
【図１０】ハーモナイズ処理ルーチンの動作を示すフローチャートである。
【符号の説明】
１  パネルスイッチ群
２  鍵盤
３  表示部
４  ＣＰＵ
５  ＲＯＭ
６  ＲＡＭ
７  音源
８  サウンドシステム
【図１】
0004032208.tif 000002
【図２】
0004032208.tif 000003
【図３】
0004032208.tif 000004
【図４】
0004032208.tif 000005
【図５】
0004032208.tif 000006
【図６】
0004032208.tif 000007
【図７】
0004032208.tif 000008
【図８】
0004032208.tif 000009
【図９】
0004032208.tif 000010
【図１０】
0004032208.tif 000011