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

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

Info

Publication number
JP4178553B2
JP4178553B2 JP2003291783A JP2003291783A JP4178553B2 JP 4178553 B2 JP4178553 B2 JP 4178553B2 JP 2003291783 A JP2003291783 A JP 2003291783A JP 2003291783 A JP2003291783 A JP 2003291783A JP 4178553 B2 JP4178553 B2 JP 4178553B2
Authority
JP
Japan
Prior art keywords
pitch
task
sound
answer
sounds
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
JP2003291783A
Other languages
English (en)
Other versions
JP2005062429A (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 JP2003291783A priority Critical patent/JP4178553B2/ja
Publication of JP2005062429A publication Critical patent/JP2005062429A/ja
Application granted granted Critical
Publication of JP4178553B2 publication Critical patent/JP4178553B2/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

本発明は、パーソナルコンピュータを用いたDTM(デスクトップミュージック)装置や電子楽器などに用いて好適な音楽教習装置および音楽教習プログラムに関する。
音楽教習をする装置として、例えば特許文献1には、問題音(任意の音高の楽音)をランダムに放音出題する問題出題手段と、放音出題された問題音の音高を演奏操作で解答する解答手段と、解答が正解すると過去に放音出題した問題音の数に新たな問題音の数を加えた数の問題音を問題出題手段からランダムに出題させる問題出題制御手段とを備え、正解する毎に放音出題数を増加させてランダムに出題させることによって、絶対音感を効果的に向上させる技術が開示されている。
特公平7−13480号公報
ところで、上記特許文献1に開示の音楽教習装置は、放音出題された問題音の音高を演奏操作で回答し、その回答が正解する毎に放音出題数を増加させるだけなので、聴き間違えが起こり易く苦手とする音高や音程の聴き取り能力を重点的に教習させることができない、という問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、聴き間違えが起こり易く苦手とする音高や音程の聴き取り能力を重点的に教習することができる音楽教習装置および音楽教習プログラムを提供することを目的としている。
上記目的を達成するため、請求項1に記載の発明では、夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題手段と、前記出題手段により一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶手段と、前記記憶手段に記憶された各回答音に対応する課題音であって前記出題手段により出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出手段と、前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定手段と、夫々音高及び音程をアドレスとするエリアに一致・不一致回数を記憶可能なテーブル手段を有し、前記判定手段により一致・不一致が判定される毎に、前記対応する課題音の音高及び算出された音程をアドレスとして指定される前記テーブル手段のエリアに記憶される一致・不一致の回数を更新する更新手段と、前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて聴き取りが得意な音高および音程と聴き取り難い音高および音程を決定する決定手段と、この決定手段により決定された聴き取りが得意な音高および音程関係にある音と聴き取り難い音高および音程関係にある音とを取混ぜた一連の訓練課題音を作成する訓練課題作成手段と、前記訓練課題作成手段により作成された一連の訓練課題音の発音を指示して出題する訓練課題出題手段とを具備することを特徴とする。
請求項に記載の発明では、夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題手段と、前記出題手段により一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶手段と、前記記憶手段に記憶された各回答音に対応する課題音であって前記出題手段により出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出手段と、前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定手段と、夫々音高及び音程をアドレスとするエリアに一致・不一致回数を記憶可能なテーブル手段を有し、前記判定手段により一致・不一致が判定される毎に、前記対応する課題音の音高及び算出された音程をアドレスとして指定される前記テーブル手段のエリアに記憶される一致・不一致の回数を更新する更新手段と、前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて「最も得意な音高」、「最も得意な音程関係であって最も得意な音高」、「不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「最も得意な音程関係であってやや不得手な音高」、「不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「最も得意な音程関係であって不得手な音高」および「不得手な音程関係であって不得手な音高」を決定する決定手段と、この決定手段にて決定された音高夫々をランダムな順序で並べた一連の複数の訓練課題音を作成する訓練課題作成手段と、前記訓練課題作成手段により作成された一連の訓練課題音の発音を指示して出題する訓練課題出題手段とを具備することを特徴とする。
請求項に記載の発明では、夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題過程と、前記一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶過程と、前記記憶手段に記憶された各回答音に対応する課題音であって前記出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出過程と、前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定過程と、前記一致・不一致が判定される毎に、夫々音高及び音程をアドレスとして指定されるエリアに一致・不一致回数を記憶可能なテーブル手段に対して、前記対応する課題音の音高及び算出された音程により指定されるエリアに記憶されている一致・不一致の回数を更新する更新過程と、前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて聴き取りが得意な音高および音程と聴き取り難い音高および音程を決定する決定過程と、この決定された聴き取りが得意な音高および音程関係にある音と聴き取り難い音高および音程関係にある音とを取混ぜた一連の訓練課題音を作成する訓練課題作成過程と、前記作成された一連の訓練課題音の発音を指示して出題する訓練課題出題過程と、をコンピュータで実行させることを特徴とする
請求項に記載の発明では、夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題過程と、前記一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶過程と、前記記憶手段に記憶された各回答音に対応する課題音であって前記出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出過程と、前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定過程と、前記一致・不一致が判定される毎に、夫々音高及び音程をアドレスとして指定されるエリアに一致・不一致回数を記憶可能なテーブル手段に対して、前記対応する課題音の音高及び算出された音程により指定されるエリアに記憶されている一致・不一致の回数を更新する更新過程と、前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて「最も得意な音高」、「最も得意な音程関係であって最も得意な音高」、「不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「最も得意な音程関係であってやや不得手な音高」、「不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「最も得意な音程関係であって不得手な音高」および「不得手な音程関係であって不得手な音高」を決定する決定過程と、この決定された音高夫々をランダムな順序で並べた一連の複数の訓練課題音を作成する訓練課題作成過程と、前記作成された一連の訓練課題音の発音を指示して出題する訓練課題出題過程とをコンピュータで実行させることを特徴とする。
請求項1、3に記載の発明によれば、課題音を発音して出題すると、出題された課題音が再生された後、ユーザの回答操作に応じて入力される回答音が記憶され、記憶された各回答音に対応する課題音であって出題された一連の課題音を検索するとともに、検索された課題音とその直前に出題された課題音との音程を算出する。そして、各回答音とそれに対応する課題音との音高の一致・不一致を判定する毎に、夫々音高及び音程をアドレスとして指定されるエリアに一致・不一致回数を記憶可能なテーブルに対して、対応する課題音の音高及び算出された音程により指定されるエリアに記憶されている一致・不一致の回数を更新し、テーブルに記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出する。この算出された比率に基づいて聴き取りが得意な音高および音程関係にある音と聴き取り難い音高および音程関係にある音とを取混ぜた一連の訓練課題音を作成して出題するので、聴き間違えが起こり易く苦手とする音高や音程の聴き取り能力を重点的に教習することができる。
請求項2、4に記載の発明によれば、課題音を発音して出題すると、出題された課題音が再生された後、ユーザの回答操作に応じて入力される回答音が記憶され、記憶された各回答音に対応する課題音であって出題された一連の課題音を検索するとともに、判定した課題音とその直前に出題された課題音との音程を算出する。そして、各回答音とそれに対応する課題音との音高の一致・不一致を判定する毎に、夫々音高及び音程をアドレスとして指定されるエリアに一致・不一致回数を記憶可能なテーブルに対して、対応する課題音の音高及び算出された音程により指定されるエリアに記憶されている一致・不一致の回数を更新し、テーブルに記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出する。この算出された比率に基づいて「最も得意な音高」、「最も得意な音程関係であって最も得意な音高」、「不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「最も得意な音程関係であってやや不得手な音高」、「不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「最も得意な音程関係であって不得手な音高」および「不得手な音程関係であって不得手な音高」の属性を備えた複数の訓練課題音をランダムな順序で出題するので、聴き間違えが起こり易く苦手とする音高や音程の聴き取り能力を重点的に教習することができる。
本発明による音楽教習装置および音楽教習プログラムは、周知の電子楽器もしくはパーソナルコンピュータを用いたDTM(デスクトップミュージック)装置などに適用され得る。以下では、本発明による最良の実施形態について図面を参照して説明する。
A.構成
(1)全体構成
図1は実施形態の全体構成を示すブロック図である。この図において、10は構成要素1〜7を備えたDTM(デクストップミュージック)装置、20はDTM装置10とMIDI接続される電子楽器である。電子楽器20は、DTM装置10からMIDI入力される課題音もしくは訓練課題音のノートデータを発音したり、発音された課題音もしくは訓練課題音を聴いたユーザの回答操作、例えば鍵盤を回答操作に用いた場合、押鍵された鍵に対応したノートデータを発生してDTM装置10にMIDI出力する。
DTM装置10は問題モードおよび分析モードを有する。問題モードで動作するDTM装置10は複数の課題音の再生を電子楽器20側に指示し、一連の課題音を再生し終えた後、回答制限時間以内に回答操作が行われた場合に、その操作で入力された回答音を保存する。回答入力を終えると、再生された課題音と回答入力された回答音との比較結果に基づき算出される得点を画面表示する他、出題された課題音および回答された回答音を表す課題履歴を作成してデータベース登録する。
一方、分析モードで動作するDTM装置10は、後述する分析処理の実行により、データベース登録された課題履歴を参照して聴き分けできる音高と聴き間違えが起こり易く苦手とする音高とを集計し、そこから課題音の音高を聴き取る際の得手・不得手と、先の課題音との音高差(音程)を聴き取る際の得手・不得手とを判定して「最も得意な音高」、「先の課題音に対して最も得意な音程関係であって最も得意な音高」、「先の課題音に対して不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「先の課題音に対して最も得意な音程関係であってやや不得手な音高」、「先の課題音に対して不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「先の課題音に対して最も得意な音程関係であって不得手な音高」、「先の課題音に対して不得手な音程関係であって不得手な音高」からなる9種の訓練課題音を作成する。これら訓練課題音の再生/回答を行うことで聴き間違えが起こり易く苦手とする音高や音程の聴き取り能力を重点的に教習させる。
(2)DTM装置10の構成
次に、図1を参照してDTM装置10の構成を説明する。図1において、1は装置各部を制御するCPUであり、本発明の要旨にかかわる処理動作については追って詳述する。2はプログラムエリアおよびデータエリアを有するROMである。ROM2のプログラムエリアには、CPU1が実行するメインルーチン、再生開始処理、回答処理、判定処理および分析処理を含む各種制御プログラムが記憶される。ROM2のデータエリアには、後述のメインルーチンを実行した際に表示部7に画面表示される問題モード画面TMGおよび分析モード画面AMGの画面データが記憶される。問題モード画面TMGおよび分析モード画面AMGの構成については追って説明する。
3はワークエリア、データエリアおよびバッファエリアを備えるRAMである。RAM3のワークエリアには、各種レジスタ・フラグデータが一時記憶される。RAM3のデータエリアには、課題情報管理テーブルT1、課題音管理テーブルT2、課題履歴管理データベースDB、回答音データテーブルT3、訓練課題情報管理テーブルT4および訓練課題音管理テーブルT5が設けられる。これらテーブルの構成については追って詳述する。RAM3のバッファエリアには、後述する再生開始処理や判定処理で用いられる各種バッファが設けられる。
MIDIインタフェース4は、CPU1の制御の下に、電子楽器20にMIDIデータをシリアル転送したり、電子楽器20側から送出されるMIDIデータを取り込む。マウス5は右ボタンおよび左ボタンを備え、例えば表示画面上に配置されるアイコンにマウスカーソルをポインティングさせた状態で左ボタンを押下する周知のクリック操作に応じてクリックイベントを発生する。キーボード6はキー入力操作に応じたキーイベントを発生する。表示部7はLCDパネル等から構成され、CPU1から供給される表示制御信号に応じて、後述する問題モード画面TMGや分析モード画面AMGなどを画面表示する。
(3)画面構成
次に、図2〜図3を参照して問題モード画面TMGおよび分析モード画面AMGの構成を説明する。図2は問題モード画面TMGの一例を示す図である。問題モード画面TMGは後述する問題モード下で表示部7に画面表示される画面である。図2において、E1は回答操作に用いる鍵盤表示エリアである。鍵盤表示エリアE1の回答操作とは、放音される課題音の音高に一致する鍵位置をマウス5でクリックする操作を言う。E2は出題された課題音を音符表示する出題表示エリア、E3は回答操作に応じて入力された回答音を楽譜表示する回答表示エリアである。E4は問題回答の正解数で算出される得点を表示する得点表示エリアである。なお、本実施例では、回答入力として、上記の鍵盤表示エリアE1を用いた回答、キーボード6のキー操作による回答あるいは電子楽器20が備える鍵盤を用いた回答を可能にしている。
IC1〜IC6はそれぞれマウス5によりクリック操作されるアイコンである。問題アイコンIC1はクリック操作に応じて出題開始を指示するイベントを発生する。分析アイコンIC2はクリック操作に応じて分析モードへの遷移を指示するイベントを発生する。もう一度聞くアイコンIC3はクリック操作に応じて出題した課題音の再発音を指示するイベントを発生する。やめるアイコンIC4はクリック操作に応じて回答キャンセルを指示するイベントを発生する。次の問題へアイコンIC5はクリック操作に応じて設問更新を指示するイベントを発生する。決定アイコンIC6はクリック操作に応じて回答決定を指示するイベントを発生する。
図3は分析モード画面AMGの一例を示す図である。分析モード画面AMGは後述する分析モード下で表示部7に画面表示される画面である。分析モード画面AMGでは、上述した問題モード画面TMGと同じ鍵盤表示エリアE1、出題表示エリアE2および回答表示エリアE3を備える。また、問題モード画面TMGと同様、クリック操作に応じて出題した課題音の再発音を指示するイベントを発生するもう一度聞くアイコンIC3、クリック操作に応じて回答キャンセルを指示するイベントを発生するやめるアイコンIC4およびクリック操作に応じて回答決定を指示するイベントを発生する決定アイコンIC6を有する。
分析モード画面AMGが問題モード画面TMGと相違する点は、クリック操作に応じて問題モードへの遷移を指示するイベントを発生するテストアイコンIC7、クリック操作に応じて訓練課題の出題開始を指示するイベントを発生する訓練アイコンIC8およびクリック操作に応じて回答分析の開始を指示するイベントを発生する分析開始アイコンIC9を備えることにある。
(4)データ構造
次に、図4〜図9を参照してRAM3のデータエリアに格納される課題情報管理テーブルT1、課題音管理テーブルT2、課題履歴管理データベースDB、回答音データテーブルT3、訓練課題情報管理テーブルT4および訓練課題音管理テーブルT5のデータ構造を説明する。
図4は課題情報管理テーブルT1のデータ構造を示すメモリマップである。課題情報管理テーブルT1は、課題の内容を表す課題データassign[0]〜assign[n]から構成される。一つの課題データassign[i]は、課題番号assign#(assign[i][0])、回答制限時間limit(assign[i][1])、出題音数iNote(assign[i][2])およびポインタpNote(assign[i][3])を有する。後述する課題音管理テーブルT2では、課題番号assign#で指定される複数の課題音データasNoteを記憶しており、その内の先頭の課題音データasNoteをポインタpNoteで指定する。
図5は課題音管理テーブルT2のデータ構造を示すメモリマップである。課題音管理テーブルT2は、上述した課題データassignで定義される課題音の属性を表す課題音データasNote[0]〜asNote[n]から構成される。一つの課題音データasNote[i]は、識別番号asNote#(asNote[i][0])、課題番号assign#(asNote[i][1])、音高pitch(asNote[i][2])、再生開始時点からの経過時間で表される発音タイミングtime_on(asNote[i][3])、再生開始時点からの経過時間で表される消音タイミングtime_off(asNote[i][4])および次に再生する課題音を指定するポインタpNextNote(asNote[i][5])を有する。
図6は課題履歴管理データベースDBのデータ構造を示すメモリマップである。課題履歴管理データベースDBは、出題した課題音とそれに回答した回答音とを履歴記憶するデータベースであり、課題履歴データtestHist[0]〜testHist[n]から構成される。一つの課題履歴データtestHist[i]は、識別番号Hist#(testHist[i][0])、課題番号assign#(testHist[i][1])、最初の回答音を指定するポインタpANote(testHist[i][2])および最初の課題音を指定するポインタpQNote(testHist[i][3])を有する。
図7は回答音データテーブルT3のデータ構造を示すメモリマップである。回答音データテーブルT3は、上述した課題情報管理テーブルT1(図4参照)を用いて出題された課題音について回答した回答音を格納するテーブルであり、回答音データansNote[0]〜ansNote[n]から構成される。一つ回答音データansNote[i]は、識別番号asNote#(ansNote[i][0])、課題番号assign#(ansNote[i][1])、音高pitch(ansNote[i][2])、再生開始時点からの経過時間で表される発音タイミングtime_on(ansNote[i][3])、再生開始時点からの経過時間で表される消音タイミングtime_off(ansNote[i][4])、対応する課題音データを示す課題音番号HitOrg(ansNote[i][5])および次の回答音データを指定するポインタpNextNote(ansNote[i][6])を有する。
図8は訓練課題情報管理テーブルT4のデータ構造を示すメモリマップである。訓練課題情報管理テーブルT4は、訓練課題の内容を表す訓練課題データtrain[0]〜train[n]から構成される。一つの訓練課題データtrain[i]は、訓練課題番号train#(train[i][0])、回答制限時間limit(train[i][1])、出題音数iNote(train[i][2])およびポインタpNote(train[i][3])を有する。後述する訓練課題音管理テーブルT5では、訓練課題番号train#で指定される複数の訓練課題音データtrNoteを記憶しており、その内の先頭の訓練課題音データtrNoteをポインタpNoteで指定する。
図9は訓練課題音管理テーブルT5のデータ構造を示すメモリマップである。訓練課題音管理テーブルT5は、上述した訓練課題データtrainで定義される訓練課題音の属性を表す訓練課題音データtrNote[0]〜trNote[n]から構成される。一つの訓練課題音データtrNote[i]は、識別番号trNote#(trNote[i][0])、訓練課題番号train#(trNote[i][1])、音高pitch(trNote[i][2])、再生開始時点からの経過時間で表される発音タイミングtime_on(trNote[i][3])、再生開始時点からの経過時間で表される消音タイミングtime_off(trNote[i][4])および次に再生する訓練課題音データtrNoteを指定するポインタpNextNote(trNote[i][5])を有する。
B.動作
次に、図10〜図29を参照して上記構成による実施形態の動作について説明する。
(1)メインルーチンの動作
DTM装置10において、メインルーチンが実行されると、CPU1は図10に示すステップSA1に進み、装置各部を初期化するイニシャライズを行った後、ステップSA2に進む。ステップSA2では、ROM2のデータエリアから画面データを読み出して問題モード画面TMG(図2参照)を表示部7に画面表示する。次いで、ステップSA3では、動作モードを表すフラグMODEに「0」をセットする。フラグMODEは「0」の場合に問題モードを、「1」の場合に分析モードを表す。したがって、このステップSA3では、問題モードをデフォルト設定すべくフラグMODEに「0」をセットしている。以下では、問題モード下のメインルーチンの動作と、分析モード下のメインルーチンの動作とに分けて説明を進める。
<問題モード下の動作>
次に、ステップSA4ではフラグMODEの値が「0」、つまり問題モード下にあるか否かを判断する。問題モードにデフォルト設定されていると、判断結果は「YES」となり、ステップSA5以降に処理を進める。ステップSA5〜SA16では、問題モード画面TMGにおけるアイコン操作に対応した処理を実行する。以下、「問題アイコンIC1」、「決定アイコンIC6」、「もう一度聞くアイコンIC3」、「次の問題へアイコンIC5」、「やめるアイコンIC4」および「分析アイコンIC2」をそれぞれクリック操作した場合に分けて各動作を説明する。
a.問題アイコンIC1をクリック操作した場合
問題アイコンIC1をクリック操作すると、ステップSA5の判断結果が「YES」になり、ステップSA6に進み、ポインタiassignをゼロリセットする。続いて、ステップSA7では再生開始処理を実行する。再生開始処理では、後述するように、課題情報管理テーブルT1(図4参照)中でポインタiassignに対応した課題データassign[iassign]が指定する出題音数分の課題音データを課題音管理テーブルT2(図5参照)を参照して再生する。次いで、ステップSA8では回答処理を実行する。回答処理では、後述するように、回答制限時間limit(assign[iassign][1])以内の回答操作が行われた場合、その操作に応じて生じる回答音のノートオン属性(音高pitch、発音タイミングtime_on、識別番号asNote#および課題番号assign#)とノートオフ属性(消音タイミングtime_off)とを回答音データテーブルT3に登録する。そして、回答制限時間limitを超えると、課題情報管理テーブルT1および回答音データテーブルT3を参照して、回答操作を終えた課題音および回答音を表す課題履歴データtestHistを作成して課題履歴管理データベースDBに登録する。
b.決定アイコンIC6をクリック操作した場合
問題アイコンIC1のクリック操作に応じて課題音が再生され、それに対応する回答音を入力し終えた後、決定アイコンIC6をクリック操作したとする。そうすると、ステップSA9の判断結果が「YES」となり、ステップSA10を介して判定処理を実行する。判定処理では、後述するように、再生された課題音と回答入力された回答音とを比較し、その結果に基づき算出される得点を回答画面RGの得点表示エリアE4に表示する。
c.もう一度聞くアイコンIC3をクリック操作した場合
もう一度聞くアイコンIC3をクリック操作すると、ステップSA11の判断結果が「YES」となり、上述したステップSA7に処理を戻して再び再生開始処理を実行する。この場合、前回再生した課題音、つまり前回と同一のポインタiassignに対応した課題データassign[iassign]が指定する出題音数分の課題音データを再生する。
d.次の問題へアイコンIC5をクリック操作した場
次の問題へアイコンIC5をクリック操作すると、ステップSA12の判断結果が「YES」になり、ステップSA13に進み、ポインタiassignをインクリメントして歩進させてからステップSA7に処理を戻して再び再生開始処理を実行する。
e.やめるアイコンIC4をクリック操作した場合
やめるアイコンIC4をクリック操作すると、ステップSA16の判断結果が「YES」となり、メインルーチンを完了させる。
f.分析アイコンIC2をクリック操作した場合
分析アイコンIC2をクリック操作すると、ステップSA14の判断結果が「YES」になり、ステップSA15に進み、フラグMODEを「1」にセットした後、前述したステップSA3に処理を戻す。そうすると、ステップSA3の判断結果が「NO」となり、図11に図示するステップSA17以降の分析モードに遷移する。
<分析モード下の動作>
問題モード画面TMGにおける分析アイコンIC2のクリック操作に従い、問題モードから分析モードに遷移すると、CPU1は図11のステップSA17に処理を進め、ROM2のデータエリアから画面データを読み出して分析モード画面AMG(図3参照)を表示部7に画面表示する。次いで、ステップSA18〜SA31では、分析モード画面AMGにおけるアイコン操作に対応した処理を実行する。以下、「訓練アイコンIC8」、「決定アイコンIC6」、「もう一度聞くアイコンIC3」、「次の問題へアイコンIC5」、「分析開始アイコンIC9」、「テストアイコンIC7」および「やめるアイコンIC4」をそれぞれクリック操作した場合に分けて各動作を説明する。
a.訓練アイコンIC8をクリック操作した場合
訓練アイコンIC8をクリック操作すると、ステップSA18の判断結果が「YES」になり、ステップSA19に進み、ポインタitrainをゼロリセットする。続いて、ステップSA20では、訓練課題情報管理テーブルT4(図8参照)中でポインタitrainに対応した訓練課題データtrain[itrain]が指定する出題音数分の訓練課題音を、訓練課題音管理テーブルT5(図9参照)を参照して再生する再生開始処理を実行する。そして、ステップSA21では回答処理を実行する。分析モード下の回答処理では、後述するように、回答制限時間limit(assign[iassign][1])以内の回答操作が行われた場合、その操作に応じて生じる回答音のノートオン属性(音高pitch、発音タイミングtime_on、識別番号asNote#および課題番号assign#)とノートオフ属性(消音タイミングtime_off)とを回答音データテーブルT3に登録する。
b.決定アイコンIC6をクリック操作した場合
訓練アイコンIC8のクリック操作に応じて訓練課題音が再生され、それに対応する回答音を入力し終えた後、決定アイコンIC6をクリック操作したとする。そうすると、ステップSA22の判断結果が「YES」となり、ステップSA23に進み、ポインタitrainに対応する訓練課題音データtrNote[itrain]および回答音データansNote[itrain]を、分析モード画面AMGの出題表示エリアE2および回答表示エリアE3にそれぞれ画面表示する表示処理を実行する。
c.もう一度聞くアイコンIC3をクリック操作した場合
もう一度聞くアイコンIC3をクリック操作すると、ステップSA24の判断結果が「YES」となり、上述したステップSA20に処理を戻して再び再生開始処理を実行する。この場合、前回再生した訓練課題音、つまり前回と同一のポインタitrainに対応した訓練課題データtrain[itrain]が指定する出題音数分の訓練課題音データtrNoteを再生する。
d.次の問題へアイコンIC5をクリック操作した場
次の問題へアイコンIC5をクリック操作すると、ステップSA25の判断結果が「YES」になり、ステップSA26に進み、ポインタitrainをインクリメントして歩進させてからステップSA20に処理を戻して再び再生開始処理を実行する。
e.分析開始アイコンIC9をクリック操作した場合
分析開始アイコンIC9をクリック操作すると、ステップSA27の判断結果が「YES」になり、ステップSA28に進み、分析処理(後述する)を実行した後、ステップSA18に処理を戻す。
f.テストアイコンIC7をクリック操作した場合
テストアイコンIC7をクリック操作すると、ステップSA29の判断結果が「YES」になり、ステップSA30に進み、フラグMODEを「0」にセットした後、図10に示すステップSA2に処理を戻して問題モード画面TMGが画面表示される問題モードに遷移する。
g.やめるアイコンIC4をクリック操作した場合
やめるアイコンIC4をクリック操作すると、ステップSA31の判断結果が「YES」となり、メインルーチンを完了させる。
(2)再生開始処理の動作
次に、図12〜図14を参照して、問題モード下で実行される再生開始処理の動作を説明する。上述したメインルーチンのステップSA7を介して本処理が実行されると、CPU1は図12に示すステップSB1に処理を進め、RAM3のバッファエリアに設けられるノートオフバッファOffBufを初期化する。次に、ステップSB2では、レジスタplaystartに現時刻をストアする。次いで、ステップSB3に進むと、課題情報管理テーブルT1(図4参照)において、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。ステップSB4〜SB5では、検索ポインタiOffCnt、iOffBufCntをそれぞれゼロリセットする。続いて、ステップSB6では、ポインタiassignに対応した課題データassign[iassign][2]の出題音数iNoteと検索ポインタiOffCntとが一致したか否か、つまり出題し終えたかどうかを判断する。
出題音数iNote分の出題音を発音し終えていなければ、判断結果は「NO」になり、図13のステップSB7に処理を進める。ステップSB7では、現時刻からレジスタplaystartにストアされた時刻を減算してレジスタnowTimeにストアする。以後、レジスタnowTimeを再生時刻nowTimeと称す。そして、ステップSB8に進むと、再生時刻nowTimeが、課題音データasNote[pNote][3]の発音タイミングtime_onを過ぎているか否かを判断する。以下、再生時刻nowTimeが発音タイミングtime_onを過ぎている場合と過ぎていない場合とに分けて動作説明を進める。
<発音タイミングtime_onを過ぎている場合>
再生時刻nowTimeが発音タイミングtime_onを過ぎていると、ステップSB8の判断結果は「YES」になり、ステップSB9に進む。ステップSB9では、音高pitch(asNote[pNote][2])を含む課題音のノートオンイベントを生成し、これをMIDIインタフェース4を介して電子楽器20側に送出して当該課題音を再生させる。課題音を再生させると、CPU1はステップSB10に処理を進め、ポインタiOffBufCntをインクリメントして歩進させ、続くステップSB11では、この歩進されたポインタiOffBufCntで指定されるノートオフバッファOffBuf[iOffBufCnt]にポインタpNoteをストアする。そして、ステップSB12では、次に再生する課題音を指定するポインタpNextNote(asNote[i][5])を、ポインタpNoteにセットした後、図12のステップSB6に処理を戻す。
<発音タイミングtime_onを過ぎていない場合>
一方、再生時刻nowTimeが発音タイミングtime_onを過ぎていない場合には、前述したステップSB8の判断結果が「NO」になり、図14のステップSB13に進む。ステップSB13では、検索ポインタiOffをゼロリセットする。次いで、ステップSB14では、検索ポインタiOffに対応するノートオフバッファOffBuf[iOff]に消音済みを表すNULLデータが格納されているかどうかを判断する。消音済みを表すNULLデータが格納されていると、判断結果は「NO」となり、図12のステップSB6に処理を戻す。これに対し、ノートオフバッファOffBuf[iOff]に消音済みを表すNULLデータが格納されていなければ、上記ステップSB14の判断結果は「YES」になり、次のステップSB15に進む。
ステップSB15では、再生時刻nowTimeが、ノートオフバッファOffBuf[iOff]に格納されるポインタpNoteにより指定される課題音データasNote[OffBuf[iOff]][4]の消音タイミングtime_offを過ぎているか否かを判断する。再生時刻nowTimeが消音タイミングtime_offを過ぎていなければ、判断結果は「NO」となり、ステップSB20に進み、検索ポインタiOffを歩進させた後、上述のステップSB14に処理を戻す。一方、再生時刻nowTimeが消音タイミングtime_offを過ぎていると、上記ステップSB15の判断結果が「YES」になり、ステップSB16に進む。
ステップSB16では、音高pitch(asNote[offBuf[iOff]][2])を含む課題音のノートオフイベントを生成し、これをMIDIインタフェース4を介して電子楽器20側に送出して当該課題音を消音させる。こうして課題音を消音させると、CPU1はステップSB17に処理を進め、検索ポインタiOffに対応するノートオフバッファOffBuf[iOff]に消音済みを表すNULLデータを登録する。そして、ステップSB18に進み、ポインタiOffBufCntをデクリメントし、続くステップSB19ではポインタiOffCntをインクリメントする。この後、ステップSB20にて検索ポインタiOffをインクリメントして歩進させた後、上述のステップSB14に処理を戻す。
このように、再生開始処理では、課題情報管理テーブルT1中でポインタiassignに対応した課題データassign[iassign]が指定する出題音数分の課題音データasNoteを課題音管理テーブルT2から読み出し、読み出した課題音データasNoteの発音タイミングtime_onに達する毎にノートオンイベントを、消音タイミングtime_offに達する毎にノートオフイベントをそれぞれ電子楽器20側に送出して課題音の発音/消音を指示し、出題音数iNotes分の再生が完了すると、図12に示すステップSB6の判断結果が「YES」となり、本処理を完了させる。
さて一方、分析モード下で実行される再生開始処理は、上述した問題モード下の再生開始処理をほぼ同一なので、その詳細な動作の説明については省略し、問題モード下と相違する点を概説する。図11に図示するメインルーチンのステップSA20を介して分析モード下の再生開始処理が実行されると、CPU1は訓練課題情報管理テーブルT4(図8参照)中でポインタitrainに対応した訓練課題データtrain[itrain]が指定する出題音数iNote分の訓練課題音データtrNoteを訓練課題音管理テーブルT5(図9参照)から読み出し、読み出した訓練課題音データtrNoteの発音タイミングtime_onに達する毎にノートオンイベントを、消音タイミングtime_offに達する毎にノートオフイベントをそれぞれ電子楽器20側に送出して訓練課題音の発音/消音を指示し、出題音数iNote分の再生が完了すると、本処理を完了させるようになっている。
(3)回答処理の動作
次に、図15〜図18を参照して問題モード下で実行される回答処理の動作を説明する。前述したメインルーチンのステップSA8(図10参照)を介して本処理が実行されると、CPU1は図15に示すステップSC1に処理を進め、本処理で使用する一時バッファを初期化する。次いで、ステップSC2では、回答音入力数をカウントする回答入力カウンタiACをゼロリセットし、続くステップSC3では、レジスタIAnStartに現時刻をストアする。ステップSC4では、回答入力カウンタiACの値が、出題音数iNote(assign[iassign][2])に一致しないかどうか、つまり出題音数iNote分の回答音が入力されたか否かを判断する。出題音数iNote分の回答音が入力された場合には、判断結果が「NO」になり、後述するステップSC7に進む。一方、出題音数iNote分の回答音が入力されていない場合には判断結果が「YES」になり、次のステップSC5に進む。
ステップSC5では、現時刻からレジスタIAnStartにストアされた時刻を減算してレジスタNowTimeにストアする。以後、レジスタNowTimeを回答時刻NowTimeと称す。そして、ステップSC6に進むと、回答時刻NowTimeが回答制限時間limit(assign[iassign][1])を超えているか否かを判断する。
回答時刻NowTimeが回答制限時間limitを超えると、判断結果は「YES」となり、ステップSC7に進み、現在のモードが問題モードであるかどうかを判断する。問題モード下であれば、判断結果は「YES」となり、図16のステップSC8以降を実行するが、分析モードの場合には判断結果が「NO」になり、本処理を完了させる。一方、回答時刻NowTimeが回答制限時間limitを超えなければ、上記ステップSC6の判断結果が「NO」になり、図17のステップSC16に処理を進める。
いま例えば、問題モード下において回答時刻NowTimeが回答制限時間limit以内であるとする。そうすると、CPU1は図17のステップSC16〜SC18において回答操作の種別を判別する。すなわち、ステップSC16では音高指定用に割当てられたキーボード6のキー操作であるか否かを判断し、ステップSC17では問題モード画面TMGに表示される鍵盤表示エリアE1において課題音と同じ音高と判断した鍵をマウス5でクリックするマウス操作であるか否かを判断し、ステップSC18では電子楽器20側に配設される鍵盤の鍵操作で発生するMIDIノートイベント入力であるか否かを判断する。次に、ステップSC19に進むと、CPU1は回答操作に応じて発生したイベントに含まれる音高をレジスタpitchにストアする。続いて、ステップSC20では、回答操作に応じて発生したイベントがノートオンイベントであるかどうかを判断する。
ノートオンイベントであると、判断結果は「YES」になり、ステップSC21に進み、フラグIsNoteOnに「1」をセットしてノートオンイベントである旨を表す。一方、ノートオフイベントであれば、上記ステップSC20の判断結果が「NO」となり、ステップSC22に進み、フラグIsNoteOnに「0」をセットしてノートオフイベントである旨を表す。そして、ステップSC23では、フラグIsNoteOnが「1」、つまり回答操作がノートオンイベントであるかどうかを判断する。以下、回答操作が発音を指示するノートオンイベントの場合と、消音を指示するノートオフイベントの場合とに分けて動作説明を進める。
<ノートオンイベントの場合>
回答操作が発音を指示するノートオンイベントであると、ステップSC23の判断結果が「YES」になり、ステップSC24以降に処理を進める。ステップSC24〜SC27では、入力される回答音のノートオン属性を回答音データテーブルT3(図7参照)に登録する。すなわち、ステップSC24では、レジスタpitchに格納される音高を、回答入力カウンタiACの値に対応した回答音データansNote[iAC][2](音高pitch)にストアする。ステップSC25では、回答時刻NowTimeを回答音データansNote[iAC][3](発音タイミングtime_on)にストアする。ステップSC26では、回答入力カウンタiACの値を回答音データansNote[iAC][0](識別番号asNote#)にストアする。ステップSC27では、ポインタiassignの値を回答音データansNote[iAC][1](課題番号assign#)にストアする。そしてこの後、ステップSC28に進み、回答入力カウンタiACを歩進させてから前述したステップSC4(図15参照)に処理を戻す。
<ノートオフイベントの場合>
一方、回答操作が消音を指示するノートオフイベントであると、ステップSC23の判断結果が「NO」になり、CPU1は図18のステップSC29以降に処理を進め、入力される回答音のノートオフ属性を回答音データテーブルT3に登録する。すなわち、ステップSC29では、検索ポインタiをゼロリセットし、続くステップSC30〜SC35では、回答入力カウンタiACの値に達するまで検索ポインタiを歩進させながら、回答音データテーブルT3中でansNote[i][4](消音タイミングtime_off)が空き状態(NULL)の回答音データを検索し、該当する回答音データansNote[i][4]に消音タイミングとなる回答時刻NowTimeをストアすると共に、一つ前の回答音データansNote[i−1][0](識別番号asNote#)を、回答音データansNote[i][6](ポインタpNextNote)にストアし後、前述したステップSC4(図15参照)に処理を戻す。
さて、こうした回答操作に対応した処理を終えて、回答時刻NowTimeが回答制限時間limitを超えたとする。そうすると、図15に示すステップSC6およびステップSC7の各判断結果が「YES」となり、CPU1は図16のステップSC8以降を実行して課題履歴データtestHistを作成し、それを課題履歴管理データベースDB(図6参照)に登録する。
すなわち、ステップSC8では、課題履歴管理データベースDBの空きエリアを検索し、その空きエリアを示す値をポインタiHistにストアする。次に、ステップSC9では、そのポインタiHistに対応した課題履歴管理データベースDB中の課題履歴データtestHist[iHist][1](識別番号Hist#)にポインタiassignをストアする。次いで、ステップSC10では、ポインタiassignに対応した課題データassign[iassign][3](ポインタpNote)を課題情報管理テーブルT1(図4参照)から読み出し、これを最初の課題音を指定するポインタpQNoteとして課題履歴データtestHist[iHist][3]にストアする。
そして、ステップSC11〜SC15では、ポインタiAを歩進させながら、回答音データテーブルT3(図7参照)中からポインタiassignに合致する課題番号assign#の回答音データansNote[iA][1]を検索し、該当する回答音データansNote[iA][0](識別番号asNote#)を、最初の回答音を指定するポインタpANoteとして課題履歴データtestHist[iHist][2]にストアすると共に、ポインタiassignが指し示す課題履歴管理データベースDB中の空きエリア番号を、識別番号Hist#として課題履歴データtestHist[i][0]にストアして本処理を終える。
以上のように、問題モード下で実行される回答処理では、回答制限時間limit以内に回答音を入力する操作(キー操作、マウス操作およびMIDI入力のいずれか)が行われると、その操作のイベントがノートオンイベントであれば、回答音のノートオン属性(音高pitch、発音タイミングtime_on、識別番号asNote#および課題番号assign#)を回答音データテーブルT3に登録し、一方、ノートオフイベントであると、回答音のノートオフ属性(消音タイミングtime_off)を回答音データテーブルT3に登録する。そして、回答時刻NowTimeが回答制限時間limitを超えると、課題情報管理テーブルT1および回答音データテーブルT3を参照して、回答操作を終えた課題音および回答音を表す課題履歴データtestHistを作成して課題履歴管理データベースDBに登録する。
これに対し、分析モード下で実行される回答処理では、課題履歴データtestHistを作成せず、回答制限時間limit以内の回答操作に応じて、回答音のノートオン・ノートオフ属性を回答音データテーブルT3に登録するようになっている。
(4)判定処理の動作
次に、図19を参照して判定処理の動作を説明する。前述したメインルーチンのステップSA10(図10参照)を介して本処理が実行されると、CPU1は図19に示すステップSD1に処理を進め、課題情報管理テーブルT1(図4参照)において、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。続いて、ステップSD2では、正解数をカウントするカウンタiHitCntをゼロリセットする。ステップSD3では、課題音管理テーブルT2(図5参照)中からポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#を読み出してレジスタasNoteにストアする。
次いで、ステップSD4では、レジスタasNoteにストアした識別番号asNote#で指定される回答音データテーブルT3(図7参照)中の回答音データansNote[asNote][2]と課題音管理テーブルANT中の課題音データasNote[pNote][2]とが一致するか、すなわち回答音の音高pitchと課題音の音高pitchとが一致するか否かを判断する。回答音の音高pitchと課題音の音高pitchとが一致する正解時には判断結果が「YES」になり、ステップSD5に進み、カウンタiHitCntを歩進させた後、ステップSD6に進む。
一方、不正解時には上記ステップSD4の判断結果が「NO」になり、ステップSD6に進む。ステップSD6では、ポインタpNoteに対応した課題音データasNote[pNote][5]のポインタpNextNoteが、空き状態を表すデータNULLでないか否か、すなわち、全ての課題音について判定し終えたかどうかを判断する。判定し終えていなければ、判断結果は「YES」になり、ステップSD7に進み、ポインタpNoteに対応した課題音データasNote[pNote][5]のポインタpNextNoteをポインタpNoteにセットして次の課題音を指定するようにした後、上述のステップSD3に進む。
以後、出題音数分の回答判定を繰り返し、全ての課題音について回答判定し終えると、ステップSD6の判断結果が「NO」になり、ステップSD8に進む。ステップSD8では、カウンタiHitCntが累算した正解数と、ポインタiassignで指定される課題データassign[iassign][2]の出題音数iNoteとの比から算出される得点をレジスタiScoreにストアする。そして、ステップSD9では、レジスタiScoreにストアされた得点を、問題モード画面TMG(図2参照)の得点表示エリアE4に数値表示して本処理を終える。
(5)分析処理の動作
次に、分析モード下で実行される分析処理の動作を説明する。分析モード画面AMG(図3参照)の分析開始アイコンIC9がクリック操作されると、前述したメインルーチンのステップSA28(図11参照)を介して本処理が実行される。そうすると、CPU1は図20に示す集計処理(ステップSE1)、正誤判定処理(ステップSE2)および訓練課題作成処理(ステップSE3)からなる分析処理を実行する。以下、これら各処理の動作について説明する。
a.集計処理の動作
図20のステップSE1を介して本処理が実行されると、CPU1は図21のステップSE1−1に処理を進め、ポインタiAをゼロリセットし、続くステップSE1−2では課題履歴管理データベースDB(図6参照)から集計対象を検索し終えたか否かを判断する。検索終了していなければ、判断結果は「NO」になり、ステップSE1−3に進む。ステップSE1−3では、ポインタiAに応じて課題履歴管理データベースDBから課題履歴データtestHist[iA][2](最初の回答音を指定するポインタpANote)を読み出し、レジスタpNAnsにストアする。次に、ステップSE1−4では、レジスタbase1に初期値「−1」をストアする。レジスタbase1が意図するところは追って述べる。
次いで、ステップSE1−5では、回答音データテーブルT3において、レジスタpNAnsの値(最初の回答音を指定するポインタpANote)で指定される回答音データansNote[pNAns][5](課題音番号HitOrg)が空き状態を表すデータNULLであるか否か、すなわちレジスタpNAnsで指定される回答音データに対応する課題音データの有無を判断する。対応する課題音データが存在しない場合には、判断結果が「YES」になり、図22のステップSE1−15に進む。
一方、対応する課題音データが存在すると、判断結果は「NO」となり、ステップSE1−6に進み、レジスタpNAnsの値で指定される回答音データansNote[pNAns][5]の課題音番号HitOrgをレジスタPNQstにストアする。そして、ステップSE1−7では、レジスタpNAnsの値に対応する回答音データansNote[pNAns][2]の音高pitchを回答音高APitchに、レジスタPNQsの値に対応する課題音データasNote[pNQns][2]の音高pitchを課題音高QPitchにそれぞれストアする。
続いて、図22のステップSE1−8〜SE1−14では、回答音高APitchが課題音高QPitchと一致する場合には正答集計カウンタOKCnt[QPitch][iCol]を歩進させ、一方、回答音高APitchが課題音高QPitchに一致しない場合には誤答集計カウンタMSCnt[QPitch][iCol]を歩進させる。
ここで、正答集計カウンタOKCnt[QPitch][iCol]、誤答集計カウンタMSCnt[QPitch][iCol]とは、128行25列の配列要素を備えるカウンタである。行要素は課題音高QPitch(音高C0〜音高G9まで128段階)で指定される。列要素は先(一つ前)の課題音高QPitchと現在の課題音高QPitchとの音高差に「12」を加算したポインタiColの値で指定される。従って、先の課題音高QPitchと現在の課題音高QPitchとの音高差がゼロの場合には、ポインタiColは「12」となる。行要素の課題音高QPitchおよび列要素のポインタiColで指定される配列要素をインクリメントしてカウントする。
なお、ステップSE1−8〜SE1−10において、最初のパス(実行経路)ではレジスタbase1に初期値「−1」がストアされているので、ステップSE1−9の判断結果が「YES」となり、ステップSE1−10に進み、ポインタiColは「12」にセットされる。以後のパスでは、ステップSE1−14において先の課題音高QPitchがレジスタbase1に格納される為、ポインタiColはステップSE1−8において、12+(Base1−QPitch)により算出される。
こうして、正誤判定結果に応じて正答集計カウンタOKCnt[QPitch][iCol]もしくは誤答集計カウンタMSCnt[QPitch][iCol]を歩進させると、CPU1はステップSE1−15に進み、レジスタpNAnsの値に対応する回答音データansNote[pNAns][6](次の回答音データを指定するポインタpNextNote)が空き状態を表すデータNULLであるか否か、すなわち次の回答音データの有無を判断する。次の回答音データが存在すると、判断結果は「NO」になり、ステップSE1−16に進み、回答音データansNote[pNAns][6]のポインタpNextNoteをレジスタpNAnsにストアし、当該レジスタpNAnsの内容を更新させた後、図21のステップSE1−5に処理を戻す。
これに対し、次の回答音データが存在しない場合には、上記ステップSE1−15の判断結果が「YES」となり、ステップSE1−17に進む。ステップSE1−17では、次の課題音データとそれに対応する回答音データとを読み出す為、ポインタiAを歩進させた後、図21のステップSE1−2に処理を戻す。そして、歩進されたポインタiAに対応した課題履歴データtestHist[iA]が課題履歴管理データベースDBに登録されていない場合には、集計対象の検索が終了したとして、ステップSE1−2の判断結果が「YES」になり、本処理を完了させる。
このように、集計処理では、課題履歴管理データベースDBに登録される課題履歴データtestHistを参照して検索した回答音高APitchと課題音高QPitchとを比較し、両者が一致している場合には課題音高QPitchおよび先の課題音との音高差を表すポインタiColで指定される正答集計カウンタOKCnt[QPitch][iCol]を歩進させ、一方、両者が一致していない場合には課題音高QPitchおよび先の課題音との音高差を表すポインタiColで指定される誤答集計カウンタMSCnt[QPitch][iCol]を歩進させ、これにより正答集計カウンタOKCnt[QPitch][iCol]には聴き分けできる音高が集計され、誤答集計カウンタMSCnt[QPitch][iCol]には聴き間違えが起こり易く苦手とする音高が集計される。
b.正誤判定処理の動作
次に、図23〜図25を参照して正誤判定処理の動作について説明する。図20に示すステップSE2を介して本処理が実行されると、CPU1は図23のステップSE2−1に処理を進め、正答集計カウンタOKCnt[i][j]および誤答集計カウンタMSCnt[i][j]の内容を読み出すための行ポインタiおよび列ポインタjをゼロリセットする。次いで、ステップSE2−2〜SE2−5では、行ポインタiで指定される課題音高毎に、列ポインタjを「0」から「24」まで歩進させる列走査に応じて、正答集計カウンタOKCnt[i][j]および誤答集計カウンタMSCnt[i][j]から音高正答数PitchOK[i]、音高誤答数PitchMS[i]、先の課題音との音高差に対する正答数DiskOK[j]および先の課題音との音高差に対する誤答数DiskMS[j]を抽出する。
そして、行ポインタiで指定される課題音高について列走査が完了すると、ステップSE2−3の判断結果が「NO」になり、ステップSE2−6を介してPichRst[i]決定処理を実行する。PichRst[i]決定処理が実行されると、CPU1は図24のステップSEa1に進み、音高正答数PitchOK[i]および音高誤答数PitchMS[i]の双方が「0」であるかどうかを判断する。音高正答数PitchOK[i]および音高誤答数PitchMS[i]の双方が「0」であると、判断結果は「YES」になり、次のステップSEa2に進み、この場合、レジスタPitchRst[i]に「0」をストアし、行ポインタiで指定される課題音が出題されていない旨を表す。
一方、音高正答数PitchOK[i]および音高誤答数PitchMS[i]の双方が「0」でない場合、つまり行ポインタiで指定される課題音が出題されている場合には、上記ステップSEa1の判断結果が「NO」になり、ステップSEa3に進む。ステップSEa3では、音高誤答数PitchMS[i]/音高正答数PitchOK[i]に基づき誤答率Rst(%表示)を算出し、続くステップSEa4〜SEa12では算出した誤答率Rstに応じた値をレジスタPitchRst[i]にストアする。
すなわち、誤答率Rstが150%(誤答数が正答数の1.5倍)以上であると、ステップSEa4の判断結果が「YES」になり、ステップSEa5に進み、レジスタPitchRst[i]に「1」をストアし、行ポインタiで指定される課題音の音高の聴き取りが不得手である旨を表す。誤答率Rstが100%を超える場合には、ステップSEa6の判断結果が「YES」になり、ステップSEa7に進み、レジスタPitchRst[i]に「2」をストアし、行ポインタiで指定される課題音の音高の聴き取りがやや不得手である旨を表す。
誤答率Rstが80%を超える場合には、ステップSEa8の判断結果が「YES」になり、ステップSEa9に進み、レジスタPitchRst[i]に「3」をストアし、行ポインタiで指定される課題音の音高を普通に聴き取れる旨を表す。誤答率Rstが50%を超える場合には、ステップSEa10の判断結果が「YES」になり、ステップSEa11に進み、レジスタPitchRst[i]に「4」をストアし、行ポインタiで指定される課題音の音高の聴き取りが得意である旨を表す。誤答率Rstが50%以下の場合には、ステップSEa12に進み、レジスタPitchRst[i]に「5」をストアし、行ポインタiで指定される課題音の音高の聴き取りが非常に得意である旨を表す。
こうして、行ポインタiで指定される課題音の音高について得手・不得手を判定し終えると、CPU1は図23のステップSE2−7に進み、行ポインタiをインクリメントしてステップSE2−2に処理を戻す。以後、歩進される行ポインタiが「128」を超えるまで上述したステップSE2−2〜SE2−7を繰り返し、正答集計カウンタOKCnt[i][j]および誤答集計カウンタMSCnt[i][j]から音高正答数PitchOK[i]、音高誤答数PitchMS[i]、先の課題音との音高差に対する正答数DiskOK[j]および先の課題音との音高差に対する誤答数DiskMS[j]を抽出し、抽出した音高正答数PitchOK[i]および音高誤答数PitchMS[i]に基づき課題音の音高(音高C0〜音高G9まで128段階)の全てについて得手・不得手を判定する。
課題音の音高の全てについて得手・不得手を判定し終えると、図23に示すステップSE2−2の判断結果が「NO」となり、ステップSE2−8以降を実行し、先の課題音との音高差に対する正答数DistOK[j](以下、正答数DistOK[j]と記す)および先の課題音との音高差に対する誤答数DistMS[j](以下、誤答数DistMS[j]と記す)に基づき、先の課題音との音高差(音程)を聴き取る際の得手・不得手を判定する。
すなわち、ステップSE2−8では、列ポインタjをゼロリセットし、続くステップSE2−9では列ポインタjが「25」を超えたか否かを判断し、超えていなければ判断結果は「YES」となり、ステップSE2−10に進む。ステップSE2−10を介してDistRst[j]決定処理が実行されると、CPU1は図25のステップSEb1に進み、正答数DistOK[j]および誤答数DistMS[j]の双方が「0」であるかどうかを判断する。双方が「0」であると、判断結果は「YES」になり、ステップSEb2に進み、この場合、レジスタDistRst[j]に「0」をストアし、先の課題音との音高差が無い旨を表す。
一方、正答数DistOK[j]および誤答数DistMS[j]の双方が「0」でない場合、つまり先の課題音との音高差が有る場合には、上記ステップSEb1の判断結果が「NO」になり、ステップSEb3に進む。ステップSEb3では、誤答数DistMS[j]/正答数DistOK[j]に基づき誤答率Rst(%表示)を算出し、続くステップSEb4〜SEb12では算出した誤答率Rstに応じた値をレジスタDistRst[j]にストアする。
すなわち、誤答率Rstが150%(誤答数が正答数の1.5倍)以上であると、ステップSEb4の判断結果が「YES」になり、ステップSEb5に進み、レジスタDistRst[j]に「1」をストアし、列ポインタjで指定される音高差の聴き取りが不得手である旨を表す。誤答率Rstが100%を超える場合には、ステップSEb6の判断結果が「YES」になり、ステップSEb7に進み、レジスタDistRst[j]に「2」をストアし、列ポインタjで指定される音高差の聴き取りがやや不得手である旨を表す。
誤答率Rstが80%を超える場合には、ステップSEb8の判断結果が「YES」になり、ステップSEb9に進み、レジスタDistRst[j]に「3」をストアし、列ポインタjで指定される音高差を普通に聴き取れる旨を表す。誤答率Rstが50%を超える場合には、ステップSEb10の判断結果が「YES」になり、ステップSEb11に進み、レジスタDistRst[j]に「4」をストアし、列ポインタjで指定される音高差の聴き取りが得意である旨を表す。誤答率Rstが50%以下の場合には、ステップSEb12に進み、レジスタDistRst[j]に「5」をストアし、列ポインタjで指定される音高差の聴き取りが非常に得意である旨を表す。
こうして、列ポインタjで指定される、先の課題音(1つ前の課題音)との音高差の聴き取りについて得手・不得手を判定し終えると、CPU1は図23のステップSE2−11に進み、列ポインタjをインクリメントしてステップSE2−9に処理を戻す。以後、歩進される列ポインタjが「25」を超えるまで上述したステップSE2−8〜SE2−11を繰り返す。そして、音高差の聴き取りの得手・不得手を判定し終えると、ステップSE2−9の判断結果が「NO」となり、正誤判定処理を完了させる。
以上のように、正誤判定処理では、聴き分けできる音高を集計した正答集計カウンタOKCntと、聴き間違えが起こり易く苦手とする音高を集計した誤答集計カウンタMSCntとの内容から課題音の音高の聴き取りの得手・不得手を判定すると共に、先の課題音との音高差(音程)を聴き取る際の得手・不得手を判定するようになっている。
c.訓練課題作成処理
次に、図26〜図29を参照して訓練課題作成処理の動作について説明する。図20に示すステップSE3を介して本処理が実行されると、CPU1は図26のステップSE3−1に処理を進める。ステップSE3−1では、上述した正誤判定処理にて判定され、各課題音の音高毎の得手・不得手を表す値が格納されたレジスタPitchRst[i](iは課題音の音高に対応)の内から、その値が「5(非常に得意)」、「3(やや不得手)」および「1(不得手)」の課題音の音高を検出し、その結果をレジスタtrPitch[0]〜[2]にストアする。ここで、レジスタtrPitch[0]には非常に得意な音高を、レジスタtrPitch[1]にはやや不得手な音高を、レジスタtrPitch[2]には不得手な音高をそれぞれセットする。
次いで、ステップSE3−2では、上述した正誤判定処理にて判定され、音程の聴き取りの得手・不得手を表す値が格納されたレジスタDistRst[j](jは半音数で表される音程に対応)の内から、その値が「5(非常に得意)」および「1(不得手)」の音程を検出し、その結果をレジスタtrDist[0]〜[1]にストアする。ここで、レジスタtrDist[0]には非常に得意な音程を、レジスタtrDist[1]には不得手な音程をそれぞれセットする。そして、ステップSE3−4〜SE3−10では、レジスタtrPitch[0]〜[2]に格納された音高と、レジスタtrDist[0]〜レジスタtrDist[1]に格納された音程とに応じて定まる訓練課題音をレジスタtrPitches[0]〜[8]にストアする。
すなわち、レジスタtrPitches[0]には「最も得意な音高」をストアする。レジスタtrPitches[1]には「先の課題音に対して最も得意な音程関係であって最も得意な音高」をストアする。レジスタtrPitches[2]には「先の課題音に対して不得手な音程関係であって最も得意な音高」をストアする。レジスタtrPitches[3]には「やや不得手な音高」をストアする。レジスタtrPitches[4]には「先の課題音に対して最も得意な音程関係であってやや不得手な音高」をストアする。レジスタtrPitches[5]には「先の課題音に対して不得手な音程関係であってやや不得手な音高」をストアする。レジスタtrPitches[6]には「不得手な音高」をストアする。レジスタtrPitches[7]には「先の課題音に対して最も得意な音程関係であって不得手な音高」をストアする。レジスタtrPitches[8]には「先の課題音に対して不得手な音程関係であって不得手な音高」をストアする。
こうして、レジスタtrPitches[0]〜[8]に9種の訓練課題音が格納されると、ステップSE3−4の判断結果が「NO」になり、ステップSE3−11以降に処理を進め、レジスタtrPitches[0]〜[8]に格納される9種の訓練課題音を組合せて訓練課題を作成する。まずステップSE3−11では、ポインタiをゼロリセットし、続くステップSE3−12では、ポインタiが課題数nTrain(既定値)より小さいか否か、つまり訓練課題を作成し終えたかどうかを判断する。訓練課題を作成し終えていなければ、判断結果は「YES」となり、ステップSE3−13を介して訓練課題データtrainを作成するtrain[i][x]設定処理を実行する。
ステップSE3−13を介してtrain[i][x]設定処理が実行されると、CPU1は図27のステップSEc1〜SEc4にて訓練課題情報管理テーブルT4(図8参照)に登録する訓練課題データtrain[i][0]〜train[i][3]を作成する。すなわち、ステップSEc1では、ポインタiを訓練課題番号train#として訓練課題情報管理テーブルT4の訓練課題データtrain[i][0]に登録する。ステップSEc2では、回答制限時間limit(既定値)を訓練課題情報管理テーブルT4の訓練課題データtrain[i][1]に登録する。ステップSEc3では、レジスタtrPitches[0]〜[8]に格納される訓練課題音の数を表す出題音数iNote(既定値)を訓練課題情報管理テーブルT4の訓練課題データtrain[i][2]に登録する。ステップSEc4では、先頭の訓練課題音データtrNoteを指定するポインタpNoteを訓練課題情報管理テーブルT4の訓練課題データtrain[i][3]に登録する。
以上のようにして、訓練課題データtrainが作成されると、図26に示すステップSE3−14を介して1音目設定処理を実行する。1音目設定処理が実行されると、CPU1は図28のステップSEd1に処理を進め、訓練課題情報管理テーブルT4に登録した訓練課題データtrain[i][3](ポインタpNote)をレジスタmにストアする。続いて、ステップSEd2では、ランダム関数に基づき「0」から「8」の範囲で乱数K(整数)を発生する。そして、ステップSEd3では、訓練課題データtrain[i][3](ポインタpNote)を、レジスタmの値に対応させた訓練課題音データtrNote[m][0](識別番号trNote#)として訓練課題音管理テーブルT5(図9参照)に登録する。
次に、ステップSEd4では、訓練課題データtrain[i][0](訓練課題番号train#)を、レジスタmの値に対応させた訓練課題音データtrNote[m][1](訓練課題番号train#)として訓練課題音管理テーブルT5に登録する。ステップSEd5では、乱数Kで指定されるレジスタtrPitches[K]に格納される訓練課題音の音高を、レジスタmの値に対応させた訓練課題音データtrNote[m][2](音高pitch)として訓練課題音管理テーブルT5に登録する。ステップSEd6では、発音タイミングtime_on(既定値)をレジスタmの値に対応させた訓練課題音データtrNote[m][3](発音タイミングtime_on)として訓練課題音管理テーブルT5に登録する。ステップSEd7では、消音タイミングtime_off(既定値)をレジスタmの値に対応させた訓練課題音データtrNote[m][4](消音タイミングtime_off)として訓練課題音管理テーブルT5に登録する。
こうして、1音目の訓練課題音データtrNote[m][0]〜[4]を設定し終えると、CPU1は図26のステップSE3−15に進み、ポインタjに初期値「1」をセットする。次いで、ステップSE3−16〜SE3−18では、出題音数iNoteを超えるまでポインタjを歩進させる毎に、ステップSE3−17を介してtrNote[x]設定処理を行う。trNote[x]設定処理が実行されると、CPU1は図29に示すステップSEe1に処理を進める。ステップSEe1では、ランダム関数に基づき「0」から「8」の範囲で乱数K(整数)を発生する。次いで、ステップSEe2では、訓練課題データtrain[i][3]のポインタpNoteにポインタjを加算した値を、レジスタmにポインタjを加算した値で指定される訓練課題音データtrNote[m+j][0](識別番号trNote#)として訓練課題音管理テーブルT5に登録する。
ステップSEe3では、訓練課題データtrain[i][0](訓練課題番号train#)を、レジスタmにポインタjを加算した値で指定される訓練課題音データtrNote[m+j][1](訓練課題番号train#)として訓練課題音管理テーブルT5に登録する。続いて、ステップSEe4では、乱数Kで指定されるレジスタtrPitches[K]に格納される訓練課題音の音高を、レジスタmにポインタjを加算した値で指定される訓練課題音データtrNote[m+j][2](音高pitch)として訓練課題音管理テーブルT5に登録する。ステップSEe5では、ポインタjで指定され、再生開始時点からの経過時間で表される発音タイミングtimeon[j]を、レジスタmにポインタjを加算した値で指定される訓練課題音データtrNote[m+j][3](発音タイミングtime_on)として訓練課題音管理テーブルT5に登録する。
ステップSEe6では、ポインタjで指定され、再生開始時点からの経過時間で表される消音タイミングtimeoff[j]を、レジスタmにポインタjを加算した値で指定される訓練課題音データtrNote[m+j][4](消音タイミングtime_on)として訓練課題音管理テーブルT5に登録する。そして、ステップSEe7では、先に設定した訓練課題音データtrNote[m+j−1][5](ポインタpNextNote)に、現在設定中の訓練課題音データtrNote[m+j][0](訓練課題番号train#)をストアする。
上述したtrNote[x]設定処理にて出題音数iNote分の訓練課題音データtrNoteを設定し終えると、図26に示すステップSE3−16の判断結果が「NO」となり、ステップSE3−19に進み、ポインタiを歩進させた後、上述したステップSE3−12に処理を戻す。以後、課題数nTrain分の訓練課題を作成するまでステップSE3−12〜SE3−19を繰り返す。そして、課題数nTrain分の訓練課題を作成し終えると、ステップSE3−12の判断結果が「NO」となり、訓練課題作成処理を完了させる。
このように、訓練課題作成処理では、課題音の音高を聴き取る際の得手・不得手を判定した結果と、先の課題音との音高差(音程)を聴き取る際の得手・不得手を判定した結果とから、「最も得意な音高」、「先の課題音に対して最も得意な音程関係であって最も得意な音高」、「先の課題音に対して不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「先の課題音に対して最も得意な音程関係であってやや不得手な音高」、「先の課題音に対して不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「先の課題音に対して最も得意な音程関係であって不得手な音高」、「先の課題音に対して不得手な音程関係であって不得手な音高」からなる9種の訓練課題音を表す訓練課題データtrainを選択して訓練課題情報管理テーブルT4に登録した後、訓練課題情報管理テーブルT4に登録した訓練課題データtrainに基づき、上記9種の訓練課題音をランダムな順序で組合せた訓練課題音データtrNoteを作成して訓練課題音管理テーブルT5に登録する。
以上説明したように、本実施の形態では、問題モード下で再生開始処理、回答処理および判定処理を実行すると、出題された課題音および回答された回答音を表す課題履歴データtestHistが課題履歴管理データベースDBに登録され、この後に分析モードに遷移して分析処理を実行すると、課題履歴管理データベースDBに登録される課題履歴データtestHistを参照して、聴き分けできる音高を正答集計カウンタOKCntに集計し、聴き間違えが起こり易く苦手とする音高を誤答集計カウンタMSCntに集計する。
そして、正答集計カウンタOKCntおよび誤答集計カウンタMSCntの内容から課題音の音高を聴き取る際の得手・不得手と、先の課題音との音高差(音程)を聴き取る際の得手・不得手とを判定した結果から「最も得意な音高」、「先の課題音に対して最も得意な音程関係であって最も得意な音高」、「先の課題音に対して不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「先の課題音に対して最も得意な音程関係であってやや不得手な音高」、「先の課題音に対して不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「先の課題音に対して最も得意な音程関係であって不得手な音高」、「先の課題音に対して不得手な音程関係であって不得手な音高」からなる9種の訓練課題音を作成する。この後、分析モード下で再生開始処理および回答処理を実行することによって、作成した訓練課題音の再生/回答が行われ、これにより聴き間違えが起こり易く苦手とする音高や音程の聴き取り能力を重点的に教習することが可能になる。
実施形態の全体構成を示すブロック図である。 問題モード画面TMGの一例を示す図である。 分析モード画面AMGの一例を示す図である。 課題情報管理テーブルT1に登録される課題情報データassignのデータ構造を示す図である。 課題音管理テーブルT2に登録される課題音データasNoteのデータ構造を示す図である。 課題履歴管理データベースDBに登録される課題履歴データtestHistのデータ構造を示す図である。 回答音データテーブルT3に登録される回答音データansNoteのデータ構造を示す図である。 訓練課題情報管理データテーブルT4に登録される訓練解題データtarinのデータ構造を示す図である。 訓練課題音管理データテーブルT5に登録される訓練解題音データtrNoteのデータ構造を示す図である。 メインルーチンの動作を示すフローチャートである。 メインルーチンの動作を示すフローチャートである。 再生開始処理の動作を示すフローチャートである。 再生開始処理の動作を示すフローチャートである。 再生開始処理の動作を示すフローチャートである。 回答処理の動作を示すフローチャートである。 回答処理の動作を示すフローチャートである。 回答処理の動作を示すフローチャートである。 回答処理の動作を示すフローチャートである。 判定処理の動作を示すフローチャートである。 分析処理の動作を示すフローチャートである。 集計処理の動作を示すフローチャートである。 集計処理の動作を示すフローチャートである。 正誤判定処理の動作を示すフローチャートである。 PitchRslt[i]決定処理の動作を示すフローチャートである。 DistRslt[i]決定処理の動作を示すフローチャートである。 訓練課題作成処理の動作を示すフローチャートである。 train[i][x]設定処理の動作を示すフローチャートである。 1音目設定処理の動作を示すフローチャートである。 trNote[x]設定処理の動作を示すフローチャートである。
符号の説明
1 CPU
2 ROM
3 RAM
4 MIDIインタフェース
5 マウス
6 キーボード
7 表示部
10 DTM装置
20 電子楽器

Claims (4)

  1. 夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題手段と、
    前記出題手段により一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶手段と、
    前記記憶手段に記憶された各回答音に対応する課題音であって前記出題手段により出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出手段と、
    前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定手段と、
    夫々音高及び音程をアドレスとするエリアに一致・不一致回数を記憶可能なテーブル手段を有し、前記判定手段により一致・不一致が判定される毎に、前記対応する課題音の音高及び算出された音程をアドレスとして指定される前記テーブル手段のエリアに記憶される一致・不一致の回数を更新する更新手段と、
    前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて聴き取りが得意な音高および音程と聴き取り難い音高および音程を決定する決定手段と、
    この決定手段により決定された聴き取りが得意な音高および音程関係にある音と聴き取り難い音高および音程関係にある音とを取混ぜた一連の訓練課題音を作成する訓練課題作成手段と、
    前記訓練課題作成手段により作成された一連の訓練課題音の発音を指示して出題する訓練課題出題手段と
    を具備することを特徴とする音楽教習装置。
  2. 夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題手段と、
    前記出題手段により一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶手段と、
    前記記憶手段に記憶された各回答音に対応する課題音であって前記出題手段により出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出手段と、
    前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定手段と、
    夫々音高及び音程をアドレスとするエリアに一致・不一致回数を記憶可能なテーブル手段を有し、前記判定手段により一致・不一致が判定される毎に、前記対応する課題音の音高及び算出された音程をアドレスとして指定される前記テーブル手段のエリアに記憶される一致・不一致の回数を更新する更新手段と、
    前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて「最も得意な音高」、「最も得意な音程関係であって最も得意な音高」、「不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「最も得意な音程関係であってやや不得手な音高」、「不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「最も得意な音程関係であって不得手な音高」および「不得手な音程関係であって不得手な音高」を決定する決定手段と、
    この決定手段にて決定された音高夫々をランダムな順序で並べた一連の訓練課題音を作成する訓練課題作成手段と、
    前記訓練課題作成手段により作成された一連の訓練課題音の発音を指示して出題する訓練課題出題手段と
    を具備することを特徴する音楽教習装置。
  3. 夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題過程と、
    前記一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶過程と、
    前記記憶手段に記憶された各回答音に対応する課題音であって前記出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出過程と、
    前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定過程と、
    前記一致・不一致が判定される毎に、夫々音高及び音程をアドレスとして指定されるエリアに一致・不一致回数を記憶可能なテーブル手段に対して、前記対応する課題音の音高及び算出された音程により指定されるエリアに記憶されている一致・不一致の回数を更新する更新過程と、
    前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて聴き取りが得意な音高および音程と聴き取り難い音高および音程を決定する決定過程と、
    この決定された聴き取りが得意な音高および音程関係にある音と聴き取り難い音高および音程関係にある音とを取混ぜた一連の訓練課題音を作成する訓練課題作成過程と、
    前記作成された一連の訓練課題音の発音を指示して出題する訓練課題出題過程と、
    をコンピュータで実行させることを特徴とする音楽教習プログラム。
  4. 夫々音高を有する一連の課題音を順次発音させることにより課題を出題する出題過程と、
    前記一連の課題音が発音された後、ユーザの回答操作に応じて入力された夫々音高を有する一連の回答音からなる回答を記憶手段に記憶させる回答音記憶過程と、
    前記記憶手段に記憶された各回答音に対応する課題音であって前記出題された一連の課題音を検索するとともに、当該検索された課題音とその直前に出題された課題音との音程を算出する検索・算出過程と、
    前記記憶手段に記憶された各回答音とそれに対応する課題音との音高の一致・不一致を判定する判定過程と、
    前記一致・不一致が判定される毎に、夫々音高及び音程をアドレスとして指定されるエリアに一致・不一致回数を記憶可能なテーブル手段に対して、前記対応する課題音の音高及び算出された音程により指定されるエリアに記憶されている一致・不一致の回数を更新する更新過程と、
    前記テーブル手段に記憶された一致・不一致回数に基づいて音高毎の一致・不一致の比率及び音程毎の一致・不一致の比率を算出し、当該算出された比率に基づいて「最も得意な音高」、「最も得意な音程関係であって最も得意な音高」、「不得手な音程関係であって最も得意な音高」、「やや不得手な音高」、「最も得意な音程関係であってやや不得手な音高」、「不得手な音程関係であってやや不得手な音高」、「不得手な音高」、「最も得意な音程関係であって不得手な音高」および「不得手な音程関係であって不得手な音高」を決定する決定過程と、
    この決定された音高夫々をランダムな順序で並べた一連の訓練課題音を作成する訓練課題作成過程と、
    前記作成された一連の訓練課題音の発音を指示して出題する訓練課題出題過程と
    をコンピュータで実行させることを特徴とする音楽教習プログラム。
JP2003291783A 2003-08-11 2003-08-11 音楽教習装置および音楽教習プログラム Expired - Fee Related JP4178553B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003291783A JP4178553B2 (ja) 2003-08-11 2003-08-11 音楽教習装置および音楽教習プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003291783A JP4178553B2 (ja) 2003-08-11 2003-08-11 音楽教習装置および音楽教習プログラム

Publications (2)

Publication Number Publication Date
JP2005062429A JP2005062429A (ja) 2005-03-10
JP4178553B2 true JP4178553B2 (ja) 2008-11-12

Family

ID=34369357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003291783A Expired - Fee Related JP4178553B2 (ja) 2003-08-11 2003-08-11 音楽教習装置および音楽教習プログラム

Country Status (1)

Country Link
JP (1) JP4178553B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4689304B2 (ja) 2004-06-29 2011-05-25 パナソニック株式会社 液晶表示装置

Also Published As

Publication number Publication date
JP2005062429A (ja) 2005-03-10

Similar Documents

Publication Publication Date Title
US6821203B2 (en) Musical video game system, and computer readable medium having recorded thereon processing program for controlling the game system
KR20010078200A (ko) 타이프 연습기능을 갖는 오락 시스템, 타이프 연습 시스템및 컴퓨터 판독 가능한 기억 매체
JP4178553B2 (ja) 音楽教習装置および音楽教習プログラム
KR102433890B1 (ko) 인공지능 기반 악기 연주 보조 시스템 및 방법
JP4506175B2 (ja) 運指表示装置及びそのプログラム
JP4475383B2 (ja) 音楽教習装置および音楽教習プログラム
JP3266934B2 (ja) 演奏練習装置
Putranda et al. Exploring Audio Processing in Mixed Reality to Boost Motivation in Piano Learning
JP2018130454A (ja) 軽度認知障害検査システム及び軽度認知障害検査プログラム
JP2005148269A (ja) 音楽教習装置および音楽教習プログラム
JP3579927B2 (ja) 自動演奏装置
JP2522928Y2 (ja) 電子楽器
JP4178549B2 (ja) 音楽教習装置および音楽教習プログラム
JPH05289606A (ja) 演奏練習装置
JP7395892B2 (ja) 電子機器、単語学習方法、およびプログラム
JP4482853B2 (ja) 演奏診断装置および演奏診断プログラム
JP2005049628A (ja) 音楽教習装置および音楽教習プログラム
CN112019910A (zh) 一种乐器演奏方法、装置、电视及存储介质
JP5980613B2 (ja) スクリーニング支援システム及びスクリーニング支援プログラム
JP4192936B2 (ja) 自動演奏装置
JPH05297794A (ja) 演奏練習装置
Yoshida et al. Design of a support system for guitar performance training using XR technology
JP4228346B2 (ja) 演奏支援情報生成装置および演奏支援情報生成プログラム
Azizan et al. Interlocking Rhythm Between Gendang Ibu and Gendang Anak In Gendang Silat Kedah
JP2005031458A (ja) 演奏支援装置および演奏支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080520

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