演奏練習装置およびプログラム
【課題】意欲を失わせることなく飽きずに練習させる演奏練習装置を実現する。
【解決手段】CPU13は、複数区間に区切られた曲の各区間(区間曲)の曲データを、ユーザ指定の順序で再生するポインタを生成する。生成されたポインタの歩進に応じて読み出される区間曲の曲データに基づき弾くべき鍵をユーザにガイドし、そのガイドされた鍵が押鍵されたら演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点する演奏練習を行いつつ、ユーザの鍵操作を演奏データとして記録し、所定点以上得点したならば、記録した演奏データを曲区間に対応付けてメモリ保存する。全ての曲区間の演奏データをメモリ保存し終えると、それら曲区間の演奏データを曲本来の並びで再生するので、曲の最初から最後まで独力で弾けるようになるまで何度も繰り返し演奏練習する必要が無くなり、意欲を失わせることなく飽きずに練習させ得る。
【解決手段】CPU13は、複数区間に区切られた曲の各区間(区間曲)の曲データを、ユーザ指定の順序で再生するポインタを生成する。生成されたポインタの歩進に応じて読み出される区間曲の曲データに基づき弾くべき鍵をユーザにガイドし、そのガイドされた鍵が押鍵されたら演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点する演奏練習を行いつつ、ユーザの鍵操作を演奏データとして記録し、所定点以上得点したならば、記録した演奏データを曲区間に対応付けてメモリ保存する。全ての曲区間の演奏データをメモリ保存し終えると、それら曲区間の演奏データを曲本来の並びで再生するので、曲の最初から最後まで独力で弾けるようになるまで何度も繰り返し演奏練習する必要が無くなり、意欲を失わせることなく飽きずに練習させ得る。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの意欲を失わせることなく飽きずに練習させ得る演奏練習装置およびプログラムに関する。
【背景技術】
【0002】
発音すべき音高とその発音タイミングとを表す曲データに基づき、鍵盤の各鍵に設けられたLED(発光素子)の内、発音すべき音高の鍵に配設されるLEDを発音タイミングに対応して点灯させて演奏者に弾くべき鍵をガイドする装置が知られている。この種の装置として、例えば特許文献1には、発音タイミングを過ぎてもガイドされた鍵が押鍵されない時には、そのガイドされた鍵が押鍵されるまで曲データの読み出しを停止させる教習形態とし、発音タイミング前にガイドされた鍵を押鍵した時にはその発音タイミングまで曲データを早送りさせる教習形態とする装置、すなわち弾くべき鍵の押鍵タイミングに応じて教習形態を変化させる装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−206965号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、音楽に慣れ親しんでいない初心者ユーザでは、上記特許文献1に開示の教習形態であっても、ガイドされた鍵を押鍵することだけに専心してしまう為、曲進行に沿った鍵操作(押離鍵操作)として会得し難い。そのため、曲の最初から最後まで独力で弾けるようになるまで何度も繰り返し演奏練習しなければならないが、その過程ではかばかしい進歩が見られないと練習意欲を失ったり練習に飽きたりすることが多い。つまり、換言すれば、意欲を失わせることなく飽きずに練習させることが出来ない、という問題がある。
【0005】
本発明は、このような事情に鑑みてなされたもので、意欲を失わせることなく飽きずに練習させることができる演奏練習装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するため、請求項1に記載の発明では、複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶された各区間曲データの読み出し順序を指定する順序指定手段と、前記順序指定手段により指定された読み出し順序に従って前記曲データ記憶手段から読み出される区間曲データに応じて鍵操作をガイドするガイド手段と、前記ガイド手段によりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点手段と、前記ガイド手段によりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録手段と、曲区間別の記憶エリアを備え、前記採点手段により採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録手段により記録された演奏データを、対応する曲区間の記憶エリアに保存する演奏データ保存手段と、前記演奏データ保存手段における曲区間別の記憶エリアの全てに演奏データが保存された場合に、それら各記憶エリアの演奏データを曲本来の順序で再生する再生手段とを具備することを特徴とする。
【0007】
上記請求項1に従属する請求項2に記載の発明では、前記曲データ記憶手段は、曲の区間数および各曲区間の演奏の難易度を表す曲属性データを更に記憶し、前記順序指定手段は、前記曲データ記憶手段に記憶される曲属性データを参照し、ユーザ指定される各曲区間の並び方に対応した各区間曲データの読み出し順序を指定することを特徴とする。
【0008】
上記請求項1に従属する請求項3に記載の発明では、前記採点手段の採点結果が所定得点未満の場合、当該採点手段により採点されるユーザの演奏操作が所定得点以上になる迄、前記ガイド手段にガイドのやり直しを指示する指示手段を更に備えることを特徴とする。
【0009】
上記請求項1に従属する請求項4に記載の発明では、前記採点手段の採点結果が所定得点未満の場合、前記演奏データ記録手段により記録された演奏データを消去する消去手段を更に備えることを特徴とする。
【0010】
請求項5に記載の発明では、コンピュータに、予めメモリに記憶されたデータであって、複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データの読み出し順序を指定する順序指定ステップと、前記順序指定ステップにより指定された読み出し順序に従ってメモリから読み出される区間曲データに応じて鍵操作をガイドするガイドステップと、前記ガイドステップによりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点ステップと、前記ガイドステップによりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録ステップと、前記採点ステップにて採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録ステップで記録された演奏データを、対応する曲区間別にメモリ保存する演奏データ保存ステップと、前記演奏データ保存ステップによって全ての曲区間の演奏データがメモリ保存された場合に、それら全ての曲区間の演奏データを曲本来の順序で再生する再生ステップとを実行させることを特徴とする。
【発明の効果】
【0011】
本発明では、意欲を失わせることなく飽きずに練習させることができる。
【図面の簡単な説明】
【0012】
【図1】実施の一形態による演奏練習装置100の構成を示すブロック図である。
【図2】RAM15に記憶される曲データの構成を示す図である。
【図3】RAM15に記憶される区間配列データの構成を示す図である。
【図4】ランダム配列、イージー配列およびノーマル配列の一例を示す図である。
【図5】メインルーチンの動作を示すフローチャートである。
【図6】配列生成処理の動作を示すフローチャートである。
【図7】区間再生処理の動作を示すフローチャートである。
【図8】区間ガイド処理の動作を示すフローチャートである。
【図9】区間ガイド処理の動作を示すフローチャートである。
【図10】区間録音処理の動作を示すフローチャートである。
【図11】区間録音処理の動作を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態について説明する。
A.構成
図1は、実施の一形態による演奏練習装置100の構成を示すブロック図である。この図において、鍵盤10は押離鍵操作に応じたキーオン/キーオフイベント、鍵番号およびベロシティ等の演奏情報を発生する。LED部11は、鍵盤10の各鍵毎に配設されるLED(発光素子)と、これらLEDを点灯駆動するドライバ(不図示)とから構成され、CPU13から供給される制御信号に従って指定される鍵のLEDを点灯(又は点滅)させて現在弾くべき鍵(又は次に弾くべき鍵)をユーザにガイドする。
【0014】
スイッチ部12は、装置パネルに配設される各種操作スイッチを有し、ユーザ操作されるスイッチ種に対応したスイッチイベントを発生する。スイッチ部12に配設される主要なスイッチとしては、例えば練習に供する曲を選択する曲選択スイッチの他、この曲選択スイッチ操作により選択された曲の各区間をノーマル順に曲再生するよう指示するノーマルスイッチ、選択された曲の各区間をランダム順に曲再生するよう指示するランダムスイッチおよび選択された曲の各区間をイージー順に曲再生するよう指示するイージースイッチを備える。これらスイッチ(ノーマル、ランダムおよびイージー)が意図するところについては追って述べる。
【0015】
CPU13は、スイッチ部12が発生する各種スイッチイベントに応じて装置各部を制御する。本発明の要旨に係わるCPU12の処理動作については追って詳述する。ROM14には、CPU13にロードされる各種の制御プログラムが記憶される。各種の制御プログラムとは、後述するメインルーチン、配列生成処理、区間再生処理、区間ガイド処理および区間録音処理を含む。
【0016】
RAM15は、ワークエリアおよびデータエリアを備える。RAM15のワークエリアには、CPU13の処理に使用される各種レジスタ・フラグデータが一時記憶される。RAM15のデータエリアは、曲データエリア、区間配列データエリア、録音データエリアおよび演奏データエリアから構成される。
【0017】
RAM15の録音データエリアには、区間曲(後述する)において、ユーザによって演奏されるメロディパートの演奏データと、メロディパート以外のパートの曲データとを含む録音データが記録される。RAM15の演奏データエリアには、録音データエリアの内容が区間曲別に記録される。なお、この演奏データエリアは、RAM15に限らず、例えばフラッシュメモリなどの外部記憶媒体に設ける態様であっても構わない。
【0018】
RAM15の曲データエリアには、図2に図示するように、練習に供する複数曲の曲データが記憶される。1つの練習曲は、曲ヘッダおよび複数の区間(1)〜(M)から構成される。複数の区間(1)〜(M)とは、例えば曲をフレーズ単位もしくは複数小節単位で区切ったものであり、区切られた1つの区間の曲部分を区間曲と称す。曲ヘッダは、区間曲の数や区間曲の難易度を表すデータを備える。難易度を表すデータとは、具体的には各区間曲(各区間(1)〜(M))の演奏し易さ(又は演奏し難さ)の順序を表す。
【0019】
1つの区間曲は、その区間の曲を形成する各パート(メロディパートや伴奏パート等)の構成音をそれぞれ表す曲データ(1)〜(n)から構成される。1つの曲データは、タイムTIMEとイベントEVENTとが組となって曲進行に対応した時系列のアドレス順に記憶される、いわゆる相対時間方式と呼ばれるデータ形式で表現される。タイムTIMEは、前イベントからの経過時間で現イベントのタイミングを表す。イベントEVENTは、主に発音すべき楽音の音高および音量を表すノートオンイベントおよび消音すべき楽音の音高を表すノートオフイベントから構成される。
【0020】
RAM15の区間配列データエリアは、図3に図示するように、ランダム配列データエリア、イージー配列データエリアおよびノーマル配列データエリアから構成される。ランダム配列データエリアには、曲選択スイッチ操作に応じて選択される曲の曲ヘッダに含まれる区間曲の数を参照して各区間曲(区間(1)〜(M))をランダム順に並べた配列を指定するランダム配列データが格納される。ランダム配列データは、ランダムスイッチ操作に応じて、後述する配列生成処理(図6参照)にて生成される。
【0021】
イージー配列データエリアには、曲選択スイッチ操作に応じて選択される曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照して各区間曲(区間(1)〜(M))を演奏し易い順に並べた配列を指定するイージー配列データが格納される。イージー配列データは、イージースイッチ操作に応じて、後述する配列生成処理(図6参照)にて生成される。
【0022】
ノーマル配列データエリアには、曲選択スイッチ操作に応じて選択される曲の曲ヘッダに含まれる区間曲の数を参照して各区間曲(区間(1)〜(M))をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データが格納される。ノーマル配列データは、ノーマルスイッチ操作に応じて、後述する配列生成処理(図6参照)にて生成される。これらランダム、イージー、ノーマルの各配列データは、各区間曲の並びに従って曲データのアドレスを指定するポインタ(1)〜(P)から構成される。
【0023】
ここで、図4を参照してランダム配列データ、イージー配列データおよびノーマル配列データによって指定される区間曲の並びの一例について説明する。例えば、曲選択スイッチ操作により選択された曲の各区間曲が図4に図示する一例のように、区間(1)〜区間(7)から構成され、かつ曲ヘッダに含まれる各区間曲の難易度が易しい順に「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」だったとする。
【0024】
このような場合、ランダムスイッチ操作に応じて生成されるランダム配置データは、図4(a)に図示するように、区間曲をランダムに並べた順序、例えば「区間(5)」、「区間(2)」、「区間(7)」、「区間(1)」、「区間(3)」、「区間(6)、「区間(4)」となる配列を指定するポインタから構成される。
【0025】
イージスイッチ操作に応じて生成されるイージー配列データは、図4(b)に図示するように、区間曲を易しい順に並べた「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」となる配列を指定するポインタから構成される。
【0026】
ノーマルスイッチ操作に応じて生成されるノーマル配列データは、図4(c)に図示するように、曲本来の並びである「区間(1)」、「区間(2)」、「区間(3)」、「区間(4)」、「区間(5)」、「区間(6)、「区間(7)」となる配列を指定するポインタから構成される。
【0027】
再び図1を参照して実施形態の構成について説明を進める。図1において、表示部16は、LCDパネル等から構成され、CPU13から供給される表示制御信号に応じて各種設定状態や動作状態など画面表示する。音源17は、周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源17は、各種音色の波形データを記憶しており、これらの内、CPU13から供給される楽音パラメータに応じた波形データを読み出して楽音出力を発生する。サウンドシステム18は、音源17の楽音出力をアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより発音させる。
【0028】
B.動作
次に、図5〜図11を参照して上記構成による実施形態の動作について説明する。以下では、最初にメインルーチンの動作を説明し、続いてメインルーチンからコールされる配列生成処理、区間再生処理、区間ガイド処理および区間録音処理の各動作について述べる。
【0029】
(1)メインルーチンの動作
演奏練習装置100がパワーオンされると、CPU13は図5に図示するメインルーチンを実行してステップSA1に処理を進め、RAM15のワークエリアに格納される各種レジスタやフラグデータをゼロリセット又は初期値セットする他、音源17に対して初期化を指示するイニシャライズを行う。イニシャライズが完了すると、CPU113は、ステップSA2に進み、例えば曲選択スイッチ操作に応じて演奏練習に供する曲の曲データを選択したり、上述したランダムスイッチ、イージスイッチおよびノーマルスイッチの何れかの操作に応じて区間配列(ランダム配列、イージー配列およびノーマル配列の何れか)を選択したりするスイッチ処理を実行する。
【0030】
続いて、ステップSA3では、配列生成処理を実行する。後述するように、配列生成処理では、ノーマルスイッチがオン操作された場合には、選択された曲の各区間曲をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データを生成し、その配列先頭のポインタ(1)を指定する。ランダムスイッチがオン操作された場合には、選択された曲の各区間曲をランダム順に並べた配列を指定するランダム配列データを生成し、その配列先頭のポインタ(1)を指定する。イージースイッチがオン操作された場合には、選択された曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照し、各区間曲を演奏し易い順に並べた配列を指定するイージー配列データを生成し、その配列先頭のポインタ(1)を指定する。
【0031】
次いで、ステップSA4では、区間再生処理を実行する。後述するように、区間再生処理では、ポインタの歩進に応じて順次読み出される曲データを再生する一方、読み出された曲データがメロディパートのノートオンイベントを含む場合には、そのノートオンイベントで指定される音高の鍵に配設されるLEDを点灯し、読み出された曲データがメロディパートのノートオフイベントを含む場合には、そのノートオフイベントで指定される音高の鍵に配設されるLEDを消灯することによって、区間曲を弾くお手本として押離又は離鍵する鍵の位置をユーザに教示する。
【0032】
次に、ステップSA5では、区間ガイド処理を実行する。後述するように、区間ガイド処理では、ポインタの歩進に応じて順次曲データを読み出して再生すると同時に、歩進中のポインタから最も近いメロディパートのノートオンイベントを検索し、該当するノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅させて次に押鍵すべき鍵をユーザにガイドする。そして、ガイドされた点滅鍵が押鍵される毎に演奏採点値を加点する一方、押鍵するタイミングとなって点滅鍵から点灯鍵となった後に、間違った押鍵を行ったならば演奏採点値を減点し、区間曲の曲データを全て読み出し終えた時の採点結果(演奏採点値)が所定点未満ならば、区間曲の最初からやり直し、所定点以上を得点出来るようになるまで繰り返す。
【0033】
続いて、ステップSA6では、区間録音処理を実行する。後述するように、区間録音処理では、ポインタの歩進に応じて順次曲データを読み出し、読み出した曲データのイベントタイミングに達する以前にユーザが鍵操作すると、曲データ読み出し時点から鍵操作する迄の経過時間に相当するタイムTIMEと、鍵操作に対応するイベントEVENTとから構成される演奏データを形成してRAM15の録音データエリアにストアする一方、曲データに対応した正しい鍵操作ならば演奏採点値を加点し、間違った鍵操作ならば減点する。
【0034】
そして、読み出した曲データのイベントタイミングに達し、かつその曲データがメロディパートのノートオンイベントであると、当該ノートオンイベントに対応する鍵のLEDを点灯してユーザに弾くべき鍵をガイドし、これに応じてユーザが押鍵すると、その押鍵を表す演奏データを形成してRAM15の録音データエリアにストアする。
【0035】
ガイドされた鍵が押鍵されず、間違った押鍵操作を行う毎に演奏採点値を減点し、正しい押鍵操作が為されると、押鍵された鍵のLEDが消灯する。こうした一連の処理を区間曲の曲データを全て読み出し終えるまで行い、全て読み出し終えた時の採点結果(演奏採点値)が所定点未満であると、RAM15の録音データエリアをクリアして区間曲の最初からやり直し、所定点以上の採点結果が得られるようになるまで繰り返す。
【0036】
次いで、ステップSA7では、上記ステップSA6の区間録音処理によってRAM15の録音データエリアに記録された録音データ(区間曲の演奏データおよびメロディパート以外の曲データ)を、RAM15の演奏データエリアに区間曲別に保存する。そして、ステップSA8に進むと、全区間終了したか否か、すなわち全ての区間曲について上述したステップSA4〜SA6の各処理を実行し終えたかどうかを判断する。全区間終了していなければ、判断結果は「NO」になり、ステップSA9に進み、次の区間曲のポインタを指定した後、上述のステップSA4に処理を戻す。
【0037】
一方、全区間終了すると、上記ステップSA8の判断結果は「YES」になり、ステップSA10に進み、RAM15の演奏データエリアに保存された各区間曲の録音データを、ノーマル配列順(曲本来の並び)に結合し、続くステップSA11において、ノーマル配列順(曲本来の並び)に結合された各区間曲の録音データをRAM15の演奏データエリアから読み出して再生する。
【0038】
(2)配列生成処理の動作
次に、図6を参照して配列生成処理の動作を説明する。上述したメインルーチンのステップSA3(図5参照)を介して本処理が実行されると、CPU13は図6に図示するステップSB1、ステップSB3およびステップSB5において、ノーマルスイッチ、ランダムスイッチおよびイージースイッチの何れのスイッチがオン操作されたかを判断する。
【0039】
ノーマルスイッチがオン操作された場合には、ステップSB1の判断結果が「YES」となり、ステップSB2に進み、曲選択スイッチ操作に応じて選択された曲を構成する各区間曲(区間(1)〜(M))をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データを生成してノーマル配列データエリア(図3参照)にストアする。
【0040】
例えば、曲選択スイッチ操作により選択された曲の曲データが図4に図示する一例のように、区間(1)〜区間(7)から構成されていれば、図4(c)に図示するように、曲本来の並びである「区間(1)」、「区間(2)」、「区間(3)」、「区間(4)」、「区間(5)」、「区間(6)、「区間(7)」となる配列を指定するノーマル配列データが生成される。この後、ステップSB7に進み、ノーマル配列データにおける配列先頭のポインタ(1)を指定して本処理を終える。
【0041】
ランダムスイッチがオン操作された場合には、ステップSB3の判断結果が「YES」となり、ステップSB4に進み、曲選択スイッチ操作に応じて選択された曲を構成する各区間曲(区間(1)〜(M))をランダム順に並べた配列を指定するランダム配列データを生成してランダム配列データエリア(図3参照)にストアする。
【0042】
例えば、曲選択スイッチ操作により選択された曲の曲データが図4に図示する一例のように、区間(1)〜区間(7)から構成されていれば、図4(a)に図示するように、区間曲をランダムに並べた順序、すなわち「区間(5)」、「区間(2)」、「区間(7)」、「区間(1)」、「区間(3)」、「区間(6)、「区間(4)」となる配列を指定するランダム配列データが生成される。この後、ステップSB7に進み、ランダム配列データにおける配列先頭のポインタ(1)を指定して本処理を終える。
【0043】
イージースイッチがオン操作された場合には、ステップSB5の判断結果が「YES」になり、ステップSB6に進み、曲選択スイッチ操作に応じて選択された曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照し、各区間曲(区間(1)〜(M))を演奏し易い順に並べた配列を指定するイージー配列データを生成してイージー配列データエリア(図3参照)にストアする。
【0044】
例えば、曲選択スイッチ操作により選択された曲の曲データが図4に図示する一例のように、区間(1)〜区間(7)から構成され、かつ曲ヘッダに含まれる各区間曲の難易度が易しい順に「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」ならば、図4(b)に図示するように、区間曲を易しい順に並べた「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」となる配列を指定するイージー配列データが生成される。この後、ステップSB7に進み、イージー配列データにおける配列先頭のポインタ(1)を指定して本処理を終える。
【0045】
このように、配列生成処理では、ノーマルスイッチがオン操作された場合には、選択された曲の各区間曲をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データを生成し、その配列先頭のポインタ(1)を指定する。ランダムスイッチがオン操作された場合には、選択された曲の各区間曲をランダム順に並べた配列を指定するランダム配列データを生成し、その配列先頭のポインタ(1)を指定する。イージースイッチがオン操作された場合には、選択された曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照し、各区間曲を演奏し易い順に並べた配列を指定するイージー配列データを生成し、その配列先頭のポインタ(1)を指定する。
【0046】
(3)区間再生処理の動作
次に、図7を参照して区間再生処理の動作を説明する。上述したメインルーチンのステップSA4(図5参照)を介して本処理が実行されると、CPU13は図7に図示するステップSC1に進み、現在指定されているポインタに従って区間曲の曲データを読み出す。続いて、ステップSC2では、読み出した曲データ中のタイムTIMEが経過するまで待機する。すなわち、イベントタイミングに達するまで待機する。
【0047】
そして、読み出した曲データのイベントタイミングに達すると、上記ステップSC2の判断結果は「YES」になり、ステップSC3に進む。ステップSC3では、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントであるか否かを判断する。イベントEVENTがメロディパートのノートオンイベントならば、判断結果は「YES」になり、ステップSC4に進み、そのノートオンイベントに含まれる音高の鍵に配設されるLEDを点灯するようLED部11に指示した後、後述のステップSC7に進む。
【0048】
一方、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントでなければ、上記ステップSC3の判断結果は「NO」になり、ステップSC5に進む。ステップSC5では、読み出した曲データのイベントEVENTがメロディパートのノートオフイベントであるか否かを判断する。ノートオフイベントでなければ、判断結果は「NO」になり、後述のステップSC7に進む。
【0049】
これに対し、読み出した曲データ中のイベントEVENTがメロディパートのノートオフイベントであると、上記ステップSC5の判断結果が「YES」になり、ステップSC6に進み、そのノートオフイベントに含まれる音高の鍵に配設されるLEDを消灯するようLED部11に指示する。
【0050】
そして、ステップSC7に進み、イベントに対応した曲再生を音源17に指示する。すなわち、読み出した曲データのイベントEVENTがノートオンイベントならば、当該ノートオンイベントで指定される楽音の発音を音源17に指示し、一方、読み出した曲データのイベントEVENTがノートオフイベントならば、当該ノートオフイベントで指定される楽音の消音を音源17に指示する。
【0051】
次いで、ステップSC8では、ポインタを歩進させ、続くステップSC9では、歩進させたポインタに対応する曲データの有無、つまり1つの区間曲の曲データを全て読み出し終えたかどうかを判断する。区間曲の曲データを全て読み出し終えていなければ、判断結果は「NO」になり、上述したステップSC1に処理を戻す。以後、区間曲の曲データを全て読み出し終えるまでの間、上述したステップSC1〜SC9を繰り返す。
【0052】
このように、区間再生処理では、ポインタの歩進に応じて順次読み出される曲データを再生する一方、読み出された曲データがメロディパートのノートオンイベントを含む場合には、そのノートオンイベントで指定される音高の鍵に配設されるLEDを点灯し、読み出された曲データがメロディパートのノートオフイベントを含む場合には、そのノートオフイベントで指定される音高の鍵に配設されるLEDを消灯することによって、区間曲を弾くお手本として押離又は離鍵する鍵の位置をユーザに教示するようになっている。
【0053】
(4)区間ガイド処理の動作
次に、図8〜図9を参照して区間ガイド処理の動作を説明する。前述したメインルーチンのステップSA5(図5参照)を介して本処理が実行されると、CPU13は図8に図示するステップSD1に進み、指定されたポインタに対応する区間曲の曲データから最も近いメロディパートのノートオンイベントを含む曲データをサーチする。続いて、ステップSD2では、サーチされた曲データのノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅するようLED部11に指示する。これにより、次に押鍵すべき鍵がユーザにガイドされる。
【0054】
次いで、ステップSD3では、指定されたポインタに対応する区間曲の曲データを読み出す。そして、ステップSD4では、読み出した曲データ中のタイムTIMEが経過したか否か、すなわちイベントタイミングに達したかどうかを判断する。以下、イベントタイミング以前の動作と、イベントタイミング以後の動作とに分けて説明を進める。
【0055】
<イベントタイミング以前の動作>
イベントタイミングに達していなければ、上記ステップSD4の判断結果は「NO」になり、ステップSD5に進む。ステップSD5では、LED点滅により次に押鍵すべき鍵としてガイドされている点滅鍵の押鍵の有無を判断する。点滅鍵を押鍵しなければ、判断結果は「NO」になり、上記ステップSD4に戻り、再度イベントタイミングに達したかどうかを判断する。
【0056】
そして、イベントタイミングに達する以前にユーザが点滅鍵を押鍵したとする。そうすると、上記ステップSD5の判断結果は「YES」になり、ステップSD6に進み、演奏採点値として所定値を加点する。つまり、本来弾くべきタイミングになる前に、点滅鍵を押鍵してしまった場合、本実施形態では加点するようになっている。なお、本来弾くべきタイミングより所定時間以前に押鍵したら減点する処理を更に備える態様としてもよい。
【0057】
次いで、ステップSD7では、上記ステップSD1においてサーチされた曲データ(メロディパートのノートオンイベントを含む曲データ)にポインタを合わせる。この後、ステップSD17に進み、ポインタを歩進させ、続くステップSD18では、歩進させたポインタに対応する曲データの有無、つまり1つの区間曲の曲データを全て読み出し終えたかどうかを判断する。区間曲の曲データを全て読み出し終えていなければ、判断結果は「NO」になり、上述したステップSD3(図8参照)に処理を戻す。
【0058】
<イベントタイミング以後の動作>
さて、ステップSD3に戻り、歩進させたポインタに対応する曲データを読み出し、読み出した曲データ中のタイムTIMEが経過してイベントタイミングに達すると、上述したステップSD4の判断結果が「YES」になり、ステップSD8に進む。ステップSD8では、読み出した曲データのイベントEVENTが、上記ステップSD1においてサーチしたメロディパートのノートオンイベントであるか否かを判断する。
【0059】
サーチしたメロディパートのノートオンイベントでなければ、ここでの判断結果は「NO」になり、ステップSD9に進み、読み出した曲データのイベントEVENTに対応した曲再生を音源17に指示した後、上述したステップSD17に進む。
【0060】
一方、読み出した曲データのイベントEVENTが、上記ステップSD1においてサーチしたメロディパートのノートオンイベントであると、上記ステップSD8の判断結果が「YES」になり、ステップSD10に進み、点滅中のLEDを点灯させるようLED部11に指示する。これにより、点滅鍵の押鍵タイミングになったことをユーザにガイドする。
【0061】
次いで、ステップSD11では、上述したステップSD1と同様、次のポインタに対応する区間曲の曲データから最も近いメロディパートのノートオンイベントを含む曲データをサーチし、続くステップSD12では、サーチされた曲データのノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅するようLED部11に指示する。これにより、次に押鍵すべき鍵がユーザにガイドされる。
【0062】
この後、図9に図示するステップSD13に進み、ユーザが押鍵操作するまで待機する。そして、ユーザが押鍵操作すると、判断結果は「YES」になり、ステップSD14に進み、その押鍵操作が正しい押鍵であるか否か、すなわちLED点滅からLED点灯に変化した鍵が押鍵されたかどうかを判断する。間違った鍵を押鍵した場合には、判断結果が「NO」になり、ステップSD15に進み、演奏採点値として所定値を減点した後、上記ステップSD13に戻る。
【0063】
これに対し、正しい押鍵ならば、上記ステップSD14の判断結果は「YES」になり、ステップSD16に進み、押鍵された鍵に配設されるLEDの消灯をLED部11に指示する。この後、ステップSD17に進み、ポインタを歩進させ、続くステップSD18では、歩進させたポインタに対応する曲データの有無、つまり1つの区間曲の曲データを全て読み出し終えたかどうかを判断する。区間曲の曲データを全て読み出し終えていなければ、判断結果は「NO」になり、上述したステップSD3(図8参照)に処理を戻す。
【0064】
一方、区間曲の曲データを全て読み出し終えると、上記ステップSD18の判断結果が「YES」になり、ステップSD19に進む。ステップSD19では、採点結果(演奏採点値)が所定点(例えば85点)以上であるか否かを判断する。採点結果が所定点以上であったならば、判断結果は「YES」になり、本処理を終える。
【0065】
これに対し、所定点未満の採点結果であると、上記ステップSD19の判断結果は「NO」になり、ステップSD20に進み、ポインタを区間曲の先頭の曲データに対応させるようにポインタを最初に戻した後、図8に図示するステップSD1に処理を戻す。したがって、所定点以上の採点結果が得られるようになるまで区間ガイド処理を繰り返す。
【0066】
以上のように、区間ガイド処理では、ポインタの歩進に応じて順次曲データを読み出して再生すると同時に、歩進中のポインタから最も近いメロディパートのノートオンイベントを検索し、該当するノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅させて次に押鍵すべき鍵をユーザにガイドする。そして、ガイドされた点滅鍵が押鍵される毎に演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点し、区間曲の曲データを全て読み出し終えた時の採点結果(演奏採点値)が所定点未満ならば、区間曲の最初からやり直し、所定点以上の採点結果が得られたら本処理を終える。
【0067】
(5)区間録音処理の動作
次に、図10〜図11を参照して区間録音処理の動作を説明する。前述したメインルーチンのステップSA6(図5参照)を介して本処理が実行されると、CPU13は図10に図示するステップSE1に進み、指定されたポインタに対応する区間曲の曲データを読み出す。続いて、ステップSE2では、読み出した曲データ中のタイムTIMEが経過したか否か、すなわちイベントタイミングに達したかどうかを判断する。以下、イベントタイミング以前の動作と、イベントタイミング以降の動作とに分けて説明を進める。
【0068】
<イベントタイミング以前の動作>
イベントタイミングに達していなければ、上記ステップSE2の判断結果は「NO」になり、ステップSE3に進む。ステップSE3では、鍵変化が有るか否か、つまり鍵イベントの有無を判断する。鍵操作されず、鍵イベントが発生していなければ、判断結果は「NO」になり、上述のステップSE2に処理を戻す。
【0069】
一方、鍵操作(押鍵又は離鍵)されて鍵イベントが発生すると、上記ステップSE3の判断結果は「YES」になり、ステップSE4に進む。ステップSE4では、曲データ読み出し時点から鍵変化する迄の経過時間をタイムTIMEに設定し、続くステップSE5では、鍵変化に対応するイベントEVENTを発生する。具体的には、押鍵ならばノートオンイベントを、離鍵ならばノートオフイベントを発生する。また、ステップSE5では、生成したイベントに対応した楽音の発音(又は消音)を音源17に指示する。そして、ステップSE6に進むと、ユーザの鍵操作を表すデータとして、上記ステップSE5〜SE6で生成されたタイムTIMEとイベントEVENTとから構成される演奏データを形成してRAM15の録音データエリアにストアする。
【0070】
この後、ステップSE7に進み、その鍵操作(押鍵又は離鍵)が正しい鍵操作であるか否かを判断する。具体的には、現ポインタで指定される曲データに対応した音高の鍵操作(押鍵又は離鍵)ならば、正しい鍵操作であるとして判断結果が「YES」になり、ステップSE8に進み、演奏採点値を加点した後、上述のステップSE2に処理を戻す。これに対し、現ポインタで指定される曲データに対応した音高の鍵操作(押鍵又は離鍵)でなければ、間違った鍵操作であるとして、上記ステップSE7の判断結果は「NO」になり、ステップSE9に進み、演奏採点値を減点した後、上述のステップSE2に処理を戻す。
【0071】
<イベントタイミング以降の動作>
現ポインタに従って読み出した曲データのイベントタイミングに達すると、上述したステップSE2の判断結果が「YES」になり、ステップSE10に進む。ステップSE10では、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントであるか否かを判断する。以下、メロディパートのノートオンイベントの場合と、メロディパート以外のイベントの場合とに分けて動作説明を進める。
【0072】
a.メロディパート以外のイベントの場合
読み出した曲データ中のイベントEVENTがメロディパート以外のイベントであると、上記ステップSE10の判断結果は「NO」となり、ステップSE19に進み、その曲データをRAM15の録音データエリアにストアする。そして、図11に図示するステップSE20に進み、ポインタを歩進させ、続くステップSE21では、歩進させたポインタで指定される曲データの有無を判断する。すなわち、区間曲の全ての曲データを読み出し終えたかどうかを判断する。区間曲の全ての曲データを読み出し終えていなければ、判断結果は「NO」になり、前述したステップSE1に処理を戻す。
【0073】
b.メロディパートのノートオンイベントの場合
一方、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントであると、上述したステップSE7(図10参照)の判断結果が「YES」になり、ステップSE11に進む。ステップSE11では、当該ノートオンイベントに含まれる音高に対応した鍵に配設されるLEDを点灯するようLED部11に指示する。これにより、ユーザに弾くべき鍵がガイドされる。
【0074】
次いで、ステップSE12では、ユーザが押鍵操作するまで待機する。そして、ユーザが押鍵操作すると、ここでの判断結果が「YES」になり、ステップSE13に進む。ステップSE13では、曲データ読み出し時点から押鍵操作されるまでの経過時間をタイムTIMEに設定し、続くステップSE14では、押鍵に対応するイベントEVENT(押鍵された鍵の音高を含むノートオンイベント)を発生する。また、ステップSE14では、生成したノートオンイベントに対応した楽音の発音を音源17に指示する。そして、ステップSE15では、ユーザの押鍵操作を表すデータとして、上記ステップSE13〜SE14にて生成されたタイムTIMEとイベントEVENTとから構成される演奏データを形成してRAM15の録音データエリアにストアする。
【0075】
次いで、ステップSE16では、上記ステップSE12において為された押鍵が正しい押鍵であるかどうかを判断する。間違った押鍵、つまりLED点灯によりガイドされた鍵とは異なる鍵を押鍵した場合には、判断結果が「NO」になり、ステップSE17に進み、演奏採点値を減点した後、上述のステップSE12に処理を戻す。以後、LED点灯によりガイドされた鍵が押鍵されるまでステップSE12〜SE17を繰り返す。そして、正しい押鍵が為されると、上記ステップSE16の判断結果が「YES」になり、ステップSE18に進み、押鍵された鍵に配設されるLEDの消灯をLED部11に指示する。
【0076】
この後、図11に図示するステップSE20に進み、ポインタを歩進させ、続くステップSE21では、歩進させたポインタで指定される曲データの有無を判断する。すなわち、区間曲の全ての曲データを読み出し終えたかどうかを判断する。そして、区間曲の全ての曲データを読み出し終えたならば、判断結果が「YES」になり、ステップSE22に進む。
【0077】
ステップSE22では、採点結果(演奏採点値)が所定点(例えば85点)以上であるか否かを判断する。採点結果が所定点以上であったならば、判断結果が「YES」になり、本処理を終えるが、所定点未満の採点結果であると、上記ステップSE22の判断結果は「NO」になり、ステップSE23に進み、ポインタを区間曲の先頭の曲データに対応させるようにポインタを最初に戻し、続くステップSE24では、RAM15の録音データエリアをクリアした後、前述したステップSE1(図10参照)に処理を戻す。
【0078】
このように、区間録音処理では、ポインタの歩進に応じて順次曲データを読み出し、読み出した曲データのイベントタイミングに達する以前にユーザが鍵操作すると、曲データ読み出し時点から鍵操作する迄の経過時間に相当するタイムTIMEと、鍵操作に対応するイベントEVENTとから構成される演奏データを生成してRAM15の録音データエリアにストアする一方、曲データに対応した正しい鍵操作ならば演奏採点値を加点し、間違った鍵操作ならば減点する。
【0079】
そして、読み出した曲データのイベントタイミングに達し、かつその曲データがメロディパートのノートオンイベントであると、当該ノートオンイベントに対応する鍵のLEDを点灯してユーザに弾くべき鍵をガイドし、これに応じてユーザが押鍵すると、その押鍵を表す演奏データを形成してRAM15の録音データエリアにストアする。
【0080】
ガイドされた鍵が押鍵されず、間違った押鍵操作を行う毎に演奏採点値を減点し、正しい押鍵操作が為されると、押鍵された鍵のLEDが消灯する。こうした一連の処理を区間曲の曲データを全て読み出し終えるまで行い、全て読み出し終えた時の採点結果(演奏採点値)が所定点未満であると、RAM15の録音データエリアをクリアして区間曲の最初からやり直し、所定点以上の採点結果が得られるようになるまで繰り返す。
【0081】
以上説明したように、本実施形態では、例えばフレーズ単位などの複数区間に区切られた各区間の曲データ(区間曲)を、ユーザ指定の順序(ランダム順、イージー順、ノーマル順の何れか)で再生するポインタを生成した後、手本再生(区間再生処理)を行う。手本再生では、生成されたポインタの歩進に応じて区間曲の曲データを再生しながら、当該曲データに基づき区間曲を弾く手本として押離又は離鍵する鍵の位置をユーザに教示する。
【0082】
手本再生が完了すると、区間練習(区間ガイド処理)を行う。区間練習では、生成されたポインタの歩進に応じて読み出される区間曲の曲データに基づき鍵に配設されるLEDを点滅させて次に押鍵すべき鍵をユーザにガイドし、そのガイドに従って点滅鍵が押鍵されたら演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点する演奏練習を、所定点以上得点出来るようになるまで繰り返す。
【0083】
区間練習により所定点以上得点出来るまでに鍵操作に慣れたら、区間録音(区間録音処理)を行う。区間録音では、生成されたポインタの歩進に応じて読み出される区間曲の曲データに基づき鍵に配設されるLEDを点灯させて弾くべき鍵をユーザにガイドし、そのガイドされた鍵が押鍵されたら演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点する演奏練習を行う。また、区間録音では、そうした演奏練習におけるユーザの鍵操作を演奏データとして記録(録音)しておき、所定点以上得点した演奏練習の演奏データをメモリ保存する。
【0084】
ユーザ指定の順序に従い、一連の練習(手本再生、区間練習および区間録音)を全ての区間曲について実行し終えると、メモリ保存しておいた各区間曲の演奏データを曲本来の並びで再生する。こうすることによって、従来のように曲の最初から最後まで独力で弾けるようになるまで何度も繰り返し演奏練習する必要が無く、しかも各区間曲を一つ一つ弾けるように練習を積み重ねて1曲分の演奏データを形成し、それを再生すれば、あたかも自分で1曲通して弾いたかのような自身の演奏を聞いたり、他の人に聞かせる等の楽しみや励みが生まれる結果、意欲を失わせることなく飽きずに練習させることが出来る、という効果を奏する。
【0085】
なお、上述した実施形態では、説明の簡略化を図る為、図5に図示したステップSA4〜SA6の区間再生処理、区間ガイド処理および区間録音処理を連続して実行する態様としたが、これに替えて、上記各処理のそれぞれの実行前に、ユーザにどのような処理を行うか、例えば区間再生処理(ステップSA4)であれば、その開始前に「区間曲を弾く手本として押離又は離鍵する鍵の位置を教示する動作を行う」旨を画面表示してユーザに案内する案内表示動作を設ける態様としても構わない。そのようにすれば、より一層分かりやすく演奏練習を進めることが出来る。
【符号の説明】
【0086】
10 鍵盤
11 LED部
12 スイッチ部
13 CPU
14 ROM
15 RAM
16 表示部
17 音源
18 サウンドシステム
100 演奏練習装置
【技術分野】
【0001】
本発明は、ユーザの意欲を失わせることなく飽きずに練習させ得る演奏練習装置およびプログラムに関する。
【背景技術】
【0002】
発音すべき音高とその発音タイミングとを表す曲データに基づき、鍵盤の各鍵に設けられたLED(発光素子)の内、発音すべき音高の鍵に配設されるLEDを発音タイミングに対応して点灯させて演奏者に弾くべき鍵をガイドする装置が知られている。この種の装置として、例えば特許文献1には、発音タイミングを過ぎてもガイドされた鍵が押鍵されない時には、そのガイドされた鍵が押鍵されるまで曲データの読み出しを停止させる教習形態とし、発音タイミング前にガイドされた鍵を押鍵した時にはその発音タイミングまで曲データを早送りさせる教習形態とする装置、すなわち弾くべき鍵の押鍵タイミングに応じて教習形態を変化させる装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−206965号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、音楽に慣れ親しんでいない初心者ユーザでは、上記特許文献1に開示の教習形態であっても、ガイドされた鍵を押鍵することだけに専心してしまう為、曲進行に沿った鍵操作(押離鍵操作)として会得し難い。そのため、曲の最初から最後まで独力で弾けるようになるまで何度も繰り返し演奏練習しなければならないが、その過程ではかばかしい進歩が見られないと練習意欲を失ったり練習に飽きたりすることが多い。つまり、換言すれば、意欲を失わせることなく飽きずに練習させることが出来ない、という問題がある。
【0005】
本発明は、このような事情に鑑みてなされたもので、意欲を失わせることなく飽きずに練習させることができる演奏練習装置およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するため、請求項1に記載の発明では、複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データを記憶する曲データ記憶手段と、前記曲データ記憶手段に記憶された各区間曲データの読み出し順序を指定する順序指定手段と、前記順序指定手段により指定された読み出し順序に従って前記曲データ記憶手段から読み出される区間曲データに応じて鍵操作をガイドするガイド手段と、前記ガイド手段によりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点手段と、前記ガイド手段によりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録手段と、曲区間別の記憶エリアを備え、前記採点手段により採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録手段により記録された演奏データを、対応する曲区間の記憶エリアに保存する演奏データ保存手段と、前記演奏データ保存手段における曲区間別の記憶エリアの全てに演奏データが保存された場合に、それら各記憶エリアの演奏データを曲本来の順序で再生する再生手段とを具備することを特徴とする。
【0007】
上記請求項1に従属する請求項2に記載の発明では、前記曲データ記憶手段は、曲の区間数および各曲区間の演奏の難易度を表す曲属性データを更に記憶し、前記順序指定手段は、前記曲データ記憶手段に記憶される曲属性データを参照し、ユーザ指定される各曲区間の並び方に対応した各区間曲データの読み出し順序を指定することを特徴とする。
【0008】
上記請求項1に従属する請求項3に記載の発明では、前記採点手段の採点結果が所定得点未満の場合、当該採点手段により採点されるユーザの演奏操作が所定得点以上になる迄、前記ガイド手段にガイドのやり直しを指示する指示手段を更に備えることを特徴とする。
【0009】
上記請求項1に従属する請求項4に記載の発明では、前記採点手段の採点結果が所定得点未満の場合、前記演奏データ記録手段により記録された演奏データを消去する消去手段を更に備えることを特徴とする。
【0010】
請求項5に記載の発明では、コンピュータに、予めメモリに記憶されたデータであって、複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データの読み出し順序を指定する順序指定ステップと、前記順序指定ステップにより指定された読み出し順序に従ってメモリから読み出される区間曲データに応じて鍵操作をガイドするガイドステップと、前記ガイドステップによりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点ステップと、前記ガイドステップによりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録ステップと、前記採点ステップにて採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録ステップで記録された演奏データを、対応する曲区間別にメモリ保存する演奏データ保存ステップと、前記演奏データ保存ステップによって全ての曲区間の演奏データがメモリ保存された場合に、それら全ての曲区間の演奏データを曲本来の順序で再生する再生ステップとを実行させることを特徴とする。
【発明の効果】
【0011】
本発明では、意欲を失わせることなく飽きずに練習させることができる。
【図面の簡単な説明】
【0012】
【図1】実施の一形態による演奏練習装置100の構成を示すブロック図である。
【図2】RAM15に記憶される曲データの構成を示す図である。
【図3】RAM15に記憶される区間配列データの構成を示す図である。
【図4】ランダム配列、イージー配列およびノーマル配列の一例を示す図である。
【図5】メインルーチンの動作を示すフローチャートである。
【図6】配列生成処理の動作を示すフローチャートである。
【図7】区間再生処理の動作を示すフローチャートである。
【図8】区間ガイド処理の動作を示すフローチャートである。
【図9】区間ガイド処理の動作を示すフローチャートである。
【図10】区間録音処理の動作を示すフローチャートである。
【図11】区間録音処理の動作を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態について説明する。
A.構成
図1は、実施の一形態による演奏練習装置100の構成を示すブロック図である。この図において、鍵盤10は押離鍵操作に応じたキーオン/キーオフイベント、鍵番号およびベロシティ等の演奏情報を発生する。LED部11は、鍵盤10の各鍵毎に配設されるLED(発光素子)と、これらLEDを点灯駆動するドライバ(不図示)とから構成され、CPU13から供給される制御信号に従って指定される鍵のLEDを点灯(又は点滅)させて現在弾くべき鍵(又は次に弾くべき鍵)をユーザにガイドする。
【0014】
スイッチ部12は、装置パネルに配設される各種操作スイッチを有し、ユーザ操作されるスイッチ種に対応したスイッチイベントを発生する。スイッチ部12に配設される主要なスイッチとしては、例えば練習に供する曲を選択する曲選択スイッチの他、この曲選択スイッチ操作により選択された曲の各区間をノーマル順に曲再生するよう指示するノーマルスイッチ、選択された曲の各区間をランダム順に曲再生するよう指示するランダムスイッチおよび選択された曲の各区間をイージー順に曲再生するよう指示するイージースイッチを備える。これらスイッチ(ノーマル、ランダムおよびイージー)が意図するところについては追って述べる。
【0015】
CPU13は、スイッチ部12が発生する各種スイッチイベントに応じて装置各部を制御する。本発明の要旨に係わるCPU12の処理動作については追って詳述する。ROM14には、CPU13にロードされる各種の制御プログラムが記憶される。各種の制御プログラムとは、後述するメインルーチン、配列生成処理、区間再生処理、区間ガイド処理および区間録音処理を含む。
【0016】
RAM15は、ワークエリアおよびデータエリアを備える。RAM15のワークエリアには、CPU13の処理に使用される各種レジスタ・フラグデータが一時記憶される。RAM15のデータエリアは、曲データエリア、区間配列データエリア、録音データエリアおよび演奏データエリアから構成される。
【0017】
RAM15の録音データエリアには、区間曲(後述する)において、ユーザによって演奏されるメロディパートの演奏データと、メロディパート以外のパートの曲データとを含む録音データが記録される。RAM15の演奏データエリアには、録音データエリアの内容が区間曲別に記録される。なお、この演奏データエリアは、RAM15に限らず、例えばフラッシュメモリなどの外部記憶媒体に設ける態様であっても構わない。
【0018】
RAM15の曲データエリアには、図2に図示するように、練習に供する複数曲の曲データが記憶される。1つの練習曲は、曲ヘッダおよび複数の区間(1)〜(M)から構成される。複数の区間(1)〜(M)とは、例えば曲をフレーズ単位もしくは複数小節単位で区切ったものであり、区切られた1つの区間の曲部分を区間曲と称す。曲ヘッダは、区間曲の数や区間曲の難易度を表すデータを備える。難易度を表すデータとは、具体的には各区間曲(各区間(1)〜(M))の演奏し易さ(又は演奏し難さ)の順序を表す。
【0019】
1つの区間曲は、その区間の曲を形成する各パート(メロディパートや伴奏パート等)の構成音をそれぞれ表す曲データ(1)〜(n)から構成される。1つの曲データは、タイムTIMEとイベントEVENTとが組となって曲進行に対応した時系列のアドレス順に記憶される、いわゆる相対時間方式と呼ばれるデータ形式で表現される。タイムTIMEは、前イベントからの経過時間で現イベントのタイミングを表す。イベントEVENTは、主に発音すべき楽音の音高および音量を表すノートオンイベントおよび消音すべき楽音の音高を表すノートオフイベントから構成される。
【0020】
RAM15の区間配列データエリアは、図3に図示するように、ランダム配列データエリア、イージー配列データエリアおよびノーマル配列データエリアから構成される。ランダム配列データエリアには、曲選択スイッチ操作に応じて選択される曲の曲ヘッダに含まれる区間曲の数を参照して各区間曲(区間(1)〜(M))をランダム順に並べた配列を指定するランダム配列データが格納される。ランダム配列データは、ランダムスイッチ操作に応じて、後述する配列生成処理(図6参照)にて生成される。
【0021】
イージー配列データエリアには、曲選択スイッチ操作に応じて選択される曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照して各区間曲(区間(1)〜(M))を演奏し易い順に並べた配列を指定するイージー配列データが格納される。イージー配列データは、イージースイッチ操作に応じて、後述する配列生成処理(図6参照)にて生成される。
【0022】
ノーマル配列データエリアには、曲選択スイッチ操作に応じて選択される曲の曲ヘッダに含まれる区間曲の数を参照して各区間曲(区間(1)〜(M))をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データが格納される。ノーマル配列データは、ノーマルスイッチ操作に応じて、後述する配列生成処理(図6参照)にて生成される。これらランダム、イージー、ノーマルの各配列データは、各区間曲の並びに従って曲データのアドレスを指定するポインタ(1)〜(P)から構成される。
【0023】
ここで、図4を参照してランダム配列データ、イージー配列データおよびノーマル配列データによって指定される区間曲の並びの一例について説明する。例えば、曲選択スイッチ操作により選択された曲の各区間曲が図4に図示する一例のように、区間(1)〜区間(7)から構成され、かつ曲ヘッダに含まれる各区間曲の難易度が易しい順に「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」だったとする。
【0024】
このような場合、ランダムスイッチ操作に応じて生成されるランダム配置データは、図4(a)に図示するように、区間曲をランダムに並べた順序、例えば「区間(5)」、「区間(2)」、「区間(7)」、「区間(1)」、「区間(3)」、「区間(6)、「区間(4)」となる配列を指定するポインタから構成される。
【0025】
イージスイッチ操作に応じて生成されるイージー配列データは、図4(b)に図示するように、区間曲を易しい順に並べた「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」となる配列を指定するポインタから構成される。
【0026】
ノーマルスイッチ操作に応じて生成されるノーマル配列データは、図4(c)に図示するように、曲本来の並びである「区間(1)」、「区間(2)」、「区間(3)」、「区間(4)」、「区間(5)」、「区間(6)、「区間(7)」となる配列を指定するポインタから構成される。
【0027】
再び図1を参照して実施形態の構成について説明を進める。図1において、表示部16は、LCDパネル等から構成され、CPU13から供給される表示制御信号に応じて各種設定状態や動作状態など画面表示する。音源17は、周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源17は、各種音色の波形データを記憶しており、これらの内、CPU13から供給される楽音パラメータに応じた波形データを読み出して楽音出力を発生する。サウンドシステム18は、音源17の楽音出力をアナログ形式の楽音信号に変換した後、その楽音信号から不要ノイズを除去する等のフィルタリングを施してからレベル増幅してスピーカより発音させる。
【0028】
B.動作
次に、図5〜図11を参照して上記構成による実施形態の動作について説明する。以下では、最初にメインルーチンの動作を説明し、続いてメインルーチンからコールされる配列生成処理、区間再生処理、区間ガイド処理および区間録音処理の各動作について述べる。
【0029】
(1)メインルーチンの動作
演奏練習装置100がパワーオンされると、CPU13は図5に図示するメインルーチンを実行してステップSA1に処理を進め、RAM15のワークエリアに格納される各種レジスタやフラグデータをゼロリセット又は初期値セットする他、音源17に対して初期化を指示するイニシャライズを行う。イニシャライズが完了すると、CPU113は、ステップSA2に進み、例えば曲選択スイッチ操作に応じて演奏練習に供する曲の曲データを選択したり、上述したランダムスイッチ、イージスイッチおよびノーマルスイッチの何れかの操作に応じて区間配列(ランダム配列、イージー配列およびノーマル配列の何れか)を選択したりするスイッチ処理を実行する。
【0030】
続いて、ステップSA3では、配列生成処理を実行する。後述するように、配列生成処理では、ノーマルスイッチがオン操作された場合には、選択された曲の各区間曲をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データを生成し、その配列先頭のポインタ(1)を指定する。ランダムスイッチがオン操作された場合には、選択された曲の各区間曲をランダム順に並べた配列を指定するランダム配列データを生成し、その配列先頭のポインタ(1)を指定する。イージースイッチがオン操作された場合には、選択された曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照し、各区間曲を演奏し易い順に並べた配列を指定するイージー配列データを生成し、その配列先頭のポインタ(1)を指定する。
【0031】
次いで、ステップSA4では、区間再生処理を実行する。後述するように、区間再生処理では、ポインタの歩進に応じて順次読み出される曲データを再生する一方、読み出された曲データがメロディパートのノートオンイベントを含む場合には、そのノートオンイベントで指定される音高の鍵に配設されるLEDを点灯し、読み出された曲データがメロディパートのノートオフイベントを含む場合には、そのノートオフイベントで指定される音高の鍵に配設されるLEDを消灯することによって、区間曲を弾くお手本として押離又は離鍵する鍵の位置をユーザに教示する。
【0032】
次に、ステップSA5では、区間ガイド処理を実行する。後述するように、区間ガイド処理では、ポインタの歩進に応じて順次曲データを読み出して再生すると同時に、歩進中のポインタから最も近いメロディパートのノートオンイベントを検索し、該当するノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅させて次に押鍵すべき鍵をユーザにガイドする。そして、ガイドされた点滅鍵が押鍵される毎に演奏採点値を加点する一方、押鍵するタイミングとなって点滅鍵から点灯鍵となった後に、間違った押鍵を行ったならば演奏採点値を減点し、区間曲の曲データを全て読み出し終えた時の採点結果(演奏採点値)が所定点未満ならば、区間曲の最初からやり直し、所定点以上を得点出来るようになるまで繰り返す。
【0033】
続いて、ステップSA6では、区間録音処理を実行する。後述するように、区間録音処理では、ポインタの歩進に応じて順次曲データを読み出し、読み出した曲データのイベントタイミングに達する以前にユーザが鍵操作すると、曲データ読み出し時点から鍵操作する迄の経過時間に相当するタイムTIMEと、鍵操作に対応するイベントEVENTとから構成される演奏データを形成してRAM15の録音データエリアにストアする一方、曲データに対応した正しい鍵操作ならば演奏採点値を加点し、間違った鍵操作ならば減点する。
【0034】
そして、読み出した曲データのイベントタイミングに達し、かつその曲データがメロディパートのノートオンイベントであると、当該ノートオンイベントに対応する鍵のLEDを点灯してユーザに弾くべき鍵をガイドし、これに応じてユーザが押鍵すると、その押鍵を表す演奏データを形成してRAM15の録音データエリアにストアする。
【0035】
ガイドされた鍵が押鍵されず、間違った押鍵操作を行う毎に演奏採点値を減点し、正しい押鍵操作が為されると、押鍵された鍵のLEDが消灯する。こうした一連の処理を区間曲の曲データを全て読み出し終えるまで行い、全て読み出し終えた時の採点結果(演奏採点値)が所定点未満であると、RAM15の録音データエリアをクリアして区間曲の最初からやり直し、所定点以上の採点結果が得られるようになるまで繰り返す。
【0036】
次いで、ステップSA7では、上記ステップSA6の区間録音処理によってRAM15の録音データエリアに記録された録音データ(区間曲の演奏データおよびメロディパート以外の曲データ)を、RAM15の演奏データエリアに区間曲別に保存する。そして、ステップSA8に進むと、全区間終了したか否か、すなわち全ての区間曲について上述したステップSA4〜SA6の各処理を実行し終えたかどうかを判断する。全区間終了していなければ、判断結果は「NO」になり、ステップSA9に進み、次の区間曲のポインタを指定した後、上述のステップSA4に処理を戻す。
【0037】
一方、全区間終了すると、上記ステップSA8の判断結果は「YES」になり、ステップSA10に進み、RAM15の演奏データエリアに保存された各区間曲の録音データを、ノーマル配列順(曲本来の並び)に結合し、続くステップSA11において、ノーマル配列順(曲本来の並び)に結合された各区間曲の録音データをRAM15の演奏データエリアから読み出して再生する。
【0038】
(2)配列生成処理の動作
次に、図6を参照して配列生成処理の動作を説明する。上述したメインルーチンのステップSA3(図5参照)を介して本処理が実行されると、CPU13は図6に図示するステップSB1、ステップSB3およびステップSB5において、ノーマルスイッチ、ランダムスイッチおよびイージースイッチの何れのスイッチがオン操作されたかを判断する。
【0039】
ノーマルスイッチがオン操作された場合には、ステップSB1の判断結果が「YES」となり、ステップSB2に進み、曲選択スイッチ操作に応じて選択された曲を構成する各区間曲(区間(1)〜(M))をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データを生成してノーマル配列データエリア(図3参照)にストアする。
【0040】
例えば、曲選択スイッチ操作により選択された曲の曲データが図4に図示する一例のように、区間(1)〜区間(7)から構成されていれば、図4(c)に図示するように、曲本来の並びである「区間(1)」、「区間(2)」、「区間(3)」、「区間(4)」、「区間(5)」、「区間(6)、「区間(7)」となる配列を指定するノーマル配列データが生成される。この後、ステップSB7に進み、ノーマル配列データにおける配列先頭のポインタ(1)を指定して本処理を終える。
【0041】
ランダムスイッチがオン操作された場合には、ステップSB3の判断結果が「YES」となり、ステップSB4に進み、曲選択スイッチ操作に応じて選択された曲を構成する各区間曲(区間(1)〜(M))をランダム順に並べた配列を指定するランダム配列データを生成してランダム配列データエリア(図3参照)にストアする。
【0042】
例えば、曲選択スイッチ操作により選択された曲の曲データが図4に図示する一例のように、区間(1)〜区間(7)から構成されていれば、図4(a)に図示するように、区間曲をランダムに並べた順序、すなわち「区間(5)」、「区間(2)」、「区間(7)」、「区間(1)」、「区間(3)」、「区間(6)、「区間(4)」となる配列を指定するランダム配列データが生成される。この後、ステップSB7に進み、ランダム配列データにおける配列先頭のポインタ(1)を指定して本処理を終える。
【0043】
イージースイッチがオン操作された場合には、ステップSB5の判断結果が「YES」になり、ステップSB6に進み、曲選択スイッチ操作に応じて選択された曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照し、各区間曲(区間(1)〜(M))を演奏し易い順に並べた配列を指定するイージー配列データを生成してイージー配列データエリア(図3参照)にストアする。
【0044】
例えば、曲選択スイッチ操作により選択された曲の曲データが図4に図示する一例のように、区間(1)〜区間(7)から構成され、かつ曲ヘッダに含まれる各区間曲の難易度が易しい順に「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」ならば、図4(b)に図示するように、区間曲を易しい順に並べた「区間(7)」、「区間(1)」、「区間(4)」、「区間(2)」、「区間(5)」、「区間(3)、「区間(6)」となる配列を指定するイージー配列データが生成される。この後、ステップSB7に進み、イージー配列データにおける配列先頭のポインタ(1)を指定して本処理を終える。
【0045】
このように、配列生成処理では、ノーマルスイッチがオン操作された場合には、選択された曲の各区間曲をノーマル順(曲本来の並び)に並べた配列を指定するノーマル配列データを生成し、その配列先頭のポインタ(1)を指定する。ランダムスイッチがオン操作された場合には、選択された曲の各区間曲をランダム順に並べた配列を指定するランダム配列データを生成し、その配列先頭のポインタ(1)を指定する。イージースイッチがオン操作された場合には、選択された曲の曲ヘッダに含まれる区間曲の難易度を表すデータを参照し、各区間曲を演奏し易い順に並べた配列を指定するイージー配列データを生成し、その配列先頭のポインタ(1)を指定する。
【0046】
(3)区間再生処理の動作
次に、図7を参照して区間再生処理の動作を説明する。上述したメインルーチンのステップSA4(図5参照)を介して本処理が実行されると、CPU13は図7に図示するステップSC1に進み、現在指定されているポインタに従って区間曲の曲データを読み出す。続いて、ステップSC2では、読み出した曲データ中のタイムTIMEが経過するまで待機する。すなわち、イベントタイミングに達するまで待機する。
【0047】
そして、読み出した曲データのイベントタイミングに達すると、上記ステップSC2の判断結果は「YES」になり、ステップSC3に進む。ステップSC3では、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントであるか否かを判断する。イベントEVENTがメロディパートのノートオンイベントならば、判断結果は「YES」になり、ステップSC4に進み、そのノートオンイベントに含まれる音高の鍵に配設されるLEDを点灯するようLED部11に指示した後、後述のステップSC7に進む。
【0048】
一方、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントでなければ、上記ステップSC3の判断結果は「NO」になり、ステップSC5に進む。ステップSC5では、読み出した曲データのイベントEVENTがメロディパートのノートオフイベントであるか否かを判断する。ノートオフイベントでなければ、判断結果は「NO」になり、後述のステップSC7に進む。
【0049】
これに対し、読み出した曲データ中のイベントEVENTがメロディパートのノートオフイベントであると、上記ステップSC5の判断結果が「YES」になり、ステップSC6に進み、そのノートオフイベントに含まれる音高の鍵に配設されるLEDを消灯するようLED部11に指示する。
【0050】
そして、ステップSC7に進み、イベントに対応した曲再生を音源17に指示する。すなわち、読み出した曲データのイベントEVENTがノートオンイベントならば、当該ノートオンイベントで指定される楽音の発音を音源17に指示し、一方、読み出した曲データのイベントEVENTがノートオフイベントならば、当該ノートオフイベントで指定される楽音の消音を音源17に指示する。
【0051】
次いで、ステップSC8では、ポインタを歩進させ、続くステップSC9では、歩進させたポインタに対応する曲データの有無、つまり1つの区間曲の曲データを全て読み出し終えたかどうかを判断する。区間曲の曲データを全て読み出し終えていなければ、判断結果は「NO」になり、上述したステップSC1に処理を戻す。以後、区間曲の曲データを全て読み出し終えるまでの間、上述したステップSC1〜SC9を繰り返す。
【0052】
このように、区間再生処理では、ポインタの歩進に応じて順次読み出される曲データを再生する一方、読み出された曲データがメロディパートのノートオンイベントを含む場合には、そのノートオンイベントで指定される音高の鍵に配設されるLEDを点灯し、読み出された曲データがメロディパートのノートオフイベントを含む場合には、そのノートオフイベントで指定される音高の鍵に配設されるLEDを消灯することによって、区間曲を弾くお手本として押離又は離鍵する鍵の位置をユーザに教示するようになっている。
【0053】
(4)区間ガイド処理の動作
次に、図8〜図9を参照して区間ガイド処理の動作を説明する。前述したメインルーチンのステップSA5(図5参照)を介して本処理が実行されると、CPU13は図8に図示するステップSD1に進み、指定されたポインタに対応する区間曲の曲データから最も近いメロディパートのノートオンイベントを含む曲データをサーチする。続いて、ステップSD2では、サーチされた曲データのノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅するようLED部11に指示する。これにより、次に押鍵すべき鍵がユーザにガイドされる。
【0054】
次いで、ステップSD3では、指定されたポインタに対応する区間曲の曲データを読み出す。そして、ステップSD4では、読み出した曲データ中のタイムTIMEが経過したか否か、すなわちイベントタイミングに達したかどうかを判断する。以下、イベントタイミング以前の動作と、イベントタイミング以後の動作とに分けて説明を進める。
【0055】
<イベントタイミング以前の動作>
イベントタイミングに達していなければ、上記ステップSD4の判断結果は「NO」になり、ステップSD5に進む。ステップSD5では、LED点滅により次に押鍵すべき鍵としてガイドされている点滅鍵の押鍵の有無を判断する。点滅鍵を押鍵しなければ、判断結果は「NO」になり、上記ステップSD4に戻り、再度イベントタイミングに達したかどうかを判断する。
【0056】
そして、イベントタイミングに達する以前にユーザが点滅鍵を押鍵したとする。そうすると、上記ステップSD5の判断結果は「YES」になり、ステップSD6に進み、演奏採点値として所定値を加点する。つまり、本来弾くべきタイミングになる前に、点滅鍵を押鍵してしまった場合、本実施形態では加点するようになっている。なお、本来弾くべきタイミングより所定時間以前に押鍵したら減点する処理を更に備える態様としてもよい。
【0057】
次いで、ステップSD7では、上記ステップSD1においてサーチされた曲データ(メロディパートのノートオンイベントを含む曲データ)にポインタを合わせる。この後、ステップSD17に進み、ポインタを歩進させ、続くステップSD18では、歩進させたポインタに対応する曲データの有無、つまり1つの区間曲の曲データを全て読み出し終えたかどうかを判断する。区間曲の曲データを全て読み出し終えていなければ、判断結果は「NO」になり、上述したステップSD3(図8参照)に処理を戻す。
【0058】
<イベントタイミング以後の動作>
さて、ステップSD3に戻り、歩進させたポインタに対応する曲データを読み出し、読み出した曲データ中のタイムTIMEが経過してイベントタイミングに達すると、上述したステップSD4の判断結果が「YES」になり、ステップSD8に進む。ステップSD8では、読み出した曲データのイベントEVENTが、上記ステップSD1においてサーチしたメロディパートのノートオンイベントであるか否かを判断する。
【0059】
サーチしたメロディパートのノートオンイベントでなければ、ここでの判断結果は「NO」になり、ステップSD9に進み、読み出した曲データのイベントEVENTに対応した曲再生を音源17に指示した後、上述したステップSD17に進む。
【0060】
一方、読み出した曲データのイベントEVENTが、上記ステップSD1においてサーチしたメロディパートのノートオンイベントであると、上記ステップSD8の判断結果が「YES」になり、ステップSD10に進み、点滅中のLEDを点灯させるようLED部11に指示する。これにより、点滅鍵の押鍵タイミングになったことをユーザにガイドする。
【0061】
次いで、ステップSD11では、上述したステップSD1と同様、次のポインタに対応する区間曲の曲データから最も近いメロディパートのノートオンイベントを含む曲データをサーチし、続くステップSD12では、サーチされた曲データのノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅するようLED部11に指示する。これにより、次に押鍵すべき鍵がユーザにガイドされる。
【0062】
この後、図9に図示するステップSD13に進み、ユーザが押鍵操作するまで待機する。そして、ユーザが押鍵操作すると、判断結果は「YES」になり、ステップSD14に進み、その押鍵操作が正しい押鍵であるか否か、すなわちLED点滅からLED点灯に変化した鍵が押鍵されたかどうかを判断する。間違った鍵を押鍵した場合には、判断結果が「NO」になり、ステップSD15に進み、演奏採点値として所定値を減点した後、上記ステップSD13に戻る。
【0063】
これに対し、正しい押鍵ならば、上記ステップSD14の判断結果は「YES」になり、ステップSD16に進み、押鍵された鍵に配設されるLEDの消灯をLED部11に指示する。この後、ステップSD17に進み、ポインタを歩進させ、続くステップSD18では、歩進させたポインタに対応する曲データの有無、つまり1つの区間曲の曲データを全て読み出し終えたかどうかを判断する。区間曲の曲データを全て読み出し終えていなければ、判断結果は「NO」になり、上述したステップSD3(図8参照)に処理を戻す。
【0064】
一方、区間曲の曲データを全て読み出し終えると、上記ステップSD18の判断結果が「YES」になり、ステップSD19に進む。ステップSD19では、採点結果(演奏採点値)が所定点(例えば85点)以上であるか否かを判断する。採点結果が所定点以上であったならば、判断結果は「YES」になり、本処理を終える。
【0065】
これに対し、所定点未満の採点結果であると、上記ステップSD19の判断結果は「NO」になり、ステップSD20に進み、ポインタを区間曲の先頭の曲データに対応させるようにポインタを最初に戻した後、図8に図示するステップSD1に処理を戻す。したがって、所定点以上の採点結果が得られるようになるまで区間ガイド処理を繰り返す。
【0066】
以上のように、区間ガイド処理では、ポインタの歩進に応じて順次曲データを読み出して再生すると同時に、歩進中のポインタから最も近いメロディパートのノートオンイベントを検索し、該当するノートオンイベントに含まれる音高の鍵に配設されるLEDを点滅させて次に押鍵すべき鍵をユーザにガイドする。そして、ガイドされた点滅鍵が押鍵される毎に演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点し、区間曲の曲データを全て読み出し終えた時の採点結果(演奏採点値)が所定点未満ならば、区間曲の最初からやり直し、所定点以上の採点結果が得られたら本処理を終える。
【0067】
(5)区間録音処理の動作
次に、図10〜図11を参照して区間録音処理の動作を説明する。前述したメインルーチンのステップSA6(図5参照)を介して本処理が実行されると、CPU13は図10に図示するステップSE1に進み、指定されたポインタに対応する区間曲の曲データを読み出す。続いて、ステップSE2では、読み出した曲データ中のタイムTIMEが経過したか否か、すなわちイベントタイミングに達したかどうかを判断する。以下、イベントタイミング以前の動作と、イベントタイミング以降の動作とに分けて説明を進める。
【0068】
<イベントタイミング以前の動作>
イベントタイミングに達していなければ、上記ステップSE2の判断結果は「NO」になり、ステップSE3に進む。ステップSE3では、鍵変化が有るか否か、つまり鍵イベントの有無を判断する。鍵操作されず、鍵イベントが発生していなければ、判断結果は「NO」になり、上述のステップSE2に処理を戻す。
【0069】
一方、鍵操作(押鍵又は離鍵)されて鍵イベントが発生すると、上記ステップSE3の判断結果は「YES」になり、ステップSE4に進む。ステップSE4では、曲データ読み出し時点から鍵変化する迄の経過時間をタイムTIMEに設定し、続くステップSE5では、鍵変化に対応するイベントEVENTを発生する。具体的には、押鍵ならばノートオンイベントを、離鍵ならばノートオフイベントを発生する。また、ステップSE5では、生成したイベントに対応した楽音の発音(又は消音)を音源17に指示する。そして、ステップSE6に進むと、ユーザの鍵操作を表すデータとして、上記ステップSE5〜SE6で生成されたタイムTIMEとイベントEVENTとから構成される演奏データを形成してRAM15の録音データエリアにストアする。
【0070】
この後、ステップSE7に進み、その鍵操作(押鍵又は離鍵)が正しい鍵操作であるか否かを判断する。具体的には、現ポインタで指定される曲データに対応した音高の鍵操作(押鍵又は離鍵)ならば、正しい鍵操作であるとして判断結果が「YES」になり、ステップSE8に進み、演奏採点値を加点した後、上述のステップSE2に処理を戻す。これに対し、現ポインタで指定される曲データに対応した音高の鍵操作(押鍵又は離鍵)でなければ、間違った鍵操作であるとして、上記ステップSE7の判断結果は「NO」になり、ステップSE9に進み、演奏採点値を減点した後、上述のステップSE2に処理を戻す。
【0071】
<イベントタイミング以降の動作>
現ポインタに従って読み出した曲データのイベントタイミングに達すると、上述したステップSE2の判断結果が「YES」になり、ステップSE10に進む。ステップSE10では、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントであるか否かを判断する。以下、メロディパートのノートオンイベントの場合と、メロディパート以外のイベントの場合とに分けて動作説明を進める。
【0072】
a.メロディパート以外のイベントの場合
読み出した曲データ中のイベントEVENTがメロディパート以外のイベントであると、上記ステップSE10の判断結果は「NO」となり、ステップSE19に進み、その曲データをRAM15の録音データエリアにストアする。そして、図11に図示するステップSE20に進み、ポインタを歩進させ、続くステップSE21では、歩進させたポインタで指定される曲データの有無を判断する。すなわち、区間曲の全ての曲データを読み出し終えたかどうかを判断する。区間曲の全ての曲データを読み出し終えていなければ、判断結果は「NO」になり、前述したステップSE1に処理を戻す。
【0073】
b.メロディパートのノートオンイベントの場合
一方、読み出した曲データ中のイベントEVENTがメロディパートのノートオンイベントであると、上述したステップSE7(図10参照)の判断結果が「YES」になり、ステップSE11に進む。ステップSE11では、当該ノートオンイベントに含まれる音高に対応した鍵に配設されるLEDを点灯するようLED部11に指示する。これにより、ユーザに弾くべき鍵がガイドされる。
【0074】
次いで、ステップSE12では、ユーザが押鍵操作するまで待機する。そして、ユーザが押鍵操作すると、ここでの判断結果が「YES」になり、ステップSE13に進む。ステップSE13では、曲データ読み出し時点から押鍵操作されるまでの経過時間をタイムTIMEに設定し、続くステップSE14では、押鍵に対応するイベントEVENT(押鍵された鍵の音高を含むノートオンイベント)を発生する。また、ステップSE14では、生成したノートオンイベントに対応した楽音の発音を音源17に指示する。そして、ステップSE15では、ユーザの押鍵操作を表すデータとして、上記ステップSE13〜SE14にて生成されたタイムTIMEとイベントEVENTとから構成される演奏データを形成してRAM15の録音データエリアにストアする。
【0075】
次いで、ステップSE16では、上記ステップSE12において為された押鍵が正しい押鍵であるかどうかを判断する。間違った押鍵、つまりLED点灯によりガイドされた鍵とは異なる鍵を押鍵した場合には、判断結果が「NO」になり、ステップSE17に進み、演奏採点値を減点した後、上述のステップSE12に処理を戻す。以後、LED点灯によりガイドされた鍵が押鍵されるまでステップSE12〜SE17を繰り返す。そして、正しい押鍵が為されると、上記ステップSE16の判断結果が「YES」になり、ステップSE18に進み、押鍵された鍵に配設されるLEDの消灯をLED部11に指示する。
【0076】
この後、図11に図示するステップSE20に進み、ポインタを歩進させ、続くステップSE21では、歩進させたポインタで指定される曲データの有無を判断する。すなわち、区間曲の全ての曲データを読み出し終えたかどうかを判断する。そして、区間曲の全ての曲データを読み出し終えたならば、判断結果が「YES」になり、ステップSE22に進む。
【0077】
ステップSE22では、採点結果(演奏採点値)が所定点(例えば85点)以上であるか否かを判断する。採点結果が所定点以上であったならば、判断結果が「YES」になり、本処理を終えるが、所定点未満の採点結果であると、上記ステップSE22の判断結果は「NO」になり、ステップSE23に進み、ポインタを区間曲の先頭の曲データに対応させるようにポインタを最初に戻し、続くステップSE24では、RAM15の録音データエリアをクリアした後、前述したステップSE1(図10参照)に処理を戻す。
【0078】
このように、区間録音処理では、ポインタの歩進に応じて順次曲データを読み出し、読み出した曲データのイベントタイミングに達する以前にユーザが鍵操作すると、曲データ読み出し時点から鍵操作する迄の経過時間に相当するタイムTIMEと、鍵操作に対応するイベントEVENTとから構成される演奏データを生成してRAM15の録音データエリアにストアする一方、曲データに対応した正しい鍵操作ならば演奏採点値を加点し、間違った鍵操作ならば減点する。
【0079】
そして、読み出した曲データのイベントタイミングに達し、かつその曲データがメロディパートのノートオンイベントであると、当該ノートオンイベントに対応する鍵のLEDを点灯してユーザに弾くべき鍵をガイドし、これに応じてユーザが押鍵すると、その押鍵を表す演奏データを形成してRAM15の録音データエリアにストアする。
【0080】
ガイドされた鍵が押鍵されず、間違った押鍵操作を行う毎に演奏採点値を減点し、正しい押鍵操作が為されると、押鍵された鍵のLEDが消灯する。こうした一連の処理を区間曲の曲データを全て読み出し終えるまで行い、全て読み出し終えた時の採点結果(演奏採点値)が所定点未満であると、RAM15の録音データエリアをクリアして区間曲の最初からやり直し、所定点以上の採点結果が得られるようになるまで繰り返す。
【0081】
以上説明したように、本実施形態では、例えばフレーズ単位などの複数区間に区切られた各区間の曲データ(区間曲)を、ユーザ指定の順序(ランダム順、イージー順、ノーマル順の何れか)で再生するポインタを生成した後、手本再生(区間再生処理)を行う。手本再生では、生成されたポインタの歩進に応じて区間曲の曲データを再生しながら、当該曲データに基づき区間曲を弾く手本として押離又は離鍵する鍵の位置をユーザに教示する。
【0082】
手本再生が完了すると、区間練習(区間ガイド処理)を行う。区間練習では、生成されたポインタの歩進に応じて読み出される区間曲の曲データに基づき鍵に配設されるLEDを点滅させて次に押鍵すべき鍵をユーザにガイドし、そのガイドに従って点滅鍵が押鍵されたら演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点する演奏練習を、所定点以上得点出来るようになるまで繰り返す。
【0083】
区間練習により所定点以上得点出来るまでに鍵操作に慣れたら、区間録音(区間録音処理)を行う。区間録音では、生成されたポインタの歩進に応じて読み出される区間曲の曲データに基づき鍵に配設されるLEDを点灯させて弾くべき鍵をユーザにガイドし、そのガイドされた鍵が押鍵されたら演奏採点値を加点する一方、間違った押鍵ならば演奏採点値を減点する演奏練習を行う。また、区間録音では、そうした演奏練習におけるユーザの鍵操作を演奏データとして記録(録音)しておき、所定点以上得点した演奏練習の演奏データをメモリ保存する。
【0084】
ユーザ指定の順序に従い、一連の練習(手本再生、区間練習および区間録音)を全ての区間曲について実行し終えると、メモリ保存しておいた各区間曲の演奏データを曲本来の並びで再生する。こうすることによって、従来のように曲の最初から最後まで独力で弾けるようになるまで何度も繰り返し演奏練習する必要が無く、しかも各区間曲を一つ一つ弾けるように練習を積み重ねて1曲分の演奏データを形成し、それを再生すれば、あたかも自分で1曲通して弾いたかのような自身の演奏を聞いたり、他の人に聞かせる等の楽しみや励みが生まれる結果、意欲を失わせることなく飽きずに練習させることが出来る、という効果を奏する。
【0085】
なお、上述した実施形態では、説明の簡略化を図る為、図5に図示したステップSA4〜SA6の区間再生処理、区間ガイド処理および区間録音処理を連続して実行する態様としたが、これに替えて、上記各処理のそれぞれの実行前に、ユーザにどのような処理を行うか、例えば区間再生処理(ステップSA4)であれば、その開始前に「区間曲を弾く手本として押離又は離鍵する鍵の位置を教示する動作を行う」旨を画面表示してユーザに案内する案内表示動作を設ける態様としても構わない。そのようにすれば、より一層分かりやすく演奏練習を進めることが出来る。
【符号の説明】
【0086】
10 鍵盤
11 LED部
12 スイッチ部
13 CPU
14 ROM
15 RAM
16 表示部
17 音源
18 サウンドシステム
100 演奏練習装置
【特許請求の範囲】
【請求項1】
複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶された各区間曲データの読み出し順序を指定する順序指定手段と、
前記順序指定手段により指定された読み出し順序に従って前記曲データ記憶手段から読み出される区間曲データに応じて鍵操作をガイドするガイド手段と、
前記ガイド手段によりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点手段と、
前記ガイド手段によりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録手段と、
曲区間別の記憶エリアを備え、前記採点手段により採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録手段により記録された演奏データを、対応する曲区間の記憶エリアに保存する演奏データ保存手段と、
前記演奏データ保存手段における曲区間別の記憶エリアの全てに演奏データが保存された場合に、それら各記憶エリアの演奏データを曲本来の順序で再生する再生手段と
を具備することを特徴とする演奏練習装置。
【請求項2】
前記曲データ記憶手段は、曲の区間数および各曲区間の演奏の難易度を表す曲属性データを更に記憶し、
前記順序指定手段は、前記曲データ記憶手段に記憶される曲属性データを参照し、ユーザ指定される各曲区間の並び方に対応した各区間曲データの読み出し順序を指定することを特徴とする請求項1記載の演奏練習装置。
【請求項3】
前記採点手段の採点結果が所定得点未満の場合、当該採点手段により採点されるユーザの演奏操作が所定得点以上になる迄、前記ガイド手段にガイドのやり直しを指示する指示手段を更に備えることを特徴とする請求項1記載の演奏練習装置。
【請求項4】
前記採点手段の採点結果が所定得点未満の場合、前記演奏データ記録手段により記録された演奏データを消去する消去手段を更に備えることを特徴とする請求項1記載の演奏練習装置。
【請求項5】
コンピュータに、
予めメモリに記憶されたデータであって、複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データの読み出し順序を指定する順序指定ステップと、
前記順序指定ステップにより指定された読み出し順序に従ってメモリから読み出される区間曲データに応じて鍵操作をガイドするガイドステップと、
前記ガイドステップによりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点ステップと、
前記ガイドステップによりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録ステップと、
前記採点ステップにて採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録ステップで記録された演奏データを、対応する曲区間別にメモリ保存する演奏データ保存ステップと、
前記演奏データ保存ステップによって全ての曲区間の演奏データがメモリ保存された場合に、それら全ての曲区間の演奏データを曲本来の順序で再生する再生ステップと
を実行させることを特徴とするプログラム。
【請求項1】
複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データを記憶する曲データ記憶手段と、
前記曲データ記憶手段に記憶された各区間曲データの読み出し順序を指定する順序指定手段と、
前記順序指定手段により指定された読み出し順序に従って前記曲データ記憶手段から読み出される区間曲データに応じて鍵操作をガイドするガイド手段と、
前記ガイド手段によりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点手段と、
前記ガイド手段によりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録手段と、
曲区間別の記憶エリアを備え、前記採点手段により採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録手段により記録された演奏データを、対応する曲区間の記憶エリアに保存する演奏データ保存手段と、
前記演奏データ保存手段における曲区間別の記憶エリアの全てに演奏データが保存された場合に、それら各記憶エリアの演奏データを曲本来の順序で再生する再生手段と
を具備することを特徴とする演奏練習装置。
【請求項2】
前記曲データ記憶手段は、曲の区間数および各曲区間の演奏の難易度を表す曲属性データを更に記憶し、
前記順序指定手段は、前記曲データ記憶手段に記憶される曲属性データを参照し、ユーザ指定される各曲区間の並び方に対応した各区間曲データの読み出し順序を指定することを特徴とする請求項1記載の演奏練習装置。
【請求項3】
前記採点手段の採点結果が所定得点未満の場合、当該採点手段により採点されるユーザの演奏操作が所定得点以上になる迄、前記ガイド手段にガイドのやり直しを指示する指示手段を更に備えることを特徴とする請求項1記載の演奏練習装置。
【請求項4】
前記採点手段の採点結果が所定得点未満の場合、前記演奏データ記録手段により記録された演奏データを消去する消去手段を更に備えることを特徴とする請求項1記載の演奏練習装置。
【請求項5】
コンピュータに、
予めメモリに記憶されたデータであって、複数区間に区切られた曲の各区間をそれぞれ構成する各音を表す区間曲データの読み出し順序を指定する順序指定ステップと、
前記順序指定ステップにより指定された読み出し順序に従ってメモリから読み出される区間曲データに応じて鍵操作をガイドするガイドステップと、
前記ガイドステップによりガイドされる鍵操作に対してユーザが適正な演奏操作を行ったか否かに応じて、当該ユーザの演奏操作を採点する採点ステップと、
前記ガイドステップによりガイドされる鍵操作に対応したユーザの演奏操作を演奏データとして記録する演奏データ記録ステップと、
前記採点ステップにて採点されたユーザの演奏操作が所定得点以上の場合に、前記演奏データ記録ステップで記録された演奏データを、対応する曲区間別にメモリ保存する演奏データ保存ステップと、
前記演奏データ保存ステップによって全ての曲区間の演奏データがメモリ保存された場合に、それら全ての曲区間の演奏データを曲本来の順序で再生する再生ステップと
を実行させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−28105(P2011−28105A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−175549(P2009−175549)
【出願日】平成21年7月28日(2009.7.28)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願日】平成21年7月28日(2009.7.28)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]