JP3729016B2 - 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 - Google Patents
演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 Download PDFInfo
- Publication number
- JP3729016B2 JP3729016B2 JP2000078560A JP2000078560A JP3729016B2 JP 3729016 B2 JP3729016 B2 JP 3729016B2 JP 2000078560 A JP2000078560 A JP 2000078560A JP 2000078560 A JP2000078560 A JP 2000078560A JP 3729016 B2 JP3729016 B2 JP 3729016B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- performance
- image
- note
- determined whether
- 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
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体に関する。
【0002】
【従来の技術】
インターネット等の通信手段を介して曲データを受信してRAM等のメモリにダウンロードし、その曲データに基づいて演奏教習を行うことが提案されている。例えば、鍵盤楽器等で演奏教習を行う場合には、各鍵の下部に設けられた発光素子によって受信した曲データの音高データに対応する鍵を照光して、演奏すべき鍵のナビゲーションを行う構成になっている。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来の提案においては、照光されている鍵を演奏することはできても、楽譜に合わせて演奏することはできなかった。このため、本来の演奏練習としての「目で見た楽譜を手の運動に結びつける(変換する)」イメージトレーニングをすることができなかった。
【0004】
本発明の課題は、インターネット等の通信手段を介して受信した曲データに基づいて、楽譜に合わせて演奏教習を行えるようにすることである。
【0005】
【課題を解決するための手段】
請求項1に記載の演奏教習装置は、複数の音符からなる楽譜の画像データ、ガイド用の画像データ、及び当該楽譜の楽音データを含む曲データを受信して記憶手段(実施形態においては、図3のHD42に対応する)に記憶する受信手段(実施形態においては、図3のCPU31及びMODEM40に対応する)と、前記記憶手段から読み出した楽譜の画像データに基づいて楽譜の画像を所定の表示手段(実施形態においては、図3の表示部39に対応する)に表示するとともに、曲の進行に応じて次に演奏すべき音符の表示位置データに対応する演奏ガイド用の画像データを選択的に前記記憶手段から読み出して当該演奏ガイド用の画像を前記表示手段に表示する表示制御手段(実施形態においては、図3のCPU31に対応する)と、次に演奏すべき操作子(実施形態においては、図2の鍵盤19に対応する)をガイドする演奏手段(実施形態においては、図1の楽器1に対応する)に対して前記演奏ガイド用の画像の位置に対応する音符の楽音データを前記記憶手段から読み出して出力する出力制御手段(実施形態においては、図3のCPU31及びMIDIインターフェース36に対応する)と、を有する構成になっている。
【0006】
請求項8に記載の記憶媒体は、複数の音符からなる楽譜の画像データ、ガイド用の画像データ、及び当該楽譜の楽音データを含む曲データを受信して記憶手段に記憶する受信手順と、前記記憶手段から読み出した楽譜の画像データに基づいて楽譜の画像を所定の表示手段に表示するとともに、曲の進行に応じて次に演奏すべき音符の表示位置データに対応する演奏ガイド用の画像データを選択的に前記記憶手段から読み出して当該演奏ガイド用の画像を前記表示手段に表示する表示制御手順と、次に演奏すべき操作子をガイドする演奏手段に対して前記演奏ガイド用の画像の位置に対応する音符の楽音データを前記記憶手段から読み出して出力する出力制御手順と、を実行する楽音発生処理のプログラムを記憶している。
【0007】
請求項1又は請求項9に記載の発明によれば、演奏ガイド用の楽音データを演奏手段に出力するとともに、音符の画像及び演奏ガイド用の画像を表示手段に表示し、曲の進行に応じて演奏ガイド用の画像を移動して出力する楽音データに対応する音符を指示する。
【0008】
【発明の実施の形態】
以下、本発明による実施形態について図を参照して説明する。
図1は、本発明を適用する場合のシステム構成を示している。鍵盤を有する楽器1は、各鍵に対応してLEDの発光素子が設けられている。また、RS232C等の通信ケーブルによってパソコン2に接続され、MIDI形式の曲データの授受を行っている。ネットワーク3は、インターネットやその他の通信回線であり、パソコン2と曲データサーバ4との間をオンライン接続する。曲データサーバ4は、多数の曲データのデータベースを備えており、パソコン2からの要求に応じて、曲データを配信する。
【0009】
図2は、図1における楽器1の構成を示すブロック図である。CPU11には、システムバス12を介して、ROM13、RAM14、キースキャンインターフェース15、LEDC(LEDコントローラ)16、音源17、MIDIインターフェース18が接続され、これらと間でデータ及びコマンドの授受をおこなっている。ROM13は、CPU11が実行する制御プログラム、初期データ等を格納している。RAM14は、CPU11のワークエリアであり、システムバス12を介して授受するデータを一時的に記憶する。
【0010】
キースキャンインターフェース15は、鍵盤19に接続され、CPU11からのキースキャンコマンドに応じて各鍵のオン・オフ状態を走査して検出する。LEDC16は、鍵盤19の各鍵の下側に設けられている発光素子であるLED20に接続され、CPU11の点灯指令又は消灯指令に応じてLED20の駆動を制御する。音源17は、A/Dコンバータ、アンプ、スピーカ等からなるサウンドシステム21に接続され、CPU11の発音指令又は消音指令に応じてサウンドシステム21の発音又は消音を制御する。
【0011】
MIDIインターフェース18は、MIDI形式の曲データのイベントをパソコン2から受信してRAM14の曲データバッファにストアする。CPU11は、曲データに応じて演奏教習を行う。すなわち、ノートオンのイベントに応じて、その音高に対応する鍵のLEDを点灯させる。また、そのイベントのベロシティについても演奏教習の機能をもっている場合には、ベロシティに応じて、例えばLEDの点滅の速さを制御してもよい。
【0012】
図3は、パソコン2のシステム構成を示している。CPU31には、システムバス32を介して、ROM33、RAM34、VRAM35、MIDIインターフェース36、キースキャンインターフェース37、HDC(ハードディスクコントローラ)38、表示部39、及びMODEM40が接続されている。CPU31は、これらと間でデータ及びコマンドの授受をおこなってパソコン2全体を制御している。
【0013】
ROM33は、CPU31が実行する制御プログラム、初期データ等を格納している。RAM34は、CPU31のワークエリアであり、システムバス32を介して授受するデータを一時的に記憶する。VRAM35は、表示部39に表示する1フィールド分の画像データ(ビットマップデータ)を記憶する。MIDIインターフェース36は、CPU31の指令に応じて、楽器1のCPU11との間で通信制御を行い、MIDI形式の曲データを転送するとともに、楽器1の鍵盤19の押鍵状態を受信する。
【0014】
キースキャンインターフェース37は、キーボード及びマウスからなる操作部41に接続され、CPU11からのキースキャンコマンドに応じて各キーのオン・オフ及びマウスの移動及びクリックの状態を走査して検出する。HDC38は、外部記憶媒体であるHD(ハードディスク)42を収容し、CPU31の指令に応じて曲データサーバ4からダウンロードした曲データの書込み、及びダウンロードした曲データの読出しを制御する。表示部39は、曲データのリスト画面、ダウンロード画面、曲データの再生画面等を表示する。MODEM40は、CPU31の通信接続指令に応じてネットワーク3に接続する通信プロトコルを実行する。
【0015】
次に、図1に示したシステム構成の動作について詳細に説明する。
まず、曲データサーバ4の動作について説明する。
図4〜図8は、サーバ内のメモリエリアマップを示す図である。図4に示すように、サーバのメモリエリアには、バッファエリア、RGB(カラー表示楽譜)エリア、CMD(演奏ガイド用コマンド)エリア、MID(曲データ)エリア、SET(再生情報)エリア、PAT(伴奏パターン)エリアがある。
【0016】
バッファエリアには、ヘッダデータとともに、他のエリアのデータ、すなわちRGBデータ、CMDデータ、MIDデータ、SETデータ、及びPATデータが一時的にストアされる。ヘッダデータは、バッファエリア内のすべてのファイル数、RGB用、CMD用、MID用、SET用、及びPAT用のヘッダデータがストアされる。例えば、RGB用のヘッダデータとしては、ファイル名、スタートアドレス、エンドアドレスがある。他のヘッダデータも同様である。
【0017】
図5は、RGBエリアの楽譜データのレイヤ構造を示している。最上位のレイヤは、複数(例えばN個)の曲に対応する楽譜データ、RGB(1)、RGB(2)、RGB(3)、… RGB(N)で構成されている。その下位の各曲ごとのレイヤ、例えばRGB(1)の下位レイヤは、複数の楽器の機種に対応する楽譜データ、RGB(1、1)、RGB(1、2)、RGB(1、3)、… RGB(1、N)で構成されている。さらにその下位の各機種ごとのレイヤ、例えばRGB(1、1)の下位レイヤは、複数のスキル(ユーザの熟練度)に対応する楽譜データ、RGB(1、1、1)、RGB(1、1、2)、RGB(1、1、3)、… RGB(1、1、N)で構成されている。そして、各スキルのデータ、例えばRGB(1、1、1)のデータは、ファイル名及び楽譜データで構成されている。
【0018】
図6は、PATエリアの伴奏パターンデータのレイヤ構造を示している。最上位のレイヤは、複数(N個)の曲に対応する伴奏パターンデータ、PAT(1)、PAT(2)、PAT(3)、… PAT(N)で構成されている。その下位の各曲ごとのレイヤ、例えばPAT(1)の下位レイヤは、複数の楽器の機種に対応する伴奏パターンデータ、PAT(1、1)、PAT(1、2)、PAT(1、3)、… PAT(1、N)で構成されている。さらにその下位の各機種ごとのレイヤ、例えばPAT(1、1)の下位レイヤは、複数のスキル(ユーザの熟練度)に対応する伴奏パターンデータ、PAT(1、1、1)、PAT(1、1、2)、PAT(1、1、3)、… PAT(1、1、N)で構成されている。そして、各スキルのデータ、例えばPAT(1、1、1)のデータは、ファイル名及び伴奏パターンデータで構成されている。
【0019】
この伴奏パターンデータは、後述するように、パソコンを介して楽器にダウンロードされて、楽器のユーザーエリアにストアされるが、楽器の機種によってはユーザーエリアをもっていないものもある。例えば、図6におけるPAT(1、3)に対応する機種にはユーザーエリアがない。したがって、その伴奏パターンデータは「なし」となっている。
【0020】
図7は、CMDエリアの描画コマンドデータのレイヤ構造を示している。最上位のレイヤは、複数(N個)の曲に対応する描画コマンド、CMD(1)、CMD(2)、CMD(3)、… CMD(N)で構成されている。その下位の各曲ごとのレイヤ、例えばCMD(1)の下位レイヤは、複数の楽器の機種に対応する描画コマンド、CMD(1、1)、CMD(1、2)、CMD(1、3)、…CMD(1、N)で構成されている。さらにその下位の各機種ごとのレイヤ、例えばCMD(1、1)の下位レイヤは、複数のスキル(ユーザの熟練度)に対応する描画コマンド、CMD(1、1、1)、CMD(1、1、2)、CMD(1、1、3)、… CMD(1、1、N)で構成されている。そして、各スキルのデータ、例えばCMD(1、1、1)のデータは、ファイル名及び描画コマンドで構成されている。
【0021】
描画コマンドのデータは、楽譜を構成する複数の音符ごとに用意されており、図8に示すように、WAKU(0)、WAKU(1)、…、WAKU(N)からなる複数のデータで構成されている。そして各データは、表示位置を示す座標(x,y)、大きさ(形状が四角の場合には、高さ及び幅)、形状(四角、丸)、色、及び外枠線(幅、種類)のデータで構成されている。
【0022】
次に、曲データサーバの動作についてフローチャートを参照して説明する。図9は、曲データサーバのメインフローである。パソコンから受信があるか否かを判別し(ステップSA1)、受信があったときは曲番号を受信したか否かを判別する(ステップSA2)。曲番号を受信したときは、レジスタMELODYにその受信データをセットする(ステップSA3)。そして、メロディフラグMFに1をセットする(ステップSA4)。ステップSA2において、受信データが曲番号でない場合には、受信データが環境データであるか否かを判別する(ステップSA5)。環境データである場合には、環境データの中の機種データをレジスタにセットし、環境データの中のスキルデータをレジスタSKILLにセットする(ステップSA6)。そして、環境フラグKFに1をセットする(ステップSA7)。
【0023】
次に、MF及びKFがともに1であるか否かを判別する(ステップSA8)。ともに1でない場合には、ステップSA1に移行して、受信データの有無を判別する。MF及びKFがともに1である場合には、ファイル作成処理を実行する(ステップSA9)。次に、その作成したファイルをパソコンに送信する送信処理を実行し(ステップSA10)、MF及びKFをともに「0」にリセットする(ステップSA11)。そして、ステップSA1に移行して、受信データの有無を判別する。
【0024】
図10〜図12は、図9のフローにおけるステップSA9のファイル作成処理のフローである。図10のフローにおいて、RGBエリア内でRGB(MELODY、KISHU、SKILL)のファイルを指定する(ステップSB1)。次に、バッファ内に指定ファイルのデータをストアする(ステップSB2)。さらに、ヘッダ部にファイル名、スタートアドレス、エンドアドレスを書込む(ステップSB3)。また、CMDエリア内のCMD(MELODY、KISHU、SKILL)のファイルを指定する(ステップSB4)。次に、バッファ内に指定ファイルのデータをストアする(ステップSB5)。さらに、ヘッダ部にファイル名、スタートアドレス、エンドアドレスを書込む(ステップSB6)。
【0025】
次に、図11のフローにおいて、MIDエリア内のMID(MELODY、KISHU、SKILL)のファイルを指定する(ステップSB7)。次に、バッファ内に指定ファイルのデータをストアする(ステップSB8)。さらに、ヘッダ部にファイル名、スタートアドレス、エンドアドレスを書込む(ステップSB9)。また、SETエリア内のSET(MELODY、KISHU、SKILL)のファイルを指定する(ステップSB10)。その指定したデータがあるか否かを判別し(ステップSB11)、データがある場合にはバッファ内に指定ファイルのデータをストアする(ステップSB12)。さらに、ヘッダ部にファイル名、スタートアドレス、エンドアドレスを書込む(ステップSB13)。データがない場合には当然、データのストア及びヘッダ部の書込みは行わない。
【0026】
次に、図12のフローにおいて、PATエリア内のPAT(MELODY、KISHU、SKILL)のファイルを指定する(ステップSB14)。その指定したデータがあるか否かを判別し(ステップSB15)、データがある場合にはバッファ内に指定ファイルのデータをストアする(ステップSB16)。さらに、ヘッダ部にファイル名、スタートアドレス、エンドアドレスを書込む(ステップSB17)。データがない場合には当然、データのストア及びヘッダ部の書込みは行わない。この後、バッファ内に書込まれたファイル数Nをヘッダ部に書込み(ステップSA18)、図9のメインフローに戻る。
【0027】
図13は、図1に示したパソコン2のメモリエリアを示している。メモリエリアは、バッファエリア、楽譜エリア、描画コマンドエリア、MIDIデータエリア、伴奏曲設定情報エリア、伴奏パターンエリアで構成されている。また各エリアは、ヘッダ部及びファイル部で構成されている。
【0028】
次に、パソコンの動作について図3に示したCPU31のフローチャート及び表示部39の画面を参照して説明する。図14は、CPU31のメインフローである。所定のイニシャライズ処理(ステップPA1)の後、図15に示すメニュー画面を表示する(ステップPA2)この画面には、「曲ダウンロード」及び「曲再生」のアイコンスイッチが表示される。そして、アイコンスイッチがオンされたか否かを判別する(ステップPA3)。
【0029】
アイコンスイッチがオンされたときは、ダウンロードのアイコンスイッチがオンされたか、又は再生のアイコンスイッチがオンされたかを判別する(ステップPA4)。ダウンロードのアイコンスイッチがオンされたときはダウンロード処理を実行し(ステップPA5)、再生のアイコンスイッチがオンされたときは再生処理を実行する(ステップPA6)。ダウンロード処理又は再生処理の後は、ステップPA2に移行してメニュー画面を表示する。
【0030】
図16は、図14のフローにおけるステップPA5のダウンロード処理のフローである。まず、図17に示すダウンロードメニュー画面を表示する(ステップPB1)。すなわち、「曲リスト」、「環境設定」、「送信」、及び「戻る」のアイコンスイッチを表示する。そして、アイコンスイッチがオンされたか否かを判別する(ステップPB2)。アイコンスイッチがオンされたときは、そのオンされたアイコンスイッチに応じた処理を行う。
【0031】
曲リストアイコンスイッチがオンされたか否かを判別し(ステップPB3)、オンされたときは曲選択処理を実行する(ステップPB4)。環境設定アイコンスイッチがオンされたか否かを判別し(ステップPB5)、このアイコンがオンされたときは環境設定処理を実行する(ステップPB6)。曲選択処理又は環境設定処理を実行した後は、ステップPB1に移行して図17のメニュー画面を表示する。
【0032】
曲リスト及び環境設定のアイコンスイッチがオンされない場合には、送信アイコンスイッチがオンされたか否かを判別し(ステップPB7)、オンされたときは送受信処理を実行する(ステップPB8)。この後は、設定内容をクリアして(ステップPB9)、図14のメインフローに戻る。送信アイコンスイッチがオンされない場合には、戻りアイコンスイッチがオンされたか否かを判別し(ステップPB)、オンされたときは設定内容をクリアして(ステップPB9)、図14のメインフローに戻る。戻りアイコンがオンされない場合には、ステップPB1に移行する。
【0033】
図18は、図16のフローにおけるステップPB4の曲選択処理のフローである。まず、図19に示す曲リストを表示する(ステップPC1)。この画面には、曲リストの他に「OK」アイコンスイッチ及び「戻る」アイコンスイッチが表示される。次に、いずれかの曲リストがオンされたか否かを判別し(ステップPC2)、オンされたときはその曲番号をレジスタMELODYにセットする(ステップPC3)。
【0034】
曲リストがオンされない場合には、アイコンスイッチがオンされたか否かを判別する(ステップPC4)。オンされたときは、戻りアイコンスイッチがオンされたのか、又はOKアイコンスイッチがオンされたかを判別する(ステップPC5)。戻りアイコンスイッチがオンされたときは、MELODYにセットされている曲番号をクリアして(ステップPC6)、図16のフローに戻る。OKアイコンスイッチがオンされたときは、MELODYにセットされている曲番号を保持した状態で、図16のフローに戻る。
【0035】
図20は、図16のフローにおけるステップPB6の環境設定処理のフローである。まず、図21に示す環境設定画面を表示する(ステップPD1)。この画面には、楽器の機種名を表示するエリアと演奏者のスキルを表示するエリアがあり、「戻る」アイコンスイッチ及び「OK」アイコンスイッチが表示される。環境設定画面を表示した後、キーボードから文字等のデータ入力があるか否かを判別する(ステップPD2)。
【0036】
入力があったときは、そのデータが機種名であるか否かを判別する(ステップPD3)。機種名である場合には、その機種名のデータをレジスタKISHUにセットする(ステップPD4A)。そして、KISHUのデータを送信バッファにストアする(ステップPD4B)。また、KISHUにセットされた機種名を画面の対応するエリアに表示する(ステップPD5)。入力されたデータが機種名でない場合すなわちそのデータが演奏レベル(スキル)である場合には、その演奏レベルのデータをレジスタSKILLにセットする(ステップPD6A)。そして、SKILLのデータを送信バッファにストアする(ステップPD6B)。また、SKILLにセットされた演奏レベルを画面の対応するエリアに表示する(ステップPD7)。機種名又は演奏レベルを表示した後は、ステップPD2に移行してデータ入力を判別する。
【0037】
キーボードからデータ入力がない場合には、アイコンスイッチがオンされたか否かを判別する(ステップPD8)。アイコンスイッチがオンされたときは、オンされたのが戻りアイコンスイッチであるか、又はOKアイコンスイッチであるかを判別する(ステップPD9)。オンされたのが戻りアイコンスイッチである場合には、設定内容をクリアして(ステップPD10)、図16のフローに戻る。オンされたのがOKアイコンスイッチである場合には、設定内容を保持した状態で図16のフローに戻る。
【0038】
図22及び図23は、図16のフローにおけるステップPB8の送受信処理のフローである。図22において、送信データがあるか否かを判別し(ステップPE1)、送信データがある場合には送信処理を実行する(ステップPE2)。送信バッファ内に楽器の機種名のデータやスキルのデータがある場合には、それを環境情報として曲データサーバに送信する。そして、送信が終了したか否かを判別する(ステップPE3)。送信データが残っている場合には送信処理を続行するが、送信が終了したときは受信データがあるか否かを判別する(ステップPE4)。
受信データがある場合には、その受信データを図13に示した受信バッファへストアし(ステップPE5)、図24に示すダウンロード中の画面を表示する(ステップPE6)。そして、受信データが終了したか否かを判別する(ステップPE7)。終了していない場合には、ステップPE4に移行して受信データの有無を判別する。
【0039】
受信データが終了したときは、受信バッファ内のヘッダ部のファイル数をレジスタNにセットする(ステップPE8)。次に、ポインタnを1にセットし(ステップPE9)、nの値をインクリメントしながらnに対応する受信バッファ内のデータを対応するエリアにストアする。
すなわち、nが1であるか否かを判別し(ステップPE10)、nが1である場合には、ヘッダ部のn番目のスタートアドレス及びエンドアドレスで指定されるデータを楽譜データエリアにストアする(ステップPE11)。
nが1でない場合には、図23のフローにおいて、nが2であるか否かを判別し(ステップPE12)、nが2である場合には、ヘッダ部のn番目のスタートアドレス及びエンドアドレスで指定されるデータをCMDデータエリアにストアする(ステップPE13)。
【0040】
nが2でない場合には、nが3であるか否かを判別し(ステップPE14)、nが3である場合には、ヘッダ部のn番目のスタートアドレス及びエンドアドレスで指定されるデータをMIDIデータエリアにストアする(ステップPE15)。
nが3でない場合には、nが4であるか否かを判別し(ステップPE16)、nが4である場合には、ヘッダ部のn番目のスタートアドレス及びエンドアドレスで指定されるデータを伴奏設定情報データエリアにストアする(ステップPE17)。
nが4でない場合には、nが5であるか否かを判別し(ステップPE18)、nが5である場合には、ヘッダ部のn番目のスタートアドレス及びエンドアドレスで指定されるデータをパターン情報データエリアにストアする(ステップPE19)。
【0041】
指定されるデータを対応するエリアにストアした後は、図22のステップPE20においてnの値をインクリメントする。そして、nの値がNの値(この場合は、N=5)より大きくなったか否かを判別する(ステップPE21)。nの値がNの値以下である場合には、ステップPE10に移行する。nの値がNの値より大きい値(この場合は、n=6)になったときは、クオンタイズ処理を実行して(ステップPE22)、図16のフローに戻る。
【0042】
図25及び図26は、クオンタイズ処理のフローである。最初にアドレスレジスタADにMIDIデータエリアのスタートアドレスをセットする(ステップPF1)。そして、ADのアドレスをインクリメントしながらMIDIデータエリアを検索する。
すなわち、MIDI(AD)のデータがガイドチャンネル(コードをナビゲートするチャンネル)のノートオンイベントであるか否かを判別する(ステップPF2)。そのデータがガイドチャンネルのノートオンイベントでない場合には、ADのアドレスをインクリメントする(ステップPF3)。このインクリメントしたADのアドレスがエンドアドレスより大きい値になったか否かを判別する(ステップPF4)。エンドアドレス以下である場合には、ステップPF2に移行してMIDI(AD)のデータの内容を判別する。
【0043】
MIDI(AD)のデータがガイドチャンネルのノートオンイベントである場合には、タイムレジスタTの値を0にリセットする(ステップPF5)。次に、ポインタmの値を1にセットし(ステップPF6)、ポインタnの値を0にセットする(ステップPF7)。そして、ノートオンイベントのノートデータをレジスタNOTE(n)にセットする(ステップPF8)。次に、MIDI(AD+m)のデータの内容を判別する(ステップPF9)。
【0044】
このデータがタイムデータである場合には、Tの値にそのタイムデータすなわちMIDI(AD+m)のデータを加算する(ステップPF10)。そして、Tの値が所定タイムより大きいか否かを判別する(ステップPF11)。所定タイムとは、複数のノートオンイベントがコードであるか否かを判別する閾値である。タイムデータが閾値より小さい複数のノートオンイベントがコードの候補となる。Tの値が所定タイム以下である場合には、mの値をインクリメントする(ステップPF12)。このときAD+mのアドレスがエンドアドレスより大きいか否かを判別する(ステップPF13)。エンドアドレス以下である場合には、ステップPF9に移行して、MIDI(AD)のデータの内容を判別する。
【0045】
MIDI(AD+m)のデータがイベントである場合には、さらにそのMIDI(AD+m)のイベントがガイドチャンネルのノートオンイベントであるか否かを判別する(ステップPF14)。ガイドチャンネルのノートオンイベントである場合には、そのイベントは前のアドレスのイベントとコードを構成する可能性をもつコード候補である。そこで、nの値をインクリメントして(ステップPF15)、そのイベントのノートデータをNOTE(n)にセットする(ステップPF16)。次に、ステップPF12に移行してmの値をインクリメントする。
【0046】
ステップPF11においてTの値が所定タイム以下であり、かつ、次のデータがガイドチャンネルのノートオンイベントである限り、上記ループ処理を繰り返す。次のデータがガイドチャンネルのノートオンイベントでない場合、例えば、コントロールチェンジ等の制御データである場合には、ステップPF12に移行してmの値をインクリメントする。ステップPF11において、Tの値が所定タイムより大きくなった場合には、NOTE(0)〜NOTE(n)にセットした複数のノートオンイベントでコードが成立するか否かを判別する(ステップPF17)。コードが成立しない場合には、NOTE(0)〜NOTE(n)のデータをクリアして(ステップPF18)、ステップPF3に移行してADのアドレスをインクリメントする。
【0047】
ステップPF17においてコードが成立した場合には、図26のフローにおいて、MIDI(AD)のイベントをコードデータに変更する(ステップPF19)。次に、NOTE(1)〜(n)に対するノートオフイベントを削除し(ステップPF20)、タイムデータを変更する(ステップPF21)。すなわち、コードを構成する複数のノートオンイベントを1つのコードデータに変更したので、そのコードイベント対応する1つのノートオフイベントのみを残して、他のノートオフイベントを削除し、その削除によってタイムデータ(デルタタイム)を変更する。また、コード化及びノートオフイベントの削除に応じて、ADのアドレスにmを加算して次のアドレスを指定する(ステップPF22)。そして、図25のステップPF3に移行してADのアドレスをインクリメントする。ステップPF4において、ADのアドレスがエンドアドレスより大きくなった場合には、クオンタイズ処理のフローを終了する。
【0048】
図27は、図14のメインフローにおけるステップPA6の再生処理のフローである。まず、図28に示す再生画面を表示する(ステップPG1)。この画面には、「楽譜ナビ設定」、「楽譜表示」、及び「戻る」アイコンスイッチが表示される。次に、アイコンスイッチがオンされたか否かを判別する(ステップPG2)。いずれかのアイコンスイッチがオンされたときは、そのアイコンに応じた処理を行う。
【0049】
楽譜ナビ設定のアイコンスイッチがオンされたか否かを判別し(ステップPG3)、このアイコンがオンされたときは楽譜ナビ設定処理を実行する(ステップPG4)。あるいは楽譜表示のアイコンスイッチがオンされたか否かを判別し(ステップPG5)、このアイコンがオンされたときは楽譜表示処理を実行する(ステップPG6)。楽譜ナビ設定処理又は楽譜表示処理の後は、ステップPG1に移行して再生画面を表示する。楽譜ナビ設定及び楽譜表示のアイコンスイッチがどちらもオンされない場合には、戻りのアイコンスイッチがオンされたか否かを判別し(ステップPG7)、このアイコンがオンされたときは図14のメインフローに戻る。
【0050】
図29は、図27のフローにおけるステップPG4の楽譜ナビ設定処理のフローである。まず、図30(1)に示す楽譜ナビ設定画面を表示する(ステップPH1)。この画面には、楽譜ナビゲーションを行うか否かを設定する楽譜ナビゲーション用のラジオボタン、次の音符を指示する画像を点滅するか否かを設定する音符点滅用のラジオボタン、及び、演奏結果の間違いを表示するか否かを設定する間違い表示用のラジオボタン、並びに戻りのアイコンスイッチが表示される。
【0051】
そして、いずれかのラジオボタンが操作されたか否かを判別する(ステップPH2)。いずれかのラジオボタンが操作された場合には、その操作されたラジオボタンに応じた処理を行う。すなわち、楽譜ナビゲーション用のラジオボタンが操作されたか否かを判別し(ステップPH3)、このラジオボタンが操作されたときは、オン側の操作であるか又はオフ側の操作であるかを判別する(ステップPH4)。オン側の操作である場合には、フラグGNABFを1(楽譜ナビオン)にセットする(ステップPH5)。オフ側の操作である場合には、GNABFを0(楽譜ナビオフ)にセットする(ステップPH6)。
【0052】
操作されたのが楽譜ナビゲーション用のラジオボタンでない場合には、音符点滅用のラジオボタンが操作されたか否かを判別する(ステップPH7)。このラジオボタンが操作されたときは、オン側の操作であるか又はオフ側の操作であるかを判別する(ステップPH8)。オン側の操作である場合には、フラグBLINKFを1(点滅オン)にセットする(ステップPH9)。オフ側の操作である場合には、BLINKFを0(点滅オフ)にセットする(ステップPH10)。点滅オンに設定された場合には、図30(2)の(a)、(b)に示すように、演奏ガイドの音符の画像51を囲む演奏ガイド用の画像52が点灯と消灯とを交互に繰り返す点滅表示になる。
【0053】
操作されたのが音符点滅用のラジオボタンでない場合には、間違い表示用のラジオボタンが操作されたか否かを判別する(ステップPH11)。このラジオボタンが操作されたときは、オン側の操作であるか又はオフ側の操作であるかを判別する(ステップPH12)。オン側の操作である場合には、フラグMISFを1(間違い表示オン)にセットする(ステップPH13)。オフ側の操作である場合には、MISFを0(間違い表示オフ)にセットする(ステップPH14)。
【0054】
間違い表示オンに設定された場合には、図30(3)の(a)に示すように、演奏ガイドの音符に対応して間違った演奏の音符の画像53を表示する。あるいは、図30(3)の(b)に示すように、間違った演奏の音符の画像54を音符51とは異なる表示色で表示する。あるいはまた、図30(3)の(c)に示すように、間違った演奏の画像55を音符51とは異なる特異な画像で表示する。
【0055】
図29のフローにおいていずれかのフラグをセットした後は、対応するラジオボタンを点灯し、対応しないラジオボタンを消灯する(ステップPH15)。次に、戻りのアイコンスイッチがオンされたか否かを判別する(ステップPH16)。ステップPH2においてラジオボタンが操作されない場合も、ステップPH16に移行して戻りのアイコンスイッチがオンされたか否かを判別する。このアイコンがオンされない場合には、ステップPH2に移行してラジオボタンの操作の有無を判別する。戻りのアイコンがオンされたときは、図27のフローに戻る。
【0056】
図31〜図33は、図27のフローにおけるステップPG6の楽譜表示処理のフローである。図31のフローにおいて、楽譜データエリアのデータに基づき楽譜を表示する(ステップPJ1)。次に、フラグGNABFが1(楽譜ナビオン)であるか否かを判別し(ステップPJ2)、このフラグが1である場合には、音符を指定するポインタnを0(楽譜の先頭の音符)にセットする(ステップPJ3)。次に、WAKU(n)の内容に基づき枠を表示する(ステップPJ4)。この結果、図34に示すように、複数の音符、コード記号等からなる楽譜が表示されるとともに、先頭の音符を囲む枠画像(演奏ガイド用の画像)52が表示される。また、楽譜表示の下側には、「スタート」、「ストップ」、及び「戻り」のアイコンスイッチが表示される。
【0057】
ステップPJ4の後、又は、ステップPJ2においてGNABFが0(楽譜ナビオフ)の場合には枠画像52を表示することなく、アイコンスイッチがオンされたか否かを判別する(ステップPJ5)。いずれかのアイコンスイッチがオンされた場合には、そのアイコンに応じた処理を行う。
スタートのアイコンスイッチがオンされたか否かを判別し(ステップPJ6)、このアイコンがオンされたときは、伴奏情報データエリアにデータがあるか否かを判別する(ステップPJ7)。データがある場合には、そのデータを楽器に転送する(ステップPJ8)。
また、パターン情報データエリアにデータがあるか否かを判別し(ステップPJ9)、データがある場合には、そのデータを楽器に転送する(ステップPJ10)。そして、スタートフラグSTFを1(再生実行)にセットする(ステップPJ11)。
【0058】
ステップPJ6において、スタートのアイコンがオンでない場合には、ストップのアイコンスイッチがオンされたか否かを判別し(ステップPJ12)、このアイコンがオンされたときは、全ての音を消音し(ステップPJ13)、枠画像の表示をクリアする(ステップPJ14)。また、STFを0(再生停止)にセットする(ステップPJ15)。
【0059】
ステップPJ11においてSTFに1をセットした後は、図32のフローにおいて、アドレスレジスタADにMIDIデータエリアのスタートアドレスをセットする(ステップPJ16)。次に、レッスンモードを示すレジスタSTATUSに1をセットし(ステップPJ17)、タイムレジスタSTに現在時間をセットする(ステップPJ18)。さらに、タイムレジスタTに0をセットする(ステップPJ19)。
STATUSの値は押鍵状態によって設定され、1〜3のいずれかの値となる。この値が1の場合には、演奏ガイドの楽音の発音開始タイミングと押鍵タイミングとが合っている状態である。この値が2の場合には、演奏ガイドの楽音の発音開始タイミングに押鍵タイミングが遅れている状態である。この値が3の場合には、演奏ガイドの楽音の発音開始タイミングよりも押鍵タイミングが早い状態である。
【0060】
次に、MEM[AD]のデータがイベントデータであるかタイムデータであるかを判別する(ステップPJ20)。すなわち、曲の最初のデータがイベントデータであるか又はタイムデータであるかを判別する。データがイベントデータである場合には、レジスタΔTに最小時間をセットし(ステップPJ21)、ADをデクリメントする(ステップPJ22)。MEM[AD]のデータがタイムデータである場合には、そのタイムデータMEM[AD]をΔTにセットする(ステップPJ23)。したがって、図30(1)の画面でスタートのアイコンがオンされた瞬間にいきなり再生開始にならず、ΔTにセットされたタイムデータの時間経過後に再生が開始する。
【0061】
ステップPJ22又はステップPJ23の後は、Tの値にΔTの値を加算する(ステップPJ24)。次に、ガイド処理(ステップPJ25)、MIDI IN処理(ステップPJ26)、MIDI OUT処理(ステップPJ27)、楽譜ナビ処理(ステップPJ28)を実行して、図31のステップPJ5に移行する。ステップPJ5においてアイコンスイッチがオンでない場合には、図32のステップPJ25に移行する。
【0062】
図31のステップPJ12において、ストップのアイコンスイッチがオンでない場合には、図33のフローにおいて、戻りのアイコンスイッチがオンされたか否かを判別する(ステップPJ29)。このアイコンがオンされたときは、全ての音の消音処理を行い(ステップPJ30)、STFを0(再生停止)にセットする(ステップPJ31)。そして、図27のフローに戻る。
【0063】
図35〜図38は、図32のフローにおけるステップPJ25のガイド処理のフローである。図35のフローにおいて、STFが1(再生実行)であるか否かを判別し(ステップPK1)、このフラグが1である場合には、現在時刻がST+Tのタイムデータに達したか否かを判別する(ステップPK2)。このタイムデータに達している場合には、ADのアドレスをインクリメントする(ステップPK3)。そして、ADのアドレスがエンドアドレスでないか否かを判別する(ステップPK4)。
【0064】
エンドアドレスでない場合には、MEM[AD]のデータがタイムデータであるか否かを判別する(ステップPK5)。タイムデータである場合には、STATUSの値が3であるか否かを判別する(ステップPK6)。この値が3である場合には、早送りをするためΔTに最小時間をセットする(ステップPK7)。この値が3でなく1又は2である場合には、MEM[AD]をΔTにセットする(ステップPK8)。ΔTにタイムデータをセットした後は、そのΔTのタイムデータをTのタイムデータに加算する(ステップPK9)。そして図32のフローに戻る。
ステップPK4においてADのアドレスがエンドアドレスである場合には、STFに0(再生停止)をセットして(ステップPK10)、図32のフローに戻る。ステップPK1においてSTFが0である場合、又は、ステップPK2において現在時刻がST+Tのタイムデータに達していない場合には、直ちに図32のフローに戻る。
【0065】
ステップPK5において、MEM[AD]のデータがタイムデータでない場合には、図36のフローにおいて、MEM[AD]のデータはイベントデータであるか否かを判別する(ステップPK11)。イベントデータである場合には、チャンネルデータがガイドチャンネルであるか否かを判別する(ステップPK12)。ガイドチャンネルである場合には、さらにイベントデータがノートイベント又はコードイベントであるか否かを判別する(ステップPK13)。ノートイベント又はコードイベントである場合には、ADのアドレスをインクリメントして、ベロシティデータをレジスタVELにセットする(ステップPK14)。そして、VELの値が0でないか否かを判別する(ステップPK15)。この値が0でない場合には、MIDIデータのノート又はコードをレジスタNOTEにセットする(ステップPK16)。
【0066】
次に、ポインタnを0にセットして(ステップPK17)、nの値をインクリメントしながらMIDI OUTバッファ(n)を検索する。すなわち、MIDI OUTバッファ(n)が空きであるか否かを判別し(ステップPK18)、空きでない場合にはnの値をインクリメントする(ステップPK19)。このときnが所定数を超えたか否かを判別し(ステップPK20)、超えていない場合には、ステップPK18に移行してMIDI OUTバッファ(n)を検索する。MIDI OUTバッファ(n)が空きである場合には、MIDI OUTバッファ(n)のイベントエリアにMIDIデータをストアする(ステップPK21)。次に、現在時刻をレジスタWTIMEにセットし(ステップPK22)、MIDI OUTバッファ(n)のタイムエリアにWTIMEのデータをストアする(ステップPK23)。
【0067】
データをストアした後、又はステップPK20においてnが所定数を超えたときは、図37のフローにおいて、STATUSの値が3であるか否かを判別する(ステップPK24)。STATUSの値が3である場合には、STATUSの値を1に変更する(ステップPK25)。そして、チャンネルセットCHSET及びボリュームVOLUMEの値に基づきMIDIデータを作成する(ステップPK26)。
【0068】
図36のフローにおけるステップPK13において、イベントがノートイベント及びコードイベントのいずれでもない場合には、図37のフローにおいて、そのイベントがボリュームイベントであるか否かを判別する(ステップPK27)。ボリュームイベントである場合には、ADのアドレスをインクリメントして、ボリュームの値をレジスタVOLUMEに取り込む(ステップPK28)。次に、STATUSの値が3であるか否かを判別する(ステップPK29)。この値が3である場合には、早送り時の音を消すためにMIDIデータのボリュームの値を最小の値に変更する(ステップPK30)。
【0069】
ボリューム値を最小に変更した後、若しくはステップPK26においてMIDIデータを作成した後、又は、図36のステップPK12においてチャンネルデータがガイドチャンネルでない場合、若しくはステップPK15においてVELの値が0である場合には、図37のステップPK31に移行して、ポインタnを0にセットする。そして、nの値をインクリメントしながらMIDI OUTバッファ(n)を検索する。
【0070】
すなわち、MIDI OUTバッファ(n)が空きであるか否かを判別し(ステップPK32)、空きでない場合にはnの値をインクリメントする(ステップPK33)。このときnが所定数を超えたか否かを判別し(ステップPK34)、超えていない場合には、ステップPK32に移行してMIDI OUTバッファ(n)を検索する。MIDI OUTバッファ(n)が空きである場合には、MIDI OUTバッファ(n)のイベントエリアにMIDIデータをストアする(ステップPK35)。次に、現在時刻をレジスタWTIMEにセットし(ステップPK36)、MIDI OUTバッファ(n)のタイムエリアにWTIMEのデータをストアする(ステップPK37)。
【0071】
データをストアした後、若しくはステップPK34においてnが所定数を超えた場合、又は、図36のステップPK11においてMEM[AD]がイベントデータでない場合には、図35のステップPK3に移行してADをインクリメントする。
【0072】
図37のステップPK24においてSTATUSの値が3でない場合、すなわちこの値が1である場合には、図38のフローにおいて、STATUSの値を2に変更する(ステップPK38)。次に、ポインタnを0にセットして(ステップPK39)、nの値をインクリメントしながらMIDI OUTバッファ(n)を検索する。
すなわち、MIDI OUTバッファ(n)が空きであるか否かを判別し(ステップPK40)、空きでない場合にはnの値をインクリメントする(ステップPK41)。このときnが所定数を超えたか否かを判別し(ステップPK42)、超えていない場合には、ステップPK40に移行してMIDI OUTバッファ(n)を検索する。
【0073】
MIDI OUTバッファ(n)が空きである場合には、MIDI OUTバッファ(n)のイベントエリアににMIDIデータをストアする(ステップPK43)。次に、現在時刻をレジスタWTIMEにセットし(ステップPK44)、MIDI OUTバッファ(n)のタイムエリアににWTIMEのデータをストアする(ステップPK45)。各エリアにデータをストアした後、又はステップPK42においてnが所定数を超えた後は、図32のフローのステップPJ26に移行する。
【0074】
図39は、ステップPJ26のMIDI IN処理のフローである。まず、フラグSTFが1(再生実行)であるか否かを判別する(ステップPL1)。このフラグが1である場合には、MIDI入力があるか否かを判別する(ステップPL2)。入力がある場合には、そのMIDIデータがガイドチャンネルのデータであるか否かを判別する(ステップPL3)。ガイドチャンネルのデータである場合には、さらにそのMIDIデータがノートオン又はコードのイベントであるか否かを判別する(ステップPL4)。ノートオン又はコードのイベントである場合には、次のステップPL5に移行する。上記条件を1つでも満たさない場合には、直ちにこのフローを終了する。
【0075】
ステップPL5においては、MIDIデータのノート又はコードをレジスタKEYにセットする。次に、KEYのデータとNOTEのデータとが一致しているか否かを判別する(ステップPL6)。すなわち、演奏ガイド用として楽器に送信した音高データと、楽器から受信した演奏結果の鍵番号データとが一致しているか否かを判別する。データが一致している場合には、フラグOKFを1(押鍵正解)にセットする(ステップPL7)。次に、現在時刻がST+Tのタイムデータに達していないかを判別する(ステップPL8)。
【0076】
現在時刻がそのタイムデータに達していない場合には、早送りをする必要があるので、STATUSの値を3にセットする(ステップPL9)。ステップPL8において、現在時刻がST+Tのタイムデータに達している場合には、STATUSの値を1にセットし(ステップPL10)、現在時刻からST+Tのタイムデータを減算した値をレジスタSにセットする(ステップPL11)。そして、STのタイムデータにSのタイムデータを加算して更新する(ステップPL12)。すなわち、押鍵の遅れによる時間差を補正する。
【0077】
ステップPL6において、KEYのデータとNOTEのデータとが一致しない場合には、フラグNOFに1をセットする(ステップPL13)。フラグをセットした後、又は、ステップPL9においてSTATUSの値をセットした後、若しくはステップPL12においてSTのタイムデータを更新した後は、図32のステップPJ27に移行する。
【0078】
図40は、ステップPJ27のMIDI OUT処理のフローである。まず、ポインタnを0にセットして(ステップPM1)、nの値をインクリメントしながら以下のループ処理を実行する。MIDI OUTバッファ(n)が空きでないか否かを判別し(ステップPM2)、空きでなくデータがある場合には、MIDI OUTバッファ(n)からMIDIデータとWTIMEのデータを読み出す(ステップPM3)。
【0079】
次に、その読み出したMIDIデータのチャンネルがCHSETのチャンネルと異なっているかを判別する(ステップPM4)。チャンネルが異なっている場合には、現在時刻からWTIMEのタイムデータを減算した値をレジスタDにセットする(ステップPM5)。そして、Dの値が所定時間に達しているか否かを判別する(ステップPM6)。所定時間に達している場合、又はステップPM4においてチャンネルが同じである場合には、ステップPM3において読み出したMIDIデータを楽器に出力する(ステップPM7)。そしてMIDI OUTバッファ(n)をクリアする(ステップPM8)。
【0080】
この後、nの値をインクリメントする(ステップPM9)。ステップPM2においてMIDI OUTバッファ(n)が空きである場合、又はステップPM6においてDの値が所定時間に満たない場合にも、ステップPM9に移行してnの値をインクリメントする。次に、インクリメントしたnの値が所定数を超えたか否かを判別する(ステップPM10)。超えていない場合には、ステップPM2に移行してステップPM10までのループ処理を繰り返す。nの値が所定数を超えたときは、図32のステップPJ28に移行する。
【0081】
図41及び図42は、ステップPJ28の楽譜ナビ処理のフローである。まず、フラグSTFが1(再生実行)であるか否かを判別する(ステップPN1)。このフラグが0である場合には直ちにこのフローを終了するが、このフラグが1である場合には、フラグMISFが1(間違い表示)であるか否かを判別する(ステップPN2)。このフラグが1である場合にはさらに、NOFが1(押鍵誤り)であるか否かを判別する(ステップPN3)。
【0082】
このフラグが1である場合には、演奏ガイドの枠画像であるWAKU(n)の座標とKEYの内容に基づき、KEYの音符に対応するオブジェクトを表示する(ステップPN4)。すなわち、図30(3)の(c)に示すような特異な画像55を表示する。次に、NOFを0にリセットして(ステップPN5)、このフローを終了して図31のステップPJ5に移行する。
【0083】
図41のステップPN2においてMISFが0である場合、又はステップPN3においてNOFが0である場合には、フラグOKFが1(押鍵正解)であるか否かを判別する(ステップPN6)。このフラグが1である場合には、WAKU(n)に対応する演奏ガイドの枠画像の表示を消去するとともに、オブジェクトが表示されていればその画像も消去する(ステップPN7)。次に、nの値をインクリメントする(ステップPN8)。そして、インクリメントしたnの値が最大数以下であるか否かを判別する(ステップPN9)。この値が最大数を超えている場合には、このフローを終了して図31のステップPJ5に移行する。
【0084】
nの値が最大数以下である場合には、図42のフローにおいて、WAKU(n)に対応する枠画像を表示する(ステップPN10)。次に、ポインタQに0をセットし(ステップPN11)、OKFを0にリセットする(ステップPN12)。このリセットの後、又は図41のステップPN6においてOKFが0である場合には、フラグBLINKFが1(点滅表示)であるか否かを判別する(ステップPN13)。このフラグが0である場合には直ちにこのフローを終了するが、このフラグが1である場合には、Qの値をインクリメントする(ステップPN14)。そして、Qの値が所定値を超えたか否かを判別する(ステップPN15)。
【0085】
この値が所定値を超えたときは、枠画像の表示又は消去を指定するフラグBFを反転し(ステップPN16)、Qの値を0にセットする(ステップPN17)。このセットの後、又はステップPN15においてQの値が所定値を超えない場合には、ステップPN18においてBFが1であるか否かを判別する。BFが1である場合には、WAKU(n)の画像を表示する(ステップPN19)。BFが0である場合には、WAKU(n)の画像を消去する(ステップPN20)。枠画像の表示又は消去の後は、図31のステップPJ5に移行する。すなわち、演奏ガイド用の画像である枠画像が所定値のインターバルで点滅表示される。
【0086】
図43は、図2に示した楽器のCPU11のメモリエリアMEMを示している。MEMにはユーザーエリア(RAMエリア)と固定エリア(ROMエリア)があり、複数種類の伴奏情報のデータを格納するための複数のエリアMEM(0)、MEM(1)、…、MEM(N)がある。各エリアMEM( )には、イベントデータ及びタイムデータが交互に格納される。
【0087】
次に、楽器の動作についてCPU11のフローチャートに基づいて説明する。図44は楽器のメインフローである。所定のイニシャライズ処理(ステップGA1)の後、MIDI処理(ステップGA2)、伴奏処理(ステップGA3)、スイッチ処理(ステップGA4)、鍵ガイド処理(ステップGA5)、押鍵処理(ステップGA6)、伴奏処理(ステップGA7)、発音指示処理(ステップGA8)、その他の処理(ステップGA9)、を繰り返し実行する。
【0088】
図45は、図44のフローにおけるMIDI処理のフローである。この処理ではMIDI IN処理(ステップGB1)、MIDI OUT処理(ステップGB2)を実行する。
MIDI IN処理では、図46に示すように、MIDI INがあるか否かを判別する(ステップGC1)。MIDI INがない場合には直ちにこのフローを終了するが、MIDI INがあったときは、ポインタnに0をセットし(ステップGC2)、nをインクリメントしながらMIDI INバッファ(n)が空きであるか否かを判別する(ステップGC3)。
【0089】
MIDI INバッファ(n)が空きでない場合には、nの値をインクリメントする(ステップGC4)。このときnの値が所定数を超えたか否かを判別する(ステップGC5)。所定数以内である場合には、ステップGC3に移行して、MIDI INバッファ(n)が空きであるか否かを判別する。空きである場合には、MIDI INバッファ(n)のエリアにMIDIデータをストアする(ステップGC6)。そして、ステップGC1に移行してMIDI INの有無を判別する。ステップGC5においてnの値が所定数を超えたときは、図45のフローに戻り、ステップGB2のMIDI OUT処理に移行する。
【0090】
MIDI OUT処理では、図47に示すように、ポインタnに0をセットし(ステップGD1)、nの値をインクリメントしながら以下のループ処理を実行する。すなわち、MIDI OUTバッファ(n)が空きでないか否かを判別し(ステップGD2)、空きでなくデータがある場合には、MIDI OUTバッファ(n)からMIDIデータを読み出してパソコンに出力する(ステップGD3)。そしてMIDI OUTバッファ(n)をクリアする(ステップGD4)。この後、nの値をインクリメントする(ステップGD5)。ステップGD2においてMIDI OUTバッファ(n)が空きである場合にも、ステップGD5に移行してnの値をインクリメントする。次に、インクリメントしたnの値が所定数を超えたか否かを判別する(ステップGD6)。超えていない場合には、ステップGD2に移行してステップGD6までのループ処理を繰り返す。nの値が所定数を超えたときは、図44のメインフローに戻り、ステップGA3に移行する。
【0091】
図48は、メインフローにおけるステップGA3の伴奏情報設定処理のフローである。この処理では、ポインタnに0をセットし(ステップGE1)、nの値をインクリメントしながら以下のループ処理を実行する。すなわち、MIDI INバッファ(n)のデータが伴奏情報であるか否かを判別し(ステップGE2)、伴奏情報である場合には、その伴奏情報に基づき楽器設定を行う(ステップGE3)。ステップGE2においてMIDI INバッファ(n)のデータが伴奏パターンである場合には、楽器のパターン作成エリアに転送する(ステップGE5)。この転送の後、又はステップGE3における楽器設定の後は、MIDIOUTバッファ(n)をクリアする(ステップGE6)。この後、nの値をインクリメントする(ステップGE7)。ステップGE4においてMIDI INバッファ(n)のデータが伴奏パターンでない場合にも、ステップGE7に移行してnの値をインクリメントする。次に、インクリメントしたnの値が所定数を超えたか否かを判別する(ステップGE8)。超えていない場合には、ステップGE2に移行してステップGE8までのループ処理を繰り返す。nの値が所定数を超えたときは、図44のメインフローに戻り、ステップGA4に移行する。
【0092】
図49は、メインフローにおけるステップGA4のスイッチ処理のフローである。まず、伴奏パターンを選択するSELスイッチが操作されたか否かを判別する(ステップGF1)。操作されたときは、選択された伴奏パターンの番号をレジスタBANSOにセットする(ステップGF2)。このセットの後、又はステップGF1においてSELスイッチが操作されない場合には、スタートスイッチがオンされたか否かを判別する(ステップGF3)。このスイッチがオンされない場合には、直ちにこのフローを終了する。
【0093】
このスイッチがオンされたときは、スタートフラグSTFを反転する(ステップGF4)。そして、STFが1(伴奏演奏実行)であるか否かを判別し(ステップGF5)、このフラグが1である場合には、BANSOの番号に対応する伴奏パターンエリアのスタートアドレスをアドレスレジスタADにセットする(ステップGF6)。次に、初期タイムのデータをタイムレジスタTにセットし(ステップGF7)、タイマインタラプトを禁止解除にする(ステップGF8)。
ステップGF5において、STFが0(伴奏演奏停止)である場合には、消音処理をして(ステップGF9)、タイマインタラプトを禁止する(ステップGF10)。ステップGF8におけるタイマインタラプト禁止解除の後、又はステップGF10におけるタイマインタラプト禁止の後は、図44のメインフローに戻り、ステップGA5に移行する。
【0094】
図50は、メインフローにおけるステップGA5の鍵ガイド処理のフローである。この処理では、ポインタnに0をセットし(ステップGK1)、nの値をインクリメントしながら以下のループ処理を実行する。すなわち、MIDI INバッファ(n)が空きでないか否かを判別し(ステップGK2)、空きでない場合には、そのMIDIデータがノート又はコードのイベントであるか否かを判別する(ステップGK3)。ノート又はコードのイベントである場合には、さらにそのイベントのチャンネルアがガイドチャンネルであるか否かを判別する(ステップGK4)。
【0095】
ガイドチャンネルである場合には、MIDIデータのベロシティが0でないか否かを判別する(ステップGK5)。ベロシティが0でない場合には、そのベロシティの値をレジスタVELにセットする(ステップGK6)。次に、VELの値にVSETの値を乗算して、その乗算値に1を加算しその値をVELの値として更新する(ステップGK7)。VSETの値はユーザーによって所望の値に設定することができる。したがって、この値を0に設定することも考えられる。この場合には、上記演算の結果が0になりノートオフになるので、この状態を回避するため1を加算する。VELの更新の後、MIDIデータのベロシティをVELの値に変更する(ステップGK8)。また、MIDIデータのノートに対応する鍵内のLEDを点灯する(ステップGK9)。
【0096】
次に、nの値をインクリメントする(ステップGK10)。そして、インクリメントしたnの値が所定数を超えたか否かを判別する(ステップGK11)。超えていない場合には、ステップGK2に移行してステップGK11までのループ処理を繰り返す。ステップGK5において、MIDIデータのベロシティが0である場合には、MIDIデータのノートに対応するLEDを消灯する(ステップGK12)。次に、nの値をインクリメントする(ステップGK10)。そして、インクリメントしたnの値が所定数を超えたか否かを判別する(ステップGK11)。超えていない場合には、ステップGK2に移行してステップGK11までのループ処理を繰り返す。nの値が所定数を超えたときは、図44のメインフローに戻り、ステップGA6に移行する。
【0097】
図51は、メインフローにおけるステップGA6の押鍵処理のフローである。この処理では最初に鍵盤を走査し(ステップGG1)、鍵変化があるか否かを判別する(ステップGG2)。鍵変化がオンすなわち押鍵である場合には、その鍵のチャンネル、ノート、及びベロシティでMIDIデータを作成する(ステップGG3)。一方、鍵変化がオフすなわち離鍵である場合には、その鍵のチャンネル、ノート、及び値が0のベロシティでMIDIデータを作成する(ステップGG4)。
【0098】
次に、ポインタnに0をセットし(ステップGG5)、nの値をインクリメントしながらMIDI OUTバッファ(n)が空きであるか否かを判別する(ステップGD2)。空きでない場合には、nの値をインクリメントする(ステップGG7)。そして、インクリメントしたnの値が所定数を超えたか否かを判別する(ステップGG8)。超えていない場合には、ステップGG2に移行してMIDI OUTバッファ(n)が空きであるか否かを判別する。空きである場合には、MIDI OUTバッファ(n)にMIDIデータをストアする(ステップGG9)。
【0099】
MIDIデータをストアした後、又はステップGG8においてnの値が所定値を超えた場合、若しくはステップGG2において鍵変化がない場合には、鍵盤の走査が終了したか否かを判別する(ステップGG10)。走査が終了していない場合には、ステップGG1に移行して走査を続行する。走査が終了した場合には、MIDI OUTのバッファの内容からコードが成立しているか否かを判別する(ステップGG11)。成立している場合には、コードの根音をレジスタROOTにセットし、コード種をレジスタCODEにセットする(ステップGG12)。根音及びコード種をセットした後、又はコードが成立しない場合には、図44のメインフローに戻り、ステップGA7に移行する。
【0100】
図52は、メインフローにおけるステップGA7の伴奏処理のフローである。まず、スタートフラグSTFが1(伴奏演奏実行)であるか否かを判別し(ステップGH1)、このフラグが1である場合には、タイマレジスタTの値が0であるか否かを判別する(ステップGH2)。STFが0(伴奏演奏停止)である場合、又はTの値が0でない場合には、直ちにこのフローを終了する。
【0101】
Tの値が0である場合には、MEM(AD)からMIDIイベントを読み出す(ステップGH3)。そしてそのMIDIイベントがコードトデータであるか否かを判別する(ステップGH4)。コードデータである場合には、CODEのコード種及びROOTの根音で複数の音高データに変換する(ステップGH5)。音高変換の後、又はMIDIイベントがコードデータでなくノートデータである場合には、ポインタnに0をセットして(ステップGH6)、nをインクリメントしながら、MIDI OUTバッファ(n)が空きであるか否かを判別する(ステップGH7)。空きでない場合には、nの値をインクリメントする(ステップGH8)。そして、インクリメントしたnの値が所定数を超えたか否かを判別する(ステップGH9)。超えていない場合には、ステップGH7に移行してMIDI OUTバッファ(n)が空きであるか否かを判別する。空きである場合には、MIDI OUTバッファ(n)にMIDIデータをストアする(ステップGH10)。
【0102】
MIDIデータをストアした後、又はステップGH9においてnの値が所定値を超えた場合には、ADのアドレスをインクリメントする(ステップGH11)。そして、インクリメントしたADのアドレスがエンドアドレスを超えたか否かを判別する(ステップGH12)。超えた場合には、ADのアドレスをスタートアドレスに変更する(ステップGH13)。ADのアドレスがエンドアドレスを超えない場合、又はスタートアドレスに変更した場合には、MEM(AD)のデータがタイムデータであるか否かを判別する(ステップGH14)。タイムデータである場合には、MEM(AD)のタイムデータをTにセットして(ステップGH15)、ステップGH11に移行してステップGH14までのループを繰り返す。MEM(AD)がタイムデータでない場合には、図44のメインフローに戻り、ステップGA8に移行する。
【0103】
図53は、メインフローにおける発音指示処理のフローである。まず、ポインタnに0をセットして(ステップGJ1)、nをインクリメントしながら以下のループ処理を繰り返す。すなわち、MIDI INバッファ(n)が空きでないか否かを判別し(ステップGJ2)、空きでない場合には、そのMIDIデータを音源へ送付する(ステップGJ3)。そしてMIDI INバッファ(n)をクリアする(ステップGJ4)。
【0104】
バッファをクリアした後、又はステップGJ2においてMIDI INバッファ(n)が空きである場合には、MIDI OUTバッファ(n)が空きでないか否かを判別し(ステップGJ2)、空きでない場合には、そのMIDIデータを音源へ送付する(ステップGJ6)。そしてMIDI OUTバッファ(n)をクリアする(ステップGJ7)。
バッファをクリアした後、又はステップGJ5においてMIDI OUTバッファ(n)が空きである場合には、nの値をインクリメントする(ステップGJ8)。そしてnの値が所定数を超えたか否かを判別する(ステップGJ9)。超えていない場合には、ステップGJ2に移行して上記ループ処理を繰り返す。nの値が所定数を超えた場合には、図44のメインフローに戻り、ステップGA9のその他の処理を実行する。
【0105】
このように上記実施形態によれば、パソコン2は、演奏ガイド用の楽音データを楽器1に出力するとともに、音符の画像及び演奏ガイド用の画像を表示部39に表示し、曲の進行に応じて演奏ガイド用の画像を移動して出力する楽音データに対応する音符を指示する。
したがって、インターネット等の通信手段を介して受信した曲データに基づいて、楽譜に合わせて演奏教習を行うことができる。
【0106】
この場合において、楽譜の画像データは、その楽譜を構成する複数の音符の表示位置データを含み、CPU31は、次に演奏すべき音符の表示位置データに基づいて演奏ガイド用の画像を表示する。
さらに、演奏ガイド用の画像データは、楽譜を構成する各音符の表示位置ごとの複数の画像データで構成され、CPU31は、次に演奏すべき音符の表示位置データに対応する演奏ガイド用の画像データを選択的にHD42から読み出して、その演奏ガイド用の画像を表示する。
【0107】
この場合において、CPU31は、次に演奏すべき音符に対応する演奏ガイド用の画像の表示を点滅することにより、楽譜に合わせた演奏練習をより効果的に行うことができる。
【0108】
またこの場合において、CPU31は、楽器1から受信した演奏結果のデータが出力された楽音データと一致しない場合には、その演奏結果のデータを画像として表示する。例えば、演奏結果のデータを演奏結果の音高を示す音符の画像として表示する。さらにこの場合、音高を示す音符の画像をHD42から読み出した音符の画像とは異なる表示色で表示する。あるいは、演奏結果のデータを音符の画像とは異なる特異な画像として表示する。
【0109】
したがってユーザーは、押鍵の誤りを目で確認できるので、楽譜に合わせた演奏練習をより一層効果的に行うことができる。
【0110】
なお、上記実施形態においては、パソコン2によって曲データサーバ4から楽譜の画像データと楽音のMIDIデータを受信する構成にしたが、楽器内にMODEM及び表示部を収容し、ネットワークを介して直接曲データサーバにアクセスして、楽譜の画像データと楽音のMIDIデータを受信する構成にしてもよい。あるいは、楽器内にMODEMだけを装備して、表示部については、パソコンのディスプレイ装置やテレビの表示部に楽譜を表示させる構成にしてもよい。
【0111】
また、上記実施形態においては、パソコン2のROM33に格納されている演奏教習処理のプログラムによって、楽譜対応の演奏教習を行う構成にしたが、このプログラムをパソコンや楽器によって読み取り可能な汎用の記憶媒体、例えば、フロッピーディスク、CD、MDその他に記憶して、上記フローチャートに示した演奏教習処理をパソコンや楽器に実行させる構成にしてもよい。この場合には、記憶媒体の発明を提供する。
あるいは、演奏教習処理のプログラムを曲データサーバ4からネットワーク3を介してダウンロードする構成にしてもよい。
【0112】
【発明の効果】
本発明によれば、演奏ガイド用の楽音データを演奏手段に出力するとともに、音符の画像及び演奏ガイド用の画像を表示手段に表示し、曲の進行に応じて演奏ガイド用の画像を移動して出力する楽音データに対応する音符を指示する。
したがって、インターネット等の通信手段を介して受信した曲データに基づいて、楽譜に合わせて演奏教習を行うことができる。
【図面の簡単な説明】
【図1】本発明の装置のシステム構成を示す図。
【図2】図1における楽器のシステム構成を示すブロック図。
【図3】図1におけるパソコンのシステム構成を示すブロック図。
【図4】図1における曲データサーバのメモリエリアを示す図。
【図5】図1における曲データサーバのメモリエリアを示す図。
【図6】図1における曲データサーバのメモリエリアを示す図。
【図7】図1における曲データサーバのメモリエリアを示す図。
【図8】図1における曲データサーバのメモリエリアを示す図。
【図9】図1における曲データサーバのメインフローチャート。
【図10】図9におけるファイル作成処理のフローチャート。
【図11】図10に続くファイル作成処理のフローチャート。
【図12】図11に続くファイル作成処理のフローチャート。
【図13】図1におけるパソコンのメモリエリアを示す図。
【図14】図3におけるパソコンのCPUのメインフローチャート。
【図15】メニュー画面を示す図。
【図16】図14におけるダウンロード処理のフローチャート。
【図17】ダウンロード画面を示す図。
【図18】図16における曲選択処理のフローチャート。
【図19】曲リストの画面を示す図。
【図20】図16における環境設定処理のフローチャート。
【図21】環境設定の画面を示す図。
【図22】図16における送受信処理のフローチャート。
【図23】図22に続く送受信処理のフローチャート。
【図24】曲ダウンロード中の画面を示す図。
【図25】図22におけるクオンタイズ処理のフローチャート。
【図26】図25に続くクオンタイズ処理のフローチャート。
【図27】図14における再生処理のフローチャート。
【図28】曲再生のメニュー画面を示す図。
【図29】図27における楽譜ナビ設定処理のフローチャート。
【図30】(1)は楽譜ナビ設定の画面を示す図、(2)は演奏ガイド用の画像を点滅表示する例を示す図、(3)は押鍵誤りを表示する複数の例を示す図。
【図31】図27における楽譜表示処理のフローチャート。
【図32】図31に続く楽譜表示処理のフローチャート。
【図33】図31に続く楽譜表示処理のフローチャート。
【図34】楽譜表示の画面を示す図。
【図35】図32におけるガイド処理のフローチャート。
【図36】図35に続くガイド処理のフローチャート。
【図37】図36に続くガイド処理のフローチャート。
【図38】図37に続くガイド処理のフローチャート。
【図39】図32におけるMIDI IN処理のフローチャート。
【図40】図32におけるMIDI OUT処理のフローチャート。
【図41】図32における楽譜ナビ処理のフローチャート。
【図42】図41に続く楽譜ナビ処理のフローチャート。
【図43】図1における楽器のメモリエリアを示す図。
【図44】図2における楽器のCPUのメインフローチャート。
【図45】図44におけるMIDI処理のフローチャート。
【図46】図45におけるMIDI IN処理のフローチャート。
【図47】図45におけるMIDI OUT処理のフローチャート。
【図48】図44における伴奏情報設定処理のフローチャート。
【図49】図44におけるスイッチ処理のフローチャート。
【図50】図44における鍵ガイド処理のフローチャート。
【図51】図44における押鍵処理のフローチャート。
【図52】図44における伴奏処理のフローチャート。
【図53】図44における発音指示処理のフローチャート。
【符号の説明】
1 楽器
2 パソコン
3 ネットワーク
4 曲データサーバ
Claims (8)
- 複数の音符からなる楽譜の画像データ、当該楽譜を構成する各音符の表示位置ごとの複数の画像データで構成されるガイド用の画像データ、及び当該楽譜の楽音データを含む曲データを受信して記憶手段に記憶する受信手段と、
前記記憶手段から読み出した楽譜の画像データに基づいて楽譜の画像を所定の表示手段に表示するとともに、曲の進行に応じて次に演奏すべき音符の表示位置データに対応する演奏ガイド用の画像データを選択的に前記記憶手段から読み出して当該演奏ガイド用の画像を前記表示手段に表示する表示制御手段と、
次に演奏すべき操作子をガイドする演奏手段に対して前記演奏ガイド用の画像の位置に対応する音符の楽音データを前記記憶手段から読み出して出力する出力制御手段と、
を有することを特徴とする演奏教習装置。 - 前記ガイド用の画像データは、当該楽譜を構成する複数の音符の表示位置データを含み、前記表示制御手段は、次に演奏すべき音符の表示位置データに基づいて前記演奏ガイド用の画像を表示することを特徴とする請求項1に記載の演奏教習装置。
- 前記表示制御手段は、次に演奏すべき音符に対応する前記演奏ガイド用の画像の表示を点滅することを特徴とする請求項1及び2のいずれか1項に記載の演奏教習装置。
- 前記表示制御手段は、前記演奏手段から受信した演奏結果のデータが前記出力制御手段によって出力された楽音データと一致しない場合には、当該演奏結果のデータを画像として表示することを特徴とする請求項1〜3のいずれか1項に記載の演奏教習装置。
- 前記表示制御手段は、前記演奏結果のデータを当該演奏結果の音高を示す音符の画像として表示することを特徴とする請求項4に記載の演奏教習装置。
- 前記表示制御手段は、前記音高を示す音符の画像を前記記憶手段から読み出した音符の画像とは異なる表示色で表示することを特徴とする請求項5に記載の演奏教習装置。
- 前記表示制御手段は、前記演奏結果のデータを音符の画像とは異なる特異な画像として表示することを特徴とする請求項4に記載の演奏教習装置。
- 複数の音符からなる楽譜の画像データ、ガイド用の画像データ、及び当該楽譜の楽音データを含む曲データを受信して記憶手段に記憶する受信手順と、
前記記憶手段から読み出した楽譜の画像データに基づいて楽譜の画像を所定の表示手段に表示するとともに、曲の進行に応じて次に演奏すべき音符の表示位置データに対応する演奏ガイド用の画像データを選択的に前記記憶手段から読み出して当該演奏ガイド用の画像を前記表示手段に表示する表示制御手順と、
次に演奏すべき操作子をガイドする演奏手段に対して前記演奏ガイド用の画像の位置に対応する音符の楽音データを前記記憶手段から読み出して出力する出力制御手順と、
を実行する演奏教習処理のプログラムを記憶した記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000078560A JP3729016B2 (ja) | 2000-03-21 | 2000-03-21 | 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000078560A JP3729016B2 (ja) | 2000-03-21 | 2000-03-21 | 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001265337A JP2001265337A (ja) | 2001-09-28 |
JP3729016B2 true JP3729016B2 (ja) | 2005-12-21 |
Family
ID=18595953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000078560A Expired - Fee Related JP3729016B2 (ja) | 2000-03-21 | 2000-03-21 | 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3729016B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2003221153A1 (en) | 2002-03-25 | 2003-10-08 | Yoshihiko Sano | Representation generation method, representation generation device, and representation generation system |
JP2006189471A (ja) * | 2004-12-28 | 2006-07-20 | Konami Co Ltd | プログラム、歌唱力判定方法、ならびに、判定装置 |
JP2008152279A (ja) * | 2008-02-01 | 2008-07-03 | Yamaha Corp | 電子音楽装置およびその制御方法を実現するためのプログラム |
JP7456149B2 (ja) * | 2019-12-23 | 2024-03-27 | カシオ計算機株式会社 | プログラム、電子機器、方法、および演奏データ表示システム |
-
2000
- 2000-03-21 JP JP2000078560A patent/JP3729016B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001265337A (ja) | 2001-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Torre et al. | The Hands: The making of a digital musical instrument | |
US6444888B1 (en) | Musical computer keyboard apparatus and method | |
US20050172780A1 (en) | Fingering guide displaying apparatus for musical instrument and computer program therefor | |
JP3729016B2 (ja) | 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 | |
JP3772635B2 (ja) | 演奏教習システム | |
JP2001265331A (ja) | 演奏教習システム及び演奏教習処理のプログラムを記憶した記憶媒体 | |
JP3796752B2 (ja) | 音楽演奏プログラム | |
JP2016173599A (ja) | 電子楽器及びプログラム | |
JP2013152395A (ja) | 電子楽器及びプログラム | |
JP4096952B2 (ja) | 楽音発生装置 | |
JP2007248880A (ja) | 演奏制御装置、およびプログラム | |
JPS58221894A (ja) | 楽譜表示装置におけるキ−オン時刻の処理方法 | |
JP4117596B2 (ja) | 自動演奏装置および自動演奏方法 | |
JP4239937B2 (ja) | 作曲支援装置、及びプログラム | |
JP2962075B2 (ja) | 電子楽器の編集装置 | |
JP5481843B2 (ja) | 楽音発生装置および楽音発生プログラム | |
JP4380467B2 (ja) | 楽譜表示装置及びプログラム | |
JP2008233930A (ja) | 音声データ処理装置及びプログラムを記録した媒体 | |
JP4696808B2 (ja) | 臨時記号表示装置および臨時記号表示プログラム | |
JP2005107065A (ja) | 曲データ配信システム並びに曲データの配信を受ける端末装置および曲再生処理のプログラム | |
JP3493763B2 (ja) | 画像制御装置 | |
JP3572666B2 (ja) | 電子楽器および自動演奏情報記憶装置 | |
JP2976942B2 (ja) | カラオケ装置及び歌詞色変えデータ作成方法並びにカラオケデータ記憶媒体 | |
JP3835307B2 (ja) | 録音設定装置、及びプログラム | |
JP3876733B2 (ja) | 選択制御装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050802 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050824 |
|
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: 20050913 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050926 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3729016 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081014 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101014 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101014 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121014 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121014 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131014 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |