(57)【特許請求の範囲】
【請求項１】
演奏操作を検出するセンサと、
前記センサによる演奏操作の検出に応答して、音源に対して発音を指示する発音指示手段と、
予め定められた時間内における前記センサにより検出された演奏操作の回数及びタイミングに基づいて、前記演奏操作のパターンを識別する識別手段と、
前記識別手段により識別された演奏操作のパターンに対応して、少なくとも、発音すべき楽音の音色、ピッチベンドレンジのいずれかを含む楽音のパラメータを制御する制御手段と、
を備えた電子楽器。
【請求項２】
前記電子楽器はさらに、予め定められた特定モードに設定するモード設定手段を有し、
前記モード設定手段により前記特定のモードに設定されているときのみ、前記識別手段及び制御手段の動作を有効にする、請求項１に記載の電子楽器。
【請求項３】
前記電子楽器は、前記モード設定手段により特定のモードが設定されているときに、前記予め定められたタイミングで第１のガイド音を発生するとともに、前記予め定められた時間間隔で第２のガイド音を発生するガイド音生成手段を有する、請求項２に記載の電子楽器。
【請求項４】
前記識別手段は、夫々異なる演奏操作の回数及びタイミングから成る複数種の演奏操作パターンを記憶したメモリを有し、前記メモリに記憶された複数の演奏操作パターンのいずれかと前記センサにより検出された演奏操作の回数及びタイミングに基づく演奏操作パターンとが一致するか否か判別することにより、前記演奏操作のパターンを識別する、請求項１乃至３のいずれかに記載の電子楽器。
【請求項５】
前記識別手段は、前記メモリに記憶された複数の演奏操作パターンのいずれかと前記センサにより検出された演奏操作の回数及びタイミングに基づく演奏操作パターンとが一致したときに、当該一致した演奏パターンに対応する識別音を発生する識別音発生手段を有する請求項４に記載の電子楽器。
【請求項６】
前記センサは、演奏操作として演奏者のブレス入力の有無を検知する、請求項１乃至５のいずれかに記載の電子楽器。
【請求項７】
前記制御手段は、前記楽音のパラメータとして、当該楽音の音色を制御する、請求項１乃至６のいずれかに記載の電子楽器。
【請求項８】
演奏操作を検出するセンサを有する電子楽器に用いるパラメータ制御方法であって、前記電子楽器が、
前記センサによる演奏操作の検出に応答して、音源に対して発音を指示し、
予め定められた時間内における前記センサにより検出された演奏操作の回数及びタイミングに基づいて、前記演奏操作のパターンを識別し、
前記識別された演奏操作のパターンに対応して、少なくとも、発音すべき楽音の音色、ピッチベンドレンジのいずれかを含む楽音のパラメータを制御する、パラメータ制御方法。
【請求項９】
演奏操作を検出するセンサを有する電子楽器として用いるコンピュータに、
前記センサによる演奏操作の検出に応答して、音源に対して発音を指示するステップと、
予め定められた時間内における前記センサにより検出された演奏操作の回数及びタイミングに基づいて、前記演奏操作のパターンを識別するステップと、
前記識別された演奏操作のパターンに対応して、少なくとも、発音すべき楽音の音色、ピッチベンドレンジのいずれかを含む楽音のパラメータを制御するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器において音色等の楽音パラメータを切り替える等の制御を行う技術に関する。
【背景技術】
【０００２】
電子楽器において、音色などの楽音パラメータの切替えは、一般に専用のファンクションスイッチを用いて行われる。
【０００３】
ここで、サックス、クラリネット、オーボエ、フルートなどに対応する電子楽器である電子管楽器についても、従来は、音色などの楽音パラメータの切替えを、例えば切替えスイッチ等の専用の切替え手段により行うようにしていた（例えば特許文献１に記載の技術）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】実開昭６４−４５８９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、電子管楽器では、演奏者は楽器自体を両手の指で支えながら演奏を行う姿勢をとるため、音色などの楽音パラメータの切替えを専用のスイッチ等で行う従来技術では、その操作を行うたびに演奏姿勢から電子管楽器を持ち帰る等の動作をしなければならず、演奏姿勢を維持することが難しいという課題があった。
【０００６】
そこで、本発明は、簡単な操作と構成で楽音パラメータを切替え可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
態様の一例では、演奏操作を検出するセンサと、センサによる演奏操作の検出に応答して、音源に対して発音を指示する発音指示手段と、予め定められた時間内におけるセンサにより検出された演奏操作の回数及びタイミングに基づいて、演奏操作のパターンを識別する識別手段と、識別手段により識別された演奏操作のパターンに対応して、少なくとも、発音すべき楽音の音色、ピッチベンドレンジのいずれかを含む楽音のパラメータを制御する制御手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、簡単な操作と構成で楽音パラメータを切替えることが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明による電子管楽器を制御するシステムの実施形態を示す図である。
【図２】本実施形態における信号波形例を示す図である。
【図３】Ｐｅａｋ検出処理の説明図（その１）である。
【図４】Ｐｅａｋ検出動作の説明図（その２）である。
【図５】Ｐｅａｋのカウントパターンの説明図（その１）である。
【図６】Ｐｅａｋのカウントパターンの説明図（その２）である。
【図７】Ｐｅａｋのカウントパターンの説明図（その３）である。
【図８】Ｐｅａｋのカウントパターンの説明図（その４）である。
【図９】Ｐｅａｋのカウントパターンの説明図（その５）である。
【図１０】所定時間範囲ｔと、音符と、テンポと、サンプリングタイミングとの関係を示す説明図である。
【図１１】Ｐｅａｋのカウントパターンの説明図（その６）である。
【図１２】Ｐｅａｋのカウントパターンの説明図（その７）である。
【図１３】システムの動作とガイド音との関係を示す説明図である。
【図１４】音色変更処理のためのレジスタ群（その１）を示す図である。
【図１５】カウントパターン一致検証用テーブルを示す図である。
【図１６】音色変更処理のためのレジスタ群（その２）を示す図である。
【図１７】電子管楽器システムのメイン処理の例を示すフローチャートである。
【図１８】５０μｓごと割込処理の例を示すフローチャート（その１）である。
【図１９】５０μｓごと割込処理の例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図１は、本発明による電子管楽器を制御するシステムの実施形態を示す図である。
【００１１】
本実施形態のシステムは、ローパスフィルタ（図中「ＬＰＦ」）１０１と、アンプ（図中「Ａｍｐ」）１０２、１０４、ゼロクロス検出部１０３、絶対値算出部１０５、ＣＰＵ（セントラルプロセッシングユニット）１０６、キーマトリクス１０７、モードスイッチ（図中「モードＳＷ」）１０８、音源１０９、Ｄ／Ａ（デジタル／アナログ）変換器１１０、アンプ１１１、およびスピーカ（図中「ＳＰ」）１１２を備える。また、ＣＰＵ１０６は、符号・割込回路１１３、Ａ／Ｄ（アナログ／デジタル）変換器１１４、タイマ１１５、メモリ１１６、及びブレスセンサ１１７を備える。
【００１２】
連続的に変化する演奏者のブレス（呼気）の状態は、ブレスセンサ１１７により検出され、このブレスセンサ１１７が出力する信号はＬＰＦ１０１に入力する。ＬＰＦ１０１は、この信号の倍音成分をカットする。ＬＰＦ１０１の出力は、Ａｍｐ１０２によって増幅される。図２は、本実施形態における信号波形例を示す図である。図２（ａ）はブレスセンサ１１７の出力（図１のＡ点）の信号波形の例を示す図、図２（ｂ）はＡｍｐ１０２の出力（図１のＢ点）の信号波形の例を示す図である。図２（ａ）および（ｂ）を比較してわかるように、ピーク検出をし易いように、ブレスセンサ１１７の出力中の倍音成分がカットされ、滑らかな波形に変換されている。
【００１３】
ゼロクロス検出部１０３は、Ａｍｐ１０２の出力信号（Ｂ点、図２（ｂ））から、その振幅値が値０を交差するタイミングを検出する。この検出出力は、そのまま（Ｃ点）あるいはＡｍｐ１０４にて増幅された後（Ｅ点）に、ＣＰＵ１０６内の符号・割込回路１１３に入力する。符号・割込回路１１３は、入力したアナログ信号波形に基づいて２値のデジタル信号を生成する。図２（ｃ）は、上記Ｃ点またはＥ点の信号波形が符号・割込回路１１３によって２値のデジタル信号波形に変換された例を示す図である。このデジタル信号波形は、ゼロクロス検出部１０３にてゼロクロスが検出された結果、ＬＰＦ１０１（Ａｍｐ１０２）の出力信号の振幅値が正の値となる区間で論理値１、負の値となる区間で論理値０を有する２値のデジタル信号となっている。
【００１４】
絶対値算出部１０５は、Ａｍｐ１０２の出力信号（Ｂ点、図２（ｂ））の絶対値を算出する。この算出出力（Ｄ点）は、ＣＰＵ１０６内のＡ／Ｄ変換器１１４に入力する。Ａ／Ｄ変換器１１４は、ＣＰＵ１０６内のタイマ１１５を仕様して例えば５０μ秒（μｓ）ごとに割込みをかけ、入力したアナログ信号波形をデジタル信号波形にＡ／Ｄ変換する。図２（ｄ）は、上記Ｄ点の信号波形の例を示す図である。この信号波形は、ＬＰＦ１０１（Ａｍｐ１０２）の出力信号の振幅値が負の値となる区間が正側に折り返された波形を有する。
【００１５】
タイマ１１５は、上述のＡ／Ｄ変換器１１４のサンプリングを制御するほか、後述する各種所定の時間をカウントするなどの役割を有する。
【００１６】
メモリ１１６は、各種制御データを記憶する。
【００１７】
ＣＰＵ１０６には、電子管楽器の演奏操作キーを読み取るためのキーマトリクス１０７と、音色変更のモードをオン（ｏｎ）、オフ（ｏｆｆ）指定するためのモードＳＷ１０８が接続される。また、ＣＰＵ１０６には、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）信号によって制御される音源１０９が外付けされる。音源１０９は、ＣＰＵ１０６からのノートオン／ノートオフおよび音色指定に基づく楽音の発音指示に応答して、対応する楽音信号を生成し、Ｄ／Ａ変換器１１０に出力する。Ｄ／Ａ変換器１１０は、音源１０９が出力したデジタル楽音信号をアナログ楽音信号に変換する。このアナログ楽音信号は、アンプ１１１で増幅された後、スピーカ１１２から放音される。
【００１８】
本実施形態では、ＣＰＵ１０６が、絶対値算出部１０５からＡ／Ｄ変換器１１４を介して入力したデジタル信号波形から、演奏者のブレス入力タイミングを抽出する。そのためにＣＰＵ１０６はまず、上記デジタル信号波形から所定のスレッショルド（閾値）以上の値を有するピーク（以下「Ｐｅａｋ」と記載する）を検出する。
【００１９】
図３は、Ｐｅａｋ検出処理の説明図（その１）である。本実施形態では、処理の簡略化のために、図３に例示される上記デジタル信号波形の正側波形のみが処理され、負側波形は無視される。そのために、ＣＰＵ１０６は、図１のＡ／Ｄ変換器１１４から入力するデジタル信号波形（図２（ｄ）参照）のうち、図１の符号・割込回路１１３から出力されるゼロクロス２値信号（図２（ｃ））の値が１となる区間の信号のみを処理し、その他の区間の信号値は全てゼロとして処理する。なお、負側波形のみ、あるいは両方の波形が処理されてもよい。
【００２０】
このようなデジタル信号波形からのＰｅａｋ検出として、図３の破線で示される予測カーブ３０２が用いられる。そして、サンプリング周波数５０μｓのタイマ１１５による割込みタイミング（サンプリングタイミング）ｎ（ｎは０以上の整数）ごとに、Ａ／Ｄ変換器１１４が出力する現在の波高値ａｎと、そのサンプリングタイミングｎにおける上記予測カーブ３０２上の予測値ｂｎとが比較される。そして、下記のアルゴリズムによる処理が実行される。
【００２１】
まず、ケース１として、サンプリングタイミングｎにおいて、現在の波高値ａｎ≧予測値ｂｎとなると、メモリ１１６に保持されるＰｅａｋ検出＿ｆｌａｇがｏｎ（オン）にされ、予測カーブ３０２の開始点が現在の波高値ａｎに更新されて、次のサンプリングタイミングｎ＋１における予測値ｂｎ＋１が計算される。これは、負側の波形の波高値から値ゼロを過ぎて正側の波形になりその波高値が増加してゆく場合である。例えば、図３の波高値ａ１と予測値ｂ１、ａ２とｂ２、ａ３とｂ３、ａ４とｂ４の各場合のときである。このとき、下記（１）式の予測カーブ３０２が使用されて、次のサンプリングタイミングのための予測値ｂｎが算出される。
【００２２】
ｂｎ＝ａｎ×（１−１／２５６）−１      （１）
【００２３】
図３の例では例えば、次のようにｂ２〜ｂ５が算出される。
ｂ２＝ａ１×（１−１／２５６）−１
ｂ３＝ａ２×（１−１／２５６）−１
ｂ４＝ａ３×（１−１／２５６）−１
ｂ５＝ａ４×（１−１／２５６）−１
【００２４】
一方、ケース２として、サンプリングタイミングｎにおいて、Ｐｅａｋ検出＿ｆｌａｇがｏｎの状態で、現在の波高値ａｎ＜予測値ｂｎとなったときであって、さらに現在の波高値ａｎの１サンプル（５０μｓ）前の波高値ａｎ−１が所定のスレッショルドＳ以上となると、その波高値ａｎ−１がＰｅａｋとして認識される。例えば、図３の波高値ａ５と予測値ｂ５の場合であり、このときに波高値ａ４がＰｅａｋとして認識される。
【００２５】
図４は、ケース２におけるＰｅａｋ検出処理の説明図（その２）である。Ｐｅａｋ検出＿ｆｌａｇがｏｎの状態で、現在の波高値ａｎ＜予測値ｂｎとなったときの波高値ａｎ−１＝α１、α１′、α２′、α２、α２′′、α３′、α３、α３′′、α４′、およびα４等のうち、スレッショルドＳを越えるα１、α２、α３、およびα４等がＰｅａｋとして検出され、スレッショルドＳ以下のα１′、α２′、α２′′、α３′、α３′′、およびα４′等は、Ｐｅａｋとしては検出されない。ＣＰＵ１０６は、このようにして検出されたＰｅａｋ値（図３の例ではａ４）を、メモリ１１６に記憶する。以下の説明では便宜上、図４のようにして認識された各Ｐｅａｋ値を、α１、α２、α３、・・・と記載する。
【００２６】
ケース２において、上記処理の後、メモリ１１６上のＰｅａｋ検出＿ｆｌａｇがｏｆｆ（オフ）にされる。そして、予測カーブ３０２の開始点が現在のサンプリングタイミングｎでの予測値ｂｎとされて、下記（２）式の予測カーブ３０２が使用されて、次のサンプリングタイミングのための予測値ｂｎが算出される。
【００２７】
ｂｎ＝ｂｎ×（１−１／２５６）−１      （２）
【００２８】
図３の例では例えば、次のようにｂ６（図示せず）が算出される。
ｂ６＝ｂ５×（１−１／２５６）−１
【００２９】
ケース３として、サンプリングタイミングｎにおいて、Ｐｅａｋ検出＿ｆｌａｇがｏｆｆの状態で、現在の波高値ａｎ＜予測値ｂｎのときには、予測カーブ３０２の開始点は変更されずに（図３の場合ｂ５）、前述の（２）式に従って予測値ｂｎのみが更新されてゆく。これは、正側の波形の波高値がＰｅａｋを過ぎて減少してゆく場合である。
【００３０】
その後、波形のサンプリングが進んで、負側の波形の波高値から値ゼロを過ぎて再び正側の波形になりその波高値が増加を始めると、図３のａ１とｂ１の関係ように、再びケース１の状態になる。
【００３１】
図５から図９は、図１のモードＳＷ１０８がｏｎにされた後のブレスセンサ１１７の出力に基づいてＣＰＵ１０６が上述のＰｅａｋ検出処理によって検出するＰｅａｋのカウントパターンの説明図である。これらの図において、Ｐｅａｋ検出処理によって検出されたＰｅａｋは、α１〜α７などとして示されている。説明上、所定時間範囲ｔを８分割し、わかり易さのためにｔ／４を４分音符
0006492516.tif 000002
ｔ／８を８分音符♪で表記している。図１０は、所定時間範囲ｔと、音符と、テンポと、Ａ／Ｄ変換器１１４におけるサンプリングのタイミングとの関係を示す説明図である。ＣＰＵ１０６では、タイマ１１５により、５０μｓごとに割込みがかかり、この割込みに基づいてＡ／Ｄ変換器１１４でサンプリングが行われる。これを基準として、音符を決定するテンポ（図中Ｔｅｍｐｏ）の分解能は、例えば１ミリ秒（ｍｓ）とされる。ここで、所定時間範囲ｔは、例えば１小節の時間範囲であり、例えば２秒であり、図１０中の大きな「×」印が小節の区切りを示す。また、小さな「×」印は、拍（四拍子の場合）の区切りを示す。この場合、４分音符の音符長は０．５秒となる（８分音符では０．２５秒である）。ここで、ＣＰＵ１０６は、メモリ１１６に記憶されているＰｅａｋの各検出タイミングを、小さな「×」印で示される拍の区切りとして認識する。言い換えれば、演奏者は、拍を意識してブレス入力を行うことになる。このとき、Ｐｅａｋの検出タイミング±１０ｍｓの範囲（図１０の１００１参照）で、拍を認識してどの音符がブレス入力されたかを判定する。
【００３２】
ＣＰＵ１０６は、以上の動作に基づいて、所定時間範囲ｔにおけるＰｅａｋのカウントパターンを判定する。そして、カウントパターンに応じて、演奏者が値０〜９のうちのどれを指定したかを判定する。
【００３３】
ＣＰＵ１０６は、図５（ａ）に示されるように、カウントパターンが、４個の連続する４分音符であると判定した場合には、値０が指定されたと判定する。
【００３４】
ＣＰＵ１０６は、図５（ｂ）に示されるように、カウントパターンが、連続する３個の４分音符とそれに続く２個の連続する８分音符であると判定した場合には、値１が指定されたと判定する。
【００３５】
ＣＰＵ１０６は、図６（ｃ）に示されるように、カウントパターンが、連続する２個の４分音符とそれに続く２個の連続する８分音符とさらにそれに続く１個の４分音符であると判定した場合には、値２が指定されたと判定する。
【００３６】
ＣＰＵ１０６は、図６（ｄ）に示されるように、カウントパターンが、連続する２個の４分音符とそれに続く４個の連続する８分音符であると判定した場合には、値３が指定されたと判定する。
【００３７】
ＣＰＵ１０６は、図７（ｅ）に示されるように、カウントパターンが、１個の４分音符とそれに続く２個の連続する８分音符とさらにそれに続く２個の連続する４分音符であると判定した場合には、値４が指定されたと判定する。
【００３８】
ＣＰＵ１０６は、図７（ｆ）に示されるように、カウントパターンが、１個の４分音符とそれに続く２個の連続する８分音符とさらにそれに続く１個の４分音符とさらにそれに続く２個の連続する８分音符であると判定した場合には、値５が指定されたと判定する。
【００３９】
ＣＰＵ１０６は、図８（ｇ）に示されるように、カウントパターンが、１個の４分音符とそれに続く４個の連続する８分音符とさらにそれに続く１個の４分音符であると判定した場合には、値６が指定されたと判定する。
【００４０】
ＣＰＵ１０６は、図８（ｈ）に示されるように、カウントパターンが、１個の４分音符とそれに続く６個の連続する８分音符であると判定した場合には、値７が指定されたと判定する。
【００４１】
ＣＰＵ１０６は、図９（ｉ）に示されるように、カウントパターンが、連続する２個の８分音符とそれに続く３個の連続する８分音符であると判定した場合には、値８が指定されたと判定する。
【００４２】
ＣＰＵ１０６は、図９（ｊ）に示されるように、カウントパターンが、連続する２個の８分音符とそれに続く２個の連続する４分音符とさらにそれに続く２個の連続する８分音符であると判定した場合には、値９が指定されたと判定する。
【００４３】
次に、図１１および図１２は、音色変更コマンドのためのＰｅａｋのカウントパターンの説明図である。ＣＰＵ１０６は、図１１の「Ｃｏｍｍａｎｄ  Ａ」として示されるように、ある所定時間範囲ｔにおけるカウントパターンが、連続する６個の８分音符とそれに続く１個の４分音符であると判定した場合には、「Ｃｏｍｍａｎｄ  Ａ」が指定されたと判定する。「Ｃｏｍｍａｎｄ  Ａ」は、それに続いて音色の上位桁を指定するためのコマンド指定である。従って、図１１に示されるように、ＣＰＵ１０６は、上記「Ｃｏｍｍａｎｄ  Ａ」が指定された所定時間範囲ｔに続く次の所定時間範囲ｔ＋１において、図５から図９で前述した値０から９のいずれかのカウントパターンを判定することにより、上位桁の値を特定する。
【００４４】
ＣＰＵ１０６は、図１２の「Ｃｏｍｍａｎｄ  Ｂ」として示されるように、ある所定時間範囲ｔにおけるカウントパターンが、連続する８個の８分音符であると判定した場合には、「Ｃｏｍｍａｎｄ  Ｂ」が指定されたと判定する。「Ｃｏｍｍａｎｄ  Ｂ」は、それに続いて音色の下位桁を指定するためのコマンド指定である。従って、図１２に示されるように、ＣＰＵ１０６は、上記「Ｃｏｍｍａｎｄ  Ｂ」が指定された所定時間範囲ｔに続く次の所定時間範囲ｔ＋１において、図５から図９で前述した値０から９のいずれかのカウントパターンを判定することにより、下位桁の値を特定する。
【００４５】
ＣＰＵ１０６は、上述のようにして、演奏者のブレス１１７センサの出力（図１）に基づいて「Ｃｏｍｍａｎｄ  Ａ」のブレスパターンの指定とそれに続く値０から９のいずれかの値の指定および「Ｃｏｍｍａｎｄ  Ｂ」のブレスパターンの指定とそれに続く値０から９のいずれかの値の指定を判定すると、上位および下位の２桁からなる音色番号に対応する音色への変更を、図１の音源１０９に指示する。このようにして、演奏者は、モードＳＷ１０８をｏｎした後のブレスセンサの出力１１７によって、音色番号００から９９までの１００通りの音色変更を、電子管楽器のキーマトリクス１０７（図１）から両手を離すことなく行うことが可能となる。
【００４６】
図１３は、システムの動作とガイド音との関係を示す説明図である。本実施形態では、ブレスセンサの出力１１７に際して、演奏者に所定の時間範囲ｔにおいて小節および拍の入力タイミングをわかり易くガイドするために、ガイド音が発生させられる。また、各種パターンが認識されたことを示す音も発生させられる。図１３は、上述の指定方法に基づく演奏者による音色変更のためのブレスセンサの出力１１７（図１）に際して、図１のシステムが、どのように動作し、どのようなガイド音を鳴らしながら動作を進行させるかを説明する図である。
【００４７】
まず、所定時間範囲ｔは、サイクリックに繰り返され、０．５秒ごとにＴｅｍｐｏ音が刻まれる。すなわち、ＣＰＵ１０６は、大きな「×」印のタイミング、すなわち例えば２秒に１回の所定時間範囲ｔの区切りのタイミングでは、大きな音量によるＴｅｍｐｏ音（ガイド音）の発音を音源１０９（図１）に指示する。さらに、ＣＰＵ１０６は、小さな「×」印のタイミング、すなわち例えば０．５秒に１回のタイミングでは、小さな音量によるＴｅｍｐｏ音（ガイド音）の発音を音源１０９に指示する。
【００４８】
次に、ＣＰＵ１０６は、図１１または図１２に従うブレスパターンを認識すると、認識したことを示すために、下記の発音を音源１０９に指示する。
図１３中の●印：「Ｃｏｍｍａｎｄ  Ａ」を認識した音。
図１３中の○印：「Ｃｏｍｍａｎｄ  Ｂ」を認識した音。
図１３中の■印：「Ｃｏｍｍａｎｄ  Ａ」に続く音色変更上位桁の値０〜９を認識した音。
図１３中の□印：「Ｃｏｍｍａｎｄ  Ｂ」に続く音色変更下位桁の値０〜９を認識した音。
以上の一連の音の発音に続いて、ＣＰＵ１０６は、上位および下位の２桁からなる音色番号に対応する音色への変更を図１の音源１０９に指示し、この指示に基づいて音源１０９が音色を変更する。
【００４９】
図１４は、音色変更処理のためのレジスタ群（その１）を示す図である。これらのレジスタは、図１のメモリ１１６上の変数として記憶され、ＣＰＵ１０６が後述する図１７、図１８、および図１９のフローチャートで示される音色変更処理を実行する際に使用される。
【００５０】
図１４において、レジスタＴｉｍｅｒ＿５０μｓは、図１のタイマ１１５からの割込みに基づいて、５０μｓ単位で値０から１９までのカウントを行うカウンタレジスタである。ＣＰＵ１０６は、このレジスタの値が２０になったらその値をゼロクリアし、１ｍｓごとに後述するレジスタＴｉｍｅｒ＿１ｍｓの値を＋１インクリメントさせる。
【００５１】
図１４において、レジスタＴｉｍｅｒ＿１ｍｓは、１ｍｓ単位で値０から１９９９までのカウントを行う、Ｔｅｍｐｏを刻むカウンタレジスタである。ＣＰＵ１０６は、このレジスタの値が２０００になったらその値をゼロクリアし、２５０ｍｓごとに後述するレジスタＴｉｍｅｒ＿２５０ｍｓの値を＋１インクリメントさせる。
【００５２】
図１４において、レジスタＴｉｍｅｒ＿２５０ｍｓは、２５０ｍｓ単位で値０から７までのカウントを行う、８分音符単位を刻むカウンタである。ＣＰＵ１０６は、このレジスタの値が８（２０００ｍｓ）になったらその値をゼロクリアする。
【００５３】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［Ｔｉｍｅｒ＿２５０ｍｓ］は、レジスタＴｉｍｅｒ＿２５０ｍｓが示すタイミングごとに、そのタイミングに対する±１０ｍｓのクオンタイズ範囲を示すためのレジスタである。レジスタＴｉｍｅｒ＿２５０ｍｓが示すタイミングにおいて、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［Ｔｉｍｅｒ＿２５０ｍｓ］が示す範囲内にレジスタＴｉｍｅｒ＿１ｍｓのカウンタ値でカウントされるＰｅａｋが存在すれば、そのレジスタＴｉｍｅｒ＿２５０ｍｓが示すタイミングにＰｅａｋが存在することを示すフラグｏｎが設定される。具体的には、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［０］〜Ｔｉｍｅｒ＿ｑｕａｖｅｒ［７］は、それぞれ下記の範囲を有する。
【００５４】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［０］は、００００〜００１０ｍｓもしくは１９９０〜２０００ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が０のときにこの範囲内にＰｅａｋが存在すれば、第１番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第１番目の区間０に対応して設定される。
【００５５】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［１］は、２４０〜２６０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が１のときにこの範囲内にＰｅａｋが存在すれば、第２番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第２番目の区間１に対応して設定される。
【００５６】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［２］は、４９０〜５１０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が２のときにこの範囲内にＰｅａｋが存在すれば、第３番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第３番目の区間２に対応して設定される。
【００５７】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［３］は、７４０〜７６０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が３のときにこの範囲内にＰｅａｋが存在すれば、第３番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第３番目の区間２に対応して設定される。
【００５８】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［４］は、９９０〜１０１０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が４のときにこの範囲内にＰｅａｋが存在すれば、第４番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第４番目の区間３に対応して設定される。
【００５９】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［５］は、１２４０〜１２６０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が５のときにこの範囲内にＰｅａｋが存在すれば、第５番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第５番目の区間４に対応して設定される。
【００６０】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［５］は、１２４０〜１２６０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が５のときにこの範囲内にＰｅａｋが存在すれば、第５番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第５番目の区間４に対応して設定される。
【００６１】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［６］は、１４９０〜１５１０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が６のときにこの範囲内にＰｅａｋが存在すれば、第６番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第６番目の区間５に対応して設定される。
【００６２】
図１４において、レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［７］は、１７４０〜１７６０ｍｓの範囲を出力する。レジスタＴｉｍｅｒ＿２５０ｍｓの値が７のときにこの範囲内にＰｅａｋが存在すれば、第７番目の８分音符のタイミングにＰｅａｋがあることを示すフラグが所定時間範囲ｔ内の第７番目の区間６に対応して設定される。
【００６３】
次に、図１４において、レジスタＢｒｅｓｓ＿ｏｎ＿ｏｆｆ［Ｔｉｍｅｒ＿２５０ｍｓ］には、レジスタＴｉｍｅｒ＿２５０ｍｓが示す区間ごとに、上記レジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［Ｔｉｍｅｒ＿２５０ｍｓ］の範囲にＰｅａｋが存在すればｏｎ、存在しなければｏｆｆの値が設定される。
【００６４】
図１５は、カウントパターン一致検証用テーブルを示す図であり、図１のメモリ１１６に記憶される。このテーブルは、１小節を８分音符単位で分割した区間０から７のそれぞれにＰｅａｋが存在する（ｏｎ）または存在しない（ｏｆｆ）という組合せ（カウントパターン）ごとに、どのタイプ（図中Ｔｙｐｅ）の情報が指定されたかを示す。ＣＰＵ１０６は、図１４のレジスタＢｒｅｓｓ＿ｏｎ＿ｏｆｆ［０］〜Ｂｒｅｓｓ＿ｏｎ＿ｏｆｆ［７］の８個の値を確定させると、この値の組のパターンが図１５のカウントパターン一致検証用テーブルのどのＴｙｐｅに該当するかを判定し、該当するＴｙｐｅを出力する。ＣＰＵ１０６は、Ｔｙｐｅ０〜Ｔｙｐｅ９を判定した場合には、値０〜値９を出力する。ＣＰＵ１０６は、ＴｙｐｅＥを判定した場合には、「Ｃｏｍｍａｎｄ  Ａ」を出力する。ＣＰＵ１０６は、ＴｙｐｅＦを判定した場合には、「Ｃｏｍｍａｎｄ  Ｂ」を出力する。
【００６５】
図１６は、音色変更処理のためのレジスタ群（その２）を示す図である。これらのレジスタは、図１４のレジスタ群と同様に、図１のメモリ１１６上の変数として記憶され、ＣＰＵ１０６が後述する図１７、図１８、および図１９のフローチャートで示される音色変更処理を実行する際に使用される。
【００６６】
レジスタＳは、図４で説明した予め定められたスレッショルドＳを記憶する。なお、この値は、動的に変更されてもよい。
【００６７】
レジスタＣｏｍｍａｎｄは、カウントパターンの識別の結果、「Ｃｏｍｍａｎｄ  Ａ」が識別されたか（図１１参照）、「Ｃｏｍｍａｎｄ  Ｂ」が識別されたかを記憶する。レジスタＣｏｍｍａｎｄ＝Ａならば、次に入力されるデータは音色上位桁の値であり（図１１参照）、レジスタＣｏｍｍａｎｄ＝Ｂならば、次に入力されるデータは音色下位桁の値である（図１２参照）。
【００６８】
レジスタａｎは、図３の説明で前述した、図１のＡ／Ｄ変換器１１４が出力する波高値を記憶する。レジスタｂｎは、図３の説明で前述した、（１）式または（２）式に基づいて算出される予測値を記憶する。
【００６９】
レジスタＰｅａｋ検出＿ｆｌａｇは、図３の説明で前述したフラグであり、Ｐｅａｋ検出状態のときにｏｎ、それ以外のときにｏｆｆに設定される。
【００７０】
レジスタ音色上位桁は、図１１の説明で前述した音色番号の上位桁を記憶する。レジスタ音色上位桁は、図１１の説明で前述した音色番号の下位桁を記憶する。
【００７１】
図１７は、本実施形態による電子管楽器システムのメイン処理の例を示すフローチャートである。このメイン処理は、図１のＣＰＵ１０６が、内部の特には図示しないＲＯＭ（リードオンリーメモリ）に記憶されたメイン処理プログラムを実行する動作であり、演奏者が特には図示しない電源ボタンをオンすることにより、その実行が開始される。
【００７２】
図１７において、まずＣＰＵ１０６は、各種処理を実行する（ステップＳ１７０１）。ここでは、電子管楽器として一般的に実行される処理が実行され、例えば、キーマトリクス１０７から指定された演奏キーを取り込む処理、ノートオンまたはノートオフを検出して音源１０９に発音または消音を指示する処理等が実行される。
【００７３】
次に、ＣＰＵ１０６は、演奏者が図１のモードＳＷ１０８をｏｆｆからｏｎに切り替えたか否かを判定する（ステップＳ１７０２）。ステップＳ１７０２の判定がＮＯならば、ＣＰＵ１０６は、演奏者が図１のモードＳＷ１０８をｏｎからｏｆｆに切り替えたか否かを判定する（ステップＳ１７０３）。ステップＳ１７０３の判定もＮＯならば、ＣＰＵ１０６は、ステップＳ１７０１の処理に戻る。
【００７４】
ステップＳ１７０２の判定がＹＥＳならば、ＣＰＵ１０６は、ステップＳ１７０４からＳ１７１１までの一連の処理を実行する。
【００７５】
ＣＰＵ１０６はまず、レジスタＴｉｍｅｒ＿５０μｓ、レジスタＴｉｍｅｒ＿１ｍｓ、およびレジスタＴｉｍｅｒ＿２５０ｍｓ（図１４参照）のカウント値を、いずれも値０（ゼロ）にリセットする（ステップＳ１７０４）。
【００７６】
次に、ＣＰＵ１０６は、レジスタＢｒｅｓｓ＿ｏｎ＿ｏｆｆ［０］〜Ｂｒｅｓｓ＿ｏｎ＿ｏｆｆ［７］（図１４参照）の各値をｏｆｆにリセットする（ステップＳ１７０５）。
【００７７】
次に、ＣＰＵ１０６は、レジスタＣｏｍｍａｎｄ（図１７参照）の値を「Ａ」に設定する（ステップＳ１７０６）。
【００７８】
次に、ＣＰＵ１０６は、レジスタ音色上位桁およびレジスタ音色上位桁（図１７参照）に、ともに値０を格納する（ステップＳ１７０７）。
【００７９】
次に、ＣＰＵ１０６は、レジスタＳ（図１７参照）に、所定のスレッショルドの値（Ａ／Ｄ値）を設定する（ステップＳ１７０８）。
【００８０】
次に、ＣＰＵ１０６は、レジスタＰｅａｋ検出＿ｆｌａｇ（図１７参照）の値を、ｏｆｆに設定する（ステップＳ１７０９）。
【００８１】
さらに、ＣＰＵ１０６は、レジスタｂｎ（図１７参照）の値を、０に初期設定する（ステップＳ１７１０）。
【００８２】
最後に、ＣＰＵ１０６は、図１のタイマ１１５に対して、５０μｓごとの割込み通知の開始を指示する（ステップＳ１７１１）。その後、ＣＰＵ１０６は、ステップＳ１７０１の処理に戻る。
【００８３】
一方、ステップＳ１７０３の判定がＹＥＳになったならば、ＣＰＵ１０６は、図１のタイマ１１５に対して、ステップＳ１７１１で開始を指示した５０μｓごとの割込み通知の停止を指示する（ステップＳ１７１２）。その後、ＣＰＵ１０６は、ステップＳ１７０１の処理に戻る。
【００８４】
図１８は、図１７のステップＳ１７１１によって開始が指示されたタイマ１１５による５０μｓごとの割込み通知によって実行される５０μｓごと割込処理の例を示すフローチャートである。この割込み処理は、図１７のフローチャートで示されるメイン処理に対する割込みにより、図１のＣＰＵ１０６が、内部の特には図示しないＲＯＭに記憶された５０μｓ割込み処理プログラムを実行する動作である。
【００８５】
ＣＰＵ１０６はまず、図１のＡ／Ｄ変換器１１４の出力をレジスタａｎに格納する（ステップＳ１８０１）。
【００８６】
次に、ＣＰＵ１０６は、レジスタａｎの値がレジスタｂｎの値以上であるか否かを判定する（ステップＳ１８０２）。
【００８７】
ステップＳ１８０２の判定がＹＥＳならば、ＣＰＵ１０６は、ステップＳ１８０３からＳ１８０７までの一連の処理を実行する。この場合は、図３の説明で前述したケース１に相当する。
【００８８】
まず、ＣＰＵ１０６は、図３の説明で前述したケース１の予測カーブ３０２のための（１）式に基づいて、次のサンプリングタイミングのための予測値を算出し、その算出値をレジスタｂｎに格納する（ステップＳ１８０３）。
【００８９】
次に、ＣＰＵ１０６は、ステップＳ１８０３で算出されたレジスタｂｎの値が０よりも小さいか否かを判定し（ステップＳ１８０４）、その判定がＹＥＳの場合には、レジスタｂｎに値０を格納する（ステップＳ１８０５）。これは、前述したように、本実施形態では、負側の波形は処理しないためである。
【００９０】
その後、ＣＰＵ１０６は、ステップＳ１８０１で設定したレジスタａｎの波高値が、値０でないか否かを判定し（ステップＳ１８０６）、この判定がＹＥＳ（０でない）ならば、レジスタＰｅａｋ検出＿ｆｌａｇにｏｎを設定する。ケース１の場合にＰｅａｋ検出＿ｆｌａｇがｏｎにされることは、図３の説明で前述した。
【００９１】
その後、ＣＰＵ１０６は、後述するステップＳ１８１６の処理に移行する。
【００９２】
一方、ステップＳ１８０２の判定がＮＯならば、ＣＰＵ１０６は、ステップＳ１８０８からＳ１８１５までの一連の処理を実行する。この場合は、図３の説明で前述したケース２またはケース３に相当する。
【００９３】
まず、ＣＰＵ１０６は、レジスタＰｅａｋ検出＿ｆｌａｇにｏｎが設定されているか否かを判定する（ステップＳ１８０８）。ステップＳ１８０８の判定が、ＹＥＳならば前述したケース２に対応し、ＮＯならば前述したケース３に対応する。
【００９４】
ステップＳ１８０８の判定がＹＥＳならば、ＣＰＵ１０６は、レジスタａｎの値がレジスタＳに設定されているスレッショルド以上であるか否かを判定する（ステップＳ１８０９）。
【００９５】
ステップＳ１８０９の判定がＮＯならば、ＣＰＵ１０６は、Ｐｅａｋ検出は行わずにステップＳ１８１２に移行する（図４参照）。
【００９６】
ステップＳ１８０９の判定がＹＥＳならば、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿１ｍｓの値が、現在のレジスタＴｉｍｅｒ＿２５０ｍｓの値に対応するレジスタＴｉｍｅｒ＿ｑｕａｖｅｒ［Ｔｉｍｅｒ＿２５０ｍｓ］が示す値範囲内にあるか否かを判定する（図１４参照）（ステップＳ１８１０）。ステップＳ１８１０の判定がＮＯならば、ＣＰＵ１０６は、演奏者のブレス入力１１７（図１）のタイミングが拍のタイミングに合わないため、Ｐｅａｋ検出は行わずにステップＳ１８１２に移行する（図１０の１００１参照）。
【００９７】
ステップＳ１８０９の判定がＹＥＳならば、ＣＰＵ１０６は、現在のレジスタＴｉｍｅｒ＿２５０ｍｓの値が示す区間に対応するレジスタＢｒｅｓｓ＿ｏｎ＿ｏｆｆ［Ｔｉｍｅｒ＿２５０ｍｓ］の値をｏｎに設定する（ステップＳ１８１１）。
【００９８】
その後、ＣＰＵ１０６は、図３の説明で前述したケース２の予測カーブ３０２のための（２）式に基づいて、次のサンプリングタイミングのための予測値を算出し、その算出値をレジスタｂｎに格納する（ステップＳ１８１２）。
【００９９】
次に、ＣＰＵ１０６は、ステップＳ１８１２で算出されたレジスタｂｎの値が０よりも小さいか否かを判定し（ステップＳ１８１３）、その判定がＹＥＳの場合には、レジスタｂｎに値０を格納する（ステップＳ１８１４）。これは、前述したように、本実施形態では、負側の波形は処理しないためである。
【０１００】
その後、ＣＰＵ１０６は、レジスタＰｅａｋ検出＿ｆｌａｇにｏｆｆを設定する。ケース２の場合にＰｅａｋ検出＿ｆｌａｇがｏｆｆにされることは、図３の説明で前述した。
【０１０１】
その後、ＣＰＵ１０６は、後述するステップＳ１８１６の処理に移行する。
【０１０２】
一方、ステップＳ１８０８の判定がＹＥＳならば、図３の説明で前述したケース３に相当するため、ＣＰＵ１０６は、ステップＳ１８０９からＳ１８１１までのＰｅａｋ検出のための処理をスキップし、前述したステップＳ１８１２からＳ１８１５までの、レジスタｂｎの更新処理とレジスタＰｅａｋ検出＿ｆｌａｇをｏｆｆにする処理のみを実行する。
【０１０３】
ステップＳ１８０６、Ｓ１８０７またはステップＳ１８１５の処理の後、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿５０μｓの値を＋１インクリメントする（ステップＳ１８１６）。
【０１０４】
ＣＰＵ１０６は、ステップＳ１８１６でインクリメントしたレジスタＴｉｍｅｒ＿５０μｓの値がＴｅｍｐｏ分解能（図１０参照）の１ｍｓに対応する値２０以上となったか否かを判定する（ステップＳ１８１７）。
【０１０５】
ステップＳ１８１７の判定がＮＯならば、ＣＰＵ１０６は、図１８のフローチャートで例示される５０μｓごと割込処理から図１７のフローチャートで例示されるメイン処理にリターンする。
【０１０６】
ステップＳ１８１７の判定がＹＥＳで所定時間範囲ｔでのＰｅａｋ検出が終了したならば、ＣＰＵ１０６は、図１９のフローチャートで示される１ｍｓごと処理を実行する。
【０１０７】
まず、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿５０μｓの値を０にリセットする（ステップＳ１９０１）。
【０１０８】
次に、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿１ｍｓの値を＋１インクリメントする（ステップＳ１９０２）。
【０１０９】
次に、ＣＰＵ１０６は、ステップＳ１９０２でインクリメントされたレジスタＴｉｍｅｒ＿１ｍｓの値が、所定時間範囲ｔ（図１０または図１３等参照）の末尾に対応する値２０００以上となったか否かを判定する（ステップＳ１９０３）。
【０１１０】
ステップＳ１９０３の判定がＮＯならば、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿１ｍｓの値を５００で割った余りが０であるか否か、すなわち、５００ｍｓ（０．５ｓｅｃ（秒））ごとの区切りの拍タイミングになったか否かを判定する（ステップＳ１９０４）。ステップＳ１９０４の判定がＹＥＳならば、図１３の説明で前述したように、小さな「×」印の拍タイミングになったため、ＣＰＵ１０６は、小さな音量によるＴｅｍｐｏ音（ガイド音）の発音を音源１０９に指示する（ステップＳ１９０５）。
【０１１１】
その後、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿１ｍｓの値を２５０で割った余りが０であるか否か、すなわち、２５０ｍｓごとの区切りの拍タイミングになったか否かを判定する（ステップＳ１９０６）。ステップＳ１９０６の判定がＹＥＳならば、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿２５０ｍｓの値を＋１インクリメントする（ステップＳ１９０７）。
【０１１２】
その後、ＣＰＵ１０６は、図１８および図１９のフローチャートで例示される５０μｓごと割込処理から図１７のフローチャートで例示されるメイン処理にリターンする。
【０１１３】
レジスタＴｉｍｅｒ＿１ｍｓの値が所定時間範囲ｔの末尾に対応する値２０００に到達しステップＳ１９０３の判定がＹＥＳになると、まずＣＰＵ１０６は、レジスタＴｉｍｅｒ＿１ｍｓの値を０にリセットする（ステップＳ１９０８）。
【０１１４】
次に、図１３の説明で前述したように、大きな「×」印の小節区切りのタイミングになったため、ＣＰＵ１０６は、大きな音量によるＴｅｍｐｏ音（ガイド音）の発音を音源１０９に指示する（ステップＳ１９０９）。
【０１１５】
次に、ＣＰＵ１０６は、レジスタＴｉｍｅｒ＿２５０ｍｓの値を０にリセットする（ステップＳ１９１０）。
【０１１６】
次に、図１５の説明で前述したように、所定時間範囲ｔの終了で確定しているレジスタＢｒｅｓｓ＿ｏｎ＿ｏｆｆ［０］〜Ｂｒｅｓｓ＿ｏｎ＿ｏｆｆ［７］の８個の値の組のパターンが、図１５のカウントパターン一致検証用テーブルの、Ｔｙｐｅ０〜９、ＴｙｐｅＥ、またはＴｙｐｅＦのいずれかと一致するか否かを判定する（ステップＳ１９１１）。
【０１１７】
ステップＳ１９１１の判定がＹＥＳならば、ＣＰＵ１０６は、上記パターンが図１５のＴｙｐｅＥと一致したか否かを判定し（ステップＳ１９１２）、この判定がＹＥＳならば、図１３の説明で前述したように、ＣＰＵ１０６は、図１３中の●印に対応する「Ｃｏｍｍａｎｄ  Ａ」を認識した音の発音を、図１の音源１０９に指示する（ステップＳ１９１３）。また、ＣＰＵ１０６は、レジスタＣｏｍｍａｎｄにＡを設定する（ステップＳ１９１４）。
【０１１８】
ステップＳ１９０７の判定がＹＥＳならば、上記パターンが図１５のＴｙｐｅＦと一致したか否かを判定し（ステップＳ１９１５）、この判定がＹＥＳならば、図１３の説明で前述したように、ＣＰＵ１０６は、図１３中の○印に対応する「Ｃｏｍｍａｎｄ  Ｂ」を認識した音の発音を、図１の音源１０９に指示する（ステップＳ１９１６）。また、ＣＰＵ１０６は、レジスタＣｏｍｍａｎｄにＢを設定する（ステップＳ１９１７）。
【０１１９】
ステップＳ１９１５の判定がＹＥＳならば、レジスタＣｏｍｍａｎｄの値がＡであるか否かを判定する（ステップＳ１９１８）。
【０１２０】
ステップＳ１９１８の判定がＹＥＳならば、図１３の説明で前述したように、ＣＰＵ１０６は、図１３中の■印に対応する「Ｃｏｍｍａｎｄ  Ａ」に続く音色変更上位桁の値０〜９を認識した音の発音を、図１の音源１０９に指示する（ステップＳ１９１９）。また、ＣＰＵ１０６は、レジスタ音色上位桁に、ステップＳ１９１１で判定されたＴｙｐｅ０〜９のいずれかに対応する「値」を設定する（ステップＳ１９２０）。
【０１２１】
ステップＳ１９１８の判定がＮＯならば、図１３の説明で前述したように、ＣＰＵ１０６は、図１３中の□印に対応する「Ｃｏｍｍａｎｄ  Ｂ」に続く音色変更下位桁の値０〜９を認識した音の発音を、図１の音源１０９に指示する（ステップＳ１９２１）。また、ＣＰＵ１０６は、レジスタ音色下位桁に、ステップＳ１９１１で判定されたＴｙｐｅ０〜９のいずれかに対応する「値」を設定する（ステップＳ１９２２）。
【０１２２】
ステップＳ１９２２までで音色番号の上位桁および下位桁が確定したため、ＣＰＵ１０６は、レジスタ音色上位桁とレジスタ音色上位桁の各値で定まる音色番号への音色の変更を、図１の音源１０９に指示する（ステップＳ１９２３）。
【０１２３】
ステップＳ１９１４、Ｓ１９１７、Ｓ１９２０、またはＳ１９２３の処理の後、ＣＰＵ１０６は、レジスタＢｒｅｓｓ＿ｏｎ＿ｏｆｆ［０］〜Ｂｒｅｓｓ＿ｏｎ＿ｏｆｆ［７］（図１４参照）の各値をｏｆｆにリセットする（ステップＳ１９２４）。
【０１２４】
その後、ＣＰＵ１０６は、図１８および図１９のフローチャートで例示される５０μｓごと割込処理から図１７のフローチャートで例示されるメイン処理にリターンする。
【０１２５】
以上のようにして、本実施形態では、簡単な操作と簡単な回路構成で、音色の切換えなどの状態を切り替えることができる電子管楽器を提供することが可能となる。
【０１２６】
なお、本実施形態では、音色の切換えを例に記載したが、音色のみならず、例えばピッチベンドレンジなどリアルタイム性を有する楽音パラメータのファンクション切換えなどに適用することが可能である。
【０１２７】
また、本実施形態は電子管楽器に適用した例について説明したが、両手を常に使用するようなタイプの電子楽器であれば、電子管楽器以外に適用することも可能である。
【０１２８】
Ｐｅａｋ検出の例としては、図３および図４で説明した方式を例として説明したが、Ｐｅａｋ検出の手法としては様々な方式を採用可能である。
【０１２９】
本実施形態では、固定時間長のＴｅｍｐｏによりブレス入力を行うように構成されたが、ブレスそのものによってＴｅｍｐｏを切り替えるなどの応用に対しても展開できる。
【０１３０】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１)
演奏操作を検出するセンサと、
前記センサによる演奏操作の検出に応答して、音源に対して発音を指示する発音指示手段と、
予め定められた時間内における前記センサにより検出された演奏操作の回数及びタイミングに基づいて、前記演奏操作のパターンを識別する識別手段と、
前記識別手段により識別された演奏操作のパターンに対応して、発音すべき楽音のパラメータを制御する制御手段と、
を備えた電子楽器。
（付記２）
前記電子楽器はさらに、予め定められた特定モードに設定するモード設定手段を有し、
前記モード設定手段により前記特定のモードに設定されているときのみ、前記識別手段及び制御手段の動作を有効にする、付記１に記載の電子楽器。
（付記３)
前記電子楽器は、前記モード設定手段により特定のモードが設定されているときに、前記予め定められたタイミングで第１のガイド音を発生するとともに、前記予め定められた時間間隔で第２のガイド音を発生するガイド音生成手段を有する、付記２に記載の電子楽器。
（付記４)
前記識別手段は、夫々異なる演奏操作の回数及びタイミングから成る複数種の演奏操作パターンを記憶したメモリを有し、前記メモリに記憶された複数の演奏操作パターンのいずれかと前記センサにより検出された演奏操作の回数及びタイミングに基づく演奏操作パターンとが一致するか否か判別することにより、前記演奏操作のパターンを識別する、付記１乃至３のいずれかに記載の電子楽器。
（付記５)
前記識別手段は、前記メモリに記憶された複数の演奏操作パターンのいずれかと前記センサにより検出された演奏操作の回数及びタイミングに基づく演奏操作パターンとが一致したときに、当該一致した演奏パターンに対応する識別音を発生する識別音発生手段を有する付記４に記載の電子楽器。
（付記６)
前記センサは、演奏操作として演奏者のブレス入力の有無を検知する、付記１乃至５のいずれかに記載の電子楽器。
（付記７)
前記制御手段は、前記楽音のパラメータとして、当該楽音の音色を制御する、付記１乃至６のいずれかに記載の電子楽器。
（付記８)
演奏操作を検出するセンサを有する電子楽器に用いるパラメータ制御方法であって、前記電子楽器が、
前記センサによる演奏操作の検出に応答して、音源に対して発音を指示し、
予め定められた時間内における前記センサにより検出された演奏操作の回数及びタイミングに基づいて、前記演奏操作のパターンを識別し、
前記識別された演奏操作のパターンに対応して、発音すべき楽音のパラメータを制御する、パラメータ制御方法。
（付記９）
演奏操作を検出するセンサを有する電子楽器として用いるコンピュータに、
前記センサによる演奏操作の検出に応答して、音源に対して発音を指示するステップと、
予め定められた時間内における前記センサにより検出された演奏操作の回数及びタイミングに基づいて、前記演奏操作のパターンを識別するステップと、
前記識別された演奏操作のパターンに対応して、発音すべき楽音のパラメータを制御するステップと、
を実行させるプログラム。
【符号の説明】
【０１３１】
１０１  ＬＰＦ（ローパスフィルタ）
１０２、１０４  アンプ（Ａｍｐ）
１０３  ゼロクロス検出部
１０５  絶対値算出部
１０６  ＣＰＵ
１０７  キーマトリクス
１０８  モードＳＷ（スイッチ）
１０９  音源
１１０  Ｄ／Ａ変換器
１１１  アンプ
１１２  スピーカ（ＳＰ）
１１３  符号・割込回路
１１４  Ａ／Ｄ変換器
１１５  タイマ
１１６  メモリ
３０２  予測カーブ
【図１】
0006492516.tif 000003
【図２】
0006492516.tif 000004
【図３】
0006492516.tif 000005
【図４】
0006492516.tif 000006
【図５】
0006492516.tif 000007
【図６】
0006492516.tif 000008
【図７】
0006492516.tif 000009
【図８】
0006492516.tif 000010
【図９】
0006492516.tif 000011
【図１０】
0006492516.tif 000012
【図１１】
0006492516.tif 000013
【図１２】
0006492516.tif 000014
【図１３】
0006492516.tif 000015
【図１４】
0006492516.tif 000016
【図１５】
0006492516.tif 000017
【図１６】
0006492516.tif 000018
【図１７】
0006492516.tif 000019
【図１８】
0006492516.tif 000020
【図１９】
0006492516.tif 000021