JP3912238B2 - 演奏ガイドデータ生成装置、及びプログラム - Google Patents
演奏ガイドデータ生成装置、及びプログラム Download PDFInfo
- Publication number
- JP3912238B2 JP3912238B2 JP2002272218A JP2002272218A JP3912238B2 JP 3912238 B2 JP3912238 B2 JP 3912238B2 JP 2002272218 A JP2002272218 A JP 2002272218A JP 2002272218 A JP2002272218 A JP 2002272218A JP 3912238 B2 JP3912238 B2 JP 3912238B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- performance
- breath
- time
- event data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- Auxiliary Devices For Music (AREA)
Description
【発明の属する技術分野】
本発明は、楽音の発生に息を吹くブレス操作が必要な管楽器の演奏をガイドするための技術に関する。
【0002】
【従来の技術および発明が解決しようとする課題】
楽器の演奏は、発音させるべき楽音を順次、発音させるために行われる。このことから、鍵盤楽器では、演奏の進行に応じて押鍵すべき鍵を順次、ユーザ(演奏者)に通知していくことで演奏のガイドを行うようになっている。その押鍵は、楽音の発音開始と併せて、その楽音の音高を指示する操作である。
【0003】
一方、管楽器では、吹き口内に息を吹かなければ楽音は発音されず、楽音の発音開始とその音高の指示は別の操作で行わなければならない。適切に息を吹くためには、息継ぎを適切に行うことが必要である。このことから、管楽器の演奏をガイドする場合、発音させるべき楽音を適切に発音させられるように、息継ぎの行い方を通知することも重要であると考えられる。
【0004】
管楽器の演奏をガイドする従来の技術としては、例えば特許文献1、2に記載されたものがある。特許文献1に記載の技術では、発音させるべき楽音の音高、即ち塞ぐべき孔、或いは操作すべきキーなどをガイドするために、画面上に運指の方法を示す画像を表示させている。特許文献2に記載の技術では、タンギング操作を行うべきタイミングや、その強さを表示装置によりガイドしている。
【0005】
【特許文献1】
特開平11−65558号公報
【特許文献2】
特許第2712406号公報
本発明の課題は、息を吹くことによる管楽器での楽音の発音を適切に行えるように演奏をガイドするための技術を提供することにある。
【0006】
【課題を解決するための手段】
本発明の演奏ガイドデータ生成装置は、管楽器の演奏中に行うべき呼吸の動作をガイドするための演奏ガイドデータを生成することを前提とし、管楽器で演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得する能力データ取得手段と、管楽器で行うべき演奏の内容を示すイベントデータ及び当該演奏を行うべきタイミングを示す時間データからなる演奏データを記憶する記憶手段と、この記憶手段からイベントデータを順次読み出す読み出し手段と、読み出し手段により読み出されたイベントデータ及び能力データ取得手段により取得した能力データを参照して、該イベントデータが示す演奏を行う場合に演奏者が息を吸うべきタイミングを特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成し、当該生成されたイベントデータ及び時間データを、記憶手段に記憶された演奏データ内に挿入することにより演奏ガイドデータを生成する演奏ガイドデータ生成手段と、を具備する。
【0007】
なお、能力データ取得手段は、外部より肺活量を入力する肺活量入力手段と、この肺活量入力手段により入力された肺活量に基づいて息を吹き続けられる時間データを出力するテーブル手段と、からなることが望ましい。
【0008】
演奏ガイドデータ生成手段は、読み出し手段により発音の開始を示すイベントデータが読み出されたことを検出する発音開始検出手段と、この発音開始検出手段により開始が検出された発音が継続する時間を算出する発音時間算出手段と、この算出された時間が前記テーブル手段から出力された時間データが示す時間を越えたか否かを検出する検出手段と、を有し、この検出手段により超えたことが検出された場合に、発音開始検出手段により検出されたイベントデータが前記記憶手段から読み出される直前のタイミングを、演奏者が息を吸うべきタイミングとして特定する、ことが望ましい。
【0009】
演奏データは、更にイベントデータはベロシテイデータを含み、前記発音時間算出手段は、当該ベロシテイデータに基づいて算出される発音が継続する時間を変更する、ことが望ましい。
【0010】
本発明のプログラムは、管楽器の演奏中に行うべき呼吸の動作を示す演奏ガイドデータを生成するためにデータ処理装置に実行させることを前提とし、管楽器で演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得する能力データ取得ステップと、管楽器で行うべき演奏の内容を示すイベントデータ及び当該演奏を行うべきタイミングを示す時間データからなる演奏データを記憶する記憶手段からイベントデータを順次読み出す読み出しステップと、読み出されたイベントデータ及び取得された能力データを参照して、該イベントデータが示す演奏を行う場合に演奏者が息を吸うべきタイミングを特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成し、当該生成されたイベントデータ及び時間データを、記憶手段に記憶された演奏データ内に挿入することにより演奏ガイドデータを生成する演奏ガイドデータ生成ステップと、を実行させる。
【0014】
本発明では、管楽器で行う演奏の内容を示す演奏データを参照してその演奏データが示す演奏を行う場合に、管楽器で演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得するとともに、この能力データに基づいて演奏者が息を吸うべきタイミングを少なくとも特定し、その特定したタイミング毎に、そのタイミングを示す時間データ、及び息を吸うことを示すイベントデータを生成することにより、演奏ガイドデータを生成する。その演奏ガイドデータを生成することにより、演奏ガイド装置による演奏者が演奏中に行うべき呼吸の動作のガイドが可能となる。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
<第1の実施の形態>
図1は、第1の実施の形態による演奏ガイド装置を搭載した電子管楽器の外観を示す図である。
【0016】
その電子管楽器100は、図1に示すように、吹き口部101から息を吹くことで楽音の発音を指示し、正面側に複数、背面側に1個、配設された音高指定用のスイッチ(運指スイッチ)からなる運指スイッチ群102のなかで1個以上の運指スイッチを操作することで楽音の音高を指定するものである。正面側に配設された運指スイッチは、特に詳細な説明は省略するが、その内部に配置した発光ダイオード(LED)の点灯により光るようになっている。
【0017】
楽音の発音は、自然管楽器では息が外に排出される部分に配置したスピーカ103により行うようになっている。そのスピーカ103の運指スイッチ102側の近傍には、各種設定用のスイッチからなるスイッチ群104、及び各種情報表示用の表示部105が配設されている。他方の側の近傍には、MIDIデータ入力用のMIDI IN端子106、その出力用のMIDI OUT端子107、外部から電力供給用のPOWER IN端子108、及び電源のオンオフ用の電源スイッチ109が配設されている。本実施の形態による演奏ガイド装置は、吹き口部101から息を吹くブレス操作を含め、演奏中に行うべき呼吸の動作をガイドするために電子管楽器100に搭載されている。
【0018】
図2は、上記スイッチ群104、及び表示部105を示す図である。図2を参照して、スイッチ群104を構成するスイッチの種類や、表示部105の構成について詳細に説明する。
そのスイッチ群104としては、図2に示すように、演奏ガイドの開始、或いは停止を指示するためのスタート/ストップスイッチ200、そのガイドの対象となる曲を選択するための曲選択スイッチ201、トーン(音色)を選択するためのトーンスイッチ202、自動再生させるリズムを選択するためのリズムスイッチ203、設定されている曲、トーン、或いはリズムを示す番号のアップを指示するためのアップスイッチ204、及びその番号のダウンを指示するためのダウンスイッチ205が配設されている。曲、トーン、及びリズムの設定変更は、各スイッチ201〜203のなかで対応するスイッチを操作した後、アップスイッチ204、或いはダウンスイッチ205を操作して行うようになっている。
【0019】
他方の表示部105は、図2に示すように、ブレス操作(呼吸)の動作を表示するためのブレス表示部206と、それ以外の情報表示用に用意した汎用表示部207と、から構成されている。ブレス表示部206には、息を吸う、息を吐く(楽音を発音させるためのブレス操作を行う)、及び息を止める、の各動作を指示するためにLED208〜210が配設されている。各LED208〜210の発光色は、区別が容易なように異ならせている。具体的には、LED208〜210として、発光色が赤、青、白のLEDをそれぞれ採用している。
【0020】
他方の汎用表示部207には、設定されている曲、トーン、或いはリズムを示す番号を表示する液晶表示器(LCD)211が配設されている。選択用のスイッチ201〜203のうちの何れかを操作すると、そのLCD211に現在、設定中の曲、トーン、或いはリズムを示す番号が表示される。それにより、それらの選択は、LCD211に表示されている番号を見ながらアップスイッチ204、或いはダウンスイッチ205を操作して行うようになっている。
【0021】
そのLCD211以外には、親指で操作する運指スイッチへの操作を指示するためのLED212、及び演奏ガイドを行っているか否か通知するためのLED213が汎用表示部207に配設されている。LED212を配設しているのは、電子管楽器100を演奏しているユーザー(演奏者)にとって、背面側に配置されているその運指スイッチは死角となるためである。
【0022】
図3は、その電子管楽器100の回路構成図である。
管楽器100は、図3に示すように、管楽器100全体の制御を行うCPU301と、そのCPU301が実行するプログラムや各種制御用データ、及び曲再生用の演奏データ等を格納したROM302と、CPU301がワークに用いるRAM303と、運指スイッチ群102を構成する運指スイッチを光らせるためのLED212を含む複数のLED、及びその駆動回路からなる運指用LED群304と、図2に示すLED208〜210、並びに213、及びその駆動回路からなるブレス用LED群305と、図2に示すLCD211と、図1に示す運指スイッチ群102、及びスイッチ群104と、CPU301の指示に従って、発音させるべき楽音の波形データを生成して出力する音源306と、図1に示すスピーカ103を有し、音源306から入力した波形データを音声に変換して放音する発音回路307と、吹き口部101に設けられ、ユーザーが吹く息の強さを検出するためのブレスセンサ308と、そのセンサ308を駆動して息の強さを検出する検出回路309と、を備えて構成されている。
【0023】
上記発音回路307は、例えば音源306から入力した波形データをアナログのオーディオ信号に変換するA/Dコンバータと、それが出力するオーディオ信号の増幅を行う増幅器と、を備え、その増幅器が増幅を行った後のオーディオ信号をスピーカ103に出力するものである。運指スイッチ群102、及びスイッチ群104は共に、ユーザーが操作の対象とする複数のスイッチの他に、それらへの操作を検出する検出回路を備えたものである。なお、MIDI端子106、或いは107を介して外部装置との間でMIDIデータの送受信を行うインターフェースの図示は省略している。
【0024】
以上の構成において、動作を説明する。
CPU301は、電源スイッチ109が操作されて電源がオンされると、ROM302に格納されたプログラムを読み出して実行することにより、電子管楽器100の制御を開始する。その制御は、運指スイッチ群102、及びスイッチ群104を構成するスイッチのなかで操作されたスイッチに対応する形で行う。
【0025】
演奏ガイドを開始させるためにユーザーがスタート/ストップスイッチ200を操作すると、CPU301は、現在、設定している曲の番号(曲番号)に対応する演奏データをROM302からRAM303に読み出して、それを自動再生する形で演奏ガイドを開始する。ブレス用LED群305を構成するLED213は、その開始に合わせて点灯させ、その終了、或いは中止に合わせて消灯させる。演奏ガイド中は、運指用LED群304を構成するLED、及びブレス用LED群305を構成するLED208〜210を必要に応じて点灯、或いは消灯させる。その点灯、或いは消灯は、運指用LED群304、或いはブレス用LED群305を構成する駆動回路に制御コマンドを送出することで行われる。
【0026】
各演奏データは、図4に示すように、図中、「演奏曲(1〜3)」と表記のROM302に確保されたエリア(以降、「演奏曲エリア」と呼ぶ)に格納されている。その演奏データは、演奏上のイベントの内容を示すイベントデータ毎に、それを処理すべきタイミングを示す時間データ(図中、「t」と表記)が付加された形で構成されている。その時間データは、直前のイベントデータを処理してからそれが付加されたイベントデータを処理するまでの時間(デルタタイム)で処理すべきタイミングを示している。演奏曲エリアの()内に表記された数値は曲番号を示している。
【0027】
イベントデータは、発音させるべき、或いは消音させるべき楽音の音高を示すもの(図中、「イベント(ノート)」と表記)と、演奏中における呼吸の動作を示すもの(図中、「イベント(ブレス)」と表記)とに大別される。以降、便宜的に、前者をノートイベントデータ、後者をブレスイベントデータと呼ぶことにする。
【0028】
ブレスイベントデータは、息を吸う、息を吐く(吹く口部101に息を吹くブレス操作を行う)、息を止める、の3種類の動作を示すことができるようになっている。呼吸の動作は、大別すればその3種類に分けられる。このことから、CPU301は、演奏ガイドを行っている間、LED208〜210の何れか一つを点灯させて、行うべき呼吸の動作を指示するようになっている。
【0029】
呼吸の動作を指示(ガイド)することで、ユーザー(演奏者)は、発音させるべき楽音を適切に発音させるように息を吹くだけでなく、そのために必要な息継ぎも適切に行えるようになる。このため、より適切な演奏を容易に行えることとなる。
【0030】
本実施の形態では、運指用LED群304を構成するLEDを、ノートイベントデータが発音、或いは消音を指示する楽音の音高に応じて点灯、或いは消灯させている。それにより、発音させるべき楽音を発音させるべき間だけ発音させられるようにガイドを行っている。そのようにして、ユーザーが更に適切な演奏を行えるようにガイドを行っている。
【0031】
次に、図5〜図12に示す各種フローチャートを参照して、電子管楽器100の動作について詳細に説明する。なお、図5〜図12に示す各種フローチャートに沿った動作は、CPU301が、ROM302に格納されたプログラムを実行することで実現される。
【0032】
図5は、全体処理のフローチャートである。電源スイッチ109が操作されて電源がオンされた電子管楽器100は、その全体処理を実行することでユーザーが運指スイッチ群102、或いはスイッチ群104に対して行った操作に対応して動作する。始めに図5を参照して、その全体処理について詳細に説明する。
【0033】
先ず、ステップ501では、予め定められた状態に設定するイニシャライズを行う。続くステップ502では、スイッチ群104を構成するスイッチ200〜205のなかでユーザーが操作したスイッチに対応するためのスイッチ処理を実行する。その次のステップ503では、運指用LED群304、及びブレス用LED群305を構成するLEDを点灯させて行う演奏ガイドを実現させるためのガイド処理を実行する。その処理の実行後はステップ504に移行する。
【0034】
ステップ504では、運指スイッチ群102を構成する運指スイッチへの操作、或いはその操作の解除に対応するための運指処理を実行する。次に移行するステップ505では、吹き口部101への息の吹き込みに応じて楽音を発音させるためのブレス処理を実行する。その次に移行するステップ506では、MIDI端子106、或いは107を介したMIDIデータの送受信等を実現させるためのその他の処理を実行する。その処理を実行した後に上記ステップ502に戻る。それにより、電源がオンされている間、ステップ502〜506で形成される処理ループを繰り返し実行する。その処理ループを繰り返し実行する結果、電子管楽器100はユーザーが運指スイッチ群102、或いはスイッチ群104に対して行った操作に応じて動作することになる。
【0035】
以降は、上記全体処理内で実行される処理について詳細に説明する。
図6は、上記ステップ502として実行されるスイッチ処理のフローチャートである。次に図6を参照して、そのスイッチ処理について詳細に説明する。
スイッチ処理では、特に図示していないが、CPU301は先ず、スイッチ群104を構成する検出回路に指示して各種スイッチ200〜205の走査を行わせて、それらの現在の状態を走査結果として受け取り、その走査結果を解析して状態が変化したスイッチを特定する。その特定を行った後にステップ601に移行する。
【0036】
ステップ601では、曲選択スイッチ201へのユーザーの操作に対応するための曲選択スイッチ(SW)処理を実行する。続くステップ602では、スタート/ストップスイッチ200へのユーザーの操作に対応するためのスタート/ストップスイッチ(SW)処理を実行する。その後は、それら以外のスイッチへの操作に対応するためのその他のスイッチ(SW)処理を実行する。一連の処理は、その実行後に終了する。
【0037】
上述のスイッチ処理内では、ステップ601、及び602として曲選択スイッチ処理、及びスタート/ストップスイッチ処理がそれぞれ実行される。それらサブルーチン処理については、図7、及び図8に示すそのフローチャートを参照して詳細に説明する。
【0038】
始めに、図7を参照して、上記ステップ601として実行される曲選択スイッチ処理について詳細に説明する。曲選択スイッチ201への操作による演奏ガイドの対象とする曲の選択、即ちその番号の指定は、以下のように、このスイッチ処理を実行することで実現される。
【0039】
先ず、ステップ701では、曲選択スイッチ201が操作(オン)されたか、或いはそれが操作されてから所定時間が経過したか否か判定する。曲選択スイッチ201をユーザーが操作しておらず、且つそれを操作してから所定時間が経過していた場合、判定はNOとなり、ここで一連の処理を終了する。それらのうちの一方が満たされている場合には、即ちスイッチ201をユーザーが操作したか、或いはそれを操作してから所定時間が経過していない場合には、判定はYESとなってステップ702に移行する。
【0040】
ステップ702では、ユーザーが曲選択スイッチ201を操作したのであれば、現在、設定中の曲番号をLCD211に表示させ、その曲番号が割り当てられた演奏データの先頭に位置するデータを指定するアドレス(スタートアドレス)値を変数ADに代入する。そのスイッチ201をユーザーが操作してから所定時間が経過するまでの間であれば、アップスイッチ204、或いはダウンスイッチ205が操作(オン)されたか否か判定して、それらのうちの何れかが操作されたと判定すれば、操作されたと判定したスイッチの種類に応じて曲番号を増減させ、その増減後の曲番号をLCD211に表示させる。変数ADには、増減後の曲番号が割り当てられた演奏データのスタートアドレス値を代入する。そのようなことを行った後、一連の処理を終了する。
【0041】
次に、図8を参照して、図6に示すスイッチ処理内でステップ602として実行されるスタート/ストップスイッチ処理について詳細に説明する。
先ず、ステップ801では、スタート/ストップスイッチ200が操作(オン)されたか否か判定する。そのスイッチ200をユーザーが操作した場合、判定はYESとなってステップ802に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0042】
ステップ802では、演奏ガイドの実行を管理するために用意した変数STFの値を反転、即ちそれまでの値が1であれば0、それまでの値が0であれば1にする。その後に移行するステップ803では、変数STFの反転後の値が0か否か判定する。演奏ガイドは、それに1が代入されている間、行うようになっている。このため、演奏ガイドが行われていない状態でスイッチ200をユーザーが操作した場合、変数STFに代入される値は1になることから、判定はNOとなってステップ804に移行し、変数ADの値で指定される演奏データ中のデータ(その先頭は時間データであるため、そのデータは時間データである。図中「MEM(AD)」と表記)を変数tに代入した後、一連の処理を終了する。そうでない場合には、判定はYESとなってステップ805に移行する。
【0043】
ステップ805への移行は、実行中の演奏ガイドの終了をユーザーが指示したことを意味する。このことから、ステップ805では、音源306に発音中の全て楽音の消音を指示する。それに続くステップ806では、運指用LED群304、及びブレス用LED群305を構成する全てのLEDを消灯させて、演奏ガイドのための表示を停止させる。その後、一連の処理を終了する。
【0044】
図9、及び図10は、図5に示す全体処理内でステップ503として実行されるガイド処理のフローチャートである。次に図9、及び図10を参照して、そのガイド処理について詳細に説明する。この処理は、上述したように、運指用LED群304、及びブレス用LED群305を構成するLEDを点灯させて行う演奏ガイドを実現させるために実行される。
【0045】
先ず、ステップ901では、変数STFの値が1か否か判定する。その値が1でなかった場合、即ち演奏ガイドを行っていない状況であった場合、判定はNOとなり、ここで一連の処理を終了する。そうでない場合には、判定はYESとなってステップ902に移行する。
【0046】
ステップ902では、演奏データを構成する時間データで表される最小の時間(図中では「最小単位時間」と表記)が経過したか否か判定する。演奏ガイドを開始してから、或いは前回、経過したと判定してから最小単位時間が経過していない場合、判定はNOとなり、ここで一連の処理を終了する。そうでない場合には、判定はYESとなってステップ903に移行して、変数tの値をデクリメントした後、ステップ904に移行する。
【0047】
ステップ904では、変数tの値が0か否か判定する。変数tに代入した時間データが付加されたイベントデータを処理すべきタイミングとなった場合、変数tの値は0となることから、判定はYESとなってステップ905に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0048】
ステップ905では、変数ADの値をインクリメントする。続くステップ906では、変数ADの値で指定されるデータのアドレスが演奏データの最後に位置するデータのそれか否か判定する。演奏データの最後に位置するデータのアドレス(最終アドレス)値が変数ADに代入されていた場合、判定はYESとなってステップ910に移行する。そうでない場合には、判定はNOとなり、変数STFに0を代入し(ステップ907)、音源306に発音中の全ての楽音の消音を指示し(ステップ908)、更に運指用LED群304、及びブレス用LED群305を構成する駆動回路に全LEDの消灯をそれぞれ指示して演奏ガイドを停止させた後(ステップ909)、一連の処理を終了する。
【0049】
一方、ステップ910では、変数ADの値で指定される演奏データ中のデータの種類を判定する。そのデータが時間(タイム)データであった場合、その旨が判定されてステップ911に移行して、変数tにそのデータを代入した後、一連の処理を終了する。そのデータがイベントデータであった場合には、その旨が判定されて図10のステップ912に移行する。
【0050】
そのステップ912では、イベントデータの種類を判定する。それがブレスイベントデータであった場合、その旨が判定されてステップ917に移行する。それがノートイベントデータであった場合には、その旨が判定されてステップ913に移行する。
【0051】
ノートイベントデータは、例えばイベントデータの種類を示す識別用データ、及び楽音の音高を示す音高データを少なくとも備えたものである。識別用データは、例えば楽音の発音開始(ノートオン)、及び楽音の消音(ノートオフ)を示すことができるものである。処理すべきタイミングとなったノートイベントデータの処理は、ステップ913〜916で行われる。
【0052】
先ず、ステップ913では、イベントデータ中の音高データを、それが示す音高の楽音を発音させるために操作すべき運指スイッチを示す運指データに変換する。続くステップ914では、イベントデータが示しているのはノートオンか否か判定する。そのイベントデータがノートオンを示していた場合、判定はYESとなり、ステップ915に移行して、運指用LED群304を構成するLEDのなかで運指データに対応する運指スイッチに配置されたLEDを点灯させた後、図9のステップ905に戻る。一方、そうでない場合には、判定はNOとなってステップ916に移行し、運指用LED群304を構成するLEDのなかで運指データに対応する運指スイッチに配置されたLEDを消灯させた後、図9のステップ905に戻る。なお、音高データから運指データへの変換は、例えばそれらの対応関係を定義した変換用テーブルを参照して行われる。その変換用テーブルは、例えばROM302に制御用データとして格納されたものである。
【0053】
ノートイベントデータが処理すべきタイミングとなると、上述したようにして運指用LED群304を構成するLEDを点灯、或いは消灯させる。それにより、ユーザーが操作させるべき運指スイッチ、それを操作しているべき時間をLEDの点灯によりガイドするようになっている。
【0054】
上記ステップ912でイベントデータがブレスイベントデータと判定して移行するステップ917〜925では、処理すべきタイミングとなったブレスイベントデータに従い、ブレス表示部206に配置したLED208〜210を駆動するための処理が行われる。
【0055】
そのブレスイベントデータは、例えばイベントデータの種類を示す識別用データ、及び呼吸の動作を示すブレスデータを少なくとも備えたものである。本実施の形態では、ブレスデータを上位ビット、中位ビット、及び下位ビット(各ビットは1ビット以上のビット数から構成される)に分け、各ビットの値により呼吸の各動作を示すようにしている。上位ビットは息を吸う動作を行うか否か、中位ビットは息を吐く(吹く)か否か、下位ビットは息を止めるか否かを示すために用いている。息を吸う、息を吐く、及び息を止める、という呼吸の各動作は、ビットの値を1にして示している。それらとは反対の動作、即ち息を吸わない、息を吐かない、及び息を止めない、という呼吸の各動作は、ビットの値を0にして示している。
【0056】
先ず、ステップ917では、ブレスデータの上位ビットの値を判定する。そのビットの値が1であった場合、その旨が判定されてステップ918に移行し、発光色が赤のLED208を点灯させた後、ステップ920に移行する。そうでない場合には、即ちそのビットの値が0であった場合には、その旨が判定されてステップ919に移行し、LED208を消灯させた後、そのステップ920に移行する。
【0057】
ステップ920〜922、及びステップ923〜925では、値を判定する対象をブレスデータの中位ビット、及び下位ビットに代えて、上述したステップ917〜919と同様の処理が行われる。図9のステップ905には、ステップ924、或いは925の処理を実行した後に戻る。ステップ920〜922の処理で点灯、或いは消灯させるのは、発光色が青のLED209であり、ステップ923〜925の処理で点灯、或いは消灯させるのは、発光色が白のLED210である。
【0058】
このようにして、処理すべきタイミングとなったブレスイベントデータに従い、ブレス用LED群305を構成するLED208〜210が必要に応じて点灯、或いは消灯される。それにより、演奏者であるユーザーが演奏の進行に応じて行うべき呼吸の動作のガイドが行われる。
【0059】
次に、図11に示すフローチャートを参照して、図5に示す全体処理内でステップ504として実行される運指処理について詳細に説明する。その運指処理は、上述したように、運指スイッチ群102を構成する運指スイッチへの操作、或いはその操作の解除に対応するための処理である。
【0060】
先ず、ステップ1101では、運指スイッチ群102を構成する検出回路に各運指スイッチの状態を検出するための走査を行わせてその走査結果を受け取り、受け取った走査結果を解析することにより、各運指スイッチの状態、及びその状態が変化した運指スイッチを特定する。それらの特定後はステップ1102に移行する。
【0061】
ステップ1102では、状態が変化した運指スイッチが存在するか否か判定し、そのような運指スイッチが存在すると判定すれば、操作された状態の運指スイッチの組み合わせから発音の対象となる楽音の音高を特定する。それに続くステップ1103では、変数NOTEに、特定した音高を示す音高番号を代入する。一連の処理はその後に終了する。
【0062】
変数NOTEに音高番号が代入された楽音は、ユーザーが吹き口部101に息を吹いていた場合に発音させる。そこに息を吹いていなければ発音させない。そのような楽音の発音制御は、図5に示す全体処理内でステップ505としてブレス処理を実行することで行われる。次にそのブレス処理について、図12に示すそのフローチャートを参照して詳細に説明する。
【0063】
吹き口部101に設けられたブレスセンサ308は、そこに吹かれた息の強さ(息の圧力)に応じた電圧の信号を検出回路309に出力する。検出回路309は、その信号をA/D変換し、電圧値に応じた値のデジタルデータ(以降「息圧データ」と呼ぶ)にしてCPU301に出力する。CPU301は、その息圧データから吹き口部101に息が吹かれているか否か、息が吹かれていればその強さを判定する。
【0064】
先ず、ステップ1201では、検出回路309に指示して、ブレスセンサ308による吹き口部101に吹かれた息の強さの検出を行わせ、その検出結果として息圧データを取得する。続くステップ1202では、その息圧データが示す息の強さ(息の圧力)が予め固定的に定めた一定レベルを越えているか否か判定する。その息の強さがそのレベルを越えていた場合、判定はYESとなってステップ1203に移行し、変数NOTEに代入されている音高番号の楽音の発音を指示するコマンドを生成(作成)して音源306に送出する。息の強さがそのレベルを新たに越えたのではなく、そのレベルを越えている間に変数NOTEの値が変化したのであれば、つまり息を吹いている状態でユーザーが操作を解除、或いは新たに操作した運指スイッチが存在するのであれば、それまで変数NOTEに代入されていた音高番号の楽音の消音を指示するコマンドを生成して併せて音源306に送出する。一連の処理はその後に終了する。一方、そうでない場合には、判定はNOとなってステップ1204に移行し、変数NOTEに代入されている音高番号の楽音の消音を指示するコマンドを生成(作成)して音源306に送出した後に一連の処理を終了する。
<第2の実施の形態>
上記第1の実施の形態では、息を吸う、及び息を吐くという動作をガイドしている。しかし、息を吸う、息を吐く動作は、それを様々な程度(レベル)で行うことができる。第2の実施の形態は、このようなことから、そのような動作を行うレベルを含めてその動作をガイドできるようにしたものである。
【0065】
第2の実施の形態における管楽器の構成は、その殆どは第1の実施の形態におけるそれと基本的に同じである。動作も大部分は同じである。このことから、第1の実施の形態の説明で付した符号をそのまま用いて、第1の実施の形態から異なる部分についてのみ説明することとする。
【0066】
図13は、第2の実施の形態で扱う演奏データの構成を示す図である。
第2の実施の形態では、図13に示すように、ブレスイベントデータを構成する識別用データとして、呼吸の動作の種類を示す識別用データを用い、その識別用データが種類を示す呼吸の動作を行うべき程度を示すレベルデータをブレスデータの代わりとして用いる演奏データをROM302に格納している。それにより、呼吸の動作のガイドは、息を吹くべき強さ、或いは息を吸うべき量を指示することで行うようにしている。識別用データ、及びレベルデータは、アドレスを異ならせて格納している。
【0067】
それらの強さの通知は、LED208、209を点灯させる明るさにより行っている。息を止める動作は、通知の対象としていない。このため、第2の実施の形態では、ブレス表示部106にLED208、及び209の2個だけを配置させている(図2参照)。
【0068】
LED208、及び209だけを配置させることにより、図5に示す全体処理では、ステップ503として実行されるガイド処理が第1の実施の形態から異なっている。以下、ガイド処理において第1の実施の形態から異なる部分を説明する。
【0069】
図9、及び図10に示すガイド処理のフローチャートにおいて、図9のステップ901〜図10のステップ916は第1の実施の形態と共通であり、第2の実施の形態では図10のステップ917以降の処理、つまり、図10のステップ912でイベントデータがブレスイベントデータと判定した後に実行する処理が第1の実施の形態から異なっている。このことから、図14に示すフローチャートを参照して、その異なっている部分についてのみ説明する。その図14では、第1の実施の形態から処理内容が基本的に変化していない処理には同一の符号を付している。
【0070】
ステップ912でイベントデータがブレスイベントデータと判定した場合に移行するステップ1401では、その識別用データが示す呼吸の動作が息を吸うことであるか否か判定する。その識別用データが息を吸う動作を示していた場合、判定はYESとなってステップ1402に移行する。そうでない場合には、判定はNOとなってステップ1407に移行する。
【0071】
ステップ1402では、変数ADの値をインクリメントする。続くステップ1403では、変数ADの値で指定される演奏データ中のデータ(ここではレベルデータとなる。図中「MEM(AD)」と表記)を変数LEVELに代入する。その代入後は、ステップ1404に移行して、変数LEVELの値が0か否か判定する。変数LEVELに代入したレベルデータの値が0であった場合、判定はYESとなり、ステップ1405に移行して、発光色が赤のLED208を消灯させた後、図9のステップ905に戻る。そうでない場合には、判定はNOとなってステップ1406に移行し、LED208を変数LEVELの値に応じた明るさで発光させ、発光色が青のLED209が点灯中であればそれを消灯させた後、図9のステップ905に戻る。
【0072】
このように、本実施の形態では、識別用データが息を吸う動作を示していても、それに続くレベルデータの値が0であれば息を吸う動作をガイドすべきでないと見なしている。つまり、その値の0は息を吸う動作をガイドしないことを示すことに用いることができるようにしている。
【0073】
上記ステップ1401の判定がNOとなって移行するステップ1407〜1411では、識別用データが息を吹く動作を示すブレスイベントデータを対象に、上述のステップ1402〜1406と同様の処理が行われる。点灯、或いは消灯の対象となるのは、発光色が青のLED209である。ステップ1410、或いは1410の処理を実行した後に図9のステップ905に戻る。
【0074】
レベルデータの値に応じた明るさでLED208、或いは209を点灯させた場合、ユーザーはその明るさから息を吹くべき強さ、或いは息を吸うべき量を認識することができる。息を吹くべき強さを認識することで、発音させるべき楽音はより適切な音量で発音させることができるようになる。息を吸うべき量を認識すると、それ以降に続く演奏で楽音を適切な音量で発音させられるように備える(息継ぎする)ことができるようになる。これらのことから結果的に、第1の実施の形態と比較して、発音させるべき楽音をより適切な音量で発音させられるようになる。
【0075】
なお、第2の実施の形態では、LED208、或いは209を点灯される明るさを変化させることにより、呼吸の動作を行うべき程度をガイドしているが、そのガイドは明るさを変化させずに行うようにしても良い。例えば図15(a)に示すように、複数のLED、或いはLCDでメータ1501を構成させ、そのメータ1501上で息を吹くべき強さ、及び息を吸うべき量を示すようにしても良い。それらは、例えば図15(b)に示すように、入力するアナログ信号の強弱によって針1503が動作するメータ1502により示すようにしても良い。息を吹くべき強さ、息を吸うべき量をそれぞれ別のメータで示すようにしても良い。これらのことから明らかなように、それらの表示方法は様々な変形を行うことができる。
<第3の実施の形態>
上記第1、及び第2の実施の形態では、演奏データに従って演奏ガイドを行っている。しかし、ユーザーが演奏データに沿う形で演奏を行えるとは限らない。このことから、第3の実施の形態は、ユーザーの演奏の進行に合わせる形で演奏ガイドを行えるようにしたものである。ユーザーの演奏の進行に合わせることにより、そのユーザーにとってより適切な形で演奏ガイドを行えることになる。
【0076】
第3の実施の形態における管楽器の構成は、その殆どは第1の実施の形態におけるそれと基本的に同じである。動作も大部分は同じである。このことから、第2の実施の形態と同様に、第1の実施の形態の説明で付した符号をそのまま用いて、第1の実施の形態から異なる部分についてのみ説明することとする。
【0077】
管楽器では、息を吹かなければ楽音が発音されないために演奏は進行しない。第3の実施の形態では、そのことに注目して、息を吹くべきタイミングとなると、実際に息が吹かれるまで待つようにして、ユーザーの行う演奏の進行に合わせた演奏ガイドを行うようにしている。
【0078】
そのように演奏ガイドを行うために、図5に示す全体処理内でステップ503として実行されるガイド処理、及びステップ505として実行されるブレス処理が第1の実施の形態から異なっている。以降、第3の実施の形態で実行されるガイド処理、及びブレス処理について、図16〜図18に示すフローチャートを参照して詳細に説明する。
【0079】
図16、及び図17は、第3の実施の形態におけるガイド処理のフローチャートである。始めに図16、及び図17を参照して、そのガイド処理について詳細に説明する。
図16、及び図17において、第1の実施の形態から異なっていない、或いは基本的に処理内容が変化していないステップの処理には第1の実施の形態と同一の符号を付している。第3の実施の形態におけるガイド処理は、第1の実施の形態から異なる部分についてのみ説明する。
【0080】
第3の実施の形態では、図16に示すように、変数STFに1が代入されていることによってステップ901の判定がYESとなると、次にステップ1601で変数TAIKIFの値が0か否か判定して、その判定がYESとなればステップ902に移行し、その判定がNOとなればそこで一連の処理を終了するようになっている。
【0081】
その変数TAIKIFは、ユーザーが吹く息の強さが一定レベルを越えているか否か判定するために用意した変数であり、0、或いは1が値として代入される。それにより、第3の実施の形態では、変数TAIKIFの値が0でなければ変数tの値のデクリメントを行わないことにより、演奏データの処理を進行させないようにしている。図16に示す他のステップの処理の内容は基本的に第1の実施の形態と同じであるため、説明は省略する。
【0082】
息を吹く動作のガイドは、上述したように、発光色が青のLED209を点灯させることで行っている。第3の実施の形態では、図17に示すように、そのLED209を点灯させるステップ921の処理を実行すると、次にステップ1602で変数TAIKIFに1を代入し、その後にステップ923に移行するようにさせている。図17に示す他のステップの処理の内容は基本的に第1の実施の形態と同じであるため、説明は省略する。
【0083】
次に、図18に示すフローチャートを参照して、第3の実施の形態におけるブレス処理について詳細に説明する。その図18では、図16、及び図18と同様に、第1の実施の形態から異なっていない、或いは基本的に処理内容が変化していないステップの処理には第1の実施の形態と同一の符号を付している。
【0084】
第3の実施の形態では、図18に示すように、ステップ1203の処理が終了すると、次にステップ1801で変数TAIKIFに0を代入し、その代入後に一連の処理を終了するようになっている。それにより、ユーザーが一定レベル以上の強さで息を吹いていれば変数TAIKIFには常に0が代入されるようにしている。図18に示す他のステップの処理の内容は基本的に第1の実施の形態と同じであるため、説明は省略する。
【0085】
図16、及び図17に示すガイド処理を実行することにより、変数TAIKIFには息を吹き始めるべきタイミングで1が代入されると、演奏データの処理が進行しない状態となる。しかし、ユーザーが一定レベル以上の強さで息を吹き始めるか、或いはそのように息を吹いていれば変数TAIKIFには0が代入されるため、演奏データの処理(演奏ガイド)を進行させる状態に復帰する。第3の実施の形態では、そのようにして、ユーザーが一定レベル以上の強さで息を吹いていることを条件に演奏データの処理を進行させるようにしている。それにより、ユーザーの演奏の進行に合わせて演奏ガイドを進行させている。
<第4の実施の形態>
上記第1〜第3の実施の形態では、既存の演奏データを処理して、呼吸の動作の指示を含む演奏ガイドを行っている。これに対し、第4の実施の形態は、そのような演奏ガイドを行うための演奏データを自動的に生成できるようにしたものである。つまり、本実施の形態による演奏ガイドデータ生成装置を搭載したものである。
【0086】
第4の実施の形態における管楽器の構成は、その殆どは第1の実施の形態におけるそれと基本的に同じである。動作も大部分は同じである。このことから、第2、及び第3の実施の形態と同様に、第1の実施の形態の説明で付した符号をそのまま用いて、第1の実施の形態から異なる部分についてのみ説明することとする。
【0087】
管楽器では、楽音を発音させるために息を吹かなければならない。その息を吹き続ける能力には個人差がある。このことから、第4の実施の形態では、演奏を行うユーザーが適切な形で息継ぎができるように、その演奏の内容を示す演奏データを参照し、その能力を考慮して演奏ガイド用の演奏データを生成するようにしている。以降、それらの演奏データを区別するために、演奏ガイド用の演奏データの生成のために参照する演奏データは便宜的に「元演奏データ」と呼ぶことにする。
【0088】
息を吹き続ける能力を示すパラメータとして、本実施の形態では肺活量に注目している。その肺活量は、ユーザーに入力させても良いが、息を吹く強さを検出できるブレスセンサ308を備えていることから、そのブレスセンサ308を用いて肺活量を検出するようにしている。その肺活量を検出、言い換えればそのデータの入力をユーザーが指示できるように、スイッチ群104を構成するスイッチとして、肺活量入力スイッチが更に設けられている。そのスイッチの他には、演奏ガイド用の演奏データの生成を指示できるように、ブレスデータ生成スイッチが設けられている。それらのスイッチは、例えばダウンスイッチ205の近傍に配置させている。
【0089】
図19は、演奏ガイド用の演奏データの生成のために参照される元演奏データの構成を示す図である。
図19に示すように、元演奏データは、基本的に図4に示す演奏データからブレスイベントデータを省いたものである。ノートイベントデータとして、ノートオンを示すもの、及びノートオフを示すものが存在している。
【0090】
第4の実施の形態では、元演奏データから演奏データを生成できることから、ROM302には演奏データではなく、元演奏データを格納させている。生成した演奏データは曲番号を割り当ててRAM303に格納して、それを消去しない間、曲選択スイッチ201を操作した後のアップスイッチ204、或いはダウンスイッチ205への操作により選択できるようにさせている。当然のことながら、外部から入力される元演奏データを対象に演奏データを生成するようにしても良い。
【0091】
そのように演奏ガイドを自動的に生成できる第4の実施の形態では、図5に示す全体処理内でステップ502として実行されるスイッチ処理が第1の実施の形態から異なっている。以降、第4の実施の形態で実行されるスイッチ処理、及びその処理内で実行されるサブルーチン処理について、図20〜図22に示すフローチャートを参照して詳細に説明する。
【0092】
図20は、第4の実施の形態におけるスイッチ処理のフローチャートである。始めに図20を参照して、そのスイッチ処理について詳細に説明する。
新たに生成した演奏データを用いた演奏ガイドも行えることから、選択の対象となる演奏データは第1の実施の形態とは異なっている。しかし、その選択の仕方や、演奏データの選択を変更した際の動作は基本的に同じである。このことは、スイッチ処理内で実行されるスタート/ストップスイッチ処理、全体処理内で実行されるガイド処理においても同様である。このようなことから、図20では曲選択スイッチ処理、及びスタート/ストップスイッチ処理に第1の実施の形態のときと同一の符号を付している。ガイド処理を含めてそれらの処理についての詳細な説明は省略する。
【0093】
第4の実施の形態では、図20に示すように、ステップ602のスタート/ストップスイッチ処理を実行すると、ステップ2001で肺活量入力スイッチへの操作に対応するための肺活量入力スイッチ(SW)処理を実行し、更にステップ2002でブレスデータ生成スイッチへの操作に対応するためのブレスデータ生成スイッチ(SW)処理を実行した後、ステップ603に移行するようになっている。以下、それらサブルーチン処理について説明する。
【0094】
図21は、ステップ2001として実行される肺活量入力スイッチ処理のフローチャートである。スイッチ処理内で実行されるサブルーチン処理では、始めに図21を参照して、その肺活量入力スイッチ処理について詳細に説明する。
先ず、ステップ2101では、肺活量入力スイッチが操作(オン)されたか否か判定する。そのスイッチをユーザーが操作した場合、判定はYESとなってステップ2102に移行し、そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0095】
ステップ2101では、例えば検出回路309に指示して、ブレスセンサ308による吹き口部101に吹かれた息の強さの検出を行わせて、その検出結果として入力する息圧データを監視することにより、吹く息の強さが所定のレベル以上となってからそれ以下となるまでの間で検出された息の強さを基に肺活量を算出し、算出した肺活量に対応する時間を示す値を変数CCに代入する。一連の処理は、その代入後に終了する。
【0096】
上記肺活量の算出は、より具体的には、例えばその間の先頭から、その間に検出された息の強さが変化する度に、その息の強さに対応する空気の流量にそれが検出された時間を掛けて息の強さで分けた肺活量(以降「部分肺活量」と呼ぶ)を算出し、算出した部分肺活量の累算値を求めることで行われる。息の強さに対応する空気の流量は、例えばそれらの間の対応関係を定義したテーブル(制御用データ)を参照して決定する。当然のことながら、肺活量の算出は別の方法で行っても良い。息を吹き続ける能力は、肺活量ではなく、予め定めたレベル以上の強さで息を吹き続けられる時間、吹く息の強さの最大値、などを基に決定するようにしても良い。
【0097】
図22は、上記ステップ2002として実行されるブレスデータ生成スイッチ処理のフローチャートである。次に図22を参照して、そのスイッチ処理について詳細に説明する。
呼吸の動作ガイド用の演奏データは、呼吸の動作を示すブレスイベントデータを生成して元演奏データ中に挿入することで生成するようにしている。このため、演奏データの構成は、第1の実施の形態におけるそれと基本的に同じである(図4参照)。
【0098】
呼吸の動作を示すブレスイベントデータとしては、息を吸う(息継ぎ)動作を示すものだけを生成している。そのイベントデータの挿入位置は、元演奏データに従って息を吹いた場合に、息を吹けなくなる(発音させられなくなる)と予想される楽音の発音を指示するノートイベントデータより前としている。それにより、発音させるべき楽音を全て発音させられるように、息継ぎをガイドできるようにさせている。変数CCに肺活量を示す値を代入したのは、息を吹けなくなると予想される楽音の位置を正確に予想して、ユーザーにとって適切なタイミングで息継ぎをガイドするためである。
【0099】
先ず、ステップ2201では、ブレスデータ生成スイッチが操作(オン)されたか否か判定する。そのスイッチをユーザーが操作した場合、判定はYESとなってステップ2202に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0100】
ステップ2202では、現在、選択されている元演奏データをRAM303に確保したエリアにコピーし、コピーした元演奏データのスタートアドレス値を変数ADに代入する。次のステップ2203では、元演奏データ中で楽音の発音を指示している時間の計算用の変数Sに0を代入する。その後はステップ2204に移行して、変数ADの値で指定される演奏データ中のデータの種類を判定する。そのデータが時間(タイム)データであった場合、その旨が判定されてステップ2209に移行し、それがノートオフを示すノートイベントデータであった場合には、その旨が判定されてステップ2208に移行する。それがノートオンを示すノートイベントデータであった場合には、その旨が判定されてステップ2205に移行する。
【0101】
ステップ2205では、変数CFに、元演奏データ中で楽音の発音が指示されている状況であることを示す値の1を代入する。次のステップ2206では、変数ADの値をインクリメントする。その次に移行するステップ2207では、変数ADの値が元演奏データの最終アドレス値より大きいか否か判定する。その値が最終アドレス値よりも大きい場合、即ちコピーした元演奏データ中にブレスイベントデータを挿入する形で行う演奏データの生成が完了した場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2204に戻る。
【0102】
変数ADの値で指定される演奏データ中のデータがノートオフを示すノートイベントデータとステップ2204で判定した場合に移行するステップ2208では、変数CFに、元演奏データ中で楽音の発音が指示されている状況でないことを示す値の0を代入する。その後は上記ステップ2206に移行する。
【0103】
変数ADの値で指定される演奏データ中のデータが時間(タイム)データとステップ2204で判定した場合に移行するステップ2209では、変数CFの値が1か否か判定する。それに1が代入されていた場合、判定はYESとなり、ステップ2210に移行して、変数Sに、それまでの値にその時間データを加算した値を新たに代入する。その後はステップ2211に移行する。そうでない場合には、判定はNOとなり、他のステップの処理を実行することなく、そのステップ2211に移行する。
【0104】
演奏データの生成は、変数ADの値を順次、インクリメントしながら、その値で指定されるデータを処理していくことで行われる。このため、上記変数Sに新たに代入した値は、それに0を代入してから処理した時間データの累算値、つまり元演奏データ中で楽音の発音を指示している総時間を示す値となる。その値と比較するために、変数CCに代入した値(肺活量)は、それに対応する時間を示す値に変換して参照している。その変換は、例えば制御用データとして用意した、肺活量と息を吹き続けられる時間の対応関係を定義したテーブルを参照して行っている。
【0105】
ステップ2211では、変数Sの値が変数CCの値を変換して得た値より大きいか否か判定する。変数Sの値がその変換により得た値以下であった場合、判定はNOとなり、ユーザーは次の楽音を発音させられるとして上記ステップ2206に移行する。そうでない場合には、判定はYESとなってステップ2212に移行する。
【0106】
ステップ2212では、変数ADの値をデクリメントする。続くステップ2213では、変数ADの値で指定されるデータがノートオンを示すイベントデータか否か判定する。そのイベントデータがノートオンを示すものであった場合、判定はYESとなってステップ2214に移行し、そのイベントデータの前に位置する時間データの前に、その時間データを参照して生成した時間データ、及び息を吸う動作を示すブレスイベントデータを挿入する。時間データの挿入に合わせて、ノートオンを示すイベントデータの前に位置する時間データは、そのイベントデータを処理するタイミングが変化しないように変更する。そのようなことを行った後、上記ステップ2203に戻る。一方、そうでない場合には、判定はNOとなってステップ2212に戻る。それにより、ステップ2213の判定がYESとなるまで、つまりノートオンを示すイベントデータのアドレスを特定するまで、ステップ2212及び2213で形成される処理ループを繰り返し実行する。
【0107】
このようにして、本実施の形態では、ユーザーの息を吹き続けられる能力(ここでは肺活量)に応じて、息継ぎを指示するためのブレスイベントデータを元演奏データ中に挿入すべき位置を特定して挿入している。それにより、発音させるべき楽音を発音させるためのブレス操作(息を吹く動作)を確実に行えるように息継ぎをガイドするようにさせている。
<第5の実施の形態>
上記第4の実施の形態では、楽音の発音を指示している時間に着目して、息継ぎ動作を指示するためのブレスイベントデータを元演奏データ中に挿入している。しかし、息を吹き続けられる時間は、その息を吹く強さによっても変化する。このようなことから、第5の実施の形態は、その時間の他に、楽音を発音させるべき音量(ベロシティ)にも着目するようにしたものである。その音量に着目することにより、第4の実施の形態と比較して、より適切なタイミングで息継ぎ動作をガイドする演奏データを生成することができる。
【0108】
第5の実施の形態における管楽器の構成は、第4の実施の形態と同様に、その殆どは第1の実施の形態におけるそれと基本的に同じである。動作は大部分は第4の実施の形態と同じである。このことから、第1の実施の形態の説明で付した符号をそのまま用いて、第4の実施の形態から異なる部分についてのみ説明することとする。
【0109】
図23は、演奏ガイド用の演奏データの生成のために参照される元演奏データの構成を示す図である。図23に示すように、ノートオンを示すノートイベントデータは、イベントの内容がノートオンであることを示す識別用データの他に、楽音の音量を示すベロシティデータを備えている。そのベロシティデータは、識別用データとは別のアドレスに格納されている。
【0110】
第5の実施の形態では、演奏ガイド用の演奏データの生成にベロシティデータを着目しているために、図20に示すスイッチ処理内でステップ2002として実行されるブレスデータ生成スイッチ処理が第4の実施の形態から異なっている。このことから、第5の実施の形態におけるそのスイッチ処理について、図24、及び図25に示すフローチャートを参照して詳細に説明する。
【0111】
先ず、ステップ2401では、ブレスデータ生成スイッチが操作(オン)されたか否か判定する。そのスイッチをユーザーが操作した場合、判定はYESとなってステップ2402に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0112】
ステップ2402では、現在、選択されている元演奏データをRAM303に確保したエリアにコピーし、コピーした元演奏データのスタートアドレス値を変数ADに代入する。次のステップ2403では、変数Sに0を代入する。その後はステップ2404に移行して、変数ADの値で指定される演奏データ中のデータがノートオンを示す識別用データか否か判定する。そのデータがノートオンを示すノートイベントデータを構成する識別用データでなかった場合、判定はNOとなってステップ2408に移行する。そうでない場合には、判定はYESとなってステップ2405に移行する。
【0113】
ステップ2405では、変数CFに1を代入する。次のステップ2406では、変数ADの値をインクリメントする。その次に移行するステップ2407では、変数ADの値が元演奏データの最終アドレス値より大きいか否か判定する。その値が最終アドレス値よりも大きい場合、即ちコピーした元演奏データ中にブレスイベントデータを挿入する形で行う演奏データの生成が完了した場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2404に戻る。
【0114】
一方、ステップ2408では、変数ADの値で指定される演奏データ中のデータがノートオフを示す識別用データか否か判定する。そのデータがノートオフを示すノートイベントデータを構成する識別用データでなかった場合、判定はNOとなって図25のステップ2410に移行する。そうでない場合には、判定はYESとなり、次にステップ2409で変数CFに0を代入した後、上記ステップ2406に移行する。
【0115】
図25のステップ2410では、変数ADの値で指定される演奏データ中のデータがベロシティデータか否か判定する。そのデータがベロシティデータでなかった場合、判定はNOとなってステップ2413に移行する。そうでない場合には、判定はYESとなってステップ2411に移行する。
【0116】
ステップ2411では、変数CFの値が1か否か判定する。その値が1、つまりそのベロシティデータがノートオンを示すノートイベントデータを構成するものであった場合、判定はYESとなり、次にステップ2412で変数VELに、そのベロシティデータに対応する値を代入した後、図24のステップ2406に移行する。そうでない場合には、判定はNOとなり、次にそのステップ2406の処理を実行する。
【0117】
ベロシティデータに対応する値とは、例えばそのデータに従って楽音を発音させるために吹くべき息の流量を、基準とするベロシティで楽音を発音させる場合のそれで割って得られる値である。その値は、ベロシティとその値の対応関係を定義したテーブルを参照して決定する。そのような値を変数VELに代入するのは、楽音を発音させるべき期間を、その楽音を発音させるべき音量に応じて評価するためである。
【0118】
ステップ2413では、変数ADの値で指定される演奏データ中のデータが時間(タイム)データか否か判定する。そのデータが時間データでなかった場合、判定はNOとなって図24のステップ2406に移行する。そうでない場合には、判定はYESとなってステップ2414に移行する。
【0119】
ステップ2414では、変数CFの値が1か否か判定する。その値が1、つまり時間データがノートオフを示すノートイベントデータ、或いはそのイベントデータよりも前に位置するイベントデータの前に位置するものであった場合、判定はYESとなり、次にステップ2415に移行して、変数Sに、変数VELの値にその時間データを掛けて求めた値をそれまでの値に加算した値を新たに代入した後、ステップ2416に移行する。そうでない場合には、判定はNOとなって図24のステップ2406に移行する。
【0120】
上記したように、変数VELには、ベロシティデータに対応する息を吹くべき強さ(流量)を比で表した値が代入されている。このため、その値を時間データに掛けて求めた値は、息を吹き続ける能力の面から、ベロシティデータを考慮して時間データを評価したものとなる。
【0121】
ステップ2416では、変数Sの値が変数CCの値を変換して得た値より大きいか否か判定する。変数Sの値がその変換により得た値以下であった場合、判定はNOとなり、ユーザーは次の楽音を発音させられるとして図24のステップ2406に移行する。そうでない場合には、判定はYESとなってステップ2417に移行する。
【0122】
ステップ2417では、変数ADの値をデクリメントする。続くステップ2418では、変数ADの値で指定されるデータがノートオンを示す識別用データか否か判定する。そのデータがノートオンを示す識別用データであった場合、判定はYESとなってステップ2419に移行し、その識別用データの前に位置する時間データの前に、その時間データを参照して生成した時間データ、及び息を吸う動作を示すブレスイベントデータを挿入する。時間データの挿入に合わせて、ノートオンを示す識別用データの前に位置する時間データは、その識別用データを処理するタイミングが変化しないように変更する。そのようなことを行った後、図24のステップ2203に戻る。一方、そうでない場合には、判定はNOとなってステップ2417に戻る。それにより、ステップ2418の判定がYESとなるまで、つまりノートオンを示す識別用データのアドレスを特定するまで、ステップ2417及び2418で形成される処理ループを繰り返し実行する。
【0123】
このようにして、第5の実施の形態では、楽音を発音させるためにユーザーが息を吹かなければならない強さを考慮して、息継ぎを指示するためのブレスイベントデータを元演奏データ中に挿入すべき位置を特定して挿入している。それにより、発音させるべき楽音を発音させるためのブレス操作(息を吹く動作)を更に確実に行えるように息継ぎをガイドするようにさせている。
【0124】
なお、第4、及び第5の実施の形態では、単に息を吸う動作を示すブレスイベントデータを元演奏データ中に挿入しているが、その動作をガイドする時点でのユーザーの状況を予想し、その予想される状況を基に息を吸うべき量を特定して、その量を併せて示すブレスイベントデータを生成し元演奏データ中に挿入するようにしても良い。
【0125】
演奏中に行うべき呼吸の動作をガイドするための演奏データ(演奏ガイドデータ)は、ブレスイベントデータと併せて時間データを元演奏データ中に挿入することで生成しているが、必ずしもそのように生成する必要はない。イベントデータとしてブレスイベントデータのみを用いて演奏データを生成しても良い。そのように生成された演奏データを用いて、演奏中に行うべき呼吸の動作だけをガイドするようにしても良い。
【0126】
演奏ガイド装置、及び演奏ガイドデータ生成装置は、電子管楽器100に搭載されているが、それらは電子管楽器100に搭載させなくとも良い。電子管楽器100とは別の装置として実現させても良い。ガイドは、LED208〜210などの表示素子により行うのではなく、LCD、或いはCRTなどの画面上で行うようにしても良い。このことから明らかなように、ガイドには様々な表示装置を採用することができる。
【0127】
上述したような電子管楽器(演奏ガイド装置、演奏ガイドデータ生成装置)100の動作、或いはその変形例の動作を実現させるようなプログラムは、CD−ROM、DVD、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置を用いて本発明を適用させた演奏ガイド装置、或いは演奏ガイドデータ生成装置を実現させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【0129】
【発明の効果】
以上、説明したように本発明は、管楽器で行う演奏の内容を示す演奏データを参照してその演奏データが示す演奏を行う場合に、管楽器で演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得するとともに、この能力データに基づいて演奏者が息を吸うべきタイミングを少なくとも特定し、その特定したタイミング毎に、そのタイミングを示す時間データ、及び息を吸うことを示すイベントデータを生成することにより、演奏ガイドデータを生成する。その演奏ガイドデータを生成することにより、演奏ガイド装置は演奏者が演奏中に行うべき呼吸の動作のガイドを行うことができる。
【図面の簡単な説明】
【図1】第1の実施の形態による演奏ガイド装置を搭載した電子管楽器の外観を示す図である。
【図2】スイッチ群、及び表示部を示す図である。
【図3】第1の実施の形態による演奏ガイド装置を搭載した電子管楽器の回路構成図である。
【図4】演奏データの構成を示す図である。
【図5】全体処理のフローチャートである。
【図6】スイッチ処理のフローチャートである。
【図7】曲選択スイッチ処理のフローチャートである。
【図8】スタート/ストップスイッチ処理のフローチャートである。
【図9】ガイド処理のフローチャートである。
【図10】ガイド処理のフローチャートである(続き)。
【図11】運指処理のフローチャートである。
【図12】ブレス処理のフローチャートである。
【図13】演奏データの構成を示す図である(第2の実施の形態)。
【図14】ガイド処理のフローチャートである(第2の実施の形態:抜粋)。
【図15】呼吸の動作を行うべき程度の他の表示方法を説明する図である。
【図16】ガイド処理のフローチャートである(第3の実施の形態)。
【図17】ガイド処理のフローチャートである(第3の実施の形態:続き)。
【図18】ブレス処理のフローチャートである(第3の実施の形態)。
【図19】演奏ガイド用の演奏データの生成のために参照される演奏データの構成を示す図である。
【図20】スイッチ処理のフローチャートである(第4の実施の形態)。
【図21】肺活量入力スイッチ処理のフローチャートである。
【図22】ブレスデータ生成スイッチ処理のフローチャートである。
【図23】演奏ガイド用の演奏データの生成のために参照される演奏データの構成を閉めず図である(第5の実施の形態)。
【図24】ブレスデータ生成スイッチ処理のフローチャートである(第5の実施の形態)。
【図25】ブレスデータ生成スイッチ処理のフローチャートである(第5の実施の形態:続き)。
【符号の説明】
100 電子管楽器
101 吹き口部
102 運指スイッチ群
104 スイッチ群
105 表示部
208〜210 LED
301 CPU
302 ROM
303 RAM
304 運指用LED群
305 ブレス用LED群
308 ブレスセンサ
309 検出回路
Claims (5)
- 管楽器の演奏中に行うべき呼吸の動作をガイドするための演奏ガイドデータを生成する装置であって、
前記管楽器で演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得する能力データ取得手段と、
前記管楽器で行うべき演奏の内容を示すイベントデータ及び当該演奏を行うべきタイミングを示す時間データからなる演奏データを記憶する記憶手段と、
この記憶手段からイベントデータを順次読み出す読み出し手段と、
前記読み出し手段により読み出されたイベントデータ及び前記能力データ取得手段により取得した能力データを参照して、該イベントデータが示す演奏を行う場合に演奏者が息を吸うべきタイミングを特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成し、当該生成されたイベントデータ及び時間データを、前記記憶手段に記憶された演奏データ内に挿入することにより演奏ガイドデータを生成する演奏ガイドデータ生成手段と、
を具備することを特徴とする演奏ガイドデータ生成装置。 - 前記能力データ取得手段は、外部より肺活量を入力する肺活量入力手段と、この肺活量入力手段により入力された肺活量に基づいて息を吹き続けられる時間データを出力するテーブル手段と、からなる請求項1記載の演奏ガイドデータ生成装置。
- 前記演奏ガイドデータ生成手段は、
前記読み出し手段により発音の開始を示すイベントデータが読み出されたことを検出する発音開始検出手段と、
この発音開始検出手段により開始が検出された発音が継続する時間を算出する発音時間算出手段と、
この算出された時間が前記テーブル手段から出力された時間データが示す時間を越えたか否かを検出する検出手段と、
を有し、この検出手段により超えたことが検出された場合に、発音開始検出手段により検出されたイベントデータが前記記憶手段から読み出される直前のタイミングを、演奏者が息を吸うべきタイミングとして特定する請求項2記載の演奏ガイドデータ生成装置。 - 前記演奏データは、更にイベントデータはベロシテイデータを含み、前記発音時間算出手段は、当該ベロシテイデータに基づいて算出される発音が継続する時間を変更する請求項3記載の演奏ガイドデータ生成装置。
- 管楽器の演奏中に行うべき呼吸の動作を示す演奏ガイドデータを生成するためにデータ処理装置に実行させるプログラムであって、
前記管楽器で演奏を行う演奏者が息を吹き続ける能力を示す能力データを取得する能力データ取得ステップと、
前記管楽器で行うべき演奏の内容を示すイベントデータ及び当該演奏を行うべきタイミングを示す時間データからなる演奏データを記憶する記憶手段からイベントデータを順次読み出す読み出しステップと、
読み出されたイベントデータ及び取得された能力データを参照して、該イベントデータが示す演奏を行う場合に演奏者が息を吸うべきタイミングを特定し、該特定したタイミング毎に、該タイミングを示す時間データ、及び該息を吸うことを示すイベントデータを生成し、当該生成されたイベントデータ及び時間データを、前記記憶手段に記憶された演奏データ内に挿入することにより演奏ガイドデータを生成する演奏ガイドデータ生成ステップと、
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002272218A JP3912238B2 (ja) | 2002-09-18 | 2002-09-18 | 演奏ガイドデータ生成装置、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002272218A JP3912238B2 (ja) | 2002-09-18 | 2002-09-18 | 演奏ガイドデータ生成装置、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004109508A JP2004109508A (ja) | 2004-04-08 |
JP3912238B2 true JP3912238B2 (ja) | 2007-05-09 |
Family
ID=32269302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002272218A Expired - Fee Related JP3912238B2 (ja) | 2002-09-18 | 2002-09-18 | 演奏ガイドデータ生成装置、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3912238B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6064713B2 (ja) * | 2013-03-19 | 2017-01-25 | ヤマハ株式会社 | 信号出力装置 |
US10360884B2 (en) * | 2017-03-15 | 2019-07-23 | Casio Computer Co., Ltd. | Electronic wind instrument, method of controlling electronic wind instrument, and storage medium storing program for electronic wind instrument |
JP6816581B2 (ja) * | 2017-03-15 | 2021-01-20 | カシオ計算機株式会社 | 電子管楽器、その電子管楽器の制御方法及びその電子管楽器用のプログラム |
-
2002
- 2002-09-18 JP JP2002272218A patent/JP3912238B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004109508A (ja) | 2004-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1465150B1 (en) | Apparatus and method for practicing musical instrument | |
US7605322B2 (en) | Apparatus for automatically starting add-on progression to run with inputted music, and computer program therefor | |
CN108630177B (zh) | 电子乐器、电子乐器的控制方法、以及记录介质 | |
US8502057B2 (en) | Electronic musical instrument | |
JP5040927B2 (ja) | 演奏教習装置及びプログラム | |
JPH0448234B2 (ja) | ||
JP3912238B2 (ja) | 演奏ガイドデータ生成装置、及びプログラム | |
US7838754B2 (en) | Performance system, controller used therefor, and program | |
WO2023058173A1 (ja) | 音制御装置およびその制御方法、電子楽器、プログラム | |
JPH0744162A (ja) | 伴奏装置 | |
KR200255782Y1 (ko) | 악기 연주연습이 가능한 영상가요 반주장치 | |
JPH06301333A (ja) | 演奏教習装置 | |
JP2001343888A (ja) | 演奏支援装置および鍵盤装置 | |
US20190213906A1 (en) | Performance Training Apparatus and Method | |
JP6801533B2 (ja) | 電子管楽器、その電子管楽器の制御方法及びその電子管楽器用のプログラム | |
JP2011013445A (ja) | 電子楽器 | |
JP4169555B2 (ja) | カラオケ装置 | |
JP5338101B2 (ja) | 電子音楽装置及び演奏処理プログラム | |
JP6427447B2 (ja) | カラオケ装置 | |
JP2776104B2 (ja) | ピッキング音発生装置およびピッキングデータ記憶装置 | |
JP6708437B2 (ja) | カラオケ装置 | |
JP3991892B2 (ja) | 電子楽器 | |
JPH1185170A (ja) | カラオケ即興演奏システム | |
JP4379356B2 (ja) | カラオケ装置 | |
JP4178661B2 (ja) | 教示データ生成装置、及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060912 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061006 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070122 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140209 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |