(57)【要約】【課題】  外部から供給される楽音制御データに基づいて初心者でも、様々な練習方法を容易に実現できるようにする。【解決手段】鍵盤演奏に関する楽音制御データを受信し（Ｊ３０６）、この受信された楽音制御データにおける鍵盤演奏が特殊な押鍵操作であるか否か判別し、このデータ判別によって特殊な押鍵操作であると判別された場合には、当該特殊な押鍵操作を補うためのペダル操作の楽音制御データを生成する（Ｊ３０５）。これによって生成されたペダル操作を所定の表示部に表示させる（Ｊ３０３）。【選択図】  図３９
2005301299.tif 000002
【特許請求の範囲】
【請求項１】
発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段と、
この記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１の検出手段と、
この第１の検出手段にて発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第２の検出手段と、
前記記憶手段において、前記第１の検出手段により検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶するとともに、前記第２の検出手段により検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する記憶制御手段と、
を有する楽音データ変換装置。
【請求項２】
発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段と、
この記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１の検出手段と、
この第１の検出手段にて発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第２の検出手段と、
前記記憶手段において、前記第１の検出手段により検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶するとともに、前記第２の検出手段により検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する記憶制御手段と、
前記記憶手段に記憶されたイベントを順番に読み出す読み出し手段と、
この読み出し手段にて読み出されたイベントが楽音の発音・消音を指示するデータである場合に、当該イベントが有する音高データに基づいたガイド表示を行うガイド表示手段と、
この読み出し手段にて読み出されたイベントがペダルオンイベントである場合は、所定の表示素子を点灯するとともに、ペダルオフイベントである場合に、前記表示素子を消灯する表示手段と、
を有する操作指示装置。
【請求項３】
発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１のステップと、
前記記憶手段において、前記第１のステップにより検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶する第２のステップと、
発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第３のステップと、
前記記憶手段において、前記第２のステップにより検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する第４のステップと、
を有するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項４】
発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１のステップと、
前記記憶手段において、前記第１のステップにより検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶する第２のステップと、
発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第３のステップと、
前記記憶手段において、前記第２のステップにより検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する第４のステップと、
前記記憶手段に記憶されたイベントを順番に読み出す第５のステップと、
読み出されたイベントが楽音の発音・消音を指示するデータである場合に、当該イベントが有する音高データに基づいたガイド表示を行う第６のステップと、
この読み出されたイベントがペダルオンイベントである場合は、表示手段の所定の表示素子を点灯するとともに、ペダルオフイベントである場合に、前記表示素子を消灯する第７のステップと、
を有するプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏の教示に用いられる楽音データ変換装置、操作指示装置及び記憶媒体に関する。
【背景技術】
【０００２】
例えば、演奏教習装置の１種である押鍵の教示機能付き鍵盤電子楽器においては、演奏者自身が外部より供給される楽音制御データを練習用の楽音制御データに変更して、様々な練習方法を実現することができる。そして、各鍵の近傍にＬＥＤ等の発光手段を設けて押鍵すべき鍵に対応する発光手段を点灯したり、又は、鍵の下側にＬＥＤ等の発光手段を設けて押鍵すべき鍵を照光して、演奏を教示することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の演奏教習装置においては、演奏者自身が供給される楽音制御データを練習用の楽音制御データに変更しなければならず、初心者によっては、楽音制御データの変更作業が煩雑でかつ高度な技術を要するため、様々な練習方法を実現することが容易でないという問題があった。
【０００４】
また、こどもや初心者にとっては鍵盤の演奏操作は困難であるため、練習用の楽音制御データを供給されたとしても、スムーズな鍵盤演奏をすることができないという問題があった。
【０００５】
本発明の課題は、楽音制御データの供給を受ける教習者にとって鍵盤の演奏操作が困難な場合に、鍵盤操作をスムーズにできるようにすることである。
【課題を解決するための手段】
【０００６】
本発明は、楽音制御データの供給を受ける教習者にとって鍵盤の演奏操作が困難な場合に、鍵盤操作をスムーズにできるようにすることを目的とする。
【０００７】
すなわち、本発明のひとつの側面によれば、発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段と、この記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１の検出手段と、この第１の検出手段にて発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第２の検出手段と、前記記憶手段において、前記第１の検出手段により検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶するとともに、前記第２の検出手段により検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する記憶制御手段と、を有する楽音データ変換装置を提供できる。
【０００８】
またさらに、発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１のステップと、前記記憶手段において、前記第１のステップにより検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶する第２のステップと、発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第３のステップと、前記記憶手段において、前記第２のステップにより検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する第４のステップと、を実行する演奏教習処理のプログラム記憶した記憶媒体を提供できる。
【０００９】
また、本発明のひとつの側面によれば、発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段と、この記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１の検出手段と、この第１の検出手段にて発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第２の検出手段と、前記記憶手段において、前記第１の検出手段により検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶するとともに、前記第２の検出手段により検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する記憶制御手段と、前記記憶手段に記憶されたイベントを順番に読み出す読み出し手段と、この読み出し手段にて読み出されたイベントが楽音の発音・消音を指示するデータである場合に、当該イベントが有する音高データに基づいたガイド表示を行うガイド表示手段と、この読み出し手段にて読み出されたイベントがペダルオンイベントである場合は、所定の表示素子を点灯するとともに、ペダルオフイベントである場合に、前記表示素子を消灯する表示手段と、を有する操作指示装置が提供できる。
【００１０】
またさらに、発生すべき楽音の音高データ及び発音・消音を指示するデータを有する複数のイベントを所定の順序で記憶した記憶手段に記憶されている発音を指示するデータを有するイベントのうち、当該イベントに基づく楽音が発音されている間に他のイベントに基づく楽音の発音が重なり、かつ当該発音の重なりあう楽音の音高差が所定値を超えているイベントを検出する第１のステップと、前記記憶手段において、前記第１のステップにより検出されたイベントの後にペダルオンを示すペダルオンイベントを挿入して記憶する第２のステップと、発音の重なり合う楽音に対応するイベントが検出された後、当該発音の重なり合う楽音の消音を指示するデータを有するイベントを検出する第３のステップと、前記記憶手段において、前記第２のステップにより検出されたイベントの後にペダルオフを示すペダルオフイベントを挿入して記憶する第４のステップと、前記記憶手段に記憶されたイベントを順番に読み出す第５のステップと、読み出されたイベントが楽音の発音・消音を指示するデータである場合に、当該イベントが有する音高データに基づいたガイド表示を行う第６のステップと、この読み出されたイベントがペダルオンイベントである場合は、表示手段の所定の表示素子を点灯するとともに、ペダルオフイベントである場合に、前記表示素子を消灯する第７のステップと、を有するプログラムを記憶したコンピュータ読み取り可能な記憶媒体が提供できる。
【発明の効果】
【００１１】
本発明によれば、楽音制御データの供給を受ける教習者にとって鍵盤の演奏操作が困難な場合に、押鍵操作を補うためのペダル操作の楽音制御データを生成して表示させる。したがって、楽音制御データの供給を受ける教習者にとって鍵盤の演奏操作が困難な場合に、鍵盤操作をスムーズにできる。
【発明を実施するための最良の形態】
【００１２】
以下、この発明の第１〜第３実施形態及びこれらの変形例について鍵盤電子楽器を例に採り、図１〜図４８を参照して説明する。図１は、各実施形態における鍵盤電子楽器の装置のシステム構成を示すブロック図である。ＣＰＵ１は、アドレスバスＡＢ、データバスＤＢ、及び図示しないコントロールバスからなるシステムバスを介してこの装置を制御する。システムバスには、プログラムＲＯＭ２、ワークＲＡＭ３、操作部インタフェース４、音源５、通信制御部１３が接続されている。また、ＣＰＵ１には、外部のＭＩＤＩ装置からＭＩＤＩデータを受信するとともに、外部のＭＩＤＩ装置に対してＭＩＤＩデータを送信する。プログラムＲＯＭ２は、ＣＰＵ１が実行するプログラムやイニシャル処理において用いる各データが記憶されており、ＣＰＵ１から指定されるアドレスに応じてプログラムやデータを出力する。ワークＲＡＭ３は、ＣＰＵ１の書込指令に応じて指定されたアドレスの領域にＭＩＤＩデータその他のデータを記憶し、ＣＰＵ１の読出指令又は送信指令に応じてＭＩＤＩデータ等を出力する。
【００１３】
操作表示インタフェース部４は、操作表示部６とＣＰＵ１との間で各種の情報を中継する。音源５は、ＣＰＵ１からの楽音データ並びに発音指令及び消音指令に基づいて、発音処理及び消音処理を行う。波形ＲＯＭ７は波形データを記憶しており、音源５からの読出指令及びアドレスに応じて対応する波形データを音源に出力する。ＤＡＣ８は、音源５から出力される楽音信号をディジタルからアナログに変換して、スピーカー９に供給して発音させる。
【００１４】
通信制御部１３は、インターネット等のネットワーク上の所定の記憶装置であるサーバやホストコンピュータに任意の時間（ノンリアルタイム）にアクセスして接続し、外部への楽音制御データをサーバに送信したり、外部からサーバに送信されてストアされている楽音制御データを受信する。
【００１５】
操作表示部６の外観を図２に示す。操作表示部６には２つのタイプがあり、１つのタイプは図２（ａ）に示すように、鍵盤１０及びスイッチ部１１からなる操作手段の他に、各鍵に対応する上の位置に、ＬＥＤ等からなる教示用発光素子１２を備えている。そして、押鍵すべき操作子である鍵に対応する発光素子が点灯する。他の１つのタイプは図２（ｂ）に示すように、教示用発光素子は各鍵に対応する上の位置でなく、半透明の各鍵の裏側に設けられており、押鍵すべき鍵を下から照光する構成になっている。したがって、操作表示インタフェース部４は、発光素子を駆動する駆動信号を発生する信号発生手段を構成する。
【００１６】
次に、本発明の第１実施形態について説明する。この第１実施形態においては、少なくとも２つの鍵盤電子楽器を用いて、一方の鍵盤電子楽器において熟練者が作成した練習用楽音制御データを他方の鍵盤電子楽器に送信して、これを受信した他方の鍵盤電子楽器の側の少なくとも１人の初心者が演奏するシステムになっている。
【００１７】
図３〜図７は、第１実施形態における送信者側の鍵盤電子楽器におけるＣＰＵ１のフローチャートである。図３はＣＰＵ１のメインフローであり、パワーオンになると所定のイニシャル処理（ステップＳ１０１）の後、スイッチ処理（ステップＳ１０２）、ＭＩＤＩ処理（ステップＳ１０３）、鍵盤処理（ステップＳ１０４）、発音・消音処理（ステップＳ１０５）、その他の処理（ステップＳ１０６）をする。そして、パワーオフされたか否かを判別し（ステップＳ１０７）、パワーオフでない場合にはステップＳ１０２〜ステップＳ１０７のループを繰り返し実行する。ステップＳ１０７においてパワーオフと判別したときは、所定のパワーオフ処理をする（ステップＳ１０８）。なお、スイッチ処理においては、各スイッチの設定状態をワークＲＡＭ３にセーブする。
【００１８】
図４はＭＩＤＩデータを取り込む割り込み処理であり、ＭＩＤＩデータを受信したときは、他の割り込みをマスク（禁止）する等の割り込み初期処理をして（ステップＳ１０９）、出力ＭＩＤＩデータを送出用レジスタに転送する等のＭＩＤＩデータ送出用処理を行う（ステップＳ１１０）。そして、他の割り込みの禁止解除等の割り込み終了処理をして（ステップＳ１１１）、メインフローに戻る。
【００１９】
図５はメインフローのステップＳ１０５における発音・消音処理である。この処理では、メインフローにおけるスイッチ処理において設定された状態をセーブしたワークＲＡＭ３の内容を参照して以下の各処理を行う。練習用データ作成モードであるか否かを判別し（ステップＳ１１２）、練習用データ作成モードでない場合には、通常の発音・消音処理をする（ステップＳ１１３）。そして、このフローを終了する。練習用データ作成モードである場合には、練習用データ作成に対応する該当チャンネルであるか否かを判別する（ステップＳ１１４）。該当チャンネルでないときは、そのチャンネルについて発音する設定がされているか否かを判別する（ステップＳ１１５）。発音する設定がされているときは、ステップＳ１１３に移行して通常の発音・消音処理をして、このフローを終了する。発音する設定がされていないときは、直ちにこのフローを終了する。
【００２０】
ステップＳ１１４において、練習用データ作成に対応する該当チャンネルであるときは、その音高が練習用データ作成に対応する音高の鍵として設定されているか否かを判別する（ステップＳ１１６）。該当する音高の鍵でないときは、その音高について発音する設定がされているか否かを判別する（ステップＳ１１７）。発音する設定がされているときは、ステップＳ１１３に移行して通常の発音・消音処理をする。そして、このフローを終了する。発音する設定がされていないときは、直ちにこのフローを終了する。
【００２１】
ステップＳ１１６において、その音高が練習用データ作成に対応する音高の鍵として設定されているときは、ＭＩＤＩデータの指示が発音であるかあるいは消音であるかを判別する（ステップＳ１１８）。ＭＩＤＩデータの指示が発音であるときは、ノートオン処理すなわち練習データ作成オン時の発音処理及び変換データ作成処理をする（ステップＳ１１９）。一方、ＭＩＤＩデータの指示が消音であるときは、ノートオフ処理すなわち練習データ作成オン時の消音処理及び変換データ作成処理をする（ステップＳ１２０）。ノートオン処理又はノートオフ処理の後はこのフローを終了する。
【００２２】
図６は、図５の発音・消音処理のステップＳ１１９におけるノートオン処理のフローである。この処理では、該当する楽音データのベロシティを変更したＭＩＤＩ送信用データを作成してＭＩＤＩバッファに転送する（ステップＳ１２１）。そして、送信システム側が無発音モードであるか又は発音モードであるかを判別する（ステップＳ１２２）。無発音モードである場合には、直ちにこのフローを終了する。一方、発音モードである場合には、通常の楽音を発音する通常発音モードであるか、あるいはクリック音やカスタネット音等のタイミング音を発音するタイミング音モードであるかを判別する（ステップＳ１２３）。
【００２３】
通常楽音モードであるときは、オクターブ単位で上（高音側）又は下（低音側）に音高をシフトさせた発音用ＭＩＤＩデータを作成して、ＭＩＤＩバッファに転送する（ステップＳ１２４）。一方、タイミング音モードであるときは、発音音色をタイミング音に割り当てた発音用ＭＩＤＩデータを作成して、ＭＩＤＩバッファに転送する（ステップＳ１２５）。ステップＳ１２４又はステップＳ１２５において、発音用ＭＩＤＩデータを転送した後は、本来のすなわち変更前の楽音制御データに基づく本来の発音処理を行う（ステップＳ１２６）。そして、このフローを終了する。
【００２４】
図７は、図５の発音・消音処理のステップＳ１２０におけるノートオフ処理のフローである。この処理では、該当する楽音データのＯＦＦ用ＭＩＤＩ送信用データを作成してＭＩＤＩバッファに転送する（ステップＳ１２７）。そして、送信システム側が無発音モードであるか又は発音モードであるかを判別する（ステップＳ１２８）。無発音モードである場合には、直ちにこのフローを終了する。一方、発音モードである場合には、通常の楽音を発音する通常発音モードであるか、あるいはクリック音やカスタネット音等のタイミング音を発音するタイミング音モードであるかを判別する（ステップＳ１２９）。
【００２５】
通常楽音モードであるときは、オクターブ単位で上（高音側）又は下（低音側）に音高をシフトさせた消音用ＭＩＤＩデータを作成して、ＭＩＤＩバッファに転送する（ステップＳ１３０）。一方、タイミング音モードであるときは、発音音色をタイミング音に割り当てた消音用ＭＩＤＩデータを作成して、ＭＩＤＩバッファに転送する（ステップＳ１３１）。ステップＳ１３０又はステップＳ１３１において、消音用ＭＩＤＩデータを転送した後は、本来のすなわち変更前の楽音制御データに基づく本来の消音処理を行う（ステップＳ１３２）。そして、このフローを終了する。
【００２６】
一方、受信者側においては、送信者側から送信されたＭＩＤＩデータを受信して、楽音制御データを生成する。図８は、受信者側における演奏教習装置のメインフローである。所定のイニシャライズ（ステップＪ１０１）の後、スイッチ処理（ステップＪ１０２）、ＭＩＤＩ処理（ステップＪ１０３）、鍵ガイド処理（ステップＪ１０４）、鍵盤処理（ステップＪ１０５）、発音処理（ステップＪ１０６）を実行する。そして、パワー・オフの操作がされたか否かを判別する（ステップＪ１０７）。パワー・オフでない場合には、ステップＪ１０２〜Ｊ１０６の処理を実行する。パワー・オフである場合には、パワー・オフ処理を行い（ステップＪ１０８）、このメインフローを終了する。
【００２７】
図９は、図８のメインフローにおけるステップＪ１０３のＭＩＤＩ処理のフローである。この処理では、ＭＩＤＩデータを外部装置からリアルタイムで受信したか否かを判別し（ステップＪ１０９）、受信しない場合にはメインフローに戻る。受信したときはそのＭＩＤＩデータが演奏教習のためのガイド用ＭＩＤＩデータであるか否かを判別する（ステップＪ１１０）。ガイド用ＭＩＤＩデータを受信したときは、レジスタＧＥＶＥＮＴ及びレジスタＧＶＥＬＯＣＩＴＹにＭＩＤＩデータをストアする（ステップＪ１１１）。次に、ガイドフラグＧＦを「１」にセットして（ステップＪ１１２）、メインフローに戻る。
【００２８】
ステップＪ１１１において受信データがガイド用ＭＩＤＩデータでない場合には、受信したデータが発音用ＭＩＤＩデータであるか否かを判別する（ステップＪ１１３）。発音用データである場合には、レジスタＳＥＶＥＮＴ及びレジスタＳＶＥＬＯＣＩＴＹにＭＩＤＩデータをストアする（ステップＪ１１４）。次に、発音フラグＳＦを「１」にセットして（ステップＪ１１５）、メインフローに戻る。なお、受信データがガイド用ＭＩＤＩデータでも発音用ＭＩＤＩデータでもない場合にも、メインフローに戻る。
【００２９】
図１０は、図８のメインフローにおけるＪ１０４の鍵ガイド処理のフローである。この処理では、ガイドフラグＧＦが「１」であるか否かを判別し（ステップＪ１１６）、「１」ない場合にはメインフローに戻る。ＧＦが「１」である場合には、ＧＥＶＥＮＴのＭＩＤＩデータがノート・オンであるか否かを判別する（ステップＪ１１７）。ノート・オンである場合には、ＧＥＶＥＮＴのノートに対応する鍵のＬＥＤを点灯する（ステップＪ１１８）。ノート・オフである場合には、ＧＥＶＥＮＴのノートに対応する鍵のＬＥＤを消灯する（ステップＪ１１９）。ＬＥＤを点灯又は消灯した後は、ＧＦを「０」にリセットして（ステップＪ１２０）、メインフローに戻る。
【００３０】
図１１は、図８のメインフローにおけるステップ１０５の鍵盤処理のフローである。この処理では、鍵変化があったか否かを判別して（ステップＪ１２１）、変化がない場合にはメインフローに戻る。オフからオンに鍵変化があったときは、ノート・オンデータ及びノートデータをレジスタＥＶＥＮＴにストアし（ステップＪ１２２）、ベロシティデータをレジスタＶＥＬＯＣＩＴＹにストアする（ステップＪ１２３）。一方、オンからオフに鍵変化があったときは、ノート・オフデータ及びノートデータをＥＶＥＮＴにストアし（ステップＪ１２４）、ＶＥＬＯＣＩＴＹに「０」をストアする（ステップＪ１２５）。ステップＪ１２３又はＪ１２５においてＶＥＬＯＣＩＴＹにデータをストアした後は、発音フラグＨＦを「１」にセットして（ステップＪ１２６）、メインフローに戻る。
【００３１】
図１２は、図８のメインフローにおけるＪ１０６の発音処理のフローである。この処理では、ＨＦが「１」であるか否かを判別し（ステップＪ１２７）、「１」である場合には、ＥＶＥＮＴのデータがノート・オンであるか否かを判別する（ステップＪ１２８）。ノート・オンである場合には、ノートデータ及びベロシティデータに基づいて発音指示を行う（ステップＪ１２９）。一方、ノート・オフである場合には、ノートデータに基づいて消音指示を行う（ステップＪ１３０）。発音指示又は消音指示の後は、ＨＦを「０」にリセットする（ステップＪ１３１）。
【００３２】
ステップＪ１３１においてＨＦを「０」にリセットした後、又はステップＪ１２７においてＨＦが「０」である場合には、ＳＦが「１」であるか否かを判別する（ステップＪ１３２）。ＳＦが「０」である場合はメインフローに戻る。ＳＦが「１」である場合には、ＳＥＶＥＮＴのデータがノート・オンであるか否かを判別する（ステップＪ１３３）。ノート・オンである場合には、ＳＥＶＥＮＴのデータがノートデータであるか又はトーンデータであるか否かを判別する（ステップＪ１３４）。
【００３３】
ノートデータである場合には、ＳＥＶＥＮＴのノートデータ及びＳＶＥＬＯＣＩＴＹのベロシティデータに基づいて発音指示を行う（ステップＪ１３５）。この場合には、オクターブ単位で上又は下側にシフトされた音高で発音指示を行う。トーンデータである場合には、ＳＥＶＥＮＴのトーンデータ及びＳＶＥＬＯＣＩＴＹのベロシティデータに基づいて発音指示を行う（ステップＪ１３６）。この場合には、トーンデータの音色によるタイミング音で発音指示を行う。ステップＪ１３５又はステップＪ１３６における発音指示の後は、ＳＦを「０」にリセットして（ステップＪ１３７）、メインフローに戻る。
【００３４】
ステップＪ１３３において、ＳＥＶＥＮＴのデータがノート・オフである場合には、ＳＥＶＥＮＴのデータがノートデータであるか又はトーンデータであるかを判別する（ステップＪ１３８）。ノートデータである場合には、そのノートの消音指示を行う（ステップＪ１３９）。トーンデータである場合には、そのトーンの消音指示を行う（ステップＪ１４０）。ステップＪ１３９又はＪ１４０における消音指示の後は、ＳＦを「０」にリセットして（ステップＪ１３７）、メインフローに戻る。
【００３５】
このように、上記第１実施形態によれば、送信側における演奏教習装置は、楽音制御データについて練習用の内容を設定するデータ設定手段と、入力される楽音制御データを前記データ設定手段によって設定された内容に基づいて練習用楽音制御データに変換するデータ変換手段と、データ変換手段によって変換された練習用楽音制御データを送信するデータ送信手段と、を有する構成になっている。
【００３６】
また、受信側における演奏教習装置は、楽音制御データを受信するデータ受信手段と、このデータ受信手段によって受信された楽音制御データの中の練習用楽音制御データを検出するデータ検出手段と、このデータ検出手段によって検出された練習用楽音制御データに基づいて演奏練習用の内容を設定するデータ設定手段と、を有する構成になっている。
【００３７】
第１実施形態における演奏教習装置によれば、熟練者である送信者側が、入力される楽音制御データを練習用楽音制御データに変換して送信するので、初心者である受信者側では、その練習用楽音データに基づいて演奏練習を行う。したがって、外部から供給される楽音制御データに基づいて、初心者でも、様々な練習方法を容易に実現できる。
【００３８】
この場合において、練習用楽音制御データとして設定される内容が、楽音制御データのベロシティデータを低減する内容である場合には、練習するチャンネルの楽音を小音量で発音させるので、練習者は、自分の操作音の音高と小音量の正しい音高とを容易に識別でき、効果的な練習が可能となる。
【００３９】
あるいは、練習用楽音制御データとして設定される内容が、楽音制御データの音高データをオクターブ単位でシフトさせる内容である場合、又は楽音制御データの音高にかかわらず所定の音高で、かつ、楽音制御データのいずれの音色とも異なる音色、例えばクリック音やカスタネット音等のタイミング音に変更する内容である場合で、しかも発音タイミングが元の楽音制御データと同じである場合には、練習者は、自分の演奏タイミングを容易に認識することにより、効果的な練習が可能となる。
【００４０】
次に、第１実施形態の変形例について説明する。図１３は、変形例における受信側のメインフローである。所定のイニシャライズ（ステップＪ１４１）の後、スイッチ処理（ステップＪ１４２）、ＭＩＤＩ処理（ステップＪ１４３）、鍵盤処理（ステップＪ１４４）、発音処理（ステップＪ１４５）を実行する。そして、パワー・オフの操作がされたか否かを判別する（ステップＪ１４６）。パワー・オフでない場合には、ステップＪ１４２〜Ｊ１４５の処理を実行する。パワー・オフである場合には、パワー・オフ処理を行い（ステップＪ１４７）、このメインフローを終了する。すなわち、この変形例においては、鍵ガイド処理は行わない。
【００４１】
図１４は、図１３のメインフローにおけるステップＪ１４５の発音処理のフローである。この処理では、ＨＦが「１」であるか否かを判別し（ステップＪ１４８）、「１」である場合には、ＥＶＥＮＴのデータがノート・オンであるか否かを判別する（ステップＪ１４９）。ノート・オンである場合には、ノートデータ及びベロシティデータに基づいて発音指示を行う（ステップＪ１５０）。一方、ノート・オフである場合には、ノートデータに基づいて消音指示を行う（ステップＪ１５１）。発音指示又は消音指示の後は、ＨＦを「０」にリセットする（ステップＪ１５２）。
【００４２】
ステップＪ１５２においてＨＦを「０」にリセットした後、又はステップＪ１４８においてＨＦが「０」である場合には、ＧＦが「１」であるか否かを判別する（ステップＪ１５３）。「１」である場合には、ＧＥＶＥＮＴのデータがノート・オンであるか否かを判別する（ステップＪ１５４）。ノート・オンである場合には、ＧＥＶＥＮＴのノートデータ及びＧＶＥＬＯＣＩＴＹのベロシティデータに基づく発音指示を行う（ステップＪ１５５）。ＧＥＶＥＮＴのデータがノート・オフである場合には、そのノートによる楽音を消音指示する（ステップＪ１５６）。ステップＪ１５５又はＪ１５６における発音指示又は消音指示の後は、ＧＦを「０」にリセットする（ステップＪ１５７）。
【００４３】
次に、ＳＦが「１」であるか否かを判別する（ステップＪ１５８）。ＳＦが「１」である場合には、ＳＥＶＥＮＴのデータがノート・オンであるか否かを判別する（ステップＪ１５９）。ノート・オンである場合には、ＳＥＶＥＮＴのデータがノートデータであるか又はトーンデータであるか否かを判別する（ステップＪ１６０）。ノートデータである場合には、ＳＥＶＥＮＴのノートデータ及びＳＶＥＬＯＣＩＴＹのベロシティデータに基づいて発音指示を行う（ステップＪ１６１）。トーンデータである場合には、ＳＥＶＥＮＴのトーンデータ及びＳＶＥＬＯＣＩＴＹのベロシティデータに基づいて発音指示を行う（ステップＪ１６２）。ステップＪ１６１又はステップＪ１６２における発音指示の後は、ＳＦを「０」にリセットして（ステップＪ１６３）、メインフローに戻る。
【００４４】
ステップＪ１５９において、ＳＥＶＥＮＴのデータがノート・オフである場合には、ＳＥＶＥＮＴのデータがノートデータであるか又はトーンデータであるかを判別する（ステップＪ１６４）。ノートデータである場合には、そのノートの消音指示を行う（ステップＪ１６５）。トーンデータである場合には、そのトーンの消音指示を行う（ステップＪ１６６）。ステップＪ１６５又はＪ１６６における消音指示の後は、ＳＦを「０」にリセットして（ステップＪ１６３）、メインフローに戻る。また、ステップＪ１５３においてＧＦが「０」である場合、ステップＪ１５８においてＳＦが「０」である場合には、メインフローに戻る。
【００４５】
図１３のメインフローにおけるステップＪ１４３のＭＩＤＩ処理は、図９における送信側におけるＭＩＤＩ処理のフローと同じであるので説明は省略する。また、図１３のメインフローにおけるステップＪ１４４の鍵盤処理も、図１１における送信側における鍵盤処理のフローと同じであるので説明は省略する。
【００４６】
次に、第２実施形態について説明する。図１５は、第２実施形態における送信側のメインフローである。所定のイニシャライズを行った後（ステップＳ２０１）、スイッチ処理（ステップＳ２０２）、鍵盤処理（ステップＳ２０３）、ガイドデータ作成処理（ステップＳ２０４）、発音処理（ステップＳ２０５）、送信処理（ステップＳ２０６）を実行する。そして、パワー・オフの操作がされたか否かを判別する（ステップＳ２０７）。パワー・オフでない場合には、ステップＳ２０２〜Ｓ２０６の処理を実行する。パワー・オフである場合には、パワー・オフ処理を行い（ステップＳ２０８）、このメインフローを終了する。
【００４７】
図１６は、図１５のメインフローにおけるステップＳ２０２のスイッチ処理のフローである。この処理では、モードスイッチ処理（ステップＳ２０９）、スタート／ストップ処理（ステップＳ２１０）、送信スイッチ処理（ステップＳ２１１）、その他のスイッチ処理（ステップＳ２１２）を実行して、メインフローに戻る。
【００４８】
図１７は、図１６のスイッチ処理におけるステップＳ２０９のモードスイッチ処理のフローである。この処理では、作成モードスイッチが変化したか否かを判別し（ステップＳ２１３）、変化がない場合には図１６のフローに戻る。作成モードスイッチがオフからオンに変化したときは、モードフラグＭＦを「１」にセットする（ステップＳ２１４）。作成モードスイッチがオンからオフに変化したときは、ＭＦを「０」にリセットする（ステップＳ２１５）。
【００４９】
ステップＳ２１４又はステップＳ２１５において、ＭＦをセット又はリセットした後は、タイミング音モードスイッチが変化したか否かを判別し（ステップＳ２１６）、変化がない場合には図１６のフローに戻る。このスイッチがオフからオンに変化したときは、タイミングフラグＴＦを「１」にセットする（ステップＳ２１７）。このスイッチがオンからオフに変化したときは、ＴＦを「０」にリセットする（ステップＳ２１８）。ステップＳ２１７又はステップＳ２１８において、ＴＦをセット又はリセットした後は、図１６のフローに戻る。
【００５０】
図１８は、図１６のスイッチ処理におけるステップＳ２１０のスタート／ストップスイッチ処理のフローである。この処理では、スタート／ストップスイッチがオンであるか否かを判別し（ステップＳ２１９）、オフである場合には図１６のフローに戻る。このスイッチがオンである場合には、スタートフラグＳＴＦを反転する（ステップＳ２２０）。次に、ＳＴＦが「１」であるか否かを判別する（ステップＳ２２１）。「１」である場合には、タイムレジスタＴＩＭＥを「０」にリセットし（ステップＳ２２２）、アドレスレジスタＡＤを「０」にセットする（ステップＳ２２３）。そして、タイマインタラプトを禁止解除にする（ステップＳ２２４）。ステップＳ２２１においてＳＴＦが「０」である場合には、タイマインタラプトを禁止し（ステップＳ２２５）、ＡＤのアドレスで指定するメモリのエリアＭＥＭ［ＡＤ］にＥＮＤデータをストアする（ステップＳ２２６）。
【００５１】
ステップＳ２２４においてタイマインタラプトを禁止解除した後、又はステップＳ２２６においてＥＮＤデータをストアした後は、図１６のフローに戻る。タイマインタラプトを禁止解除した場合には、図１９のフローに示すように、一定時間が経過するたびにＴＩＭＥの値をインクリメントする（ステップＳ２２７）。そして、図１６のフローに戻る。
【００５２】
図２０は、図１６のスイッチ処理におけるステップＳ２１１の送信スイッチ処理のフローである。この処理では、送信スイッチがオンされたか否かを判別し（ステップＳ２２８）、オンされたときは送信フラグＳＯＦを「１」にセットする（ステップＳ２２９）。ＳＯＦをセットした後、又はステップＳ２２８において送信スイッチがオンされない場合には、図１６のフローに戻る。
【００５３】
図２１は、図１５のメインフローにおけるステップＳ２０４のガイドデータ作成処理のフローである。この処理では、モードフラグＭＦが「１」であるか否かを判別し（ステップＳ２３０）、「１」である場合には発音フラグＨＦが「１」であるか否かを判別する（ステップＳ２３１）。ＭＦ及びＨＦのいずれか一方でも「０」である場合には、図１５のメインフローに戻る。ＭＦ及びＨＦのいずれも「１」である場合には、ＡＤのアドレスで指定するメモリのエリアＭＥＭ［ＡＤ］にＴＩＭＥのタイムデータをストアする（ステップＳ２３２）。
【００５４】
次に、ＡＤをインクリメントして（ステップＳ２３３）、次のエリアＭＥＭ［ＡＤ］にＥＶＥＮＴのデータをストアする（ステップＳ２３４）。さらに、ＡＤをインクリメントして（ステップＳ２３５）、次のエリアＭＥＭ［ＡＤ］にＶＥＬＯＣＩＴＹのベロシティデータに「１」より小さい所定値α（例えば、α＝０．１）を乗じた値をストアする（ステップＳ２３６）。すなわち、低減したベロシティデータをメモリにストアする。そして、ＡＤをインクリメントする（ステップＳ２３７）。
【００５５】
次に、ＴＦが「１」であるか否かを判別し（ステップＳ２３８）、「１」である場合にはＭＥＭ［ＡＤ］のエリアにノート・オンのデータ及びトーンデータをストアする（ステップＳ２３９）。ＴＦが「０」である場合には、ＭＥＭ［ＡＤ］のエリアにＥＶＥＮＴのノートデータのオクターブを変更したデータをストアする（ステップＳ２４０）。ステップＳ２３９においてノート・オンのデータ及びトーンデータをストアした後、又は、ステップＳ２４０においてオクターブを変更したデータをストアした後は、ＡＤをインクリメントする（ステップＳ２４１）。そして、ＭＥＭ［ＡＤ］のエリアにＶＥＬＯＣＩＴＹのベロシティデータをストアする（ステップＳ２４２）。さらに、ＡＤをインクリメントした後（ステップＳ２４３）、図１５のメインフローに戻る。
【００５６】
図２２は、図１５のメインフローにおけるステップＳ２０５の発音処理のフローである。この処理では、発音フラグＨＦが「１」であるか否かを判別し（ステップＳ２４４）、「１」でない場合には図１５のメインフローに戻る。ＨＦが「１」である場合には、ＥＶＥＮＴのデータがノート・オンであるか否かを判別する（ステップＳ２４５）。ノート・オンである場合には、ＥＶＥＮＴのノートデータとＶＥＬＯＣＩＴＹのベロシティデータで発音指示を行う（ステップＳ２４６）。ＥＶＥＮＴのデータがノート・オフである場合には、ＥＶＥＮＴのノートデータの楽音を消音指示する（ステップＳ２４７）。発音指示又は消音指示の後は、ＨＦを「０」にリセットする（ステップＳ２４８）。そして、図１５のメインフローに戻る。
【００５７】
図２３は、図１５のメインフローにおけるステップＳ２０６の送信処理のフローである。この処理では、送信フラグＳＯＦが「１」であるか否かを判別し（ステップＳ２４９）、「１」でない場合には図１５のメインフローに戻る。ＳＯＦが「１」である場合には、ＭＥＭのデータをネットワーク上のサーバに転送する（ステップＳ２５０）。そして、転送が終了したか否かを判別し（ステップＳ２５１）、終了していない場合にはステップＳ２５０の転送を続行する。転送が終了したときは、ＳＯＦを「０」にリセットして（ステップＳ２５２）、図１５のメインフローに戻る。
【００５８】
図２４は、第２実施形態における受信側のメインフローである。所定のイニシャライズ（ステップＪ２０１）の後、スイッチ処理（ステップＪ２０２）、鍵ガイド処理（ステップＪ２０３）、鍵盤処理（ステップＪ２０４）、発音処理（ステップＪ２０５）、受信処理（ステップＪ２０６）を実行する。そして、パワー・オフの操作がされたか否かを判別する（ステップＪ２０７）。パワー・オフでない場合には、ステップＪ２０２〜Ｊ２０６の処理を実行する。パワー・オフである場合には、パワー・オフ処理を行い（ステップＪ２０８）、このメインフローを終了する。
【００５９】
図２５は、図２４のメインフローにおけるステップＪ２０２のスイッチ処理のフローである。この処理では、鍵ガイドスイッチ処理（ステップＪ２０９）、受信スイッチ処理（ステップＪ２１０）、その他のスイッチ処理（ステップＪ２１１）を実行して、図２４のメインフローに戻る。
【００６０】
図２６は、図２５のスイッチ処理におけるステップＪ２０９の鍵ガイドスイッチ処理のフローである。この処理では、鍵ガイドスイッチがオンされたか否かを判別し（ステップＪ２１２）、オンされない場合には図２５のフローに戻る。このスイッチがオンされたときは、スタートフラグＳＴＦを反転する（ステップＪ２１３）。そして、ＳＴＦが「１」であるか否かを判別する（ステップＪ２１４）。「１」である場合には、タイムレジスタＴＩＭＥを「０」にリセットし（ステップＪ２１５）、アドレスレジスタＡＤを「０」にセットする（ステップＪ２１６）。そして、タイマインタラプトを禁止解除にする（ステップＪ２１７）。ステップＪ２１４においてＳＴＦが「０」である場合には、タイマインタラプトを禁止し（ステップＪ２１８）、ＬＥＤを消灯する（ステップＪ２１９）。
【００６１】
ステップＪ２１７においてタイマインタラプトを禁止解除した後、又はステップＪ２１９においてＬＥＤを消灯した後は、図２５のフローに戻る。タイマインタラプトを禁止解除した場合には、図２７のフローに示すように、一定時間が経過するたびにＴＩＭＥの値をインクリメントする（ステップＪ２２０）。そして、図２５のフローに戻る。
【００６２】
図２８は、図２５のスイッチ処理におけるステップＪ２１０の受信スイッチ処理のフローである。この処理では、受信スイッチがオンされたか否かを判別し（ステップＪ２２１）、オンされない場合には図２５のフローに戻る。受信スイッチがオンされたときは、受信フラグＺＦを「１」にセットする（ステップＪ２２２）。そして、図２５のフローに戻る。
【００６３】
図２９及び図３０は、図２４のメインフローにおけるステップＪ２０３の鍵ガイド処理のフローである。この処理では、スタートフラグＳＴＦが「１」であるか否かを判別し（ステップＪ２２３）、「１」である場合にはＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達したか否かを判別する（ステップＪ２２４）。ＳＴＦが「０」である場合、又はＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達していない場合には、図２４のメインフローに戻る。
【００６４】
ＳＴＦが「１」で、かつ、ＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達している場合には、ＡＤをインクリメントする（ステップＪ２２５）。次に、ＡＤのアドレスで指定するメモリのエリアＭＥＭ［ＡＤ］のデータをレジスタＧＥＶＥＮＴにストアする（ステップＪ２２６）。そして、ＧＥＶＥＮＴのデータがノート・オンであるか否かを判別する（ステップＪ２２７）。ノート・オンである場合には、ＧＥＶＥＮＴのノートデータに対応する鍵のＬＥＤを点灯する（ステップＪ２２８）。ノート・オフのデータである場合には、ＧＥＶＥＮＴのノートデータに対応する鍵のＬＥＤを消灯する（ステップＪ２２９）。ＬＥＤを点灯又は消灯した後は、ＡＤをインクリメントする（ステップＪ２３０）。
【００６５】
次に、図３０においてタイミングフラグＴＦが「０」であるか否かを判別し（ステップＪ２３２）、ＴＦが「１」である場合には、ＧＥＶＥＮＴのデータがノート・オフであるか否かを判別する（ステップＪ２３３）。ＴＦが「０」である場合、又はＧＥＶＥＮＴのデータがノート・オンである場合には、ＡＤのアドレスで指定するメモリのエリアＭＥＭ［ＡＤ］のデータをレジスタＳＥＶＥＮＴにストアする（ステップＪ２３４）。そして、ＡＤをインクリメントして（ステップＪ２３５）、ＭＥＭ［ＡＤ］のデータをレジスタＳＶＥＬＯＣＩＴＹにストアする（ステップＪ２３６）。次に、発音フラグＳＦを「１」にセットする（ステップＪ２３７）。
【００６６】
ＳＦをセットした後、又はステップＪ２３３においてＧＥＶＥＮＴのデータがノート・オフである場合には、ＡＤをインクリメントして（ステップＪ２３８）、ＭＥＭ［ＡＤ］のデータがＥＮＤデータであるか否かを判別する（ステップＪ２３９）。ＥＮＤデータでない場合には、図２４のメインフローに戻る。一方、ＥＮＤデータである場合には、ＳＴＦを「０」にリセットし（ステップＪ２４０）、タイマインタラプトを禁止して（ステップＪ２４１）、図２４のメインフローに戻る。
【００６７】
メインフローにおけるステップＪ２０４の鍵盤処理については、図１１に示した第１実施形態のフローと同じであるので説明は省略する。また、メインフローにおけるステップＪ２０５の発音処理についても、図１２に示した第１実施形態のフローと同じであるので説明は省略する。
【００６８】
図３１は、メインフローにおけるステップＪ２０６の受信処理のフローである。この処理では、受信フラグＺＦが「１」であるか否かを判別し（ステップＪ２４２）、「０」である場合には図２４のメインフローに戻る。ＺＦが「１」である場合には、ネットワーク上のサーバから受信したデータをメモリに転送する（ステップＪ２４３）。そして、受信が終了したか否かを判別し（ステップＪ２４４）、終了していない場合にはステップＪ２４３の転送処理を続行する。受信が終了したときは、ＺＦを「０」にリセットして図２４のメインフローに戻る。
【００６９】
次に、第２実施形態における受信側の処理の変形例を説明する。図３２は変形例における受信側のメインフローである。所定のイニシャライズを行った後（ステップＪ２４６）、スイッチ処理（ステップＪ２４７）、鍵盤処理（ステップＪ２４８）、ガイドデータ読出処理（ステップＪ２４９）、発音処理（ステップＪ２５０）、受信処理（ステップＪ２５１）を実行する。そして、パワー・オフの操作がされたか否かを判別する（ステップＳ２５２）。パワー・オフでない場合には、ステップＳ２４７〜Ｓ２５１の処理を実行する。パワー・オフである場合には、パワー・オフ処理を行い（ステップＳ２５３）、このメインフローを終了する。
【００７０】
図３３は、図３２のメインフローにおけるスイッチ処理のフローである。この処理では、鍵ガイドスイッチ処理（ステップＪ２５４）、受信スイッチ処理（ステップＪ２５５）、その他のスイッチ処理（ステップＪ２５６）を実行して、図３２のメインフローに戻る。
【００７１】
図３４は、図３３のスイッチ処理におけるステップＪ２５４の鍵ガイドスイッチ処理のフローである。この処理では、鍵ガイドスイッチがオンされたか否かを判別し（ステップＪ２５７）、オンされない場合には図３３のスイッチ処理のフローに戻る。鍵ガイドスイッチがオンされたときは、スタートフラグＳＴＦを反転する（ステップＪ２５８）。そして、ＳＴＦが「１」であるか否かを判別する（ステップＪ２５９）。「１」である場合には、タイムレジスタＴＩＭＥを「０」にリセットし（ステップＪ２６０）、アドレスレジスタＡＤを「０」にセットする（ステップＪ２６１）。そして、タイマインタラプトを禁止解除にする（ステップＪ２６２）。ステップＪ２５９においてＳＴＦが「０」である場合には、タイマインタラプトを禁止する（ステップＪ２６３）。
【００７２】
ステップＪ２６２においてタイマインタラプトを禁止解除した後、又はステップＪ２６３においてタイマインタラプトを禁止した後は、図３３のスイッチ処理のフローに戻る。タイマインタラプトを禁止解除した場合には、第２実施形態における図２７のフローに示すように、一定時間が経過するたびにＴＩＭＥの値をインクリメントする。そして、図３３のスイッチ処理のフローに戻る。
【００７３】
図３３のスイッチ処理におけるステップＪ２５５の受信スイッチ処理は、第２実施形態における図２８に示すフローと同じであるので、説明は省略する。また図３２のメインフローにおいて、ステップＪ２４８の鍵盤処理については、第１実施形態において図１１に示したフローと同じであるので、説明は省略する。
【００７４】
図３５及び図３６は、図３２のメインフローにおけるステップＪ２４９のガイドデータ読出処理のフローである。図３５において、ＳＴＦが「１」であるか否かを判別し（ステップＪ２６４）、「１」である場合にはＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達したか否かを判別する（ステップＪ２６５）。ＳＴＦが「０」である場合、又はＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達していない場合には、図３２のメインフローに戻る。
【００７５】
ステップＪ２６４においてＳＴＦが「１」で、かつ、ステップＪ２６５においてＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達したときは、ＡＤをインクリメントする（ステップＪ２６６）。そして、ＡＤのアドレスで指定するメモリのエリアＭＥＭ［ＡＤ］のデータをレジスタＧＥＶＥＮＴにストアする（ステップＪ２６７）。次に、ＡＤをインクリメントして（ステップＪ２６８）、ガイドフラグＧＦを「１」にセットする（ステップＪ２６９）。
【００７６】
次に、図３６においてＴＦが「０」であるか否かを判別し（ステップＪ２７０）、ＴＦが「１」である場合には、ＧＥＶＥＮＴのデータがノート・オフであるか否かを判別する（ステップＪ２７１）。ＴＦが「０」である場合、又はＧＥＶＥＮＴのデータがノート・オンである場合には、ＡＤのアドレスで指定するメモリのエリアＭＥＭ［ＡＤ］のデータをレジスタＳＥＶＥＮＴにストアする（ステップＪ２７２）。そして、ＡＤをインクリメントして（ステップＪ２７３）、ＭＥＭ［ＡＤ］のデータをレジスタＳＶＥＬＯＣＩＴＹにストアする（ステップＪ２７４）。次に、発音フラグＳＦを「１」にセットする（ステップＪ２７５）。
【００７７】
ＳＦをセットした後、又はステップＪ２７１においてＧＥＶＥＮＴのデータがノート・オフである場合には、ＡＤをインクリメントして（ステップＪ２７６）、ＭＥＭ［ＡＤ］のデータがＥＮＤデータであるか否かを判別する（ステップＪ２７７）。ＥＮＤデータでない場合には、図３２のメインフローに戻る。一方、ＥＮＤデータである場合には、ＳＴＦを「０」にリセットし（ステップＪ２７８）、タイマインタラプトを禁止して（ステップＪ２７９）、図３２のメインフローに戻る。
【００７８】
メインフローにおけるステップＪ２５０の発音処理は、第１実施形態の変形例において図１４に示したフローと同じであるので、説明は省略する。また、メインフローにおけるステップＪ２５１の受信処理についても、第２実施形態において図３１に示したフローと同じであるので、説明は省略する。
【００７９】
なお、上記第１及び第２各実施形態においては、鍵盤電子楽器を例に採り、教示する操作手段を鍵盤としたが、本発明を適用する対象としては、電子ドラムセット、電子管楽器、電子弦楽器でもよい。これらの場合には、操作手段は、ドラムのパッド、電子管楽器のピストン部、電子弦楽器の弦になる。
【００８０】
また、上記第１及び第２実施形態においては、演奏教習装置として鍵盤電子楽器を例に採って説明したが、シーケンサやパソコン等にも本発明を適用することができる。そして、上記実施形態においては、楽音制御データとして鍵盤入力データとしたが、自動演奏用データや一般の音楽再生データ等でもよい。
【００８１】
次に、第３実施形態について説明する。この第３実施形態においては、図２に示した操作表示部６にペダル画像を表示する画面を設けて、ペダル操作をガイドする構成になっている。図には示さないが、ペダル画像にはダンパーペダル、ソステヌートペダル、ソフトペダルの３つのペダルが表示されており、操作すべきペダルに対応する画像を点灯するように制御する。ダンパーペダルを操作すると、この後の鍵盤演奏において鍵盤から指を離しても音を長く伸ばすことができる。ソステヌートペダルを操作すると、このペダルを操作したときに押さえていた鍵の音だけを、鍵盤から指を離しても音を長く伸ばすことができる。ソフトペダルを操作すると、音量がわずかに下がり、音の響きを柔らかくすることができる。
【００８２】
第３実施形態における送信側のメインフローについては、第２実施形態において図１５に示したフローと同じである。したがってここでは、第２実施形態とは異なる処理についてのみ説明する。第３実施形態の送信側の処理では、スイッチ処理の中のモードスイッチ処理、及び送信処理の中のガイドデータ作成処理が第２実施形態と異なっている。
【００８３】
図３７は、スイッチ処理におけるモードスイッチ処理のフローである。この処理では、作成モードスイッチが変化したか否かを判別し（ステップＳ３０１）、変化がない場合にはメインフローに戻る。このスイッチがオフからオンに変化したときは、モードフラグＭＦを「１」にセットする（ステップＳ３０２）。一方、オンからオフに変化したときは、ＭＦを「０」にリセットする（ステップＳ３０３）。ＭＦをセット又はリセットした後は、メインフローに戻る。
【００８４】
図３８は、送信処理におけるガイドデータ作成処理のフローである。この処理では、ＭＦが「１」であるか否かを判別し（ステップＳ３０４）、「１」である場合にはＨＦが「１」であるか否かを判別する（ステップＳ３０５）。ＭＦが「０」である場合、又はＨＦが「０」である場合には、メインフローに戻る。
【００８５】
ＭＦが「１」で、かつ、ＨＦが「１」である場合には、ＡＤのアドレスで示すメモリのエリアＭＥＭ［ＡＤ］にタイムレジスタＴＩＭＥのデータをストアする（ステップＳ３０６）。次に、ＡＤをインクリメントして（ステップＳ３０７）、ＭＥＭ［ＡＤ］にレジスタＥＶＥＮＴのデータをストアする（ステップＳ３０８）。そして、ＡＤをインクリメントして（ステップＳ３０９）、メインフローに戻る。
【００８６】
図３９は、第３実施形態における受信側のメインフローである。所定のイニシャライズ（ステップＪ３０１）の後、スイッチ処理（ステップＪ３０２）、鍵ガイド処理（ステップＪ３０３）、発音処理（ステップＪ３０４）、ペダルデータ作成処理（ステップＪ３０５）、受信処理（ステップＪ３０６）を実行する。そして、パワー・オフの操作がされたか否かを判別する（ステップＪ３０７）。パワー・オフでない場合には、ステップＪ３０２〜Ｊ３０６の処理を実行する。パワー・オフである場合には、パワー・オフ処理を行い（ステップＪ３０８）、このメインフローを終了する。
【００８７】
図４０は、図３９のメインフローにおけるステップＪ３０２のスイッチ処理のフローである。この処理では、鍵ガイドスイッチ処理（ステップＪ３０９）、受信スイッチ処理（ステップＪ３１０）、ペダルデータ作成スイッチ処理（ステップＪ３１１）、その他のスイッチ処理（ステップＪ３１２）を実行して、図３９のメインフローに戻る。
【００８８】
図４０のスイッチ処理におけるステップＪ３０９の鍵ガイドスイッチ処理については、第２実施形態において図２６に示したフローと同じであるので、説明は省略する。また、図４０におけるステップＪ３１０の受信スイッチ処理についても、第２実施形態において図２８に示したフローと同じであるので、説明は省略する。
【００８９】
図４１は、図４０のステップＪ３１１におけるペダルデータ作成スイッチ処理のフローである。この処理では、ペダルデータ作成スイッチがオンされたか否かを判別し（ステップＪ３１３）、オンされない場合には図４０のスイッチ処理のフローに戻る。このスイッチがオンされたときは、ペダルフラグＰＦを「１」にセットして（ステップＪ３１４）、図４０のスイッチ処理に戻る。
【００９０】
図４２は、図３９のメインフローにおけるステップＪ３０２の鍵ガイド処理のフローである。この処理では、スタートフラグＳＴＦが「１」であるか否かを判別し（ステップＪ３１５）、「１」である場合にはタイムレジスタＴＩＭＥのデータがＡＤのアドレスで指定するメモリのエリアＭＥＭ［ＡＤ］のタイムデータに達したか否かを判別する（ステップＪ３１６）。ＳＴＦが「０」である場合、又は、ＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達していない場合には、図３９のメインフローに戻る。
【００９１】
ＳＴＦが「１」であり、かつ、ＴＩＭＥのデータがＭＥＭ［ＡＤ］のタイムデータに達したときは、ＡＤをインクリメントする（ステップＪ３１７）。そして、ＭＥＭ［ＡＤ］のデータがノート・オンであるか否かを判別する（ステップＪ３１８）。ノート・オンである場合には、ＭＥＭ［ＡＤ］のノートデータに対応する鍵のＬＥＤを点灯する（ステップＪ３１９）。ＭＥＭ［ＡＤ］のデータがノート・オンでない場合には、ＭＥＭ［ＡＤ］のデータがノート・オフであるか否かを判別する（ステップＪ３２０）。ノート・オフである場合には、ＭＥＭ［ＡＤ］のノートデータに対応する鍵のＬＥＤを消灯する（ステップＪ３２１）。
【００９２】
ＭＥＭ［ＡＤ］のデータがノート・オン及びノート・オフでない場合には、ＭＥＭ［ＡＤ］のデータがペダル・オンであるか否かを判別する（ステップＪ３２２）。ペダル・オンである場合には、対応するペダルマークを点灯する（ステップＪ３２３）。ＭＥＭ［ＡＤ］のデータがノート・オン、ノート・オフ及びペダル・オンのいずれでもない場合には、ＭＥＭ［ＡＤ］のデータがペダル・オフであるか否かを判別する（ステップＪ３２４）。ペダル・オフである場合には、対応するペダルマークを消灯する（ステップＪ３２５）。
【００９３】
ＬＥＤ又はペダルマークの点灯処理及び消灯処理の後は、ＡＤをインクリメントする（ステップＪ３２６）。そして、ＭＥＭ［ＡＤ］のデータが時間データであるか否かを判別する（ステップＪ３２７）。時間データでない場合には、ステップＪ３１８に移行してＭＥＭ［ＡＤ］のデータを判別する。時間データである場合には、図３９のメインフローに戻る。
【００９４】
一方、図４２のフローにおいて、ＭＥＭ［ＡＤ］のデータがノートデータでもペダルデータでもない場合には、ＭＥＭ［ＡＤ］のデータがＥＮＤデータであるか否かを判別する（ステップＪ３２８）。ＥＮＤデータである場合には、スタートフラグＳＴＦを「０」にリセットして（ステップＪ３２９）、タイマインタラプトを禁止して（ステップＪ３３０）、点灯しているＬＥＤ及びペダルマークを消灯し（ステップＪ３３１）、図３９のメインフローに戻る。ステップＪ３２８においてＭＥＭ［ＡＤ］がＥＮＤデータでない場合には、ステップＪ３２６に移行してＡＤをインクリメントした後、ステップＪ３２７においてＭＥＭ［ＡＤ］のデータを判別する。
【００９５】
図３９のメインフローにおけるステップＪ３０４の発音処理は、第２実施形態において図２２に示したフローと同じあるので、説明は省略する。
【００９６】
図４３〜図４６は、図３９のメインフローにおけるステップＪ３０５のペダルデータ作成処理のフローである。図４３において、ペダルフラグＰＦが「１」であるか否かを判別し（ステップＪ３３２）、ＰＦが「０」である場合には図３９のメインフローに戻る。ＰＦが「１」である場合には、ＡＤを「０」にセットする（ステップＪ３３３）。そして、メモリのエリアＭＥＭ［ＡＤ］のデータがイベントデータであるか否かを判別する（ステップＪ３３４）。
【００９７】
ＭＥＭ［ＡＤ］のデータがイベントデータでない場合には、ＡＤをインクリメントする（ステップＪ３３５）。そして、ＭＥＭ［ＡＤ］のデータがＥＮＤデータであるか否かを判別する（ステップＪ３３６）。ＥＮＤデータでない場合には、ステップＪ３３４に移行して、インクリメントしたＡＤのアドレスで指定するＭＥＭ［ＡＤ］のデータがイベントデータであるか否かを判別する。
【００９８】
イベントデータである場合には、そのイベントデータがノート・オンであるか否かを判別する（ステップＪ３３７）。ノート・オンである場合には、ソステヌートペダルフラグＳＰＦが「０」であるか否かを判別する（ステップＪ３３８）。「０」である場合には、直前のノート・オンの鍵の番号を示すポインタＮを「０」にセットして（ステップＪ３３９）、Ｎをインクリメントしながら、直前のノートイベントデータのオンフラグＯＮＦ（Ｎ）の値を判別する。すなわち、ＯＮＦ（Ｎ）が「１」であるか否かを判別し（ステップＪ３４０）、「１（発音）」である場合にはＭＥＭ［ＡＤ］のノートデータからポインタＮで示すノートデータを差し引いた絶対値が所定値より大きいか否かを判別する（ステップＪ３４１）。すなわち、１つ前のノート・オンのデータに対応する鍵と次のノート・オンのデータに対応する鍵との間隔（鍵数）がある程度（所定値よりも）大きいか否かを判別する。
【００９９】
ステップＪ３４０においてＯＮＦ（Ｎ）が「０（消音）」である場合、又は、ステップＪ３４１においてノートデータの差分の絶対値が所定値以下である場合には、Ｎをインクリメントする（ステップＪ３４２）。そして、Ｎが所定数を超えたか否かを判別する（ステップＪ３４３）。所定数以下である場合には、ステップＪ３４０に移行して、ＯＮＦ（Ｎ）の値を判別する。
【０１００】
ステップＪ３４１においてノートデータの差分の絶対値が所定値より大きい場合には、ＳＰＦを「１」にセットする（ステップＪ３４４）。すなわち、直前のノート・オンの鍵と次のノート・オンの鍵との間隔（鍵数）がある程度大きい場合には、ソステヌートペダルのペダルマークを点灯するためのフラグをセットする。
【０１０１】
次に、アドレスレジスタＰＡＤに、ＡＤ（Ｎ）のアドレスをストアする（ステップＪ３４５）。そして、図４４のフローにおいて、「ＰＡＤ＋１」以下のデータを「２」アドレスだけ繰り下げる（ステップＪ３４７）。すなわち、直前のノート・オンのイベントデータのエリアの後の２つのエリアを空きにする。そして、ＭＥＭ［ＡＤ＋１］のエリア（１番目の空きエリア）に、直前のノート・オンのタイムデータＴＩＭＥ（Ｎ）と同じタイムデータをストアする（ステップＪ３４８）。次に、ＭＥＭ［ＡＤ＋２］のエリア（２番目の空きエリア）に、ペダル・オンのイベントデータをストアする（ステップＪ３４９）。
【０１０２】
ペダル・オンのイベントデータをストアした後、又は、図４３のステップＪ３３８においてＳＰＦが「１」である場合、若しくは、図４３のステップＪ３４３においてＮが所定数を超えた場合には、図４４のステップＪ３５０において、Ｎを「０」にセットして、Ｎをインクリメントしながら、オンフラグの値を判別する。すなわち、ＯＮＦ（Ｎ）が「０」であるか否かを判別し（ステップＪ３５１）、「１」である場合にはＮをインクリメントする（ステップＪ３５２）。そして、Ｎが所定数を超えたか否かを判別する（ステップＪ３５３）。所定数以下である場合には、ステップＪ３５１に移行して、ＯＮＦ（Ｎ）の値を判別する。
【０１０３】
ＯＮＦ（Ｎ）が「１」である場合には、ＡＤで指定するＭＥＭ［ＡＤ］のノートデータを、Ｎで指定するレジスタＮＯＴＥ（Ｎ）にストアする（ステップＪ３５４）。次に、ＡＤ（Ｎ）のアドレスをＡＤのアドレスに変更する（ステップＪ３５５）。すなわち、現在指定しているノート・オンのイベントデータのアドレスを、Ｎのポインタで指定するノート・オンのイベントデータのアドレスに更新する。そして、その更新したアドレスのノート・オンに対応するＯＮＦ（Ｎ）を「１」にセットする（ステップＪ３５６）。また、ＭＥＭ［ＡＤ−１］のタイムデータをＴＩＭＥ（Ｎ）にストアする（ステップＪ３５７）。
【０１０４】
タイムデータをストアした後、又は、ステップＪ３５３において、Ｎが所定数を超えた場合には、ＡＤをインクリメントして（ステップＪ３５８）、図４３のステップＪ３３４に移行して、メモリの次のエリアＭＥＭ［ＡＤ］のデータがイベントデータであるか否かを判別する。そして、イベントデータである場合には、ステップＪ３３７において、そのイベントデータがノート・オンであるかを判別する。
【０１０５】
ＭＥＭ［ＡＤ］のイベントデータがノート・オフである場合には、図４５のフローにおいて、ＳＰＦが「１」であるか否かを判別する（ステップＪ３５９）。「１」である場合には、直前のノート・オンの鍵の番号を示すポインタＮを「０」にセットして（ステップＪ３６０）、Ｎをインクリメントしながら、直前のノートイベントデータのオンフラグＯＮＦ（Ｎ）の値を判別する。すなわち、ＯＮＦ（Ｎ）が「１」であるか否かを判別し（ステップＪ３６１）、「１（発音）」である場合にはＭＥＭ［ＡＤ］のノートデータとポインタＮで示すノートデータとが同じであるか否かを判別する（ステップＪ３６２）。
【０１０６】
ステップＪ３６１においてＯＮＦ（Ｎ）が「０（消音）」である場合、又は、ステップＪ３６２においてノートデータが同じでない場合には、Ｎをインクリメントする（ステップＪ３６３）。そして、Ｎが所定数を超えたか否かを判別する（ステップＪ３６４）。所定数以下である場合には、ステップＪ３６１に移行して、ＯＮＦ（Ｎ）の値を判別する。
【０１０７】
ステップＪ３６２において、ＭＥＭ［ＡＤ］のノートデータとポインタＮで示すノートデータとが同じである場合には、ＳＰＦを「０」にリセットする（ステップＪ３６５）。次に、ペダルデータのアドレスレジスタＰＡＤに、ＡＤ（Ｎ）のアドレスをストアする（ステップＪ３６６）。そして、「ＰＡＤ＋１」以下のデータを「２」アドレスだけ繰り下げる（ステップＪ３６７）。次に、図４６のフローにおいて、ＭＥＭ［ＡＤ＋１］のエリア（１番目の空きエリア）に、直前のノート・オンのタイムデータＴＩＭＥ（Ｎ）と同じタイムデータをストアする（ステップＪ３６８）。次に、ＭＥＭ［ＡＤ＋２］のエリア（２番目の空きエリア）に、ペダル・オフのイベントデータをストアする（ステップＪ３６９）。
【０１０８】
ペダル・オフのイベントデータをストアした後、又は、図４５のステップＪ３５９においてＳＰＦが「０」である場合、若しくは、図４５のステップＪ３６４においてＮが所定数を超えた場合には、図４６のステップＪ３７０において、Ｎを「０」にセットして、Ｎをインクリメントしながら、オンフラグの値を判別する。すなわち、ＯＮＦ（Ｎ）が「１」であるか否かを判別し（ステップＪ３７１）、「１」である場合には、ＮＯＴＥ（Ｎ）のノートデータとＭＥＭ［ＡＤ］のノートデータとが同じであるか否かを判別する（ステップＪ３７２）。ＯＮＦ（Ｎ）が「０」である場合、又はＮＯＴＥ（Ｎ）のノートデータとＭＥＭ［ＡＤ］のノートデータとが異なる場合には、Ｎをインクリメントする（ステップＪ３７３）。そして、Ｎが所定数を超えたか否かを判別する（ステップＪ３７４）。所定数以下である場合には、ステップＪ３７１に移行して、ＯＮＦ（Ｎ）の値を判別する。
【０１０９】
ステップＪ３７１においてＯＮＦ（Ｎ）が「１」であり、かつ、ステップＪ３７２においてノートデータが同じである場合には、ＯＮＦ（Ｎ）を「０」にリセットする（ステップＪ３７５）。ＯＮＦ（Ｎ）をリセットした後、又は、ステップＪ３７４においてＮが所定数を超えた場合には、ＡＤをインクリメントして（ステップＪ３７６）、図４３のステップＪ３３４に移行して、メモリの次のエリアＭＥＭ［ＡＤ］のデータがイベントデータであるか否かを判別する。
【０１１０】
このように、上記第３実施形態によれば、演奏教習装置は、鍵盤演奏に関する楽音制御データを受信するデータ受信手段と、このデータ受信手段によって受信された楽音制御データにおける鍵盤演奏が特殊な押鍵操作であるか否かを判別するデータ判別手段と、このデータ判別手段によって特殊な押鍵操作であると判別された場合には、当該特殊な押鍵操作を補うためのペダル操作の楽音制御データを生成するデータ生成手段と、このデータ生成手段によって生成されたペダル操作を所定の表示手段に表示させる表示制御手段と、を有する構成になっている。
【０１１１】
この場合において、前記特殊な押鍵操作は、任意の押鍵位置から次の押鍵位置までが所定の鍵数を超える操作であり、前記ペダル操作は、前記任意の押鍵位置での発音を持続させるための操作である。
【０１１２】
また、前記データ受信手段は、ネットワーク上のサーバから任意の時間に前記データを受信する。
【０１１３】
次に、第３実施形態の変形例について説明する。この変形例においては、送信側においてペダルデータ作成処理を行う構成になっている。図４７は、第３実施形態の変形例における送信側のメインフローである。所定のイニシャライズを行った後（ステップＳ３１０）、スイッチ処理（ステップＳ３１１）、鍵盤処理（ステップＳ３１２）、ガイドデータ作成処理（ステップＳ３１３）、ペダルデータ作成処理（ステップＳ３１４）、発音処理（ステップＳ３１５）、送信処理（ステップＳ３１６）を実行する。そして、パワー・オフの操作がされたか否かを判別する（ステップＳ３１７）。パワー・オフでない場合には、ステップＳ３１１〜Ｓ３１６の処理を実行する。パワー・オフである場合には、パワー・オフ処理を行い（ステップＳ３１８）、このメインフローを終了する。
【０１１４】
図４８は、図４７のメインフローにおけるステップＳ３１０のスイッチ処理のフローである。この処理では、モードスイッチ処理（ステップＳ３１８）、スタート／ストップスイッチ処理（ステップＳ３１９）、送信スイッチ処理（ステップＳ３２０）、ペダルデータ作成スイッチ処理（ステップＳ３２１）、その他のスイッチ処理（ステップＳ３２２）を実行して、メインフローに戻る。
【０１１５】
図４７のメインフローにおいて、ステップＪ３１２の鍵盤処理については、第１実施形態において図１１に示したフローと同じである。ステップＪ３１３のガイドデータ作成処理については、第２実施形態において図２２に示したフローと同じである。ステップＪ３１４のペダルデータ作成処理は、第３実施形態において図４３〜図４６に示したフローと同じである。ステップＪ３１５の発音処理は、第２実施形態において図２３に示したフローと同じである。ステップＪ３１６の送信処理は、第２実施形態において図２１に示したフローと同じである。したがって、これらの説明は省略する。
【０１１６】
また、図４８のスイッチ処理のフローにおいて、ステップＪ３１９のモードスイッチ処理は、第２実施形態において図１７に示したフローと同じである。ステップＪ３２０のスタート／ストップスイッチ処理は、第２実施形態において図１９に示したフローと同じである。ステップＪ３２１の送信スイッチ処理は、第２実施形態において図２０に示したフローと同じである。ステップＪ３２２のペダルデータ作成スイッチ処理は、第３実施形態において図４１に示したフローと同じである。したがって、これらの説明は省略する。
【０１１７】
さらに、この第３実施形態の変形例における受信側のフローについは、第２実施形態において図２４〜図３１に示したフローと同じであるので、説明は省略する。
【０１１８】
なお、上記各実施形態においては、演奏教習処理のプログラムをプログラムＲＯＭ２に格納した装置について説明したが、フロッピー（登録商標）ディスク、ＣＤ、ハードディスク等の記録媒体に、演奏教習処理のプログラムを記録し、このプログラムを汎用のパソコンに実行させる構成にしてもよい。この場合において、上記実施形態に対応して、記録媒体には下記の第１〜第５のプログラムが記録される。
【０１１９】
第１のプログラムによる演奏教習処理は、
楽音制御データを受信するデータ受信手順と、
このデータ受信手順によって受信された楽音制御データの中の練習用楽音制御データを検出するデータ検出手順と、
このデータ検出手順によって検出された練習用楽音制御データに基づいて演奏練習用の内容を設定するデータ設定手順と、
を実行する。
【０１２０】
第２のプログラムによる演奏教習処理は、
楽音制御データを受信するデータ受信手順と、
このデータ受信手順によって受信された楽音制御データの中の練習用楽音制御データを検出するデータ検出手順と、
このデータ検出手順によって検出された練習用楽音制御データに基づいて演奏練習用の内容を設定するデータ設定手順と、
を実行する。
【０１２１】
第１及び第２のプログラムによる演奏教習処理によれば、熟練者である送信者側が、入力される楽音制御データを練習用楽音制御データに変換して送信するので、初心者である受信者側では、その練習用楽音データに基づいて演奏練習を行う。したがって、外部から供給される楽音制御データに基づいて、初心者でも、様々な練習方法を容易に実現できる。
【０１２２】
第３のプログラムによる演奏教習処理は、
楽音制御データについて練習用の内容を設定するデータ設定手順と、
入力される楽音制御データを前記データ設定手順によって設定された内容に基づいて練習用楽音制御データに変換するデータ変換手順と、
前記データ変換手順によって変換された練習用楽音制御データをネットワーク上の所定の記憶装置に任意の時間に送信するデータ送信手順と、
を実行する。
【０１２３】
第４のプログラムによる演奏教習処理は、
ネットワーク上の所定の記憶装置から楽音制御データを任意の時間に受信するデータ受信手順と、
このデータ受信手順によって受信された楽音制御データの中の練習用楽音制御データを検出するデータ検出手順と、
このデータ検出手順によって検出された練習用楽音制御データに基づいて演奏練習用の内容を設定するデータ設定手順と、
を実行する。
【０１２４】
第３及び第４のプログラムによる演奏教習処理によれば、熟練者である送信者側が、楽音制御データを練習用楽音制御データに変換して、任意の時間にインターネット等のネットワーク上の所定の記憶装置に送信するので、遠隔地にいる教習者や時間的な制限のある教習者である受信者側では、最寄りのアクセスポイントを介して自分の都合の良い時間に、送信されている練習用楽音制御データを受信する。したがって、遠隔地に住んでいる教習者や勤務等により時間的に制限のある教習者でも、容易に楽音制御データの供給を受けることができる。
【０１２５】
第５のプログラムによる演奏教習処理は、
鍵盤演奏に関する楽音制御データを受信するデータ受信手順と、
このデータ受信手順によって受信された楽音制御データにおける鍵盤演奏が特殊な押鍵操作であるか否かを判別するデータ判別手順と、
このデータ判別手順によって特殊な押鍵操作であると判別された場合には、
当該特殊な押鍵操作を補うためのペダル操作の楽音制御データを生成するデータ生成手順と、
このデータ生成手順によって生成されたペダル操作を所定の表示手段に表示させる表示制御手順と、
を実行する。
【０１２６】
第５のプログラムによる演奏教習処理によれば、楽音制御データの供給を受ける教習者にとって鍵盤の演奏操作が困難な場合に、押鍵操作を補うためのペダル操作の楽音制御データを生成して表示させる。したがって、楽音制御データの供給を受ける教習者にとって鍵盤の演奏操作が困難な場合に、鍵盤操作をスムーズにできる。
【図面の簡単な説明】
【０１２７】
【図１】本発明の各実施形態のシステム構成を示すブロック図。
【図２】図１における操作表示部の構成を示す平面図。
【図３】第１実施形態における送信側の動作を示すメインフローチャート。
【図４】図３のメインフローチャートにおける割り込み処理のフローチャート。
【図５】図３における発音・消音処理のフローチャート。
【図６】図５におけるノートオン時の発音処理のフローチャート。
【図７】図５におけるノートオフ時の消音処理のフローチャート。
【図８】第１実施形態における受信側の動作を示すメインフローチャート。
【図９】図８におけるＭＩＤＩ処理のフローチャート。
【図１０】図８における鍵ガイド処理のフローチャート。
【図１１】図８における鍵盤処理のフローチャート。
【図１２】図８における発音処理のフローチャート。
【図１３】第１実施形態の変形例における受信側の動作を示すメインフローチャート。
【図１４】図１３における発音処理のフローチャート。
【図１５】第２実施形態における送信側の動作を示すメインフローチャート。
【図１６】図１５におけるスイッチ処理のフローチャート。
【図１７】図１６におけるモードスイッチ処理のフローチャート。
【図１８】図１６におけるスタート／ストップスイッチ処理のフローチャート。
【図１９】図１６におけるタイマインタラプトのフローチャート。
【図２０】図１６における送信スイッチ処理のフローチャート。
【図２１】図１３におけるガイドデータ作成処理のフローチャート。
【図２２】図１３における発音処理のフローチャート。
【図２３】図１３における送信処理のフローチャート。
【図２４】第２実施形態における受信側の動作を示すメインフローチャート。
【図２５】図２４におけるスイッチ処理のフローチャート。
【図２６】図２５における鍵ガイドスイッチ処理のフローチャート。
【図２７】図２５におけるタイマインタラプトのフローチャート。
【図２８】図２５における受信スイッチ処理のフローチャート。
【図２９】図２４における鍵ガイド処理のフローチャート。
【図３０】図２９に続く鍵ガイド処理のフローチャート。
【図３１】図２４における受信処理のフローチャート。
【図３２】第２実施形態の変形例における受信側の動作を示すメインフローチャート。
【図３３】図３２におけるスイッチ処理のフローチャート。
【図３４】図３３における鍵ガイドスイッチ処理のフローチャート。
【図３５】図３２におけるガイドデータ読出処理のフローチャート。
【図３６】図３５に続くガイドデータ読出処理のフローチャート。
【図３７】第３実施形態における送信側のモードスイッチ処理のフローチャート。
【図３８】第３実施形態における送信側のガイドデータ作成処理のフローチャート。
【図３９】第３実施形態における受信側の動作を示すメインフローチャート。
【図４０】図３９におけるスイッチ処理のフローチャート。
【図４１】図４０におけるペダルデータスイッチ処理のフローチャート。
【図４２】図３９における鍵ガイド処理のフローチャート。
【図４３】図３９におけるペダルデータ作成処理のフローチャート。
【図４４】図４３に続くペダルデータ作成処理のフローチャート。
【図４５】図４３に続くペダルデータ作成処理のフローチャート。
【図４６】図４５に続くペダルデータ作成処理のフローチャート。
【図４７】第３実施形態の変形例における送信側の動作を示すメインフローチャート。
【図４８】図４７におけるスイッチ処理のフローチャート。
【符号の説明】
【０１２８】
１  ＣＰＵ
２  プログラムＲＯＭ
３  ワークＲＡＭ
４  操作表示インタフェース部
５  音源
６  操作表示部
７  波形ＲＯＭ
８  ＤＡＣ
９  スピーカー
【図１】
2005301299.tif 000003
【図２】
2005301299.tif 000004
【図３】
2005301299.tif 000005
【図４】
2005301299.tif 000006
【図５】
2005301299.tif 000007
【図６】
2005301299.tif 000008
【図７】
2005301299.tif 000009
【図８】
2005301299.tif 000010
【図９】
2005301299.tif 000011
【図１０】
2005301299.tif 000012
【図１１】
2005301299.tif 000013
【図１２】
2005301299.tif 000014
【図１３】
2005301299.tif 000015
【図１４】
2005301299.tif 000016
【図１５】
2005301299.tif 000017
【図１６】
2005301299.tif 000018
【図１７】
2005301299.tif 000019
【図１８】
2005301299.tif 000020
【図１９】
2005301299.tif 000021
【図２０】
2005301299.tif 000022
【図２１】
2005301299.tif 000023
【図２２】
2005301299.tif 000024
【図２３】
2005301299.tif 000025
【図２４】
2005301299.tif 000026
【図２５】
2005301299.tif 000027
【図２６】
2005301299.tif 000028
【図２７】
2005301299.tif 000029
【図２８】
2005301299.tif 000030
【図２９】
2005301299.tif 000031
【図３０】
2005301299.tif 000032
【図３１】
2005301299.tif 000033
【図３２】
2005301299.tif 000034
【図３３】
2005301299.tif 000035
【図３４】
2005301299.tif 000036
【図３５】
2005301299.tif 000037
【図３６】
2005301299.tif 000038
【図３７】
2005301299.tif 000039
【図３８】
2005301299.tif 000040
【図３９】
2005301299.tif 000041
【図４０】
2005301299.tif 000042
【図４１】
2005301299.tif 000043
【図４２】
2005301299.tif 000044
【図４３】
2005301299.tif 000045
【図４４】
2005301299.tif 000046
【図４５】
2005301299.tif 000047
【図４６】
2005301299.tif 000048
【図４７】
2005301299.tif 000049
【図４８】
2005301299.tif 000050