JP4221567B2 - 演奏練習装置、演奏練習方法および演奏練習プログラム - Google Patents
演奏練習装置、演奏練習方法および演奏練習プログラム Download PDFInfo
- Publication number
- JP4221567B2 JP4221567B2 JP2002349736A JP2002349736A JP4221567B2 JP 4221567 B2 JP4221567 B2 JP 4221567B2 JP 2002349736 A JP2002349736 A JP 2002349736A JP 2002349736 A JP2002349736 A JP 2002349736A JP 4221567 B2 JP4221567 B2 JP 4221567B2
- Authority
- JP
- Japan
- Prior art keywords
- note
- performance
- guidance
- notes
- search
- 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】
【従来の技術】
曲進行に同期して読み出される練習曲の曲データと、その練習曲の演奏操作に応じて発生する演奏データとを比較して演奏ミスをカウントし、カウントした演奏ミスの多少により難度が異なる曲を練習させるようにした演奏練習装置が知られている。
この種の装置として、例えば特許文献1には、曲データと演奏データとを比較して音高に関する不適操作や操作タイミングに関する不適操作の有無を検出し、音高に関する不適操作が所定回数を超えた場合には曲データに基づき演奏操作を案内表示させ、一方、操作タイミングに関する不適操作が所定回数を超えた場合には曲データの読み出し速度を低下させることによって、練習者の演奏ミスの種別に応じた適切な練習形態を具現する技術が開示されている。
また、特許文献2には、曲データと演奏データとを比較して不適な演奏操作の種別を判別し、判別した種別毎に不適な演奏操作の回数をカウントして、カウントした種別毎の不適な演奏操作の回数に応じた演奏操作の評価を表示することによって、練習者に不適な演奏操作の種別を認識させる技術が開示されている。
【0003】
【特許文献1】
特許公開平5−289606号公報
【特許文献2】
特許公開平5−303326号公報
【0004】
【発明が解決しようとする課題】
ところで、上述した従来の演奏練習装置は、曲をある程度演奏できる能力を備えたユーザが演奏ミスせずに曲演奏できるように独習する環境を提供するものであり、曲演奏を練習する以前のレベル、例えば鍵盤を全く弾いたことが無く指使いも覚束ない初心者ユーザに、ある音高の音を出すにはどの鍵を弾けばよいのかや、ある鍵を弾くとどの音高の音が出るかを体得させて演奏操作そのものを練習させることができない、という問題がある。
【0005】
そこで本発明は、このような事情に鑑みてなされたもので、初心者ユーザに演奏操作を体得させることができる演奏練習装置、演奏練習方法および演奏練習プログラムを提供することを目的としている。
【0006】
【課題を解決するための手段】
上記目的を達成するために、請求項1に記載の発明では、曲を形成する各音を表す曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶される曲データから連続する2音を組とした前回ノート、今回ノートおよびその出現回数を備えた複数のノート列を形成するノート列形成手段と、前記ノート列形成手段によって形成された各ノート列に、正解回数、成功率、追加ノート数及び発音ノート数の記憶エリアがそれぞれ設けられたノート列記憶手段と、前記曲データ記憶手段から読み出す曲データに従って演奏案内する一方、案内通りの演奏操作がなされる毎に、前記ノート列記憶手段に記憶される各ノート列の内、演奏操作されたノート列の正解回数を歩進させる演奏案内手段と、前記演奏案内手段による演奏案内が完了した場合に、ノート列毎に、正解回数と出現回数とに応じた成功率およびその成功率に対応した追加ノート数を発生して前記ノート列記憶手段の対応する記憶エリアに格納し、前回ノート、今回ノート、出現回数、正解回数、成功率および追加ノート数からなる評価データを生成する評価データ生成手段と、練習案内の開始指示に応答して、前記ノート列記憶手段に記憶される各追加ノート数を前記ノート列記憶手段の対応する発音ノート数の記憶エリアに記憶させる発音数記憶手段と、前記開始指示に応答して前記曲データ記憶手段から曲データの音高を読み出し、当該読み出された音高を演奏案内する練習演奏案内手段と、この演奏案内された音高を前回ノートとし、発音ノート数が0でなくかつ最も発音ノート数の大きいノート列を検索する検索処理を実行する検索手段と、この検索手段によりノート列が検索された場合は、このノート列の今回ノートを演奏案内するとともに、前記ノート列に対応する発音ノート数を1つ減少させた後、前記検索手段に対して当該今回ノートを前回ノートとして再度検索処理を実行させる検索制御手段と、前記検索手段によりノート列が検索されない場合には、前記曲データ記憶手段に記憶された曲データの次の音高を読み出す読み出し制御手段と、を具備することを特徴とする。
【0007】
請求項2に記載の発明では、曲を形成する各音を表す曲データを記憶する演奏練習装置に適用される演奏練習方法であって、前記曲データから連続する2音を組とした前回ノート、今回ノートおよびその出現回数を備えたノート列を形成するノート列形成過程と、前記曲データに従って演奏案内する一方、案内通りの演奏操作がなされる毎に、前記ノート列記憶過程にて記憶されたノート列の内、演奏操作されたノート列の正解回数を歩進させる演奏案内過程と、前記演奏案内過程による演奏案内が完了した場合に、ノート列毎に、正解回数と出現回数とに応じた成功率およびその成功率に対応した追加ノート数を発生してノート列記憶手段の対応する記憶エリアに格納し、前回ノート、今回ノート、出現回数、正解回数、成功率および追加ノート数からなる評価データを生成する評価データ生成過程と、練習案内の開始指示に応答して、前記ノート列記憶手段に記憶される各追加ノート数を前記ノート列記憶手段の対応する発音ノート数の記憶エリアに記憶させる発音数記憶過程と、前記開始指示に応答して前記曲データ記憶手段から曲データの音高を読み出し、当該読み出された音高を演奏案内する練習演奏案内過程と、この演奏案内された音高を前回ノートとし、発音ノート数が0でなくかつ最も発音ノート数の大きいノート列を検索する検索処理を実行する検索過程と、この検索過程によりノート列が検索された場合は、このノート列の今回ノートを演奏案内するとともに、前記ノート列に対応する発音ノート数を1つ減少させた後、前記検索過程に対して当該今回ノートを前回ノートとして再度検索処理を実行させる検索制御過程と、前記検索過程によりノート列が検索されない場合には、前記曲データ記憶手段に記憶された曲データの次の音高を読み出す読み出し制御過程と、を具備することを特徴とする。
【0008】
請求項3に記載の発明では、曲を形成する各音を表す曲データを記憶する手段およびコンピュータを備えた演奏練習装置で実行される演奏練習プログラムであって、前記曲データから連続する2音を組とした前回ノート、今回ノートおよびその出現回数を備えたノート列を形成するノート列形成ステップと、前記曲データに従って演奏案内する一方、案内通りの演奏操作がなされる毎に、前記ノート列記憶ステップにて記憶されたノート列の内、演奏操作されたノート列の正解回数を歩進させる演奏案内ステップと、前記演奏案内ステップによる演奏案内が完了した場合に、ノート列毎に、正解回数と出現回数とに応じた成功率およびその成功率に対応した追加ノート数を発生してノート列記憶手段の対応する記憶エリアに格納し、前回ノート、今回ノート、出現回数、正解回数、成功率および追加ノート数からなる評価データを生成する評価データ生成ステップと、練習案内の開始指示に応答して、前記ノート列記憶手段に記憶される各追加ノート数を前記ノート列記憶手段の対応する発音ノート数の記憶エリアに記憶させる発音数記憶ステップと、前記開始指示に応答して前記曲データ記憶手段から曲データの音高を読み出し、当該読み出された音高を演奏案内する練習演奏案内ステップと、この演奏案内された音高を前回ノートとし、発音ノート数が0でなくかつ最も発音ノート数の大きいノート列を検索する検索処理を実行する検索ステップと、この検索ステップによりノート列が検索された場合は、このノート列の今回ノートを演奏案内するとともに、前記ノート列に対応する発音ノート数を1つ減少させた後、前記検索ステップに対して当該今回ノートを前回ノートとして再度検索処理を実行させる検索制御ステップと、前記検索ステップによりノート列が検索されない場合には、前記曲データ記憶手段に記憶された曲データの次の音高を読み出す読み出し制御ステップと、を前記コンピュータで実行させることを特徴とする。
【0012】
本発明では、曲を形成する各音を表す曲データを記憶しておき、この曲データから2音を組とした前回ノートおよび今回ノートからなる複数のノート列を形成した後、曲データに応じた演奏案内を行い、その演奏案内とは異なる誤った演奏操作を行ったノート列に、正しい演奏操作を繰り返し練習させるための追加ノート数を付加する。そして、曲データに応じた演奏案内を行い、これに従って演奏操作された音高に一致する前回ノートを有し、かつ最も追加ノート数の大きいノート列を前記複数のノート列から検索し、検索したノート列の今回ノートを演奏案内した後、さらにこの演奏案内に従って演奏操作された音高に一致する前回ノートを有し、かつ最も追加ノート数の大きいノート列を前記複数のノート列から検索し、検索したノート列の今回ノートを演奏案内する動作を繰り返し、その動作を追加ノート数分繰り返した場合には当該追加ノート数を有するノート列を検索対象から除外するので、誤った演奏操作を追加ノート数分繰り返し練習させる。
つまり、練習曲を間違えなく演奏させる練習ではなく、練習曲から得たノート列の内、ユーザが間違えやすいノート列の演奏操作を重点的に練習させるようにした為、曲演奏を練習する以前のレベル、例えば鍵盤を全く弾いたことが無く指使いも覚束ない初心者ユーザに、ある音高の音を出すにはどの鍵を弾けばよいのかや、ある鍵を弾くとどの音高の音が出るかを習熟させて演奏操作そのものを体得させることが可能になる。
【0013】
【発明の実施の形態】
以下、本発明の実施の一形態による演奏練習装置が搭載された電子楽器を実施例とし、これについて図面を参照して説明する。
A.実施例の構成
図1は、本発明の一実施例による電子楽器の構成を示すブロック図である。この図において、1は押離鍵操作(演奏操作)に応じたキーオン/キーオフ信号やノート番号、ベロシティ等の演奏情報を発生する鍵盤である。2はCPU5の制御の下に、弾くべき鍵の位置を案内(押鍵案内)する押鍵ガイド部である。
【0014】
押鍵ガイド部2は、半透明樹脂材等で形成された各鍵下部に対向配置される、例えばLED等の発光手段2a(図示略)と、これら各鍵毎に配設される発光手段2aを点灯駆動するドライバ2b(図示略)とから構成され、後述するCPU5から供給される駆動制御信号に従って、押鍵すべき鍵に対応して配設される発光手段2aを点灯させて演奏者に弾くべき鍵の位置を案内する。
【0015】
3は各種スイッチから構成され、操作されたスイッチ種に対応したスイッチイベントを発生するパネルスイッチである。パネルスイッチ3には、電源をオンオフする電源スイッチの他、練習曲を選択する曲選択スイッチ、後述する演奏案内処理あるいは練習案内処理の開始および停止を指示するスタートスイッチ、モード遷移させるモード遷移スイッチあるいはモード設定するモードスイッチ等が設けられている。
なお、本実施例による電子楽器は、鍵盤1が発生する演奏情報に応じて楽音を形成する通常モードと、演奏操作を練習するための演奏練習モードとを備えており、上記モード遷移スイッチの操作に応じて、通常モードから演奏練習モードあるいは演奏練習モードから通常モードに遷移するようになっている。また、演奏練習モード下では、上記モードスイッチの操作により「練習モード」あるいは「評価モード」のいずれかを選択できるようになっている。
【0016】
4はLCDパネル等から構成される表示部であり、後述するCPU5から供給される表示制御信号に応じて楽器各部の設定状態や動作モード等を表示する。CPU5は、通常モード下では鍵盤1から供給される演奏情報に応じて音源8に楽音発生を指示し、一方、上記演奏練習モード下では選択された練習曲の曲データから抽出したノート列(後述する)を用いてユーザに鍵操作を習熟させるようになっている。本発明の要旨に係わる演奏練習モード処理の動作については追って詳述する。6は上記CPU5にロードされる各種制御プログラムの他、演奏練習用の曲データや追加ノート数発生テーブルTABLEを記憶するROMである。ROM6に記憶される追加ノート数発生テーブルTABLEとは、成功率を引数として、対応する追加ノート数を読み出すテーブルであり、これが意図するところについては追って述べる。
【0017】
ROM6に記憶される曲データの構成を図2を参照して説明する。図2に図示する通り、ROM6には複数の練習曲に対応した曲データ(1)〜(N)が記憶されており、それらの内のいずれかが上記パネルスイッチ3中の曲選択スイッチの操作に応じて選択される。曲データは、発音タイミングを表すタイムDTと、ノートオン/ノートオフを識別する識別データIDおよび音高を表すノート番号NNを含むイベントEVTとを曲進行順にアドレッシングしたものであり、その終端には曲の終わりを表わす終了データENDが設けられる。こうした曲データは、曲進行に応じて歩進されるポインタレジスタADの値(読み出しアドレス)に従って読み出される。
【0018】
次に、再び図1を参照して実施例の構成について説明を進める。図1において、7はワークエリアおよび評価データエリアを備えるRAMである。RAM7のワークエリアには、CPU5の処理に用いられる各種レジスタ・フラグデータが一時記憶される。RAM7の評価データエリアには、図3に図示するように、複数のノート列(1)〜(M)が格納される。各ノート列は、前回ノート、今回ノート、出現回数、正解回数、成功率、追加ノート数および発音ノート数から構成される。これらノート列(1)〜(M)が意図するところについては追って述べる。
【0019】
8は周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える音源である。この音源8は、各種音色の波形データを記憶しており、これらの内、CPU5が供給する楽音パラメータに応じた波形データを読み出して楽音波形を発生する。9は上記音源8が出力する楽音波形をアナログ信号形式に変換した後、不要ノイズを除去する等のフィルタリングを施し、それを増幅してスピーカから発音するサウンドシステムである。
【0020】
B.実施例の動作
次に、図4〜図21を参照して実施例の動作について説明する。以下では、最初に全体動作として演奏練習モード処理の動作について説明し、続いて演奏練習モード処理からコールされる各処理の動作について順次説明する。
【0021】
(1)演奏練習モード処理の動作
前述したモード遷移スイッチの操作に応じて、演奏練習モードに遷移すると、CPU5は図4に示す演奏練習モード処理を実行してステップSA1に処理を進める。先ずステップSA1では、RAM7のワークエリアに格納される各種レジスタやフラグ類をリセットしたり初期値をセットするイニシャライズを行い、続くステップSA2では、モードフラグMODEFをゼロリセットする。
なお、モードフラグMODEFは、「0」の場合に後述の「練習処理」の実行を指示し、「1」の場合に後述の「評価処理」の実行を指示するフラグである。前述したモードスイッチが「練習モード」に設定された場合には、上記モードフラグMODEFは「0」にセットされ、一方、「評価モード」に設定された場合には「1」にセットされる。
【0022】
次に、ステップSA3に進むと、CPU5は曲選択処理を実行する。曲選択処理では、曲選択スイッチの操作により選択される練習曲の曲データを構成する各音を一音ずつ読み出して連続する2音(前回ノートおよび今回ノート)を組とするノート列(1)〜(M)を形成する。ノート列を形成する毎に、先に形成したノート列と重複するかどうかを判定し、重複するノート列が出現した場合には、先に形成したノート列中の出現回数をインクリメントする。
次いで、ステップSA4では、モードフラグMODEFの値が「0」、つまり練習モードに設定されているか否かを判断する。練習モードに設定されていると、判断結果は「YES」になり、ステップSA5を介して練習処理を実行する。一方、評価モードに設定されていれば、判断結果が「NO」になり、ステップSA6を介して評価処理を実行する。そして、ステップSA7では、モード遷移スイッチが操作された場合、実行中の演奏練習モード処理から通常モードへ遷移させるなどの、その他の処理を実行する。以後、モード遷移スイッチの操作により通常モードに遷移するまでステップSA3〜SA7を繰り返す。
【0023】
(2)曲選択処理の動作
次に、図5〜図7を参照して曲選択処理の動作を説明する。図4に図示した演奏練習モード処理のステップSA3を介して本処理が実行されると、CPU5は図5に示すステップSB1に処理を進める。ステップSB1では、曲選択スイッチの操作イベントの有無を判断する。曲選択スイッチの操作イベントが無い場合、つまり曲選択スイッチが操作されていなければ、判断結果は「NO」となり、何も処理せずに本処理を完了させる。
【0024】
一方、曲選択スイッチの操作イベントが有ると、上記ステップSB1の判断結果が「YES」となり、次のステップSB2に進む。ステップSB2では、その操作イベントが表す選択曲番号をレジスタMELODYにストアする。以後、レジスタMELODYの内容を、選択曲番号MELODYと称す。
次に、ステップSB3では、RAM7の評価データエリア(図3参照)をクリアし、続くステップSB4では、ノート列数をカウントするカウンタM(以後、ノート列数Mと称す)をゼロリセットすると共に、評価フラグHYOKAFに「1」をセットする。評価フラグHYOKAFは、RAM7の評価データエリアにノート列が格納されているか否かを識別するフラグであり、「1」の場合に評価データ無しを表し、「0」の場合に評価データ有りを表す。
【0025】
そして、ステップSB5に進むと、ROM6に記憶される曲データ(1)〜(N)の内、選択曲番号MELODYに対応した曲データの先頭アドレスをアドレスポインタADにセットする。次に、ステップSB6では、アドレスポインタADに応じて、選択曲番号MELODYの曲データをROM6から読み出す。続くステップSB7では、アドレスポインタADに応じて読み出された曲データが、曲の終わりを表わす終了データENDであるか否か、つまり曲終端に達したかどうかを判断する。読み出しが曲終端に達していなければ、判断結果は「NO」になり、図6に示すステップSB8に処理を進める。
【0026】
ステップSB8では、アドレスポインタADに応じて読み出されたデータが、ノートオンイベントであるか否かを判断する。タイムDTが読み出された場合には、判断結果が「NO」になり、ステップSB11に進み、アドレスポインタADをインクリメントして歩進させる。この後、上述のステップSB6(図5参照)に戻り、歩進されたアドレスポインタADに応じて曲データを読み出す。これによりタイムDTに続くイベントEVTが読み出され、そのイベントEVTがノートオンイベントであると、上述のステップSB7,SB8の各判断結果が「YES」になり、ステップSB9に進む。
【0027】
ステップSB9に進むと、CPU5はノート列数Mが「0」であって、かつ前回ノート(0)がデータ無しの状態であるか否かを判断する。例えば今、1つ目のノートオンイベントを読み出した状態であると、判断結果は「YES」になり、次のステップSB10に進む。ステップSB10では、ノート列数Mに対応した前回ノート(M)に、ノートオンイベントのノート番号NNをストアする。
この後、上述のステップSB11,SB6,SB7およびSB8を経て次のノートオンイベントを読み出す。そして、2つ目のノートオンイベントが読み出されると、ステップSB8の判断結果が「YES」となり、ステップSB9に進む。2つ目のノートオンイベントが読み出された場合、前回ノート(M)に1つ目のノートオンイベントのノート番号NNがストアされているので、ステップSB9の判断結果は「NO」になり、ステップSB12に進む。
【0028】
ステップSB12では、ノート列数Mが「0」であって、かつ前回ノート(M)がデータ有り、今回ノート(M)がデータ無しの状態であるか否かを判断する。2つ目のノートオンイベントが読み出された状態であると、判断結果は「YES」になり、ステップSB13に進む。ステップSB13では、ノート列数Mに対応した今回ノート(M)に、2つ目のノートオンイベントのノート番号NNをストアする。
次いで、ステップSB14では、今回ノート(M)をレジスタFORMERNOTEにストアする。ステップSB15では、ノート列数Mに対応した出現回数(M)に「1」をストアし、続くステップSB16では、ノート列数Mに対応した正解回数(M)をゼロリセットする。次に、ステップSB17に進み、ノート列数Mをインクリメントして歩進させる。
【0029】
こうして、前回ノート(1)、今回ノート(1)、出現回数(1)および正解回数(1)から構成される最初のノート列(1)が形成されると、CPU5は再びステップSB11に処理を戻し、ステップSB11,SB6,SB7およびSB8を経て次のノートオンイベントを読み出す。そして、3つ目のノートオンイベントが読み出されると、ステップSB9,SB12の各判断結果が「NO」になり、ステップSB18に進み、3つ目のノートオンイベントのノート番号NNをレジスタCURRENTNOTEにストアする。
【0030】
次に、ステップSB19〜SB22では、レジスタFORMERNOTEに格納されるノート番号NNおよびレジスタCURRENTNOTEに格納されるノート番号NN、つまり2つ目および3つ目のノートオンイベントの組から得たノート列が、1つ目および2つ目のノートオンイベントの組から得たノート列に一致するかどうかを判断し、一致した場合に1つ目および2つ目のノートオンイベントの組から得たノート列の出現回数を歩進させる。
【0031】
すなわち、ステップSB19では先ずサーチポインタnに「1」をセットする。そして、図7に示すステップSB20に進み、レジスタFORMERNOTEに格納されるノート番号NNが、1つ目のノートオンイベントから得た前回ノート(1)と一するか否かを判断する。一致しなければ、判断結果は「NO」になり、後述のステップSB23に進む。
【0032】
一方、一致した場合には判断結果が「YES」となり、次のステップSB21に進む。ステップSB21では、レジスタCURRENTNOTEに格納されるノート番号NNが、2つ目のノートオンイベントから得た今回ノート(1)と一するか否かを判断する。一致しなければ、判断結果は「NO」になり、後述のステップSB23に進む。
一方、一致した場合には判断結果が「YES」となり、次のステップSB22に進み、サーチポインタnに対応したノート列(1)中の出現回数(1)をインクリメントした後、後述のステップSB24に進む。
【0033】
さて、2つ目および3つ目のノートオンイベントの組から得たノート列が、1つ目および2つ目のノートオンイベントの組から得たノート列に一致しない場合には、ステップSB23に進み、サーチポインタnとノート列数Mとが一致するか、つまり一致判定を完了したかどうかを判断する。3つ目のノートオンイベントを読み出した時点では、ノート列(1)との一致判定を行うだけなので、判断結果は「YES」となり、ステップSB24に進む。
これに対し、4つ目以降のノートオンイベントを読み出した時点であれば、判断結果は「NO」になり、ステップSB31に進み、サーチポインタnをインクリメントして歩進させる。この後、ステップSB20〜SB23、SB31からなる一致判定を繰り返す。
【0034】
一致判定が完了すると、CPU5はステップSB24に進み、次のノート列を形成すべくノート列数Mを歩進させる。次いで、ステップSB25では、レジスタFORMERNOTEに格納される2つ目のノートオンイベントのノート番号NNを、ノート列数Mに対応した前回ノート(M)にストアする。続いて、ステップSB26では、レジスタCURRENTNOTEに格納される3つ目のノートオンイベントのノート番号NNを、ノート列数Mに対応した今回ノート(M)にストアし、続くステップSB27では、ノート列数Mに対応した出現回数(M)に「1」をストアする。
【0035】
次に、ステップSB28では、レジスタCURRENTNOTEに格納される3つ目のノートオンイベントのノート番号NNを、レジスタFORMERNOTEにストアする。そして、ステップSB29に進み、ノート列数Mに対応した正解回数(M)をゼロリセットする。これにより、前回ノート(2)、今回ノート(2)、出現回数(2)および正解回数(2)から構成されるノート列(2)が形成される。ノート列(2)が形成されると、CPU5はステップSB30に処理を進め、次のノート列を形成すべくノート列数Mを歩進させると共に、アドレスポインタADを歩進させた後、図5のステップSB6に処理を戻す。
【0036】
以後、前述したステップSB6,SB7およびSB8を経て次のノートオンイベントを読み出し、次のノートオンイベントが読み出されると、ステップSB18に進み、今回読み出したノートオンイベントのノート番号NNをレジスタCURRENTNOTEにストアする。そして、ステップSB19〜SB22において、レジスタFORMERNOTEおよびレジスタCURRENTNOTEに格納されるノート列が、これまでに得た各ノート列と一致するかどうかを判断する一致判定を行い、一致するノート列があれば、そのノート列中の出現回数を歩進させる。
【0037】
一致判定が完了すると、次のノート列を形成すべくノート列数Mを歩進させ(ステップSB24)、レジスタFORMERNOTEに格納されるノート番号NNを前回ノート(M)にストアする(ステップSB25)。そして、レジスタCURRENTNOTEに格納されるノート番号NNを今回ノート(M)にストア(ステップSB26)すると共に、出現回数(M)に「1」をストアした後(ステップSB27)、レジスタCURRENTNOTEに格納されるノート番号NNをレジスタFORMERNOTEに格納し直す。次に、ノート列数Mに対応した正解回数(M)をゼロリセットする(ステップSB29)。
こうして、次のノート列(M)が形成されると、次のノート列を形成すべくノート列数Mを歩進させると共に、アドレスポインタADを歩進させた後(ステップSB30)、再び図5のステップSB6に戻り、終了データENDが読み出されるまで上述の過程を繰り返す。そして、ステップSB7において、終了データENDが読み出されて曲終端に達すると、判断結果が「YES」となり、本処理を完了させる。
【0038】
以上のように、曲選択処理では、曲選択スイッチの操作により選択される練習曲の曲データを構成する各音(ノートオンイベント)を一音ずつ読み出して連続する2音(前回ノートおよび今回ノート)を組とするノート列を形成する。ノート列を形成する毎に、先に形成したノート列と重複するかどうかを判定し、重複するノート列が出現した場合には、先に形成したノート列中の出現回数をインクリメントするようになっている。このようにして曲データから得られるノート列(1)〜(M)は、練習曲の演奏操作を練習する際の基本単位として扱われる。
【0039】
(3)評価処理の動作
次に、図8を参照して練習処理の動作を説明する。前述した演奏練習モード処理(図4参照)のステップSA6を介して評価処理が実行されると、CPU5は図8に示すステップSC1に処理を進める。ステップSC1では、曲選択スイッチの操作により選択された練習曲の曲データを読み出し、読み出した曲データに従って押鍵ガイド部2を制御して弾くべき鍵の位置を案内する演奏案内処理を実行する。次に、ステップSC2では、鍵盤処理を実行する。鍵盤処理では、演奏案内処理によって押鍵案内された鍵の押離鍵操作に従って音源8にノートオン/ノートオフを指示する一方、案内通りの押鍵が為された場合、対応するノート列の正解回数を歩進させる。
【0040】
続いて、ステップSC3に進むと、評価データ生成処理を実行する。評価データ生成処理では、鍵盤処理にて得られた各ノート列(1)〜(M)毎の正解回数に基づき、それらノート列(1)〜(M)毎の成功率および追加ノート数を生成する。次いで、ステップSC4では、モードスイッチのオン操作に有無を判断する。モードスイッチがオン操作されなければ、判断結果は「NO」となり、上述したステップSC1に処理を戻す。一方、評価データを生成し終えた後、モードスイッチをオン操作した場合には、判断結果が「YES」になり、次のステップSC5に進み、モードフラグMODEFを反転させて本処理を完了する。
【0041】
(4)演奏案内処理の動作
次に、図9〜図11を参照して演奏案内処理の動作を説明する。上述の評価処理(図8参照)のステップSC1を介して演奏案内処理が実行されると、CPU5は図9に示すステップSD1に処理を進め、スタートスイッチのオン操作の有無を判断する。スタートスイッチがオン操作されると、判断結果は「YES」になり、次のステップSD2に進み、スタートフラグSTFを反転する。
続いて、ステップSD3では、反転されたスタートフラグSTFが「1」であるか否かを判断する。つまり、スタートスイッチはオン操作される毎に処理開始を指示するスタート状態(STF=1)あるいは処理停止を指示するストップ状態(STF=0)のいずれかを交互に設定するトグルスイッチなので、ステップSD3ではオン操作に応じてスタート状態に設定されたかどうかを判断する。
【0042】
反転されたスタートフラグSTFの値が「0」(ストップ状態)であると、ステップSD3の判断結果は「NO」となり、ステップSD4に進み、押鍵ガイド部2にガイド表示禁止を指示する。これにより、押鍵ガイド部2は点灯中の発光手段2aを消灯させる。この後、ステップSD5に進み、割込みマスクを施してタイマ割込み処理の実行を禁止して本処理を完了させる。
なお、ここで言うタイマ割込み処理(不図示)とは、演奏案内処理と並列的に実行され、一定周期毎にレジスタT(後述する)に格納されるタイムDTをデクリメントする。
【0043】
一方、反転されたスタートフラグSTFの値が「1」(スタート状態)であれば、上記ステップSD3の判断結果は「YES」になり、ステップSD6に進み、ノート列数Mをゼロリセットする。次に、ステップSD7に進むと、RAM7の評価データエリア(図3参照)における各ノート列(1)〜(M)中の正解回数、成功率および追加ノート数をそれぞれクリアする。
次いで、ステップSD8では、ROM6に記憶される曲データ(1)〜(N)の内、選択曲番号MELODYに対応した曲データの先頭アドレスをアドレスポインタADにセットする。次に、ステップSD9に進み、そのアドレスポインタADに従い曲データから先頭のタイムDTを読み出す。ステップSD10では、読み出したタイムDTをレジスタTにストアし、続くステップSD11では、タイマ割込み処理の実行禁止を解除した後、一旦本処理を完了させる。
【0044】
こうしてスタート状態に設定された演奏案内処理が前述のステップSC1(図8参照)を介して再び実行されると、上述したステップSD1の判断結果が「NO」になり、CPU5は図10に示すステップSD12に進み、スタート状態に設定されているかどうかを判断する。今、スタート状態に設定されているので、判断結果は判断結果は「YES」になり、次のステップSD13に進む。なお、ストップ状態であると、判断結果が「NO」となり、本処理を完了させる。
ステップSD13では、タイマ割込み処理にて一定周期毎にデクリメントされるレジスタTの値が「0」以下になったか否か、すなわち発音タイミングに達したかどうかを判断する。発音タイミングに達していないと、判断結果は「NO」になり、一旦本処理を完了させるが、発音タイミング下にあると、判断結果は「YES」になり、ステップSD14に進む。
【0045】
ステップSD14では、アドレスポインタADをインクリメントして歩進させ、続くステップSD15では、歩進されたアドレスポインタADに応じて曲データを読み出す。次に、ステップSD16に進むと、読み出された曲データが終了データENDでないか否か、つまり曲終端に達したかどうかを判断する。以下、曲終端に達した場合とそうでない場合とに分けて動作説明を進める。
【0046】
<曲終端に達した場合の動作>
曲終端に達した場合には、上記ステップSD16の判断結果が「NO」になり、ステップSD17に進み、スタートフラグSTFをゼロリセットしてストップ状態に設定する。次に、ステップSD18に進み、押鍵ガイド部2にガイド表示禁止を指示し、続くステップSD19では、割込みマスクを施してタイマ割込み処理の実行を禁止して本処理を完了させる。
【0047】
<曲終端に達していない場合の動作>
曲終端に達していない場合には、上記ステップSD16の判断結果が「YES」となり、ステップSD20に進み、上記ステップSD15にて読み出された曲データがタイムDTであるか否かを判断する。タイムDTであれば、判断結果は「YES」になり、ステップSD21に進み、レジスタTにタイムDTをセットして本処理を一旦完了させる。
一方、イベントEVTが読み出された場合には判断結果が「NO」になり、ステップSD22に進み、読み出されたイベントEVTがノートオン/ノートオフイベントのいずれであるかを判断する。以下、ノートオンイベントの場合とノートオフイベントの場合とに分けて動作説明を進める。
【0048】
<ノートオフイベントの場合>
読み出されたイベントEVTがノートオフイベントであると、ステップSD23に進み、そのノートオフイベントに含まれるノート番号NNに対応する鍵に配置される発光手段2aの消灯を押鍵ガイド部2に指示した後、上述のステップSD14に処理を戻し、曲データの読み出しを進めるべくアドレスポインタADを歩進させる。
【0049】
<ノートオンイベントの場合>
曲頭のタイムDTに続いて読み出された最初のイベントEVTがノートオンイベントであったとする。そうすると、図11に示すステップSD24に進み、レジスタCURRENTNOTEの内容を、レジスタFORMERNOTEに入れ替える。
なお、最初のノートオンイベントを検出した時点では、レジスタCURRENTNOTEにはデータセットされていない為、このステップSD24は無効な処理となるが、次のノートオンイベントを検出した時点から有効な処理になる。
【0050】
次に、ステップSD25では、検出したノートオンイベントのノート番号NNをレジスタCURRENTNOTEにストアする。次いで、ステップSD26に進み、ノートオンイベントに含まれるノート番号NNに対応する鍵に配置される発光手段2aの点灯を押鍵ガイド部2に指示する。これにより、押鍵ガイド部2が弾くべき鍵の位置を案内(押鍵案内)する。続いて、ステップSD27に進むと、レジスタFORMERNOTE、CURRENTNOTEの両者にノート番号NNがセットされているか否かを判断する。最初のノートオンイベントを検出した時点では、レジスタCURRENTNOTEにはノート番号NNがセットされていない為、判断結果は「NO」になり、図10に示すステップSD14に処理を戻し、曲データの読み出しを進めるべくアドレスポインタADを歩進させる。
これに対し、2つ目のノートオンイベントを検出した時点からはレジスタFORMERNOTE、CURRENTNOTEの両者にノート番号NNがセットされるので、判断結果は「YES」になり、ステップSD28に進む。
【0051】
ステップSD28〜SD32では、押鍵案内されている鍵の音高が、RAM7の評価データエリア(図3参照)中のどのノート列に対応しているのかを検索する。すなわち、ステップSD28では、サーチポインタSに初期値「1」をセットする。次いで、ステップSD29,SD30では、レジスタFORMERNOTEおよびCURRENTNOTEに各々格納されるノート番号NNが、サーチポインタSに対応した前回ノート(S)および今回ノート(S)にそれぞれ一致するか否かを判断する。
【0052】
一致した場合には、対応するノート列(前回ノート(S)、今回ノート(S))が検索されたとして、上記ステップSD29,SD30の各判断結果が「YES」になり、図10に示すステップSD14に処理を戻し、曲データの読み出しを進めるべくアドレスポインタADを歩進させる。
なお、後述する鍵盤処理(図12参照)では、検索されたノート列(前回ノート(S)、今回ノート(S))に対応する鍵が弾かれたかどうかを判定するようになっており、誤りなく弾かれた場合にそのノート列の正解回数(S)を歩進させるようになっている。
【0053】
一方、上記ステップSD29,SD30の双方あるいはいずれか一方で不一致になると、上記ステップSD29,SD30の双方あるいはいずれか一方の判断結果が「NO」になり、ステップSD31に進み、サーチポインタSをインクリメントして歩進させる。この後、ステップSD32に進み、歩進されたサーチポインタSの値がノート列数Mを超えたか否か、つまり検索し終えたかどうかを判断する。検索し終えていなければ、判断結果は「NO」になり、上記ステップSD29に処理を戻してノート列検索を進める。一方、検索し終えた場合には、判断結果が「YES」となり、図10に示すステップSD14に処理を戻し、曲データの読み出しを進めるべくアドレスポインタADを歩進させる。
【0054】
以上のように、演奏案内処理では、曲選択スイッチの操作により選択された練習曲の曲データを読み出し、読み出した曲データ中のタイムDTに従ったタイミングにて、読み出した曲データ中のノートオンイベントに基づき押鍵ガイド部2を制御して弾くべき鍵の位置を表示する押鍵案内を行いつつ、押鍵案内された鍵が現在どのノート列に対応しているのかを検索するようになっている。
【0055】
(5)鍵盤処理の動作
次に、図12を参照して鍵盤処理の動作を説明する。前述の評価処理(図8参照)のステップSC2を介して鍵盤処理が実行されると、CPU5は図12に示すステップSE1に処理を進め、鍵盤1を鍵走査する。続いて、ステップSE2では、鍵走査の結果から鍵変化(鍵イベント)を検出する。鍵操作が行われず鍵イベント無しの場合には何も処理せずに本処理を完了させるが、押鍵によるオンイベントあるいは離鍵によるオフイベントを検出した場合には次のような処理を実行する。以下、オンイベントを検出した場合の動作とオフイベントを検出した場合の動作とに分けて説明する。
【0056】
<オンイベントを検出した場合>
押鍵によるオンイベントを検出すると、ステップSE3に進み、レジスタCURRENTKEYの内容を、レジスタFORMERKEYに入れ替える。次いで、ステップSE4に進むと、押鍵された鍵のノート番号NNをレジスタCURRENTKEYにストアする。続いて、ステップSE5では、レジスタCURRENTKEYにストアされたノート番号NNに対応した音高の楽音の発音を指示するノートオンコマンドを作成し、続くステップSE6にてそのノートオンコマンドを音源8に送出する。これにより、音源8は押鍵された鍵の音高の楽音を発生する。
【0057】
次に、ステップSE7に進むと、スタートフラグSTFが「1」、つまり前述した演奏案内処理がスタート状態にあるかどうかを判断する。演奏案内処理がストップ状態(STF=0)であると、判断結果は「NO」になり、本処理を完了させる。
一方、スタート状態にあれば、判断結果が「YES」になり、ステップSE8に進む。ステップSE8では、レジスタFORMERKEY、CURRENTKEYの双方にデータが格納されているか否か、つまりノート列に対応した2押鍵が行われたかどうかを判断する。ノート列に対応した2押鍵が行われていなければ、判断結果は「NO」になり、本処理を完了させる。これに対し、ノート列に対応した2押鍵が行われていると、判断結果が「YES」になり、次のステップSE9に進む。
【0058】
ステップSE9、SE10では、前述した演奏案内処理にて検索されたノート列、すなわち押鍵案内された鍵に対応した前回ノート(S)および今回ノート(S)が、レジスタFORMERKEYおよびレジスタCURRENTKEYに各々格納されるノート番号NNにそれぞれ一致するかどうかを判断する。双方が不一致あるいはいずれか一方が不一致ならば、ステップSE9、SE10の双方もしくはいずれか一方の判断結果が「NO」となり、本処理を完了させる。
これに対し、双方が一致すると、ステップSE9、SE10の各判断結果が「YES」となり、ステップSE11に進み、前回ノート(S)および今回ノート(S)を含むノート列の正解回数(S)をインクリメントして歩進させた後、本処理を完了させる。
【0059】
<オフイベントを検出した場合>
離鍵によるオフイベントを検出した場合には、ステップSE12に進む。ステップSE12では、離鍵された鍵のノート番号NNに対応した音高の楽音の消音を指示するノートオフコマンドを作成し、続くステップSE13ではそのノートオフコマンドを音源8に送出して本処理を完了させる。これにより、音源8では離鍵された鍵の音高に対応した楽音を消音する。
【0060】
このように、鍵盤処理では、押離鍵操作に応じた楽音の発音および消音を音源8に指示する一方、演奏案内処理がスタート状態にあり、押鍵案内が行われて場合には、押鍵案内された鍵に対応したノート列が押鍵される毎に、そのノート列の正解回数(S)を歩進するようになっている。
【0061】
(6)評価データ生成処理の動作
次に、図13を参照して評価データ生成処理の動作を説明する。前述の評価処理(図8参照)のステップSC3を介して本処理が実行されると、CPU5は図13に示すステップSF1に処理を進める。ステップSF1では、前述した演奏案内処理による曲データ読み出しが完了したか否かを判断する。曲データ読み出しが完了していなければ、判断結果は「NO」となり、何も処理せずに完了させる。一方、曲データ読み出しが完了していると、判断結果が「YES」になり、次のステップSF2に進む。ステップSF2では、評価フラグHYOKAFが「1」、つまり評価データが未生成であるかどうかを判断する。
【0062】
評価データ生成済みであれば、判断結果は「NO」になり、本処理を完了させる。一方、評価データ未生成の場合には、判断結果が「YES」になり、次のステップSF3に進む。ステップSF3〜SF7では、サーチポインタnに対応したノート列(n)中の成功率(n)および追加ノート数(n)を生成する。
すなわち、先ずステップSF3では、サーチポインタnに初期値「1」をセットし、続くステップSF4では、サーチポインタn対応したノート列(n)の正解回数(n)を出現回数(n)で除算した値に「100」を乗算し、その値を成功率(n)としてストアする。次に、ステップSF5では、上記ステップSF4にて求めた成功率(n)を引数として、ROM6に記憶される追加ノート数発生テーブルTABLEから対応する追加ノート数を読み出して追加ノート数(n)としてストアする。
【0063】
そして、ステップSF6では、サーチポインタnをインクリメントして歩進させ、続くステップSF7では、歩進されたサーチポインタnがノート列数Mを超えたか、つまり全てのノート列数Mについて評価データを生成し終えたかどうかを判断する。生成し終えていなければ、判断結果は「NO」になり、上述したステップSF4に処理を戻す。以後、全てのノート列数Mについて評価データを生成し終えるまでステップSF4〜SF7を繰り返す。そして、全てのノート列数Mについて評価データを生成し終えると、ステップSF7の判断結果が「YES」になり、ステップSF8に進み、評価データ生成済みを表すべく評価フラグHYOKAFを「0」にセットして本処理を完了させる。
【0064】
(7)評価処理の動作要約
以上説明したように、「演奏案内処理」、「鍵盤処理」および「評価データ生成処理」を有する評価処理では、練習曲の曲データを読み出し、その曲データ中のタイムDTに従ったタイミングで押鍵案内を行い、ユーザが押鍵案内に従って押鍵すると、押鍵された鍵が現在どのノート列に対応しているのかを検索し、正しい押鍵操作が行われると、検索したノート列の正解回数を歩進する。そうして練習曲を弾き終えると、ユーザの演奏操作を評価する指標として、ノート列毎の成功率および追加ノート数を生成する。
【0065】
全て正しく押鍵されたノート列では成功率が100%となり、この場合、適正な演奏操作を習得していると見做して追加ノート数を「0」とする。一方、誤った押鍵が多いノート列、つまり成功率が低いノート列では、正しい鍵操作を習得していないものと見做し、それら鍵操作を繰り返し練習させるための追加ノート数を設けている。後述する練習処理では、成功率が低いノート列の鍵操作を、
追加ノート数分行わせるようになっている。
【0066】
(8)練習処理の動作
次に、図14を参照して練習処理の動作を説明する。前述した演奏練習モード処理(図4参照)のステップSA5を介して練習処理が実行されると、CPU5は図14に示すステップSG1に処理を進める。ステップSG1では、曲選択スイッチの操作により選択された練習曲の曲データに従って押鍵案内しつつ、押鍵案内される鍵に対応したノート列に含まれる追加ノート数分繰り返し鍵操作を行わせる練習案内処理を実行する。次に、ステップSG2では、練習案内処理によって押鍵案内された鍵の押離鍵操作に従って音源8にノートオン/ノートオフを指示する一方、案内通りの押鍵が為された場合、対応するノート列の正解回数を歩進させる鍵盤処理を実行する。なお、この鍵盤処理は、図12に図示したものと同一である。
続いて、ステップSG3では、モードスイッチのオン操作に有無を判断する。モードスイッチがオン操作されなければ、判断結果は「NO」となり、上述したステップSG1に処理を戻す。一方、モードスイッチがオン操作されると、判断結果が「YES」になり、次のステップSG4に進み、モードフラグMODEFを反転させて本処理を完了する。
【0067】
(9)練習案内処理の動作
次に、図15〜図18を参照して練習案内処理の動作を説明する。上述の練習処理(図14参照)のステップSG1を介して練習案内処理が実行されると、CPU5は図15に示すステップSH1に処理を進め、スタートスイッチのオン操作の有無を判断する。スタートスイッチがオン操作されると、判断結果は「YES」になり、次のステップSH2に進み、スタートフラグSTFを反転する。続いて、ステップSH3では、反転されたスタートフラグSTFが「1」であるか否かを判断する。つまり、スタート状態に設定されたかどうかを判断する。
【0068】
反転されたスタートフラグSTFの値が「0」(ストップ状態)であると、ステップSH3の判断結果は「NO」となり、ステップSH4に進み、押鍵ガイド部2にガイド表示禁止を指示する。これにより、押鍵ガイド部2は点灯中の発光手段2aを消灯させる。この後、ステップSH5に進み、割込みマスクを施してタイマインタラプト処理(後述する)の実行を禁止して本処理を完了させる。
なお、ここで言うタイマインタラプト処理とは、練習案内処理と並列的に実行され、一定周期毎にレジスタTに格納されるタイムDTをデクリメントするものであり、その動作については追って説明する。
【0069】
一方、反転されたスタートフラグSTFの値が「1」(スタート状態)であれば、上記ステップSH3の判断結果は「YES」になり、ステップSH6に進み、ROM6に記憶される曲データ(1)〜(N)の内、選択曲番号MELODYに対応した曲データの先頭アドレスをアドレスポインタADにセットする。次に、ステップSH7に進み、そのアドレスポインタADに従い曲データから先頭のタイムDTを読み出す。ステップSH8では、読み出したタイムDTをレジスタTにストアする。次いで、ステップSH9に進み、評価フラグHYOKAFが「0」、つまり評価データが生成済みであるかどうかを判断する。評価データが未生成であると、判断結果は「NO」になり、ステップSH14に進み、タイマインタラプト処理の実行禁止を解除した後、一旦本処理を完了させる。
【0070】
これに対し、評価データが生成済みであると、上記ステップSH9の判断結果は「YES」になり、ステップSH10に進む。ステップSH10〜SH13では、評価データ(図3参照)を構成する各ノート列(n)中の追加ノート数(n)を発音ノート数(n)に格納する。
すなわち、ステップSH10にてサーチポインタnに初期値「1」をセットし、続くステップSH11では、サーチポインタnに応じてノート列(n)中の追加ノート数(n)を読み出し、それを発音ノート数(n)にストアする。次いで、ステップSH12では、サーチポインタnの値がノート列数Mに達したかどうかを判断する。サーチポインタnの値がノート列数Mに達していなければ、判断結果は「NO」になり、ステップSH13に進み、サーチポインタnを歩進させてステップSH11に処理を戻す。以後、サーチポインタnの値がノート列数Mに達するまでステップSH11〜SH13を繰り返す。そして、サーチポインタnの値がノート列数Mに達すると、判断結果が「YES」になり、ステップSH14に進み、タイマインタラプト処理の実行禁止を解除した後、一旦本処理を完了させる。
【0071】
以上のようにしてスタート状態に設定された後、本処理が前述のステップSG1(図14参照)を介して再び実行されると、上述したステップSH1(図15参照)の判断結果が「NO」になり、CPU5は図16に示すステップSH15に進み、スタート状態に設定されているかどうかを判断する。スタート状態に設定されている場合には判断結果が「YES」になり、次のステップSH16に進む。なお、ストップ状態に設定された場合には判断結果が「NO」となり、本処理を完了させる。
【0072】
ステップSH16では、評価フラグHYOKAFが「1」、つまり評価データが未生成であるかどうかを判断する。前述した評価処理にて評価データが生成済みであると、判断結果は「NO」になり、ステップSH17に進む。ステップSH17では、フラグTSUIKAFが「1」、すなわち後述する追加ノート検出第1処理もしくは追加ノート検出第2処理によって追加ノートが検索された状態であるか否かを判断する。追加ノートが検索された状態でなければ、判断結果は「NO」になり、ステップSH18に進む。これに対し、追加ノートが検索された状態であると、判断結果が「YES」になり、後述のステップSH36(図18参照)に進む。
【0073】
評価データが未生成の場合、上記ステップSH16の判断結果が「YES」になり、ステップSH18に進む。ステップSH18では、タイマインタラプト処理にて一定周期毎にデクリメントされるレジスタTの値が「0」以下になったか否か、すなわちイベントタイミングに達したかどうかを判断する。イベントタイミングに達していないと、判断結果は「NO」になり、一旦本処理を完了させる。
一方、イベントタイミングに達していれば、判断結果は「YES」になり、ステップSH19に進み、アドレスポインタADをインクリメントして歩進させ、続くステップSH20では、歩進されたアドレスポインタADに応じて曲データを読み出す。そして、ステップSH21に進むと、読み出された曲データが終了データENDでないか否か、つまり曲終端に達したかどうかを判断する。以下、曲終端に達した場合とそうでない場合とに分けて動作説明を進める。
【0074】
<曲終端に達した場合の動作>
曲終端に達した場合には、上記ステップSH21の判断結果が「NO」になり、ステップSH22に進み、スタートフラグSTFをゼロリセットしてストップ状態に設定する。この後、ステップSH23に進み、押鍵ガイド部2にガイド表示禁止を指示し、ステップSH24では、割込みマスクを施してタイマインタラプト処理の実行を禁止してから本処理を完了させる。
【0075】
<曲終端に達していない場合の動作>
曲終端に達していない場合には、上記ステップSH21の判断結果が「YES」となり、ステップSH25に進み、上記ステップSH20にて読み出された曲データがタイムDTであるか否かを判断する。タイムDTであれば、判断結果は「YES」になり、ステップSH26に進み、レジスタTにタイムDTをセットして本処理を一旦完了させる。
一方、イベントEVTが読み出された場合には、判断結果が「NO」になり、ステップSH27に進み、読み出されたイベントEVTがノートオン/ノートオフイベントのいずれであるかを判断する。以下、ノートオンイベントの場合とノートオフイベントの場合とに分けて動作説明を進める。
【0076】
<ノートオンイベントの場合>
読み出されたイベントEVTがノートオンイベントの場合、ステップSH28に進み、そのノートオンイベントに含まれるノート番号NNに対応する鍵に配置される発光手段2aの点灯を押鍵ガイド部2に指示して押鍵案内を行った後、前述のステップSH19に処理を戻してアドレスポインタADを歩進させる。
【0077】
<ノートオフイベントの場合>
読み出されたイベントEVTがノートオフイベントの場合、図17に示すステップSH29に進み、そのノートオフイベントに含まれるノート番号NNに対応する鍵に配置される発光手段2aの消灯を押鍵ガイド部2に指示する。次いで、ステップSH30に進み、フラグHYOKAFが「0」、つまり評価データ生成済みか否かを判断する。
評価データ未生成の場合、つまり評価処理を実行していない状態では、単に曲データに従って弾くべき鍵を案内する動作を進める為、ステップSH30の判断結果は「NO」となり、図16に示すステップSH19に処理を戻してアドレスポインタADを歩進させる。
【0078】
一方、評価データ生成済みの場合には、評価処理を行った際に生じた、誤った鍵操作を追加ノート数分繰り返し練習させる練習案内動作を進める。この場合、ステップSH30の判断結果が「YES」になり、次のステップSH31に進み、ノートオフイベントのノート番号NNをレジスタFORMERNOTEにストアする。次に、ステップSH32では、先の押鍵のノート(前回ノート)に続いて押鍵すべき追加ノートを評価データ中のノート列から検索し、検索した追加ノートのイベントタイミングTTを設定する追加ノート検出第1処理を実行する。次いで、ステップSH33に進むと、フラグTUIKAFが「0」、つまり追加ノート検出第1処理にて追加ノートが検索できない状態であるかどうかを判断する。追加ノート検出第1処理にて追加ノートが検索された場合には、判断結果が「NO」になり、一旦本処理を完了させる。
【0079】
一方、追加ノート検出第1処理にて追加ノートが検索されないと、判断結果は「YES」になり、次のステップSH34を介して追加ノート検出第2処理を実行する。追加ノート検出第2処理では、追加ノート検出第1処理にて該当する追加ノートを検索できなかった場合に、RAM7の評価データエリア(図3参照)に格納されるノート列の内から、成功率が100%であって、且つレジスタFORMERNOTEに格納されるノート番号に一致する音高の前回ノートを有するノート列を検索し、検索したノート列中の今回ノートを追加ノートに設定する一方、その追加ノートのイベントタイミングTTを設定する。
【0080】
こうした追加ノート検出第2処理が完了すると、ステップSH35に進み、上記ステップSH33と同様に、追加ノート検出第2処理にて追加ノートが検索できない状態であるかどうかを判断する。追加ノート検出第2処理にて追加ノートが検索された場合には、判断結果が「NO」になり、一旦本処理を完了させる。これに対し、検索できない場合には、判断結果が「YES」となり、図16に示すステップSH19に処理を戻す。
【0081】
さて、追加ノート検出第1処理あるいは追加ノート検出第2処理のいずれかによって追加ノートが検索され、これによりフラグTUIKAFが「1」にセットされた状態で再び本処理が実行されたとする。そうすると、図16に図示したステップSH17の判断結果が「YES」になり、CPU5は図18に示すステップSH36に処理を進める。
ステップSH36では、レジスタTTの値が「0」以下、すなわち追加ノートのイベントタイミングに達したかどうかを判断する。なお、レジスタTTの値は、後述するタイマインタラプト処理にて一定周期毎にデクリメントされるようになっている。
【0082】
追加ノートのイベントタイミングでなければ、判断結果は「NO」になり、一旦本処理を完了させる。一方、追加ノートのイベントタイミングに達した場合には、判断結果が「YES」となり、ステップSH37に進み、フラグONFが「1」、つまり追加ノートのノートオンイベントであるかどうかを判断する。以下、「追加ノートのノートオンイベントの場合」および「追加ノートのノートオフイベントの場合」とに分けて説明を進める。
【0083】
<追加ノートのノートオンイベントの場合>
この場合、ステップSH37の判断結果は「YES」になり、ステップSH38に進み、レジスタCURRENTNOTEに格納される今回ノート(追加ノート)のノート番号NNに対応する鍵に配置される発光手段2aの点灯を押鍵ガイド部2に指示する。次いで、ステップSH39では、ノートオフタイミングを表す所定値をレジスタTTにセットし、続くステップSH40では、フラグONFをゼロリセットして次イベントが追加ノートのノートオフイベントであることを表した後、前述のステップSH19(図16参照)に処理を戻してアドレスポインタADを歩進させる。
【0084】
<追加ノートのノートオフイベントの場合>
この場合、ステップSH37の判断結果が「NO」になり、ステップSH41に進む。ステップSH41では、レジスタCURRENTNOTEに格納される今回ノート(追加ノート)のノート番号NNに対応する鍵に配置される発光手段2aの消灯を押鍵ガイド部2に指示する。次いで、ステップSH42では、レジスタCUREENTNOTEに格納される今回ノート(追加ノート)のノート番号をレジスタFORMERNOTEに入れ替える。
【0085】
次に、ステップSH43に進み、先の押鍵のノート(追加ノート)に続く追加ノートを評価データ中のノート列から検索し、検索した追加ノートのイベントタイミングTTを設定する追加ノート検出第1処理を実行する。そして、ステップSH44に進み、フラグTUIKAFが「0」、つまり追加ノート検出第1処理にて追加ノートが検索できない状態であるかどうかを判断する。追加ノート検出第1処理にて追加ノートが検索された場合には、判断結果が「NO」になり、一旦本処理を完了させる。
【0086】
一方、追加ノート検出第1処理にて追加ノートが検索されないと、判断結果は「YES」になり、次のステップSH45を介して追加ノート検出第2処理を実行する。追加ノート検出第2処理では、追加ノート検出第1処理にて該当する追加ノートを検索できなかった場合に、RAM7の評価データエリア(図3参照)に格納されるノート列の内から、成功率が100%であって、且つレジスタFORMERNOTEに格納されるノート番号に一致する音高の前回ノートを有するノート列を検索し、検索したノート列中の今回ノートを追加ノートに設定する一方、その追加ノートのイベントタイミングTTを設定する。
【0087】
追加ノート検出第2処理が完了すると、ステップSH46に進み、追加ノート検出第2処理にて追加ノートが検索できない状態であるかどうかを判断する。追加ノート検出第2処理にて追加ノートが検索された場合には、判断結果が「NO」になり、一旦本処理を完了させる。これに対し、検索できない場合には、判断結果が「YES」となり、図16に示すステップSH19に処理を戻す。
【0088】
以上のように、練習案内処理では、評価データが生成済みであると、先ず練習曲の曲データから最初に読み出すノートオンイベントに基づき押鍵案内を行い、これに従って押鍵した鍵のノートに続いて押鍵する追加ノートを評価データ中のノート列から検索し、検索した追加ノートの押鍵を案内する。これに従って押鍵した鍵のノート(追加ノート)に続いて押鍵する追加ノートを更に評価データ中のノート列から検索し、検索した追加ノートの押鍵を案内する。以後、こうした練習案内動作を追加ノートが検索されなくなるまで繰り繰り返す。これにより、前述の評価処理を行った際に生じた、誤った鍵操作を追加ノート数分繰り返し練習させるようになっている。
【0089】
(10)追加ノート検出第1処理の動作
次に、図19を参照して追加ノート検出第1処理の動作を説明する。前述した練習案内処理のステップSH32(図17参照)あるいはステップSH43(図18参照)のいずれかを介して本処理が実行されると、CPU5は図19に示すステップSJ1に処理を進め、フラグTSUIKAFをゼロリセットする。フラグTSUIKAFは、前述した通り、追加ノートを検索できたか否かを表すフラグであり、「0」の場合に検索できない状態を、「1」の場合に検索できた状態を表す。
【0090】
続いて、ステップSJ2に進むと、後述するレジスタTSUIKAおよびレジスタKOHOをそれぞれゼロクリアし、ステップSJ3では、サーチポインタnに初期値「1」をセットする。そして、ステップSJ4〜SJ11では、サーチポインタnを歩進させながら、RAM7の評価データエリア(図3参照)に格納されるノート列の内から下記検索条件に合致する追加ノートを備えたノート列を検索する。検索条件は、成功率が100%以外であって、且つレジスタFORMERNOTEに格納されるノート番号NNに一致する音高の前回ノートを有し、しかも発音ノート数が「0」でないノート列の内、最も発音ノート数の大きいノート列を探し出す。
【0091】
すなわち、ステップSJ4では、先ずサーチポインタnに対応したノート列中の成功率(n)が100%以外であるか、つまり前述の評価処理を実行した際、誤った鍵操作が行われたノート列であるかどうかを判断する。成功率(n)が100%のノート列であると、検索対象外であるとして、判断結果は「NO」となり、後述するステップSJ10に進むが、成功率(n)が100%以外の誤った鍵操作が行われたノート列であれば、判断結果は「YES」になり、次のステップSJ5に進む。ステップSJ5では、サーチポインタnに対応したノート列中の前回ノート(n)が、レジスタFORMERNOTEに格納されるノート番号NNに一致するか、すなわち先の押鍵の音高に一致するかどうかを判断する。一致しなければ、検索対象外であるとして、判断結果は「NO」となり、後述のステップSJ10に進むが、一致すると、判断結果が「YES」になり、次のステップSJ6に進む。
【0092】
ステップSJ6では、サーチポインタnに対応したノート列中の発音ノート数(n)が「0」以外であるか否かを判断する。発音ノート数(n)が「0」であると、検索対象外であるとして、判断結果は「NO」となり、後述のステップSJ10に進むが、そうでなければ、判断結果が「YES」になり、次のステップSJ7に進む。ステップSJ7では、発音ノート数(n)がレジスタTSUIKAの値より大きいか否かを判断する。
レジスタTSUIKAは、後述するように、検索対象となるノート列の発音ノート数を候補として保持するものであり、より数の大きい発音ノート数が検索される毎に、その発音ノート数が更新登録されるようになっている。
【0093】
サーチポインタnに対応したノート列中の発音ノート数(n)がレジスタTSUIKAの値より小さいと、上記ステップSJ7の判断結果は「NO」となり、後述のステップSJ10に進むが、サーチポインタnに対応したノート列中の発音ノート数(n)がレジスタTSUIKAの値より大きい場合には、判断結果が「YES」になり、次のステップSJ8に進む。ステップSJ8では、レジスタKOHOにサーチポインタnの値をストアする。次いで、ステップSJ9では、サーチポインタnに対応したノート列中の発音ノート数(n)をレジスタTSUIKAに更新登録する。
【0094】
ステップSJ10では、サーチポインタnをインクリメントして歩進させ、続くステップSJ11では、歩進されたサーチポインタnの値がノート列数Mを超えたか否かを判断する。サーチポインタnの値がノート列数Mを超えていない場合には、判断結果が「NO」になり、上述のステップSJ4に処理を戻す。
以後、ステップSJ4〜SJ11を繰り返して条件合致するノート列を検索する。そして、サーチポインタnの値がノート列数Mを超えて検索が完了すると、上記ステップSJ11の判断結果が「YES」になり、ステップSJ12に進む。
【0095】
ステップSJ12では、レジスタKOHOの値が「0」以外、すなわち条件合致するノート列を検索できたかどうかを判断する。検索できないと、判断結果が「NO」となり、本処理を完了させる。一方、条件合致するノート列を検索できると、判断結果は「YES」になり、次のステップSJ13に進む。ステップSJ13では、検索したノート列中の今回ノート(追加ノート)のイベントタイミングを表す所定値をレジスタTTにストアする。
次に、ステップSJ14に進むと、レジスタKOHOの値に対応した今回ノート(KOHO)のノート番号NNを、レジスタCURRENTNOTEにストアする。続いて、ステップSJ15では、レジスタKOHOの値に対応した発音ノート数(KOHO)をデクリメントする。そして、ステップSJ16に進み、フラグTSUIKAFに「1」をセットして追加ノートを検出した旨を表示する。この後、ステップSJ17に進み、追加ノートのノートオンイベントを表すべく、フラグONFに「1」をセットして本処理を完了させる。
【0096】
このように、追加ノート検出第1処理では、RAM7の評価データエリアに格納されるノート列の内から、前述の評価処理を実行した際に鍵操作を間違えたノート列であって、先の押鍵の音高に一致する前回ノートを有し、しかも発音ノート数が「0」でないノート列を検索し、さらにその内で最も発音ノート数の大きいノート列を探し出す。これら条件を満たすノート列が検索された場合、そのノート列中の今回ノートを追加ノートとし、この追加ノートのイベントタイミングTTを設定する。
また、追加ノートを検索した場合、その追加ノートを含むノート列中の発音ノート数をデクリメントする。つまり、換言すれば、追加ノートを検索する毎に、対応する発音ノート数が1つずつ減少する。
【0097】
(11)追加ノート検出第2処理の動作
次に、図20を参照して追加ノート検出第2処理の動作を説明する。本処理は、上述の追加ノート検出第1処理にて該当する追加ノートを検索できなかった場合に実行される。すなわち、前述した練習案内処理のステップSH34(図17参照)あるいはステップSH45(図18参照)のいずれかを介して実行される。
本処理が実行されると、CPU5は図20に示すステップSK1に処理を進め、サーチポインタnに初期値「1」をセットする。そして、ステップSK2〜SK5では、サーチポインタnを歩進させながら、RAM7の評価データエリア(図3参照)に格納されるノート列の内から、成功率が100%であって、且つレジスタFORMERNOTEに格納されるノート番号NNに一致する音高の前回ノートを有するノート列を検索する。
【0098】
すなわち、ステップSK2では、サーチポインタnに対応したノート列中の成功率(n)が100%であるか否かを判断する。成功率(n)が100%のノート列であると、検索対象外であるとして、判断結果は「NO」となり、後述するステップSK4に進む。
一方、成功率(n)が100%以外のノート列であれば、判断結果は「YES」になり、次のステップSK3に進む。ステップSK3では、サーチポインタnに対応したノート列中の前回ノート(n)が、レジスタFORMERNOTEに格納されるノート番号NNに一致するか、すなわち先の押鍵の音高に一致するかどうかを判断する。一致しなければ、判断結果は「NO」になり、ステップSK4に進む。
【0099】
ステップSK4では、サーチポインタnをインクリメントして歩進させ、続くステップSK5では、歩進されたサーチポインタnの値がノート列数Mを超えたか否かを判断する。サーチポインタnの値がノート列数Mを超えていない場合には、判断結果が「NO」になり、上述のステップSK2に処理を戻す。
以後、ステップSK2〜SK5を繰り返して条件合致するノート列を検索する。そして、この検索過程でサーチポインタnに対応したノート列中の前回ノート(n)が、レジスタFORMERNOTEに格納されるノート番号NNに一致すると、上述のステップSK3の判断結果が「YES」になり、ステップSK6に進む。ステップSK6では、サーチポインタnに対応した今回ノート(n)のノート番号NNを、レジスタCURRENTNOTEにストアすると共に、その今回ノート(追加ノート)のイベントタイミングを表す所定値をレジスタTTにストアする。次いで、ステップSK7では、フラグTSUIKAFに「1」をセットして追加ノートを検索した旨を表示し、続くステップSK8では、追加ノートのノートオンイベントを表すべく、フラグONFに「1」をセットして本処理を完了させる。
【0100】
このように、追加ノート検出第2処理では、追加ノート検出第1処理にて該当する追加ノートを検索できなかった場合、RAM7の評価データエリア(図3参照)に格納されるノート列の内から、成功率が100%であって、且つレジスタFORMERNOTEに格納されるノート番号に一致する音高の前回ノートを有するノート列を検索する。検索したノート列中の今回ノートを追加ノートとし、この追加ノートのイベントタイミングTTを設定するようになっている。
【0101】
(12)タイマインタラプト処理ルーチンの動作
次に、図21を参照してタイマインタラプト処理ルーチンの動作を説明する。前述した練習案内処理のステップSH14(図15参照)にてタイマインタラプト処理の実行禁止が解除されると、CPU5はタイマインタラプト処理を一定周期毎に実行する。本処理が実行されると、CPU5はステップSL1に進み、フラグTUIKAFが「0」、つまり追加ノートが検索できない状態であるかどうかを判断する。追加ノートが検索できない場合には、判断結果が「YES」になり、ステップSL2に進み、レジスタTの値(タイムDT)をデクリメントして本処理を終える。これに対し、追加ノートを検索できた場合には、判断結果が「NO」になり、ステップSL3に進み、レジスタTTの値をデクリメントして本処理を終える。
【0102】
(13)練習処理の動作要約
以上説明したように、「練習案内処理」、「追加ノート検出第1処理」、「追加ノート検出第2処理」および「鍵盤処理」を有する練習処理では、評価データが生成済みである場合、練習曲の曲データから最初に読み出すノートオンイベントに基づき押鍵案内を行い、これに従って押鍵した鍵のノートに続いて押鍵する追加ノートを評価データ中のノート列から検索し、検索した追加ノートの押鍵を案内する。次に、その案内に従って押鍵した鍵のノート(追加ノート)に続いて押鍵する追加ノートを更に評価データ中のノート列から検索し、検索した追加ノートの押鍵を案内するという練習案内動作が行われる。こうした練習案内動作を行う毎に、対応する発音ノート数を1つずつ減少させ、発音ノート数が「0」になったノート列を検索対象から除外する。
そして、誤った鍵操作を繰り返し練習させる為の追加ノートが無くなった場合には、評価データ中のノート列の内から、成功率が100%であって、先の押鍵の音高に一致する前回ノートを持つノート列を検索し、検索したノート列中の今回ノートを追加ノートとして押鍵を案内する。
【0103】
このように、練習処理では、前述の評価処理を行った際に生じた、誤った鍵操作を追加ノート数分繰り返し練習させる。つまり、練習曲を間違えなく演奏させる練習ではなく、練習曲から得たノート列の内、ユーザが間違えやすいノート列の演奏操作を重点的に練習させるようにしたので、曲演奏を練習する以前のレベル、例えば鍵盤を全く弾いたことが無く指使いも覚束ない初心者ユーザに、ある音高の音を出すにはどの鍵を弾けばよいのかや、ある鍵を弾くとどの音高の音が出るかを習熟させて演奏操作そのものを体得させることが可能になる。
【0104】
なお、本実施例では、練習曲の曲データに従った再生テンポで練習案内動作を進行させるようにしているが、これに替えて、ユーザの演奏レベルに応じた再生テンポで練習案内動作を進行させる態様としてもよく、そのようにすれば、演奏操作をより一層体得し易くすることが可能になる。
また、本実施例では、単音のノート列を形成するようにしたが、これに限らず、ユーザの演奏レベルが向上した場合には、複数同時押鍵するノート列を形成し、和音演奏の練習に供する態様にすることも可能である。この場合、ノート列の連係にコード進行もしくはコード転回を取入れれば、コード理論も併せて習得することが可能になる。
【0105】
【発明の効果】
請求項1〜3に記載の発明によれば、曲を形成する各音を表す曲データから連続する2音を組とした前回ノート、今回ノートおよびその出現回数を備えた複数のノート列を形成し、形成された各ノート列に、正解回数、成功率、追加ノート数及び発音ノート数の記憶エリアをそれぞれ設けておく。そして、曲データに従って演奏案内する一方、案内通りの演奏操作がなされる毎に、記憶しておいた各ノート列の内、演奏操作されたノート列の正解回数を歩進させ、演奏案内が完了すると、記憶しておいた各ノート列毎に、正解回数と出現回数とに応じた成功率およびその成功率に対応した追加ノート数を設けて前回ノート、今回ノート、出現回数、正解回数、成功率および追加ノート数からなる評価データを生成する。
次に、練習案内の開始指示に応答して、各追加ノート数を対応する発音ノート数の記憶エリアに記憶させ、曲データ記憶手段から曲データの音高を読み出し、当該読み出された音高を演奏案内するする。そしてこの演奏案内された音高を前回ノートとし、発音ノート数が0でなくかつ最も発音ノート数の大きいノート列を検索する検索処理を実行し、ノート列が検索された場合は、このノート列の今回ノートを演奏案内するとともに、ノート列に対応する発音ノート数を1つ減少させた後、今回ノートを前回ノートとして再度検索処理を実行させる。一方、ノート列が検索されない場合には、曲データ記憶手段に記憶された曲データの次の音高を読み出す。これにより、練習曲から得たノート列の内、ユーザが間違えやすいノート列の演奏操作を重点的に繰り返し練習させることが出来、曲演奏を練習する以前のレベル、例えば鍵盤を全く弾いたことが無く指使いも覚束ない初心者ユーザに、ある音高の音を出すにはどの鍵を弾けばよいのかや、ある鍵を弾くとどの音高の音が出るかを習熟させて演奏操作そのものを体得させることができる。
【図面の簡単な説明】
【図1】本発明による一実施例の構成を示すブロック図である。
【図2】ROM6に記憶される曲データの構成を示す図である。
【図3】RAM7の評価データエリアに格納されるノート列の構成を示す図である。
【図4】演奏練習モード処理の動作を示すフローチャートである。
【図5】曲選択処理の動作を示すフローチャートである。
【図6】曲選択処理の動作を示すフローチャートである。
【図7】曲選択処理の動作を示すフローチャートである。
【図8】評価処理の動作を示すフローチャートである。
【図9】演奏案内処理の動作を示すフローチャートである。
【図10】演奏案内処理の動作を示すフローチャートである。
【図11】演奏案内処理の動作を示すフローチャートである。
【図12】鍵盤処理の動作を示すフローチャートである。
【図13】評価データ生成処理の動作を示すフローチャートである。
【図14】練習処理の動作を示すフローチャートである。
【図15】練習案内処理の動作を示すフローチャートである。
【図16】練習案内処理の動作を示すフローチャートである。
【図17】練習案内処理の動作を示すフローチャートである。
【図18】練習案内処理の動作を示すフローチャートである。
【図19】追加ノート検出第1処理の動作を示すフローチャートである。
【図20】追加ノート検出第2処理の動作を示すフローチャートである。
【図21】タイマインタラプト処理の動作を示すフローチャートである。
【符号の説明】
1 鍵盤
2 押鍵ガイド部
3 パネルスイッチ
4 表示部
5 CPU
6 ROM
7 RAM
8 音源
9 サウンドシステム
Claims (3)
- 曲を形成する各音を表す曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶される曲データから連続する2音を組とした前回ノート、今回ノートおよびその出現回数を備えた複数のノート列を形成するノート列形成手段と、
前記ノート列形成手段によって形成された各ノート列に、正解回数、成功率、追加ノート数及び発音ノート数の記憶エリアがそれぞれ設けられたノート列記憶手段と、
前記曲データ記憶手段から読み出す曲データに従って演奏案内する一方、案内通りの演奏操作がなされる毎に、前記ノート列記憶手段に記憶される各ノート列の内、演奏操作されたノート列の正解回数を歩進させる演奏案内手段と、
前記演奏案内手段による演奏案内が完了した場合に、ノート列毎に、正解回数と出現回数とに応じた成功率およびその成功率に対応した追加ノート数を発生して前記ノート列記憶手段の対応する記憶エリアに格納し、前回ノート、今回ノート、出現回数、正解回数、成功率および追加ノート数からなる評価データを生成する評価データ生成手段と、
練習案内の開始指示に応答して、前記ノート列記憶手段に記憶される各追加ノート数を前記ノート列記憶手段の対応する発音ノート数の記憶エリアに記憶させる発音数記憶手段と、
前記開始指示に応答して前記曲データ記憶手段から曲データの音高を読み出し、当該読み出された音高を演奏案内する練習演奏案内手段と、
この演奏案内された音高を前回ノートとし、発音ノート数が0でなくかつ最も発音ノート数の大きいノート列を検索する検索処理を実行する検索手段と、
この検索手段によりノート列が検索された場合は、このノート列の今回ノートを演奏案内するとともに、前記ノート列に対応する発音ノート数を1つ減少させた後、前記検索手段に対して当該今回ノートを前回ノートとして再度検索処理を実行させる検索制御手段と、
前記検索手段によりノート列が検索されない場合には、前記曲データ記憶手段に記憶された曲データの次の音高を読み出す読み出し制御手段と、
を具備することを特徴とする演奏練習装置。 - 曲を形成する各音を表す曲データを記憶する演奏練習装置に適用される演奏練習方法であって、
前記曲データから連続する2音を組とした前回ノート、今回ノートおよびその出現回数を備えたノート列を形成するノート列形成過程と、
前記曲データに従って演奏案内する一方、案内通りの演奏操作がなされる毎に、前記ノート列記憶過程にて記憶されたノート列の内、演奏操作されたノート列の正解回数を歩進させる演奏案内過程と、
前記演奏案内過程による演奏案内が完了した場合に、ノート列毎に、正解回数と出現回数とに応じた成功率およびその成功率に対応した追加ノート数を発生してノート列記憶手段の対応する記憶エリアに格納し、前回ノート、今回ノート、出現回数、正解回数、成功率および追加ノート数からなる評価データを生成する評価データ生成過程と、
練習案内の開始指示に応答して、前記ノート列記憶手段に記憶される各追加ノート数を前記ノート列記憶手段の対応する発音ノート数の記憶エリアに記憶させる発音数記憶過程と、
前記開始指示に応答して前記曲データ記憶手段から曲データの音高を読み出し、当該読み出された音高を演奏案内する練習演奏案内過程と、
この演奏案内された音高を前回ノートとし、発音ノート数が0でなくかつ最も発音ノート数の大きいノート列を検索する検索処理を実行する検索過程と、
この検索過程によりノート列が検索された場合は、このノート列の今回ノートを演奏案内するとともに、前記ノート列に対応する発音ノート数を1つ減少させた後、前記検索過程に対して当該今回ノートを前回ノートとして再度検索処理を実行させる検索制御過程と、
前記検索過程によりノート列が検索されない場合には、前記曲データ記憶手段に記憶された曲データの次の音高を読み出す読み出し制御過程と、
を具備することを特徴とする演奏練習方法。 - 曲を形成する各音を表す曲データを記憶する手段およびコンピュータを備えた演奏練習装置で実行される演奏練習プログラムであって、
前記曲データから連続する2音を組とした前回ノート、今回ノートおよびその出現回数を備えたノート列を形成するノート列形成ステップと、
前記曲データに従って演奏案内する一方、案内通りの演奏操作がなされる毎に、前記ノート列記憶ステップにて記憶されたノート列の内、演奏操作されたノート列の正解回数を歩進させる演奏案内ステップと、
前記演奏案内ステップによる演奏案内が完了した場合に、ノート列毎に、正解回数と出現回数とに応じた成功率およびその成功率に対応した追加ノート数を発生してノート列記憶手段の対応する記憶エリアに格納し、前回ノート、今回ノート、出現回数、正解回数、成功率および追加ノート数からなる評価データを生成する評価データ生成ステップと、
練習案内の開始指示に応答して、前記ノート列記憶手段に記憶される各追加ノート数を前記ノート列記憶手段の対応する発音ノート数の記憶エリアに記憶させる発音数記憶ステップと、
前記開始指示に応答して前記曲データ記憶手段から曲データの音高を読み出し、当該読み出された音高を演奏案内する練習演奏案内ステップと、
この演奏案内された音高を前回ノートとし、発音ノート数が0でなくかつ最も発音ノート数の大きいノート列を検索する検索処理を実行する検索ステップと、
この検索ステップによりノート列が検索された場合は、このノート列の今回ノートを演奏案内するとともに、前記ノート列に対応する発音ノート数を1つ減少させた後、前記検索ステップに対して当該今回ノートを前回ノートとして再度検索処理を実行させる検索制御ステップと、
前記検索ステップによりノート列が検索されない場合には、前記曲データ記憶手段に記憶された曲データの次の音高を読み出す読み出し制御ステップと、
を前記コンピュータで実行させることを特徴とする演奏練習プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002349736A JP4221567B2 (ja) | 2002-12-02 | 2002-12-02 | 演奏練習装置、演奏練習方法および演奏練習プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002349736A JP4221567B2 (ja) | 2002-12-02 | 2002-12-02 | 演奏練習装置、演奏練習方法および演奏練習プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004184590A JP2004184590A (ja) | 2004-07-02 |
JP4221567B2 true JP4221567B2 (ja) | 2009-02-12 |
Family
ID=32752188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002349736A Expired - Fee Related JP4221567B2 (ja) | 2002-12-02 | 2002-12-02 | 演奏練習装置、演奏練習方法および演奏練習プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4221567B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4635577B2 (ja) * | 2004-11-24 | 2011-02-23 | カシオ計算機株式会社 | 演奏練習装置および演奏練習処理のプログラム |
JP4743615B2 (ja) * | 2006-03-30 | 2011-08-10 | 株式会社河合楽器製作所 | 練習機能付き電子楽器 |
JP6724879B2 (ja) * | 2017-09-22 | 2020-07-15 | ヤマハ株式会社 | 再生制御方法、再生制御装置およびプログラム |
CN111354327A (zh) * | 2020-03-06 | 2020-06-30 | 森兰信息科技(上海)有限公司 | 一种辅助弹奏方法、介质及智能钢琴 |
-
2002
- 2002-12-02 JP JP2002349736A patent/JP4221567B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004184590A (ja) | 2004-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4513713B2 (ja) | 演奏教習装置および演奏教習処理のプログラム | |
JP4543475B2 (ja) | 演奏練習装置および運指練習装置 | |
JP2005062827A (ja) | 楽器 | |
JP3237455B2 (ja) | 演奏指示装置 | |
JP2001242859A (ja) | 自動伴奏装置および自動伴奏方法 | |
JP4221567B2 (ja) | 演奏練習装置、演奏練習方法および演奏練習プログラム | |
JP4798301B2 (ja) | 鍵盤楽器 | |
JP2002189466A (ja) | 演奏教習装置および演奏教習方法 | |
JP5557087B2 (ja) | 自動伴奏装置およびプログラム | |
JP4517299B2 (ja) | コード教習装置およびコード教習プログラム | |
JP3005915B2 (ja) | 電子楽器 | |
JP2002182642A (ja) | 演奏案内装置および演奏案内方法 | |
JPH03184076A (ja) | 演奏ナビゲート装置 | |
JP3388532B2 (ja) | 運指指示装置 | |
JP4496882B2 (ja) | 演奏教習装置および演奏教習処理のプログラム | |
JP3809789B2 (ja) | 演奏案内装置および演奏案内方法 | |
JP5454771B2 (ja) | 演奏教習装置およびプログラム | |
JP3296202B2 (ja) | 演奏操作指示装置 | |
JP2714557B2 (ja) | 演奏練習装置 | |
JP2006284638A (ja) | 演奏教習装置および演奏教習処理のプログラム | |
JP2004205906A (ja) | 演奏練習装置および演奏練習プログラム | |
JP2009198657A (ja) | 演奏教習装置および演奏教習プログラム | |
JP4940636B2 (ja) | 演奏練習装置および演奏練習処理のプログラム | |
JP3885546B2 (ja) | 演奏教習装置及び演奏教習処理のプログラム | |
JP5600914B2 (ja) | 演奏教習装置、及び演奏教習処理のプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080827 |
|
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: 20081022 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081104 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4221567 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: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121128 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131128 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |