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

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

Info

Publication number
JP2005049628A
JP2005049628A JP2003281770A JP2003281770A JP2005049628A JP 2005049628 A JP2005049628 A JP 2005049628A JP 2003281770 A JP2003281770 A JP 2003281770A JP 2003281770 A JP2003281770 A JP 2003281770A JP 2005049628 A JP2005049628 A JP 2005049628A
Authority
JP
Japan
Prior art keywords
sounds
answer
task
series
sound
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.)
Pending
Application number
JP2003281770A
Other languages
English (en)
Inventor
Junichiro Soejima
淳一郎 副島
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 JP2003281770A priority Critical patent/JP2005049628A/ja
Publication of JP2005049628A publication Critical patent/JP2005049628A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Auxiliary Devices For Music (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】 実際の演奏に即した形で楽音要素を判別する音楽的能力を教習する音楽教習装置を実現する。
【解決手段】 1フレーズ分の音符に対応した課題音データasNoteを課題音管理テーブルANTから順次読み出して再生する。一連の課題音を再生し終えた後、回答制限時間limit以内に回答操作が行われると、その操作で入力された回答音の属性を回答音データテーブルANDTに登録する。そして、回答入力を終えると、再生された課題音と回答入力された回答音との比較結果に基づき算出される得点を回答画面RGの得点表示エリアE4に表示する。
【選択図】 図2

Description

本発明は、パーソナルコンピュータを用いたDTM(デスクトップミュージック)装置や電子楽器などに用いて好適な音楽教習装置および音楽教習プログラムに関する。
音楽教習をする装置として、例えば特許文献1には、問題音(任意の音高の楽音)をランダムに放音出題する問題出題手段と、放音出題された問題音の音高を演奏操作で解答する解答手段と、解答が正解すると過去に放音出題した問題音の数に新たな問題音の数を加えた数の問題音を問題出題手段からランダムに出題させる問題出題制御手段とを備え、正解する毎に放音出題数を増加させてランダムに出題させることによって、絶対音感を効果的に向上させる技術が開示されている。
特許公開平7−13480号公報
ところで、上記特許文献1に開示の音楽教習装置は、放音出題された問題音の音高を演奏操作で回答し、その回答が正解する毎に放音出題数を増加させるだけなので、実際の演奏に即した形で音高、リズム、和音あるいはベロシティなどの楽音要素を判別する音楽的能力を教習することができない、という問題がある。
そこで本発明は、このような事情に鑑みてなされたもので、実際の演奏に即した形で楽音要素を判別する音楽的能力を教習することができる音楽教習装置および音楽教習プログラムを提供することを目的としている。
上記目的を達成するため、請求項1に記載の発明では、課題音を記憶する課題音記憶手段と、教習対象とする楽音要素を選択する選択手段と、この選択手段により選択された楽音要素に対応付けられた一連の課題音を前記課題音記憶手段から読み出し、それら課題音の発音を指示して出題する出題手段と、この出題手段により出題された一連の課題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連の課題音と前記回答音記憶手段に記憶された一連の回答音とを、前記選択手段により選択された楽音要素について比較判定した結果を提示する比較判定手段とを具備することを特徴とする。
請求項2に記載の発明では、課題音を記憶する課題音記憶手段と、教習対象とする楽音要素を選択する選択手段と、この選択手段が楽音要素中の音高を選択した場合、前記課題音記憶手段に記憶される課題音の内の一連の音程問題音の発音を指示して出題する出題手段と、この出題手段により出題された一連の音程問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連の音程問題音と前記回答音記憶手段に記憶された一連の回答音との音高を比較判定した結果を提示する比較判定手段とを具備することを特徴とする。
請求項3に記載の発明では、課題音を記憶する課題音記憶手段と、教習対象とする楽音要素を選択する選択手段と、この選択手段が楽音要素中のリズムを選択した場合、前記課題音記憶手段に記憶される課題音の内の一連のリズム問題音の発音を指示して出題する出題手段と、この出題手段により出題された一連のリズム問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連のリズム問題音と前記回答音記憶手段に記憶された一連の回答音との音高および発音タイミングを比較判定した結果を提示する比較判定手段とを具備することを特徴とする。
請求項4に記載の発明では、課題音を記憶する課題音記憶手段と、教習対象とする楽音要素を選択する選択手段と、この選択手段が楽音要素中の和音を選択した場合、前記課題音記憶手段に記憶される課題音の内の一連の和音問題音の発音を指示して出題する出題手段と、この出題手段により出題された一連の和音問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連の和音問題音と前記回答音記憶手段に記憶された一連の回答音とを、和音を構成する和音構成音毎に音高および発音タイミングを比較判定した結果を提示する比較判定手段とを具備することを特徴とする。
請求項5に記載の発明では、課題音を記憶する課題音記憶手段と、教習対象とする楽音要素を選択する選択手段と、この選択手段が楽音要素中のベロシティを選択した場合、前記課題音記憶手段に記憶される課題音の内の一連のベロシティ問題音の発音を指示して出題する出題手段と、この出題手段により出題された一連のベロシティ問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連のベロシティ問題音と前記回答音記憶手段に記憶された一連の回答音とのベロシティを比較判定した結果を提示する比較判定手段とを具備することを特徴とする。
請求項6に記載の発明では、教習対象とする楽音要素を選択する選択過程と、この選択過程にて選択された楽音要素に対応付けられた一連の課題音を、課題音を記憶する課題音記憶テーブルから読み出し、それら課題音の発音を指示して出題する出題過程と、この出題過程にて出題された一連の課題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連の課題音と前記回答音記憶テーブルに記憶された一連の回答音とを、前記選択過程で選択された楽音要素について比較判定した結果を提示する比較判定過程とをコンピュータで実行させることを特徴とする。
請求項7に記載の発明では、教習対象とする楽音要素を選択する選択過程と、この選択過程で楽音要素中の音高が選択された場合、課題音記憶テーブルに記憶される課題音の内の一連の音程問題音の発音を指示して出題する出題過程と、この出題過程にて出題された一連の音程問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連の音程問題音と前記回答音記憶テーブルに記憶された一連の回答音との音高を比較判定した結果を提示する比較判定過程とをコンピュータで実行させることを特徴とする。
請求項8に記載の発明では、教習対象とする楽音要素を選択する選択過程と、この選択過程で楽音要素中のリズムが選択された場合、課題音記憶テーブルに記憶される課題音の内の一連のリズム問題音の発音を指示して出題する出題過程と、この出題過程にて出題された一連のリズム問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連のリズム問題音と前記回答音記憶テーブルに記憶された一連の回答音との音高および発音タイミングを比較判定した結果を提示する比較判定過程とをコンピュータで実行させることを特徴とする。
請求項9に記載の発明では、教習対象とする楽音要素を選択する選択過程と、この選択過程で楽音要素中の和音が選択された場合、課題音記憶テーブルに記憶される課題音の内の一連の和音問題音の発音を指示して出題する出題過程と、この出題過程にて出題された一連の和音問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連の和音問題音と前記回答音記憶テーブルに記憶された一連の回答音とを、和音を構成する和音構成音毎に音高および発音タイミングを比較判定した結果を提示する比較判定過程とをコンピュータで実行させることを特徴とする。
請求項10に記載の発明では、教習対象とする楽音要素を選択する選択過程と、この選択過程で楽音要素中のベロシティが選択された場合、課題音記憶テーブルに記憶される課題音の内の一連のベロシティ問題音の発音を指示して出題する出題過程と、この出題過程にて出題された一連のベロシティ問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連のベロシティ問題音と前記回答音記憶テーブルに記憶された一連の回答音とのベロシティを比較判定した結果を提示する比較判定過程とをコンピュータで実行させることを特徴とする。
請求項1,6に記載の発明によれば、教習対象とする楽音要素を選択すると、選択された楽音要素に対応付けられた一連の課題音を出題し、出題された一連の課題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶しておき、出題した一連の課題音と記憶した一連の回答音とを選択された楽音要素について比較判定した結果を提示するので、例えば一連の課題音を曲中の1フレーズとすれば、実際の演奏に即した形で楽音要素を判別する音楽的能力を教習することができる。
請求項2,7に記載の発明によれば、教習対象とする楽音要素として音高を選択すると、一連の音程問題音が出題され、出題された一連の音程問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶しておき、出題した一連の音程問題音と記憶した一連の回答音との音高を比較判定した結果を提示するので、実際の演奏に即した形で音高(音程)を判別する音楽的能力を教習することができる。
請求項3,8に記載の発明によれば、教習対象とする楽音要素としてリズムを選択すると、一連のリズム問題音が出題され、出題された一連のリズム問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶しておき、出題した一連のリズム問題音と記憶した一連の回答音との音高および発音タイミングを比較判定した結果を提示するので、実際の演奏に即した形でリズム(音高、発音タイミング)を判別する音楽的能力を教習することができる。
請求項4,9に記載の発明によれば、教習対象とする楽音要素として和音を選択すると、一連の和音問題音が出題され、出題された一連の和音問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶しておき、出題した一連の和音問題音と記憶した一連の回答音とを、和音を構成する和音構成音毎に音高および発音タイミングを比較判定した結果を提示するので、実際の演奏に即した形で和音を判別する音楽的能力を教習することができる。
請求項5,10に記載の発明によれば、教習対象とする楽音要素としてベロシティを選択すると、一連のベロシティ問題音が出題され、出題された一連のベロシティ問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶しておき、出題した一連のベロシティ問題音と記憶した一連の回答音とのベロシティを比較判定した結果を提示するので、実際の演奏に即した形でベロシティを判別する音楽的能力を教習することができる。
本発明による音楽教習装置および音楽教習プログラムは、周知の電子楽器もしくはパーソナルコンピュータを用いたDTM(デスクトップミュージック)装置などに適用され得る。以下では、本発明を実施するための最良の形態によるDTM装置について図面を参照して説明する。
A.構成
(1)全体構成
図1は第1の実施形態の全体構成を示すブロック図である。この図において、10は構成要素1〜7を備えたDTM(デクストップミュージック)装置、20はDTM装置10とMIDI接続される電子楽器である。DTM装置10では、例えば1フレーズ分の音符に対応した課題音を発生して電子楽器20側で再生させ、一連の課題音を再生し終えた後、回答制限時間以内に回答操作が行われた場合に、その操作で入力された回答音の登録保存し、回答入力を終えると、再生された課題音と回答入力された回答音との比較結果に基づき算出される得点を画面表示する。一方、電子楽器20側では、DTM装置10からMIDI入力される問題音のノートデータを発音したり、ユーザが鍵盤を回答操作に用いた場合、押鍵された鍵に対応したノートデータを発生してDTM装置10にMIDI出力するようになっている。
(2)DTM装置10の構成
次に、図1を参照してDTM装置10の構成を説明する。図1において、1は装置各部を制御するCPUである。CPU1はユーザ操作で選択された楽音要素別の課題音を発生して電子楽器20側にMIDI出力して再生させたり、課題音再生後にユーザが行う回答操作に応じて発生する回答音を保存する他、再生された課題音と回答入力された回答音との比較結果に基づき算出される得点を画面表示する。2はプログラムエリアおよびデータエリアを有するROMである。ROM2のプログラムエリアには、CPU1が実行するメインルーチン、再生開始処理、回答処理および判定処理を含む各種制御プログラムが記憶される。ROM2のデータエリアには、後述のメインルーチンを実行した際に表示部7に画面表示される回答画面RGの画面データが記憶される。回答画面RGの構成については追って説明する。
3はワークエリア、データエリアおよびバッファエリアを備えるRAMである。RAM3のワークエリアには、各種レジスタ・フラグデータが一時記憶される。RAM3のデータエリアには、課題情報管理テーブルAST、課題音管理テーブルANTおよび回答音データテーブルANDTが設けられる。これらテーブルの構成については追って詳述する。RAM3のバッファエリアには、後述する再生開始処理や判定処理で用いられる各種バッファが設けられる。
MIDIインタフェース4は、CPU1の制御の下に、電子楽器20にMIDIデータをシリアル転送したり、電子楽器20側から送出されるMIDIデータを取り込む。マウス5は右ボタンおよび左ボタンを備え、例えば表示画面上に配置されるアイコン上にマウスカーソルをポインティングさせた状態で左ボタンを押下する周知のクリック操作に応じてクリックイベントを発生する。キーボード6はキー入力操作に応じたキーイベントを発生する。表示部7はLCDパネル等から構成され、CPU1から供給される表示制御信号に応じて、後述する回答画面RGなどを画面表示する。
(3)回答画面RGの構成
次に、図2を参照して回答画面RGの構成を説明する。回答画面RGは、後述するメインルーチンを実行した際に表示部7に画面表示される画面であり、その一例を図2に図示する。図2において、E1は回答操作に用いる鍵盤表示エリアであり、聴いた音と同じ音高と判断した鍵をマウス5でクリック操作する。E2は1フレーズ分の出題音を音符表示する出題表示エリアである。E3は回答入力した内容を楽譜表示する回答表示エリアである。E4は問題回答の正解数で算出される得点を表示する得点表示エリアである。なお、本実施形態では、回答入力として、上記鍵盤表示エリアE1を用いた回答、キーボード6のキー操作による回答あるいは電子楽器20が備える鍵盤を用いた回答を可能にしている。
IC1〜IC7はそれぞれマウス5によりクリック操作されるアイコンである。リズム問題アイコンIC1はクリック操作に応じてリズム問題の開始を指示するイベントを発生する。音程問題アイコンIC2はクリック操作に応じて音程問題の開始を指示するイベントを発生する。組合せ問題アイコンIC3はクリック操作に応じて組合せ問題(和音問題)の開始を指示するイベントを発生する。もう一度聞くアイコンIC4はクリック操作に応じて出題音の再発音を指示するイベントを発生する。やめるアイコンIC5はクリック操作に応じて回答キャンセルを指示するイベントを発生する。次の問題へアイコンIC6はクリック操作に応じて設問更新を指示するイベントを発生する。決定アイコンIC7はクリック操作に応じて回答決定を指示するイベントを発生する。
(4)データ構造
次に、図3〜図5を参照して、RAM3のデータエリアに格納される課題情報管理テーブルAST、課題音管理テーブルANTおよび回答音データテーブルANDTのデータ構造を説明する。
図3は課題情報管理テーブルASTのデータ構造を示すメモリマップである。課題情報管理テーブルASTは、課題の内容を表す課題データassign[0]〜assign[n]から構成される。一つの課題データassign[i]は、課題番号assign#(assign[i][0])、回答制限時間limit(assign[i][1])、出題音数iNote(assign[i][2])およびポインタpNote(assign[i][3])を有する。後述する課題音管理テーブルANTでは、課題番号assign#で指定される複数の課題音データasNoteを記憶しており、その内の先頭の課題音データasNoteをポインタpNoteで指定する。
図4は課題音管理テーブルANTのデータ構造を示すメモリマップである。課題音管理テーブルANTは、上述した課題データ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])、発音時間を表す音長time_gate(asNote[i][5])、次に再生する課題音を指定するポインタpNextNote(asNote[i][6])、処理状態を表すステイタスstatus(asNote[i][7])および課題音の音量を表すベロシティvelocity(asNote[i][8])を有する。なお、処理状態を表すステイタスstatusは、「0」の場合に未発音、「1」の場合に発音中、「2」の場合に発音完了を表す。
図5は回答音データテーブルANDTのデータ構造を示すメモリマップである。回答音データテーブルANDTは、上述した課題情報管理テーブルAST(図3参照)を用いて出題された課題音について回答した回答音を格納するテーブルであり、回答音データ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])、発音時間を表す音長time_gate(ansNote[i][5])、対応する課題音データを示す課題音番号HitOrg(ansNote[i][6])、課題音の音長と回答音の音長との比を表す音長比gate_ratio(ansNote[i][7])および回答音の音量を表すベロシティvelocity(ansNote[i][8])を有する。
B.第1の実施形態の動作
次に、図6〜図19を参照して第1の実施形態の動作について説明する。以下では、最初にメインルーチンの動作を説明した後、メインルーチンからコールされる再生開始処理、回答処理および判定処理の各動作について順次説明して行く。
(1)メインルーチンの動作
DTM装置10において、メインルーチンが実行されると、CPU1は図6に示すステップSA1に進み、装置各部を初期化するイニシャライズを行った後、ステップSA2に進む。ステップSA2では、ROM2のデータエリアから画面データを読み出して回答画面RG(図2参照)を表示部7に画面表示する。次いで、ステップSA3では、選択された課題種別を表すフラグMONDAIFに「0」をセットする。フラグMONDAIFは、後述するように、回答画面RGのリズム問題アイコンIC1をクリック操作して「リズム問題」を選択した場合に「0」が、音程問題アイコンIC2をクリック操作して「音程問題」を選択した場合に「1」が、組合せ問題アイコンIC3をクリック操作して「組合せ問題」を選択した場合に「2」がセットされる。したがって、このステップSA3では、「リズム問題」をデフォルトとして選択するようフラグMONDAIFに「0」をセットしている。
次に、ステップSA4では、デフォルトとして「リズム問題」が選択された状態を表すため、回答画面RGのリズム問題アイコンIC1を強調表示する。そして、ステップSA5に進むと、ポインタiassignをゼロリセットし、続くステップSA6では、再生開始処理を実行する。再生開始処理では、後述するように、課題情報管理テーブルAST中でポインタiassignに対応した課題データassign[iassign]が指定する出題音数分の課題音データを課題音管理テーブルANTを参照して再生するようになっている。
次いで、ステップSA7では、回答処理を実行する。回答処理では、後述するように、回答制限時間limit(assign[iassign][1])以内の回答操作が行われた場合、その操作に応じて生じる回答音のノートオン属性(音高pitch、発音タイミングtime_on、ベロシティvelocity、識別番号asNote#および課題番号assign#)とノートオフ属性(消音タイミングtime_off)とを回答音データテーブルANDTに登録する。
そして、ステップSA8以降では回答画面RG(図2参照)のアイコン操作に対応した処理を実行する。以下、決定アイコンIC7をクリック操作した場合、リズム問題アイコンIC1をクリック操作した場合、音程問題アイコンIC2をクリック操作した場合、組合せ問題アイコンIC3をクリック操作した場合、もう一度聞くアイコンIC4をクリック操作した場合、次の問題へアイコンIC6をクリック操作した場合およびやめるアイコンIC5をクリック操作した場合に分け、各場合の動作を述べる。
a.決定アイコンIC7をクリック操作した場合
例えばデフォルトとして選択された「リズム問題」の課題音が再生され、それに対応する回答音を入力し終えた後、決定アイコンIC7をクリック操作したとする。そうすると、ステップSA8の判断結果が「YES」となり、CPU1は図7のステップSA9を介して判定処理を実行する。判定処理では、後述するように、再生された課題音と回答入力された回答音とを比較し、その結果に基づき算出される得点を回答画面RGの得点表示エリアE4に表示する。
b.リズム問題アイコンIC1をクリック操作した場合
リズム問題アイコンIC1をクリック操作すると、ステップSA10の判断結果が「YES」となり、ステップSA11に進み、フラグMONDAIFに「0」をセットする。そして、ステップSA12では、「リズム問題」が選択された状態を表すため、回答画面RGのリズム問題アイコンIC1を強調表示した後、図8のステップSA19に進む。
c.音程問題アイコンIC2をクリック操作した場合
音程問題アイコンIC2をクリック操作すると、ステップSA13の判断結果が「YES」となり、ステップSA14に進み、フラグMONDAIFに「1」をセットする。そして、ステップSA15では、「音程問題」が選択された状態を表すため、回答画面RGの音程問題アイコンIC2を強調表示した後、図8のステップSA19に進む。
d.組合せ問題アイコンIC3をクリック操作した場合
組合せ問題アイコンIC3をクリック操作すると、図8のステップSA16の判断結果が「YES」となり、ステップSA17に進み、フラグMONDAIFに「2」をセットする。そして、ステップSA18では、「組合せ問題」が選択された状態を表すため、回答画面RGの組合せ問題アイコンIC3を強調表示した後、ステップSA19に進む。
e.もう一度聞くアイコンIC4をクリック操作した場合
もう一度聞くアイコンIC4をクリック操作すると、ステップSA19の判断結果が「YES」となり、図6のステップSA6を介して再生開始処理を実行する。この場合、前回再生した課題音、つまり前回と同一のポインタiassignに対応した課題データassign[iassign]が指定する出題音数分の課題音データを再生する。
f.次の問題へアイコンIC6をクリック操作した場
次の問題へアイコンIC6をクリック操作すると、ステップSA20の判断結果が「YES」になり、ステップSA21に進み、ポインタiassignをインクリメントして歩進させてから図6のステップSA6を介して再生開始処理を実行する。
g.やめるアイコンIC5をクリック操作した場合
やめるアイコンIC5をクリック操作すると、ステップSA22の判断結果が「YES」となり、メインルーチンを完了させる。
(2)再生開始処理の動作
次に、図9〜図11を参照して再生開始処理の動作を説明する。上述したメインルーチンのステップSA6を介して本処理が実行されると、CPU1は図9に示すステップSB1に処理を進め、RAM3のバッファエリアに設けられるノートオフバッファOffBufを初期化する。次に、ステップSB2では、レジスタplaystartに現時刻をストアする。次いで、ステップSB3に進むと、課題情報管理テーブルAST(図3参照)において、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。ステップSB4〜SB5では、検索ポインタiOffCnt、iOffBufCntをそれぞれゼロリセットする。続いて、ステップSB6では、ポインタiassignに対応した課題データassign[iassign][2]の出題音数iNoteと検索ポインタiOffCntとが一致したか否か、つまり出題し終えたかどうかを判断する。
出題音数iNote分の出題音を発音し終えていなければ、判断結果は「NO」になり、図10のステップ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])、音長time_gate(asNote[pNote][5])およびベロシティvelocity(asNote[pNote][8])を含む課題音のノートオンイベントを生成し、これをMIDIインタフェース4を介して電子楽器20側に送出して当該課題音を再生させる。
こうして課題音を再生させると、CPU1はステップSB10に処理を進め、処理状態を表すステイタスstatus(asNote[pNote][7])に、発音中を表す値「1」をセットする。次に、ステップSB11では、ポインタiOffBufCntをインクリメントして歩進させ、続くステップSB12では、この歩進されたポインタiOffBufCntで指定されるノートオフバッファOffBuf[iOffBufCnt]にポインタpNoteをストアする。そして、ステップSB13では、次に再生する課題音を指定するポインタpNextNote(asNote[i][6])を、ポインタpNoteにセットした後、図9のステップSB6に処理を戻す。
<発音タイミングtime_onを過ぎていない場合>
再生時刻nowTimeが発音タイミングtime_onを過ぎていない場合には、前述したステップSB8の判断結果が「NO」になり、図11のステップSB14に進む。ステップSB14では、検索ポインタiOffをゼロリセットする。次いで、ステップSB15では、検索ポインタiOffに対応するノートオフバッファoffBuf[iOff]に消音済みを表すNULLデータが格納されているかどうかを判断する。消音済みを表すNULLデータが格納されていると、判断結果は「NO」となり、図9のステップSB6に処理を戻すが、消音済みを表すNULLデータが格納されていなければ、判断結果は「YES」になり、次のステップSB16に進む。
ステップSB16では、再生時刻nowTimeが、ノートオフバッファoffBuf[iOff]に格納されるポインタpNoteにより指定される課題音データasNote[offBuf[iOff]][4]の消音タイミングtime_offを過ぎているか否かを判断する。再生時刻nowTimeが消音タイミングtime_offを過ぎていなければ、判断結果は「NO」となり、ステップSB22に進み、検索ポインタiOffを歩進させた後、上述のステップSB15に処理を戻す。一方、再生時刻nowTimeが消音タイミングtime_offを過ぎていると、上記ステップSB16の判断結果が「YES」になり、ステップSB17に進む。
ステップSB17では、音高pitch(asNote[offBuf[iOff]][2])を含む課題音のノートオフイベントを生成し、これをMIDIインタフェース4を介して電子楽器20側に送出して当該課題音を消音させる。こうして課題音を消音させると、CPU1はステップSB18に処理を進め、処理状態を表すステイタスstatus(asNote[offBuf[iOff]][7])に、発音完了を表す値「2」をセットする。次いで、ステップSB19では、検索ポインタiOffに対応するノートオフバッファoffBuf[iOff]に消音済みを表すNULLデータを登録する。そして、ステップSB20に進み、ポインタiOffBufCntをデクリメントし、続くステップSB21ではポインタiOffCntをインクリメントする。この後、ステップSB22にて検索ポインタiOffをインクリメントして歩進させた後、上述のステップSB15に処理を戻す。
このように、再生開始処理では、課題情報管理テーブルAST中でポインタiassignに対応した課題データassign[iassign]が指定する出題音数分の課題音データを課題音管理テーブルANTから読み出し、読み出した課題音データの発音タイミングtime_onに達する毎にノートオンイベントを、消音タイミングtime_offに達する毎にノートオフイベントをそれぞれ電子楽器20側に送出して課題音の発音/消音を指示し、出題音数分の再生が完了すると、図9に示すステップSB6の判断結果が「YES」となり、本処理を完了させる。
(3)回答処理の動作
次に、図12〜図14を参照して回答処理の動作を説明する。前述したメインルーチンのステップSA7(図6参照)を介して本処理が実行されると、CPU1は図12に示すステップSC1に処理を進め、本処理で使用する一時バッファを初期化する。次いで、ステップSC2では、回答音入力数をカウントする回答入力カウンタiACをゼロリセットし、続くステップSC3では、レジスタIAnStartに現時刻をストアする。ステップSC4では、回答入力カウンタiACの値が、出題音数iNote(assign[iassign][2])に一致しないかどうか、つまり出題音数iNote分の回答音が入力されたか否かを判断する。出題音数iNote分の回答音が入力された場合には、判断結果が「NO」になり、本処理を完了させるが、そうでない場合には判断結果が「YES」になり、次のステップSC5に進む。
ステップSC5では、現時刻からレジスタIAnStartにストアされた時刻を減算してレジスタNowTimeにストアする。以後、レジスタNowTimeを回答時刻NowTimeと称す。そして、ステップSC6に進むと、回答時刻NowTimeが回答制限時間limit(assign[iassign][1])を超えているか否かを判断する。回答時刻NowTimeが回答制限時間limitを超えると、判断結果は「YES」となり、本処理を完了させる。これに対し、回答時刻NowTimeが回答制限時間limitを超えなければ、判断結果が「NO」になり、図13のステップSC7に処理を進める。
ステップSC7〜SC9では、回答操作の種別を判別する。すなわち、ステップSC7では音高指定用に割当てられたキーボード6のキー操作であるか否かを判断し、ステップSC8では回答画面RGに表示される鍵盤表示エリアE1において出題音と同じ音高と判断した鍵をマウス5でクリックするマウス操作であるか否かを判断し、ステップSC9では電子楽器20側に配設される鍵盤の鍵操作で発生するMIDIノートイベント入力であるか否かを判断する。
次に、ステップSC10に進むと、CPU1は回答操作に応じて発生したイベントに含まれる音高およびベロシティを、それぞれレジスタpitch、レジスタVelにストアする。なお、回答操作をキー操作もしくはマウス操作で行った場合には予め設定される所定のベロシティを発生させるようにしている。続いて、ステップSC11では、回答操作に応じて発生したイベントがノートオンイベントであるかどうかを判断する。ノートオンイベントであると、判断結果は「YES」になり、ステップSC12に進み、フラグIsNoteOnに「1」をセットしてノートオンイベントである旨を表す。
一方、ノートオフイベントであれば、上記ステップSC11の判断結果が「NO」となり、ステップSC13に進み、フラグIsNoteOnに「0」をセットしてノートオフイベントである旨を表す。そして、ステップSC14では、フラグIsNoteOnが「1」、つまり回答操作がノートオンイベントであるかどうかを判断する。以下、回答操作が発音を指示するノートオンイベントの場合と、消音を指示するノートオフイベントの場合とに分けて動作説明を進める。
<ノートオンイベントの場合>
回答操作が発音を指示するノートオンイベントであると、ステップSC14の判断結果が「YES」になり、ステップSC15以降に処理を進める。ステップSC15〜SC19では、入力される回答音のノートオン属性を回答音データテーブルANDT(図5参照)に登録する。すなわち、ステップSC15では、レジスタpitchに格納される音高を、回答入力カウンタiACの値に対応した回答音データansNote[iAC][2](音高pitch)にストアする。ステップSC16では、回答時刻NowTimeを回答音データansNote[iAC][3](発音タイミングtime_on)にストアする。
ステップSC17では、レジスタVelに格納されるベロシティを回答音データansNote[iAC][8](ベロシティvelocity)にストアする。ステップSC18では、回答入力カウンタiACの値を回答音データansNote[iAC][0](識別番号asNote#)にストアする。ステップSC19では、ポインタiassignの値を回答音データansNote[iAC][1](課題番号assign#)にストアする。そして、この後、ステップSC20に進み、回答入力カウンタiACを歩進させてから前述したステップSC4(図12参照)に処理を戻す。
<ノートオフイベントの場合>
さて一方、回答操作が消音を指示するノートオンイベントであると、ステップSC14の判断結果が「NO」になり、CPU1は図14のステップSC21以降に処理を進め、入力される回答音のノートオフ属性を回答音データテーブルANDTに登録する。すなわち、ステップSC21では、検索ポインタiをゼロリセットし、続くステップSC22〜SC25では、回答入力カウンタiACの値に達するまで検索ポインタiを歩進させながら、回答音データテーブルANDT中でansNote[i][4](消音タイミングtime_off)が空き状態(NULL)の回答音データを検索し、該当する回答音データansNote[i][4]に、消音タイミングとなる回答時刻NowTimeをストアした後、前述したステップSC4(図12参照)に処理を戻す。
このように、回答処理では、回答制限時間limit(assign[iassign][1])以内に回答音を入力する操作(キー操作、マウス操作およびMIDI入力のいずれか)が行われると、その操作のイベントがノートオンイベントであれば、回答音のノートオン属性(音高pitch、発音タイミングtime_on、ベロシティvelocity、識別番号asNote#および課題番号assign#)を回答音データテーブルANDTに登録し、一方、ノートオフイベントであると、回答音のノートオフ属性(消音タイミングtime_off)を回答音データテーブルANDTに登録するようになっている。
(4)判定処理の動作
次に、図15〜図19を参照して判定処理の動作を説明する。前述したメインルーチンのステップSA9(図7参照)を介して本処理が実行されると、CPU1は図15に示すステップSD1に処理を進め、フラグMONDAIFの値を判定する。フラグMONDAIFの値が「0」の場合には、ステップSD2を介してリズム判定処理を実行する。フラグMONDAIFの値が「1」の場合には、ステップSD3を介して音階判定処理を実行する。フラグMONDAIFの値が「2」の場合には、ステップSD4を介して組合せ判定処理を実行する。以下、これら各判定処理の動作を述べる。
a.音階判定処理の動作
次に、図16を参照して音階判定処理の動作を説明する。図15に示すステップSD3を介して本処理が実行されると、CPU1は図16のステップSE1に処理を進め、課題情報管理テーブルASTにおいて、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。続いて、ステップSE2では、正解数をカウントするカウンタiHitCntをゼロリセットする。ステップSE3では、課題音管理テーブルANT中からポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#を読み出してレジスタasNoteにストアする。
次いで、ステップSE4では、レジスタasNoteにストアした識別番号asNote#で指定される回答音データテーブルANDT中の回答音データansNote[asNote][2]と課題音管理テーブルANT中の課題音データasNote[pNote][2]とが一致するか、すなわち回答音の音高pitchと課題音の音高pitchとが一致するか否かを判断する。回答音の音高pitchと課題音の音高pitchとが一致する正解時には判断結果が「YES」になり、ステップSE5に進み、カウンタiHitCntを歩進させた後、ステップSE6に進む。
一方、不正解時には上記ステップSE4の判断結果が「NO」になり、ステップSE6に進む。ステップSE6では、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteが、空き状態を表すデータNULLでないか否か、すなわち、全ての課題音について判定し終えたかどうかを判断する。判定し終えていなければ、判断結果は「YES」になり、ステップSE7に進み、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteをポインタpNoteにセットして次の課題音を指定するようにした後、上述のステップSE3に進む。
以後、出題音数分の回答判定を繰り返し、全ての課題音について回答判定し終えると、ステップSE6の判断結果が「NO」になり、ステップSE8に進む。ステップSE8では、カウンタiHitCntが累算した正解数と、ポインタiassignで指定される課題データassign[iassign][2]の出題音数iNoteとの比から算出される正解率(得点)をレジスタiScoreにストアする。そして、ステップSE9では、レジスタiScoreにストアされた正解率を回答画面RGの得点表示エリアE4に数値表示して本処理を終える。
b.リズム判定処理の動作
次に、図17を参照してリズム判定処理の動作を説明する。図15に示すステップSD2を介して本処理が実行されると、CPU1は図17のステップSF1に処理を進め、回答数を累算するカウンタiHitCntおよび回答操作のタイミング誤差率を累算するカウンタfSumをそれぞれゼロリセットする。次に、ステップSF2では、課題情報管理テーブルASTにおいて、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。次いで、ステップSF3では、課題音管理テーブルANT中からポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#を読み出してレジスタasNoteにストアすると共に、その識別番号asNote#を回答音データテーブルANDT中の回答音データansNote[asNote][6](対応する課題音データを示す課題音番号HitOrg)にストアする。
続いて、ステップSF4に進み、レジスタasNoteにストアした識別番号asNote#で指定される回答音データテーブルANDT中の回答音データansNote[asNote][3](発音タイミングtime_on)と、課題音管理テーブルANT中の課題音データasNote[pNote][3](発音タイミングtime_on)との差分絶対値を、課題音データasNote[pNote][5](音長time_gate)で除して得る、回答操作のタイミング誤差率をレジスタftmpにストアする。
そして、ステップSF5では、回答数を累算するカウンタiHitCntをインクリメントして歩進させ、続くステップSF6ではレジスタftmpに格納される回答操作のタイミング誤差率をカウンタfSumに加算する。次いで、ステップSF7では、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteが、空き状態を表すデータNULLでないか否か、すなわち、全ての課題音について判定し終えたかどうかを判断する。判定し終えていなければ、判断結果は「YES」になり、上述したステップSF3に処理を戻す。
以後、ステップSF3〜ステップSF8を出題音数分繰り返し、全ての課題音について回答判定し終えると、ステップSF7の判断結果が「NO」になり、ステップSF9に進む。ステップSF9では、100×(1−fSum/iHitCnt)から算出される得点をレジスタiScoreにストアし、続くステップSF10では、その得点を回答画面RGの得点表示エリアE4に数値表示して本処理を終える。
c.組合せ判定処理の動作
次に、図18〜図19を参照して組合せ判定処理の動作を説明する。前述したステップSD4(図15参照)を介して本処理が実行されると、CPU1は図18のステップSG1に処理を進め、課題情報管理テーブルASTにおいて、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。続いて、ステップSG2では、正解数をカウントするカウンタiHitCntをゼロリセットすると共に、課題音管理テーブルANT中からポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#を読み出してレジスタasNoteにストアする。
そして、ステップSG3に進み、レジスタasNoteにストアした識別番号asNote#で指定される回答音データテーブルANDT中の回答音データansNote[asNote][2]と課題音管理テーブルANT中の課題音データasNote[pNote][2]とが一致するか、すなわち回答音の音高pitchと課題音の音高pitchとが一致するか否かを判断する。
課題音が和音構成の場合には、回答音を弾く順序によっては課題音の音高pitchと一致しない状況も起こり得る。そこで、本処理では先ずステップSG3にて課題音に対する回答音の音高の一致・不一致を判断する。以下、一致した場合と、不一致の場合とに分けて動作説明を進める。
<音高一致の場合>
課題音と回答音との音高が一致すると、上記ステップSG3の判断結果は「YES」になり、ステップSG4に進む。ステップSG4では、レジスタasNoteに格納される識別番号asNote#に対応した回答音データansNote[asNote][6](対応する課題音データを示す課題音番号HitOrg)に、ポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#をストアする。次いで、ステップSG5では、正解数をカウントするカウンタiHitCntをインクリメントして歩進させ、続くステップSG6では、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteが、空き状態を表すデータNULLでないか否か、すなわち全ての課題音について判定し終えたかどうかを判断する。
判定し終えていなければ、判断結果は「YES」になり、ステップSG7に進み、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteをポインタpNoteにセットして次の課題音を指定するようにした後、上述したステップSG3に処理を戻す。
一方、全ての課題音について回答判定し終えると、上記ステップSG6の判断結果が「NO」になり、ステップSG8に進む。ステップSG8では、カウンタiHitCntが累算した正解数と、ポインタiassignで指定される課題データassign[iassign][2]の出題音数iNoteとの比から算出される正解率(得点)をレジスタiScoreにストアする。そして、ステップSG9では、レジスタiScoreにストアされた正解率を回答画面RGの得点表示エリアE4に数値表示して本処理を終える。
<音高不一致の場合>
課題音と回答音との音高が不一致の場合には、上記ステップSG3の判断結果が「NO」になり、図19のステップSG10に進む。ステップSG10では、検索ポインタKをゼロリセットする。そして、ステップSG11〜SG14では、検索ポインタKを歩進させながら、課題音番号HitOrg(ansNote[K][6])が未設定であって、しかも課題音と一致する音高の回答音データを回答音データテーブルANDT中から検索する。
つまり、和音を構成する問題音に合致する回答音であるかどうかを判断する。そして、和音を構成する問題音に合致する回答音であると、ステップSG12、SG13の各判断結果が「YES」となり、ステップSG15に進み、検索ポインタKに対応した回答音データansNote[K][6](対応する課題音データを示す課題音番号HitOrg)に、ポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#をストアする。この後、ステップSG16に進み、正解数をカウントするカウンタiHitCntをインクリメントして歩進させた後、図18のステップSG6に処理を戻す。このように、組合せ判定処理によれば、和音構成の課題音に対応した回答音について回答判定し得るようになっている。
以上のように、第1の実施形態では、回答画面RGのアイコンIC1〜IC3のクリック操作に応じて、楽音要素(リズム、音程および和音)別の課題データassign[iassign]が選択される。そして、選択された楽音要素の課題データassign[iassign]が指定する、例えば1フレーズ分の音符に対応した課題音データasNoteを課題音管理テーブルANTから順次読み出して再生する。一連の課題音を再生し終えた後、回答制限時間limit以内に回答操作が行われると、その操作で入力された回答音の属性を回答音データテーブルANDTに登録する。そして、回答入力を終えると、再生された課題音と回答入力された回答音との比較結果に基づき算出される得点を回答画面RGの得点表示エリアE4に表示するので、実際の演奏に即した形で楽音要素(リズム、音程および和音)を判別する音楽的能力を教習することが可能になっている。
C.第2の実施形態の動作
次に、図20〜図25を参照して第2の実施形態を説明する。第2の実施形態では、第1の実施形態による判定処理とは異なるバリエーションとして、「ベロシティ判定処理」、「リズム判定処理」および「音階判定処理」の各動作を説明する。
(1)ベロシティ判定処理の動作
第1の実施形態と同様、メインルーチンのステップSA9(図7参照)を介して図20に図示するベロシティ判定処理が実行されると、CPU1はステップSH1に処理を進め、回答データテーブルANDTに登録された回答音データの内、本処理の対象となる回答音データを読み出してバッファans[0]〜ans[n]にコピーする。以下、このバッファans[0]〜ans[n]の内容を回答音データans[0]〜ans[n]と称す。次に、ステップSH2に進むと、課題情報管理テーブルASTにおいて、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。
続いて、ステップSH3では、回答音数をカウントするカウンタiHitCntおよび検索ポインタiをそれぞれゼロリセットする。そして、ステップSH4では、課題音管理テーブルANT中からポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#を読み出し、これを回答音データans[i][6](対応する課題音データを示す課題音番号HitOrg)にストアする。次いで、ステップSH5では、検索ポインタiで指定される回答音データans[i][8]と課題音管理テーブルANT中の課題音データasNote[pNote][8]との比(ベロシティ比)をレジスタratio[i]にストアする。
次に、ステップSH6ではカウンタiHitCntを歩進させ、続くステップSH7では、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteが、空き状態を表すデータNULLでないか否か、すなわち、全ての課題音について判定し終えたかどうかを判断する。判定し終えていなければ、判断結果は「YES」になり、ステップSH8に進み、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteをポインタpNoteにセットして次の課題音を指定する。次いで、ステップSH9に進み、検索ポインタiを歩進させた後、上述のステップSH4に処理を戻す。
以後、ステップSH7の判断結果が「NO」になるまでステップSH4〜SH9を繰り返し、回答音毎のベロシティ比を求める。そして、出題音数分の回答判定を繰り返し、これにてベロシティ比ratio[i]〜[n]を算出し終えると、ステップSH7の判断結果が「NO」になり、ステップSH10に進む。ステップSH10では、カウンタiHitCntが累算した回答数およびベロシティ比ratio[i]〜[n]に基づきベロシティ比のばらつきの度合いを表す標準偏差を算出してレジスタfstDevにストアする。そして、ステップSH11では、(1−fstDev)×100に基づき、レジスタfstDevにストアした標準偏差から得点iScoreを算出する。ステップSH12では、得点iScoreを回答画面RGの得点表示エリアE4に数値表示して本処理を終える。これにより、実際の演奏に即した形で楽音要素(ベロシティ)を判別する音楽的能力を教習することが可能になる。
(2)リズム判定処理の動作
次に、図21を参照して第2の実施形態によるリズム判定処理の動作について説明する。第1の実施形態と同様、メインルーチンのステップSA9(図7参照)を介して本処理が実行されると、CPU1は図21のステップSJ1を実行する。ステップSJ1では、検索ポインタi、回答音数をカウントするカウンタiHitCntおよびをそれぞれゼロリセットすると共に、回答データテーブルANDTに登録された回答音データの内、本処理の対象となる回答音データをバッファans[0]〜ans[n]にコピーする。以下、このバッファans[0]〜ans[n]の内容を回答音データans[0]〜ans[n]と称す。
ステップSJ2では、課題情報管理テーブルASTにおいて、ポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。続いて、ステップSJ3では、課題音管理テーブルANT中からポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#を読み出し、これを回答音データans[i][6](対応する課題音データを示す課題音番号HitOrg)にストアする。次いで、ステップSJ4では、検索ポインタiで指定される回答音データans[i][3](発音タイミングtime_on)と、課題音管理テーブルANT中の課題音データasNote[pNote][3](発音タイミングtime_on)との差分絶対値を、課題音データasNote[pNote][5](音長time_gate)で除して得る、回答操作のタイミング誤差率をレジスタftmpにストアする。
次に、ステップSJ5に進み、カウンタiHitCntを歩進させ、続くステップSJ6では、レジスタftmpに格納される回答操作のタイミング誤差率をカウンタfSumに加算する。そして、ステップSJ7では、回答音の音長(ans[i][4]−ans[i][3])を課題音データasNote[pNote][5](音長time_gate)で除して得る、音長比gate_ratioを回答音データans[i][7]にストアする。
ステップSJ8では、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteが、空き状態を表すデータNULLでないか否か、すなわち、全ての課題音について判定し終えたかどうかを判断する。判定し終えていなければ、判断結果は「YES」になり、ステップSJ9に進み、ポインタpNoteに対応した課題音データasNote[pNote][6]のポインタpNextNoteをポインタpNoteにセットして次の課題音を指定する。次いで、ステップSJ10に進み、検索ポインタiを歩進させた後、上述のステップSJ3に処理を戻す。
以後、ステップSJ8の判断結果が「NO」になるまでステップSJ3〜SJ10を繰り返し、回答操作のタイミング誤差率を累算しつつ、各回答音毎の音長比gate_ratio(ans[i][7])を求める。そして、回答判定し終えると、ステップSJ8の判断結果が「NO」になり、ステップSJ11に進む。ステップSJ11では、回答データans[0][7]〜ans[n][7](n=i)にセットされた音長比gate_ratioのばらつきの度合いを表す標準偏差を算出してレジスタfStDevにストアする。続いて、ステップSJ12では、100×(1−fSum/iHitCnt−fStDev)に基づき、回答操作の時間的なばらつきを勘案した得点iScoreを算出する。そして、ステップSJ13では、得点iScoreを回答画面RGの得点表示エリアE4に数値表示して本処理を終える。これにより、実際の演奏に即した形で楽音要素(リズム)を判別する音楽的能力を教習することが可能になる。
(3)音階判定処理の動作
次に、図22〜図25を参照して第2の実施形態による音階判定処理の動作について説明する。第1の実施形態と同様、メインルーチンのステップSA9(図7参照)を介して本処理が実行されると、CPU1は図22のステップSK1に進み、回答データテーブルANDTに登録された回答音データの内、本処理の対象となる回答音データをバッファans[0]〜ans[n]にコピーする。以下、このバッファans[0]〜ans[n]の内容を回答音データans[0]〜ans[n]と称す。
ステップSJ2では、検索ポインタiをゼロリセットすると共に、課題情報管理テーブルAST中のポインタiassignで指定される課題データassign[iassign][3]のポインタpNoteを読み出す。次いで、ステップSJ3では、そのポインタpNoteを、検索ポインタiに対応した検知フラグHitFlg[i]にストアする。
なお、検知フラグHitFlg[i]は、後述するように、ポインタpNoteにて指定される課題音と音高/発音タイミングが一致する回答音を検出した場合に空き状態を表すNULLデータがセットされる。したがって、NULLデータがセットされた検知フラグHitFlg[i]は、課題音と音高/発音タイミングが一致する回答音を検出した状態を表すようになっている。
ステップSK4では、ポインタpNoteに対応した課題音データasNote[pNote][3](発音タイミングtime_on)をレジスタtm_Startにストアし、続くステップSK5では、ポインタpNoteに対応した課題音データasNote[pNote][4](消音タイミングtime_off)にオフセットOFFSETを加えてレジスタtm_endにストアする。ステップSK6では、検索ポインタKをゼロリセットする。
そして、図22のステップSK7〜図23のステップSK12では、検索ポインタKを歩進させながら、発音タイミングtime_on(ans[K][3])が許容範囲内(tm_Start±OFFSET)にあり、かつ課題音番号HitOrg(ans[K][6])が未設定であって、しかも課題音と一致する音高の回答音データを回答音データテーブルANDT中から検索する。
ここで、発音タイミングtime_on(ans[K][3])が許容範囲内で課題音番号HitOrg(ans[K][6])が未設定でありながら、課題音の音高と一致しない場合には、ステップSK10の判断結果が「NO」となり、ステップSK11に進み、仮検知バッファHitBuf[K]に課題音データasNote[pNote][0]の識別番号asNote#をストアする。この後、検索ポインタKを歩進させて図22のステップSK7に処理を戻す。
一方、発音タイミングtime_on(ans[K][3])が許容範囲内にあり、かつ課題音番号HitOrg(ans[K][6])が未設定であって、しかも課題音と一致する音高の回答音データが検索されると、ステップSK8〜SK10の各判断結果は「YES」になり、ステップSK13に進み、検索ポインタKに対応した回答音データans[K][6](対応する課題音データを示す課題音番号HitOrg)に、ポインタpNoteに対応した課題音データasNote[pNote][0]の識別番号asNote#をストアする。次いで、ステップSK14では、検索ポインタiに対応した検知フラグHitFlg[i]にNULLデータをセットして、課題音と音高/発音タイミングが一致する回答音を検出した状態を表した後、図24に示すステップSK15に処理を進める。
なお、図22のステップSK7〜図23のステップSK12において、検索ポインタKが回答音入力数iACを超えた場合、もしくは消音タイミングtime_off(ans[K][4])が判定値(レジスタtm_end)を過ぎた回答音を読み出した場合には、図22のステップSK7の判断結果が「NO」になり、これら場合も図24のステップSK15に処理を進める。
ステップSK15では、検索ポインタiに対応した検知フラグHitFlg[i]にNULLデータがセットされているか否か、すなわち課題音と音高および発音タイミングが一致する回答音を検出したかどうかを判断する。検出していない場合には、判断結果が「NO」になり、後述するステップSK21に処理を進める。これに対し、課題音と音高および発音タイミングが一致する回答音を検出すると、判断結果は「YES」となり、ステップSK16に進む。そして、ステップSK16〜SK20では、回答音入力数iACを超えるまで当該検索ポインタKを歩進させながら、課題音データasNote[pNote][0]の識別番号asNote#がストアされた仮検知バッファHitBuf[K]を検索し、該当する仮検知バッファHitBuf[K]にNULLデータをストアしてバッファクリアを行い、これが完了すると、ステップSH17の判断結果が「NO」になり、ステップSK21に進む。
ステップSK21では、ポインタpNoteに対応した課題音データasNote[pNote][6](ポインタpNextNote)が、空き状態を表すデータNULLでないか否か、すなわち、全ての課題音について判定し終えたかどうかを判断する。判定し終えていなければ、判断結果は「YES」になり、ステップSK22に進み、課題音データasNote[pNote][6]のポインタpNextNoteをポインタpNoteにセットして次の課題音を指定する。次いで、ステップSK23では、検索ポインタiをインクリメントして歩進させた後、図22のステップSK3に処理を戻す。以後、前述したステップSK3〜SK23を繰り返し実行して全ての課題音について回答判定し終えると、上記ステップSK21の判断結果が「NO」になり、図25のステップSK24に進む。
ステップSK24〜SK29では、出題音数iNote(assign[i][2])を超えるまで検索ポインタiを歩進させながら、NULLデータがセットされた検知フラグHitFlg[i]を検索する毎に、正解数をカウントするカウンタiHitCntをインクリメントする。つまり、適正な発音タイミングで正しく回答された回答音の数を累算する。そして、検索ポインタiが出題音数iNote(assign[i][2])を超えると、ステップSK26の判断結果が「NO」となり、ステップSK30に進み、カウンタiHitCntが累算した正解数と、ポインタiassignで指定される課題データassign[iassign][2]の出題音数iNoteとの比から算出される正解率(得点)をレジスタiScoreにストアし、続くステップSK31ではレジスタiScoreにストアされた正解率を回答画面RGの得点表示エリアE4に数値表示して本処理を終える。これにより、実際の演奏に即した形で楽音要素(発音タイミング、音高)を判別する音楽的能力を教習することが可能になる。
第1の実施形態の全体構成を示すブロック図である。 回答画面RGの一例を示す図である。 課題情報管理テーブルASTに登録される課題情報データassignのデータ構造を示す図である。 課題音管理テーブルANTに登録される課題音データasNoteのデータ構造を示す図である。 回答音データテーブルANDTに登録される回答音データansNoteのデータ構造を示す図である。 メインルーチンの動作を示すフローチャートである。 メインルーチンの動作を示すフローチャートである。 メインルーチンの動作を示すフローチャートである。 再生開始処理の動作を示すフローチャートである。 再生開始処理の動作を示すフローチャートである。 再生開始処理の動作を示すフローチャートである。 回答処理の動作を示すフローチャートである。 回答処理の動作を示すフローチャートである。 回答処理の動作を示すフローチャートである。 判定処理の動作を示すフローチャートである。 音階判定処理の動作を示すフローチャートである。 リズム判定処理の動作を示すフローチャートである。 組合せ判定処理の動作を示すフローチャートである。 組合せ判定処理の動作を示すフローチャートである。 第2の実施形態によるベロシティ判定処理の動作を示すフローチャートである。 第2の実施形態によるリズム判定処理の動作を示すフローチャートである。 第2の実施形態による音階判定処理の動作を示すフローチャートである。 第2の実施形態による音階判定処理の動作を示すフローチャートである。 第2の実施形態による音階判定処理の動作を示すフローチャートである。 第2の実施形態による音階判定処理の動作を示すフローチャートである。
符号の説明
1 CPU
2 ROM
3 RAM
4 MIDIインタフェース
5 マウス
6 キーボード
7 表示部
10 DTM装置
20 電子楽器

Claims (10)

  1. 課題音を記憶する課題音記憶手段と、
    教習対象とする楽音要素を選択する選択手段と、
    この選択手段により選択された楽音要素に対応付けられた一連の課題音を前記課題音記憶手段から読み出し、それら課題音の発音を指示して出題する出題手段と、
    この出題手段により出題された一連の課題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、
    前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連の課題音と前記回答音記憶手段に記憶された一連の回答音とを、前記選択手段により選択された楽音要素について比較判定した結果を提示する比較判定手段と
    を具備することを特徴とする音楽教習装置。
  2. 課題音を記憶する課題音記憶手段と、
    教習対象とする楽音要素を選択する選択手段と、
    この選択手段が楽音要素中の音高を選択した場合、前記課題音記憶手段に記憶される課題音の内の一連の音程問題音の発音を指示して出題する出題手段と、
    この出題手段により出題された一連の音程問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、
    前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連の音程問題音と前記回答音記憶手段に記憶された一連の回答音との音高を比較判定した結果を提示する比較判定手段と
    を具備することを特徴とする音楽教習装置。
  3. 課題音を記憶する課題音記憶手段と、
    教習対象とする楽音要素を選択する選択手段と、
    この選択手段が楽音要素中のリズムを選択した場合、前記課題音記憶手段に記憶される課題音の内の一連のリズム問題音の発音を指示して出題する出題手段と、
    この出題手段により出題された一連のリズム問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、
    前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連のリズム問題音と前記回答音記憶手段に記憶された一連の回答音との音高および発音タイミングを比較判定した結果を提示する比較判定手段と
    を具備することを特徴とする音楽教習装置。
  4. 課題音を記憶する課題音記憶手段と、
    教習対象とする楽音要素を選択する選択手段と、
    この選択手段が楽音要素中の和音を選択した場合、前記課題音記憶手段に記憶される課題音の内の一連の和音問題音の発音を指示して出題する出題手段と、
    この出題手段により出題された一連の和音問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、
    前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連の和音問題音と前記回答音記憶手段に記憶された一連の回答音とを、和音を構成する和音構成音毎に音高および発音タイミングを比較判定した結果を提示する比較判定手段と
    を具備することを特徴とする音楽教習装置。
  5. 課題音を記憶する課題音記憶手段と、
    教習対象とする楽音要素を選択する選択手段と、
    この選択手段が楽音要素中のベロシティを選択した場合、前記課題音記憶手段に記憶される課題音の内の一連のベロシティ問題音の発音を指示して出題する出題手段と、
    この出題手段により出題された一連のベロシティ問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を記憶する回答音記憶手段と、
    前記課題音記憶手段に記憶される課題音の内、前記出題手段が出題した一連のベロシティ問題音と前記回答音記憶手段に記憶された一連の回答音とのベロシティを比較判定した結果を提示する比較判定手段と
    を具備することを特徴とする音楽教習装置。
  6. 教習対象とする楽音要素を選択する選択過程と、
    この選択過程にて選択された楽音要素に対応付けられた一連の課題音を、課題音を記憶する課題音記憶テーブルから読み出し、それら課題音の発音を指示して出題する出題過程と、
    この出題過程にて出題された一連の課題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、 前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連の課題音と前記回答音記憶テーブルに記憶された一連の回答音とを、前記選択過程で選択された楽音要素について比較判定した結果を提示する比較判定過程と をコンピュータで実行させることを特徴とする音楽教習プログラム。
  7. 教習対象とする楽音要素を選択する選択過程と、
    この選択過程で楽音要素中の音高が選択された場合、課題音記憶テーブルに記憶される課題音の内の一連の音程問題音の発音を指示して出題する出題過程と、 この出題過程にて出題された一連の音程問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、
    前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連の音程問題音と前記回答音記憶テーブルに記憶された一連の回答音との音高を比較判定した結果を提示する比較判定過程と
    をコンピュータで実行させることを特徴とする音楽教習プログラム。
  8. 教習対象とする楽音要素を選択する選択過程と、
    この選択過程で楽音要素中のリズムが選択された場合、課題音記憶テーブルに記憶される課題音の内の一連のリズム問題音の発音を指示して出題する出題過程と、
    この出題過程にて出題された一連のリズム問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、
    前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連のリズム問題音と前記回答音記憶テーブルに記憶された一連の回答音との音高および発音タイミングを比較判定した結果を提示する比較判定過程と
    をコンピュータで実行させることを特徴とする音楽教習プログラム。
  9. 教習対象とする楽音要素を選択する選択過程と、
    この選択過程で楽音要素中の和音が選択された場合、課題音記憶テーブルに記憶される課題音の内の一連の和音問題音の発音を指示して出題する出題過程と、 この出題過程にて出題された一連の和音問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、
    前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連の和音問題音と前記回答音記憶テーブルに記憶された一連の回答音とを、和音を構成する和音構成音毎に音高および発音タイミングを比較判定した結果を提示する比較判定過程と
    をコンピュータで実行させることを特徴とする音楽教習プログラム。
  10. 教習対象とする楽音要素を選択する選択過程と、
    この選択過程で楽音要素中のベロシティが選択された場合、課題音記憶テーブルに記憶される課題音の内の一連のベロシティ問題音の発音を指示して出題する出題過程と、
    この出題過程にて出題された一連のベロシティ問題音が再生された後、ユーザ操作に応じて入力される一連の回答音を回答音記憶テーブルに記憶する回答音記憶過程と、
    前記課題音記憶テーブルに記憶される課題音の内、前記出題過程で出題した一連のベロシティ問題音と前記回答音記憶テーブルに記憶された一連の回答音とのベロシティを比較判定した結果を提示する比較判定過程と
    をコンピュータで実行させることを特徴とする音楽教習プログラム。
JP2003281770A 2003-07-29 2003-07-29 音楽教習装置および音楽教習プログラム Pending JP2005049628A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003281770A JP2005049628A (ja) 2003-07-29 2003-07-29 音楽教習装置および音楽教習プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003281770A JP2005049628A (ja) 2003-07-29 2003-07-29 音楽教習装置および音楽教習プログラム

Publications (1)

Publication Number Publication Date
JP2005049628A true JP2005049628A (ja) 2005-02-24

Family

ID=34267183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003281770A Pending JP2005049628A (ja) 2003-07-29 2003-07-29 音楽教習装置および音楽教習プログラム

Country Status (1)

Country Link
JP (1) JP2005049628A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242131A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 能力評価システムおよび能力評価プログラム
JP2008242129A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 演奏評価システムおよび演奏評価プログラム
JP2008242130A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 演奏評価システムおよび演奏評価プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008242131A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 能力評価システムおよび能力評価プログラム
JP2008242129A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 演奏評価システムおよび演奏評価プログラム
JP2008242130A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 演奏評価システムおよび演奏評価プログラム

Similar Documents

Publication Publication Date Title
US4831654A (en) Apparatus for making and editing dictionary entries in a text to speech conversion system
JPS58195957A (ja) 音声によるプログラム実行方式
US20050172780A1 (en) Fingering guide displaying apparatus for musical instrument and computer program therefor
JP2005049628A (ja) 音楽教習装置および音楽教習プログラム
JP4475383B2 (ja) 音楽教習装置および音楽教習プログラム
JP4178549B2 (ja) 音楽教習装置および音楽教習プログラム
JP3637577B2 (ja) 楽音生成方法
JP4821801B2 (ja) 音声データ処理装置及びプログラムを記録した媒体
JP4178553B2 (ja) 音楽教習装置および音楽教習プログラム
JP4301126B2 (ja) 運指情報生成装置、及びプログラム
JP4221567B2 (ja) 演奏練習装置、演奏練習方法および演奏練習プログラム
JP4239937B2 (ja) 作曲支援装置、及びプログラム
JP3463515B2 (ja) 楽譜表示方法、楽譜表示装置、及びプログラムを記録した記録媒体
JPH10319955A (ja) 音声データ処理装置及びデータ処理プログラムを記録した媒体
JP4482889B2 (ja) 運指情報生成装置および運指情報生成処理プログラム
JP2005148269A (ja) 音楽教習装置および音楽教習プログラム
JP4228346B2 (ja) 演奏支援情報生成装置および演奏支援情報生成プログラム
JP7107720B2 (ja) 運指表示プログラム
JP4148755B2 (ja) 音声データ処理装置及びデータ処理プログラムを記録した媒体
JP4696808B2 (ja) 臨時記号表示装置および臨時記号表示プログラム
JP4816930B2 (ja) 演奏支援情報生成装置および演奏支援情報生成プログラム
JP3932038B2 (ja) 演奏練習装置および演奏練習プログラム
JP4774997B2 (ja) 楽音編集装置および楽音編集処理のプログラム
JP3551452B2 (ja) カラオケ装置
JP2005031458A (ja) 演奏支援装置および演奏支援プログラム