JP4178549B2 - 音楽教習装置および音楽教習プログラム - Google Patents

音楽教習装置および音楽教習プログラム Download PDF

Info

Publication number
JP4178549B2
JP4178549B2 JP2003037839A JP2003037839A JP4178549B2 JP 4178549 B2 JP4178549 B2 JP 4178549B2 JP 2003037839 A JP2003037839 A JP 2003037839A JP 2003037839 A JP2003037839 A JP 2003037839A JP 4178549 B2 JP4178549 B2 JP 4178549B2
Authority
JP
Japan
Prior art keywords
answer
sound
register
stored
correct
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
Application number
JP2003037839A
Other languages
English (en)
Other versions
JP2004246231A (ja
Inventor
淳一郎 副島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2003037839A priority Critical patent/JP4178549B2/ja
Publication of JP2004246231A publication Critical patent/JP2004246231A/ja
Application granted granted Critical
Publication of JP4178549B2 publication Critical patent/JP4178549B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Electrically Operated Instructional Devices (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、パーソナルコンピュータを用いたDTM(デスクトップミュージック)装置や電子楽器などに用いて好適な音楽教習装置および音楽教習プログラムに関する。
【0002】
【従来の技術】
音楽教習をする装置として、例えば特許文献1には、問題音(任意の音高の楽音)をランダムに放音出題する問題出題手段と、放音出題された問題音の音高を演奏操作で解答する解答手段と、解答が正解すると過去に放音出題した問題音の数に新たな問題音の数を加えた数の問題音を問題出題手段からランダムに出題させる問題出題制御手段とを備え、正解する毎に放音出題数を増加させてランダムに出題させることによって、絶対音感を効果的に向上させる技術が開示されている。
【0003】
【特許文献1】
特許公開平7−13480号公報
【0004】
【発明が解決しようとする課題】
ところで、上述した従来の音楽教習装置では、単に、放音出題された問題音の音高を演奏操作で解答し、その解答が正解する毎に放音出題数を増加させるだけなので、正しく聴き取れない音高を重点的に教習させることができないという問題がある。また、従来の音楽教習装置では、単にユーザの音感を養うだけの教習しか行えず、ユーザの音楽的能力(例えば音感、読譜力および演奏力)を勘案して不得手な能力を補うような教習形態にすることができないという問題もある。
【0005】
そこで本発明は、このような事情に鑑みてなされたもので、正しく聴き取れない音高を重点的に教習させたり、不得手な能力を補うような教習形態にすることができる音楽教習装置および音楽教習プログラムを提供することを目的としている。
【0007】
上記問題点を解決するため、請求項に記載の発明では、問題音を出題して発音する出題手段と、前記出題手段にて発音された問題音の音高をユーザの回答操作に応じて回答する回答手段と、この回答手段からの回答が正解であるか否かを判定して回答結果を発生する判定手段と、少なくとも、前記回答操作の種別、前記問題音およびそれに対応する回答結果を含む回答結果データを回答がなされる毎に履歴として記憶する履歴記憶手段と、前記履歴記憶手段に記憶された回答結果データの内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を分類して抽出する抽出手段と、前記抽出手段により抽出された「きちんと答えられている音」以外の新たな問題音の出題を前記出題手段に指示する出題指示手段と、前記履歴記憶手段に記憶された回答結果データから回答操作の種別毎の正答率を求め、その中で所定の正答率に達していない種別の回答操作のみ有効にするよう前記回答手段に指示する回答指示手段とを具備することを特徴とする。
【0009】
請求項に記載の発明では、問題音を出題して発音する出題ステップと、前記出題ステップにて発音された問題音の音高をユーザの回答操作に応じて回答する回答ステップと、この回答ステップによる回答が正解であるか否かを判定して回答結果を発生する判定ステップと、少なくとも、前記回答操作の種別、前記問題音およびそれに対応する回答結果を含む回答結果データを回答がなされる毎に履歴として記憶する履歴記憶ステップと、前記履歴記憶ステップを経て記憶された回答結果データの内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を分類して抽出する抽出ステップと、前記抽出ステップにて抽出された「きちんと答えられている音」以外の新たな問題音の出題を前記出題ステップに指示する出題指示ステップと、前記履歴記憶ステップを経て記憶された回答結果データから回答操作の種別毎の正答率を求め、その中で所定の正答率に達していない種別の回答操作のみ有効にするよう前記回答ステップに指示する回答指示ステップとをコンピュータで実行させることを特徴とする。
【0010】
本発明では、問題音を出題して発音すると、その問題音の音高をユーザの回答操作に応じて回答し、それが正解であるか否かを判定した回答結果を発生する。こうした回答がなされる毎に、少なくとも、問題音とそれに対応する回答結果とを含む回答結果データが履歴記憶される。そして、履歴記憶された回答結果データの内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を分類して抽出し、抽出された「きちんと答えられている音」以外の新たな問題音の出題を指示するので、「正しく答えられない音」や「聴き取れていない音」あるいは「勘違いをしている音」、つまり正しく聴き取れない音高を重点的に教習させることが可能になる。
【0011】
また、本発明では、問題音を出題して発音すると、その問題音の音高をユーザの回答操作に応じて回答し、それが正解であるか否かを判定して回答結果を発生する。こうした回答がなされる毎に、少なくとも、回答操作の種別、問題音およびそれに対応する回答結果を含む回答結果データが履歴記憶される。そして、履歴記憶された回答結果データの内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を分類して抽出し、抽出された「きちんと答えられている音」以外の新たな問題音の出題を指示する一方、履歴記憶された回答結果データから回答操作の種別毎の正答率を求め、その中で所定の正答率に達していない種別の回答操作のみ有効にするよう指示する。したがって、例えば所定の正答率に達していない種別の回答操作が鍵盤操作である場合には、鍵盤操作だけを使用可能とし、これにより正しく聴き取れない音高を重点的に教習させる際に、不得手な能力を補うような教習形態にすることが可能になる。
【0012】
【発明の実施の形態】
以下、本発明の実施の一形態による音楽教習装置が搭載されたDTM装置を実施例とし、これについて図面を参照して説明する。
A.第1実施例の構成
(1)全体構成
図1は、本発明による第1実施例の構成を示すブロック図である。この図において、10は構成要素1〜7を備えたDTM(デクストップミュージック)装置、20はDTM装置10とMIDI接続される電子楽器である。
DTM装置10は、通常モードと強化モードとを備える。通常モードに設定された場合、DTM装置10はランダムに音高設定される問題音のノートデータを電子楽器20にMIDI出力して発音させ、それを聴いてユーザが行う回答操作(音高指定操作あるいは音名指定操作)の適否を判定して結果表示すると共に、ユーザの回答を履歴記録する。なお、回答操作として行われる音高指定操作(あるいは音名指定操作)には、DTM装置10が備えるマウス5やキーボード6もしくは電子楽器20側が備える鍵盤(不図示)を用いる。一方、強化モードに設定された場合、DTM装置10は、通常モード下で記録した回答履歴に基づきユーザが間違え易い音高を抽出し、その音高の問題音を出題して正しく聴き取れない音高を重点的に教習させるようになっている。
【0013】
電子楽器20は、DTM装置10からMIDI入力される問題音のノートデータを発音する。また、電子楽器20では、ユーザが鍵盤を回答操作に用いた場合、押鍵された鍵に対応したノートデータを発生してDTM装置10にMIDI出力する。
【0014】
(2)DTM装置10の構成
次に、図1を参照してDTM装置10の構成を説明する。図1において、1はCPUであり、後述の通常モード処理を実行した場合には、ランダムに音高設定される問題音のノートデータを電子楽器20にMIDI出力して発音させ、それを聴いてユーザが行う音高指定操作(あるいは音名指定操作)の適否を判定して結果表示する一方、ユーザの回答を履歴記録する。
また、CPU1は後述の強化モード処理を実行した場合には、通常モード下で記録した回答履歴に基づきユーザが間違え易い音高を抽出し、その音高の問題音を出題して正しく聴き取れない音高を重点的に教習させる。さらに強化モード処理では、回答操作の種別毎に得手・不得手を分析し、所定の正答率に達しない不得手な回答操作のみを強制的に行わせるようになっている。
【0015】
2はプログラムエリアおよびデータエリアを有するROMである。ROM2のプログラムエリアには、後述するメインルーチンおよびメインルーチンからコールされる通常モード処理および強化モード処理を含む各種制御プログラムが記憶される。ROM2のデータエリアには、後述のメインルーチンを起動した際に表示部7に画面表示されるメニュー画面(不図示)や、後述の通常モード処理および強化モード処理の実行時に表示部7に画面表示される回答画面G1、正解画面G2および不正解画面G3の各画面データが記憶される。これら画面G1〜G3の構成については追って説明する。
【0016】
3はワークエリア、データベースエリアおよびバッファエリアを備えるRAMである。RAM3のワークエリアには、各種レジスタ・フラグデータが一時記憶される。RAM3のデータベースエリアには、ユーザの回答を履歴記録する回答履歴データベースRDが設けられる。
回答履歴データベースRDは、図2に図示するように、出題した問題音に対応した回答結果データTrainrec[0]〜Trainrec[n]から構成される。回答結果データTrainrec[i]は、回答日時を表すデータdate、出題音の音高を表すデータQuestNote、再度発音した回数を表すデータPlayTime、発音から回答までに要した回答所要時間を表すデータAnsGateTime、回答種別を表すデータAnsType、回答した音高を表すデータAnsNoteおよび回答結果を表すデータResultから形成される。
【0017】
回答結果データTrainrec[i]を形成する各データは、Trainrec[i][j]に応じて読み出される。ここで、iは回答結果データ(i)を指定するポインタ値(0〜n)、jはiによって指定される回答結果データ(i)中のデータを指定するポインタ値である。すなわち、jが「0」の場合にはデータdateを、jが「1」の場合にはデータQuestNoteを、jが「2」の場合にはデータPlayTimeを、jが「3」の場合にはデータAnsGateTimeを、jが「4」の場合にはデータAnsTypeをそれぞれ指定する。jが「5」の場合にはデータAnsNoteを、jが「6」の場合にはデータReultを指定する。
なお、データAnsTypeは回答キャンセルの場合に「0」、キーボード6を用いて回答した場合に「1」、後述する回答画面G1でマウス5を用いて音名をクリックして回答した場合に「2」、後述する回答画面G1でマウス5を用いて楽譜をクリックして回答した場合に「3」、電子楽器20側の鍵盤を用いて回答した場合に「4」がセットされる。また、データReultは回答キャンセルの場合に「0」、正解の場合に「1」、不正解の場合に「2」がセットされる。
【0018】
RAM3のバッファエリアには、回答解析バッファKBが設けられる。回答解析バッファKBは、上述した回答履歴データベースRD(図2参照)に記録された回答結果データTrainrec[0]〜Trainrec[n]に基づき、ユーザの音感傾向を判定する際に用いられるバッファである。回答解析バッファKBは、図3に図示するように、MIDIノートナンバ#0(C0音)〜#127(G9音)の各音高に対応したノートデータNotes[0]〜Notes[127]から構成される。
【0019】
ノートデータNotes[i]は、ノートナンバnote#、出題回数TestCnt、回答回数AnsCnt、正解回数OKCnt、正解するまでに要した最長時間OKTMax、正解するまでに要した最短時間OKTmin、正解するまでに要した平均時間OKTAve、不正解回数NGCnt、不正解するまでに要した最長時間NGTMax、不正解するまでに要した最短時間NGTmin、不正解するまでに要した平均時間NGTAve、キャンセル回数UKCnt、キャンセルするまでに要した最長時間UKTMax、キャンセルするまでに要した最短時間UKTmin、キャンセルするまでに要した平均時間UKTAve、回答して不正解となった回数AnsNGCnt、回答して不正解になるまでに要した最長時間AnsNGTMax、回答して不正解になるまでに要した最短時間AnsNGTminおよび回答して不正解になるまでに要した平均時間AnsNGTAveからなり、これらはNotes[i][j]に応じて読み出される。ここで、iはノートデータ(i)を指定するポインタ値(0〜n)、jはiによって指定されるノートデータ(i)中のデータを指定するポインタ値である。
【0020】
次に、再び図1を参照して実施例の構成について説明を進める。図1において、MIDIインタフェース4は、CPU1の制御の下に、電子楽器20にMIDIデータをシリアル転送したり、電子楽器20側から送出されるMIDIデータを取り込む。
マウス5は右ボタンおよび左ボタンを備え、例えば表示画面上に配置されるアイコン上にマウスカーソルをポインティングさせた状態で左ボタンを押下する周知のクリック操作に応じてクリックイベントを発生する。キーボード6はキー入力操作に応じたKeyUpイベントを発生する。表示部7はLCDパネル等から構成され、CPU1から供給される表示制御信号に応じて、後述する回答画面G1、正解画面G2および不正解画面G3などを画面表示する。
【0021】
(3)表示画面の構成
次に、図4〜図6を参照して回答画面G1、正解画面G2および不正解画面G3の構成を説明する。回答画面G1は、後述する通常モード処理あるいは強化モード処理を実行した際に表示部7に画面表示される画面である。図4にその一例を図示する。図4において、IC1〜IC3はマウス5によりクリック操作されるアイコンである。もう一度聞くアイコンIC1は出題音の再発音を指示するイベントを発生する。やめるアイコンIC2は回答キャンセルを指示するイベントを発生する。決定アイコンIC3は回答決定を指示するイベントを発生する。
【0022】
E1は楽譜表示エリアである。楽譜表示エリアE1には、出題音を含む所定音域の音符が楽譜表示される。この楽譜表示エリアE1に楽譜表示される各音符の内、発音される問題音と同じ音高と思われる音符をマウス5でクリック操作して回答することが可能になっている。E2は音名表示エリアである。音名表示エリアE2には、出題音を含む所定音域の音名がアイコン表示される。この音名表示エリアE2にアイコン表示される各音名の内、発音される問題音と同じ音名をマウス5でクリック操作して回答することが可能になっている。E3は鍵盤表示エリアである。鍵盤表示エリアE3は、回答時には用いられず、回答結果を表示する回答結果画面G2にて問題音の正解を鍵盤上で表示する。
【0023】
こうした回答画面G1が表示部7に画面表示されている状態で問題音が発音され、その問題音を聴いて該当する音高を回答する。回答には、楽譜表示エリアE1中で該当する音符をクリック操作するか、あるいは音名表示エリアE2中で該当する音名のアイコンをクリック操作するか、もしくはキーボード6のキー入力操作の他、電子楽器20側の鍵盤を押鍵操作する。これら4通りの回答種別のいずれかで回答が行われると、正解画面G2あるいは不正解画面G3に遷移する。回答が正解の場合には、図5に図示する一例の正解画面G2が表示部7に画面表示される。この正解画面G2が、図4に図示した回答画面G1と相違する点は、ユーザに正解の旨を報知する正解マークSMをスーパーインポーズすると共に、鍵盤表示エリアE3において正解の音名に対応する鍵の表示態様を変化させることにある。
一方、回答が不正解の場合には、図6に図示する一例の不正解画面G3が表示部7に画面表示される。この不正解画面G3が、図4に図示した回答画面G1と相違する点は、ユーザに不正解の旨を報知する不正解マークFMをスーパーインポーズすると共に、鍵盤表示エリアE3において正解の音名に対応する鍵の表示態様を変化させることにある。
【0024】
B.第1実施例の動作
次に、図7〜図16を参照して第1実施例の動作について説明する。以下では、最初に全体動作としてメインルーチンの動作について説明し、続いてメインルーチンからコールされる通常モード処理および強化モード処理の各動作について順番に説明して行く。
【0025】
(1)メインルーチンの動作
DTM装置10において、メインルーチンが実行されると、CPU1は図7に示すステップSA1に処理を進め、メニュー画面を表示部7に表示する。図示していないが、メニュー画面には通常モードアイコン、強化モードアイコンおよび終了アイコンが設けられており、これらアイコンにマウス5のマウスカーソルをポインティングさせてクリック操作することで、クリック操作されたアイコンに対応する処理が実行されるようになっている。
メニュー画面でアイコンがクリック操作されなければ、ステップSA2〜SA4の各判断結果は「NO」となり、表示部7にメニュー画面を画面表示する状態を維持し続けるが、終了アイコンをクリック操作した場合には、そのクリックイベントに基づきステップSA4の判断結果が「YES」となり、メインルーチンを終える。
【0026】
メニュー画面中の通常モードアイコンをクリック操作した場合には、そのクリックイベントに基づきステップSA2の判断結果が「YES」となり、ステップSA5に進む。ステップSA5では、ランダムに音高設定される問題音のノートデータを電子楽器20にMIDI出力して発音させ、それを聴いてユーザが行う回答操作の適否を判定して結果表示する一方、ユーザの回答を履歴記録する通常モード処理を実行する。通常モード処理を終えると、ステップSA1に戻り、メニュー画面表示状態に復帰する。
【0027】
一方、メニュー画面中の強化モードアイコンをクリック操作した場合には、そのクリックイベントに基づきステップSA3の判断結果が「YES」となり、ステップSA6に進む。ステップSA6では、通常モード処理にて記録した回答履歴に基づきユーザが間違え易い音高を抽出し、その音高の問題音を出題して正しく聴き取れない音高を重点的に教習させる強化モード処理を実行する。強化モード処理を終えると、ステップSA1に戻り、メニュー画面表示状態に復帰する。
【0028】
(2)通常モード処理の動作
次に、図8〜図9を参照して通常モード処理の動作を説明する。メインルーチンのステップSA5(図7参照)を介して本処理が実行されると、図8のステップSB1に進み、ROM2から読み出した画面データに基づき表示部7に回答画面G1(図4参照)を画面表示する。次いで、ステップSB2では、出題数をカウントするレジスタnに初期値「1」をストアすると共に、出題回数を保持するレジスタKSに所定値をストアする。以後、レジスタnの内容を出題数n、レジスタKSの内容を出題回数KSと記す。
【0029】
ステップSB3では、出題数nが出題回数KSに達したか、つまり所定回数分出題し終えたか否かを判断する。所定回数分出題し終えると、判断結果は「YES」となり、本処理を完了させるが、所定回数分出題し終えていなければ、判断結果が「NO」になり、次のステップSB4に進む。ステップSB4では、ランダム関数RANDAMにて問題音のノートナンバ(音高)を発生してレジスタQuestNoteにストアする一方、そのノートナンバの楽音の発音を指示するMIDIデータを発生して電子楽器20側に送出する。これにより、電子楽器20は問題音を発音する。そして、ステップSB5では、問題音を発音させた時刻として、CPU1が管理する現在時刻timeをレジスタIQTimeにストアする。
【0030】
続いて、ステップSB6〜SB22では、ユーザ操作に応じて発生するイベントの種類に対応した処理を実行する。以下、「キーボードを用いた回答が行われた場合」、「クリック操作が行われた場合」、「決定アイコンIC3がクリックされた場合」、「鍵盤操作が行われた場合」、「やめるアイコンIC2がクリックされた場合」および「もう一度聞くアイコンIC1がクリックされた場合」に分けて動作を説明する。
【0031】
a.キーボードを用いた回答が行われた場合
発音された問題音を聴いてユーザがその問題音の音高をキーボード6からキー入力したとする。そうすると、キー入力に応じてKeyUpイベントが発生して、ステップSB6の判断結果が「YES」になり、ステップSB7に進む。ステップSB7では、キーボード6の音高入力用のキーの内、押下されたキーのキーコードをレジスタKeyIDにストアする。次いで、ステップSB8では、レジスタAnsTypeに「1」をストアし、キーボード6を用いた回答である旨を表す。続いて、ステップSB9に進み、レジスタKeyIDにストアされたキーコードを音高を表すノートナンバに変換し、これを回答音高としてレジスタAnsNoteにストアした後、後述のステップSB23(図9参照)に処理を進める。
【0032】
b.クリック操作が行われた場合
発音された問題音を聴いてユーザが回答画面G1(図4参照)の楽譜表示エリアE1もしくは音名表示エリアE2をクリック操作する回答を行うと、そのクリック操作に応じてクリックイベントが発生して、ステップSB10の判断結果が「YES」になり、ステップSB11に進む。ステップSB11では、クリック操作された時にマウスカーソルがポインティングしていた回答画面G1上の座標(posX,posY)を取得する。
【0033】
続いて、ステップSB12では、取得した座標(posX,posY)に基づき、クリック操作が楽譜表示エリアE1の音符指定であるか、あるいは音名表示エリアE2の音名指定のいずれで行われたのかを判別し、判別した回答種別、すなわち楽譜表示エリアE1で音符をクリック操作した場合にはレジスタAnsTypeに「3」を、音名表示エリアE2で音名をクリック操作した場合にはレジスタAnsTypeに「2」をストアする。次いで、ステップSB13に進み、取得した座標(posX,posY)に基づき、クリック操作された音符(あるいは音名)をノートナンバに変換してレジスタAnsNoteにストアした後、ステップSB6に処理を戻し、再びイベント検出状態に入る。
【0034】
c.決定アイコンIC3がクリック操作された場合
楽譜表示エリアE1もしくは音名表示エリアE2をクリック操作する回答が行われた後に、回答画面G1の決定アイコンIC3がクリック操作されたとする。そうすると、ステップSB21の判断結果が「YES」になり、ステップSB22に進む。ステップSB22では、クリックイベント発生済みであるか否か、つまり決定アイコンIC3がクリック操作される以前に他のクリック操作がなされていたかどうかを判断する。この場合、判断結果は「YES」となり、後述のステップSB23(図9参照)に処理を進める。
なお、決定アイコンIC3がクリック操作される以前に他のクリック操作がなされていない場合には、ステップSB22の判断結果が「NO」になり、ステップSB6に処理を戻してイベント検出状態に入り、決定アイコンIC3のクリック操作を無効にする。
【0035】
d.鍵盤操作が行われた場合
発音された問題音を聴いてユーザがその問題音の音名を電子楽器20の鍵盤で弾いたとする。そうすると、その押鍵に応じて電子楽器20から出力されるMIDIデータを入力してMIDI入力イベントが発生し、これによりステップSB14の判断結果が「YES」になり、ステップSB15に進む。ステップSB15では、入力されたMIDIデータに含まれるノートナンバNoteを回答音高としてレジスタAnsNoteにストアする。次いで、ステップSB16では、電子楽器20側の鍵盤を用いた回答である旨を表す回答種別値「4」をレジスタAnsTypeにストアする。この後、後述のステップSB23(図9参照)に処理を進める。
【0036】
e.やめるアイコンIC2がクリック操作された場合
回答操作をキャンセルすべく回答画面G1のやめるアイコンIC2をクリック操作した場合には、キャンセルイベントの発生に応じて、ステップSB17の判断結果が「YES」となり、後述のステップSB23(図9参照)に処理を進める。
【0037】
f.もう一度聞くアイコンIC1がクリック操作された場合
発音された問題音を聞き逃した場合など、問題音を再度発音させるべく回答画面G1のもう一度聞くアイコンIC1をクリック操作した場合には、再発音イベントの発生に応じて、ステップSB18の判断結果が「YES」になり、ステップSB19に進む。ステップSB19では、再度発音した回数を保持するレジスタPlayTimeの値をインクリメントして歩進させた後、ステップSB20に進み、上述のステップSB4においてレジスタQuestNoteにストアしたノートナンバの楽音の発音を指示するMIDIデータを発生して電子楽器20側に送出する。こうして、問題音を再発音させた後は、ステップSB5に進み、問題音を再発音させた時刻として、CPU1が管理する現在時刻timeをレジスタIQTimeにストアする。この後、ステップSB6に進み、再びイベント検出状態に入る。
【0038】
こうして回答操作に対応したイベント処理が行われた後、図9に示すステップSB23に進むと、現在時刻timeからレジスタIQTimeに格納される問題音発音時刻を減算して、発音から回答までに要した回答所要時間を求めてレジスタAnsGateTimeにストアする。次いで、ステップSB24に進み、レジスタQuestNoteに格納される問題音のノートナンバが、レジスタAnsNoteに格納される回答結果に一致するか否か、つまり正解であるか否かをを判断する。
【0039】
正解であると、判断結果は「YES」となり、ステップSB25に進み、レジスタResultに「1」をストアし、続くステップSB26では、図5に図示した一例の正解画面G2を表示部7に画面表示してユーザに回答が正解であったことを報知する。一方、不正解であったならば、判断結果が「NO」になり、ステップSB27に進み、レジスタResultに「2」をストアし、続くステップSB28では、図6に図示した一例の不正解画面G3を表示部7に画面表示してユーザに回答が不正解であったことを報知する。
そして、ステップSB29に進み、ユーザの回答を回答履歴データベースRD(図2参照)に履歴記録する履歴記録処理(後述する)を実行する。次いで、ステップSB30では、出題数nをインクリメントして歩進させた後、図8のステップSB3に処理を戻す。以後、出題数nが出題回数KSに達する迄、ステップSB3〜SB30を繰り返し、出題数nが出題回数KSに達した時点でステップSB3の判断結果が「YES」になり、通常モード処理を完了させる。
【0040】
(3)履歴記憶処理の動作
次に、図10を参照して履歴記憶処理の動作を説明する。上述したステップSB29(図9参照)を介して履歴記憶処理が実行されると、CPU1は図10に示すステップSC1に進み、ポインタNotesをゼロリセットし、続くステップSC2,SC3では回答履歴データベースRDから空き領域(ヌルデータ)を探し出すまでポインタNotesを歩進させる。そして、回答履歴データベースRDの空き領域が検索されると、ステップSC2の判断結果が「YES」になり、ステップSC4以降に処理を進め、回答履歴をデータベース登録する。
【0041】
すなわち、ステップSC4では、CPU1が管理する現在日時を回答日時dateとしてポインタNotesに対応したTrainrec[Notes][0]にストアする。以後、同様にしてステップSC5〜SC10では、レジスタQuestNoteに格納された問題音のノートナンバをTrainrec[Notes][1]に、レジスタPlayTimeに格納される再発音回数をTrainrec[Notes][2]に、レジスタAnsGateTimeに格納される回答所要時間をTrainrec[Notes][3]に、レジスタAnsTypeに格納される回答種別値をTrainrec[Notes][4]に、レジスタAnsNoteに格納される回答音高をTrainrec[Notes][5]に、レジスタResultに格納される回答結果をTrainrec[Notes][6]にそれぞれストアして本処理を完了させる。
【0042】
(4)強化モード処理の動作
次に、図11〜図12を参照して強化モード処理の動作を説明する。メインルーチンのステップSA6(図7参照)を介して本処理が実行されると、図11のステップSD1に進み、ROM2から読み出した画面データに基づき表示部7に回答画面G1(図4参照)を画面表示する一方、出題数をカウントするレジスタnに初期値「1」を、出題回数を保持するレジスタKSに所定値をそれぞれストアする。以後、レジスタnの内容を出題数n、レジスタKSの内容を出題回数KSと記す。
【0043】
次いで、ステップSD2では、所定回数分出題し終えたか否かを判断する。所定回数分出題し終えると、判断結果は「YES」となり、本処理を完了させるが、所定回数分出題し終えていなければ、判断結果が「NO」になり、次のステップSD3に進み、回答解析処理を実行する。後述するように、回答解析処理では、回答履歴データベースRDに履歴記憶される回答結果データの内容に従って回答解析バッファKBを更新し、更新した回答解析バッファKBの内容に基づき、ユーザの音感傾向として、「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を抽出する。
【0044】
そして、ステップSD4では、ランダム関数RANDAMにて問題音のノートナンバを発生してレジスタQuestNoteにストアし、続くステップSD5では出題音再考処理を実行する。後述するように出題音再考処理では、「きちんと答えられている音」を問題音として出題するのを回避する。つまり、上記ステップSD4にて発生した出題音が「きちんと答えられている音」である場合、「きちんと答えられている音」以外の新たな問題音を発生して発音させる。
続いて、ステップSD6に進むと、解析処理を実行する。解析処理では、後述するように、回答履歴データベースRDに履歴記憶される回答結果データの内容に従って回答種別毎の正答率を算出して、キーボード6を用いた回答、音名をクリックする回答、楽譜をクリックする回答合および鍵盤を用いた回答の得手・不得手を分析する。
【0045】
続いて、ステップSD7〜SD22では、発音された問題音を聴いてユーザが行う操作に応じて発生するイベントの種類に対応した処理を実行する。以下、「キーボードを用いた回答が行われた場合」、「クリック操作が行われた場合」、「決定アイコンIC3がクリックされた場合」、「鍵盤操作が行われた場合」、「やめるアイコンIC2がクリックされた場合」および「もう一度聞くアイコンIC1がクリックされた場合」に分けて動作を説明する。
【0046】
a.キーボードを用いた回答が行われた場合
この場合、キーボード6のキー入力に応じてKeyUpイベントが発生するので、ステップSD7に進む。ステップSD7では、レジスタbEnable「1」の反転値(論理否定値)とKeyUpイベントとの論理積が「1」か否かを判断する。レジスタbEnable「1」は、キーボードを用いた回答が所定の正答率SLを超えているか否かを表すフラグ値を保持するレジスタであり、後述の解析処理によって所定の正答率SLを超えている場合にフラグ値「1」がセットされるようになっている。つまり、キーボードを用いた回答が不得手で所定の正答率SLに達していないユーザであると、レジスタbEnable「1」の反転値は「1」、キーボードを用いた回答が得意なユーザではレジスタbEnable「1」の反転値は「0」になる。
【0047】
したがって、ステップSD7では、キーボードを用いた回答が不得手なユーザのキー入力のみを受け付け、キーボードを用いた回答が得意なユーザのキー入力は無効にする判断がなされる。そして、キーボードを用いた回答が不得手なユーザのキー入力であると、ステップSD7の判断結果が「YES」になり、ステップSD8に進む。ステップSD8では、キーボード6の音高入力用のキーの内、押下されたキーのキーコードをレジスタKeyIDにストアする。次いで、ステップSD9では、レジスタAnsTypeに「1」をストアし、キーボード6を用いた回答である旨を表す。続いて、ステップSD10に進み、レジスタKeyIDにストアされたキーコードをノートナンバに変換し、これを回答音高としてレジスタAnsNoteにストアした後、後述するステップSD23(図12参照)に処理を進める。
【0048】
b.クリック操作が行われた場合
回答画面G1(図4参照)の楽譜表示エリアE1もしくは音名表示エリアE2のクリック操作に応じてクリックイベントが発生すると、ステップSD11に進む。ステップSD11では、レジスタbEnable「2」もしくはレジスタbEnable「3」の反転値(論理否定値)とクリックイベントとの論理積が「1」か否かを判断する。
【0049】
なお、レジスタbEnable「2」は、音名表示エリアE2の音名クリックによる回答が所定の正答率SLを超えているか否かを表すフラグ値を保持するレジスタであり、後述の解析処理によって所定の正答率SLを超えている場合にフラグ値「1」がセットされるようになっている。つまり、音名クリックによる回答が不得手で所定の正答率SLに達していないユーザであると、レジスタbEnable「2」の反転値は「1」、音名クリックによる回答が得意なユーザではレジスタbEnable「1」の反転値は「0」になる。
また、レジスタbEnable「3」は、楽譜表示エリアE1の楽譜クリックによる回答が所定の正答率SLを超えているか否かを表すフラグ値を保持するレジスタであり、後述の解析処理によって所定の正答率SLを超えている場合にフラグ値「1」がセットされるようになっている。つまり、楽譜クリックによる回答が不得手で所定の正答率SLに達していないユーザであると、レジスタbEnable「2」の反転値は「1」、楽譜クリックによる回答が得意なユーザではレジスタbEnable「1」の反転値は「0」になる。
【0050】
したがって、ステップSD11では、音名クリックもしくは楽譜クリックによる回答が不得手なユーザのクリック操作のみを受け付け、音名クリックもしくは楽譜クリックによる回答が得意なユーザのクリック操作は無効にする判断がなされる。そして、音名クリックもしくは楽譜クリックによる回答が不得手なユーザのクリック操作であると、ステップSD11の判断結果が「YES」になり、ステップSD12に進む。ステップSD12では、クリック操作された時にマウスカーソルがポインティングしていた回答画面G1上の座標(posX,posY)を取得する。
【0051】
続いて、ステップSD13では、取得した座標(posX,posY)に基づき、クリック操作が楽譜表示エリアE1の音符指定であるか、あるいは音名表示エリアE2の音名指定のいずれであるかを判別し、判別した回答種別、すなわち楽譜表示エリアE1で音符をクリック操作した場合にはレジスタAnsTypeに「3」を、音名表示エリアE2で音名をクリック操作した場合にはレジスタAnsTypeに「2」をストアする。次いで、ステップSD14に進み、取得した座標(posX,posY)に基づき、クリック操作された音符あるいは音名をノートナンバに変換してレジスタAnsNoteにストアした後、ステップSD7に処理を戻し、再びイベント検出状態に入る。
【0052】
c.決定アイコンIC3がクリック操作された場合
楽譜表示エリアE1もしくは音名表示エリアE2をクリック操作する回答が行われた後に、回答画面G1の決定アイコンIC3がクリック操作されたとする。そうすると、ステップSD21の判断結果が「YES」になり、ステップSD22に進む。ステップSD22では、クリックイベント発生済みであるか否か、つまり決定アイコンIC3がクリック操作される以前に他のクリック操作がなされていたかどうかを判断する。この場合、判断結果は「YES」となり、後述のステップSD23(図12参照)に処理を進める。
なお、決定アイコンIC3がクリック操作される以前に他のクリック操作がなされていない場合には、ステップSD22の判断結果が「NO」になり、ステップSD7に処理を戻してイベント検出状態に入り、決定アイコンIC3のクリック操作を無効にする。
【0053】
d.鍵盤操作が行われた場合
この場合、電子楽器20における鍵盤の押鍵に応じてMIDI入力イベントが発生するので、ステップSD15に進む。ステップSD15では、レジスタbEnable「4」の反転値(論理否定値)とMIDI入力イベントとの論理積が「1」か否かを判断する。
レジスタbEnable「4」は、鍵盤を用いた回答が所定の正答率SLを超えているか否かを表すフラグ値を保持するレジスタであり、後述の解析処理によって所定の正答率SLを超えている場合にフラグ値「1」がセットされるようになっている。つまり、鍵盤を用いた回答が不得手で所定の正答率SLに達していないユーザであると、レジスタbEnable「4」の反転値は「1」、鍵盤を用いた回答が得意なユーザではレジスタbEnable「4」の反転値は「0」になる。
【0054】
したがって、ステップSD15では、鍵盤を用いた回答が不得手なユーザのMIDI入力イベントのみを受け付け、鍵盤を用いた回答が得意なユーザのMIDI入力イベントは無効にする判断がなされる。そして、鍵盤を用いた回答が不得手なユーザのMIDI入力イベントであると、ステップSD15の判断結果が「YES」になり、ステップSD16に進む。ステップSD16では、入力されたMIDIデータに含まれるノートナンバNoteをレジスタAnsNoteにストアする。次いで、ステップSD17では、電子楽器20側の鍵盤を用いた回答である旨を表す回答種別値「4」をレジスタAnsTypeにストアした後、後述のステップSD23(図12参照)に処理を進める。
【0055】
e.やめるアイコンIC2がクリック操作された場合
回答操作をキャンセルすべく回答画面G1のやめるアイコンIC2をクリック操作した場合には、キャンセルイベントの発生に応じて、ステップSD18の判断結果が「YES」となり、後述のステップSD23(図12参照)に処理を進める。
【0056】
f.もう一度聞くアイコンIC1がクリック操作された場合
発音された問題音を聞き逃した場合など、問題音を再度発音させるべく回答画面G1のもう一度聞くアイコンIC1をクリック操作した場合には、再発音イベントの発生に応じて、ステップSD19の判断結果が「YES」になり、ステップSD20に進む。ステップSD20では、レジスタQuestNoteに格納されているノートナンバの楽音の発音を指示するMIDIデータを発生して電子楽器20側に送出する一方、問題音を再発音させた時刻として、CPU1が管理する現在時刻timeをレジスタIQTimeにストアする。この後、ステップSD7に戻り、再びイベント検出状態に入る。
【0057】
さて、以上のようにして回答操作に対応したイベント処理が行われた後、図12に示すステップSD23に進むと、現在時刻timeからレジスタIQTimeに格納される問題音の発音時刻を減算して、発音から回答までに要した回答所要時間を求めてレジスタAnsGateTimeにストアする。次いで、ステップSD24に進み、レジスタQuestNoteに格納される問題音のノートナンバが、レジスタAnsNoteに格納される回答結果に一致するか否か、つまり正解であるか否かをを判断する。
【0058】
正解であると、判断結果は「YES」となり、ステップSD25に進み、レジスタResultに「1」をストアし、続くステップSD26では、図5に図示した一例の正解画面G2を表示部7に画面表示してユーザに回答が正解であったことを報知する。一方、不正解であったならば、判断結果が「NO」になり、ステップSD27に進み、レジスタResultに「2」をストアし、続くステップSD28では、図6に図示した一例の不正解画面G3を表示部7に画面表示してユーザに回答が不正解であったことを報知する。
そして、ステップSD29に進み、回答履歴データベースRD(図2参照)にユーザの回答を履歴記録する履歴記録処理(図10参照)を実行する。次いで、ステップSD30では、出題数nをインクリメントして歩進させた後、図11のステップSD2に処理を戻す。以後、出題数nが出題回数KSに達する迄、ステップSD2〜SD30を繰り返し、出題数nが出題回数KSに達した時点でステップSD2の判断結果が「YES」になり、強化モード処理を完了させる。
【0059】
このように、強化モード処理では、回答履歴データベースRDに履歴記憶される回答結果データの内容に従って更新される回答解析バッファKBからユーザの音感傾向として、「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を抽出し、「きちんと答えられている音」以外の新たな問題音を出題して発音する。さらに、回答履歴データベースRDに履歴記憶される回答結果データの内容に従って回答種別毎の正答率を算出して、キーボード6を用いた回答、音名をクリックする回答、楽譜をクリックする回答および鍵盤を用いた回答の得手・不得手を分析し、所定の正答率SLを超える回答種別について、その回答操作を無効にする。
【0060】
例えば、キーボード6を用いた回答や音名をクリックする回答が所定の正答率SLを超えるユーザの場合には、音の高さと音名との対応を把握して音感が備った状態と見做し、キーボード6を用いた回答操作や音名をクリックする回答操作を無効とし、それら以外の他の不得手な回答操作による回答を行わせる。
また、楽譜をクリックする回答が所定の正答率SLを超えるユーザであると、音の高さと楽譜との対応を把握し、音感が備りしかも楽譜を読める状態と見做して、楽譜をクリックする回答操作を無効とし、これ以外の他の不得手な回答操作による回答を行わせる。
さらに、鍵盤を用いた回答が所定の正答率SLを超えるユーザの場合、音の高さと鍵盤の鍵との対応を把握し、音感が備りしかも演奏力を有する状態と見做して、鍵盤を用いた回答操作を無効とし、これ以外の他の不得手な回答操作による回答を行わせる。
【0061】
(5)回答解析処理の動作
次に、図13〜図14を参照して回答解析処理の動作を説明する。上述の強化モード処理のステップSD3(図11参照)を介して本処理が実行されると、CPU1は図13のステップSE1に進み、レジスタNPerfect、レジスタNPerfectRatio、レジスタNWorst、レジスタNWorstRatio、レジスタNWissAns、レジスタNMissAnsRatio、レジスタNHasConcおよびレジスタNHasConcminをゼロリセットする。これらレジスタの内容については追って述べる。
続いて、ステップSE2ではポインタiTrainをゼロリセットする。そして、ステップSE3に進み、ポインタiTrainに対応した回答履歴データベースRD(図2参照)中のTrainrec[iTrain][0]が空き領域(ヌルデータ)であるか否か、つまり回答履歴データベースRDから回答結果データを読み出し終えたかどうかを判断する。読み出し終えていなければ、判断結果は「NO」となり、次のステップSE4に進む。
【0062】
ステップSE4では、回答解析バッファKB(図3参照)中のNotes[Trainrec[iTrain][1]][1]、つまり問題音のノートナンバQuestNoteに対応する出題回数TestCntをインクリメントして歩進させると共に、Notes[Trainrec[iTrain][5]][2]、つまり回答音高AnsNoteに対応する回答回数AnsCntをインクリメントして歩進させる。
次いで、ステップSE5〜SE7では、Trainrec[iTrain][6](データResult)に応じて、回答解析バッファKB中の該当するデータを更新する。以下、回答結果Resultが回答キャンセル、正解および不正解の各場合に分けて動作を説明する。
【0063】
<回答キャンセル(Result=0)の場合>
この場合、ステップSE5の判断結果が「YES」になり、ステップSE8に進む。ステップSE8では、回答解析バッファKB中のNotes[Trainrec[iTrain][1]][11]〜[14]の、キャンセル回数UKCnt、キャンセルするまでに要した最長時間UKTMax、キャンセルするまでに要した最短時間UKTminおよびキャンセルするまでに要した平均時間UKTAveを更新する。この後、ステップSE12に進み、ポインタiTrainをインクリメントして歩進させた後、ステップSE3に処理を戻す。
【0064】
<正解(Result=1)の場合>
この場合、ステップSE6の判断結果が「YES」になり、ステップSE9に進む。ステップSE9では、回答解析バッファKB中のNotes[Trainrec[iTrain][1]][3]〜[6]の、正解回数OKCnt、正解するまでに要した最長時間OKTMax、正解するまでに要した最短時間OKTminおよび正解するまでに要した平均時間OKTAveを更新する。この後、ステップSE12に進み、ポインタiTrainをインクリメントして歩進させた後、ステップSE3に処理を戻す。
【0065】
<不正解(Result=2)の場合>
この場合、ステップSE7の判断結果が「YES」になり、ステップSE10に進む。ステップSE10では、回答解析バッファKB中のNotes[Trainrec[iTrain][1]][7]〜[10]の、不正解回数NGCnt、不正解するまでに要した最長時間NGTMax、不正解するまでに要した最短時間NGTminおよび不正解するまでに要した平均時間NGTAveを更新する。次いで、ステップSE11に進み、回答解析バッファKB中のNotes[Trainrec[iTrain][1]][15]〜[18]の、回答して不正解となった回数AnsNGCnt、回答して不正解になるまでに要した最長時間AnsNGTMax、回答して不正解になるまでに要した最短時間AnsNGTminおよび回答して不正解になるまでに要した平均時間AnsNGTAveを更新する。この後、ステップSE12に進み、ポインタiTrainをインクリメントして歩進させた後、ステップSE3に処理を戻す。
【0066】
以後、歩進されたポインタiTrainに応じて回答履歴データベースRDから読み出されるTrainrec[iTrain][0]が空き領域(ヌルデータ)に達するまでステップSE3〜SE12を繰り返し、回答結果データの内容に従って回答解析バッファKBを更新する。そして、回答結果データを読み出し終えると、ステップSE3の判断結果が「YES」になり、図14に示すステップSE13に進む。
ステップSE13では、回答解析バッファKBに格納されるMIDIノートナンバ#0(C0音)〜#127(G9音)の各音高に対応したノートデータNotes[0]〜Notes[127]を指定するポインタiNoteをゼロリセットする。そして、ステップSE14〜SE23では、ポインタiNoteを「0」〜「127」まで歩進させながら、「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を抽出する。以下、これら条件の各音を抽出する動作について説明する。
【0067】
<「きちんと答えられている音」の抽出>
ポインタiNoteが「128」に達していない場合、ステップSE14の判断結果が「YES」になり、ステップSE15に進む。ステップSE15では、Notes[iNote][3]/Notes[iNote][1]、すなわち正解回数OKCnt/出題回数TestCntを算出し、これがレジスタNPerfectRatioより大であるか否かを判断する。
ポインタiNoteが「0」となる最初のパスでは、レジスタNPerfectRatioはゼロリセットされているので、判断結果は「YES」となり、ステップSE16に進み、正解率が最も高い音の音高(ノートナンバ)を保持するレジスタNPerfectに、ポインタiNoteの値をストアする一方、正解回数OKCnt/出題回数TestCntから求めた正解率をレジスタNPerfectRatioにストアする。
【0068】
以後、ポインタiNoteが歩進される毎に、ステップSE15を実行し、正解回数OKCnt/出題回数TestCnt>NPerfectRatioであるば、ステップSE16に進み、レジスタNPerfectおよびレジスタNPerfectRatioを更新する。そして、ポインタiNoteが「127」に達した時点で、レジスタNPerfectに格納されるノートナンバが正解率の最も高い音となり、これが「きちんと答えられている音」と見做され、さらにレジスタNPerfectRatioには、その正解率が保持される。
【0069】
<「正しく答えられない音」の抽出>
ポインタiNoteが「128」に達していない場合、ステップSE14の判断結果が「YES」になり、上記ステップSE15、SE16を経てステップSE17に進む。ステップSE17では、Notes[iNote][11]/Notes[iNote][1]、すなわちキャンセル回数UKCnt/出題回数TestCntを算出し、これがレジスタNWorstRatioより大であるか否かを判断する。
ポインタiNoteが「0」となる最初のパスでは、レジスタNWorstRatioはゼロリセットされている為、判断結果は「YES」となり、ステップSE18に進み、キャンセル率が最も高い音の音高(ノートナンバ)を保持するレジスタNWorstに、ポインタiNoteの値をストアする一方、キャンセル回数UKCnt/出題回数TestCntから求めたキャンセル率をレジスタNWorstRatioにストアする。
【0070】
以後、ポインタiNoteが歩進される毎に、ステップSE17を実行し、キャンセル回数UKCnt/出題回数TestCnt>NWorstRatioであれば、ステップSE18に進み、レジスタNWorstおよびレジスタNWorstRatioを更新する。そして、ポインタiNoteが「127」に達した時点で、レジスタNWorstに格納されるノートナンバがキャンセル率の最も高い音となり、これが「正しく答えられない音」と見做され、さらにレジスタNWorstRatioには、そのキャンセル率が保持される。
【0071】
<「聴き取れていない音」の抽出>
ポインタiNoteが「128」に達していない場合、ステップSE14の判断結果が「YES」になり、上記ステップSE15〜SE18を経てステップSE19に進む。ステップSE19では、Notes[iNote][15]/Notes[iNote][2]、すなわち回答して不正解となった回数AnsNGCnt/回答回数AnsCntを算出し、これがレジスタNMissAnsRatioより大であるか否かを判断する。
ポインタiNoteが「0」となる最初のパスでは、レジスタNMissAnsRatioはゼロリセットされている為、判断結果は「YES」となり、ステップSE20に進み、不正解回答率が最も高い音の音高(ノートナンバ)を保持するレジスタNMissAnsに、ポインタiNoteの値をストアする一方、回答して不正解となった回数AnsNGCnt/回答回数AnsCntから求めた不正解回答率をレジスタNMissAnsRatioにストアする。
【0072】
以後、ポインタiNoteが歩進される毎に、ステップSE19を実行し、回答して不正解となった回数AnsNGCnt/回答回数AnsCnt>NMissAnsRatioであれば、ステップSE20に進み、レジスタNMissAnsおよびレジスタNMissAnsRatioを更新する。そして、ポインタiNoteが「127」に達した時点で、レジスタNMissAnsに格納されるノートナンバが不正解回答率の最も高い音となり、これが「聴き取れていない音」と見做され、さらにレジスタNMissAnsRatioには、その不正解回答率が保持される。
【0073】
<「勘違いをしている音」の抽出>
ポインタiNoteが「128」に達していない場合、ステップSE14の判断結果が「YES」になり、上記ステップSE15〜SE20を経てステップSE21に進む。ステップSE21では、Notes[iNote][9]の、不正解するまでに要した最短時間NGTminがレジスタNHasConcminより大であるか否かを判断する。
ポインタiNoteが「0」となる最初のパスでは、レジスタNHasConcminはゼロリセットされている為、判断結果は「YES」となり、ステップSE21に進み、ポインタiNoteの値をレジスタNHasConcにストアする一方、Notes[iNote][9]の、不正解するまでに要した最短時間NGTminをレジスタNHasConcminにストアする。
【0074】
以後、ポインタiNoteが歩進される毎に、ステップSE21を実行し、Notes[iNote][9]>NHasConcminであれば、ステップSE22に進み、レジスタNHasConcおよびレジスタNHasConcminを更新する。そして、ポインタiNoteが「127」に達した時点で、レジスタNHasConcに格納されるノートナンバが、不正解となった出題音の内で最も回答時間のかからなかった音となり、これが「勘違いをしている音」と見做され、さらにレジスタNHasConcminには、その最短時間NGTminが保持される。
【0075】
このように、回答解析処理では、回答履歴データベースRDに履歴記憶される回答結果データの内容に従って回答解析バッファKBを更新し、更新した回答解析バッファKBに格納されるMIDIノートナンバ#0(C0音)〜#127(G9音)の各音高に対応したノートデータNotes[0]〜Notes[127]の内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」の各ノートナンバを抽出し、それぞれレジスタNPerfect、NWorst、NMissAnsおよびNHasConcにストアするようになっている。
【0076】
(6)出題音再考処理の動作
次に、図15を参照して出題音再考処理の動作を説明する。前述した強化モード処理のステップSD5(図11参照)を介して本処理が実行されると、CPU1は図15のステップSF1に進み、レジスタQuestNoteに格納される問題音のノートナンバ、レジスタNPerfect、NWorst、NMissAnsおよびNHasConcにそれぞれ格納される「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」の各ノートナンバを取得する。次いで、ステップSF2では、レジスタQuestNoteに格納される問題音のノートナンバと、レジスタNPerfectに格納される「きちんと答えられている音」のノートナンバとが一致するか否かを判断する。
【0077】
一致すると、判断結果は「YES」になり、ステップSF3に進み、ランダム関数RANDAMにて問題音のノートナンバを発生してレジスタQuestNoteにストアする。この後、再びステップSF2に処理を戻し、問題音のノートナンバと「きちんと答えられている音」のノートナンバとが一致しなくなると、判断結果が「NO」となり、ステップSF4に進む。そして、ステップSF4では、レジスタQuestNoteにストアされるノートナンバの楽音の発音を指示するMIDIデータを発生して電子楽器20側に送出する。これにより、「きちんと答えられている音」を問題音として出題するのを回避する。続いて、ステップSF5では、問題音を発音させた時刻として、CPU1が管理する現在時刻timeをレジスタIQTimeにストアして本処理を終える。
【0078】
(7)解析処理の動作
次に、図16を参照して解析処理の動作を説明する。前述した強化モード処理のステップSD6(図11参照)を介して本処理が実行されると、CPU1は図16のステップSG1に進み、レジスタbEnable[0]〜[4]、レジスタtraincnt[0]〜[4]およびokcnt[0]〜[4]をゼロリセッロする。これらレジスタの内容については追って述べる。続いて、ステップSG2ではポインタiTrainをゼロリセットする。
そして、ステップSG3に進み、ポインタiTrainに対応した回答履歴データベースRD(図2参照)中のTrainrec[iTrain][0]が空き領域(ヌルデータ)であるか否か、つまり回答履歴データベースRDから回答結果データを読み出し終えたかどうかを判断する。読み出し終えていなければ、判断結果は「NO」となり、次のステップSG4に進む。
【0079】
ステップSG4では、ポインタiTrainに応じて回答履歴データベースRDから読み出されるTrainrec[iTrain][4]、すなわちデータAnsTypeの値を引数として、対応するレジスタtraincnt[Trainrec[iTrain][4]]の値をインクリメントして歩進させる。つまり、データAnsTypeの値に対応して、回答種別毎の出題回数をレジスタtraincnt[0]〜[4]にて累算する。
なお、データAnsTypeは前述したように、回答操作を種別する値であって、回答キャンセル(回答無し)された場合に「0」、キーボード6を用いて回答した場合に「1」、回答画面G1でマウス5を用いて音名をクリックして回答した場合に「2」、回答画面G1でマウス5を用いて楽譜をクリックして回答した場合に「3」、電子楽器20側の鍵盤を用いて回答した場合に「4」となる。
【0080】
次いで、ステップSG5では、ポインタiTrainに応じて回答履歴データベースRDから読み出されるTrainrec[iTrain][6](データResult)の値が「1」、つまり正解であるか否かを判断する。正解以外の場合には、判断結果が「NO」となり、後述のステップSG7に処理を進める。一方、正解であると、判断結果は「YES」になり、ステップSG6に進む。ステップSG6では、ポインタiTrainに応じて回答履歴データベースRDから読み出されるokcnt[iTrain][4]、すなわちデータAnsTypeの値を引数として、対応するレジスタokcnt[Trainrec[iTrain][4]]の値をインクリメントして歩進させる。つまり、データAnsTypeの値に対応して、回答種別毎の正解回数をレジスタokcnt[0]〜[4]にて累算する。そして、ステップSG7では、ポインタiTrainをインクリメントして歩進させた後、上述のステップSG3に処理を戻す。
【0081】
以後、歩進されたポインタiTrainに応じて回答履歴データベースRDから読み出されるTrainrec[iTrain][0]が空き領域(ヌルデータ)に達するまでステップSG3〜SG7を繰り返すことによって、レジスタtraincnt[0]〜[4]にはデータAnsTypeに対応した回答種別毎の出題回数が累算され、レジスタokcnt[0]〜[4]にはデータAnsTypeに対応した回答種別毎の正解回数が累算される。そして、回答結果データを読み出し終えると、ステップSG3の判断結果が「YES」になり、ステップSG8に進む。
【0082】
ステップSG8では、ポインタiTypeに初期値「1」をセットする。続いて、ステップSG9〜SG12では、ポインタiTypeを「1」〜「4」まで歩進させながら、所定の正答率SLを超える回答種別を判別する。すなわち、ステップSG9では、ポインタiTypeが「5」より小さいか否か、つまり判別し終えたかどうかを判断する。判別し終えていなければ、判断結果は「NO」になり、ステップSG10に進む。ステップSG10では、ポインタiTypeに対応したレジスタokcnt[iType]に格納される正解回数を、ポインタiTypeに対応したレジスタtraincnt[iType]に格納される出題回数で除算した結果が、所定の正答率SLを超えているか否かを判断する。
【0083】
所定の正答率SLを超えていなければ、判断結果は「NO」となり、後述するステップSG12に進む。一方、所定の正答率SLを超えると、判断結果が「YES」になり、ステップSG11に進む。ステップSG11では、ポインタiTypeに対応したレジスタbEnable[iType]に、所定の正答率SLを超えた旨を表すフラグ値「1」をセットする。そして、ステップSG12では、ポインタiTypeをインクリメントして歩進させた後、上記ステップSG9に処理を戻す。以後、ポインタiTypeが「5」に達するまで、ステップSG9〜SG12を繰り返し、ポインタiTypeが「5」に達すると、ステップSG9の判断結果が「YES」になり、本処理を終える。
【0084】
このように、解析処理では、回答履歴データベースRDに履歴記憶される回答結果データの内容に従って回答種別毎の正答率を算出し、算出した正答率が所定の正答率SLを超えているかどうかを判別し、超えている場合に該当種別のレジスタbEnableにフラグ値「1」をセットするようになっている。これにより、キーボード6を用いた回答、音名をクリックする回答、楽譜をクリックする回答合および鍵盤を用いた回答の得手・不得手を分析する。
【0085】
C.第2実施例の動作
次に、図17を参照して第2実施例による出題音再考処理の動作を説明する。上述の第1実施例による出題音再考処理では、「きちんと答えられている音」のノートナンバに一致させないように、ランダム関数RANDAMにて問題音を生成するようにしたが、第2実施例による出題音再考処理では、ランダム関数RANDAMにて生成した問題音のノートナンバが「きちんと答えられている音」のノートナンバに一致した場合、生成した問題音のノートナンバを半音上げるかあるいは半音下げて「きちんと答えられている音」を問題音として出題するのを回避する。以下、こうした出題音再考処理の動作を説明する。
【0086】
前述した強化モード処理のステップSD5(図11参照)を介して本処理が実行されると、CPU1は図17のステップSH1に進み、レジスタQuestNoteに格納される問題音のノートナンバ、レジスタNPerfect、NWorst、NMissAnsおよびNHasConcにそれぞれ格納される「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」の各ノートナンバを取得する。次いで、ステップSH2では、NPerfect+(NWorst−NPerfect)/RANDAMなる算出式にて問題音のノートナンバを求める。つまり、「正しく答えられない音」のノートナンバから「きちんと答えられている音」のノートナンバを差し引いた値をRANDAM関数値で除算し、その値を「きちんと答えられている音」に加えて問題音のノートナンバを算出し、レジスタQuestNoteにストアする。
【0087】
次いで、ステップSH3に進み、レジスタQuestNoteに格納される問題音のノートナンバと、レジスタNPerfectに格納される「きちんと答えられている音」のノートナンバとが一致するか否かを判断する。一致しなければ、判断結果は「NO」になり、後述するステップSH7に処理を進める。
一方、両ノートナンバが一致すると、判断結果は「YES」になり、ステップSH4に進み、レジスタNPerfectに格納される「きちんと答えられている音」のノートナンバが、レジスタNWorstに格納される「正しく答えられない音」のノートナンバより大きいか否かを判断する。そして、「きちんと答えられている音」>「正しく答えられない音」であると、判断結果は「YES」になり、ステップSH5に進み、レジスタNPerfectに格納される「きちんと答えられている音」のノートナンバをデクリメントして半音下げ、これを問題音のノートナンバとしてレジスタQuestNoteにストアする。
【0088】
これに対し、「きちんと答えられている音」<「正しく答えられない音」であれば、判断結果が「NO」となり、ステップSH6に進み、レジスタNPerfectに格納される「きちんと答えられている音」のノートナンバをインクリメントして半音上げ、これを問題音のノートナンバとしてレジスタQuestNoteにストアする。
そして、ステップSH7に進み、レジスタQuestNoteにストアされるノートナンバの楽音の発音を指示するMIDIデータを発生して電子楽器20側に送出する。続いて、ステップSH8では、問題音を発音させた時刻として、CPU1が管理する現在時刻timeをレジスタIQTimeにストアして本処理を終える。
【0089】
以上説明したように、本発明では、回答履歴データベースRDに履歴記憶される回答結果データから「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を抽出し、「きちんと答えられている音」以外の新たな問題音を出題するようにしたので、正しく聴き取れない音高を重点的に教習させることが可能になっている。
また、回答履歴データベースRDに履歴記憶される回答結果データから回答種別毎の正答率を算出して、キーボード6を用いた回答、音名をクリックする回答、楽譜をクリックする回答および鍵盤を用いた回答の得手・不得手を分析し、不得手な回答方法を強制的に教習させるので、ユーザの音楽的能力(音感、読譜力および演奏力)を勘案して不得手な能力を補うような教習形態にすることが可能になる。
【0090】
なお、上述した第1および第2実施例では、強化モード処理において、「きちんと答えられている音」以外を問題音として出題するようにしたが、これに限らず、例えば「きちんと答えられている音」を出題した後に「勘違いをしている音」を出題する等、「きちんと答えられている音」とそれ以外の「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を交互に取混ぜて繰り返し出題する形式にして音感を高める工夫を施すようにしても構わない。
また、上述した第1および第2実施例では、問題音を単音発音としているが、本発明の要旨はこれに限定されず、例えば問題音として和音発音させてコードタイプやコード転回の聴き取りを教習するものに適用することも可能である。
【0091】
【発明の効果】
請求項およびに記載の発明によれば、問題音を出題して発音すると、その問題音の音高をユーザの回答操作に応じて回答し、それが正解であるか否かを判定して回答結果を発生する。こうした回答がなされる毎に、少なくとも、回答操作の種別、問題音およびそれに対応する回答結果を含む回答結果データが履歴記憶される。そして、履歴記憶された回答結果データの内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を分類して抽出し、抽出された「きちんと答えられている音」以外の新たな問題音の出題を指示する一方、履歴記憶された回答結果データから回答操作の種別毎の正答率を求め、その中で所定の正答率に達していない種別の回答操作のみ有効にするよう指示する。したがって、例えば所定の正答率に達していない種別の回答操作が鍵盤操作である場合には、鍵盤操作だけを使用可能とし、これにより正しく聴き取れない音高を重点的に教習させる際に、不得手な能力を補うような教習形態にすることができる。
【図面の簡単な説明】
【図1】本発明による第1実施例の構成を示すブロック図である。
【図2】RAM3に設けられる回答履歴データベースRDの構成を示す図である。
【図3】RAM3に設けられる回答解析バッファKBの構成を示す図である。
【図4】回答画面G1の一構成例を示す図である。
【図5】正解画面G2の一構成例を示す図である。
【図6】不正解画面G3の一構成例を示す図である。
【図7】メインルーチンの動作を示すフローチャートである。
【図8】通常モード処理の動作を示すフローチャートである。
【図9】図8に続く通常モード処理の動作を示すフローチャートである。
【図10】履歴記憶処理の動作を示すフローチャートである。
【図11】強化モード処理の動作を示すフローチャートである。
【図12】図11に続く強化モード処理の動作を示すフローチャートである。
【図13】回答解析処理の動作を示すフローチャートである。
【図14】図13に続く回答解析処理の動作を示すフローチャートである。
【図15】出題音再考処理の動作を示すフローチャートである。
【図16】解析処理の動作を示すフローチャートである。
【図17】第2実施例による出題音再考処理の動作を示すフローチャートである。
【符号の説明】
1 CPU
2 ROM
3 RAM
4 MIDIインタフェース
5 マウス
6 キーボード
7 表示部
10 DTM装置
20 電子楽器

Claims (2)

  1. 問題音を出題して発音する出題手段と、
    前記出題手段にて発音された問題音の音高をユーザの回答操作に応じて回答する回答手段と、
    この回答手段からの回答が正解であるか否かを判定して回答結果を発生する判定手段と、
    少なくとも、前記回答操作の種別、前記問題音およびそれに対応する回答結果を含む回答結果データを回答がなされる毎に履歴として記憶する履歴記憶手段と、
    前記履歴記憶手段に記憶された回答結果データの内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を分類して抽出する抽出手段と、
    前記抽出手段により抽出された「きちんと答えられている音」以外の新たな問題音の出題を前記出題手段に指示する出題指示手段と、
    前記履歴記憶手段に記憶された回答結果データから回答操作の種別毎の正答率を求め、その中で所定の正答率に達していない種別の回答操作のみ有効にするよう前記回答手段に指示する回答指示手段と
    を具備することを特徴とする音楽教習装置。
  2. 問題音を出題して発音する出題ステップと、
    前記出題ステップにて発音された問題音の音高をユーザの回答操作に応じ回答する回答ステップと、
    この回答ステップによる回答が正解であるか否かを判定して回答結果を発生する判定ステップと、
    少なくとも、前記回答操作の種別、前記問題音およびそれに対応する回答結果を含む回答結果データを回答がなされる毎に履歴として記憶する履歴記憶ステップと、
    前記履歴記憶ステップを経て記憶された回答結果データの内から「きちんと答えられている音」、「正しく答えられない音」、「聴き取れていない音」および「勘違いをしている音」を分類して抽出する抽出ステップと、
    前記抽出ステップにて抽出された「きちんと答えられている音」以外の新たな問題音の出題を前記出題ステップに指示する出題指示ステップと、
    前記履歴記憶ステップを経て記憶された回答結果データから回答操作の種別毎の正答率を求め、その中で所定の正答率に達していない種別の回答操作のみ有効にするよう前記回答ステップに指示する回答指示ステップと
    をコンピュータで実行させることを特徴とする音楽教習プログラム。
JP2003037839A 2003-02-17 2003-02-17 音楽教習装置および音楽教習プログラム Expired - Fee Related JP4178549B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003037839A JP4178549B2 (ja) 2003-02-17 2003-02-17 音楽教習装置および音楽教習プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003037839A JP4178549B2 (ja) 2003-02-17 2003-02-17 音楽教習装置および音楽教習プログラム

Publications (2)

Publication Number Publication Date
JP2004246231A JP2004246231A (ja) 2004-09-02
JP4178549B2 true JP4178549B2 (ja) 2008-11-12

Family

ID=33022523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003037839A Expired - Fee Related JP4178549B2 (ja) 2003-02-17 2003-02-17 音楽教習装置および音楽教習プログラム

Country Status (1)

Country Link
JP (1) JP4178549B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4811555B2 (ja) 2005-01-12 2011-11-09 ソニーケミカル&インフォメーションデバイス株式会社 潜在性硬化剤
CN104680881A (zh) * 2015-02-13 2015-06-03 莫奇 一种移动与在线音乐的教学方法
CN109948038B (zh) * 2017-11-24 2020-09-15 阿里巴巴集团控股有限公司 问题推送方法及装置
KR102073693B1 (ko) * 2018-07-17 2020-02-05 (주)주스 사용자 맞춤형 청음 학습 시스템
JP7437742B2 (ja) * 2020-02-28 2024-02-26 株式会社neumo 音出力装置及びプログラム

Also Published As

Publication number Publication date
JP2004246231A (ja) 2004-09-02

Similar Documents

Publication Publication Date Title
CN110767209B (zh) 语音合成方法、装置、系统和存储介质
Cakmakci et al. An augmented reality based learning assistant for electric bass guitar
JP4178549B2 (ja) 音楽教習装置および音楽教習プログラム
JP2005241877A (ja) 運指指示装置およびプログラム
WO2018074023A1 (ja) 単語学習支援装置、単語学習支援プログラム、単語学習支援方法
JP6366179B2 (ja) 発話評価装置、発話評価方法、及びプログラム
JP4048226B1 (ja) 失語症練習支援装置
JP2006267881A (ja) 電子学習装置
KR100459030B1 (ko) 터치스크린을 이용한 영어학습방법 및 시스템
JP6268674B2 (ja) 楽音発生装置、電子楽器、楽音発生方法およびプログラム
CN1521657A (zh) 计算机辅助语言教学方法及其装置
JP4221567B2 (ja) 演奏練習装置、演奏練習方法および演奏練習プログラム
JP4501874B2 (ja) 楽曲練習装置
JP2018130454A (ja) 軽度認知障害検査システム及び軽度認知障害検査プログラム
JP4178553B2 (ja) 音楽教習装置および音楽教習プログラム
JP7395892B2 (ja) 電子機器、単語学習方法、およびプログラム
KR101030777B1 (ko) 스크립트 데이터 생성 방법 및 장치
JP7219559B2 (ja) 楽器演奏練習装置及び楽器演奏練習用プログラム
JP4475383B2 (ja) 音楽教習装置および音楽教習プログラム
JP4482855B2 (ja) 音楽教習装置および音楽教習プログラム
TWI224758B (en) Computer-aided phonetic alphabet education method and its apparatus
JP2005148269A (ja) 音楽教習装置および音楽教習プログラム
JP2023076106A (ja) 外国語学習支援装置、外国語学習支援方法及びコンピュータプログラム
JP2005049628A (ja) 音楽教習装置および音楽教習プログラム
JP2932557B2 (ja) 教習用電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080618

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: 20080804

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: 20080817

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees