JPH0572964A - 音楽装置 - Google Patents
音楽装置Info
- Publication number
- JPH0572964A JPH0572964A JP3232044A JP23204491A JPH0572964A JP H0572964 A JPH0572964 A JP H0572964A JP 3232044 A JP3232044 A JP 3232044A JP 23204491 A JP23204491 A JP 23204491A JP H0572964 A JPH0572964 A JP H0572964A
- Authority
- JP
- Japan
- Prior art keywords
- key
- rhythm
- question
- user
- answer
- 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.)
- Withdrawn
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
(57)【要約】
【目的】 自動演奏されるリズムパターンのリズム名を
ユーザに解答させる音楽装置に関し、リズム感の学習能
力を効率的に向上させ、そのときのレベルにあった問題
/解答動作を可能にし、レベルの高い出題も可能とする
ことにある 【構成】 「このリズムなあに?」というメッセージの
後に、問題となるリズムパターンが自動演奏される。ユ
ーザは、そのリズム名に対応する鍵を20秒以内に押鍵
する。出題されたリズムパターンのリズム名とユーザが
解答したリズム名が一致すれば、エンドメッセージの
「せいかい」、「つぎのもんだい」が発音され、つぎの
リズムパターンが出題される。正解が連続して連続正解
数が規定値を超すと、解答が比較的に容易なリズムパタ
ーンから構成される出題範囲Iから、解答が比較的に難
しいリズムパターンを含む出題範囲IIに変更されて出
題される。解答が間違っていれば、「ざんねん、もうい
ちどね」のメッセージの後、連続正解数がクリアされ、
間違ったそのリズムパターンが再び出題される。
ユーザに解答させる音楽装置に関し、リズム感の学習能
力を効率的に向上させ、そのときのレベルにあった問題
/解答動作を可能にし、レベルの高い出題も可能とする
ことにある 【構成】 「このリズムなあに?」というメッセージの
後に、問題となるリズムパターンが自動演奏される。ユ
ーザは、そのリズム名に対応する鍵を20秒以内に押鍵
する。出題されたリズムパターンのリズム名とユーザが
解答したリズム名が一致すれば、エンドメッセージの
「せいかい」、「つぎのもんだい」が発音され、つぎの
リズムパターンが出題される。正解が連続して連続正解
数が規定値を超すと、解答が比較的に容易なリズムパタ
ーンから構成される出題範囲Iから、解答が比較的に難
しいリズムパターンを含む出題範囲IIに変更されて出
題される。解答が間違っていれば、「ざんねん、もうい
ちどね」のメッセージの後、連続正解数がクリアされ、
間違ったそのリズムパターンが再び出題される。
Description
【0001】
【産業上の利用分野】本発明は、自動演奏される特定の
リズムパターンをユーザに聴かせてそのリズム名を解答
させる機能を有する音楽装置に関する。
リズムパターンをユーザに聴かせてそのリズム名を解答
させる機能を有する音楽装置に関する。
【0002】
【従来の技術】従来、予め用意されたいくつかのリズム
パターンの問題のなかからランダムに出題されるリズム
パターンを自動演奏してユーザに聴かせ、そのリズム名
を解答させる、一種のゲーム機能を有する音楽装置があ
った。
パターンの問題のなかからランダムに出題されるリズム
パターンを自動演奏してユーザに聴かせ、そのリズム名
を解答させる、一種のゲーム機能を有する音楽装置があ
った。
【0003】このような装置は、ユーザの解答の正誤を
判定し、その判定結果を音声などで知らせるもので、ユ
ーザがそれをゲーム機として遊ぶうちに、リズム感の能
力が自然に向上するメリットを有する。
判定し、その判定結果を音声などで知らせるもので、ユ
ーザがそれをゲーム機として遊ぶうちに、リズム感の能
力が自然に向上するメリットを有する。
【0004】
【発明が解決しようとする課題】しかし、このような従
来例においては、ユーザが正解を解答できない限り、い
つまでたってもつぎのリズムパターンの問題に進むこと
ができないという問題点を有していた。
来例においては、ユーザが正解を解答できない限り、い
つまでたってもつぎのリズムパターンの問題に進むこと
ができないという問題点を有していた。
【0005】また、ユーザのリズム感の能力が上達して
きても、同様のレベルのリズムパターンの問題しか出題
されず、一定以上の上達は望めないという問題点も有し
ていた。
きても、同様のレベルのリズムパターンの問題しか出題
されず、一定以上の上達は望めないという問題点も有し
ていた。
【0006】以上のような問題点のために、結局最後
は、ゲーム的興味が希薄になってしまうという問題点も
発生していた。本発明の課題は、ゲームを通してリズム
感の学習能力を効率的に向上させ、そのときのレベルに
あった問題/解答動作を可能にし、さらにレベルの高い
出題も可能とすることにある。
は、ゲーム的興味が希薄になってしまうという問題点も
発生していた。本発明の課題は、ゲームを通してリズム
感の学習能力を効率的に向上させ、そのときのレベルに
あった問題/解答動作を可能にし、さらにレベルの高い
出題も可能とすることにある。
【0007】
【課題を解決するための手段】本発明の第1の態様は、
次のような構成を有する。まず、予め用意された複数種
類のリズムパターンのうち任意のものを問題としてラン
ダムに選択し自動演奏して出題する問題出題手段を有す
る。
次のような構成を有する。まず、予め用意された複数種
類のリズムパターンのうち任意のものを問題としてラン
ダムに選択し自動演奏して出題する問題出題手段を有す
る。
【0008】つぎに、ユーザにリズムパターンの問題に
対応するリズム名を入力させる入力手段を有する。つぎ
に、問題出題手段がリズムパターンの問題の自動演奏を
開始してからユーザが入力手段によってリズムパターン
の問題に対応するリズム名を入力するまでの待ち時間を
計測する待ち時間計測手段を有する。
対応するリズム名を入力させる入力手段を有する。つぎ
に、問題出題手段がリズムパターンの問題の自動演奏を
開始してからユーザが入力手段によってリズムパターン
の問題に対応するリズム名を入力するまでの待ち時間を
計測する待ち時間計測手段を有する。
【0009】また、問題出題手段が出題したリズムパタ
ーンのリズム名とユーザが入力手段によって入力したリ
ズム名とを比較してユーザによる解答動作の正誤を判定
しその判定結果をユーザに応答し、その場合に、待ち時
間計測手段が計測する待ち時間が所定の制限時間を超過
したときにはユーザによる解答動作を不正解と判定する
正誤判定手段を有する。
ーンのリズム名とユーザが入力手段によって入力したリ
ズム名とを比較してユーザによる解答動作の正誤を判定
しその判定結果をユーザに応答し、その場合に、待ち時
間計測手段が計測する待ち時間が所定の制限時間を超過
したときにはユーザによる解答動作を不正解と判定する
正誤判定手段を有する。
【0010】本発明の第2の態様は、次のような構成を
有する。まず、第1の態様の場合と同様な入力手段と、
第1の態様における待ち時間に関する機能を除いた機能
を有する正誤判定手段を有する。
有する。まず、第1の態様の場合と同様な入力手段と、
第1の態様における待ち時間に関する機能を除いた機能
を有する正誤判定手段を有する。
【0011】つぎに、予め用意されたそれぞれ複数種類
からなる難易度の異なる複数組のリズムパターンのうち
所定の難易度の組のなかの任意のものを問題としてラン
ダムに選択し自動演奏して出題する問題出題手段を有す
る。
からなる難易度の異なる複数組のリズムパターンのうち
所定の難易度の組のなかの任意のものを問題としてラン
ダムに選択し自動演奏して出題する問題出題手段を有す
る。
【0012】さらに、正誤判定手段がユーザによる解答
動作を正解と判定する頻度に基づいて、問題出題手段が
選択する難易度の異なるリズムパターンの組を制御する
難易度選択制御手段を有する。同手段は、例えば正誤判
定手段がユーザによる解答動作を所定回数以上連続して
正解と判定した場合に、問題出題手段に前回の出題時よ
り難易度の高いリズムパターンの組を選択させる。
動作を正解と判定する頻度に基づいて、問題出題手段が
選択する難易度の異なるリズムパターンの組を制御する
難易度選択制御手段を有する。同手段は、例えば正誤判
定手段がユーザによる解答動作を所定回数以上連続して
正解と判定した場合に、問題出題手段に前回の出題時よ
り難易度の高いリズムパターンの組を選択させる。
【0013】
【作用】本発明の第1の態様によれば、ユーザがリズム
パターンの問題に対する解答動作を行う場合に、所定の
制限時間以上解答となるリズム名を入力しないと、正誤
判定手段が待ち時間計測手段での計測結果に基づいてユ
ーザによる解答動作を不正解と判定する。これにより、
リズムパターンの問題の出題を先に進めることができ
る。
パターンの問題に対する解答動作を行う場合に、所定の
制限時間以上解答となるリズム名を入力しないと、正誤
判定手段が待ち時間計測手段での計測結果に基づいてユ
ーザによる解答動作を不正解と判定する。これにより、
リズムパターンの問題の出題を先に進めることができ
る。
【0014】本発明の第2の態様によれば、例えばユー
ザによる正解の解答の頻度が多くなると、難易度選択制
御手段が、問題出題手段が難易度の高いリズムパターン
の組を選択するように制御する。これにより、ユーザの
リズム感に関する能力を段階的に向上させることができ
る。
ザによる正解の解答の頻度が多くなると、難易度選択制
御手段が、問題出題手段が難易度の高いリズムパターン
の組を選択するように制御する。これにより、ユーザの
リズム感に関する能力を段階的に向上させることができ
る。
【0015】
【実施例】以下、図面を参照しながら本発明の実施例に
つき詳細に説明する。全体構成 図1は本発明の実施例の全体構成図である。
つき詳細に説明する。全体構成 図1は本発明の実施例の全体構成図である。
【0016】図1において、CPU(中央演算制御装
置)101はプログラムメモリ102に書き込まれたプ
ログラムに従って、ROMであるデータメモリ107に
格納された出題問題に関する鍵のキーコード(単音のキ
ーコードまたは和音のキーコードの組)や、リズムパタ
ーンなどのデータに基づく問題を出題する。
置)101はプログラムメモリ102に書き込まれたプ
ログラムに従って、ROMであるデータメモリ107に
格納された出題問題に関する鍵のキーコード(単音のキ
ーコードまたは和音のキーコードの組)や、リズムパタ
ーンなどのデータに基づく問題を出題する。
【0017】出題時の単音、和音、またはリズムなどの
楽音は、CPU101が楽音メモリ105から楽音信号
を読み出し、それがD/A変換器(DAC)108でア
ナログ信号に変換され、サウンドシステム109から放
音されることによって発音される。
楽音は、CPU101が楽音メモリ105から楽音信号
を読み出し、それがD/A変換器(DAC)108でア
ナログ信号に変換され、サウンドシステム109から放
音されることによって発音される。
【0018】また、出題問題およびユーザーの解答に対
する音声メッセージは、CPU101が人声音メモリ1
06にADPCM方式で格納されたによる人声音信号を
読み出し、それがD/A変換器(DAC)108でアナ
ログ信号に変換され、サウンドシステム109から放音
されることによって発声される。
する音声メッセージは、CPU101が人声音メモリ1
06にADPCM方式で格納されたによる人声音信号を
読み出し、それがD/A変換器(DAC)108でアナ
ログ信号に変換され、サウンドシステム109から放音
されることによって発声される。
【0019】モードスイッチ104は、図2に示される
ような構成を有し、レバーにより、パワーオフのための
POWER OFFポジションのほか、通常の鍵盤演奏
を行うためのPLAYモードポジション、本発明に特に
関連し、単音、和音、またはリズムの練習を行えるGA
MEモードポジションが選択される。
ような構成を有し、レバーにより、パワーオフのための
POWER OFFポジションのほか、通常の鍵盤演奏
を行うためのPLAYモードポジション、本発明に特に
関連し、単音、和音、またはリズムの練習を行えるGA
MEモードポジションが選択される。
【0020】上述の構成を有する本発明の実施例は、モ
ードスイッチ104によって選択されるGAMEモード
の動作に特徴がある。以下、このGAMEモードの動作
について、第1〜第3の3つの実施例について説明す
る。GAMEモードの第1の実施例 まず、GAMEモードの第1の実施例につき説明する。 <第1の実施例の概要動作の説明>GAMEモードの第
1の実施例では、ユーザは、音感ゲームの一種である単
音の音高を当てるゲームを楽しむことができる。この場
合、ユーザーは、電子鍵盤楽器から問題として発音され
る単音を聴き、それと同じ音高の音を押鍵することによ
って解答する。
ードスイッチ104によって選択されるGAMEモード
の動作に特徴がある。以下、このGAMEモードの動作
について、第1〜第3の3つの実施例について説明す
る。GAMEモードの第1の実施例 まず、GAMEモードの第1の実施例につき説明する。 <第1の実施例の概要動作の説明>GAMEモードの第
1の実施例では、ユーザは、音感ゲームの一種である単
音の音高を当てるゲームを楽しむことができる。この場
合、ユーザーは、電子鍵盤楽器から問題として発音され
る単音を聴き、それと同じ音高の音を押鍵することによ
って解答する。
【0021】つぎに、そのゲームの概要を、図3の概念
図を用いて説明する。まず、各種初期設定が行われた後
(ステップS301)、ユーザーがモードスイッチ10
4をGAMEモード(図2参照)にすると、電子楽器か
ら「この音なあに?」という音声によるメッセージが発
声されるのにひきつづき(ステップS302)、音高の
基準となる各音階、例えばハ長調音階のド、レ、ミ、フ
ァ、ソ、ラ、シ、ド(鍵盤のC4 、D4 、E4 、F4 、
G4 、A4 、B4 、C5 に相当する)を構成する各音階
音である楽音が発音される(ステップS303)。ユー
ザーは、これらの各音階音を聴くことにより、出題され
る各楽音(以下、これを「問題音」と呼ぶ)に対して解
答を行うときの相対音感を得ることができる。
図を用いて説明する。まず、各種初期設定が行われた後
(ステップS301)、ユーザーがモードスイッチ10
4をGAMEモード(図2参照)にすると、電子楽器か
ら「この音なあに?」という音声によるメッセージが発
声されるのにひきつづき(ステップS302)、音高の
基準となる各音階、例えばハ長調音階のド、レ、ミ、フ
ァ、ソ、ラ、シ、ド(鍵盤のC4 、D4 、E4 、F4 、
G4 、A4 、B4 、C5 に相当する)を構成する各音階
音である楽音が発音される(ステップS303)。ユー
ザーは、これらの各音階音を聴くことにより、出題され
る各楽音(以下、これを「問題音」と呼ぶ)に対して解
答を行うときの相対音感を得ることができる。
【0022】つぎに、電子楽器からは、乱数によって決
定される音高を有し、ユーザーが解答すべき単音の問題
音(楽音)が1つ作成されて、出題すなわち発音される
(ステップS304、S305)。
定される音高を有し、ユーザーが解答すべき単音の問題
音(楽音)が1つ作成されて、出題すなわち発音される
(ステップS304、S305)。
【0023】その後、電子楽器は押鍵待機状態になり、
ユーザーは上述の問題音を聴いて、その単音と等しい音
高を有すると判断した鍵を20秒以内に押鍵する(ステ
ップS306)。
ユーザーは上述の問題音を聴いて、その単音と等しい音
高を有すると判断した鍵を20秒以内に押鍵する(ステ
ップS306)。
【0024】その結果、ユーザーが聴いた単音と押鍵し
た鍵の音高が合っていれば「せいかい」という音声のエ
ンドメッセージが発音され、そのつぎに、正解音と同じ
音高で、階名、例えば「ドー」という内容の音声が発音
される。その後、「つぎのもんだい」という音声による
メッセージが発音され(ステップS308)、前回と同
じように単音の新たな出題が繰り返される。
た鍵の音高が合っていれば「せいかい」という音声のエ
ンドメッセージが発音され、そのつぎに、正解音と同じ
音高で、階名、例えば「ドー」という内容の音声が発音
される。その後、「つぎのもんだい」という音声による
メッセージが発音され(ステップS308)、前回と同
じように単音の新たな出題が繰り返される。
【0025】その結果、連続して正解が出れば、連続正
解数がカウントアップされる(ステップS310)。こ
のようにして、連続正解数が規定値を超すと、単音の出
題範囲が広げられ、例えば、いままでは鍵盤の白鍵のみ
に相当する範囲Iであったのが、つぎは白鍵と黒鍵を含
む範囲IIから出題されることになる(ステップS31
2)。
解数がカウントアップされる(ステップS310)。こ
のようにして、連続正解数が規定値を超すと、単音の出
題範囲が広げられ、例えば、いままでは鍵盤の白鍵のみ
に相当する範囲Iであったのが、つぎは白鍵と黒鍵を含
む範囲IIから出題されることになる(ステップS31
2)。
【0026】また、ユーザーが聴いた単音と押鍵した鍵
の音高が間違っていれば、「ざんねん、もういちどね」
という音声によるメッセージが発音され、今までに連続
して正解があっても、その連続正解数がクリアされる
(ステップS313)。
の音高が間違っていれば、「ざんねん、もういちどね」
という音声によるメッセージが発音され、今までに連続
して正解があっても、その連続正解数がクリアされる
(ステップS313)。
【0027】その後、間違った同じ問題が再び出題され
(ステップS305)、前回までと同様にゲームが続け
られる。上述した概要に基づく第1の実施例の具体的な
動作につき、図4〜図9、図11〜図16の動作フロー
チャートと、図10の説明図に沿って説明する。
(ステップS305)、前回までと同様にゲームが続け
られる。上述した概要に基づく第1の実施例の具体的な
動作につき、図4〜図9、図11〜図16の動作フロー
チャートと、図10の説明図に沿って説明する。
【0028】なお、上記各動作フローチャートによる動
作は、図1において、CPU101がプログラムメモリ
102に記憶された制御プログラムを実行する動作とし
て実現される。また、フロー中で使用されるフラグ、変
数またはレジスタは、図1のCPU101内の特には図
示しないワークメモリに記憶されている。 <第1の実施例の具体的動作におけるメインフローの動
作説明>図4は、メインフローである。
作は、図1において、CPU101がプログラムメモリ
102に記憶された制御プログラムを実行する動作とし
て実現される。また、フロー中で使用されるフラグ、変
数またはレジスタは、図1のCPU101内の特には図
示しないワークメモリに記憶されている。 <第1の実施例の具体的動作におけるメインフローの動
作説明>図4は、メインフローである。
【0029】まず、電源がオンされると、POWER
ONイニシャル処理が実行される(ステップS40
1)。ここでは、図1の各種メモリやCPU101内の
レジスタあるいはカウンタなどが初期化されて、鍵盤1
03が押鍵可能状態(キーボードON)にされる。
ONイニシャル処理が実行される(ステップS40
1)。ここでは、図1の各種メモリやCPU101内の
レジスタあるいはカウンタなどが初期化されて、鍵盤1
03が押鍵可能状態(キーボードON)にされる。
【0030】つぎに、図1の鍵盤103およびモードス
イッチ104(図2参照)が走査され、それらの状態が
CPU101に取り込まれる(ステップS402)。モ
ードスイッチ104(図2参照)が、GAME位置また
はPLAY位置のいずれかよりPOWER OFF位置
に切り換えられたときは、電源オフのためのPOWER
OFF処理が実行される(ステップS403)。
イッチ104(図2参照)が走査され、それらの状態が
CPU101に取り込まれる(ステップS402)。モ
ードスイッチ104(図2参照)が、GAME位置また
はPLAY位置のいずれかよりPOWER OFF位置
に切り換えられたときは、電源オフのためのPOWER
OFF処理が実行される(ステップS403)。
【0031】また、モードスイッチ104が、POWE
R OFF位置またはPLAYモード位置のいずれかか
ら、GAME位置に切り換えられたときは、ゲームモー
ド開始時の初期設定などを行うGAME MODE I
N処理(ステップS404)が実行される。
R OFF位置またはPLAYモード位置のいずれかか
ら、GAME位置に切り換えられたときは、ゲームモー
ド開始時の初期設定などを行うGAME MODE I
N処理(ステップS404)が実行される。
【0032】GAME MODE IN処理は、図5に
示されている。図5において、まず、各レジスタが初期
化される(ステップS501)。つぎに、モードを示す
変数MODEの内容がGAME MODEに設定される
(ステップS502)。このフラグの内容は、後述する
図4のステップS407または図6のステップS601
などで判定される。
示されている。図5において、まず、各レジスタが初期
化される(ステップS501)。つぎに、モードを示す
変数MODEの内容がGAME MODEに設定される
(ステップS502)。このフラグの内容は、後述する
図4のステップS407または図6のステップS601
などで判定される。
【0033】つづいて、GAME MODE IN中フ
ラグがオン(ON)にされる(ステップS503)。こ
のフラグの内容は、後述する図6のステップS602で
判定される。
ラグがオン(ON)にされる(ステップS503)。こ
のフラグの内容は、後述する図6のステップS602で
判定される。
【0034】つぎに、出題範囲を示す変数の内容が範囲
Iに設定される。この範囲Iは、図1の鍵盤103上の
白鍵のみに対応する(ステップS504)。つぎに、連
続正解数を示す変数の内容が0に初期設定される(ステ
ップS505)。
Iに設定される。この範囲Iは、図1の鍵盤103上の
白鍵のみに対応する(ステップS504)。つぎに、連
続正解数を示す変数の内容が0に初期設定される(ステ
ップS505)。
【0035】その後、ゲームモード開始時のメッセージ
(MODE IN MES.)として、人声メモリ10
6から、「この音なあに?」という内容のADPCM方
式による音声データが読み出され(ステップS50
6)、アタック処理により、そのメッセージが発音され
る(ステップS507)。アタック処理とは、図1のC
PU101が、楽音メッセージ105または人声メモリ
106から、PCM方式による楽音データまたはADP
CM方式による音声データを読み出して、D/A変換器
108に順次出力する処理である。
(MODE IN MES.)として、人声メモリ10
6から、「この音なあに?」という内容のADPCM方
式による音声データが読み出され(ステップS50
6)、アタック処理により、そのメッセージが発音され
る(ステップS507)。アタック処理とは、図1のC
PU101が、楽音メッセージ105または人声メモリ
106から、PCM方式による楽音データまたはADP
CM方式による音声データを読み出して、D/A変換器
108に順次出力する処理である。
【0036】上述の動作で示される図4のステップS4
04のGAME MODE IN処理に対して、モード
スイッチ104(図2参照)が、GAME位置からPL
AY位置に切り換えられたときは、ゲームモードを終了
するためのGAME MODEリリース処理(ステップ
S405)が実行されてから、電子楽器の演奏を行うた
めの通常PLAY処理(ステップS406)が実行され
る。
04のGAME MODE IN処理に対して、モード
スイッチ104(図2参照)が、GAME位置からPL
AY位置に切り換えられたときは、ゲームモードを終了
するためのGAME MODEリリース処理(ステップ
S405)が実行されてから、電子楽器の演奏を行うた
めの通常PLAY処理(ステップS406)が実行され
る。
【0037】以下、モードスイッチ104がGAME位
置にされることにより、ゲームモードが選択されたとき
の動作を説明する。まず、現在のモードを示す変数MO
DEの内容が、GAME MODEか否かが判定される
(ステップS407)。現在はゲームモードであるの
で、この判定はYESとなる(図5のS502参照)。
置にされることにより、ゲームモードが選択されたとき
の動作を説明する。まず、現在のモードを示す変数MO
DEの内容が、GAME MODEか否かが判定される
(ステップS407)。現在はゲームモードであるの
で、この判定はYESとなる(図5のS502参照)。
【0038】つぎのステップS408では、鍵盤103
が押鍵可能状態(キーボードON)か否かが判定され
る。通常は、図4のS401でキーボードONにされた
ままなので、この判定はYESとなる。
が押鍵可能状態(キーボードON)か否かが判定され
る。通常は、図4のS401でキーボードONにされた
ままなので、この判定はYESとなる。
【0039】つづくステップS409では、ステップS
402のスイッチ走査の結果、新たな押鍵が生じたか否
かが判定される。ゲームモード開始時は、ユーザは、ま
だ何も押鍵していないため、この判定はNOとなる。
402のスイッチ走査の結果、新たな押鍵が生じたか否
かが判定される。ゲームモード開始時は、ユーザは、ま
だ何も押鍵していないため、この判定はNOとなる。
【0040】この結果、ステップS411の鍵盤処理が
実行される。ここでは、押鍵時のノートオン情報、およ
び押鍵された鍵の音高とベロシティに関する情報や、離
鍵時の鍵情報などがCPU101内のレジスタなどに取
り込まれる。ゲームモード開始時は、ユーザは、押鍵も
離鍵もしていないため、実質的に何の処理も実行されな
い。
実行される。ここでは、押鍵時のノートオン情報、およ
び押鍵された鍵の音高とベロシティに関する情報や、離
鍵時の鍵情報などがCPU101内のレジスタなどに取
り込まれる。ゲームモード開始時は、ユーザは、押鍵も
離鍵もしていないため、実質的に何の処理も実行されな
い。
【0041】つぎに、後述するステップS412のAN
SER時間処理を経て、S413のフロー一周タイマー
処理が実行される。ここでは、図4のメインフローの処
理の一周(S402〜S415の繰り返し)に要する時
間が計測される。この結果得られる時間情報は、リズム
音の発音等のためのタイミング制御に使用される。
SER時間処理を経て、S413のフロー一周タイマー
処理が実行される。ここでは、図4のメインフローの処
理の一周(S402〜S415の繰り返し)に要する時
間が計測される。この結果得られる時間情報は、リズム
音の発音等のためのタイミング制御に使用される。
【0042】つづいて、ステップS414のフロー一周
発音処理が実行される。ここでは、ステップS411の
鍵盤処理の処理結果に基づいて、実際に楽音を発音また
は消音する処理が実行される。
発音処理が実行される。ここでは、ステップS411の
鍵盤処理の処理結果に基づいて、実際に楽音を発音また
は消音する処理が実行される。
【0043】さらに、ステップS415のフロー一周イ
ニシャル処理が実行される。ここでは、例えばステップ
S402のスイッチ走査の結果、「新たな押鍵状態」と
された鍵の状態を表わすレジスタの内容がクリアされる
などの、各種初期化処理が実行される。 <第1の実施例の具体的動作におけるゲームモード開始
時の動作説明>つぎに、ステップS412のANSWE
R時間処理につき、図6を用いて説明する。
ニシャル処理が実行される。ここでは、例えばステップ
S402のスイッチ走査の結果、「新たな押鍵状態」と
された鍵の状態を表わすレジスタの内容がクリアされる
などの、各種初期化処理が実行される。 <第1の実施例の具体的動作におけるゲームモード開始
時の動作説明>つぎに、ステップS412のANSWE
R時間処理につき、図6を用いて説明する。
【0044】図6において、まず、現在のモードを示す
変数MODEの内容が、GAMEMODEか否かが判定
される(ステップS601)。現在はゲームモードであ
るので、この判定はYESとなる(図5のS502参
照)。
変数MODEの内容が、GAMEMODEか否かが判定
される(ステップS601)。現在はゲームモードであ
るので、この判定はYESとなる(図5のS502参
照)。
【0045】つぎのステップS602では、GAME
MODE IN中フラグがオンか否かが調べられる。ゲ
ームモードの開始時は、このフラグは図4のステップ4
04のGAME MODE IN処理内の図5のステッ
プS503でオンされているので、ステップS602の
判定はYESになり、つぎのステップS603のMOD
E IN経過処理が実行される。この処理は図8に示さ
れている。
MODE IN中フラグがオンか否かが調べられる。ゲ
ームモードの開始時は、このフラグは図4のステップ4
04のGAME MODE IN処理内の図5のステッ
プS503でオンされているので、ステップS602の
判定はYESになり、つぎのステップS603のMOD
E IN経過処理が実行される。この処理は図8に示さ
れている。
【0046】図8において、まず、ゲームモード開始時
のメッセージ(MODE IN MES.)が発音中か
否かが判定される(ステップS801)。このメッセー
ジは、図4のステップ404のGAME MODEIN
処理内の図5のステップS506、S507の処理によ
って発音される「この音なあに?」という音声によるメ
ッセージである。
のメッセージ(MODE IN MES.)が発音中か
否かが判定される(ステップS801)。このメッセー
ジは、図4のステップ404のGAME MODEIN
処理内の図5のステップS506、S507の処理によ
って発音される「この音なあに?」という音声によるメ
ッセージである。
【0047】ゲームモードの開始時に、このメッセージ
が発音中であるならば、図8のMODE IN経過処理
を即座に終了し、図6のANSWER時間処理を介し
て、図4のメインフローに戻り、ステップS412の処
理を終る。そして、図4のメインフローが1周して再び
図8のMODE IN経過処理のステップS801の判
定が繰り返される。
が発音中であるならば、図8のMODE IN経過処理
を即座に終了し、図6のANSWER時間処理を介し
て、図4のメインフローに戻り、ステップS412の処
理を終る。そして、図4のメインフローが1周して再び
図8のMODE IN経過処理のステップS801の判
定が繰り返される。
【0048】そして、上記メッセージ(MODE IN
MES.)の発音が終了したら、ステップS801の
判定がNOとなり、ステップS802、S803に進
む。今、図3のステップS303で前述したように、ゲ
ームモードの開始時には、上述したメッセージ(MOD
E IN MES.)につづいて、ユーザが解答しやす
いように、音高の基準となる各音階、例えばハ長調音階
のド、レ、ミ、ファ、ソ、ラ、シ、ド(鍵盤のC4、D
4、E4、F4、G4、A4、B4、C5に相当する)
を構成する各音階音が順次発音される。
MES.)の発音が終了したら、ステップS801の
判定がNOとなり、ステップS802、S803に進
む。今、図3のステップS303で前述したように、ゲ
ームモードの開始時には、上述したメッセージ(MOD
E IN MES.)につづいて、ユーザが解答しやす
いように、音高の基準となる各音階、例えばハ長調音階
のド、レ、ミ、ファ、ソ、ラ、シ、ド(鍵盤のC4、D
4、E4、F4、G4、A4、B4、C5に相当する)
を構成する各音階音が順次発音される。
【0049】そこで、まず、ステップS802におい
て、音階楽音が発音中か否かが判定される(ステップS
802)。始めは、前述したメッセージ(MODE I
N MES.)の発音が終了した直後で、まだ音階楽音
の発音はされていないので、ステップS802、S80
3ともに判定はNOとなり、ステップS807に進む。
て、音階楽音が発音中か否かが判定される(ステップS
802)。始めは、前述したメッセージ(MODE I
N MES.)の発音が終了した直後で、まだ音階楽音
の発音はされていないので、ステップS802、S80
3ともに判定はNOとなり、ステップS807に進む。
【0050】ステップS807では、変数であるリリー
スカウンタRL_CNTがクリアされる(ステップS8
07)。このカウンタは、後述するように、各音階音を
0.5秒間ずつ発音させるための時間カウンタであり、
上記クリア以後、この内容はCPU101(図1)内の
特には図示しないタイマによってカウントアップされ
る。
スカウンタRL_CNTがクリアされる(ステップS8
07)。このカウンタは、後述するように、各音階音を
0.5秒間ずつ発音させるための時間カウンタであり、
上記クリア以後、この内容はCPU101(図1)内の
特には図示しないタイマによってカウントアップされ
る。
【0051】つづくステップS808では、各音階楽音
(この場合は最初の音階「ド」に対応)のキーコードが
取得され、発音鍵メモリにセットされる(ステップS8
08)。なお、各音階楽音のキーコードは予めプログラ
ムされているものとする。
(この場合は最初の音階「ド」に対応)のキーコードが
取得され、発音鍵メモリにセットされる(ステップS8
08)。なお、各音階楽音のキーコードは予めプログラ
ムされているものとする。
【0052】そして、図1の楽音メモリ105から、上
記発音鍵メモリにセットされたキーコードを有するPC
M方式による音階楽音の楽音データが読み出され、アタ
ック処理により、その音階楽音が発音される(ステップ
S809)。
記発音鍵メモリにセットされたキーコードを有するPC
M方式による音階楽音の楽音データが読み出され、アタ
ック処理により、その音階楽音が発音される(ステップ
S809)。
【0053】つぎに、図6のANSWER時間処理から
図4のメインフロー(S412)を経て、再びステップ
S802に戻る。そして、音階楽音(この場合は音階
「ド」に対応する楽音)が、発音中か否かが判定され
る。
図4のメインフロー(S412)を経て、再びステップ
S802に戻る。そして、音階楽音(この場合は音階
「ド」に対応する楽音)が、発音中か否かが判定され
る。
【0054】その結果、音階楽音が発音中ならば、リリ
ース中であるか否かが判定され(ステップS803)、
リリース中ならその判定がYESとなり、図6のANS
WER時間処理を経て、図4のメインフローに戻って、
ステップS412の処理を終る。
ース中であるか否かが判定され(ステップS803)、
リリース中ならその判定がYESとなり、図6のANS
WER時間処理を経て、図4のメインフローに戻って、
ステップS412の処理を終る。
【0055】リリース中でなければ、ステップS803
の判定がNOとなり、つぎのステップS804におい
て、アタックと同時にS807でクリアされた後カウン
トアップされているリリースカウンタRL_CNTの値
が、0.5秒に相当するカウント値以上になったか否か
が判定される。
の判定がNOとなり、つぎのステップS804におい
て、アタックと同時にS807でクリアされた後カウン
トアップされているリリースカウンタRL_CNTの値
が、0.5秒に相当するカウント値以上になったか否か
が判定される。
【0056】この判定がNOである間は、図6のANS
WER時間処理から図4のメインフロー(S412)に
戻って、現在発音中の音階楽音の発音が続行される。メ
インフローの繰り返しのなかでステップS804の判定
がYESとなると、つぎのステップS805のリリース
処理により、現在発音中の音階楽音のエンベロープの減
衰処理が開始され、図4のメインフローに戻る。これ以
後、図8のMODE IN経過処理が実行されるごと
に、ステップS803の判定がYESとなって現在発音
中の音階楽音が消音されてゆく。
WER時間処理から図4のメインフロー(S412)に
戻って、現在発音中の音階楽音の発音が続行される。メ
インフローの繰り返しのなかでステップS804の判定
がYESとなると、つぎのステップS805のリリース
処理により、現在発音中の音階楽音のエンベロープの減
衰処理が開始され、図4のメインフローに戻る。これ以
後、図8のMODE IN経過処理が実行されるごと
に、ステップS803の判定がYESとなって現在発音
中の音階楽音が消音されてゆく。
【0057】このようにして、最初の音階楽音がリリー
スされてエンベロープの値が0になったら、ステップS
802の判定がNOとなり、つぎのステップS806
で、音階楽音の発音がすべて終了したか否かが判定され
る(ステップS806)。
スされてエンベロープの値が0になったら、ステップS
802の判定がNOとなり、つぎのステップS806
で、音階楽音の発音がすべて終了したか否かが判定され
る(ステップS806)。
【0058】音階楽音の発音がすべて終了していなけれ
ば、ステップS807においてつぎの音階楽音のために
再びリリースカウンタRL_CNTがクリアされ、ステ
ップS808でつぎの音階楽音の鍵ナンバが取得され、
ステップS809で発音(アタック)処理される。
ば、ステップS807においてつぎの音階楽音のために
再びリリースカウンタRL_CNTがクリアされ、ステ
ップS808でつぎの音階楽音の鍵ナンバが取得され、
ステップS809で発音(アタック)処理される。
【0059】以上のような処理が繰り返されることによ
って、音階「ド、レ、ミ、ファ、ソ、ラ、シ、ド」に対
応する全ての音階楽音の約0.5秒ずつの発音が終了し
たなら、ステップS806からステップS810に進
み、MODE IN中フラグがクリアされる(ステップ
S810)。 <第1の実施例の具体的動作における問題音の出題動作
の説明>その後に、図4のステップS412のANSE
R時間処理が実行されると、図6のステップS602の
判定はNOになり、ステップS604の出題経過処理に
移る。この処理は図9に示されている。
って、音階「ド、レ、ミ、ファ、ソ、ラ、シ、ド」に対
応する全ての音階楽音の約0.5秒ずつの発音が終了し
たなら、ステップS806からステップS810に進
み、MODE IN中フラグがクリアされる(ステップ
S810)。 <第1の実施例の具体的動作における問題音の出題動作
の説明>その後に、図4のステップS412のANSE
R時間処理が実行されると、図6のステップS602の
判定はNOになり、ステップS604の出題経過処理に
移る。この処理は図9に示されている。
【0060】出題経過に関しては、図10に示される4
つの状態が繰り返される。すなわち、「待機状態」→
「出題中」→「入力待ち」→「メッセージ表示中」の4
つの状態で、この4つのいずれかの状態を表すのが、例
えば2ビットの現在シーケンスフラグである。
つの状態が繰り返される。すなわち、「待機状態」→
「出題中」→「入力待ち」→「メッセージ表示中」の4
つの状態で、この4つのいずれかの状態を表すのが、例
えば2ビットの現在シーケンスフラグである。
【0061】この現在シーケンスフラグは、前述した図
4のステップ404のGAME MODE IN処理内
の図5のステップS501で、「待機状態」を示す値に
初期化されている。「待機状態」は、出題がまだ行われ
ていない状態である。
4のステップ404のGAME MODE IN処理内
の図5のステップS501で、「待機状態」を示す値に
初期化されている。「待機状態」は、出題がまだ行われ
ていない状態である。
【0062】このように始めは「待機状態」で、図9の
ステップS901の判定はNOとなるため、図9の出題
経過処理を即座に終了して、図6のステップS605の
END MESSAGE経過処理が実行される。
ステップS901の判定はNOとなるため、図9の出題
経過処理を即座に終了して、図6のステップS605の
END MESSAGE経過処理が実行される。
【0063】このEND MESSAGE経過処理は図
11に示されるが、現在シーケンスフラグが前述した
「メッセージ表示中」を示す値である場合にステップS
1101がYESとなって、ステップS1102以降の
処理が実行される。従って、始めはステップS1101
の判定はNOとなるため、図11のEND MESSA
GE経過処理を即座に終了して、図6のステップS60
6に進む。
11に示されるが、現在シーケンスフラグが前述した
「メッセージ表示中」を示す値である場合にステップS
1101がYESとなって、ステップS1102以降の
処理が実行される。従って、始めはステップS1101
の判定はNOとなるため、図11のEND MESSA
GE経過処理を即座に終了して、図6のステップS60
6に進む。
【0064】さらに、上述したように現在シーケンスフ
ラグは始めは「待機状態」を示す値であるため、ステッ
プS606、S607およびS608の各判定はいずれ
もNOとなって、ステップS609に進む。
ラグは始めは「待機状態」を示す値であるため、ステッ
プS606、S607およびS608の各判定はいずれ
もNOとなって、ステップS609に進む。
【0065】ステップS609では、正誤フラグが
「正」か否かが判定される(ステップS609)。この
正誤フラグは、図4のステップ404のGAME MO
DE IN処理内の図5のステップS501で「正」に
初期化されているため、ステップS609の判定はYE
Sとなる。
「正」か否かが判定される(ステップS609)。この
正誤フラグは、図4のステップ404のGAME MO
DE IN処理内の図5のステップS501で「正」に
初期化されているため、ステップS609の判定はYE
Sとなる。
【0066】つづくステップS610では、乱数処理が
実行される。この乱数処理は、乱数によって問題音の音
高すなわちキーコードを決定する処理であり、図15に
示されている。
実行される。この乱数処理は、乱数によって問題音の音
高すなわちキーコードを決定する処理であり、図15に
示されている。
【0067】まず、所定の乱数メモリ値が読み出される
(ステップS1501)。このメモリ値は、ステップS
1501が実行されるタイミングで特には図示しない乱
数発生処理によって演算され保持される。
(ステップS1501)。このメモリ値は、ステップS
1501が実行されるタイミングで特には図示しない乱
数発生処理によって演算され保持される。
【0068】つぎに、出題範囲を示す変数の内容が範囲
Iか否かが判定される(ステップS1502)。始め
は、図4のステップ404のGAME MODE IN
処理内の図5のステップS504で範囲Iに初期化され
ているため、ステップS1503が実行される。
Iか否かが判定される(ステップS1502)。始め
は、図4のステップ404のGAME MODE IN
処理内の図5のステップS504で範囲Iに初期化され
ているため、ステップS1503が実行される。
【0069】ステップS1503では、ステップS15
01で読み出された乱数メモリ値を範囲Iの数で割った
剰余が出題鍵メモリへ格納される(ステップS150
3)。ここで、範囲Iの数は、図1の鍵盤103におけ
る白鍵の総数に等しく、上記剰余値は、白鍵のいずれか
を指し示すキーコードにほかならない。すなわち、この
剰余値が、出題される楽音(出題鍵)のキーコードとし
て出題鍵メモリへ格納される。
01で読み出された乱数メモリ値を範囲Iの数で割った
剰余が出題鍵メモリへ格納される(ステップS150
3)。ここで、範囲Iの数は、図1の鍵盤103におけ
る白鍵の総数に等しく、上記剰余値は、白鍵のいずれか
を指し示すキーコードにほかならない。すなわち、この
剰余値が、出題される楽音(出題鍵)のキーコードとし
て出題鍵メモリへ格納される。
【0070】以上の処理として図6のステップS610
の乱数処理が実行された後、図6のステップS611の
出題処理が実行される。この処理は、図16に示されて
いる。
の乱数処理が実行された後、図6のステップS611の
出題処理が実行される。この処理は、図16に示されて
いる。
【0071】まず、出題鍵メモリに格納されたキーコー
ドが発音鍵メモリにセットされる(ステップS160
1)。そして、この発音鍵メモリにセットされたキーコ
ードを有するPCM方式による出題鍵の楽音データが読
み出され、アタック処理によって、発音が行われる(ス
テップS1602)。
ドが発音鍵メモリにセットされる(ステップS160
1)。そして、この発音鍵メモリにセットされたキーコ
ードを有するPCM方式による出題鍵の楽音データが読
み出され、アタック処理によって、発音が行われる(ス
テップS1602)。
【0072】つぎのステップS1603では、現在シー
ケンスフラグが「出題中」を示す値に変えられる(ステ
ップS1603)。また、変数であるカウンタS_CN
Tがクリアされるとともに(ステップS1604)、フ
ラグS_CNT_FLGもクリアされる(ステップS1
605)。これら2つについては後述する。
ケンスフラグが「出題中」を示す値に変えられる(ステ
ップS1603)。また、変数であるカウンタS_CN
Tがクリアされるとともに(ステップS1604)、フ
ラグS_CNT_FLGもクリアされる(ステップS1
605)。これら2つについては後述する。
【0073】つぎに、リリースカウンタRL_CNTが
クリアされる(ステップS1606)。このカウンタ
は、前述した音階音の場合と同様、出題される楽音を
0.5秒間ずつ発音させるための時間カウンタで、上記
クリア以後、この内容はCPU101(図1)内の特に
は図示しないタイマによってカウントアップされる。
クリアされる(ステップS1606)。このカウンタ
は、前述した音階音の場合と同様、出題される楽音を
0.5秒間ずつ発音させるための時間カウンタで、上記
クリア以後、この内容はCPU101(図1)内の特に
は図示しないタイマによってカウントアップされる。
【0074】その後、出題中はユーザによる押鍵操作を
受け付けないようにするため、図1の鍵盤103が押鍵
不可能状態(キーボードOFF)にされる(ステップS
1607)。
受け付けないようにするため、図1の鍵盤103が押鍵
不可能状態(キーボードOFF)にされる(ステップS
1607)。
【0075】以上の処理により、図6のステップS61
1の出題処理を終了して図4のメインフローに戻り、ス
テップS412のANSWER時間処理を終る。そし
て、上述のように図1の鍵盤103が押鍵不可能状態に
なっているためステップS408の判定がNOになり、
再びステップS412のANSWER時間処理に戻って
くる。
1の出題処理を終了して図4のメインフローに戻り、ス
テップS412のANSWER時間処理を終る。そし
て、上述のように図1の鍵盤103が押鍵不可能状態に
なっているためステップS408の判定がNOになり、
再びステップS412のANSWER時間処理に戻って
くる。
【0076】そして、図6のANSWER時間処理のス
テップS604の出題経過処理(図9)において、現在
シーケンスフラグは上述のように「出題中」を示す値に
されているため(図16のステップS1603)、ステ
ップS901の判定はYESとなり、また、始めは出題
鍵のキーコードを有する楽音が発音中であるため、ステ
ップS902の判定もYESとなる。
テップS604の出題経過処理(図9)において、現在
シーケンスフラグは上述のように「出題中」を示す値に
されているため(図16のステップS1603)、ステ
ップS901の判定はYESとなり、また、始めは出題
鍵のキーコードを有する楽音が発音中であるため、ステ
ップS902の判定もYESとなる。
【0077】また、始めはリリース中でないため、ステ
ップS903の判定がNOとなり、ステップS904に
おいて、アタックと同時に図16のS1606でクリア
された後カウントアップされているリリースカウンタR
L_CNTの値が、0.5秒に相当するカウント値以上
になったか否かが判定される。
ップS903の判定がNOとなり、ステップS904に
おいて、アタックと同時に図16のS1606でクリア
された後カウントアップされているリリースカウンタR
L_CNTの値が、0.5秒に相当するカウント値以上
になったか否かが判定される。
【0078】この判定がNOである間は、図6のANS
WER時間処理から図4のメインフロー(S412)に
戻って、現在発音中の出題鍵の楽音の発音が続行され
る。メインフローの繰り返しのなかでステップS904
の判定がYESとなると、つぎのステップS905のリ
リース処理により、現在発音中の出題鍵の楽音のエンベ
ロープの減衰処理が開始され、図4のメインフローに戻
る。これ以後、図9の出題経過処理が実行されるごと
に、ステップS903の判定がYESとなって現在発音
中の出題鍵の楽音が消音されてゆく。 <第1の実施例の具体的動作におけるユーザの解答動作
の説明>このようにして、出題鍵の楽音がリリースされ
てエンベロープの値が0になったら、ステップS902
の判定がNOとなり、ステップS906に移る。ここで
は、現在シーケンスフラグの値が「出題中」から「入力
待ち」(ANS待機)を示す値に更新される。
WER時間処理から図4のメインフロー(S412)に
戻って、現在発音中の出題鍵の楽音の発音が続行され
る。メインフローの繰り返しのなかでステップS904
の判定がYESとなると、つぎのステップS905のリ
リース処理により、現在発音中の出題鍵の楽音のエンベ
ロープの減衰処理が開始され、図4のメインフローに戻
る。これ以後、図9の出題経過処理が実行されるごと
に、ステップS903の判定がYESとなって現在発音
中の出題鍵の楽音が消音されてゆく。 <第1の実施例の具体的動作におけるユーザの解答動作
の説明>このようにして、出題鍵の楽音がリリースされ
てエンベロープの値が0になったら、ステップS902
の判定がNOとなり、ステップS906に移る。ここで
は、現在シーケンスフラグの値が「出題中」から「入力
待ち」(ANS待機)を示す値に更新される。
【0079】また、つぎのステップS907では、図1
の鍵盤103が押鍵可能状態(キーボードON)にされ
る。さらに、ステップS908では、変数であるANS
待機カウンタがクリアされる。このカウンタは、後述す
るように、ユーザに解答となる鍵を押鍵させるときの2
0秒の制限時間をカウントするためのカウンタであり、
上記クリア以後、この内容はCPU101(図1)内の
特には図示しないタイマによってカウントアップされ
る。
の鍵盤103が押鍵可能状態(キーボードON)にされ
る。さらに、ステップS908では、変数であるANS
待機カウンタがクリアされる。このカウンタは、後述す
るように、ユーザに解答となる鍵を押鍵させるときの2
0秒の制限時間をカウントするためのカウンタであり、
上記クリア以後、この内容はCPU101(図1)内の
特には図示しないタイマによってカウントアップされ
る。
【0080】以上の処理として図6のステップS604
の出題経過処理が終了し、図6のステップS605内の
図11のステップS1101の判定がNOとなった後、
図6のステップS606、S607の判定がNO、ステ
ップS608の判定がYESとなって、ステップS61
2に進む。
の出題経過処理が終了し、図6のステップS605内の
図11のステップS1101の判定がNOとなった後、
図6のステップS606、S607の判定がNO、ステ
ップS608の判定がYESとなって、ステップS61
2に進む。
【0081】ステップS612では、ステップS604
の出題経過処理内の図9のS908でクリアされた後カ
ウントアップされているANS待機カウンタの値が、2
0秒に相当するカウント値以上になったか否かが判定さ
れる。すなわち、出題鍵の楽音を発音開始後に、ユーザ
ーが解答のための押鍵を行うまでの待ち時間が20秒を
超えたか否かが判定される。
の出題経過処理内の図9のS908でクリアされた後カ
ウントアップされているANS待機カウンタの値が、2
0秒に相当するカウント値以上になったか否かが判定さ
れる。すなわち、出題鍵の楽音を発音開始後に、ユーザ
ーが解答のための押鍵を行うまでの待ち時間が20秒を
超えたか否かが判定される。
【0082】ANS待機カウンタの値が20秒に相当す
るカウント値以上になっていなければ、ステップS61
6に進む。ステップS616、S617およびS618
については後述するが、変数であるカウンタS_CNT
の内容はステップS611の出題処理の図16のステッ
プS1604でクリアされたままなので、始めはステッ
プS616の判定はNOとなる。この結果、図4のメイ
ンフローに戻り、ステップS412のANSWER時間
処理を終了する。そして、ステップS408の判定がY
ESとなった後、ユーザが解答のための押鍵をしなけれ
ばステップS409の判定がNOとなり、再びステップ
S412のANSWER時間処理に戻ってくる。そし
て、ステップS601の判定がYES、ステップS60
2の判定がNOとなってステップS604の出題経過処
理が実行されるが、図9のステップS901の判定がN
Oとなってすぐにこの処理を終る。更に、ステップS6
05のEND MESSAGE経過処理が実行される
が、図11のステップS1101の判定がNOとなって
この処理もすぐに終了する。そして、ステップS60
6、S607の判定がNO、ステップS608の判定が
YESとなった後、出題鍵の楽音を発音開始後に、ユー
ザーが解答のための押鍵を行うまでの待ち時間が20秒
を超えていなければステップS612の判定がNOと成
って、ステップS616に進み、前述したようにこの判
定もNOとなる。
るカウント値以上になっていなければ、ステップS61
6に進む。ステップS616、S617およびS618
については後述するが、変数であるカウンタS_CNT
の内容はステップS611の出題処理の図16のステッ
プS1604でクリアされたままなので、始めはステッ
プS616の判定はNOとなる。この結果、図4のメイ
ンフローに戻り、ステップS412のANSWER時間
処理を終了する。そして、ステップS408の判定がY
ESとなった後、ユーザが解答のための押鍵をしなけれ
ばステップS409の判定がNOとなり、再びステップ
S412のANSWER時間処理に戻ってくる。そし
て、ステップS601の判定がYES、ステップS60
2の判定がNOとなってステップS604の出題経過処
理が実行されるが、図9のステップS901の判定がN
Oとなってすぐにこの処理を終る。更に、ステップS6
05のEND MESSAGE経過処理が実行される
が、図11のステップS1101の判定がNOとなって
この処理もすぐに終了する。そして、ステップS60
6、S607の判定がNO、ステップS608の判定が
YESとなった後、出題鍵の楽音を発音開始後に、ユー
ザーが解答のための押鍵を行うまでの待ち時間が20秒
を超えていなければステップS612の判定がNOと成
って、ステップS616に進み、前述したようにこの判
定もNOとなる。
【0083】上記ループ処理として、図10の「入力待
ち」の状態(ANS待機状態)が継続される。上記ルー
プ処理による「入力待ち」の状態において、ユーザーが
押鍵を行うまでの待ち時間が20秒を超すと、ステップ
S612の判定がYESとなる。この結果、正誤フラグ
が「誤」にされ(ステップS613)、かつ連続正解数
が0にリセットされ(ステップS614)、ステップS
615において、後述に詳述するEND_MES処理が
実行される。そして、この処理において「ざんねん、も
ういちどね」の音声によるメッセージが伝えられる。
ち」の状態(ANS待機状態)が継続される。上記ルー
プ処理による「入力待ち」の状態において、ユーザーが
押鍵を行うまでの待ち時間が20秒を超すと、ステップ
S612の判定がYESとなる。この結果、正誤フラグ
が「誤」にされ(ステップS613)、かつ連続正解数
が0にリセットされ(ステップS614)、ステップS
615において、後述に詳述するEND_MES処理が
実行される。そして、この処理において「ざんねん、も
ういちどね」の音声によるメッセージが伝えられる。
【0084】上記ループ処理による「入力待ち」の状態
において、出題鍵の楽音を発音開始後20秒以内にユー
ザーが解答のための押鍵を行うと、図4のステップS4
09の判定がYESとなり、ステップS410のANS
WER TRIGGER処理が実行される。この処理
は、図7に示される。
において、出題鍵の楽音を発音開始後20秒以内にユー
ザーが解答のための押鍵を行うと、図4のステップS4
09の判定がYESとなり、ステップS410のANS
WER TRIGGER処理が実行される。この処理
は、図7に示される。
【0085】まず、フラグS_CNT_FLGが1か否
かが判定される(ステップS701)。この判定がNO
なら、フラグS_CNT_FLGが1にされ(ステップ
S702)、判定がYESなら、つぎのステップS70
3に進む。通常は、フラグS_CNT_FLGは図4の
ステップS412のANSWER時間処理内の図6のス
テップS611の出題処理内の図16のステップS16
05でクリアされたままであるため、上記判定はNOと
なる。なお、この判定がYESとなる場合については後
述する。上記フラグS_CNT_FLGが1にされる
と、クリアされていたカウンタS_CNTがカウントア
ップを開始する。
かが判定される(ステップS701)。この判定がNO
なら、フラグS_CNT_FLGが1にされ(ステップ
S702)、判定がYESなら、つぎのステップS70
3に進む。通常は、フラグS_CNT_FLGは図4の
ステップS412のANSWER時間処理内の図6のス
テップS611の出題処理内の図16のステップS16
05でクリアされたままであるため、上記判定はNOと
なる。なお、この判定がYESとなる場合については後
述する。上記フラグS_CNT_FLGが1にされる
と、クリアされていたカウンタS_CNTがカウントア
ップを開始する。
【0086】ステップS703においては、押鍵された
入力鍵のキーコードがメモリに記憶される。以上の処理
として図4のステップS410のANSWERTRIG
GER処理が実行されると、ユーザの押鍵による解答が
正解か否かを判定するための処理(後述するANSWE
R処理)が実行されるべきである。しかし、図4のステ
ップS412のANSWER時間処理内のステップS6
16の判定は、前述したようにしてカウントアップを開
始したカウンタS_CNTの値が1秒に相当する値を越
えるまでは、依然としてNOとなるため、前述した「入
力待ち」の状態におけるループ処理が繰り返される。こ
れは以下に述べるような理由による。
入力鍵のキーコードがメモリに記憶される。以上の処理
として図4のステップS410のANSWERTRIG
GER処理が実行されると、ユーザの押鍵による解答が
正解か否かを判定するための処理(後述するANSWE
R処理)が実行されるべきである。しかし、図4のステ
ップS412のANSWER時間処理内のステップS6
16の判定は、前述したようにしてカウントアップを開
始したカウンタS_CNTの値が1秒に相当する値を越
えるまでは、依然としてNOとなるため、前述した「入
力待ち」の状態におけるループ処理が繰り返される。こ
れは以下に述べるような理由による。
【0087】今、出題のための単音が発音されユーザー
が解答として或る鍵を押鍵すると、押鍵した鍵に対応す
る楽音は、正解であってもなくても、図4のステップS
411の鍵盤処理内の特には図示しないアタック処理に
よって発音される。そして、何の対策も講じられない
と、その直後にユーザの解答が正解か否かが判定され、
その判定結果に基づいてメッセージが発音される。ここ
で、メッセージの発音時には、その発音を明確にするた
めに現在発音中の全ての楽音が急速に消音される(後述
する図14のステップS1401参照)。そして、ユー
ザによる解答の押鍵があってからメッセージが発音され
るまでの処理は、ディジタル処理として非常に短い時間
の間に実行されることになる。従って、ユーザが押鍵し
た鍵の楽音が発音されるかされないかのうちにメッセー
ジ発音のための消音処理がなされてしまい、結果的にユ
ーザが押鍵した鍵の楽音は全くまたはほとんど聞こえな
いことになってしまう。
が解答として或る鍵を押鍵すると、押鍵した鍵に対応す
る楽音は、正解であってもなくても、図4のステップS
411の鍵盤処理内の特には図示しないアタック処理に
よって発音される。そして、何の対策も講じられない
と、その直後にユーザの解答が正解か否かが判定され、
その判定結果に基づいてメッセージが発音される。ここ
で、メッセージの発音時には、その発音を明確にするた
めに現在発音中の全ての楽音が急速に消音される(後述
する図14のステップS1401参照)。そして、ユー
ザによる解答の押鍵があってからメッセージが発音され
るまでの処理は、ディジタル処理として非常に短い時間
の間に実行されることになる。従って、ユーザが押鍵し
た鍵の楽音が発音されるかされないかのうちにメッセー
ジ発音のための消音処理がなされてしまい、結果的にユ
ーザが押鍵した鍵の楽音は全くまたはほとんど聞こえな
いことになってしまう。
【0088】このような事態を防止して、ユーザーの押
鍵した音が明確に発音されるようにするために、正解の
判定を行うための図6のステップS619のANSWE
R処理が実行されるまでに、約1秒の待ち時間を設けら
れるのである。このアイドリングを行うのが、カウンタ
S_CNTに関する図6のステップS616の判定処理
である。
鍵した音が明確に発音されるようにするために、正解の
判定を行うための図6のステップS619のANSWE
R処理が実行されるまでに、約1秒の待ち時間を設けら
れるのである。このアイドリングを行うのが、カウンタ
S_CNTに関する図6のステップS616の判定処理
である。
【0089】なお、ユーザが解答のための押鍵を行った
後、1秒以内に再度押鍵を行った場合は、ステップS4
10のANSWER TRIGGER処理が再び実行さ
れて新たな入力鍵が解答とされるが、この場合には、フ
ラグS_CNT_FLGは既に1にされているため、ス
テップS701はYESとなってステップS702の処
理は実行されない。 <第1の実施例の具体的動作における正解/不正解処理
の説明>上述の1秒のアイドリングの後、カウンタS_
CNTの値が1秒に相当する値を越えると、ステップS
616の判定がYESとなる。そして、ステップS61
7でカウンタS_CNTがクリアされ、ステップS61
8でフラグS_CNT_FLGがクリアされた後、正解
の判定を行うためのステップS619のANSWER処
理が実行される。ANSWER処理は図13に示されて
いる。
後、1秒以内に再度押鍵を行った場合は、ステップS4
10のANSWER TRIGGER処理が再び実行さ
れて新たな入力鍵が解答とされるが、この場合には、フ
ラグS_CNT_FLGは既に1にされているため、ス
テップS701はYESとなってステップS702の処
理は実行されない。 <第1の実施例の具体的動作における正解/不正解処理
の説明>上述の1秒のアイドリングの後、カウンタS_
CNTの値が1秒に相当する値を越えると、ステップS
616の判定がYESとなる。そして、ステップS61
7でカウンタS_CNTがクリアされ、ステップS61
8でフラグS_CNT_FLGがクリアされた後、正解
の判定を行うためのステップS619のANSWER処
理が実行される。ANSWER処理は図13に示されて
いる。
【0090】まず、図4のANSWER時間処理内の図
6の乱数処理内の図15のステップS1503で出題鍵
メモリに格納された出題鍵が取得され(ステップS13
01)、また、図4のステップS410のANSWER
TRIGGER処理内の図7のステップS703でメ
モリに格納された入力鍵のキーコードが取得される(ス
テップS1302)。
6の乱数処理内の図15のステップS1503で出題鍵
メモリに格納された出題鍵が取得され(ステップS13
01)、また、図4のステップS410のANSWER
TRIGGER処理内の図7のステップS703でメ
モリに格納された入力鍵のキーコードが取得される(ス
テップS1302)。
【0091】そして、入力鍵と出題鍵のキーコードが一
致しているか否かが判定される(ステップS130
3)。一致していれば、正誤フラグが「正」にされ(ス
テップS1304)、連続正解数を示す変数の内容が+
1カウントアップされる(ステップS1305)。つぎ
に、連続正解数を示す変数の内容が所定の回数Nを超し
たか否かが判定される(ステップS1306)。この判
定がNOならEND_MES処理(ステップS131
0)に進む。ステップS1306の判定がYESなら、
出題範囲を示す変数の内容が今までの範囲Iから範囲I
Iに変更された後(ステップS1307)、END_M
ES処理(ステップS1310)に進む。ステップS1
307の意味については後述する。
致しているか否かが判定される(ステップS130
3)。一致していれば、正誤フラグが「正」にされ(ス
テップS1304)、連続正解数を示す変数の内容が+
1カウントアップされる(ステップS1305)。つぎ
に、連続正解数を示す変数の内容が所定の回数Nを超し
たか否かが判定される(ステップS1306)。この判
定がNOならEND_MES処理(ステップS131
0)に進む。ステップS1306の判定がYESなら、
出題範囲を示す変数の内容が今までの範囲Iから範囲I
Iに変更された後(ステップS1307)、END_M
ES処理(ステップS1310)に進む。ステップS1
307の意味については後述する。
【0092】入力鍵が出題鍵がと一致しておらずステッ
プS1303の判定がNOの場合には、正誤フラグが
「誤」にされ(ステップS1308)、連続正解数がク
リアされた後(ステップS1309)、END_MES
処理(ステップS1310)が実行される。
プS1303の判定がNOの場合には、正誤フラグが
「誤」にされ(ステップS1308)、連続正解数がク
リアされた後(ステップS1309)、END_MES
処理(ステップS1310)が実行される。
【0093】ステップS1310のEND_MES処理
は、図14に示されている。正解または不正解のメッセ
ージを明確に発音させるために、現在発音中の全ての楽
音が急速に消音される全音ハイリリースの処理が実行さ
れる(ステップS1401)。そして、全ての楽音のエ
ンベロープ値が0になったことが確認された後に(ステ
ップS1402)、ステップS1403に進む。
は、図14に示されている。正解または不正解のメッセ
ージを明確に発音させるために、現在発音中の全ての楽
音が急速に消音される全音ハイリリースの処理が実行さ
れる(ステップS1401)。そして、全ての楽音のエ
ンベロープ値が0になったことが確認された後に(ステ
ップS1402)、ステップS1403に進む。
【0094】ステップS1403では、メッセージ発音
中はユーザによる押鍵操作を受け付けないようにするた
め、図1の鍵盤103が押鍵不可能状態(キーボードO
FF)にされる。
中はユーザによる押鍵操作を受け付けないようにするた
め、図1の鍵盤103が押鍵不可能状態(キーボードO
FF)にされる。
【0095】つぎに、正誤フラグが「正」であればステ
ップS1404の判定がYESとなり、図1の人声メモ
リ106から、「せいかい」という内容のADPCM方
式による正解メッセージの音声データが読み出されて
(ステップS1405)、アタック処理により、そのメ
ッセージが発音される(ステップS1407)。
ップS1404の判定がYESとなり、図1の人声メモ
リ106から、「せいかい」という内容のADPCM方
式による正解メッセージの音声データが読み出されて
(ステップS1405)、アタック処理により、そのメ
ッセージが発音される(ステップS1407)。
【0096】正誤フラグが「誤」であればステップS1
404の判定がNOとなり、図1の人声メモリ106か
ら、「ざんねん、もういちどね」という内容のADPC
M方式による正解メッセージの音声データが読み出され
て(ステップS1406)、アタック処理により、その
メッセージが発音される(ステップS1407)。
404の判定がNOとなり、図1の人声メモリ106か
ら、「ざんねん、もういちどね」という内容のADPC
M方式による正解メッセージの音声データが読み出され
て(ステップS1406)、アタック処理により、その
メッセージが発音される(ステップS1407)。
【0097】その後、現在シーケンスフラグが「メッセ
ージ表示中」を示す値に変更される(ステップS140
8)。上記ステップS1408の後、図13のステップ
S1310のEND_MES処理を終了し、更に、図6
のANSWER処理を終了する。
ージ表示中」を示す値に変更される(ステップS140
8)。上記ステップS1408の後、図13のステップ
S1310のEND_MES処理を終了し、更に、図6
のANSWER処理を終了する。
【0098】その後、メインフローの図4に戻り、ステ
ップS412のANSWER時間処理を終了した後、ス
テップS402→S407→S408と進み、更に、現
在はキーボードーがOFFになっているためステップS
408の判定がNOとなった後に、再びステップS41
2のANSWER時間処理が実行される。
ップS412のANSWER時間処理を終了した後、ス
テップS402→S407→S408と進み、更に、現
在はキーボードーがOFFになっているためステップS
408の判定がNOとなった後に、再びステップS41
2のANSWER時間処理が実行される。
【0099】ANSWER時間処理においては、図6の
ステップS601→S602→S604(図9のS90
1の判定がNO)→S605と進み、END MESS
AGE経過処理が実行される。この処理は、図11に示
されている。
ステップS601→S602→S604(図9のS90
1の判定がNO)→S605と進み、END MESS
AGE経過処理が実行される。この処理は、図11に示
されている。
【0100】まず、ステップS1101において、現在
シーケンスフラグが「メッセージ表示中」か否かが判定
されることにより、エンドメッセージ(END_ME
S)が発音中か否かが判定される。このメッセージは、
図14のステップS1405またはS1406で読み出
され、ステップS1407において発音される「せいか
い」または「ざんねん、もういちど」という音声による
メッセージである。
シーケンスフラグが「メッセージ表示中」か否かが判定
されることにより、エンドメッセージ(END_ME
S)が発音中か否かが判定される。このメッセージは、
図14のステップS1405またはS1406で読み出
され、ステップS1407において発音される「せいか
い」または「ざんねん、もういちど」という音声による
メッセージである。
【0101】エンドメッセージが発音中でステップS1
101の判定がYESとなると、つぎのステップS11
02で、正解発音中か否かが判定される。図14のステ
ップS1405で正解のメッセージが読み出されれば正
解発音中であり、ステップS1406で不正解のメッセ
ージが読み出されれば正解発音中ではない。
101の判定がYESとなると、つぎのステップS11
02で、正解発音中か否かが判定される。図14のステ
ップS1405で正解のメッセージが読み出されれば正
解発音中であり、ステップS1406で不正解のメッセ
ージが読み出されれば正解発音中ではない。
【0102】現在、正解発音中ならば、ステップS11
05の正解MES経過処理が実行される。この処理は、
図12に示されている。まず、ステップS1201で、
正解メッセージ「せいかい」が発音中か否かが判定され
る。
05の正解MES経過処理が実行される。この処理は、
図12に示されている。まず、ステップS1201で、
正解メッセージ「せいかい」が発音中か否かが判定され
る。
【0103】「せいかい」を発音中は、つぎのステップ
S1202で無音となったか否かが判定される。「せい
かい」のメッセージが無音とならない間は、この判定が
NOとなり、図11のステップS1105の正解MES
経過処理を終了し、図6のステップS605のEND
MESSAGE経過処理を終了し、ステップS606の
判定がNO、ステップS607の判定がYESとなり図
4のステップS412のANSWER時間処理を終了し
てメインフローに戻る。そして、再び図4のステップS
412が実行され、図6のステップS601→S602
→S604(図9のステップS901の判定はNO)→
S605→図11のS1101→S1102→S110
5→図12のS1201という経路でステップS120
2に戻ってくる。
S1202で無音となったか否かが判定される。「せい
かい」のメッセージが無音とならない間は、この判定が
NOとなり、図11のステップS1105の正解MES
経過処理を終了し、図6のステップS605のEND
MESSAGE経過処理を終了し、ステップS606の
判定がNO、ステップS607の判定がYESとなり図
4のステップS412のANSWER時間処理を終了し
てメインフローに戻る。そして、再び図4のステップS
412が実行され、図6のステップS601→S602
→S604(図9のステップS901の判定はNO)→
S605→図11のS1101→S1102→S110
5→図12のS1201という経路でステップS120
2に戻ってくる。
【0104】以上のループ処理が繰り返されることによ
り、「せいかい」のメッセージの発音がつづけられる。
そして、このメッセージが無音となると、ステップS1
202の判定がYESとなり、ステップ1203が実行
される。
り、「せいかい」のメッセージの発音がつづけられる。
そして、このメッセージが無音となると、ステップS1
202の判定がYESとなり、ステップ1203が実行
される。
【0105】ステップS1203では、図4のANSW
ER時間処理内の図6の乱数処理内の図15のステップ
S1503で出題鍵メモリに格納された出題鍵すなわち
正解鍵のキーコードが取得される。そして、人声メモリ
106から、この正解鍵の音名を表わす内容のADPC
M方式による音声データが、正解鍵の音高で読み出され
る。そして、つぎのステップS1204のアタック処理
により、その答を表わす音声が発音される。例えば、正
解鍵が音名C3 の音階音に対応する鍵であるなら、「ド
ー」という内容の音声がC3 に対応する音高で発音され
る。
ER時間処理内の図6の乱数処理内の図15のステップ
S1503で出題鍵メモリに格納された出題鍵すなわち
正解鍵のキーコードが取得される。そして、人声メモリ
106から、この正解鍵の音名を表わす内容のADPC
M方式による音声データが、正解鍵の音高で読み出され
る。そして、つぎのステップS1204のアタック処理
により、その答を表わす音声が発音される。例えば、正
解鍵が音名C3 の音階音に対応する鍵であるなら、「ド
ー」という内容の音声がC3 に対応する音高で発音され
る。
【0106】以下、図11のステップS1105の正解
MES経過処理を終了し、図6のステップS605のE
ND MESSAGE経過処理を終了し、ステップS6
06の判定がNO、ステップS607の判定がYESと
なって図4のステップS412のANSWER時間処理
を終了してメインフローに戻る。そして、再び図4のス
テップS412が実行され、図6のステップS601→
S602→S604(図9のステップS901の判定は
NO)→S605→図11のS1101→S1102→
S1105という経路で図12のステップS1201に
戻ってくる。
MES経過処理を終了し、図6のステップS605のE
ND MESSAGE経過処理を終了し、ステップS6
06の判定がNO、ステップS607の判定がYESと
なって図4のステップS412のANSWER時間処理
を終了してメインフローに戻る。そして、再び図4のス
テップS412が実行され、図6のステップS601→
S602→S604(図9のステップS901の判定は
NO)→S605→図11のS1101→S1102→
S1105という経路で図12のステップS1201に
戻ってくる。
【0107】そして、正解鍵を表わす答の音声を発音中
の状態に変化したため、ステップS1201の判定はN
Oとなり、つぎのステップS1205の判定がYESと
なる。答の音声を発音中は、つぎのステップS1206
で無音となったか否かが判定される。そして、答の音声
が無音とならない間は、この判定がNOとなり、上述の
場合と同様のループ処理が繰り返されることにより、答
の音声の発音がつづけられる。
の状態に変化したため、ステップS1201の判定はN
Oとなり、つぎのステップS1205の判定がYESと
なる。答の音声を発音中は、つぎのステップS1206
で無音となったか否かが判定される。そして、答の音声
が無音とならない間は、この判定がNOとなり、上述の
場合と同様のループ処理が繰り返されることにより、答
の音声の発音がつづけられる。
【0108】そして、この音声が無音となると、ステッ
プS1206の判定がYESとなり、ステップ1207
が実行される。ステップS1207においては、出題メ
ッセージとして、人声メモリ106から、「つぎのもん
だい」という内容のADPCM方式による音声データが
読み出され、つぎのステップS1208のアタック処理
により、そのメッセージが発音される。
プS1206の判定がYESとなり、ステップ1207
が実行される。ステップS1207においては、出題メ
ッセージとして、人声メモリ106から、「つぎのもん
だい」という内容のADPCM方式による音声データが
読み出され、つぎのステップS1208のアタック処理
により、そのメッセージが発音される。
【0109】以下、図11のステップS1105の正解
MES経過処理を終了し、図6のステップS605のE
ND MESSAGE経過処理を終了し、ステップS6
06の判定がNO、ステップS607の判定がYESと
なって図4のステップS412のANSWER時間処理
を終了してメインフローに戻る。そして、再び図4のス
テップS412が実行され、図6のステップS601→
S602→S604(図9のステップS901の判定は
NO)→S605→図11のS1101→S1102→
S1105という経路で図12のステップS1201に
戻ってくる。
MES経過処理を終了し、図6のステップS605のE
ND MESSAGE経過処理を終了し、ステップS6
06の判定がNO、ステップS607の判定がYESと
なって図4のステップS412のANSWER時間処理
を終了してメインフローに戻る。そして、再び図4のス
テップS412が実行され、図6のステップS601→
S602→S604(図9のステップS901の判定は
NO)→S605→図11のS1101→S1102→
S1105という経路で図12のステップS1201に
戻ってくる。
【0110】そして、出題メッセージを発音中の状態に
変化したため、ステップS1201とステップ1205
の判定はNOとなり、つぎのステップS1209で無音
となったか否かが判定される。そして、出題メッセージ
が無音とならない間は、この判定がNOとなり、上述の
場合と同様のループ処理が繰り返されることにより、出
題メッセージの発音がつづけられる。
変化したため、ステップS1201とステップ1205
の判定はNOとなり、つぎのステップS1209で無音
となったか否かが判定される。そして、出題メッセージ
が無音とならない間は、この判定がNOとなり、上述の
場合と同様のループ処理が繰り返されることにより、出
題メッセージの発音がつづけられる。
【0111】そして、出題メッセージが無音となると、
ステップS1209の判定がYESとなり、ステップ1
210が実行される。ステップ1210では、現在シー
ケンスフラグが「待機状態」(図10参照)にされて、
図11のステップS1105の正解MES経過処理を終
了し、図6のステップS605のENDMESSAGE
経過処理を終了する。
ステップS1209の判定がYESとなり、ステップ1
210が実行される。ステップ1210では、現在シー
ケンスフラグが「待機状態」(図10参照)にされて、
図11のステップS1105の正解MES経過処理を終
了し、図6のステップS605のENDMESSAGE
経過処理を終了する。
【0112】以上のようにして、ユーザの解答が正解で
あった場合には、「せいかい」というメッセージにつづ
いて、答の音声が発音され、更に、「つぎのもんだい」
というメッセージが発音される。
あった場合には、「せいかい」というメッセージにつづ
いて、答の音声が発音され、更に、「つぎのもんだい」
というメッセージが発音される。
【0113】以上の処理は、図4のステップS412の
ANSWER時間処理内の図6のEND MESSAG
E経過処理内の図11のステップS1102で正解発音
中と判定された場合であるが、図14のステップS14
06で不正解のメッセージが読み出されることにより正
解発音中ではないと判定された場合には、ステップS1
103の処理が実行される。
ANSWER時間処理内の図6のEND MESSAG
E経過処理内の図11のステップS1102で正解発音
中と判定された場合であるが、図14のステップS14
06で不正解のメッセージが読み出されることにより正
解発音中ではないと判定された場合には、ステップS1
103の処理が実行される。
【0114】「ざんねん、もういちど」を発音中は、つ
ぎのステップS1103で無音となったか否かが判定さ
れる。上記メッセージが無音とならない間は、この判定
がNOとなり、図6のステップS605のEND ME
SSAGE経過処理を終了し、ステップS606の判定
がNO、ステップS607の判定がYESとなって図4
のステップS412のANSWER時間処理を終了して
メインフローに戻る。そして、再び図4のステップS4
12が実行され、図6のステップS601→S602→
S604(図9のステップS901の判定はNO)→S
605→図11のS1101→S1102という経路
で、ステップS1103に戻ってくる。
ぎのステップS1103で無音となったか否かが判定さ
れる。上記メッセージが無音とならない間は、この判定
がNOとなり、図6のステップS605のEND ME
SSAGE経過処理を終了し、ステップS606の判定
がNO、ステップS607の判定がYESとなって図4
のステップS412のANSWER時間処理を終了して
メインフローに戻る。そして、再び図4のステップS4
12が実行され、図6のステップS601→S602→
S604(図9のステップS901の判定はNO)→S
605→図11のS1101→S1102という経路
で、ステップS1103に戻ってくる。
【0115】以上のループ処理が繰り返されることによ
り、「ざんねん、もういちど」のメッセージの発音がつ
づけられる。そして、このメッセージが無音となると、
ステップS1103の判定がYESとなり、ステップS
1104が実行される。
り、「ざんねん、もういちど」のメッセージの発音がつ
づけられる。そして、このメッセージが無音となると、
ステップS1103の判定がYESとなり、ステップS
1104が実行される。
【0116】ステップS1104では、現在シーケンス
フラグが「待機状態」(図10参照)にされ、図6のス
テップS605のEND MESSAGE経過処理を終
了する。 <第1の実施例の具体的動作におけるつぎの問題音の出
題動作の説明>上述のようにステップS1104を介し
てまたは図11のステップS1105内の図12のステ
ップS1210を介して、図6のステップS605のE
NDMESSAGE経過処理を終了した後は、現在シー
ケンスフラグが「待機状態」にされたため、図6のステ
ップS606の判定がNOとなった後、ステップS60
7の判定もNOとなり、更に、ステップS608の判定
がNOとなる。
フラグが「待機状態」(図10参照)にされ、図6のス
テップS605のEND MESSAGE経過処理を終
了する。 <第1の実施例の具体的動作におけるつぎの問題音の出
題動作の説明>上述のようにステップS1104を介し
てまたは図11のステップS1105内の図12のステ
ップS1210を介して、図6のステップS605のE
NDMESSAGE経過処理を終了した後は、現在シー
ケンスフラグが「待機状態」にされたため、図6のステ
ップS606の判定がNOとなった後、ステップS60
7の判定もNOとなり、更に、ステップS608の判定
がNOとなる。
【0117】これにより、既に説明した動作によって、
ステップS609以降の処理でつぎの出題が行われる。
この場合、前回にユーザの解答が正解だった場合は、ス
テップS609の判定がYESとなって、前述したステ
ップS610の乱数処理によってつぎの問題音が決定さ
れ、ステップS611の出題処理で出題される。逆に、
前回にユーザの解答が不正解だった場合は、ステップS
609の判定がNOとなって、前回と同じ問題音がステ
ップS611の出題処理で出題される。
ステップS609以降の処理でつぎの出題が行われる。
この場合、前回にユーザの解答が正解だった場合は、ス
テップS609の判定がYESとなって、前述したステ
ップS610の乱数処理によってつぎの問題音が決定さ
れ、ステップS611の出題処理で出題される。逆に、
前回にユーザの解答が不正解だった場合は、ステップS
609の判定がNOとなって、前回と同じ問題音がステ
ップS611の出題処理で出題される。
【0118】ここで、前述したように、図4のステップ
S412のANSWER時間処理内の図6のステップS
619のANSWER処理内のステップS1306にお
いて、ユーザの解答が正解だった場合に連続正解数を示
す変数の内容が所定の回数Nを超したか否かが判定さ
れ、超していればつぎのステップS1307において、
出題範囲を示す変数の内容が今まで範囲Iから範囲II
に変更される。
S412のANSWER時間処理内の図6のステップS
619のANSWER処理内のステップS1306にお
いて、ユーザの解答が正解だった場合に連続正解数を示
す変数の内容が所定の回数Nを超したか否かが判定さ
れ、超していればつぎのステップS1307において、
出題範囲を示す変数の内容が今まで範囲Iから範囲II
に変更される。
【0119】従って、ユーザの解答がN回連続した場合
は、図6のステップS610の乱数処理によりつぎの問
題音が決定される場合に、図15のステップS1502
の判定がNOとなり、ステップS1504において、ス
テップS1501で読み出された乱数メモリ値を範囲I
Iの数で割った剰余が出題鍵メモリへ格納される。
は、図6のステップS610の乱数処理によりつぎの問
題音が決定される場合に、図15のステップS1502
の判定がNOとなり、ステップS1504において、ス
テップS1501で読み出された乱数メモリ値を範囲I
Iの数で割った剰余が出題鍵メモリへ格納される。
【0120】ここで、いままでの範囲Iから出題が行わ
れた場合には、前述したように白鍵のいずれかを指し示
すキーコードが、問題音として出題鍵メモリへ格納され
た。これに対して、範囲IIの数は、図1の鍵盤103
における白鍵と黒鍵を合せた総数に等しく、乱数メモリ
値を範囲IIの数で割った剰余値は、白鍵と黒鍵のいず
れかを指し示すキーコードにほかならない。すなわち、
この剰余値が、出題される楽音(出題鍵)のキーコード
として出題鍵メモリへ格納される。
れた場合には、前述したように白鍵のいずれかを指し示
すキーコードが、問題音として出題鍵メモリへ格納され
た。これに対して、範囲IIの数は、図1の鍵盤103
における白鍵と黒鍵を合せた総数に等しく、乱数メモリ
値を範囲IIの数で割った剰余値は、白鍵と黒鍵のいず
れかを指し示すキーコードにほかならない。すなわち、
この剰余値が、出題される楽音(出題鍵)のキーコード
として出題鍵メモリへ格納される。
【0121】このように、ユーザの解答がN回連続した
場合には、問題音に黒鍵の音階音も含まれることになっ
て、難易度が高くなる。以上のようにして、GAMEモ
ードの第1の実施例では、ユーザは、単音の音高を当て
るゲームを楽しむことができる。GAMEモードの第2の実施例 つぎに、GAMEモードの第2の実施例につき説明す
る。 <第2の実施例の概要動作の説明>GAMEモードの第
2の実施例では、ユーザは、音感ゲームの一種である和
音を当てるゲームを楽しむことができる。この場合、ユ
ーザーは、電子鍵盤楽器から出題される和音を聴き、そ
れと同じ和音を押鍵によって解答する。
場合には、問題音に黒鍵の音階音も含まれることになっ
て、難易度が高くなる。以上のようにして、GAMEモ
ードの第1の実施例では、ユーザは、単音の音高を当て
るゲームを楽しむことができる。GAMEモードの第2の実施例 つぎに、GAMEモードの第2の実施例につき説明す
る。 <第2の実施例の概要動作の説明>GAMEモードの第
2の実施例では、ユーザは、音感ゲームの一種である和
音を当てるゲームを楽しむことができる。この場合、ユ
ーザーは、電子鍵盤楽器から出題される和音を聴き、そ
れと同じ和音を押鍵によって解答する。
【0122】第1の実施例では、出題範囲Iと出題範囲
IIという概念が使用されたが、第2の実施例でも同様
である。この場合に、本実施例では出題される和音は三
和音であり、出題範囲Iが選択された場合は、例えば長
三和音のみが出題され、問題(和音)の数は20であ
る。また、出題範囲IIが選択された場合は、出題範囲
Iの問題に、例えば短三和音の問題の20問が加えられ
て、合計40の和音の中から出題され、出題範囲Iの場
合に比べて難易度が高くされる。
IIという概念が使用されたが、第2の実施例でも同様
である。この場合に、本実施例では出題される和音は三
和音であり、出題範囲Iが選択された場合は、例えば長
三和音のみが出題され、問題(和音)の数は20であ
る。また、出題範囲IIが選択された場合は、出題範囲
Iの問題に、例えば短三和音の問題の20問が加えられ
て、合計40の和音の中から出題され、出題範囲Iの場
合に比べて難易度が高くされる。
【0123】また、ユーザが解答となる和音の構成音を
押鍵する場合、各構成音が、それぞれオクターブ上また
は下になったり、あるいは転回和音を構成しても、さら
には同じ音が2回押鍵されても、いずれも正解とされ
る。ただし、ユーザーが解答する時間は、第1の実施例
の場合と同様、20秒内に制限される。なお、本実施例
で使用される電子鍵盤楽器の音域は、F3〜C6とし、
出題もその音域から行われる。
押鍵する場合、各構成音が、それぞれオクターブ上また
は下になったり、あるいは転回和音を構成しても、さら
には同じ音が2回押鍵されても、いずれも正解とされ
る。ただし、ユーザーが解答する時間は、第1の実施例
の場合と同様、20秒内に制限される。なお、本実施例
で使用される電子鍵盤楽器の音域は、F3〜C6とし、
出題もその音域から行われる。
【0124】第2の実施例の概略動作を表す動作フロー
チャートは、図3の第1の実施例のものとほとんど同じ
で、図3のステップS308の正解音高で「ドー」が発
音される代わりに、和音の「ド、ミ、ソ」が発音される
以外は、同じである。 <第2の実施例の具体的動作と第1の実施例の具体的動
作の共通部分>第2の実施例のメインフローの構成は図
4の第1の実施例のものと同様である。その他、第1の
実施例の図5のGAME MODE IN処理、図6の
ANSWER時間処理、図8のMODE IN経過処
理、図9の出題経過処理、図10の説明図、図11のE
ND_MES経過処理、図12の正解MES経過処理、
および図14のEND_MES処理は、原則として第2
の実施例に適用される。
チャートは、図3の第1の実施例のものとほとんど同じ
で、図3のステップS308の正解音高で「ドー」が発
音される代わりに、和音の「ド、ミ、ソ」が発音される
以外は、同じである。 <第2の実施例の具体的動作と第1の実施例の具体的動
作の共通部分>第2の実施例のメインフローの構成は図
4の第1の実施例のものと同様である。その他、第1の
実施例の図5のGAME MODE IN処理、図6の
ANSWER時間処理、図8のMODE IN経過処
理、図9の出題経過処理、図10の説明図、図11のE
ND_MES経過処理、図12の正解MES経過処理、
および図14のEND_MES処理は、原則として第2
の実施例に適用される。
【0125】第2の実施例では、第1の実施例における
図7のANSWER TRIGGER処理、図13のA
NSWER処理、図15の乱数処理、および図16の出
題処理に対応する各処理が、第1の実施例の場合と異な
る。
図7のANSWER TRIGGER処理、図13のA
NSWER処理、図15の乱数処理、および図16の出
題処理に対応する各処理が、第1の実施例の場合と異な
る。
【0126】以下の説明では、これら第1の実施例と異
なる処理についてのみ説明する。 <第2の実施例の具体的動作における問題和音の出題動
作の説明>まず、予め用意されている和音から、そのい
ずれかを問題としてランダムに決定するための乱数処理
について、図17を用いて説明する。この処理は、図4
のステップS412のANSWER時間処理内の図6の
ステップS610の処理として実行される。
なる処理についてのみ説明する。 <第2の実施例の具体的動作における問題和音の出題動
作の説明>まず、予め用意されている和音から、そのい
ずれかを問題としてランダムに決定するための乱数処理
について、図17を用いて説明する。この処理は、図4
のステップS412のANSWER時間処理内の図6の
ステップS610の処理として実行される。
【0127】まず、ステップS1701において、所定
の乱数メモリ値が読み出されてレジスタXに格納され
る。このメモリ値は、ステップS1701が実行される
タイミングで特には図示しない乱数発生処理によって演
算され保持される。
の乱数メモリ値が読み出されてレジスタXに格納され
る。このメモリ値は、ステップS1701が実行される
タイミングで特には図示しない乱数発生処理によって演
算され保持される。
【0128】つぎに、ステップS1702において、出
題範囲を示す変数の内容が範囲Iか否かが判定される。
始めは、図4のステップ404のGAME MODE
IN処理内の図5のステップS504で範囲Iに初期化
されているため、ステップS1703が実行される。こ
こでは、問題数を示す変数Mに値20がセットされる。
題範囲を示す変数の内容が範囲Iか否かが判定される。
始めは、図4のステップ404のGAME MODE
IN処理内の図5のステップS504で範囲Iに初期化
されているため、ステップS1703が実行される。こ
こでは、問題数を示す変数Mに値20がセットされる。
【0129】なお、出題範囲IIの場合には、ステップ
S1704が実行され、問題数を示す変数Mに値40が
セットされる。つぎに、ステップS1705では、ステ
ップS1701でレジスタXに格納された乱数メモリ値
をステップS1703またはS1704で変数Mにセッ
トされた値で割った剰余が新たにレジスタXに格納し直
される。この処理により、レジスタXの値は、問題数が
20(範囲Iの場合)なら0〜19の数値、問題数が4
0(範囲IIの場合)なら0〜39の数値のいずれかの
数値がランダムに選択される。
S1704が実行され、問題数を示す変数Mに値40が
セットされる。つぎに、ステップS1705では、ステ
ップS1701でレジスタXに格納された乱数メモリ値
をステップS1703またはS1704で変数Mにセッ
トされた値で割った剰余が新たにレジスタXに格納し直
される。この処理により、レジスタXの値は、問題数が
20(範囲Iの場合)なら0〜19の数値、問題数が4
0(範囲IIの場合)なら0〜39の数値のいずれかの
数値がランダムに選択される。
【0130】ここで、ROMであるデータメモリ107
には、連続する3アドレスを1組として、それぞれの組
に対応する和音を構成する各構成音のキーコードが、図
18に示されるように書き込まれている。図18の例で
は、上から順にハ長調のド、ミ、ソに当たるC4 、E
4 、G4 の長三和音、同じくソ、シ、レに当たるG4 、
B4 、D5 の長三和音など、ユーザが解答するのが比較
的容易な範囲Iの和音のキーコードが20組、オフセッ
トアドレスであるアドレス10からアドレス69までに
合計60個のキーコードが書きまれている。そして、図
18において、上述の範囲Iに対応するキーコードにつ
づいて、範囲IIの短三和音の各キーコードが書き込ま
れている。
には、連続する3アドレスを1組として、それぞれの組
に対応する和音を構成する各構成音のキーコードが、図
18に示されるように書き込まれている。図18の例で
は、上から順にハ長調のド、ミ、ソに当たるC4 、E
4 、G4 の長三和音、同じくソ、シ、レに当たるG4 、
B4 、D5 の長三和音など、ユーザが解答するのが比較
的容易な範囲Iの和音のキーコードが20組、オフセッ
トアドレスであるアドレス10からアドレス69までに
合計60個のキーコードが書きまれている。そして、図
18において、上述の範囲Iに対応するキーコードにつ
づいて、範囲IIの短三和音の各キーコードが書き込ま
れている。
【0131】このようにデータメッセージ107に書き
込まれている任意の和音の3つのキーコードをランダム
に読み出し発音させるために、まず、ステップS170
6において、レジスタXの値に値3が乗算された結果が
新たにレジスタXに格納され、つづくステップS170
7において、レジスタXの値に変数TABLE OFF
SETに格納された図18のオフセットアドレス値が加
算され、その加算結果が任意の和音の先頭のキーコード
のアドレスとしてレジスタYに格納される。
込まれている任意の和音の3つのキーコードをランダム
に読み出し発音させるために、まず、ステップS170
6において、レジスタXの値に値3が乗算された結果が
新たにレジスタXに格納され、つづくステップS170
7において、レジスタXの値に変数TABLE OFF
SETに格納された図18のオフセットアドレス値が加
算され、その加算結果が任意の和音の先頭のキーコード
のアドレスとしてレジスタYに格納される。
【0132】例えば、出題範囲Iが選択されている場
合、乱数メモリ値を問題数で除算した余りが19である
として、この値19に値3が乗算されて得られた値57
に、オフセットアドレス10が加算されると、値67が
得られる。この値67が、問題となる和音を構成する音
の先頭のキーコード(図18の例ではF5 )のアドレス
に相当する。
合、乱数メモリ値を問題数で除算した余りが19である
として、この値19に値3が乗算されて得られた値57
に、オフセットアドレス10が加算されると、値67が
得られる。この値67が、問題となる和音を構成する音
の先頭のキーコード(図18の例ではF5 )のアドレス
に相当する。
【0133】つぎに、ステップS1708において、変
数iが値0に初期化される。そして、まず、ステップS
1709において、上記アドレス値を格納したレジスタ
Yに対応する内容、すなわち和音の3つのキーコードの
うちの先頭のキーコードが、出題鍵の1番目のキーコー
ドとして、配列Q_BUF
数iが値0に初期化される。そして、まず、ステップS
1709において、上記アドレス値を格納したレジスタ
Yに対応する内容、すなわち和音の3つのキーコードの
うちの先頭のキーコードが、出題鍵の1番目のキーコー
ドとして、配列Q_BUF
〔0〕に書き込まれる。例え
ば、上述した図18に関する例では、アドレス値57の
示す内容であるF5 のキーコードが、Q_BUF
ば、上述した図18に関する例では、アドレス値57の
示す内容であるF5 のキーコードが、Q_BUF
〔0〕
に書き込まれる。
に書き込まれる。
【0134】つぎに、i=3になるまで(ステップS1
712)、変数iとレジスタYの各値がインクリメント
され(ステップS1710、S1711)、Yの示す内
容がQ_BUF〔i〕に書き込まれる。すなわち、上述
した図18に関する例では、アドレス値58、59のそ
れぞれの示す内容であるA5 、C6 のそれぞれのキーコ
ードが、配列Q_BUF〔1〕とQ_BUF〔2〕に書
き込まれる。
712)、変数iとレジスタYの各値がインクリメント
され(ステップS1710、S1711)、Yの示す内
容がQ_BUF〔i〕に書き込まれる。すなわち、上述
した図18に関する例では、アドレス値58、59のそ
れぞれの示す内容であるA5 、C6 のそれぞれのキーコ
ードが、配列Q_BUF〔1〕とQ_BUF〔2〕に書
き込まれる。
【0135】以上のようにして、ランダムに選択された
出題鍵の和音を構成する3つの音のキーコードが、配列
Q_BUF
出題鍵の和音を構成する3つの音のキーコードが、配列
Q_BUF
〔0〕、Q_BUF〔1〕、Q_BUF
〔2〕に順次書き込まれる。
〔2〕に順次書き込まれる。
【0136】以上の処理として図6のステップS610
の乱数処理が実行された後、図6のステップS611の
出題処理が実行される。この処理は、図19に示されて
いる。
の乱数処理が実行された後、図6のステップS611の
出題処理が実行される。この処理は、図19に示されて
いる。
【0137】まず、出題鍵として配列Q_BUF
〔0〕、Q_BUF〔1〕およびQ_BUF〔2〕に格
納された3つのキーコードが発音鍵メモリにセットされ
る(ステップS1901)。そして、この発音鍵メモリ
にセットされた3つのキーコードを有するPCM方式に
よる出題鍵の3種類の楽音データが時分割処理によって
読み出され、アタック処理によって、聴感上同時に発音
が行われる(ステップS1902)。
納された3つのキーコードが発音鍵メモリにセットされ
る(ステップS1901)。そして、この発音鍵メモリ
にセットされた3つのキーコードを有するPCM方式に
よる出題鍵の3種類の楽音データが時分割処理によって
読み出され、アタック処理によって、聴感上同時に発音
が行われる(ステップS1902)。
【0138】つぎのステップS1903では、現在シー
ケンスフラグが「待機中」から「出題中」を示す値に変
えられる(ステップS1603)。つづいて、ステップ
S1904において、ユーザが押鍵した入力鍵のキーコ
ードが書き込まれる配列であるキーコードバッファKC
_BURの内容がクリアされる。このバッファについて
は後述する。
ケンスフラグが「待機中」から「出題中」を示す値に変
えられる(ステップS1603)。つづいて、ステップ
S1904において、ユーザが押鍵した入力鍵のキーコ
ードが書き込まれる配列であるキーコードバッファKC
_BURの内容がクリアされる。このバッファについて
は後述する。
【0139】また、変数であるカウンタS_CNTがク
リアされるとともに(ステップS1905)、フラグS
_CNT_FLGもクリアされる(ステップS190
6)。これら2つの機能については第1の実施例におい
て既に説明した。
リアされるとともに(ステップS1905)、フラグS
_CNT_FLGもクリアされる(ステップS190
6)。これら2つの機能については第1の実施例におい
て既に説明した。
【0140】さらに、ユーザーの押鍵数をカウントする
キーコードカウンタKC_CNTもクリアされる(ステ
ップS1907)。これについても後述する。加えて、
リリースカウンタRL_CNTがクリアされる(ステッ
プS1908)。このカウンタについては、第1の実施
例で説明したように、出題される3つの楽音を0.5秒
間ずつ発音させるための時間カウンタであり、上記クリ
ア以後、この内容はCPU101(図1)内の特には図
示しないタイマによってカウントアップされる。
キーコードカウンタKC_CNTもクリアされる(ステ
ップS1907)。これについても後述する。加えて、
リリースカウンタRL_CNTがクリアされる(ステッ
プS1908)。このカウンタについては、第1の実施
例で説明したように、出題される3つの楽音を0.5秒
間ずつ発音させるための時間カウンタであり、上記クリ
ア以後、この内容はCPU101(図1)内の特には図
示しないタイマによってカウントアップされる。
【0141】その後、出題中はユーザによる押鍵操作を
受け付けないようにするため、図1の鍵盤103が押鍵
不可能状態(キーボードOFF)にされる(ステップS
1909)。
受け付けないようにするため、図1の鍵盤103が押鍵
不可能状態(キーボードOFF)にされる(ステップS
1909)。
【0142】以上の処理により、図6のステップS61
1の出題処理を終了して図4のメインフローに戻り、ス
テップS412のANSWER時間処理を終る。そし
て、上述のように図1の鍵盤103が押鍵不可能状態に
なっているためステップS408の判定がNOになり、
再びステップS412のANSWER時間処理に戻って
くる。そして、図6のANSWER時間処理のステップ
S604として実行される図9の出題経過処理の動作
は、第1の実施例の場合と同様である。 <第2の実施例の具体的動作におけるユーザの解答動作
の説明>つぎに、上述した出題経過処理が行われ、問題
である和音の発音が終わると、キーボードがONにされ
(図9のステップS907参照)、最大20秒のユーザ
からの「入力待ち」(ANSWER待機)の状態にな
る。このときの制御動作も第1の実施例の場合と同様で
ある。
1の出題処理を終了して図4のメインフローに戻り、ス
テップS412のANSWER時間処理を終る。そし
て、上述のように図1の鍵盤103が押鍵不可能状態に
なっているためステップS408の判定がNOになり、
再びステップS412のANSWER時間処理に戻って
くる。そして、図6のANSWER時間処理のステップ
S604として実行される図9の出題経過処理の動作
は、第1の実施例の場合と同様である。 <第2の実施例の具体的動作におけるユーザの解答動作
の説明>つぎに、上述した出題経過処理が行われ、問題
である和音の発音が終わると、キーボードがONにされ
(図9のステップS907参照)、最大20秒のユーザ
からの「入力待ち」(ANSWER待機)の状態にな
る。このときの制御動作も第1の実施例の場合と同様で
ある。
【0143】上記「入力待ち」の状態において、出題鍵
の和音を発音開始後20秒以内にユーザーが解答のため
の押鍵を行うと、図4のステップS409の判定がYE
Sとなり、ステップS410のANSWER TRIG
GER処理が実行される。この処理は、図20に示され
る。
の和音を発音開始後20秒以内にユーザーが解答のため
の押鍵を行うと、図4のステップS409の判定がYE
Sとなり、ステップS410のANSWER TRIG
GER処理が実行される。この処理は、図20に示され
る。
【0144】第1の実施例における図7のANSWER
TRIGGER処理は、ユーザが押鍵した1鍵の鍵に
対応するように構成されていたが、第2の実施例に関す
る図20の処理では、ユーザが和音の解答として押鍵す
る複数鍵に対応できるように構成される。
TRIGGER処理は、ユーザが押鍵した1鍵の鍵に
対応するように構成されていたが、第2の実施例に関す
る図20の処理では、ユーザが和音の解答として押鍵す
る複数鍵に対応できるように構成される。
【0145】また、ユーザーが同時に複数鍵を押鍵した
場合またはユーザが1鍵ずつ順次押鍵した場合のいずれ
にも対応可能である。すなわち、ユーザが1タイミング
に1鍵だけ押鍵した場合には、ステップS2001でそ
の1鍵のみに対応するキーコードが変数KCの値として
取得され、以降の処理が実行される。一方、ユーザが複
数鍵を同時に押鍵した場合には、ステップS2015の
判定がNOとなる状態が繰り返されることにより、ステ
ップS2001で各鍵に対応するキーコードがが変数K
Cの値として順次取得され、以降の処理が順次繰り返し
実行される。
場合またはユーザが1鍵ずつ順次押鍵した場合のいずれ
にも対応可能である。すなわち、ユーザが1タイミング
に1鍵だけ押鍵した場合には、ステップS2001でそ
の1鍵のみに対応するキーコードが変数KCの値として
取得され、以降の処理が実行される。一方、ユーザが複
数鍵を同時に押鍵した場合には、ステップS2015の
判定がNOとなる状態が繰り返されることにより、ステ
ップS2001で各鍵に対応するキーコードがが変数K
Cの値として順次取得され、以降の処理が順次繰り返し
実行される。
【0146】上述のステップS2001において、1鍵
ずつ順次キーコードが取得された後に、ステップS20
02において、そのキーコードを格納する変数KCの値
から値12が減算されて新たに変数KCに格納される。
つぎに、ステップS2003において、減算された変数
KCの値が、音名F3 の鍵のキーコードより小さいか否
かが判定される。小さくなければステップS2002に
戻り、ふたたびその変数KCの値から値12が減算され
る。このようにして、ステップS2002を通過するた
びに、キーコードを格納した変数KCの値から値12が
減算されて、変数KCの値がF3 の鍵のキーコードより
小さくなったら、ステップS2004において、その値
に値12が加算される。
ずつ順次キーコードが取得された後に、ステップS20
02において、そのキーコードを格納する変数KCの値
から値12が減算されて新たに変数KCに格納される。
つぎに、ステップS2003において、減算された変数
KCの値が、音名F3 の鍵のキーコードより小さいか否
かが判定される。小さくなければステップS2002に
戻り、ふたたびその変数KCの値から値12が減算され
る。このようにして、ステップS2002を通過するた
びに、キーコードを格納した変数KCの値から値12が
減算されて、変数KCの値がF3 の鍵のキーコードより
小さくなったら、ステップS2004において、その値
に値12が加算される。
【0147】例えばユーザーがC5 (KC=72)を押
鍵したとすると、72−12=60はF3 音のキーコー
ド53より小さくないため、さらに60から12が引か
れ、48がキーコード(C3 に対応する)として得られ
る。この48はF3 のキーコード53より小さいため、
この48に12が加算され、キーコード60(C4 に対
応)が得られる。
鍵したとすると、72−12=60はF3 音のキーコー
ド53より小さくないため、さらに60から12が引か
れ、48がキーコード(C3 に対応する)として得られ
る。この48はF3 のキーコード53より小さいため、
この48に12が加算され、キーコード60(C4 に対
応)が得られる。
【0148】このようにして、ユーザーが押鍵した鍵の
キーコードに対応する最低のオクターブ(本実施例の場
合はF3 〜F4 の音域)におけるキーコードが得られ
る。つぎに、ステップS2005以下の処理によって、
変数KCに得られたキーコードが配列であるキーコード
バッファKC_BUFに順次格納される。すなわち、ユ
ーザーが3鍵押鍵すれば、キーコードバッファKC_B
UF
キーコードに対応する最低のオクターブ(本実施例の場
合はF3 〜F4 の音域)におけるキーコードが得られ
る。つぎに、ステップS2005以下の処理によって、
変数KCに得られたキーコードが配列であるキーコード
バッファKC_BUFに順次格納される。すなわち、ユ
ーザーが3鍵押鍵すれば、キーコードバッファKC_B
UF
〔0〕〜KC_BUF〔2〕に、順次3つのキーコ
ードが格納される。ただし、ユーザーが同一の鍵を繰り
返し押鍵しても、その押鍵は無視されるように処理が実
行される。
ードが格納される。ただし、ユーザーが同一の鍵を繰り
返し押鍵しても、その押鍵は無視されるように処理が実
行される。
【0149】まず、ステップS2005において、キー
コードバッファKC_BUF〔i〕の内容を示すポイン
タiが、クリアされる。つぎに、ステップS2006
で、キーコードバッファKC_BUF〔i〕=KC_B
UF
コードバッファKC_BUF〔i〕の内容を示すポイン
タiが、クリアされる。つぎに、ステップS2006
で、キーコードバッファKC_BUF〔i〕=KC_B
UF
〔0〕の内容が、変数KCに格納されたキーコード
の値に等しいか否かが判定される。
の値に等しいか否かが判定される。
【0150】最初は、キーコードバッファKC_BUF
の内容は、図4のステップS412のANSWER時間
処理内の図6のステップS611の出題処理内の図19
のステップS1904においてクリアされており、キー
コードバッファKC_BUF
の内容は、図4のステップS412のANSWER時間
処理内の図6のステップS611の出題処理内の図19
のステップS1904においてクリアされており、キー
コードバッファKC_BUF
〔0〕には初期値が入って
いる。従って、ステップS2006の判定はNOとなっ
て、ステップS2007が実行される。ここでは、ポイ
ンタiの値とキーコードカウンタKC_CNTの値が比
較される。
いる。従って、ステップS2006の判定はNOとなっ
て、ステップS2007が実行される。ここでは、ポイ
ンタiの値とキーコードカウンタKC_CNTの値が比
較される。
【0151】キーコードカウンタKC_CNTは、今回
のANS_TRIGGER処理が終わった時点までで何
鍵が押鍵されたかを示すカウンタで、この内容は図4の
ステップS412のANSWER時間処理内の図6のス
テップS611の出題処理内の図19のステップS19
07で値0にクリアされている。従って、最初は、ステ
ップS2007の判定はYESとなる。
のANS_TRIGGER処理が終わった時点までで何
鍵が押鍵されたかを示すカウンタで、この内容は図4の
ステップS412のANSWER時間処理内の図6のス
テップS611の出題処理内の図19のステップS19
07で値0にクリアされている。従って、最初は、ステ
ップS2007の判定はYESとなる。
【0152】つづくステップS2009では、キーコー
ドカウンタKC_CNTの値がインクリメントされ、そ
の値は1になる。つぎに、ステップS2010におい
て、キーコードカウンタKC_CNTの値が3を超した
か否かが判定される。
ドカウンタKC_CNTの値がインクリメントされ、そ
の値は1になる。つぎに、ステップS2010におい
て、キーコードカウンタKC_CNTの値が3を超した
か否かが判定される。
【0153】最初は3を超していないので、つぎのステ
ップS2011で、フラグS_CNT_FLGが1か否
かが判定される。この判定がNOなら、ステップS20
12でフラグS_CNT_FLGが1にされ、判定がY
ESなら、ステップS2013に進む。この制御処理の
意味は、第1の実施例における図7のステップS701
とS702の場合と同様である。
ップS2011で、フラグS_CNT_FLGが1か否
かが判定される。この判定がNOなら、ステップS20
12でフラグS_CNT_FLGが1にされ、判定がY
ESなら、ステップS2013に進む。この制御処理の
意味は、第1の実施例における図7のステップS701
とS702の場合と同様である。
【0154】ステップS2013では、変数KCに格納
されている現在のキーコードがキーコードバッファKC
_BUF〔KC_CNT−1〕に格納される。ここで、
キーコードカウンタKC_CNTの値がステップS20
09で値1にされているため、添字〔KC_CNT−
1〕は値0になる。その結果、キーコードバッファKC
_BUF
されている現在のキーコードがキーコードバッファKC
_BUF〔KC_CNT−1〕に格納される。ここで、
キーコードカウンタKC_CNTの値がステップS20
09で値1にされているため、添字〔KC_CNT−
1〕は値0になる。その結果、キーコードバッファKC
_BUF
〔0〕に変数KCの内容、すなわち、ユーザー
によって押鍵された第1鍵目のキーコードが格納され
る。
によって押鍵された第1鍵目のキーコードが格納され
る。
【0155】つぎに、ユーザが、同時に2鍵以上の鍵を
押鍵している場合には、ステップS2015の判定がN
OとなってステップS2001に戻り、上述の場合と同
様の処理が繰り返される。
押鍵している場合には、ステップS2015の判定がN
OとなってステップS2001に戻り、上述の場合と同
様の処理が繰り返される。
【0156】一方、ユーザが、1タイミングで1鍵しか
押鍵していない場合には、ステップS2015の判定は
YESとなる。この結果、図4のステップS410のA
NSWER TRIGGER処理を終了し、メインフロ
ーに戻る。
押鍵していない場合には、ステップS2015の判定は
YESとなる。この結果、図4のステップS410のA
NSWER TRIGGER処理を終了し、メインフロ
ーに戻る。
【0157】その後、図4のS411→S412→図6
のS601→S602→S604→図9のS901→図
6のS605→図11のS1101→図6のS606→
S607→S608→S612→S616→図4のS4
13〜S415→S40S→S407→S408→S4
09→S411の経路で、第2鍵目以降の「入力待ち」
の状態(ANS待機状態)(図10参照)が継続され
る。
のS601→S602→S604→図9のS901→図
6のS605→図11のS1101→図6のS606→
S607→S608→S612→S616→図4のS4
13〜S415→S40S→S407→S408→S4
09→S411の経路で、第2鍵目以降の「入力待ち」
の状態(ANS待機状態)(図10参照)が継続され
る。
【0158】そして、出題鍵の和音を発音開始後20秒
以内にユーザーが第2鍵目の解答のための押鍵を行う
と、図4のステップS409の判定がYESとなって、
再びステップS410のANSWER TRIGGER
処理が実行され、図20の動作フローが実行される。
以内にユーザーが第2鍵目の解答のための押鍵を行う
と、図4のステップS409の判定がYESとなって、
再びステップS410のANSWER TRIGGER
処理が実行され、図20の動作フローが実行される。
【0159】なお、出題鍵の和音を発音開始後20秒以
内にユーザーが第2鍵目または第3鍵目の押鍵を行わな
かった場合には、図4のステップS412のANSWE
R時間処理内の図6のステップS612の判定がYES
となる。これ以降の処理は、第1の実施例の場合と同様
である。
内にユーザーが第2鍵目または第3鍵目の押鍵を行わな
かった場合には、図4のステップS412のANSWE
R時間処理内の図6のステップS612の判定がYES
となる。これ以降の処理は、第1の実施例の場合と同様
である。
【0160】つぎに、ユーザが、同時に第2鍵目の鍵を
押鍵することにより、または第1鍵目の鍵の押鍵につづ
けて第2鍵目の鍵を押鍵することにより実行される図2
0の動作フローの処理について説明する。
押鍵することにより、または第1鍵目の鍵の押鍵につづ
けて第2鍵目の鍵を押鍵することにより実行される図2
0の動作フローの処理について説明する。
【0161】ステップS2001〜S2005までは第
1鍵目の場合と同様なので、説明を省略する。ステップ
S2006において、変数KCに格納されている第2鍵
目の入力鍵のキーコードと、キーコードバッファKC_
BUF〔i〕=KC_BUF
1鍵目の場合と同様なので、説明を省略する。ステップ
S2006において、変数KCに格納されている第2鍵
目の入力鍵のキーコードと、キーコードバッファKC_
BUF〔i〕=KC_BUF
〔0〕に格納されている第
1鍵目のキーコードとが一致するか否かが判定される。
1鍵目のキーコードとが一致するか否かが判定される。
【0162】ここで、もしキーコードバッファKC_B
UF
UF
〔0〕の内容と変数KCの内容が一致していれば、
同じ鍵がつづけて押鍵されたことになるため、この場
合、ステップS2006の判定がYESになり、図4の
ステップS410のANSWER TRIGGER処理
を終了し、メインフローに戻る。すなわち、同じ鍵がつ
づけて押鍵された場合は、その鍵は無視される。
同じ鍵がつづけて押鍵されたことになるため、この場
合、ステップS2006の判定がYESになり、図4の
ステップS410のANSWER TRIGGER処理
を終了し、メインフローに戻る。すなわち、同じ鍵がつ
づけて押鍵された場合は、その鍵は無視される。
【0163】第2鍵目が第1鍵目と異なれば、キーコー
ドバッファKC_BUF
ドバッファKC_BUF
〔0〕の内容と変数KCの内容
が一致しないので、ステップS2006の判定はNOに
なる。
が一致しないので、ステップS2006の判定はNOに
なる。
【0164】つぎに、ステップS2007で、ポインタ
iの値とキーコードカウンタKC_CNTの値が比較さ
れる。現在、ポインタiはステップS2005で値0に
なっており、また、キーコードカウンタKC_CNTの
値は第1鍵目の処理であるステップS2009で値1に
されている。そのため、ステップS2007の判定がN
Oとなり、つぎのステップS2008でポインタiがイ
ンクリメントされ、その値が1になる。
iの値とキーコードカウンタKC_CNTの値が比較さ
れる。現在、ポインタiはステップS2005で値0に
なっており、また、キーコードカウンタKC_CNTの
値は第1鍵目の処理であるステップS2009で値1に
されている。そのため、ステップS2007の判定がN
Oとなり、つぎのステップS2008でポインタiがイ
ンクリメントされ、その値が1になる。
【0165】その結果、ステップS2006で、キーコ
ードバッファKC_BUF〔i〕=KC_BUF〔1〕
の内容と変数KCの内容が比較される。ここで、キーコ
ードバッファKC_BUF〔1〕の内容は、図4のステ
ップS412のANSWER時間処理内の図6のステッ
プS611の出題処理内の図19のステップS1904
においてクリアされたままである。従って、ステップS
2006の判定はNOになる。
ードバッファKC_BUF〔i〕=KC_BUF〔1〕
の内容と変数KCの内容が比較される。ここで、キーコ
ードバッファKC_BUF〔1〕の内容は、図4のステ
ップS412のANSWER時間処理内の図6のステッ
プS611の出題処理内の図19のステップS1904
においてクリアされたままである。従って、ステップS
2006の判定はNOになる。
【0166】つぎのステップS2007の判定は、ポイ
ンタiの値もキーコードカウンタKC_CNTの値もと
もに値1であるため、YESになる。つづくステップS
2009では、キーコードカウンタKC_CNTの値が
インクリメントされ、その値は2になる。
ンタiの値もキーコードカウンタKC_CNTの値もと
もに値1であるため、YESになる。つづくステップS
2009では、キーコードカウンタKC_CNTの値が
インクリメントされ、その値は2になる。
【0167】つぎに、ステップS2010において、キ
ーコードカウンタKC_CNTの値が3を超したか否か
が判定される。現在はまだ3を超していないので、その
判定はNOとなる。そして、第1鍵目の処理の場合と同
じステップS2011、S2012の処理を経て、ステ
ップS2013が実行される。
ーコードカウンタKC_CNTの値が3を超したか否か
が判定される。現在はまだ3を超していないので、その
判定はNOとなる。そして、第1鍵目の処理の場合と同
じステップS2011、S2012の処理を経て、ステ
ップS2013が実行される。
【0168】ステップS2013では、変数KCに格納
されている第2鍵目の鍵のキーコードがキーコードバッ
ファKC_BUF〔KC_CNT−1〕に格納される。
ここで、キーコードカウンタKC_CNTの値がステッ
プS2009で値2にされているため、添字〔KC_C
NT−1〕は値1になる。その結果、キーコードバッフ
ァKC_BUF〔1〕に変数KCの内容、すなわち、ユ
ーザーによって押鍵された第2鍵目の鍵のキーコードが
格納される。
されている第2鍵目の鍵のキーコードがキーコードバッ
ファKC_BUF〔KC_CNT−1〕に格納される。
ここで、キーコードカウンタKC_CNTの値がステッ
プS2009で値2にされているため、添字〔KC_C
NT−1〕は値1になる。その結果、キーコードバッフ
ァKC_BUF〔1〕に変数KCの内容、すなわち、ユ
ーザーによって押鍵された第2鍵目の鍵のキーコードが
格納される。
【0169】つぎに、ユーザが、第1鍵目または第2鍵
目と同時に第3鍵目の鍵を押鍵することにより、または
第2鍵目の押鍵後につづけて第3鍵目の鍵を押鍵するこ
とにより実行される図20の動作フローの処理について
説明する。
目と同時に第3鍵目の鍵を押鍵することにより、または
第2鍵目の押鍵後につづけて第3鍵目の鍵を押鍵するこ
とにより実行される図20の動作フローの処理について
説明する。
【0170】この場合も上述した第2鍵目の押鍵が行わ
れた場合の処理と同じである。すなわち、ステップS2
001〜S2005の処理の後に、ステップS2006
→S2007→S2008→S2006のループ処理に
より、変数KCに格納されている第3鍵目の入力鍵のキ
ーコードが、キーコードバッファKC_BUF
れた場合の処理と同じである。すなわち、ステップS2
001〜S2005の処理の後に、ステップS2006
→S2007→S2008→S2006のループ処理に
より、変数KCに格納されている第3鍵目の入力鍵のキ
ーコードが、キーコードバッファKC_BUF
〔0〕お
よびKC_BUF〔1〕に格納されている第1鍵目およ
び第2鍵目の各キーコードと一致するか否かが順次判定
される。
よびKC_BUF〔1〕に格納されている第1鍵目およ
び第2鍵目の各キーコードと一致するか否かが順次判定
される。
【0171】もしいずれかと一致すれば、第1鍵目また
は第2鍵目と同じ鍵がつづけて押鍵されたことになるた
め、ステップS2006の判定がYESになり、図4の
ステップS410のANSWER TRIGGER処理
を終了し、メインフローに戻る。すなわち、同じ鍵がつ
づけて押鍵された場合は、その鍵は無視される。
は第2鍵目と同じ鍵がつづけて押鍵されたことになるた
め、ステップS2006の判定がYESになり、図4の
ステップS410のANSWER TRIGGER処理
を終了し、メインフローに戻る。すなわち、同じ鍵がつ
づけて押鍵された場合は、その鍵は無視される。
【0172】いずれとも一致しなければ、上記ループ処
理の2周目のステップS2007の判定がYESとな
り、ステップS2009でキーコードカウンタKC_C
NTの値が3にインクリメントされた後、ステップS2
010〜S2012を経て、ステップS2013が実行
される。
理の2周目のステップS2007の判定がYESとな
り、ステップS2009でキーコードカウンタKC_C
NTの値が3にインクリメントされた後、ステップS2
010〜S2012を経て、ステップS2013が実行
される。
【0173】ステップS2013では、変数KCに格納
されている第3鍵目の鍵のキーコードがキーコードバッ
ファKC_BUF〔KC_CNT−1〕に格納される。
ここで、キーコードカウンタKC_CNTの値がステッ
プS2009で値3にされているため、添字〔KC_C
NT−1〕は値2になる。その結果、キーコードバッフ
ァKC_BUF〔2〕に変数KCの内容、すなわち、ユ
ーザーによって押鍵された第3鍵目の鍵のキーコードが
格納される。
されている第3鍵目の鍵のキーコードがキーコードバッ
ファKC_BUF〔KC_CNT−1〕に格納される。
ここで、キーコードカウンタKC_CNTの値がステッ
プS2009で値3にされているため、添字〔KC_C
NT−1〕は値2になる。その結果、キーコードバッフ
ァKC_BUF〔2〕に変数KCの内容、すなわち、ユ
ーザーによって押鍵された第3鍵目の鍵のキーコードが
格納される。
【0174】以上の処理によって、押鍵された3鍵のキ
ーコードがキーコードバッファKC_BUF
ーコードがキーコードバッファKC_BUF
〔0〕、K
C_BUF〔1〕およびKC_BUF〔2〕に順次格納
されてゆく。
C_BUF〔1〕およびKC_BUF〔2〕に順次格納
されてゆく。
【0175】以上は、ユーザーが3鍵を押鍵する通常の
場合であるが、ユーザーが誤って4鍵を押鍵した場合に
ついて以下に説明する。第4鍵目が押鍵されると、第2
鍵目、第3鍵目の場合と同様に、ステップS2001〜
S2008が実行され、つづくステップS2009にお
いて、キーコードカウンタKC_CNTの値がインクリ
メントされて、その値は4になる。
場合であるが、ユーザーが誤って4鍵を押鍵した場合に
ついて以下に説明する。第4鍵目が押鍵されると、第2
鍵目、第3鍵目の場合と同様に、ステップS2001〜
S2008が実行され、つづくステップS2009にお
いて、キーコードカウンタKC_CNTの値がインクリ
メントされて、その値は4になる。
【0176】この結果、キーコードカウンタKC_CN
Tの値が3より大きくなり、ステップS2010の判定
がYESとなって、つづくステップS2014で正誤フ
ラグが「誤」にセットされる。
Tの値が3より大きくなり、ステップS2010の判定
がYESとなって、つづくステップS2014で正誤フ
ラグが「誤」にセットされる。
【0177】以上の処理により、ユーザーが誤って4鍵
を押鍵した場合は、正誤フラグが強制的に「誤」にセッ
トされ、後述するANSWER処理において不正解の処
理がなされる。 <第2の実施例の具体的動作における正解/不正解処理
の説明>以上説明した図4のステップS410のANS
_TRIGGER処理において、第1鍵目の押鍵に対応
して図20のステップS2012によってフラグS_C
NT_FLGが1にされた後、1秒を経過すると、図4
のステップS412のANSWER時間処理内の図6の
ステップS616の判定がYESとなる。これにより、
ステップS617およびS618を介して、ステップS
619のANSWER処理が実行される。すなわち、第
2鍵目、第3鍵目が押鍵されなくても、ANSWER処
理は実行される。これは、ユーザが解答となる鍵を入力
途中でも、それまでに入力された鍵が問題である和音の
出題鍵のいずれとも一致しなければ、その時点で即座に
不正解の処理を行えるようにするためである。
を押鍵した場合は、正誤フラグが強制的に「誤」にセッ
トされ、後述するANSWER処理において不正解の処
理がなされる。 <第2の実施例の具体的動作における正解/不正解処理
の説明>以上説明した図4のステップS410のANS
_TRIGGER処理において、第1鍵目の押鍵に対応
して図20のステップS2012によってフラグS_C
NT_FLGが1にされた後、1秒を経過すると、図4
のステップS412のANSWER時間処理内の図6の
ステップS616の判定がYESとなる。これにより、
ステップS617およびS618を介して、ステップS
619のANSWER処理が実行される。すなわち、第
2鍵目、第3鍵目が押鍵されなくても、ANSWER処
理は実行される。これは、ユーザが解答となる鍵を入力
途中でも、それまでに入力された鍵が問題である和音の
出題鍵のいずれとも一致しなければ、その時点で即座に
不正解の処理を行えるようにするためである。
【0178】ANSWER処理は、図21に示される。
まず、ステップS2101において、正誤フラグが
「誤」であるか否かが判定される。
まず、ステップS2101において、正誤フラグが
「誤」であるか否かが判定される。
【0179】前述したように、ユーザーが誤って4鍵を
押鍵した場合は、図4のステップS410のANSWE
R TRIGGER処理内の図20のステップS201
4で、正誤フラグが強制的に「誤」にセットされる。こ
の場合には、ステップS2101の判定がYESとなっ
て、即座に、後述するANSWER処理において不正解
の処理がなされる。
押鍵した場合は、図4のステップS410のANSWE
R TRIGGER処理内の図20のステップS201
4で、正誤フラグが強制的に「誤」にセットされる。こ
の場合には、ステップS2101の判定がYESとなっ
て、即座に、後述するANSWER処理において不正解
の処理がなされる。
【0180】ユーザによる押鍵数が4鍵より少なければ
ステップS2101の判定はNOとなって、ステップS
2102以降の処理が実行される。まず、ステップS2
102において、ポインタiがクリアされる。
ステップS2101の判定はNOとなって、ステップS
2102以降の処理が実行される。まず、ステップS2
102において、ポインタiがクリアされる。
【0181】つぎに、ステップS2103において、キ
ーコードバッファKC_BUF
ーコードバッファKC_BUF
〔0〕の内容、すなわ
ち、ユーザにより押鍵された第1鍵目の内容がレジスタ
Xに移される。
ち、ユーザにより押鍵された第1鍵目の内容がレジスタ
Xに移される。
【0182】つぎに、ステップS2104において、ポ
インタjがクリアされる。そして、ステップS2106
においてポインタjが順次インクリメントされながら、
ステップS2105→S2106→S2107→S21
05のループ処理において、変数Xの内容と、出題され
た出題鍵(出題される和音に対応する鍵)のキーコード
が格納されている配列Q_BUF
インタjがクリアされる。そして、ステップS2106
においてポインタjが順次インクリメントされながら、
ステップS2105→S2106→S2107→S21
05のループ処理において、変数Xの内容と、出題され
た出題鍵(出題される和音に対応する鍵)のキーコード
が格納されている配列Q_BUF
〔0〕〜Q_BUF
〔2〕のそれぞれ内容とが順次比較される。
〔2〕のそれぞれ内容とが順次比較される。
【0183】ここで、変数Xの内容が、Q_BUF
〔0〕〜Q_BUF〔2〕のいずれとも一致しない場合
は、つぎの理由が考えられる。すなわち、ユーザーが押
鍵した鍵(入力鍵)のキーコードが格納されているキー
コードバッファKC_BUFには、前述した図4のステ
ップS410のANSWER TRIGGER処理内の
図20のステップS2002〜S2004の処理によっ
て、最低オクターブのF3 〜F4 内のキーコードが格納
されている。例えばユーザーが押鍵した鍵がC5 であれ
ば、そのキーコードは1オクターブ下のC4 のキーコー
ドに変換されてQ_BUFに格納されている。
は、つぎの理由が考えられる。すなわち、ユーザーが押
鍵した鍵(入力鍵)のキーコードが格納されているキー
コードバッファKC_BUFには、前述した図4のステ
ップS410のANSWER TRIGGER処理内の
図20のステップS2002〜S2004の処理によっ
て、最低オクターブのF3 〜F4 内のキーコードが格納
されている。例えばユーザーが押鍵した鍵がC5 であれ
ば、そのキーコードは1オクターブ下のC4 のキーコー
ドに変換されてQ_BUFに格納されている。
【0184】一方、出題鍵はどのオクターブの鍵である
かが不明である。そのため、ステップS2105の不一
致の原因が、オクターブの違いにある可能性がある。上
述の可能性に対処するために、変数Xの内容が、Q_B
UF
かが不明である。そのため、ステップS2105の不一
致の原因が、オクターブの違いにある可能性がある。上
述の可能性に対処するために、変数Xの内容が、Q_B
UF
〔0〕〜Q_BUF〔2〕のいずれとも一致しない
場合は、ステップS2107の判定がYESとなった
後、ステップS2108で、入力鍵のキーコードが格納
されている変数Xの値に1オクターブ分の値12が加算
されて新たな変数Xの値とされる。
場合は、ステップS2107の判定がYESとなった
後、ステップS2108で、入力鍵のキーコードが格納
されている変数Xの値に1オクターブ分の値12が加算
されて新たな変数Xの値とされる。
【0185】そして、再びステップS2104に戻った
後、ステップS2105→S2106→S2107→S
2105のループ処理において、変数Xの内容と出題さ
れる出題鍵(出題される和音に対応する鍵)のキーコー
ドが入っているQ_BUF
後、ステップS2105→S2106→S2107→S
2105のループ処理において、変数Xの内容と出題さ
れる出題鍵(出題される和音に対応する鍵)のキーコー
ドが入っているQ_BUF
〔0〕〜Q_BUF〔2〕が
順次比較される。
順次比較される。
【0186】上述のようにして、変数Xの値をオクター
ブずつ上げていった結果、変数Xの値が最高音C6 のキ
ーコード値を越えてしまったら、ステップS2109の
判定がYESとなり、この時点で初めて正誤フラグが
「誤」にされる(ステップS2110)。
ブずつ上げていった結果、変数Xの値が最高音C6 のキ
ーコード値を越えてしまったら、ステップS2109の
判定がYESとなり、この時点で初めて正誤フラグが
「誤」にされる(ステップS2110)。
【0187】このようにして、ユーザが解答となる鍵を
3鍵すべて入力しておらず、入力途中でも、オクターブ
の違いを考慮した上でそれまでに入力された鍵が問題で
ある和音の出題鍵のいずれとも一致しなければ、ステッ
プS2110で正誤フラグが「誤」にされた後、つづく
ステップS2115のEND_MES処理によって不正
解の処理が実行される。
3鍵すべて入力しておらず、入力途中でも、オクターブ
の違いを考慮した上でそれまでに入力された鍵が問題で
ある和音の出題鍵のいずれとも一致しなければ、ステッ
プS2110で正誤フラグが「誤」にされた後、つづく
ステップS2115のEND_MES処理によって不正
解の処理が実行される。
【0188】ステップS2105〜S2107のループ
処理において、変数Xの内容が、Q_BUF
処理において、変数Xの内容が、Q_BUF
〔0〕〜Q
_BUF〔2〕のいずれかと一致した場合は、ステップ
S2105の判定がYESとなり、つぎのステップS2
111へ進む。この状態では、少なくとも第1鍵目は出
題鍵のいずれかと一致したことになる。
_BUF〔2〕のいずれかと一致した場合は、ステップ
S2105の判定がYESとなり、つぎのステップS2
111へ進む。この状態では、少なくとも第1鍵目は出
題鍵のいずれかと一致したことになる。
【0189】ここで、ユーザが解答として第2鍵目も押
鍵していれば、ステップS2111でポインタiがイン
クリメントされた後、ステップS2112の判定がNO
となって、第1鍵目と同様の比較処理が実行される。ま
た、第3鍵目についても同様である。
鍵していれば、ステップS2111でポインタiがイン
クリメントされた後、ステップS2112の判定がNO
となって、第1鍵目と同様の比較処理が実行される。ま
た、第3鍵目についても同様である。
【0190】ユーザが解答として第2鍵目または第3鍵
目をまだ押鍵していなければ、ステップS2112の判
定がYESとなった後、ステップS2113の判定がN
Oとなって、正解の判定は行わず、図6のステップS6
19のANSWER処理を終了し、図4のステップS4
12のANSWER時間処理を終了して、メインフロー
へ戻る。その後、図4のS413〜S415→S40S
→S407→S408→S409→S411→S412
→図6のS601→S602→S604→図9のS90
1→図6のS605→図11のS1101→図6のS6
06→S607→S608→S612→S616→図4
のS413の経路で、第2鍵目以降の「入力待ち」の状
態(ANS待機状態)(図10参照)が継続される。
目をまだ押鍵していなければ、ステップS2112の判
定がYESとなった後、ステップS2113の判定がN
Oとなって、正解の判定は行わず、図6のステップS6
19のANSWER処理を終了し、図4のステップS4
12のANSWER時間処理を終了して、メインフロー
へ戻る。その後、図4のS413〜S415→S40S
→S407→S408→S409→S411→S412
→図6のS601→S602→S604→図9のS90
1→図6のS605→図11のS1101→図6のS6
06→S607→S608→S612→S616→図4
のS413の経路で、第2鍵目以降の「入力待ち」の状
態(ANS待機状態)(図10参照)が継続される。
【0191】ユーザが解答として第2鍵目、第3鍵目を
順次押鍵し、そのつど図4のステップS410のANW
ER TRIGGER処理(図20参照)が実行される
ことにより、ユーザによって押鍵された3鍵のキーコー
ドがキーコードバッファKC_BUF
順次押鍵し、そのつど図4のステップS410のANW
ER TRIGGER処理(図20参照)が実行される
ことにより、ユーザによって押鍵された3鍵のキーコー
ドがキーコードバッファKC_BUF
〔0〕、KC_B
UF〔1〕およびKC_BUF〔2〕に格納される。そ
して、その直後に、図4のステップS412のANSW
ER時間処理内の図6のステップS619のANSWE
R処理が実行され、ステップS2103〜S2112の
繰り返しにより、キーコードバッファKC_BUF
UF〔1〕およびKC_BUF〔2〕に格納される。そ
して、その直後に、図4のステップS412のANSW
ER時間処理内の図6のステップS619のANSWE
R処理が実行され、ステップS2103〜S2112の
繰り返しにより、キーコードバッファKC_BUF
〔0〕、KC_BUF〔1〕およびKC_BUF〔2〕
に格納されている3つのキーコードすべてが、オクター
ブの違いを考慮した上でQ_BUF
に格納されている3つのキーコードすべてが、オクター
ブの違いを考慮した上でQ_BUF
〔0〕〜Q_BUF
〔2〕の内容と一致したと判別されると、ステップS2
113の判定がYESとなる。
〔2〕の内容と一致したと判別されると、ステップS2
113の判定がYESとなる。
【0192】この結果、ステップS2114で正誤フラ
グが「正」にされ、それにつづくステップS2115の
END_MES処理によって正解の処理が実行される。
ステップS2115のEND_MES処理は、図14に
示されており、第1の実施例の場合と同じである。
グが「正」にされ、それにつづくステップS2115の
END_MES処理によって正解の処理が実行される。
ステップS2115のEND_MES処理は、図14に
示されており、第1の実施例の場合と同じである。
【0193】そして、ステップS2115のEND_M
ES処理を終了し、図6のステップS619のANSW
ER処理を終了する。その後、メインフローの図4に戻
り、ステップS412のANSWER時間処理を終了し
た後、ステップS402→S407→S408と進み、
更に、現在はキーボードーがOFFになっているため
(図14のステップS1403参照)、ステップS40
8の判定がNOとなった後に、再びステップS412の
ANSWER時間処理が実行される。ANSWER時間
処理においては、図6のステップS601→S602→
S604(図9のS901の判定がNO)→S605と
進み、END MESSAGE経過処理が実行される。
この処理は、図11に示されており、第1の実施例の場
合とほぼ同様である。
ES処理を終了し、図6のステップS619のANSW
ER処理を終了する。その後、メインフローの図4に戻
り、ステップS412のANSWER時間処理を終了し
た後、ステップS402→S407→S408と進み、
更に、現在はキーボードーがOFFになっているため
(図14のステップS1403参照)、ステップS40
8の判定がNOとなった後に、再びステップS412の
ANSWER時間処理が実行される。ANSWER時間
処理においては、図6のステップS601→S602→
S604(図9のS901の判定がNO)→S605と
進み、END MESSAGE経過処理が実行される。
この処理は、図11に示されており、第1の実施例の場
合とほぼ同様である。
【0194】ただし、つぎの点が異なる。すなわち、図
11のステップS1105の正解MES経過処理内の図
12のステップS1203の処理が第1の実施例の場合
と異なる。第1の実施例では、ここで発音される答の音
声は1鍵の正解鍵を表わしている例えば「ドー」という
内容の音声であったが、第2の実施例では、正解鍵の3
つの鍵のキーコードが取得された後、その各キーコード
に対応する音高で、例えば「ド、ミ、ソ」という内容の
音声が連続的に発音されることになる。
11のステップS1105の正解MES経過処理内の図
12のステップS1203の処理が第1の実施例の場合
と異なる。第1の実施例では、ここで発音される答の音
声は1鍵の正解鍵を表わしている例えば「ドー」という
内容の音声であったが、第2の実施例では、正解鍵の3
つの鍵のキーコードが取得された後、その各キーコード
に対応する音高で、例えば「ド、ミ、ソ」という内容の
音声が連続的に発音されることになる。
【0195】以上のようにして、GAMEモードの第2
の実施例では、ユーザは、和音の各構成音の音高を当て
るゲームを楽しむことができる。GAMEモードの第3の実施例 さいごに、GAMEモードの第3の実施例につき説明す
る。 <第3の実施例の概要動作の説明>GAMEモードの第
3の実施例では、ユーザは、電子楽器によって自動演奏
される音楽のリズムパターンを当てるゲームを楽しむこ
とができる。この場合、図22に示すように、電子鍵盤
楽器の各鍵に対応して各種のリズム名が表示されてお
り、ユーザーは当てるべきリズム名に対応する鍵を押鍵
することによって、解答する。
の実施例では、ユーザは、和音の各構成音の音高を当て
るゲームを楽しむことができる。GAMEモードの第3の実施例 さいごに、GAMEモードの第3の実施例につき説明す
る。 <第3の実施例の概要動作の説明>GAMEモードの第
3の実施例では、ユーザは、電子楽器によって自動演奏
される音楽のリズムパターンを当てるゲームを楽しむこ
とができる。この場合、図22に示すように、電子鍵盤
楽器の各鍵に対応して各種のリズム名が表示されてお
り、ユーザーは当てるべきリズム名に対応する鍵を押鍵
することによって、解答する。
【0196】第3の実施例の概略動作を表す動作フロー
チャートは、図3の第1の実施例のものとほとんど同じ
だが、図3のステップS303とS308の処理は省略
される。 <第3の実施例の具体的動作と第1の実施例の具体的動
作の共通部分>第3の実施例のメインフローの構成は図
4の第1の実施例のものと同様である。その他、第1の
実施例の図7のANSWER TRIGGER処理、図
10の説明図、図11のEND_MES経過処理、図1
3のANSWER処理、および図15の乱数処理は、原
則として第3の実施例に適用される。
チャートは、図3の第1の実施例のものとほとんど同じ
だが、図3のステップS303とS308の処理は省略
される。 <第3の実施例の具体的動作と第1の実施例の具体的動
作の共通部分>第3の実施例のメインフローの構成は図
4の第1の実施例のものと同様である。その他、第1の
実施例の図7のANSWER TRIGGER処理、図
10の説明図、図11のEND_MES経過処理、図1
3のANSWER処理、および図15の乱数処理は、原
則として第3の実施例に適用される。
【0197】第3の実施例では、第1の実施例における
図5のGAME MODE IN処理、図6のANSW
ER時間処理、図12の正解MES経過処理、図14の
END_MES処理、および図16の出題処理に対応す
る各処理が、第1の実施例の場合と異なる。
図5のGAME MODE IN処理、図6のANSW
ER時間処理、図12の正解MES経過処理、図14の
END_MES処理、および図16の出題処理に対応す
る各処理が、第1の実施例の場合と異なる。
【0198】また、第3の実施例では、図9の出題経過
処理と図8のMODEIN経過処理は削除される。以下
の説明では、これら第1の実施例と異なる処理について
のみ説明する。 <第3の実施例の具体的動作におけるGAME MOD
E IN処理の説明>まず、図4のステップS404と
して実行されるGAME MODE IN処理について
説明する。この処理は、図23に示されている。
処理と図8のMODEIN経過処理は削除される。以下
の説明では、これら第1の実施例と異なる処理について
のみ説明する。 <第3の実施例の具体的動作におけるGAME MOD
E IN処理の説明>まず、図4のステップS404と
して実行されるGAME MODE IN処理について
説明する。この処理は、図23に示されている。
【0199】図23のステップS2301、S230
2、S2303、およびS2304の各処理は、第1の
実施例における図5のステップS501、S502、S
504、およびS505の各処理と同様である。
2、S2303、およびS2304の各処理は、第1の
実施例における図5のステップS501、S502、S
504、およびS505の各処理と同様である。
【0200】但し、図23の処理では、図5のステップ
S503に相当する処理が無い。これは、後述する図2
4のANSWER時間処理で、MODE IN経過処理
が削除されるので、MODE IN中フラグが不要にな
ることによる。
S503に相当する処理が無い。これは、後述する図2
4のANSWER時間処理で、MODE IN経過処理
が削除されるので、MODE IN中フラグが不要にな
ることによる。
【0201】また、第1の実施例における図5のステッ
プS506においては、人声メモリ106から、「この
音なあに?」という内容のADPCM方式による音声デ
ータが読み出されたが、第3の実施例における図23の
ステップS2306においては、「このリズムなあに
?」という内容のADPCM方式による音声データが読
み出される。そして、この音声によるメッセージが、ス
テップS2307のアタック処理により発音される <第3の実施例の具体的動作におけるANSWER時間
処理の説明>つぎに、図4のステップS412のANS
WER時間処理は、図24に示される。
プS506においては、人声メモリ106から、「この
音なあに?」という内容のADPCM方式による音声デ
ータが読み出されたが、第3の実施例における図23の
ステップS2306においては、「このリズムなあに
?」という内容のADPCM方式による音声データが読
み出される。そして、この音声によるメッセージが、ス
テップS2307のアタック処理により発音される <第3の実施例の具体的動作におけるANSWER時間
処理の説明>つぎに、図4のステップS412のANS
WER時間処理は、図24に示される。
【0202】図24の処理が第1の実施例における図6
の処理と異なる点は、図24では、図6のステップS6
02の判定処理、ステップS603である図8のMOD
EIN経過処理、ステップS604の出題経過処理、お
よびステップS606の「出題中?」の判定処理に相当
する各処理が無いことである。
の処理と異なる点は、図24では、図6のステップS6
02の判定処理、ステップS603である図8のMOD
EIN経過処理、ステップS604の出題経過処理、お
よびステップS606の「出題中?」の判定処理に相当
する各処理が無いことである。
【0203】まず、図6のステップS602の判定処理
およびステップS603である図8のMODE IN経
過処理に相当する各処理が無くなった理由は、第1の実
施例は音当てゲームであるため、ゲームモードの開始時
にユーザが解答しやすいように音高の基準となる各音階
が順次発音されたのに対し、第3の実施例はリズム当て
ゲームであるため、上述のような音階音の発音は必要な
いからである。
およびステップS603である図8のMODE IN経
過処理に相当する各処理が無くなった理由は、第1の実
施例は音当てゲームであるため、ゲームモードの開始時
にユーザが解答しやすいように音高の基準となる各音階
が順次発音されたのに対し、第3の実施例はリズム当て
ゲームであるため、上述のような音階音の発音は必要な
いからである。
【0204】また、図6のステップS604の出題経過
処理およびステップS606の「出題中?」の判定処理
に相当する各処理が無くなった理由は、つぎのような理
由による。すなわち、第1の実施例で単音が出題される
場合には、発音された問題音が消音されてから解答待ち
になったが、第3の実施例のリズムパターンが出題され
る場合には、問題であるリズムが発音中であっても答が
分かり次第、解答することができる。このため、問題音
の発音終了を待つための図6のステップS604および
ステップS606に相当する処理は必要なくなるのであ
る。
処理およびステップS606の「出題中?」の判定処理
に相当する各処理が無くなった理由は、つぎのような理
由による。すなわち、第1の実施例で単音が出題される
場合には、発音された問題音が消音されてから解答待ち
になったが、第3の実施例のリズムパターンが出題され
る場合には、問題であるリズムが発音中であっても答が
分かり次第、解答することができる。このため、問題音
の発音終了を待つための図6のステップS604および
ステップS606に相当する処理は必要なくなるのであ
る。
【0205】そのほかの、図24のステップS240
1、S2402、およびS2403〜S2415の各処
理は、図6のステップS601、S605、およびS6
07〜S619の各処理と同じフロー構成である。
1、S2402、およびS2403〜S2415の各処
理は、図6のステップS601、S605、およびS6
07〜S619の各処理と同じフロー構成である。
【0206】上記フロー構成のうち、図25で示される
図24のステップS2407の出題処理は、第1の実施
例における図16で示される図6のステップS611の
処理と若干異なる。 <第3の実施例の具体的動作における出題処理の説明>
すなわち、図25のステップS2501では、図4のス
テップS412のANSWER時間処理内の図6のステ
ップS610の乱数処理(図15参照)によって出題鍵
メモリに格納されたキーコードに対応するリズムパター
ンが、図1のROMであるデータメモリ107から呼び
出される。そして、ステップS2502において、上記
リズムパターンに基づく演奏の開始が指示される。これ
により、図1の楽音発生回路110において問題となる
リズムパターンの演奏が開始される。
図24のステップS2407の出題処理は、第1の実施
例における図16で示される図6のステップS611の
処理と若干異なる。 <第3の実施例の具体的動作における出題処理の説明>
すなわち、図25のステップS2501では、図4のス
テップS412のANSWER時間処理内の図6のステ
ップS610の乱数処理(図15参照)によって出題鍵
メモリに格納されたキーコードに対応するリズムパター
ンが、図1のROMであるデータメモリ107から呼び
出される。そして、ステップS2502において、上記
リズムパターンに基づく演奏の開始が指示される。これ
により、図1の楽音発生回路110において問題となる
リズムパターンの演奏が開始される。
【0207】ここで、この第3の実施例においては、リ
ズムパターンの演奏の開始後、直ちにユーザによる押鍵
操作(解答操作)を受けつけるようにするため、ステッ
プS2503において現在シーケンスフラグを「待機状
態」に移行させ、さらにステップS2507において図
1の鍵盤103が押鍵可能状態(キーボードON)にさ
れる。
ズムパターンの演奏の開始後、直ちにユーザによる押鍵
操作(解答操作)を受けつけるようにするため、ステッ
プS2503において現在シーケンスフラグを「待機状
態」に移行させ、さらにステップS2507において図
1の鍵盤103が押鍵可能状態(キーボードON)にさ
れる。
【0208】図25の他のステップS2504〜S25
06の各処理は、図16のステップS1604〜S16
06の各処理と同じである。上述のリズムパターンの出
題後は、図4のステップS408の判定はYESとなる
ため、ユーザは、すぐに図22に示される鍵盤を使用し
て、リズムパターンを解答することができる。ユーザ
が、いずれかの鍵を押鍵してリズムパターンを解答する
と、第1の実施例の場合と同様にして、図4のステップ
S410のANSWER TRIGGER処理(図7参
照)が実行され、更に、図4のステップS412のAN
SWER時間処理内の図24のステップS2415のA
NSWER処理が実行される。ステップS2415のA
NSWER処理は、第1の実施例の場合と同様、図13
で示される。 <第3の実施例の具体的動作におけるEND_MES処
理の説明>ここで、図26として示される図24のステ
ップS2411または図13のステップS1310のE
ND_MES処理は、第1の実施例において図14とし
て示されるものとわずかに異なる。
06の各処理は、図16のステップS1604〜S16
06の各処理と同じである。上述のリズムパターンの出
題後は、図4のステップS408の判定はYESとなる
ため、ユーザは、すぐに図22に示される鍵盤を使用し
て、リズムパターンを解答することができる。ユーザ
が、いずれかの鍵を押鍵してリズムパターンを解答する
と、第1の実施例の場合と同様にして、図4のステップ
S410のANSWER TRIGGER処理(図7参
照)が実行され、更に、図4のステップS412のAN
SWER時間処理内の図24のステップS2415のA
NSWER処理が実行される。ステップS2415のA
NSWER処理は、第1の実施例の場合と同様、図13
で示される。 <第3の実施例の具体的動作におけるEND_MES処
理の説明>ここで、図26として示される図24のステ
ップS2411または図13のステップS1310のE
ND_MES処理は、第1の実施例において図14とし
て示されるものとわずかに異なる。
【0209】すなわち、図26のステップS2601〜
S2608は、図14のステップS1401〜S140
8とほとんど同じであるが、ステップS2603におい
て、メッセージ発音中にユーザによる押鍵操作を受け付
けないようにするため、図1の鍵盤103が押鍵不可能
状態(キーボードOFF)にされる処理のほか、いまま
で問題として発音されていたリズムパターンの発音を停
止する処理が実行される。 <第3の実施例の具体的動作における正解MES経過処
理の説明>最後に、図4のステップS412のANSW
ER時間処理内の図24のステップS2402のEND
MESSAGE経過処理は、第1の実施例の場合と同
様に、図11として示される。但し、図27として示さ
れる図11のステップS1105の正解MES経過処理
は、第1の実施例における図12のものと若干異なる。
S2608は、図14のステップS1401〜S140
8とほとんど同じであるが、ステップS2603におい
て、メッセージ発音中にユーザによる押鍵操作を受け付
けないようにするため、図1の鍵盤103が押鍵不可能
状態(キーボードOFF)にされる処理のほか、いまま
で問題として発音されていたリズムパターンの発音を停
止する処理が実行される。 <第3の実施例の具体的動作における正解MES経過処
理の説明>最後に、図4のステップS412のANSW
ER時間処理内の図24のステップS2402のEND
MESSAGE経過処理は、第1の実施例の場合と同
様に、図11として示される。但し、図27として示さ
れる図11のステップS1105の正解MES経過処理
は、第1の実施例における図12のものと若干異なる。
【0210】すなわち、図12の第1の実施例では、ス
テップS1203およびS1204で発音される答の音
声は1鍵の正解鍵を表わしている例えば「ドー」という
内容の音声であったが、図27の第3の実施例では、ス
テップS2703において正解鍵のキーコードに対応す
る例えば「マーチ」という内容のリズム名が取得された
後、ステップS2704のアタック処理により、そのリ
ズム名を内容とする音声が発音される。
テップS1203およびS1204で発音される答の音
声は1鍵の正解鍵を表わしている例えば「ドー」という
内容の音声であったが、図27の第3の実施例では、ス
テップS2703において正解鍵のキーコードに対応す
る例えば「マーチ」という内容のリズム名が取得された
後、ステップS2704のアタック処理により、そのリ
ズム名を内容とする音声が発音される。
【0211】上記ステップS2703以外のステップS
2701〜S2710の各処理は、第1の実施例におけ
る図12のステップS1203以外のステップS120
1〜S1210の各処理と同じである。
2701〜S2710の各処理は、第1の実施例におけ
る図12のステップS1203以外のステップS120
1〜S1210の各処理と同じである。
【0212】以上のようにして、GAMEモードの第3
の実施例では、ユーザは、リズムパターンに対応するリ
ズム名を当てるゲームを楽しむことができる。他の実施例 以上説明した3つの実施例においては、ユーザーが解答
する際の制限時間を20秒としたが、当然これに限られ
るものではなく、例えば連続正解数に応じて制限時間を
短くするようにすることもできる。
の実施例では、ユーザは、リズムパターンに対応するリ
ズム名を当てるゲームを楽しむことができる。他の実施例 以上説明した3つの実施例においては、ユーザーが解答
する際の制限時間を20秒としたが、当然これに限られ
るものではなく、例えば連続正解数に応じて制限時間を
短くするようにすることもできる。
【0213】また、その制限時間の残り時間を示す、例
えばLEDによる表示装置を電子楽器前面に設ければ、
ユーザーにとって有益である。さらに、上述した実施例
においては、ユーザが制限時間以内に解答しなかった場
合には、同じ問題の出題が繰り返されたが、難易度が同
程度の他の問題が出題されるようにしてもよい。
えばLEDによる表示装置を電子楽器前面に設ければ、
ユーザーにとって有益である。さらに、上述した実施例
においては、ユーザが制限時間以内に解答しなかった場
合には、同じ問題の出題が繰り返されたが、難易度が同
程度の他の問題が出題されるようにしてもよい。
【0214】
【発明の効果】本発明の第1の態様によれば、ユーザが
所定の制限時間以上解答となるリズム名を入力しない
と、ユーザによる解答動作を不正解と判定してリズムパ
ターンの問題の出題を先に進めることができ、効率的な
出題動作が可能となる。
所定の制限時間以上解答となるリズム名を入力しない
と、ユーザによる解答動作を不正解と判定してリズムパ
ターンの問題の出題を先に進めることができ、効率的な
出題動作が可能となる。
【0215】また、本発明の第2の態様によれば、例え
ばユーザによる正解の解答の頻度が多くなると、より難
易度の高いリズムパターンの組を出題させることがで
き、ユーザのリズム感に関する能力を段階的に向上させ
ることが可能となる。
ばユーザによる正解の解答の頻度が多くなると、より難
易度の高いリズムパターンの組を出題させることがで
き、ユーザのリズム感に関する能力を段階的に向上させ
ることが可能となる。
【図1】本発明による第1の実施例の全体構成図であ
る。
る。
【図2】図1のモードスイッチの外観図である。
【図3】第1の実施例の概略動作フローチャートであ
る。
る。
【図4】第1の実施例のメイン動作フローチャートであ
る。
る。
【図5】第1の実施例のGAME MODE IN処理
の動作フローチャートである。
の動作フローチャートである。
【図6】第1の実施例のANSWER時間処理の動作フ
ローチャートである。
ローチャートである。
【図7】第1の実施例のANSWER TRIGGER
処理の動作フローチャートである。
処理の動作フローチャートである。
【図8】第1の実施例のMODE IN経過処理の動作
フローチャートである。
フローチャートである。
【図9】第1の実施例の出題経過処理の動作フローチャ
ートである。
ートである。
【図10】第1の実施例の出題経過の説明図である。
【図11】第1の実施例のEND_MES経過処理の動
作フローチャートである。
作フローチャートである。
【図12】第1の実施例の正解MES経過処理の動作フ
ローチャートである。
ローチャートである。
【図13】第1の実施例のANSWE処理の動作フロー
チャートである。
チャートである。
【図14】第1の実施例のEND_MES処理の動作フ
ローチャートである。
ローチャートである。
【図15】第1の実施例の乱数処理の動作フローチャー
トである。
トである。
【図16】第1の実施例の出題処理の動作フローチャー
トである。
トである。
【図17】第2の実施例の乱数処理の動作フローチャー
トである。
トである。
【図18】Q_BUF〔i〕の内容に対応する音名を示
す図である。
す図である。
【図19】第2の実施例の出題処理の動作フローチャー
トである。
トである。
【図20】第2の実施例のANS_TRIGGER処理
の動作フローチャートである。
の動作フローチャートである。
【図21】第2の実施例のANSWER処理の動作フロ
ーチャートである。
ーチャートである。
【図22】鍵盤に割り当てられたリズム名の1例を示す
図である。
図である。
【図23】第3の実施例のGAME MODE IN処
理の動作フローチャートである。
理の動作フローチャートである。
【図24】第3の実施例のANSWER時間処理の動作
フローチャートである。
フローチャートである。
【図25】第3の実施例の出題処理の動作フローチャー
トである。
トである。
【図26】第3の実施例のEND_MES処理の動作フ
ローチャートである。
ローチャートである。
【図27】第3の実施例の正解MES経過処理の動作フ
ローチャートである。
ローチャートである。
101 CPU 102 プログラムメモリ 103 鍵盤 104 モードスイッチ 105 楽音メモリ 106 人声音メモリ 107 データメモリ 108 D/A変換器 109 サウンドシステム
Claims (3)
- 【請求項1】 予め用意された複数種類のリズムパター
ンのうち任意のものを問題としてランダムに選択し自動
演奏して出題する問題出題手段と、 ユーザに前記リズムパターンの問題に対応するリズム名
を入力させる入力手段と、 前記問題出題手段が前記リズムパターンの問題の自動演
奏を開始してからユーザが前記入力手段によって前記リ
ズムパターンの問題に対応するリズム名を入力するまで
の待ち時間を計測する待ち時間計測手段と、 前記問題出題手段が出題したリズムパターンのリズム名
とユーザが前記入力手段によって入力したリズム名とを
比較してユーザによる解答動作の正誤を判定しその判定
結果をユーザに応答し、前記待ち時間計測手段が計測す
る前記待ち時間が所定の制限時間を超過した場合にはユ
ーザによる解答動作を不正解と判定する正誤判定手段
と、 を有することを特徴とする音楽装置。 - 【請求項2】 予め用意されたそれぞれ複数種類からな
る難易度の異なる複数組のリズムパターンのうち所定の
難易度の組のなかの任意のものを問題としてランダムに
選択し自動演奏して出題する問題出題手段と、 ユーザに前記リズムパターンの問題に対応するリズム名
を入力させる入力手段と、 前記問題出題手段が出題したリズムパターンのリズム名
とユーザが前記入力手段によって入力したリズム名とを
比較してユーザによる解答動作の正誤を判定しその判定
結果をユーザに応答する正誤判定手段と、 該正誤判定手段がユーザによる解答動作を正解と判定す
る頻度に基づいて、前記問題出題手段が選択する前記難
易度の異なるリズムパターンの組を制御する難易度選択
制御手段と、 を有することを特徴とする音楽装置。 - 【請求項3】 前記難易度選択制御手段は、前記正誤判
定手段がユーザによる解答動作を所定回数以上連続して
正解と判定した場合に、前記問題出題手段に前回の出題
時より難易度の高いリズムパターンの組を選択させる、 ことを特徴とする請求項2に記載の音楽装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3232044A JPH0572964A (ja) | 1991-09-11 | 1991-09-11 | 音楽装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3232044A JPH0572964A (ja) | 1991-09-11 | 1991-09-11 | 音楽装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0572964A true JPH0572964A (ja) | 1993-03-26 |
Family
ID=16933088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3232044A Withdrawn JPH0572964A (ja) | 1991-09-11 | 1991-09-11 | 音楽装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0572964A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002099274A (ja) * | 2000-07-07 | 2002-04-05 | Allan A Miller | 音楽と共に演奏するための方法を可能とする動的調整可能なネットワーク |
| JP2002140429A (ja) * | 2000-11-02 | 2002-05-17 | Japan Science & Technology Corp | 識別・反応計測方法、識別・反応計測プログラムを記録したコンピュータ読み取り可能な記録媒体及び識別・反応計測装置 |
-
1991
- 1991-09-11 JP JP3232044A patent/JPH0572964A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002099274A (ja) * | 2000-07-07 | 2002-04-05 | Allan A Miller | 音楽と共に演奏するための方法を可能とする動的調整可能なネットワーク |
| JP2002140429A (ja) * | 2000-11-02 | 2002-05-17 | Japan Science & Technology Corp | 識別・反応計測方法、識別・反応計測プログラムを記録したコンピュータ読み取り可能な記録媒体及び識別・反応計測装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5350880A (en) | Apparatus for varying the sound of music as it is automatically played | |
| US7109407B2 (en) | Chord presenting apparatus and storage device storing a chord presenting computer program | |
| JP4752425B2 (ja) | 合奏システム | |
| US4344344A (en) | Electronic musical instrument having musical performance training system | |
| JPH03174590A (ja) | 電子楽器 | |
| JPH10187157A (ja) | 自動演奏装置 | |
| JPH0572965A (ja) | 音楽装置 | |
| JPH0572964A (ja) | 音楽装置 | |
| JPH0572962A (ja) | 音楽装置 | |
| US6750390B2 (en) | Automatic performing apparatus and electronic instrument | |
| JP2605885B2 (ja) | 楽音発生装置 | |
| JPH0627960A (ja) | 自動伴奏装置 | |
| US20150310843A1 (en) | Sampling device, electronic instrument, method, and program | |
| JPS6312393Y2 (ja) | ||
| Spiegel | Music Mouse™-An Intelligent Instrument | |
| Wiggins | Drumming in Ghana | |
| JPH0222387B2 (ja) | ||
| JPH0713480A (ja) | 教習制御装置 | |
| JP2990780B2 (ja) | 楽音信号形成装置 | |
| JPS6326838Y2 (ja) | ||
| JPH0130221Y2 (ja) | ||
| JP2009037022A (ja) | 電子楽器 | |
| JP3356326B2 (ja) | 電子楽器 | |
| JPH03276182A (ja) | 電子楽器の教習装置および教習方法 | |
| JPH0498291A (ja) | 電子楽器 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19981203 |