(57)【要約】【課題】息を吹くことによる管楽器での楽音の発音を適切に行えるように演奏をガイドするための技術を提供する。【解決手段】ブレス用ＬＥＤ群３０５は、息を吸う、息を吐く、及び息を止める、という呼吸の各動作を指示するために３つのＬＥＤを備えている。ＲＯＭ３０２には、そのような呼吸の動作を示すイベントデータを有する演奏ガイドデータが格納されている。ＣＰＵ３０１は、スタート／ストップスイッチへの操作により演奏ガイドの開始をユーザーが指示すると、対象となる演奏ガイドデータをＲＯＭ３０２から読み出して処理する。それにより、必要に応じて、３つのＬＥＤを個別に点灯、或いは消灯させることにより、演奏中に行うべき呼吸の動作をガイドする。【選択図】　　　　　　図３
2004109508.tif 000002
【特許請求の範囲】
【請求項１】
楽音の発生に息を吹くブレス操作が必要な管楽器の演奏をガイドする装置であって、
前記管楽器の演奏中に行うべき呼吸の動作を示すイベントデータ、及び該動作を行うべきタイミングを示す時間データを該動作毎に有する演奏ガイドデータを取得するデータ取得手段と、
前記データ取得手段が取得した演奏ガイドデータ中の時間データを基に、該時間データに対応するイベントデータが示す呼吸の動作を表示装置によって通知することにより、前記管楽器の演奏をガイドする演奏ガイド手段と、
を具備することを特徴とする演奏ガイド装置。
【請求項２】
前記演奏ガイドデータを構成するイベントデータは、前記呼吸の動作として、前記息を吹く、及び該息を吸う、の少なくとも２種類を示すことができ、
前記演奏ガイド手段は、前記イベントデータによって示される前記呼吸の動作を表示装置により通知する、
ことを特徴とする請求項１記載の演奏ガイド装置。
【請求項３】
前記演奏ガイド手段は、前記呼吸の動作が息を吹くことであった場合に、該息を吹くべき強さを併せて通知できる、
ことを特徴とする請求項２記載の演奏ガイド装置。
【請求項４】
前記演奏ガイド手段は、前記呼吸の動作が息を吸うことであった場合に、該息を吸うべき量を併せて通知できる、
ことを特徴とする請求項２記載の演奏ガイド装置。
【請求項５】
前記演奏ガイド装置は前記管楽器に搭載され、
前記演奏ガイド手段は、前記演奏者が行うべき呼吸の動作の通知を、前記管楽器が検出する該演奏者の行う呼吸の動作に合わせて進行できる、
ことを特徴とする請求項１〜４の何れか１項に記載の演奏ガイド装置。
【請求項６】
管楽器の演奏中に行うべき呼吸の動作をガイドするための演奏ガイドデータを生成する装置であって、
前記管楽器で行う演奏の内容を示す演奏データを取得する演奏データ取得手段と、
前記演奏データ取得手段が取得した演奏データを参照して、該演奏データが示す演奏を行う場合に演奏者が息を吸うべきタイミングを少なくとも特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成することにより、前記演奏ガイドデータを生成する演奏ガイドデータ生成手段と、
を具備することを特徴とする演奏ガイドデータ生成装置。
【請求項７】
前記演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得する能力データ取得手段、を更に具備し、
前記演奏ガイドデータ生成手段は、前記能力データ取得手段が取得した能力データを基に、前記演奏者が息を吸うべきタイミングを特定する、
ことを特徴とする請求項６記載の演奏ガイドデータ生成装置。
【請求項８】
楽音の発生に息を吹くブレス操作が必要な管楽器の演奏をガイドする装置に実行させるプログラムであって、
前記管楽器の演奏中に行うべき呼吸の動作を示すイベントデータ、及び該動作を行うべきタイミングを示す時間データを該動作毎に有する演奏ガイドデータを取得する機能と、
前記取得する機能により取得した演奏ガイドデータ中の時間データを基に、該時間データに対応するイベントデータが示す呼吸の動作を表示装置によって通知することにより、前記管楽器の演奏をガイドする機能と、
を実現させるためのプログラム。
【請求項９】
管楽器の演奏中に行うべき呼吸の動作を示す演奏ガイドデータを生成するためにデータ処理装置に実行させるプログラムであって、
前記管楽器で行う演奏の内容を示す演奏データを取得する機能と、
前記取得する機能により取得した演奏データを参照して、該演奏データが示す演奏を行う場合に演奏者が息を吸うべきタイミングを少なくとも特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成することにより、前記演奏ガイドデータを生成する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音の発生に息を吹くブレス操作が必要な管楽器の演奏をガイドするための技術に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
楽器の演奏は、発音させるべき楽音を順次、発音させるために行われる。このことから、鍵盤楽器では、演奏の進行に応じて押鍵すべき鍵を順次、ユーザ（演奏者）に通知していくことで演奏のガイドを行うようになっている。その押鍵は、楽音の発音開始と併せて、その楽音の音高を指示する操作である。
【０００３】
一方、管楽器では、吹き口内に息を吹かなければ楽音は発音されず、楽音の発音開始とその音高の指示は別の操作で行わなければならない。適切に息を吹くためには、息継ぎを適切に行うことが必要である。このことから、管楽器の演奏をガイドする場合、発音させるべき楽音を適切に発音させられるように、息継ぎの行い方を通知することも重要であると考えられる。
【０００４】
管楽器の演奏をガイドする従来の技術としては、例えば特許文献１、２に記載されたものがある。特許文献１に記載の技術では、発音させるべき楽音の音高、即ち塞ぐべき孔、或いは操作すべきキーなどをガイドするために、画面上に運指の方法を示す画像を表示させている。特許文献２に記載の技術では、タンギング操作を行うべきタイミングや、その強さを表示装置によりガイドしている。
【０００５】
【特許文献１】
特開平１１−６５５５８号公報
【特許文献２】
特許第２７１２４０６号公報
本発明の課題は、息を吹くことによる管楽器での楽音の発音を適切に行えるように演奏をガイドするための技術を提供することにある。
【０００６】
【課題を解決するための手段】
本発明の演奏ガイド装置は、楽音の発生に息を吹くブレス操作が必要な管楽器の演奏をガイドすることを前提とし、管楽器の演奏中に行うべき呼吸の動作を示すイベントデータ、及び該動作を行うべきタイミングを示す時間データを該動作毎に有する演奏ガイドデータを取得するデータ取得手段と、データ取得手段が取得した演奏ガイドデータ中の時間データを基に、該時間データに対応するイベントデータが示す呼吸の動作を表示装置によって通知することにより、管楽器の演奏をガイドする演奏ガイド手段と、を具備する。
【０００７】
なお、演奏ガイドデータを構成するイベントデータは、呼吸の動作として、息を吹く、及び該息を吸う、の少なくとも２種類を示すことができ、演奏ガイド手段は、イベントデータによって示される呼吸の動作を表示装置により通知する、ことが望ましい。
【０００８】
演奏ガイド手段は、呼吸の動作が息を吹くことであった場合に、息を吹くべき強さを併せて通知でき、呼吸の動作が息を吸うことであった場合に、息を吸うべき量を併せて通知できる、ことが望ましい。また、演奏ガイド装置は管楽器に搭載され、演奏ガイド手段は、演奏者が行うべき呼吸の動作の通知を、管楽器が検出する該演奏者の行う呼吸の動作に合わせて進行できる、ことが望ましい。
【０００９】
本発明の第１、及び第２の態様の演奏ガイドデータ生成装置は共に、管楽器の演奏中に行うべき呼吸の動作をガイドするための演奏ガイドデータを生成することを前提とし、それぞれ以下の手段を具備する。
第１の態様の演奏ガイドデータ生成装置は、管楽器で行う演奏の内容を示す演奏データを取得する演奏データ取得手段と、演奏データ取得手段が取得した演奏データを参照して、該演奏データが示す演奏を行う場合に演奏者が息を吸うべきタイミングを少なくとも特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成することにより、演奏ガイドデータを生成する演奏ガイドデータ生成手段と、を具備する。
【００１０】
第２の態様の演奏ガイドデータ生成装置は、上記第１の態様における構成に加えて、演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得する能力データ取得手段、を更に具備し、演奏ガイドデータ生成手段は、能力データ取得手段が取得した能力データを基に、演奏者が息を吸うべきタイミングを特定する。
【００１１】
本発明の第１の態様のプログラムは、楽音の発生に息を吹くブレス操作が必要な管楽器の演奏をガイドする装置に実行させることを前提とし、管楽器の演奏中に行うべき呼吸の動作を示すイベントデータ、及び該動作を行うべきタイミングを示す時間データを該動作毎に有する演奏ガイドデータを取得する機能と、取得する機能により取得した演奏ガイドデータ中の時間データを基に、該時間データに対応するイベントデータが示す呼吸の動作を表示装置によって通知することにより、管楽器の演奏をガイドする機能と、を実現させる。
【００１２】
本発明の第２の態様のプログラムは、管楽器の演奏中に行うべき呼吸の動作を示す演奏ガイドデータを生成するためにデータ処理装置に実行させることを前提とし、管楽器で行う演奏の内容を示す演奏データを取得する機能と、取得する機能により取得した演奏データを参照して、該演奏データが示す演奏を行う場合に演奏者が息を吸うべきタイミングを少なくとも特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成することにより、演奏ガイドデータを生成する機能と、を実現させる。
【００１３】
本発明では、管楽器の演奏中に行うべき呼吸の動作を示すイベントデータ、及びその動作を行うべきタイミングを示す時間データをその動作毎に有する演奏ガイドデータを取得し、取得した演奏ガイドデータ中の時間データを基に、その時間データに対応するイベントデータが示す呼吸の動作を通知することにより、管楽器の演奏をガイドする。そのようにして演奏中に行うべき呼吸の動作をガイドすることにより、演奏者は息を吹くことによる管楽器での楽音の発音、更には息継ぎ（息を吸う動作）を適切なタイミングで行えるようになる。
【００１４】
本発明では、管楽器で行う演奏の内容を示す演奏データを参照して、その演奏データが示す演奏を行う場合に演奏者が息を吸うべきタイミングを少なくとも特定し、その特定したタイミング毎に、そのタイミングを示す時間データ、及び息を吸うことを示すイベントデータを生成することにより、演奏ガイドデータを生成する。その演奏ガイドデータを生成することにより、演奏ガイド装置による演奏者が演奏中に行うべき呼吸の動作のガイドが可能となる。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態による演奏ガイド装置を搭載した電子管楽器の外観を示す図である。
【００１６】
その電子管楽器１００は、図１に示すように、吹き口部１０１から息を吹くことで楽音の発音を指示し、正面側に複数、背面側に１個、配設された音高指定用のスイッチ（運指スイッチ）からなる運指スイッチ群１０２のなかで１個以上の運指スイッチを操作することで楽音の音高を指定するものである。正面側に配設された運指スイッチは、特に詳細な説明は省略するが、その内部に配置した発光ダイオード（ＬＥＤ）の点灯により光るようになっている。
【００１７】
楽音の発音は、自然管楽器では息が外に排出される部分に配置したスピーカ１０３により行うようになっている。そのスピーカ１０３の運指スイッチ１０２側の近傍には、各種設定用のスイッチからなるスイッチ群１０４、及び各種情報表示用の表示部１０５が配設されている。他方の側の近傍には、ＭＩＤＩデータ入力用のＭＩＤＩ　ＩＮ端子１０６、その出力用のＭＩＤＩ　ＯＵＴ端子１０７、外部から電力供給用のＰＯＷＥＲ　ＩＮ端子１０８、及び電源のオンオフ用の電源スイッチ１０９が配設されている。本実施の形態による演奏ガイド装置は、吹き口部１０１から息を吹くブレス操作を含め、演奏中に行うべき呼吸の動作をガイドするために電子管楽器１００に搭載されている。
【００１８】
図２は、上記スイッチ群１０４、及び表示部１０５を示す図である。図２を参照して、スイッチ群１０４を構成するスイッチの種類や、表示部１０５の構成について詳細に説明する。
そのスイッチ群１０４としては、図２に示すように、演奏ガイドの開始、或いは停止を指示するためのスタート／ストップスイッチ２００、そのガイドの対象となる曲を選択するための曲選択スイッチ２０１、トーン（音色）を選択するためのトーンスイッチ２０２、自動再生させるリズムを選択するためのリズムスイッチ２０３、設定されている曲、トーン、或いはリズムを示す番号のアップを指示するためのアップスイッチ２０４、及びその番号のダウンを指示するためのダウンスイッチ２０５が配設されている。曲、トーン、及びリズムの設定変更は、各スイッチ２０１〜２０３のなかで対応するスイッチを操作した後、アップスイッチ２０４、或いはダウンスイッチ２０５を操作して行うようになっている。
【００１９】
他方の表示部１０５は、図２に示すように、ブレス操作（呼吸）の動作を表示するためのブレス表示部２０６と、それ以外の情報表示用に用意した汎用表示部２０７と、から構成されている。ブレス表示部２０６には、息を吸う、息を吐く（楽音を発音させるためのブレス操作を行う）、及び息を止める、の各動作を指示するためにＬＥＤ２０８〜２１０が配設されている。各ＬＥＤ２０８〜２１０の発光色は、区別が容易なように異ならせている。具体的には、ＬＥＤ２０８〜２１０として、発光色が赤、青、白のＬＥＤをそれぞれ採用している。
【００２０】
他方の汎用表示部２０７には、設定されている曲、トーン、或いはリズムを示す番号を表示する液晶表示器（ＬＣＤ）２１１が配設されている。選択用のスイッチ２０１〜２０３のうちの何れかを操作すると、そのＬＣＤ２１１に現在、設定中の曲、トーン、或いはリズムを示す番号が表示される。それにより、それらの選択は、ＬＣＤ２１１に表示されている番号を見ながらアップスイッチ２０４、或いはダウンスイッチ２０５を操作して行うようになっている。
【００２１】
そのＬＣＤ２１１以外には、親指で操作する運指スイッチへの操作を指示するためのＬＥＤ２１２、及び演奏ガイドを行っているか否か通知するためのＬＥＤ２１３が汎用表示部２０７に配設されている。ＬＥＤ２１２を配設しているのは、電子管楽器１００を演奏しているユーザー（演奏者）にとって、背面側に配置されているその運指スイッチは死角となるためである。
【００２２】
図３は、その電子管楽器１００の回路構成図である。
管楽器１００は、図３に示すように、管楽器１００全体の制御を行うＣＰＵ３０１と、そのＣＰＵ３０１が実行するプログラムや各種制御用データ、及び曲再生用の演奏データ等を格納したＲＯＭ３０２と、ＣＰＵ３０１がワークに用いるＲＡＭ３０３と、運指スイッチ群１０２を構成する運指スイッチを光らせるためのＬＥＤ２１２を含む複数のＬＥＤ、及びその駆動回路からなる運指用ＬＥＤ群３０４と、図２に示すＬＥＤ２０８〜２１０、並びに２１３、及びその駆動回路からなるブレス用ＬＥＤ群３０５と、図２に示すＬＣＤ２１１と、図１に示す運指スイッチ群１０２、及びスイッチ群１０４と、ＣＰＵ３０１の指示に従って、発音させるべき楽音の波形データを生成して出力する音源３０６と、図１に示すスピーカ１０３を有し、音源３０６から入力した波形データを音声に変換して放音する発音回路３０７と、吹き口部１０１に設けられ、ユーザーが吹く息の強さを検出するためのブレスセンサ３０８と、そのセンサ３０８を駆動して息の強さを検出する検出回路３０９と、を備えて構成されている。
【００２３】
上記発音回路３０７は、例えば音源３０６から入力した波形データをアナログのオーディオ信号に変換するＡ／Ｄコンバータと、それが出力するオーディオ信号の増幅を行う増幅器と、を備え、その増幅器が増幅を行った後のオーディオ信号をスピーカ１０３に出力するものである。運指スイッチ群１０２、及びスイッチ群１０４は共に、ユーザーが操作の対象とする複数のスイッチの他に、それらへの操作を検出する検出回路を備えたものである。なお、ＭＩＤＩ端子１０６、或いは１０７を介して外部装置との間でＭＩＤＩデータの送受信を行うインターフェースの図示は省略している。
【００２４】
以上の構成において、動作を説明する。
ＣＰＵ３０１は、電源スイッチ１０９が操作されて電源がオンされると、ＲＯＭ３０２に格納されたプログラムを読み出して実行することにより、電子管楽器１００の制御を開始する。その制御は、運指スイッチ群１０２、及びスイッチ群１０４を構成するスイッチのなかで操作されたスイッチに対応する形で行う。
【００２５】
演奏ガイドを開始させるためにユーザーがスタート／ストップスイッチ２００を操作すると、ＣＰＵ３０１は、現在、設定している曲の番号（曲番号）に対応する演奏データをＲＯＭ３０２からＲＡＭ３０３に読み出して、それを自動再生する形で演奏ガイドを開始する。ブレス用ＬＥＤ群３０５を構成するＬＥＤ２１３は、その開始に合わせて点灯させ、その終了、或いは中止に合わせて消灯させる。演奏ガイド中は、運指用ＬＥＤ群３０４を構成するＬＥＤ、及びブレス用ＬＥＤ群３０５を構成するＬＥＤ２０８〜２１０を必要に応じて点灯、或いは消灯させる。その点灯、或いは消灯は、運指用ＬＥＤ群３０４、或いはブレス用ＬＥＤ群３０５を構成する駆動回路に制御コマンドを送出することで行われる。
【００２６】
各演奏データは、図４に示すように、図中、「演奏曲（１〜３）」と表記のＲＯＭ３０２に確保されたエリア（以降、「演奏曲エリア」と呼ぶ）に格納されている。その演奏データは、演奏上のイベントの内容を示すイベントデータ毎に、それを処理すべきタイミングを示す時間データ（図中、「ｔ」と表記）が付加された形で構成されている。その時間データは、直前のイベントデータを処理してからそれが付加されたイベントデータを処理するまでの時間（デルタタイム）で処理すべきタイミングを示している。演奏曲エリアの（）内に表記された数値は曲番号を示している。
【００２７】
イベントデータは、発音させるべき、或いは消音させるべき楽音の音高を示すもの（図中、「イベント（ノート）」と表記）と、演奏中における呼吸の動作を示すもの（図中、「イベント（ブレス）」と表記）とに大別される。以降、便宜的に、前者をノートイベントデータ、後者をブレスイベントデータと呼ぶことにする。
【００２８】
ブレスイベントデータは、息を吸う、息を吐く（吹く口部１０１に息を吹くブレス操作を行う）、息を止める、の３種類の動作を示すことができるようになっている。呼吸の動作は、大別すればその３種類に分けられる。このことから、ＣＰＵ３０１は、演奏ガイドを行っている間、ＬＥＤ２０８〜２１０の何れか一つを点灯させて、行うべき呼吸の動作を指示するようになっている。
【００２９】
呼吸の動作を指示（ガイド）することで、ユーザー（演奏者）は、発音させるべき楽音を適切に発音させるように息を吹くだけでなく、そのために必要な息継ぎも適切に行えるようになる。このため、より適切な演奏を容易に行えることとなる。
【００３０】
本実施の形態では、運指用ＬＥＤ群３０４を構成するＬＥＤを、ノートイベントデータが発音、或いは消音を指示する楽音の音高に応じて点灯、或いは消灯させている。それにより、発音させるべき楽音を発音させるべき間だけ発音させられるようにガイドを行っている。そのようにして、ユーザーが更に適切な演奏を行えるようにガイドを行っている。
【００３１】
次に、図５〜図１２に示す各種フローチャートを参照して、電子管楽器１００の動作について詳細に説明する。なお、図５〜図１２に示す各種フローチャートに沿った動作は、ＣＰＵ３０１が、ＲＯＭ３０２に格納されたプログラムを実行することで実現される。
【００３２】
図５は、全体処理のフローチャートである。電源スイッチ１０９が操作されて電源がオンされた電子管楽器１００は、その全体処理を実行することでユーザーが運指スイッチ群１０２、或いはスイッチ群１０４に対して行った操作に対応して動作する。始めに図５を参照して、その全体処理について詳細に説明する。
【００３３】
先ず、ステップ５０１では、予め定められた状態に設定するイニシャライズを行う。続くステップ５０２では、スイッチ群１０４を構成するスイッチ２００〜２０５のなかでユーザーが操作したスイッチに対応するためのスイッチ処理を実行する。その次のステップ５０３では、運指用ＬＥＤ群３０４、及びブレス用ＬＥＤ群３０５を構成するＬＥＤを点灯させて行う演奏ガイドを実現させるためのガイド処理を実行する。その処理の実行後はステップ５０４に移行する。
【００３４】
ステップ５０４では、運指スイッチ群１０２を構成する運指スイッチへの操作、或いはその操作の解除に対応するための運指処理を実行する。次に移行するステップ５０５では、吹き口部１０１への息の吹き込みに応じて楽音を発音させるためのブレス処理を実行する。その次に移行するステップ５０６では、ＭＩＤＩ端子１０６、或いは１０７を介したＭＩＤＩデータの送受信等を実現させるためのその他の処理を実行する。その処理を実行した後に上記ステップ５０２に戻る。それにより、電源がオンされている間、ステップ５０２〜５０６で形成される処理ループを繰り返し実行する。その処理ループを繰り返し実行する結果、電子管楽器１００はユーザーが運指スイッチ群１０２、或いはスイッチ群１０４に対して行った操作に応じて動作することになる。
【００３５】
以降は、上記全体処理内で実行される処理について詳細に説明する。
図６は、上記ステップ５０２として実行されるスイッチ処理のフローチャートである。次に図６を参照して、そのスイッチ処理について詳細に説明する。
スイッチ処理では、特に図示していないが、ＣＰＵ３０１は先ず、スイッチ群１０４を構成する検出回路に指示して各種スイッチ２００〜２０５の走査を行わせて、それらの現在の状態を走査結果として受け取り、その走査結果を解析して状態が変化したスイッチを特定する。その特定を行った後にステップ６０１に移行する。
【００３６】
ステップ６０１では、曲選択スイッチ２０１へのユーザーの操作に対応するための曲選択スイッチ（ＳＷ）処理を実行する。続くステップ６０２では、スタート／ストップスイッチ２００へのユーザーの操作に対応するためのスタート／ストップスイッチ（ＳＷ）処理を実行する。その後は、それら以外のスイッチへの操作に対応するためのその他のスイッチ（ＳＷ）処理を実行する。一連の処理は、その実行後に終了する。
【００３７】
上述のスイッチ処理内では、ステップ６０１、及び６０２として曲選択スイッチ処理、及びスタート／ストップスイッチ処理がそれぞれ実行される。それらサブルーチン処理については、図７、及び図８に示すそのフローチャートを参照して詳細に説明する。
【００３８】
始めに、図７を参照して、上記ステップ６０１として実行される曲選択スイッチ処理について詳細に説明する。曲選択スイッチ２０１への操作による演奏ガイドの対象とする曲の選択、即ちその番号の指定は、以下のように、このスイッチ処理を実行することで実現される。
【００３９】
先ず、ステップ７０１では、曲選択スイッチ２０１が操作（オン）されたか、或いはそれが操作されてから所定時間が経過したか否か判定する。曲選択スイッチ２０１をユーザーが操作しておらず、且つそれを操作してから所定時間が経過していた場合、判定はＮＯとなり、ここで一連の処理を終了する。それらのうちの一方が満たされている場合には、即ちスイッチ２０１をユーザーが操作したか、或いはそれを操作してから所定時間が経過していない場合には、判定はＹＥＳとなってステップ７０２に移行する。
【００４０】
ステップ７０２では、ユーザーが曲選択スイッチ２０１を操作したのであれば、現在、設定中の曲番号をＬＣＤ２１１に表示させ、その曲番号が割り当てられた演奏データの先頭に位置するデータを指定するアドレス（スタートアドレス）値を変数ＡＤに代入する。そのスイッチ２０１をユーザーが操作してから所定時間が経過するまでの間であれば、アップスイッチ２０４、或いはダウンスイッチ２０５が操作（オン）されたか否か判定して、それらのうちの何れかが操作されたと判定すれば、操作されたと判定したスイッチの種類に応じて曲番号を増減させ、その増減後の曲番号をＬＣＤ２１１に表示させる。変数ＡＤには、増減後の曲番号が割り当てられた演奏データのスタートアドレス値を代入する。そのようなことを行った後、一連の処理を終了する。
【００４１】
次に、図８を参照して、図６に示すスイッチ処理内でステップ６０２として実行されるスタート／ストップスイッチ処理について詳細に説明する。
先ず、ステップ８０１では、スタート／ストップスイッチ２００が操作（オン）されたか否か判定する。そのスイッチ２００をユーザーが操作した場合、判定はＹＥＳとなってステップ８０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００４２】
ステップ８０２では、演奏ガイドの実行を管理するために用意した変数ＳＴＦの値を反転、即ちそれまでの値が１であれば０、それまでの値が０であれば１にする。その後に移行するステップ８０３では、変数ＳＴＦの反転後の値が０か否か判定する。演奏ガイドは、それに１が代入されている間、行うようになっている。このため、演奏ガイドが行われていない状態でスイッチ２００をユーザーが操作した場合、変数ＳＴＦに代入される値は１になることから、判定はＮＯとなってステップ８０４に移行し、変数ＡＤの値で指定される演奏データ中のデータ（その先頭は時間データであるため、そのデータは時間データである。図中「ＭＥＭ（ＡＤ）」と表記）を変数ｔに代入した後、一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ８０５に移行する。
【００４３】
ステップ８０５への移行は、実行中の演奏ガイドの終了をユーザーが指示したことを意味する。このことから、ステップ８０５では、音源３０６に発音中の全て楽音の消音を指示する。それに続くステップ８０６では、運指用ＬＥＤ群３０４、及びブレス用ＬＥＤ群３０５を構成する全てのＬＥＤを消灯させて、演奏ガイドのための表示を停止させる。その後、一連の処理を終了する。
【００４４】
図９、及び図１０は、図５に示す全体処理内でステップ５０３として実行されるガイド処理のフローチャートである。次に図９、及び図１０を参照して、そのガイド処理について詳細に説明する。この処理は、上述したように、運指用ＬＥＤ群３０４、及びブレス用ＬＥＤ群３０５を構成するＬＥＤを点灯させて行う演奏ガイドを実現させるために実行される。
【００４５】
先ず、ステップ９０１では、変数ＳＴＦの値が１か否か判定する。その値が１でなかった場合、即ち演奏ガイドを行っていない状況であった場合、判定はＮＯとなり、ここで一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ９０２に移行する。
【００４６】
ステップ９０２では、演奏データを構成する時間データで表される最小の時間（図中では「最小単位時間」と表記）が経過したか否か判定する。演奏ガイドを開始してから、或いは前回、経過したと判定してから最小単位時間が経過していない場合、判定はＮＯとなり、ここで一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ９０３に移行して、変数ｔの値をデクリメントした後、ステップ９０４に移行する。
【００４７】
ステップ９０４では、変数ｔの値が０か否か判定する。変数ｔに代入した時間データが付加されたイベントデータを処理すべきタイミングとなった場合、変数ｔの値は０となることから、判定はＹＥＳとなってステップ９０５に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００４８】
ステップ９０５では、変数ＡＤの値をインクリメントする。続くステップ９０６では、変数ＡＤの値で指定されるデータのアドレスが演奏データの最後に位置するデータのそれか否か判定する。演奏データの最後に位置するデータのアドレス（最終アドレス）値が変数ＡＤに代入されていた場合、判定はＹＥＳとなってステップ９１０に移行する。そうでない場合には、判定はＮＯとなり、変数ＳＴＦに０を代入し（ステップ９０７）、音源３０６に発音中の全ての楽音の消音を指示し（ステップ９０８）、更に運指用ＬＥＤ群３０４、及びブレス用ＬＥＤ群３０５を構成する駆動回路に全ＬＥＤの消灯をそれぞれ指示して演奏ガイドを停止させた後（ステップ９０９）、一連の処理を終了する。
【００４９】
一方、ステップ９１０では、変数ＡＤの値で指定される演奏データ中のデータの種類を判定する。そのデータが時間（タイム）データであった場合、その旨が判定されてステップ９１１に移行して、変数ｔにそのデータを代入した後、一連の処理を終了する。そのデータがイベントデータであった場合には、その旨が判定されて図１０のステップ９１２に移行する。
【００５０】
そのステップ９１２では、イベントデータの種類を判定する。それがブレスイベントデータであった場合、その旨が判定されてステップ９１７に移行する。それがノートイベントデータであった場合には、その旨が判定されてステップ９１３に移行する。
【００５１】
ノートイベントデータは、例えばイベントデータの種類を示す識別用データ、及び楽音の音高を示す音高データを少なくとも備えたものである。識別用データは、例えば楽音の発音開始（ノートオン）、及び楽音の消音（ノートオフ）を示すことができるものである。処理すべきタイミングとなったノートイベントデータの処理は、ステップ９１３〜９１６で行われる。
【００５２】
先ず、ステップ９１３では、イベントデータ中の音高データを、それが示す音高の楽音を発音させるために操作すべき運指スイッチを示す運指データに変換する。続くステップ９１４では、イベントデータが示しているのはノートオンか否か判定する。そのイベントデータがノートオンを示していた場合、判定はＹＥＳとなり、ステップ９１５に移行して、運指用ＬＥＤ群３０４を構成するＬＥＤのなかで運指データに対応する運指スイッチに配置されたＬＥＤを点灯させた後、図９のステップ９０５に戻る。一方、そうでない場合には、判定はＮＯとなってステップ９１６に移行し、運指用ＬＥＤ群３０４を構成するＬＥＤのなかで運指データに対応する運指スイッチに配置されたＬＥＤを消灯させた後、図９のステップ９０５に戻る。なお、音高データから運指データへの変換は、例えばそれらの対応関係を定義した変換用テーブルを参照して行われる。その変換用テーブルは、例えばＲＯＭ３０２に制御用データとして格納されたものである。
【００５３】
ノートイベントデータが処理すべきタイミングとなると、上述したようにして運指用ＬＥＤ群３０４を構成するＬＥＤを点灯、或いは消灯させる。それにより、ユーザーが操作させるべき運指スイッチ、それを操作しているべき時間をＬＥＤの点灯によりガイドするようになっている。
【００５４】
上記ステップ９１２でイベントデータがブレスイベントデータと判定して移行するステップ９１７〜９２５では、処理すべきタイミングとなったブレスイベントデータに従い、ブレス表示部２０６に配置したＬＥＤ２０８〜２１０を駆動するための処理が行われる。
【００５５】
そのブレスイベントデータは、例えばイベントデータの種類を示す識別用データ、及び呼吸の動作を示すブレスデータを少なくとも備えたものである。本実施の形態では、ブレスデータを上位ビット、中位ビット、及び下位ビット（各ビットは１ビット以上のビット数から構成される）に分け、各ビットの値により呼吸の各動作を示すようにしている。上位ビットは息を吸う動作を行うか否か、中位ビットは息を吐く（吹く）か否か、下位ビットは息を止めるか否かを示すために用いている。息を吸う、息を吐く、及び息を止める、という呼吸の各動作は、ビットの値を１にして示している。それらとは反対の動作、即ち息を吸わない、息を吐かない、及び息を止めない、という呼吸の各動作は、ビットの値を０にして示している。
【００５６】
先ず、ステップ９１７では、ブレスデータの上位ビットの値を判定する。そのビットの値が１であった場合、その旨が判定されてステップ９１８に移行し、発光色が赤のＬＥＤ２０８を点灯させた後、ステップ９２０に移行する。そうでない場合には、即ちそのビットの値が０であった場合には、その旨が判定されてステップ９１９に移行し、ＬＥＤ２０８を消灯させた後、そのステップ９２０に移行する。
【００５７】
ステップ９２０〜９２２、及びステップ９２３〜９２５では、値を判定する対象をブレスデータの中位ビット、及び下位ビットに代えて、上述したステップ９１７〜９１９と同様の処理が行われる。図９のステップ９０５には、ステップ９２４、或いは９２５の処理を実行した後に戻る。ステップ９２０〜９２２の処理で点灯、或いは消灯させるのは、発光色が青のＬＥＤ２０９であり、ステップ９２３〜９２５の処理で点灯、或いは消灯させるのは、発光色が白のＬＥＤ２１０である。
【００５８】
このようにして、処理すべきタイミングとなったブレスイベントデータに従い、ブレス用ＬＥＤ群３０５を構成するＬＥＤ２０８〜２１０が必要に応じて点灯、或いは消灯される。それにより、演奏者であるユーザーが演奏の進行に応じて行うべき呼吸の動作のガイドが行われる。
【００５９】
次に、図１１に示すフローチャートを参照して、図５に示す全体処理内でステップ５０４として実行される運指処理について詳細に説明する。その運指処理は、上述したように、運指スイッチ群１０２を構成する運指スイッチへの操作、或いはその操作の解除に対応するための処理である。
【００６０】
先ず、ステップ１１０１では、運指スイッチ群１０２を構成する検出回路に各運指スイッチの状態を検出するための走査を行わせてその走査結果を受け取り、受け取った走査結果を解析することにより、各運指スイッチの状態、及びその状態が変化した運指スイッチを特定する。それらの特定後はステップ１１０２に移行する。
【００６１】
ステップ１１０２では、状態が変化した運指スイッチが存在するか否か判定し、そのような運指スイッチが存在すると判定すれば、操作された状態の運指スイッチの組み合わせから発音の対象となる楽音の音高を特定する。それに続くステップ１１０３では、変数ＮＯＴＥに、特定した音高を示す音高番号を代入する。一連の処理はその後に終了する。
【００６２】
変数ＮＯＴＥに音高番号が代入された楽音は、ユーザーが吹き口部１０１に息を吹いていた場合に発音させる。そこに息を吹いていなければ発音させない。そのような楽音の発音制御は、図５に示す全体処理内でステップ５０５としてブレス処理を実行することで行われる。次にそのブレス処理について、図１２に示すそのフローチャートを参照して詳細に説明する。
【００６３】
吹き口部１０１に設けられたブレスセンサ３０８は、そこに吹かれた息の強さ（息の圧力）に応じた電圧の信号を検出回路３０９に出力する。検出回路３０９は、その信号をＡ／Ｄ変換し、電圧値に応じた値のデジタルデータ（以降「息圧データ」と呼ぶ）にしてＣＰＵ３０１に出力する。ＣＰＵ３０１は、その息圧データから吹き口部１０１に息が吹かれているか否か、息が吹かれていればその強さを判定する。
【００６４】
先ず、ステップ１２０１では、検出回路３０９に指示して、ブレスセンサ３０８による吹き口部１０１に吹かれた息の強さの検出を行わせ、その検出結果として息圧データを取得する。続くステップ１２０２では、その息圧データが示す息の強さ（息の圧力）が予め固定的に定めた一定レベルを越えているか否か判定する。その息の強さがそのレベルを越えていた場合、判定はＹＥＳとなってステップ１２０３に移行し、変数ＮＯＴＥに代入されている音高番号の楽音の発音を指示するコマンドを生成（作成）して音源３０６に送出する。息の強さがそのレベルを新たに越えたのではなく、そのレベルを越えている間に変数ＮＯＴＥの値が変化したのであれば、つまり息を吹いている状態でユーザーが操作を解除、或いは新たに操作した運指スイッチが存在するのであれば、それまで変数ＮＯＴＥに代入されていた音高番号の楽音の消音を指示するコマンドを生成して併せて音源３０６に送出する。一連の処理はその後に終了する。一方、そうでない場合には、判定はＮＯとなってステップ１２０４に移行し、変数ＮＯＴＥに代入されている音高番号の楽音の消音を指示するコマンドを生成（作成）して音源３０６に送出した後に一連の処理を終了する。
＜第２の実施の形態＞
上記第１の実施の形態では、息を吸う、及び息を吐くという動作をガイドしている。しかし、息を吸う、息を吐く動作は、それを様々な程度（レベル）で行うことができる。第２の実施の形態は、このようなことから、そのような動作を行うレベルを含めてその動作をガイドできるようにしたものである。
【００６５】
第２の実施の形態における管楽器の構成は、その殆どは第１の実施の形態におけるそれと基本的に同じである。動作も大部分は同じである。このことから、第１の実施の形態の説明で付した符号をそのまま用いて、第１の実施の形態から異なる部分についてのみ説明することとする。
【００６６】
図１３は、第２の実施の形態で扱う演奏データの構成を示す図である。
第２の実施の形態では、図１３に示すように、ブレスイベントデータを構成する識別用データとして、呼吸の動作の種類を示す識別用データを用い、その識別用データが種類を示す呼吸の動作を行うべき程度を示すレベルデータをブレスデータの代わりとして用いる演奏データをＲＯＭ３０２に格納している。それにより、呼吸の動作のガイドは、息を吹くべき強さ、或いは息を吸うべき量を指示することで行うようにしている。識別用データ、及びレベルデータは、アドレスを異ならせて格納している。
【００６７】
それらの強さの通知は、ＬＥＤ２０８、２０９を点灯させる明るさにより行っている。息を止める動作は、通知の対象としていない。このため、第２の実施の形態では、ブレス表示部１０６にＬＥＤ２０８、及び２０９の２個だけを配置させている（図２参照）。
【００６８】
ＬＥＤ２０８、及び２０９だけを配置させることにより、図５に示す全体処理では、ステップ５０３として実行されるガイド処理が第１の実施の形態から異なっている。以下、ガイド処理において第１の実施の形態から異なる部分を説明する。
【００６９】
図９、及び図１０に示すガイド処理のフローチャートにおいて、図９のステップ９０１〜図１０のステップ９１６は第１の実施の形態と共通であり、第２の実施の形態では図１０のステップ９１７以降の処理、つまり、図１０のステップ９１２でイベントデータがブレスイベントデータと判定した後に実行する処理が第１の実施の形態から異なっている。このことから、図１４に示すフローチャートを参照して、その異なっている部分についてのみ説明する。その図１４では、第１の実施の形態から処理内容が基本的に変化していない処理には同一の符号を付している。
【００７０】
ステップ９１２でイベントデータがブレスイベントデータと判定した場合に移行するステップ１４０１では、その識別用データが示す呼吸の動作が息を吸うことであるか否か判定する。その識別用データが息を吸う動作を示していた場合、判定はＹＥＳとなってステップ１４０２に移行する。そうでない場合には、判定はＮＯとなってステップ１４０７に移行する。
【００７１】
ステップ１４０２では、変数ＡＤの値をインクリメントする。続くステップ１４０３では、変数ＡＤの値で指定される演奏データ中のデータ（ここではレベルデータとなる。図中「ＭＥＭ（ＡＤ）」と表記）を変数ＬＥＶＥＬに代入する。その代入後は、ステップ１４０４に移行して、変数ＬＥＶＥＬの値が０か否か判定する。変数ＬＥＶＥＬに代入したレベルデータの値が０であった場合、判定はＹＥＳとなり、ステップ１４０５に移行して、発光色が赤のＬＥＤ２０８を消灯させた後、図９のステップ９０５に戻る。そうでない場合には、判定はＮＯとなってステップ１４０６に移行し、ＬＥＤ２０８を変数ＬＥＶＥＬの値に応じた明るさで発光させ、発光色が青のＬＥＤ２０９が点灯中であればそれを消灯させた後、図９のステップ９０５に戻る。
【００７２】
このように、本実施の形態では、識別用データが息を吸う動作を示していても、それに続くレベルデータの値が０であれば息を吸う動作をガイドすべきでないと見なしている。つまり、その値の０は息を吸う動作をガイドしないことを示すことに用いることができるようにしている。
【００７３】
上記ステップ１４０１の判定がＮＯとなって移行するステップ１４０７〜１４１１では、識別用データが息を吹く動作を示すブレスイベントデータを対象に、上述のステップ１４０２〜１４０６と同様の処理が行われる。点灯、或いは消灯の対象となるのは、発光色が青のＬＥＤ２０９である。ステップ１４１０、或いは１４１０の処理を実行した後に図９のステップ９０５に戻る。
【００７４】
レベルデータの値に応じた明るさでＬＥＤ２０８、或いは２０９を点灯させた場合、ユーザーはその明るさから息を吹くべき強さ、或いは息を吸うべき量を認識することができる。息を吹くべき強さを認識することで、発音させるべき楽音はより適切な音量で発音させることができるようになる。息を吸うべき量を認識すると、それ以降に続く演奏で楽音を適切な音量で発音させられるように備える（息継ぎする）ことができるようになる。これらのことから結果的に、第１の実施の形態と比較して、発音させるべき楽音をより適切な音量で発音させられるようになる。
【００７５】
なお、第２の実施の形態では、ＬＥＤ２０８、或いは２０９を点灯される明るさを変化させることにより、呼吸の動作を行うべき程度をガイドしているが、そのガイドは明るさを変化させずに行うようにしても良い。例えば図１５（ａ）に示すように、複数のＬＥＤ、或いはＬＣＤでメータ１５０１を構成させ、そのメータ１５０１上で息を吹くべき強さ、及び息を吸うべき量を示すようにしても良い。それらは、例えば図１５（ｂ）に示すように、入力するアナログ信号の強弱によって針１５０３が動作するメータ１５０２により示すようにしても良い。息を吹くべき強さ、息を吸うべき量をそれぞれ別のメータで示すようにしても良い。これらのことから明らかなように、それらの表示方法は様々な変形を行うことができる。
＜第３の実施の形態＞
上記第１、及び第２の実施の形態では、演奏データに従って演奏ガイドを行っている。しかし、ユーザーが演奏データに沿う形で演奏を行えるとは限らない。このことから、第３の実施の形態は、ユーザーの演奏の進行に合わせる形で演奏ガイドを行えるようにしたものである。ユーザーの演奏の進行に合わせることにより、そのユーザーにとってより適切な形で演奏ガイドを行えることになる。
【００７６】
第３の実施の形態における管楽器の構成は、その殆どは第１の実施の形態におけるそれと基本的に同じである。動作も大部分は同じである。このことから、第２の実施の形態と同様に、第１の実施の形態の説明で付した符号をそのまま用いて、第１の実施の形態から異なる部分についてのみ説明することとする。
【００７７】
管楽器では、息を吹かなければ楽音が発音されないために演奏は進行しない。第３の実施の形態では、そのことに注目して、息を吹くべきタイミングとなると、実際に息が吹かれるまで待つようにして、ユーザーの行う演奏の進行に合わせた演奏ガイドを行うようにしている。
【００７８】
そのように演奏ガイドを行うために、図５に示す全体処理内でステップ５０３として実行されるガイド処理、及びステップ５０５として実行されるブレス処理が第１の実施の形態から異なっている。以降、第３の実施の形態で実行されるガイド処理、及びブレス処理について、図１６〜図１８に示すフローチャートを参照して詳細に説明する。
【００７９】
図１６、及び図１７は、第３の実施の形態におけるガイド処理のフローチャートである。始めに図１６、及び図１７を参照して、そのガイド処理について詳細に説明する。
図１６、及び図１７において、第１の実施の形態から異なっていない、或いは基本的に処理内容が変化していないステップの処理には第１の実施の形態と同一の符号を付している。第３の実施の形態におけるガイド処理は、第１の実施の形態から異なる部分についてのみ説明する。
【００８０】
第３の実施の形態では、図１６に示すように、変数ＳＴＦに１が代入されていることによってステップ９０１の判定がＹＥＳとなると、次にステップ１６０１で変数ＴＡＩＫＩＦの値が０か否か判定して、その判定がＹＥＳとなればステップ９０２に移行し、その判定がＮＯとなればそこで一連の処理を終了するようになっている。
【００８１】
その変数ＴＡＩＫＩＦは、ユーザーが吹く息の強さが一定レベルを越えているか否か判定するために用意した変数であり、０、或いは１が値として代入される。それにより、第３の実施の形態では、変数ＴＡＩＫＩＦの値が０でなければ変数ｔの値のデクリメントを行わないことにより、演奏データの処理を進行させないようにしている。図１６に示す他のステップの処理の内容は基本的に第１の実施の形態と同じであるため、説明は省略する。
【００８２】
息を吹く動作のガイドは、上述したように、発光色が青のＬＥＤ２０９を点灯させることで行っている。第３の実施の形態では、図１７に示すように、そのＬＥＤ２０９を点灯させるステップ９２１の処理を実行すると、次にステップ１６０２で変数ＴＡＩＫＩＦに１を代入し、その後にステップ９２３に移行するようにさせている。図１７に示す他のステップの処理の内容は基本的に第１の実施の形態と同じであるため、説明は省略する。
【００８３】
次に、図１８に示すフローチャートを参照して、第３の実施の形態におけるブレス処理について詳細に説明する。その図１８では、図１６、及び図１８と同様に、第１の実施の形態から異なっていない、或いは基本的に処理内容が変化していないステップの処理には第１の実施の形態と同一の符号を付している。
【００８４】
第３の実施の形態では、図１８に示すように、ステップ１２０３の処理が終了すると、次にステップ１８０１で変数ＴＡＩＫＩＦに０を代入し、その代入後に一連の処理を終了するようになっている。それにより、ユーザーが一定レベル以上の強さで息を吹いていれば変数ＴＡＩＫＩＦには常に０が代入されるようにしている。図１８に示す他のステップの処理の内容は基本的に第１の実施の形態と同じであるため、説明は省略する。
【００８５】
図１６、及び図１７に示すガイド処理を実行することにより、変数ＴＡＩＫＩＦには息を吹き始めるべきタイミングで１が代入されると、演奏データの処理が進行しない状態となる。しかし、ユーザーが一定レベル以上の強さで息を吹き始めるか、或いはそのように息を吹いていれば変数ＴＡＩＫＩＦには０が代入されるため、演奏データの処理（演奏ガイド）を進行させる状態に復帰する。第３の実施の形態では、そのようにして、ユーザーが一定レベル以上の強さで息を吹いていることを条件に演奏データの処理を進行させるようにしている。それにより、ユーザーの演奏の進行に合わせて演奏ガイドを進行させている。
＜第４の実施の形態＞
上記第１〜第３の実施の形態では、既存の演奏データを処理して、呼吸の動作の指示を含む演奏ガイドを行っている。これに対し、第４の実施の形態は、そのような演奏ガイドを行うための演奏データを自動的に生成できるようにしたものである。つまり、本実施の形態による演奏ガイドデータ生成装置を搭載したものである。
【００８６】
第４の実施の形態における管楽器の構成は、その殆どは第１の実施の形態におけるそれと基本的に同じである。動作も大部分は同じである。このことから、第２、及び第３の実施の形態と同様に、第１の実施の形態の説明で付した符号をそのまま用いて、第１の実施の形態から異なる部分についてのみ説明することとする。
【００８７】
管楽器では、楽音を発音させるために息を吹かなければならない。その息を吹き続ける能力には個人差がある。このことから、第４の実施の形態では、演奏を行うユーザーが適切な形で息継ぎができるように、その演奏の内容を示す演奏データを参照し、その能力を考慮して演奏ガイド用の演奏データを生成するようにしている。以降、それらの演奏データを区別するために、演奏ガイド用の演奏データの生成のために参照する演奏データは便宜的に「元演奏データ」と呼ぶことにする。
【００８８】
息を吹き続ける能力を示すパラメータとして、本実施の形態では肺活量に注目している。その肺活量は、ユーザーに入力させても良いが、息を吹く強さを検出できるブレスセンサ３０８を備えていることから、そのブレスセンサ３０８を用いて肺活量を検出するようにしている。その肺活量を検出、言い換えればそのデータの入力をユーザーが指示できるように、スイッチ群１０４を構成するスイッチとして、肺活量入力スイッチが更に設けられている。そのスイッチの他には、演奏ガイド用の演奏データの生成を指示できるように、ブレスデータ生成スイッチが設けられている。それらのスイッチは、例えばダウンスイッチ２０５の近傍に配置させている。
【００８９】
図１９は、演奏ガイド用の演奏データの生成のために参照される元演奏データの構成を示す図である。
図１９に示すように、元演奏データは、基本的に図４に示す演奏データからブレスイベントデータを省いたものである。ノートイベントデータとして、ノートオンを示すもの、及びノートオフを示すものが存在している。
【００９０】
第４の実施の形態では、元演奏データから演奏データを生成できることから、ＲＯＭ３０２には演奏データではなく、元演奏データを格納させている。生成した演奏データは曲番号を割り当ててＲＡＭ３０３に格納して、それを消去しない間、曲選択スイッチ２０１を操作した後のアップスイッチ２０４、或いはダウンスイッチ２０５への操作により選択できるようにさせている。当然のことながら、外部から入力される元演奏データを対象に演奏データを生成するようにしても良い。
【００９１】
そのように演奏ガイドを自動的に生成できる第４の実施の形態では、図５に示す全体処理内でステップ５０２として実行されるスイッチ処理が第１の実施の形態から異なっている。以降、第４の実施の形態で実行されるスイッチ処理、及びその処理内で実行されるサブルーチン処理について、図２０〜図２２に示すフローチャートを参照して詳細に説明する。
【００９２】
図２０は、第４の実施の形態におけるスイッチ処理のフローチャートである。始めに図２０を参照して、そのスイッチ処理について詳細に説明する。
新たに生成した演奏データを用いた演奏ガイドも行えることから、選択の対象となる演奏データは第１の実施の形態とは異なっている。しかし、その選択の仕方や、演奏データの選択を変更した際の動作は基本的に同じである。このことは、スイッチ処理内で実行されるスタート／ストップスイッチ処理、全体処理内で実行されるガイド処理においても同様である。このようなことから、図２０では曲選択スイッチ処理、及びスタート／ストップスイッチ処理に第１の実施の形態のときと同一の符号を付している。ガイド処理を含めてそれらの処理についての詳細な説明は省略する。
【００９３】
第４の実施の形態では、図２０に示すように、ステップ６０２のスタート／ストップスイッチ処理を実行すると、ステップ２００１で肺活量入力スイッチへの操作に対応するための肺活量入力スイッチ（ＳＷ）処理を実行し、更にステップ２００２でブレスデータ生成スイッチへの操作に対応するためのブレスデータ生成スイッチ（ＳＷ）処理を実行した後、ステップ６０３に移行するようになっている。以下、それらサブルーチン処理について説明する。
【００９４】
図２１は、ステップ２００１として実行される肺活量入力スイッチ処理のフローチャートである。スイッチ処理内で実行されるサブルーチン処理では、始めに図２１を参照して、その肺活量入力スイッチ処理について詳細に説明する。
先ず、ステップ２１０１では、肺活量入力スイッチが操作（オン）されたか否か判定する。そのスイッチをユーザーが操作した場合、判定はＹＥＳとなってステップ２１０２に移行し、そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００９５】
ステップ２１０１では、例えば検出回路３０９に指示して、ブレスセンサ３０８による吹き口部１０１に吹かれた息の強さの検出を行わせて、その検出結果として入力する息圧データを監視することにより、吹く息の強さが所定のレベル以上となってからそれ以下となるまでの間で検出された息の強さを基に肺活量を算出し、算出した肺活量に対応する時間を示す値を変数ＣＣに代入する。一連の処理は、その代入後に終了する。
【００９６】
上記肺活量の算出は、より具体的には、例えばその間の先頭から、その間に検出された息の強さが変化する度に、その息の強さに対応する空気の流量にそれが検出された時間を掛けて息の強さで分けた肺活量（以降「部分肺活量」と呼ぶ）を算出し、算出した部分肺活量の累算値を求めることで行われる。息の強さに対応する空気の流量は、例えばそれらの間の対応関係を定義したテーブル（制御用データ）を参照して決定する。当然のことながら、肺活量の算出は別の方法で行っても良い。息を吹き続ける能力は、肺活量ではなく、予め定めたレベル以上の強さで息を吹き続けられる時間、吹く息の強さの最大値、などを基に決定するようにしても良い。
【００９７】
図２２は、上記ステップ２００２として実行されるブレスデータ生成スイッチ処理のフローチャートである。次に図２２を参照して、そのスイッチ処理について詳細に説明する。
呼吸の動作ガイド用の演奏データは、呼吸の動作を示すブレスイベントデータを生成して元演奏データ中に挿入することで生成するようにしている。このため、演奏データの構成は、第１の実施の形態におけるそれと基本的に同じである（図４参照）。
【００９８】
呼吸の動作を示すブレスイベントデータとしては、息を吸う（息継ぎ）動作を示すものだけを生成している。そのイベントデータの挿入位置は、元演奏データに従って息を吹いた場合に、息を吹けなくなる（発音させられなくなる）と予想される楽音の発音を指示するノートイベントデータより前としている。それにより、発音させるべき楽音を全て発音させられるように、息継ぎをガイドできるようにさせている。変数ＣＣに肺活量を示す値を代入したのは、息を吹けなくなると予想される楽音の位置を正確に予想して、ユーザーにとって適切なタイミングで息継ぎをガイドするためである。
【００９９】
先ず、ステップ２２０１では、ブレスデータ生成スイッチが操作（オン）されたか否か判定する。そのスイッチをユーザーが操作した場合、判定はＹＥＳとなってステップ２２０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１００】
ステップ２２０２では、現在、選択されている元演奏データをＲＡＭ３０３に確保したエリアにコピーし、コピーした元演奏データのスタートアドレス値を変数ＡＤに代入する。次のステップ２２０３では、元演奏データ中で楽音の発音を指示している時間の計算用の変数Ｓに０を代入する。その後はステップ２２０４に移行して、変数ＡＤの値で指定される演奏データ中のデータの種類を判定する。そのデータが時間（タイム）データであった場合、その旨が判定されてステップ２２０９に移行し、それがノートオフを示すノートイベントデータであった場合には、その旨が判定されてステップ２２０８に移行する。それがノートオンを示すノートイベントデータであった場合には、その旨が判定されてステップ２２０５に移行する。
【０１０１】
ステップ２２０５では、変数ＣＦに、元演奏データ中で楽音の発音が指示されている状況であることを示す値の１を代入する。次のステップ２２０６では、変数ＡＤの値をインクリメントする。その次に移行するステップ２２０７では、変数ＡＤの値が元演奏データの最終アドレス値より大きいか否か判定する。その値が最終アドレス値よりも大きい場合、即ちコピーした元演奏データ中にブレスイベントデータを挿入する形で行う演奏データの生成が完了した場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ２２０４に戻る。
【０１０２】
変数ＡＤの値で指定される演奏データ中のデータがノートオフを示すノートイベントデータとステップ２２０４で判定した場合に移行するステップ２２０８では、変数ＣＦに、元演奏データ中で楽音の発音が指示されている状況でないことを示す値の０を代入する。その後は上記ステップ２２０６に移行する。
【０１０３】
変数ＡＤの値で指定される演奏データ中のデータが時間（タイム）データとステップ２２０４で判定した場合に移行するステップ２２０９では、変数ＣＦの値が１か否か判定する。それに１が代入されていた場合、判定はＹＥＳとなり、ステップ２２１０に移行して、変数Ｓに、それまでの値にその時間データを加算した値を新たに代入する。その後はステップ２２１１に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップ２２１１に移行する。
【０１０４】
演奏データの生成は、変数ＡＤの値を順次、インクリメントしながら、その値で指定されるデータを処理していくことで行われる。このため、上記変数Ｓに新たに代入した値は、それに０を代入してから処理した時間データの累算値、つまり元演奏データ中で楽音の発音を指示している総時間を示す値となる。その値と比較するために、変数ＣＣに代入した値（肺活量）は、それに対応する時間を示す値に変換して参照している。その変換は、例えば制御用データとして用意した、肺活量と息を吹き続けられる時間の対応関係を定義したテーブルを参照して行っている。
【０１０５】
ステップ２２１１では、変数Ｓの値が変数ＣＣの値を変換して得た値より大きいか否か判定する。変数Ｓの値がその変換により得た値以下であった場合、判定はＮＯとなり、ユーザーは次の楽音を発音させられるとして上記ステップ２２０６に移行する。そうでない場合には、判定はＹＥＳとなってステップ２２１２に移行する。
【０１０６】
ステップ２２１２では、変数ＡＤの値をデクリメントする。続くステップ２２１３では、変数ＡＤの値で指定されるデータがノートオンを示すイベントデータか否か判定する。そのイベントデータがノートオンを示すものであった場合、判定はＹＥＳとなってステップ２２１４に移行し、そのイベントデータの前に位置する時間データの前に、その時間データを参照して生成した時間データ、及び息を吸う動作を示すブレスイベントデータを挿入する。時間データの挿入に合わせて、ノートオンを示すイベントデータの前に位置する時間データは、そのイベントデータを処理するタイミングが変化しないように変更する。そのようなことを行った後、上記ステップ２２０３に戻る。一方、そうでない場合には、判定はＮＯとなってステップ２２１２に戻る。それにより、ステップ２２１３の判定がＹＥＳとなるまで、つまりノートオンを示すイベントデータのアドレスを特定するまで、ステップ２２１２及び２２１３で形成される処理ループを繰り返し実行する。
【０１０７】
このようにして、本実施の形態では、ユーザーの息を吹き続けられる能力（ここでは肺活量）に応じて、息継ぎを指示するためのブレスイベントデータを元演奏データ中に挿入すべき位置を特定して挿入している。それにより、発音させるべき楽音を発音させるためのブレス操作（息を吹く動作）を確実に行えるように息継ぎをガイドするようにさせている。
＜第５の実施の形態＞
上記第４の実施の形態では、楽音の発音を指示している時間に着目して、息継ぎ動作を指示するためのブレスイベントデータを元演奏データ中に挿入している。しかし、息を吹き続けられる時間は、その息を吹く強さによっても変化する。このようなことから、第５の実施の形態は、その時間の他に、楽音を発音させるべき音量（ベロシティ）にも着目するようにしたものである。その音量に着目することにより、第４の実施の形態と比較して、より適切なタイミングで息継ぎ動作をガイドする演奏データを生成することができる。
【０１０８】
第５の実施の形態における管楽器の構成は、第４の実施の形態と同様に、その殆どは第１の実施の形態におけるそれと基本的に同じである。動作は大部分は第４の実施の形態と同じである。このことから、第１の実施の形態の説明で付した符号をそのまま用いて、第４の実施の形態から異なる部分についてのみ説明することとする。
【０１０９】
図２３は、演奏ガイド用の演奏データの生成のために参照される元演奏データの構成を示す図である。図２３に示すように、ノートオンを示すノートイベントデータは、イベントの内容がノートオンであることを示す識別用データの他に、楽音の音量を示すベロシティデータを備えている。そのベロシティデータは、識別用データとは別のアドレスに格納されている。
【０１１０】
第５の実施の形態では、演奏ガイド用の演奏データの生成にベロシティデータを着目しているために、図２０に示すスイッチ処理内でステップ２００２として実行されるブレスデータ生成スイッチ処理が第４の実施の形態から異なっている。このことから、第５の実施の形態におけるそのスイッチ処理について、図２４、及び図２５に示すフローチャートを参照して詳細に説明する。
【０１１１】
先ず、ステップ２４０１では、ブレスデータ生成スイッチが操作（オン）されたか否か判定する。そのスイッチをユーザーが操作した場合、判定はＹＥＳとなってステップ２４０２に移行する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【０１１２】
ステップ２４０２では、現在、選択されている元演奏データをＲＡＭ３０３に確保したエリアにコピーし、コピーした元演奏データのスタートアドレス値を変数ＡＤに代入する。次のステップ２４０３では、変数Ｓに０を代入する。その後はステップ２４０４に移行して、変数ＡＤの値で指定される演奏データ中のデータがノートオンを示す識別用データか否か判定する。そのデータがノートオンを示すノートイベントデータを構成する識別用データでなかった場合、判定はＮＯとなってステップ２４０８に移行する。そうでない場合には、判定はＹＥＳとなってステップ２４０５に移行する。
【０１１３】
ステップ２４０５では、変数ＣＦに１を代入する。次のステップ２４０６では、変数ＡＤの値をインクリメントする。その次に移行するステップ２４０７では、変数ＡＤの値が元演奏データの最終アドレス値より大きいか否か判定する。その値が最終アドレス値よりも大きい場合、即ちコピーした元演奏データ中にブレスイベントデータを挿入する形で行う演奏データの生成が完了した場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ２４０４に戻る。
【０１１４】
一方、ステップ２４０８では、変数ＡＤの値で指定される演奏データ中のデータがノートオフを示す識別用データか否か判定する。そのデータがノートオフを示すノートイベントデータを構成する識別用データでなかった場合、判定はＮＯとなって図２５のステップ２４１０に移行する。そうでない場合には、判定はＹＥＳとなり、次にステップ２４０９で変数ＣＦに０を代入した後、上記ステップ２４０６に移行する。
【０１１５】
図２５のステップ２４１０では、変数ＡＤの値で指定される演奏データ中のデータがベロシティデータか否か判定する。そのデータがベロシティデータでなかった場合、判定はＮＯとなってステップ２４１３に移行する。そうでない場合には、判定はＹＥＳとなってステップ２４１１に移行する。
【０１１６】
ステップ２４１１では、変数ＣＦの値が１か否か判定する。その値が１、つまりそのベロシティデータがノートオンを示すノートイベントデータを構成するものであった場合、判定はＹＥＳとなり、次にステップ２４１２で変数ＶＥＬに、そのベロシティデータに対応する値を代入した後、図２４のステップ２４０６に移行する。そうでない場合には、判定はＮＯとなり、次にそのステップ２４０６の処理を実行する。
【０１１７】
ベロシティデータに対応する値とは、例えばそのデータに従って楽音を発音させるために吹くべき息の流量を、基準とするベロシティで楽音を発音させる場合のそれで割って得られる値である。その値は、ベロシティとその値の対応関係を定義したテーブルを参照して決定する。そのような値を変数ＶＥＬに代入するのは、楽音を発音させるべき期間を、その楽音を発音させるべき音量に応じて評価するためである。
【０１１８】
ステップ２４１３では、変数ＡＤの値で指定される演奏データ中のデータが時間（タイム）データか否か判定する。そのデータが時間データでなかった場合、判定はＮＯとなって図２４のステップ２４０６に移行する。そうでない場合には、判定はＹＥＳとなってステップ２４１４に移行する。
【０１１９】
ステップ２４１４では、変数ＣＦの値が１か否か判定する。その値が１、つまり時間データがノートオフを示すノートイベントデータ、或いはそのイベントデータよりも前に位置するイベントデータの前に位置するものであった場合、判定はＹＥＳとなり、次にステップ２４１５に移行して、変数Ｓに、変数ＶＥＬの値にその時間データを掛けて求めた値をそれまでの値に加算した値を新たに代入した後、ステップ２４１６に移行する。そうでない場合には、判定はＮＯとなって図２４のステップ２４０６に移行する。
【０１２０】
上記したように、変数ＶＥＬには、ベロシティデータに対応する息を吹くべき強さ（流量）を比で表した値が代入されている。このため、その値を時間データに掛けて求めた値は、息を吹き続ける能力の面から、ベロシティデータを考慮して時間データを評価したものとなる。
【０１２１】
ステップ２４１６では、変数Ｓの値が変数ＣＣの値を変換して得た値より大きいか否か判定する。変数Ｓの値がその変換により得た値以下であった場合、判定はＮＯとなり、ユーザーは次の楽音を発音させられるとして図２４のステップ２４０６に移行する。そうでない場合には、判定はＹＥＳとなってステップ２４１７に移行する。
【０１２２】
ステップ２４１７では、変数ＡＤの値をデクリメントする。続くステップ２４１８では、変数ＡＤの値で指定されるデータがノートオンを示す識別用データか否か判定する。そのデータがノートオンを示す識別用データであった場合、判定はＹＥＳとなってステップ２４１９に移行し、その識別用データの前に位置する時間データの前に、その時間データを参照して生成した時間データ、及び息を吸う動作を示すブレスイベントデータを挿入する。時間データの挿入に合わせて、ノートオンを示す識別用データの前に位置する時間データは、その識別用データを処理するタイミングが変化しないように変更する。そのようなことを行った後、図２４のステップ２２０３に戻る。一方、そうでない場合には、判定はＮＯとなってステップ２４１７に戻る。それにより、ステップ２４１８の判定がＹＥＳとなるまで、つまりノートオンを示す識別用データのアドレスを特定するまで、ステップ２４１７及び２４１８で形成される処理ループを繰り返し実行する。
【０１２３】
このようにして、第５の実施の形態では、楽音を発音させるためにユーザーが息を吹かなければならない強さを考慮して、息継ぎを指示するためのブレスイベントデータを元演奏データ中に挿入すべき位置を特定して挿入している。それにより、発音させるべき楽音を発音させるためのブレス操作（息を吹く動作）を更に確実に行えるように息継ぎをガイドするようにさせている。
【０１２４】
なお、第４、及び第５の実施の形態では、単に息を吸う動作を示すブレスイベントデータを元演奏データ中に挿入しているが、その動作をガイドする時点でのユーザーの状況を予想し、その予想される状況を基に息を吸うべき量を特定して、その量を併せて示すブレスイベントデータを生成し元演奏データ中に挿入するようにしても良い。
【０１２５】
演奏中に行うべき呼吸の動作をガイドするための演奏データ（演奏ガイドデータ）は、ブレスイベントデータと併せて時間データを元演奏データ中に挿入することで生成しているが、必ずしもそのように生成する必要はない。イベントデータとしてブレスイベントデータのみを用いて演奏データを生成しても良い。そのように生成された演奏データを用いて、演奏中に行うべき呼吸の動作だけをガイドするようにしても良い。
【０１２６】
演奏ガイド装置、及び演奏ガイドデータ生成装置は、電子管楽器１００に搭載されているが、それらは電子管楽器１００に搭載させなくとも良い。電子管楽器１００とは別の装置として実現させても良い。ガイドは、ＬＥＤ２０８〜２１０などの表示素子により行うのではなく、ＬＣＤ、或いはＣＲＴなどの画面上で行うようにしても良い。このことから明らかなように、ガイドには様々な表示装置を採用することができる。
【０１２７】
上述したような電子管楽器（演奏ガイド装置、演奏ガイドデータ生成装置）１００の動作、或いはその変形例の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた演奏ガイド装置、或いは演奏ガイドデータ生成装置を実現させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【０１２８】
【発明の効果】
以上、説明したように本発明は、管楽器の演奏中に行うべき呼吸の動作を示すイベントデータ、及びその動作を行うべきタイミングを示す時間データをその動作毎に有する演奏ガイドデータを取得し、取得した演奏ガイドデータ中の時間データを基に、その時間データに対応するイベントデータが示す呼吸の動作を通知することにより、管楽器の演奏をガイドする。そのようにして演奏中に行うべき呼吸の動作をガイドするため、演奏者は息を吹くことによる管楽器での楽音の発音、更には息継ぎ（息を吸う動作）を適切なタイミングで行えるようになる。
【０１２９】
本発明は、管楽器で行う演奏の内容を示す演奏データを参照して、その演奏データが示す演奏を行う場合に演奏者が息を吸うべきタイミングを少なくとも特定し、その特定したタイミング毎に、そのタイミングを示す時間データ、及び息を吸うことを示すイベントデータを生成することにより、演奏ガイドデータを生成する。その演奏ガイドデータを生成することにより、演奏ガイド装置は演奏者が演奏中に行うべき呼吸の動作のガイドを行うことができる。
【図面の簡単な説明】
【図１】第１の実施の形態による演奏ガイド装置を搭載した電子管楽器の外観を示す図である。
【図２】スイッチ群、及び表示部を示す図である。
【図３】第１の実施の形態による演奏ガイド装置を搭載した電子管楽器の回路構成図である。
【図４】演奏データの構成を示す図である。
【図５】全体処理のフローチャートである。
【図６】スイッチ処理のフローチャートである。
【図７】曲選択スイッチ処理のフローチャートである。
【図８】スタート／ストップスイッチ処理のフローチャートである。
【図９】ガイド処理のフローチャートである。
【図１０】ガイド処理のフローチャートである（続き）。
【図１１】運指処理のフローチャートである。
【図１２】ブレス処理のフローチャートである。
【図１３】演奏データの構成を示す図である（第２の実施の形態）。
【図１４】ガイド処理のフローチャートである（第２の実施の形態：抜粋）。
【図１５】呼吸の動作を行うべき程度の他の表示方法を説明する図である。
【図１６】ガイド処理のフローチャートである（第３の実施の形態）。
【図１７】ガイド処理のフローチャートである（第３の実施の形態：続き）。
【図１８】ブレス処理のフローチャートである（第３の実施の形態）。
【図１９】演奏ガイド用の演奏データの生成のために参照される演奏データの構成を示す図である。
【図２０】スイッチ処理のフローチャートである（第４の実施の形態）。
【図２１】肺活量入力スイッチ処理のフローチャートである。
【図２２】ブレスデータ生成スイッチ処理のフローチャートである。
【図２３】演奏ガイド用の演奏データの生成のために参照される演奏データの構成を閉めず図である（第５の実施の形態）。
【図２４】ブレスデータ生成スイッチ処理のフローチャートである（第５の実施の形態）。
【図２５】ブレスデータ生成スイッチ処理のフローチャートである（第５の実施の形態：続き）。
【符号の説明】
１００　　電子管楽器
１０１　　吹き口部
１０２　　運指スイッチ群
１０４　　スイッチ群
１０５　　表示部
２０８〜２１０　　ＬＥＤ
３０１　　ＣＰＵ
３０２　　ＲＯＭ
３０３　　ＲＡＭ
３０４　　運指用ＬＥＤ群
３０５　　ブレス用ＬＥＤ群
３０８　　ブレスセンサ
３０９　　検出回路
【図１】
2004109508.tif 000003
【図２】
2004109508.tif 000004
【図３】
2004109508.tif 000005
【図４】
2004109508.tif 000006
【図５】
2004109508.tif 000007
【図６】
2004109508.tif 000008
【図７】
2004109508.tif 000009
【図８】
2004109508.tif 000010
【図９】
2004109508.tif 000011
【図１０】
2004109508.tif 000012
【図１１】
2004109508.tif 000013
【図１２】
2004109508.tif 000014
【図１３】
2004109508.tif 000015
【図１４】
2004109508.tif 000016
【図１５】
2004109508.tif 000017
【図１６】
2004109508.tif 000018
【図１７】
2004109508.tif 000019
【図１８】
2004109508.tif 000020
【図１９】
2004109508.tif 000021
【図２０】
2004109508.tif 000022
【図２１】
2004109508.tif 000023
【図２２】
2004109508.tif 000024
【図２３】
2004109508.tif 000025
【図２４】
2004109508.tif 000026
【図２５】
2004109508.tif 000027