JP2004219778A - Apparatus and processing program for musical performance indication - Google Patents

Apparatus and processing program for musical performance indication Download PDF

Info

Publication number
JP2004219778A
JP2004219778A JP2003007737A JP2003007737A JP2004219778A JP 2004219778 A JP2004219778 A JP 2004219778A JP 2003007737 A JP2003007737 A JP 2003007737A JP 2003007737 A JP2003007737 A JP 2003007737A JP 2004219778 A JP2004219778 A JP 2004219778A
Authority
JP
Japan
Prior art keywords
performance
key
guide
guided
operators
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
JP2003007737A
Other languages
Japanese (ja)
Inventor
Hiroaki Yamaoka
寛明 山岡
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 JP2003007737A priority Critical patent/JP2004219778A/en
Publication of JP2004219778A publication Critical patent/JP2004219778A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To make a user correctly play music by letting the user notice a mistake in a musical performance if the user makes such a mistake and to correct a mistake of a musical performance if the user incorrectly understand the music. <P>SOLUTION: Only when operation elements guided to be played are all actually operated for a musical performance and only the operation element guided to be played are operated, a following musical performance guidance is continued, however if other playing operation is done, the musical performance guidance is stopped. For example, even if even another operation element which is not guided to be played is operated at the same time although a part of the musical performance guidance is correctly played, the musical performance guidance is not advanced until a completely correct musical performance is done, so that the player can be made to correct a playing mistake or misunderstanding of the musical performance. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
この発明は、演奏指示装置及び演奏指示処理プログラムに関する。
【0002】
【従来の技術】
従来、電子鍵盤楽器のレッスン機能として、記憶手段に記憶されている模範演奏の曲データを読み出して演奏指示するものがある。
例えば、模範演奏となる曲データの音高とユーザーによる押鍵操作された鍵の音高とを比較して、演奏ガイドした音高が押鍵操作されたことを検出すると、この次に続く曲データの音高を読み出して演奏ガイドを継続するという演奏指示装置がある(引例は特許文献1、特許文献2、特許文献3参照)。
【0003】
【特許文献1】
特開2000−267662号公報(第1頁−第20頁、図53)
【特許文献2】
特開2000−276147号公報(第1頁−第20頁、図53)
【特許文献3】
特開2001−125569号公報(第1頁−第15頁、図41)
【0004】
【発明が解決しようとする課題】
例えば、初心者が演奏ガイドされている鍵を押鍵する場合、この押鍵すべき鍵とその隣接するガイドされていない鍵も同時に押鍵してしまうことがある。
このように、正しい演奏操作子と誤った演奏操作子を同時に演奏操作した場合でも、上述の特許文献1〜3に示される演奏ガイド装置は、とにかく正解鍵は押鍵されているので、正しい押鍵を行ったとして、そのまま次の演奏ガイドを継続してしまうので、ユーザーはいつまでもたっても演奏ミスに気付かないで同じミスを何度も繰り返し、演奏が上達しないという問題が生ずる。
【0005】
本発明は、上述の如き従来の課題を解決するために成されたもので、その目的は、ユーザーが演奏ミスしたらこの演奏ミスに気付かせて正しく弾くようにすること、また、間違った曲の解釈で演奏ミスしていた場合であれば、これを正すことにある。
【0006】
【課題を解決するための手段】
この発明の解決の手段は以下のとおりである。
上記目的を達成するために、請求項1に係る発明においては、まず一連の音高情報を記憶する記憶手段と、この記憶手段より音高情報を読み出す読出手段を有し、
この読出手段により読み出された音高情報に基づき、演奏装置に設けられた複数の操作子の中から演奏すべき演奏操作子をガイドする演奏ガイド手段を有する。
そして、前記複数の演奏操作子夫々に対して演奏操作されたか否かを検出する演奏操作検出手段を有し、
この演奏操作検出手段により前記演奏装置の全ての演奏操作子に対して演奏操作がなされたか否かの検出が終了した後に、前記演奏ガイド手段によりガイドされた演奏すべき演奏操作子と、前記演奏操作検出手段により演奏操作がなされたと検出された演奏操作子とを比較し、当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであるか否かを判定する判定手段とを有する。
そして、この判定手段により当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであると判定された場合にのみ、前記記憶手段から次に続く音高情報を読み出すように前記読出手段を制御すると共に、それ以外の演奏操作が検出された場合は前記読出手段の読出し動作を停止するように制御する制御手段を有する。
【0007】
本発明は、請求項2の記載のように、上記手段の動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【0008】
本発明は、上記構成を有することにより、演奏する曲に対して正当な演奏操作子に対して演奏操作されたときのみ、これに続く演奏ガイドを継続することができる。
【0009】
【発明の実施の形態】
図1は、本発明の実施形態に係る演奏指示装置の構成例を示したブロック図である。
CPU101は、バスライン110を介して演奏指示装置を構成する後述の各回路、装置に接続され、各種データを授受して全体の機能を統制する。
【0010】
スイッチ群102は、複数のスイッチから成り、電源をオンオフする電源スイッチ、モードを選択するモードスイッチ、自動演奏のテンポを指定するテンポスイッチ、自動演奏の開始/停止を指示するスタート/ストップスイッチ、その他各種機能を設定するスイッチ等が設けられている。
【0011】
鍵盤103は、複数の鍵から成り、後述するように鍵盤下方には鍵表面部を照射するLED(発光ダイオード)などのガイド用表示部107が設けられているとともに、各鍵に対応して夫々押鍵/離鍵を検出する鍵スイッチが設けられている。
これらの鍵を押鍵/離鍵操作すると、この鍵操作に応じて鍵スイッチがオンオフ動作する。このオンオフ信号はバスライン110を介してCPU101に入力される。
【0012】
プログラムROM104は、CPU101において、定められた手順に従い各種機能の処理を実行するためのプログラムを記憶する記憶装置である。
【0013】
ワークRAM105は、CPU101がプログラムの処理を実行する際に、必要なデータを一時的にストアするワークメモリである。
【0014】
ガイド用データROM106は、ガイド用の演奏データを記憶する記憶装置である。
【0015】
ガイド用表示部107は、前述のように鍵盤103に設けられた各鍵毎のガイド用LEDから成り、CPU101からの表示指示に基づき点灯、点滅、及び、消灯、が制御される。尚、このガイド用表示部107は、鍵下方に設けられたLEDに代わり、例えば液晶表示パネルなどを設けてガイド表示の他に演奏に関わる情報を複合して表示してもよい。
【0016】
音源108は、CPU101からの楽音生成指示に基づいて、楽音信号を生成する。
発音回路109は、音源108によって生成された楽音信号を増幅してスピーカーより発音する。
【0017】
図2は、ガイド用データROM106のデータ配置構成を示す。
このガイド用データROM106のメモリエリアは、ガイド用の曲を構成する各種「イベント」、この「イベント」から次のイベントまでの時間データである「タイム」、そして、このガイド曲の終了を示す「END」をストアするエリアから成る。
この「イベント」をストアするメモリエリアには、このイベントを構成するデータとして、演奏に用いる右手/左手を示す「パート」、ノートオン/ノートオフを示す「識別コード」、鍵番号(音高値に対応)を示す「ノート」、押鍵速度又は強度を示す「ベロシティ」、のデータがストアされている。
【0018】
図3は、本発明の基本処理を示すフローチャートである。
CPU101は、電源スイッチ(図示せず)がオンされるとワークRAM105内にストアされている各データを初期状態にセットする(S301)。
【0019】
次に、スイッチ群102によって検出されたスイッチ操作状態を読み込むSW処理(S302)を実行した後、ガイド処理(S303)、鍵盤処理(S304)、その他の処理(S305)を夫々実行して電源スイッチがオフされるまでS302からS305の処理を繰り返す。
電源スイッチがオフされると電源オフ処理を実行して本ルーティンを終了する。
【0020】
次に、図3に示されるSW処理S302の詳細について、図4のフローチャートを参照して説明する。
まず、テンポSW処理を実行してからスタート/ストップSW処理を実行し、次にその他のSW処理を実行して本ルーティンを終了する。
【0021】
図4に示されるテンポSW処理S401の詳細について、図5のフローチャートを参照して説明する。
まず、CPU101は、スイッチ群102に設けられているテンポSW(図示せず)が操作されているか否かを判定する(S501)。
ここで、テンポSWが操作されてテンポ設定されていれば、この設定された入力テンポ値をレジスタ「TEMPO」にストアする(S502)。
そして、このレジスタ「TEMPO」の値に基づいて、ガイド用ROM106からガイド曲のデータを読み出すための基準タイミング周期を決める最小単位時間が設定される(S503)。
【0022】
図4に示されるスタート/ストップSW処理S402の詳細について、図6及び図7のフローチャートを参照して説明する。
まず、CPU101は、スイッチ群102に設けられているスタート/ストップSW(図示せず)がオンされたか否かを判定する(S601)。
ここで、スタート/ストップSWがオンされていなければ、何もしないでそのまま本ルーティンを終了するが、スタート/ストップSWがオンされると、スタートフラグSTFを反転させる(S602)。
そして、この反転されたスタートフラグSTFが自動演奏のスタートを示す「1」であるか否かを判定する(S603)。
このとき、STFが「1」を示すものであればアドレスポインタADの値をガイド用データROM106の先頭アドレスに移動させる(S604)。
【0023】
これにより、ガイド用データROM106の先頭アドレスにストアされている「タイム」を読み(S605)、この読み出された「タイム」をワークRAM105のレジスタ「TIME」にストアする(S606)。
そして、次回押鍵すべき鍵を指示するためのガイド用データを読み込むため、ワークRAM105のレジスタ「NEXT AD」にアドレスポインタADの示すアドレスをそのままストアして(S607)、このレジスタ「NEXT AD」をインクリメントする(S608)。
【0024】
そして、この「NEXT AD」のアドレスポインタの値によりガイド用データROM106からデータを読み込み(S609)、この読み出されたガイド用データが「イベント」を示すものであるか否かを判定する(図7のS701)。
ここで、読み出されたガイド用データが「イベント」を示すものであれば、このイベントの「パート」が「右手」を示すものか否かを判定する(S702)。
【0025】
このイベントの「パート」が「右手」を示しているものであれば、次に、イベント内の「識別コード」が「ノートオン」を示すものであるか否かを判定する(S703)。
この識別コードが「ノートオン」を示すものであれば、これに対応するイベント内の「ノート」を読み出して、レジスタ「NEXT NOTE」にストアする(S704)。
【0026】
次に、イベント内の「ベロシティ」のデータを読み出して、レジスタ「NEXT VELOCITY」にストアする(S705)。
そして、「NEXT NOTE」にストアされた「ノート」(鍵番号)により指定された鍵下方に設けられたガイド用LEDを点滅させて、次に押鍵すべき鍵であることを報知する(S706)。
【0027】
次に、レジスタ「TIME」にストアされた「タイム」の時間を累積するためのタイマT1にストアする(S707)。
そして、実際の演奏経過時間をカウントするタイマT2を「0」にセットしてから(S708)、ガイド用データROM106からデータを順次読み出すための基準となる最小単位時間の経過をカウントするタイマT3を起動(S709)して、本ルーティンを終了する。
【0028】
一方、S701の処理において読み出されたガイド用データが「イベント」でない場合、S702の処理でイベント内のパートが「右手」でない場合、或いは、イベント内の識別コードが「ノートオン」でない場合は、図6のS608の処理に戻り、NEXT ADを進めてガイドデータROM106から次のデータを読み出す処理を行う。
【0029】
また、S603の処理においてスタートフラグSTFが「1」でない場合、つまりストップ状態になった場合はタイマT3のカウントを停止して(S610)、発音中の全ての楽音をノートオフして消音するよう指示する(S611)。
そして、点灯中のガイド用LEDを全て消灯指示して(S612)、本ルーティンを終了する。
【0030】
上述のとおり、スタート/ストップ処理において、スタート/ストップSWがオンされてスタート状態になると、ガイド用データROM106の先頭アドレスからデータを読み込むと共に、各種タイマを起動させる。
更にガイド用データを先読みして、次回押鍵の対象となる鍵に設けられたガイド用LEDを点滅表示する。
そして、後述のガイド処理に移行する。
【0031】
次に、図3に示されるガイド処理S303の詳細について、図8乃至図11のフローチャートを参照して説明する。
まず、スタートフラグSTFが「1」を示すものであるか否かを判定する(S801)。
このスタートフラグSTFがスタート状態である「1」を示すものであれば、タイマT3のカウント値が最小単位の時間を経過したか否かを判定する(S802)。
【0032】
ここで、タイマT3のカウント値が最小単位の時間に達していれば、押鍵時間を累積するタイマT2をインクリメントして(S803)、押鍵待ちの状態か否かを示すフラグWAIT Fが「0」を示すものであるか否かを判定する(S804)。
ここで、WAIT Fが押鍵待ちの状態でない「0」を示すものであれば、ガイド用データの「タイム」をストアしたレジスタ「TIME」の値をデクリメントして(S805)、このレジスタ「TIME」にストアされている時間が経過して「0」に達したか否かを判定する(S806)。
【0033】
ここで、レジスタ「TIME」の値が「0」に達すれば、アドレスポインタADをインクリメントして(S807)、ガイド用データROM106からこのアドレスポインタADの示すガイド用データを読み出す(S808)。
そして、この読み出されたガイド用データがデータの終わりを示す「END」であるか否かを判定する(S809)。
【0034】
ここで、読み出されたガイド用データが「END」でなければ、このガイド用データが「タイム」を示すものであるか否かを判定する(図9のS901)。
この読み出されたガイド用データが「タイム」でなければ、図10のS1001の処理に進み、ガイド用データが「イベント」を示すものであるか否かを判定する。
このガイド用データが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すデータであるか否かを判定する(S1002)。
【0035】
次に、この「イベント」の「パート」が「右手」を示すデータであれば、イベントの「識別パート」が「ノートオン」を示すものであるか否かを判定する(S1003)。
ここで、「イベント」の「識別パート」が「ノートオン」を示すものであれば、この「イベント」の「ノート(鍵番号)」をレジスタGNOTEにストアする(S1004)。
そして、次に「イベント」の「ベロシティ」を読み出してレジスタGVELOCITYにストアする(S1005)。
【0036】
そして、このレジスタGNOTEにストアされている「ノート(鍵番号)」に対応する鍵のガイド用LEDの点滅を停止してから(S1006)、このGNOTEにストアされている「ノート」に対応する鍵のガイド用LEDを点灯させて、当該鍵が今回押鍵すべきタイミングに達したことを報知する(S1007)。
【0037】
次に、アドレスポインタADの示すポインタを次回押鍵すべき鍵を指示するためのガイド用データを読み出すために、レジスタNEXT ADに転送する(S1008)。
そして、このNEXT ADをインクリメントして(S1009)、ガイド用データROM106からこのNEXT ADが示すガイド用データを読み込む(S1010)。
ここで、読み込まれたガイド用データが「イベント」を示すものであるか否かを判定する(図11のS1101)。
【0038】
この読み出されたガイド用データが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すものであるか否かを判定する(S1102)。
この「イベント」の「パート」が「右手」を示すものであれば、「イベント」の「識別コード」が「ノートオン」を示すものであるか否かを判定する(S1103)。
この「イベント」の「識別コード」が「ノートオン」を示すものであれば、この「イベント」の「ノート」を読み出して、レジスタNEXT NOTEにストアする(S1104)。
【0039】
次に、この「イベント」の「ベロシティ」を読み出して、レジスタNEXT VELOCITYにストアして(S1105)、レジスタNEXT NOTEにストアされた「ノート」に対応する鍵のガイド用LEDを点滅させる(S1106)。
そして、フラグWAIT Fに押鍵の待ち状態を示す「1」をセット(S1107)してから、再び図8のS807の処理に戻る。
【0040】
一方、S1101の処理において読み出されたガイド用データが「イベント」でない場合、或いは、S1102の処理において「イベント」の「パート」が「右手」でない場合、或いは、S1103の処理において「イベント」の「識別コード」が「ノートオン」でない場合は、再度S1009の処理に戻り次のガイド用データを読み出す処理を行う。
【0041】
また、S1003の処理において「イベント」の「識別パート」が「ノートオン」を示すものでなければ、読み出された「イベント」の「ノート」をレジスタGNOTEにストアして(S1013)、このGNOTEにストアされたノートに対応する鍵に設けられた点灯中のガイド用LEDを消灯(S1014)してから、図8のS807の処理に戻り、次のガイド用データを読み出す。
また、S1002の処理において「イベント」の「パート」が「右手」でなければ、読み出されたイベントに基づいて、発音用イベントに変換し(S1011)、これを音源108に送出して楽音信号の生成を処理してから(S1012)、図8のS807の処理に戻る。
更に、S1001の処理において読み出されたガイド用データが「イベント」以外のときも、図8のS807の処理に戻る。
【0042】
また、S901の処理において読み出されたガイド用データが「タイム」を示すものであれば、この「タイム」をレジスタTIMEにストアして(S902)、このガイド用データのタイムを累算するタイマT1に加算する(S904)。
そして、タイムを累算したタイマT1の値が所定値、例えば1小節分の時間に達したか否かを比較する(S904)。
ここで、タイマT1の累積時間が「所定値」に達すれば、テンポの更新を示すフラグCHANG Fを「1」にセットしてから(S905)本ルーティンを終了する。
一方、S904の処理においてタイマT1の累積時間が「所定値」に達していなければ何もしないで本ルーティンを終了する。
【0043】
次に、図8のS809の処理において読み出されたガイド用データが「END」を示すものであればスタートフラグSTFをストップ状態として「0」にセットして(S810)、発音中の全ての楽音をノートオフ処理してから(S811)、点滅中/点灯中のガイド用LEDを全て消灯して(S812)本ルーティンを終了する。
【0044】
一方、S801の処理においてスタートフラグSTFが「1」でないとき、S802の処理でタイマT3のカウント値がまだ最小単位の時間に達していないとき、S804の処理で次の押鍵の待機を示すフラグWAIT Fが「0」でないとき、S806の処理でレジスタTIMEが「0」に達していないとき、のいずれの場合は何もせずにそのまま本ルーティンを終了する。
【0045】
上述のとおり、本ガイド処理において、ガイド用データROM106からガイド用データが順次読み出され、点滅表示状態にあるガイド用LEDを持つ次回押鍵すべき鍵が今回押鍵タイミングに達すると、そのガイド用LEDは「点灯」に切り換わる。
そして、更に次回押鍵すべき鍵を指示するガイド用データを先に読み込んで、当該鍵を点滅表示する。
これと同時に、ガイド用データを読み出す度にイベント間のタイムを所定時間累積する(T1)と共に、実際の演奏経過時間(T2)をカウントし、この両者を比較するための準備をしている。
【0046】
図12は、図3のS304鍵盤処理の詳細フローチャートを示す。
まず、鍵番号を指定するポインタnの値を「0」にセットする(S1201)。
そして、ポインタnの値で示される鍵番号の鍵が押鍵/離鍵されたか否か、鍵操作に変化がなかったか否かを調べ(S1202)、当該鍵スイッチがオフからオンになったことが検出されると、この押鍵速度に応じたベロシティ値を検出してレジスタVELOCITYにストアする(S1203)。
【0047】
次に、このポインタnの値(鍵番号)とレジスタVELOCITYにストアされているベロシティ値に基づいてノートオンコマンドを作成して(S1204)、音源108にこのノートオンコマンドを送出して楽音信号の生成処理を指示する(S1205)。
そして、このポインタnの値に対応する鍵が押鍵されたか否かを示すレジスタON(n)に押鍵状態であることを示す「1」をセットしてから(S1206)、鍵番号を指定するポインタnの値をインクリメントする(S1207)。
【0048】
次に、このポインタnの値が鍵数の最高値に達したか否かを判定する(S1208)。
ここで、インクリメントされたポインタnの値が鍵数の最高値に達しなければ、S1202の処理に戻る。
【0049】
一方、S1202の処理においてポインタnの値に対応する鍵がオンからオフしたことが検出されると、レジスタVELOCITYに「0」にセットする(S1209)。
そして、このポインタnの値とレジスタVELOCITYのデータ「0」に基づいて、ノートオフコマンドを作成し(S1210)、このノートオフコマンドを音源108に送出して消音処理を指示する(S1211)。
そして、このポインタnの値に対応するレジスタON(n)に離鍵状態であることを示す「0」をセットしてから(S1212)、S1207の処理に進む。
また、S1202の処理において鍵番号がnの値の鍵スイッチに何も変化がないと検出されるとS1207の処理に進む。
【0050】
以上の処理は、ポインタnの値が鍵数の最高値に到達するまで繰り返し行われ、鍵盤103の全鍵の鍵変化状態が検出される。
そして、S1208の処理においてポインタnの値が鍵数の最高値に達すると、図13のS1301の処理に進む。
【0051】
上述の如く、図12の処理は鍵盤処理の一部を示すものであり、鍵操作の検出の有無に応じて楽音生成の処理を実行している。
具体的には、鍵盤103の全鍵に亘って押鍵/離鍵操作されたか否か、或いは何も鍵操作がなされていないか否かを調べ、何れかの鍵が押鍵操作されるとこの鍵番号とベロシティに基づいて楽音信号の生成処理を指示している。
また、押鍵されていた鍵が離鍵されると、この鍵番号に対応する発音中の楽音の消音処理を指示している。
【0052】
図13のS1301の処理においてスタートフラグSTFが「0」を示すものであるか否かを判定する。
このスタートフラグSTFが「0」であれば、ストップ状態であるのでこのルーティンを終了する。
また、スタートフラグSTFが「0」でなければ、フラグWAIT Fが「1」を示すものであるか否かを判定する(S1302)。
このフラグWAIT Fが押鍵の待ちの状態を示す「1」であれば、ポインタnに最初の鍵番号として「0」をセットして(S1303)、レジスタGNOTEにストアされているノート(鍵番号)が、このポインタnの値と等しいか否かを判定する(S1304)。
【0053】
ここで、GNONEにストアされているノートが、ポインタnの値と等しければ、レジスタON(n)が押鍵状態であることを示す「1」を示すものであるか否かを判定する(S1305)。
このレジスタON(n)が「1」を示すものであれば、このポインタnの値に対応する鍵番号の鍵が押鍵されたときのベロシティをストアするレジスタVELOCITIYの値が、GVELOCITYにストアされているガイド用データの「ベロシティ」の値±許容値αの範囲内であるか否かを判定する(S1306)。
【0054】
ここで、レジスタVELOCITIYの値が、GVELOCITYの値±許容値αの範囲内であれば、鍵番号を指定するポインタnの値をインクリメントして(S1307)、このポインタnの値が鍵番号の最大数に達したか否かを判定する(S1308)。
この、S1308の処理においてポインタnの値が鍵番号の最大数に達していなければ、再びS1304の処理に戻る。
【0055】
一方、S1304の処理で、レジスタGNOTEにストアされたガイド用データのノートの値と鍵番号を示すポインタnの値が一致していない場合も、レジスタON(n)が「1」を示すものであるか否かを判定する(S1311)。
そして、レジスタON(n)が「1」でなければ、S1307の処理に進む。しかし、鍵番号のレジスタON(n)が「1」である場合、即ち、レジスタGNOTEにストアされているノート(鍵番号)に対応する鍵でない鍵が押鍵されている場合は本ルーティンを終了する。
このようにして、ガイド用データのイベントで押鍵を指示していない鍵が押鍵されているか否かについても検証しており、たとえば、ガイド用データで押鍵を指示していない鍵が押鍵されると、これに続くガイドデータを読み出さないようにしているので、正しく押鍵されるまで押鍵すべき鍵の点灯を継続している。
そして、鍵盤103の全鍵に亘って、読み出されているガイド用データが指示する鍵を許容範囲内のベロシティで押鍵されているか否か、演奏ガイドされていない鍵が押鍵されているか否かを調べる。
【0056】
一方、S1305の処理でレジスタON(n)が「1」でない場合、即ち、レジスタGNOTEにストアされているノートに対応する鍵が押鍵されていない場合、或いは、S1306の処理で、ポインタnの値に対応する鍵の押鍵時のベロシティがガイド用ベロシティの許容値の範囲を満たしていない値である場合は、何もしないで本ルーティンを終了する。
このように押鍵すべき鍵を正しく押鍵していない場合においてもこれに続くガイドデータを読み出さないようにしているので、正しく押鍵されるまでこの押鍵すべき鍵の点灯を継続している。
【0057】
次に、S1308の処理においてこのポインタnの値が鍵番号の最大数に達すると、フラグWAIT Fに押鍵待ち状態解除を示す「0」をセットして(S1309)、ポインタnの値に対応する点灯中のガイド用LEDを消灯する(S1310)。
【0058】
上述のとおり、図13の処理は鍵盤処理の一部であり、演奏ガイドした鍵が発音タイミングに達したときに、全鍵に亘って押鍵されたか否かの判定処理をしている。
具体的には、ガイド用データが読み出されて、ガイド用LEDが点灯になって押鍵タイミングであることを報知しているときに押鍵操作されると、鍵盤103の全鍵に亘って順次押鍵/離鍵状態、及び、この押鍵された鍵のベロシティを調べ、ガイド用データのノート及びこのベロシティとを比較する。
そして、正しい押鍵がなされればこの点灯中の鍵LEDを消灯させるが、ガイドされた鍵が押鍵されなかったり、或いは、例えガイド表示された鍵を押鍵したとしても、ガイド用データが示す基準のベロシティに対して許容値に満たない押鍵速度であれば演奏ミスとして判定され、この演奏ガイド中の鍵LEDは正しく押鍵されるまで点灯状態を継続する。
【0059】
次に、図14のS1401の処理に進んで、テンポの変更を示すフラグCHANGE Fが「1」を示すものであるか否かを判定する(S1401)。
このテンポの変更を示すフラグCHANGE Fが「1」でなければ何もしないでそのまま本ルーティンを終了するが、CHANGE Fが「1」を示すものであれば、この処理までの実際の演奏経過時間をカウントするタイマT2とガイド用データの「タイマ」の値を累積したタイマT1の値の差を算出して得られた値をレジスタSABUNにストアする(S1402)。
【0060】
そして、このレジスタSABUNにストアされた累積時間差のデータに基づいて、レジスタTEMPOにストアされている値を変更して書き換える(S1403)。
次に、このレジスタTEMPOの値に基づいて、ガイド用データROM106を読み出すタイミング周期を決める最小単位時間の値を変更(S1404)する。
このとき、例えば、T2>T1であればユーザーの演奏する速度が予めテンポスイッチで設定されたテンポ値の速度より遅いので、レジスタ「TEMPO」の値を大きくなるように変更して、ガイド用データの読み出し速度を遅くする。
また、これとは逆にT2<T1であればレジスタ「TEMPO」の値を小さくなるように変更して、ガイド用データの読み出しを早めるようにしている。
【0061】
この「TEMPO」の値が変更されたらフラグCHANGE Fを「0」にセットする(S1405)。
そして、ガイド用データの「タイム」値を累積するタイマT1と押鍵時間を累積するタイマT2を夫々「0」にセットして(S1406)、本ルーティンを終了する。
【0062】
上述のとおり、図14の処理は鍵盤処理の一部でありガイド表示された鍵に対して押鍵された累積時間が所定時間(例えば1小節)押鍵されると、この間のユーザーのテンポと予めテンポスイッチで設定されたテンポの差を求めて、このテンポ差に応じてガイド用データの読み出し速度を調整している。
そして、ユーザーのペースで演奏できるようにガイド用データの読み出しテンポを制御して演奏ガイドを進行させる。
【0063】
再び、S1302の処理に戻って、フラグWAIT Fが「1」でなければ、即ち、押鍵待ちの状態でなければ、図15のS1507の処理に移行して鍵番号を示すポインタnの値を「0」にセットする。
このときの状態は、次回押鍵すべき鍵のLEDが点滅している状態であって、これがまだ押鍵タイミングに達していない状態である。
【0064】
次に、ガイド用データから次回押鍵すべき鍵に対応するノートをストアするレジスタNEXT NOTEの値がポインタnの値と等しいか否かを判定する(S1508)。
ここで、レジスタNEXT NOTEにストアされたノートがポインタnの値に対応する鍵番号に対応する音高値と等しければ、このポインタnの値に対応する鍵が押鍵状態であることを示す「1」の値がレジスタON(n)にセットされているか否かを判定する(S1509)。
【0065】
このレジスタON(n)の値が「1」を示すものであれば、このポインタnの値に対応する鍵の押鍵によるベロシティ値をストアするレジスタVELOCITYの値が、ガイド用データの中で次回押鍵すべき鍵のベロシティの値をストアするNEXT VELOCITYの値に対して許容値±αの範囲内であるか否かを判定する(S1510)。
【0066】
ここで、レジスタVELOCITYの値がレジスタNEXT VELOCITYの値に対して許容値±αの範囲内であれば、鍵番号を示すポインタnの値をインクリメントして(S1511)、このポインタnの値が鍵番号の最大数を超えたか否かを判定する(S1512)。
ここで、ポインタnの値が鍵番号の最大数を超えていなければ再びS1508の処理に戻る。
【0067】
こうして、鍵盤103の全鍵に亘って次回押鍵すべき鍵が正しい押鍵タイミングより早く押鍵されたか否かを調べるとともに、この早押しされた鍵がガイド用データの押鍵速度(ベロシティ)の許容範囲内であるか否かを調べる。
そして、S1508の処理でポインタnの値がレジスタNEXT NOTEにストアされているノートと異なればS1521の処理に進んで、レジスタON(n)がポインタnの値に対応する鍵が押鍵状態を示す「1」であるか否かを調べる。
このときポインタ(n)の値が「1」でない、つまりポインタ(n)の値に対応する鍵が押鍵されていなければ、S1511の処理に進む。
しかし、レジスタON(n)が「1」でレジスタNEXT NOTEのノートと異なる鍵番号nが押鍵されていたら、何もしないで本ルーティンを終了する。
このようにして、ガイド用データのイベントで押鍵を指示していない鍵が押鍵されているか否かについても検証しており、たとえば、ガイド用データで押鍵を指示していない鍵が押鍵されると、これに続くガイドデータを読み出さないようにしているので、正しく押鍵されるまで押鍵すべき鍵の点滅を継続している。
【0068】
また、S1509の処理でレジスタON(n)が「1」でない場合、即ち、NEXT NOTEにストアされているノートに対応する鍵が押鍵されていなかった場合、或いは、対応する鍵が押鍵されていたとしても、そのベロシティがガイド用データの許容範囲を外れる押鍵速度(押鍵強度)で押鍵した場合は何もしないで本ルーティンを終了する。
【0069】
そして、S1512の処理においてポインタnの値が鍵番号の最大数を超えれば、鍵盤103の全鍵に対する押鍵状態のチェック終了となる。
それから、ポインタnの値に対応する鍵の点滅中のガイド用LEDを消灯する(S1513)。
そして、アドレスポインタADをインクリメントしてから(S1514)、このアドレスポインタADの示すガイド用データを読み出し(S1515)、この読み出されたデータが「END」を示すものであるか否かを判定する(S1516)。
【0070】
このとき、読み出されたデータが「END」でなければ、図16のS1601の処理に移行するが、読み出されたガイド用データが終了を示す「END」であった場合は、スタートフラグSTFを演奏ガイドの終了を示す「0」にセットしてから(S1517)、ノートオンで発音中のノートを全てノートオフして消音処理の指示をする(S1518)。
そして、点滅中/点灯中のガイド用LEDを全て消灯し(S1519)、次に、ガイド用データを読み出す最小単位の時間のタイマT3をカウント停止して(S1520)、本ルーティンを終了する。
【0071】
上述のとおり、図15の処理は鍵盤処理の一部であり演奏ガイドされた鍵のLEDが点灯状態になっていないとき、即ち、次回押鍵すべき鍵のLEDが点滅表示しているときに、これが点灯状態に変化する前にユーザーが押鍵したときは、更に次のガイドデータを先き読みして演奏ガイドを滞りなく進行させている。
例えば、鍵のLEDが点滅表示して押鍵の待機状態にあるときに、この鍵を早押したとしても、上述の如く演奏ガイドされた鍵のLEDが点灯状態になって押鍵タイミングに達しているときの処理と同様に、鍵盤103の全鍵に亘って順次押鍵/離鍵状態、及び、押鍵された鍵のベロシティを調べ、ガイド用データで示されている次のノート及び許容範囲のベロシティとを比較する。
そして、次鍵を演奏ガイドされた鍵に対してのみ正しく押鍵されればこの点滅中の次鍵のLEDを消灯させ、次に続くガイド用データを読み出すが、この次鍵の演奏ガイドされた鍵が押鍵されなかったり、或いは、例え次鍵の演奏ガイドされた鍵を押鍵したとしても、このガイド用データに記録されている基準となるベロシティの許容値に満たないほどの押鍵速度であれば演奏ミスとして判定される。
そして、この次鍵のLEDの点滅は継続され、更に次に続くガイド用データの読み出しを保留している。
【0072】
次に、図16のS1601の処理において、この読み出されたデータが「イベント」を示すものであるか否かを判定する。
ここで読み出されたデータが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すデータであるか否かを判定する(S1602)。
【0073】
この「イベント」の「パート」が「右手」を示すデータであれば、次に、この「イベント」の「識別コード」が「ノートオン」を示すものであるか否かを判定する(S1603)。
この読み出された「イベント」の「パート」が「右手」でなければ、この読み出されたイベントを発音用イベントに変換して(S1610)、この変換されたデータを音源108に送出して楽音信号の生成処理を指示してから(S1611)、図15のS1514の処理に戻る。
【0074】
一方、この「イベント」の「識別コード」が「ノートオン」を示すものであれば、この「イベント」の「ノート」が次回押鍵すべき鍵であったか、正しい押鍵タイミングより早く押鍵した鍵を示すノートである「NEXT NOTE」を示すものであるか否かを判定する(S1604)。
【0075】
この「イベント」の「ノート」が「NEXT NOTE」を示すものであれば、ガイド用データの「タイム」をストアするためのレジスタTIMEを「0」にセットして(S1605)、S1606の処理に進む。
【0076】
一方、S1601の処理で読み出されたデータが「イベント」でない場合、S1602の処理で読み出された「イベント」の「パート」が「右手」でない場合、S1603の処理で読み出された「イベント」の「識別コード」が「ノートオン」を示すものでない場合、或いは、S1604の処理で、読み出された「イベント」の「ノート」が「NEXT NOTE」にストアされたノートと一致しない場合、のいずれかであればS1514の処理に戻る。
次に、S1606の処理において、レジスタADが示すアドレスポインタをレジスタNEXT ADにストアする(S1606)。
【0077】
次に、このレジスタNEXT ADのアドレスポインタをインクリメントする(S1607)。
そして、このNEXT ADが示すアドレスポインタが示すガイド用データを読み出し(S1608)、この読み出されたガイド用データが「END」を示すものであるか否かを判定する(S1609)。
【0078】
ここで、読み出されたガイド用データが「END」でなければ、図17のS1701の処理に移行する。
一方、ここで読み出されたガイド用データが「END」を示すものであれば、図14のS1401の処理に戻る。
次に、S1701の処理において読み出されたガイド用データが「イベント」を示すものであるか否かを判定する。
この読み出されたガイド用データが「イベント」を示すものであれば、この「イベント」の「パート」が「右手」を示すデータか否かを判定する(S1702)。
【0079】
この「イベント」の「パート」が「右手」を示すデータであれば、この「イベント」が「ノートオン」を示すものであるか否かを判定する(S1703)。
この「イベント」が「ノートオン」を示すものであれば、この「イベント」の「ノート」をレジスタNEXT NOTEにストアして(S1704)、S1705の処理に進む。
【0080】
しかし、S1701の処理において読み出されたガイド用データが「イベント」でない場合、S1702の処理において読み出されたガイド用データの「イベント」の「パート」が「右手」でない場合、或いは、S1703の処理において読み出されたガイド用データのイベントが「ノートオン」でない場合、の夫々についても図15のS1514の処理に戻る。
【0081】
次に、S1705の処理において「イベント」の「ベロシティ」をレジスタNEXT VELOCITYにストアする。
そして、このレジスタNEXT VELOCITYにストアされたノートに対応する鍵のガイド用LEDを点滅させてから(S1706)、図14のS1401の処理に戻る。
上述の通り、図16、図17の処理は鍵盤処理の一部であり、次回押鍵すべき鍵であっても正しく押鍵されると、更にその次のガイド用データを順次先き読みして更に次の鍵のガイド処理を進行させている。
【0082】
本実施例では、ガイド表示された鍵と押鍵操作された鍵とを比較して、この押鍵された鍵がガイド表示された鍵の全てであり、且つ、このガイド表示された鍵のみである場合にのみ、次に続く演奏ガイドを継続させ、それ以外の演奏操作が検出された場合は演奏ガイドを停止するようにしたので、例え正しい押鍵がなされていてもガイドされていない他の鍵も同時に押鍵していた場合は、完全に正しく弾くまでガイドを進行させないようにして、ユーザーに正確な押鍵を習得させるようにしている。
【0083】
更に、ガイド表示された鍵に対してのみ押鍵したとしても、これがガイド用データに記録されているベロシティと、この押鍵されたときのベロシティを比較して許容範囲内のベロシティ(押鍵速度)で弾かれていれば、演奏ガイドを継続するが、この押鍵されたベロシティが許容値を満たしていなければ演奏ガイドを進行させないようにしているので、ユーザーに鍵タッチを加減するように促すことができる。
【0084】
また、ガイドされた鍵に対して、当該鍵を適正な鍵タッチで押鍵していれば、例え、ユーザーの演奏テンポが予めテンポスイッチで指定したテンポと比較して、許容値を超える誤差であったとしても、このユーザーの演奏テンポに合うようにガイド用データの読み出し速度を自動的に調整する構成にしているので、ユーザーは演奏テンポを気にすることなく、マイペースで正しい鍵操作の習得のみに専念できる。
【0085】
尚、他の実施形態として、ガイド用データROM106に楽譜表示データを記憶させておき、ガイド用表示部107に演奏ガイドを表示するとともに、楽譜表示データを読み出して、この演奏ガイドしている楽譜を同時に表示してもよい。
また、ガイド用データROM106に運指表示データを記憶させておき、ガイド用表示部107に演奏ガイドを表示するとともに、運指表示データを読み出して、演奏ガイドに対応する運指画像を同時に表示してもよい。
【0086】
また、演奏ガイド及び演奏評価を音声等で発音指示するようにしてもよい。
本発明は上記実施の形態に限定されることなく、その要旨を逸脱しない範囲において、具体的な構成、機能、作用、効果において、他の種々の形態によっても実施することができる。
【0087】
また、上記実施の形態で説明した動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【0088】
【発明の効果】
以上述べたように本発明によれば、楽器に設けられている全ての演奏操作子に対して演奏操作がなされたか否かを検出して、演奏ガイドされた演奏すべき演奏操作子とこのときに演奏操作がなされた演奏操作子とを比較して、この演奏操作された演奏操作子が演奏ガイドされた演奏操作子の全てであり、且つ、このガイドされた演奏操作子のみが検出された場合は次に続く演奏ガイドを継続させるが、それ以外の演奏操作が検出された場合は演奏ガイドを停止するようにしたので、ユーザーの間違った演奏操作、或いは、演奏方法の誤解を正すことができる。
【図面の簡単な説明】
【図1】本発明の演奏指示装置の構成を示すブロック図である。
【図2】図1に示したガイド用データROMの記憶領域に記憶されているガイド用データのデータ構成を示す。
【図3】本演奏指示装置の動作全体概略処理手順を示す基本フローチャートである。
【図4】図3に示したSW処理のサブルーティンの詳細を示すフローチャートである。
【図5】図4に示したテンポSW処理のサブルーティンの詳細を示すフローチャートである。
【図6】図4に示したスタート/ストップSW処理のサブルーティンの詳細を示すフローチャート(その1)である。
【図7】図4に示したスタート/ストップSW処理のサブルーティンの詳細を示すフローチャート(その2)である
【図8】図3に示したガイド処理のサブルーティンの詳細を示すフローチャート(その1)である。
【図9】図3に示したガイド処理のサブルーティンの詳細を示すフローチャート(その2)である。
【図10】図3に示したガイド処理のサブルーティンの詳細を示すフローチャート(その3)である。
【図11】図3に示したガイド処理のサブルーティンの詳細を示すフローチャート(その4)である。
【図12】図3に示した鍵盤処理のサブルーティンの詳細を示すフローチャート(その1)である。
【図13】図3に示した鍵盤処理のサブルーティンの詳細を示すフローチャート(その2)である。
【図14】図3に示した鍵盤処理のサブルーティンの詳細を示すフローチャート(その3)である。
【図15】図3に示した鍵盤処理のサブルーティンの詳細を示すフローチャート(その4)である。
【図16】図3に示した鍵盤処理のサブルーティンの詳細を示すフローチャート(その5)である。
【図17】図3に示した鍵盤処理のサブルーティンの詳細を示すフローチャート(その6)である。
【符号の説明】
101 CPU
102 スイッチ群
103 鍵盤
104 プログラムROM
105 ワークRAM
106 ガイド用データROM
107 ガイド用表示部
108 音源
109 発音回路
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a performance instruction device and a performance instruction processing program.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, as a lesson function of an electronic keyboard instrument, there is a function of reading out music data of a model performance stored in a storage means and giving a performance instruction.
For example, by comparing the pitch of song data serving as a model performance with the pitch of a key that has been depressed by the user, if it is detected that the pitch guided by the performance has been depressed, the next following song is detected. There is a performance instructing device that reads out the pitch of data and continues the performance guide (see Patent Literature 1, Patent Literature 2, and Patent Literature 3 for references).
[0003]
[Patent Document 1]
JP-A-2000-267662 (Pages 1 to 20, FIG. 53)
[Patent Document 2]
JP-A-2000-276147 (pages 1 to 20, FIG. 53)
[Patent Document 3]
JP 2001-125569 A (Pages 1 to 15; FIG. 41)
[0004]
[Problems to be solved by the invention]
For example, when a beginner presses a key whose performance is being guided, the key to be pressed and the adjacent unguided key may also be pressed at the same time.
As described above, even when the correct performance operator and the wrong performance operator are simultaneously performed, the performance guide devices disclosed in Patent Documents 1 to 3 described above do not always press the correct key because the correct key is pressed. Even if the key is used, the next performance guide is continued as it is, so that the user may repeat the same mistake many times without noticing the performance mistake and the performance may not improve.
[0005]
SUMMARY OF THE INVENTION The present invention has been made to solve the conventional problems as described above. The purpose of the present invention is to allow a user to be aware of the performance mistake and play it correctly if the user makes a mistake, and to correct the wrong song. If you have made a mistake in interpretation, you have to correct it.
[0006]
[Means for Solving the Problems]
The means for solving the present invention are as follows.
In order to achieve the above object, the invention according to claim 1 includes a storage unit that stores a series of pitch information, and a reading unit that reads out the pitch information from the storage unit.
Based on the pitch information read by the reading means, there is provided a performance guide means for guiding a performance operator to be played from a plurality of operators provided in the performance device.
And a performance operation detecting means for detecting whether or not a performance operation has been performed on each of the plurality of performance operators,
After the performance operation detecting means completes the detection of whether or not the performance operation has been performed on all the performance operators of the performance device, the performance operator to be played guided by the performance guide means and the performance operator Comparing a performance operator detected that the performance operation has been performed by the operation detection means, and the performance operator detected that the performance operation has been performed is all of the guided performance operators, and Determining means for determining whether or not only the guided performance operator.
Then, it is determined that the performance operators detected by the determination means to have performed the performance operation are all of the guided performance operators and only the guided performance operator. Only in such a case, the reading means is controlled so as to read the next succeeding pitch information from the storage means, and if other performance operation is detected, the reading operation of the reading means is controlled to be stopped. It has control means.
[0007]
The present invention can be implemented by making the operation procedure of the above means into a program and causing a computer to execute the procedure. At that time, the computer program can be supplied to the computer through a disk-type recording medium such as a hard disk, various memories such as a semiconductor memory or a card-type memory, or various program recording media such as a communication network.
[0008]
According to the present invention having the above-described configuration, the subsequent performance guide can be continued only when a performance operation is performed on a valid performance operator for the music to be performed.
[0009]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a block diagram showing a configuration example of a performance instruction device according to an embodiment of the present invention.
The CPU 101 is connected via a bus line 110 to each of the circuits and devices, which will be described later, constituting the performance instructing device, and exchanges various data to control the overall functions.
[0010]
The switch group 102 includes a plurality of switches, and includes a power switch for turning on / off the power, a mode switch for selecting a mode, a tempo switch for specifying a tempo of automatic performance, a start / stop switch for instructing start / stop of automatic performance, and others. Switches and the like for setting various functions are provided.
[0011]
The keyboard 103 includes a plurality of keys. As will be described later, a guide display unit 107 such as an LED (light emitting diode) that illuminates the key surface is provided below the keyboard, and each key corresponds to each key. A key switch for detecting key press / key release is provided.
When these keys are pressed / released, the key switches are turned on / off in accordance with the key operations. This on / off signal is input to the CPU 101 via the bus line 110.
[0012]
The program ROM 104 is a storage device that stores a program for executing processing of various functions in the CPU 101 according to a predetermined procedure.
[0013]
The work RAM 105 is a work memory that temporarily stores necessary data when the CPU 101 executes the processing of the program.
[0014]
The guide data ROM 106 is a storage device that stores performance data for guide.
[0015]
The guide display unit 107 includes the guide LED for each key provided on the keyboard 103 as described above, and is controlled to be turned on, blinked, and turned off based on a display instruction from the CPU 101. Note that the guide display unit 107 may be provided with, for example, a liquid crystal display panel or the like instead of the LED provided below the key, and may display information related to performance in addition to the guide display.
[0016]
The sound source 108 generates a tone signal based on a tone generation instruction from the CPU 101.
The tone generator 109 amplifies the tone signal generated by the sound source 108 and emits the tone signal from a speaker.
[0017]
FIG. 2 shows a data arrangement configuration of the guide data ROM 106.
The memory area of the guide data ROM 106 includes various "events" constituting a guide song, "time" which is time data from the "event" to the next event, and "end" indicating the end of the guide song. END ".
In the memory area for storing this “event”, “parts” indicating right / left hands used for performance, “identification codes” indicating note-on / note-off, key numbers (pitch values) ), And “velocity” indicating the key pressing speed or intensity.
[0018]
FIG. 3 is a flowchart showing the basic processing of the present invention.
When a power switch (not shown) is turned on, the CPU 101 sets each data stored in the work RAM 105 to an initial state (S301).
[0019]
Next, after executing a SW process (S302) for reading the switch operation state detected by the switch group 102, a guide process (S303), a keyboard process (S304), and other processes (S305) are respectively executed to execute a power switch. Are repeated until S is turned off.
When the power switch is turned off, a power-off process is executed and the routine ends.
[0020]
Next, the details of the SW process S302 shown in FIG. 3 will be described with reference to the flowchart in FIG.
First, the tempo SW process is executed, then the start / stop SW process is executed, then the other SW processes are executed, and the routine ends.
[0021]
Details of the tempo SW process S401 shown in FIG. 4 will be described with reference to the flowchart in FIG.
First, the CPU 101 determines whether a tempo SW (not shown) provided in the switch group 102 has been operated (S501).
If the tempo SW has been operated to set the tempo, the set input tempo value is stored in the register "TEMPO" (S502).
Then, based on the value of the register “TEMPO”, a minimum unit time for determining a reference timing cycle for reading out the guide music data from the guide ROM 106 is set (S503).
[0022]
Details of the start / stop SW process S402 shown in FIG. 4 will be described with reference to the flowcharts of FIGS.
First, the CPU 101 determines whether or not a start / stop SW (not shown) provided in the switch group 102 has been turned on (S601).
Here, if the start / stop SW is not turned on, this routine ends without doing anything, but if the start / stop SW is turned on, the start flag STF is inverted (S602).
Then, it is determined whether or not the inverted start flag STF is "1" indicating the start of the automatic performance (S603).
At this time, if the STF indicates "1", the value of the address pointer AD is moved to the head address of the guide data ROM 106 (S604).
[0023]
As a result, the “time” stored at the start address of the guide data ROM 106 is read (S605), and the read “time” is stored in the register “TIME” of the work RAM 105 (S606).
Then, in order to read guide data for designating a key to be pressed next time, the address indicated by the address pointer AD is directly stored in the register "NEXT AD" of the work RAM 105 (S607), and the register "NEXT AD" is read. Is incremented (S608).
[0024]
Then, data is read from the guide data ROM 106 based on the value of the address pointer of “NEXT AD” (S609), and it is determined whether or not the read guide data indicates “event” (FIG. 7 S701).
Here, if the read guide data indicates “event”, it is determined whether the “part” of the event indicates “right hand” (S702).
[0025]
If the "part" of this event indicates "right hand", then it is determined whether or not the "identification code" in the event indicates "note-on" (S703).
If the identification code indicates "note on", the "note" in the event corresponding to this is read out and stored in the register "NEXT NOTE" (S704).
[0026]
Next, the data of “velocity” in the event is read and stored in the register “NEXT VELOCITY” (S705).
Then, the guide LED provided below the key specified by the “note” (key number) stored in “NEXT NOTE” flashes to notify that the key is to be pressed next (S706). ).
[0027]
Next, the time "time" stored in the register "TIME" is stored in the timer T1 for accumulating the time (S707).
After setting the timer T2 for counting the actual performance elapsed time to "0" (S708), the timer T3 for counting the minimum unit time serving as a reference for sequentially reading data from the guide data ROM 106 is set. The routine is started (S709) and the routine ends.
[0028]
On the other hand, if the guide data read in the process of S701 is not “event”, if the part in the event is not “right hand” in the process of S702, or if the identification code in the event is not “note-on”, Then, the process returns to S608 in FIG. 6, advances NEXT AD, and performs a process of reading the next data from the guide data ROM 106.
[0029]
If the start flag STF is not "1" in the process of S603, that is, if it is in the stop state, the timer T3 stops counting (S610), and all musical tones being sounded are turned off and muted. An instruction is given (S611).
Then, an instruction to turn off all the guide LEDs that are turned on is given (S612), and the routine ends.
[0030]
As described above, in the start / stop processing, when the start / stop SW is turned on to enter the start state, data is read from the leading address of the guide data ROM 106 and various timers are started.
Further, the guide data is read in advance, and the guide LED provided on the key to be pressed next time is blinked.
Then, the process proceeds to a guide process described later.
[0031]
Next, details of the guide processing S303 shown in FIG. 3 will be described with reference to the flowcharts of FIGS.
First, it is determined whether or not the start flag STF indicates “1” (S801).
If the start flag STF indicates “1” which is the start state, it is determined whether or not the count value of the timer T3 has passed the minimum unit time (S802).
[0032]
Here, if the count value of the timer T3 has reached the minimum unit time, the timer T2 for accumulating the key pressing time is incremented (S803), and the flag WAITF indicating whether or not the key pressing waiting state is set to " It is determined whether the value indicates "0" (S804).
Here, if the WAIT F indicates “0” which is not in the key press waiting state, the value of the register “TIME” storing the “time” of the guide data is decremented (S805), and the value of this register “TIME” is decremented. It is determined whether the time stored in “.” Has elapsed and reached “0” (S806).
[0033]
Here, when the value of the register “TIME” reaches “0”, the address pointer AD is incremented (S807), and the guide data indicated by the address pointer AD is read from the guide data ROM 106 (S808).
Then, it is determined whether or not the read guide data is “END” indicating the end of the data (S809).
[0034]
Here, if the read guide data is not “END”, it is determined whether or not the guide data indicates “time” (S901 in FIG. 9).
If the read guide data is not “time”, the process proceeds to S1001 in FIG. 10 to determine whether the guide data indicates “event”.
If the guide data indicates "event", it is determined whether or not the "part" of the "event" is data indicating "right hand" (S1002).
[0035]
Next, if the “part” of the “event” is data indicating “right hand”, it is determined whether the “identification part” of the event indicates “note-on” (S1003).
If the "identification part" of the "event" indicates "note-on", the "note (key number)" of the "event" is stored in the register GNOTE (S1004).
Then, the “velocity” of the “event” is read and stored in the register GVELOCITY (S1005).
[0036]
After the guide LED of the key corresponding to the “note (key number)” stored in the register GNOTE stops blinking (S1006), the key corresponding to the “note” stored in this GNOTE is stopped. The guide LED is turned on to notify that the key has reached the timing to be pressed this time (S1007).
[0037]
Next, in order to read the guide data for indicating the key to be pressed next by the pointer indicated by the address pointer AD, the data is transferred to the register NEXT AD (S1008).
Then, the NEXT AD is incremented (S1009), and the guide data indicated by the NEXT AD is read from the guide data ROM 106 (S1010).
Here, it is determined whether or not the read guide data indicates “event” (S1101 in FIG. 11).
[0038]
If the read guide data indicates "event", it is determined whether or not the "part" of the "event" indicates "right hand" (S1102).
If the "part" of the "event" indicates "right hand", it is determined whether the "identification code" of the "event" indicates "note-on" (S1103).
If the "identification code" of the "event" indicates "note on", the "note" of the "event" is read out and stored in the register NEXT NOTE (S1104).
[0039]
Next, the "velocity" of the "event" is read out, stored in the register NEXT VELOCITY (S1105), and the guide LED of the key corresponding to the "note" stored in the register NEXT NOTE blinks (S1106). .
Then, the flag WAIT F is set to “1” indicating the key press waiting state (S1107), and the process returns to S807 in FIG. 8 again.
[0040]
On the other hand, when the guide data read in the process of S1101 is not “event”, or when the “part” of “event” is not “right hand” in the process of S1102, or when the “event” is If the “identification code” is not “note-on”, the process returns to the process of S1009 again to perform the process of reading the next guide data.
[0041]
If the "identification part" of the "event" does not indicate "note-on" in the process of S1003, the read "note" of the "event" is stored in the register GNOTE (S1013), and the GNOTE is stored. After turning off the illuminated guide LED provided to the key corresponding to the note stored in step S1014 (S1014), the process returns to step S807 in FIG. 8 to read the next guide data.
If the “part” of the “event” is not “right hand” in the process of S1002, the event is converted into a sounding event based on the read event (S1011), and this is transmitted to the sound source 108 to generate a tone signal. Is generated (S1012), and the process returns to S807 in FIG.
Further, even when the guide data read out in the process of S1001 is other than “event”, the process returns to the process of S807 in FIG.
[0042]
If the guide data read in the processing of S901 indicates "time", the "time" is stored in a register TIME (S902), and a timer for accumulating the time of the guide data is stored. It is added to T1 (S904).
Then, it is determined whether or not the value of the timer T1 that has accumulated the time has reached a predetermined value, for example, a time of one bar (S904).
Here, if the accumulated time of the timer T1 reaches the "predetermined value", the flag CHANGF indicating the update of the tempo is set to "1" (S905), and this routine is ended.
On the other hand, if the accumulated time of the timer T1 has not reached the “predetermined value” in the processing of S904, the routine ends without doing anything.
[0043]
Next, if the guide data read in the processing of S809 in FIG. 8 indicates "END", the start flag STF is set to the stop state and set to "0" (S810), and all the sounding sounds are generated. After performing the note-off processing for the musical tone (S811), all the blinking / lit guide LEDs are turned off (S812), and the routine ends.
[0044]
On the other hand, if the start flag STF is not “1” in the processing of S801, if the count value of the timer T3 has not yet reached the minimum unit time in the processing of S802, a flag indicating the waiting of the next key press in the processing of S804. If the WAIT F is not "0", or if the register TIME has not reached "0" in the processing of S806, the routine ends without performing any operation.
[0045]
As described above, in the present guide processing, the guide data is sequentially read from the guide data ROM 106, and when the next key to be pressed having the guide LED in the blinking display state reaches the current key-depression timing, the guide is issued. The use LED is switched to “lighting”.
Then, guide data indicating a key to be pressed next time is read in advance, and the key is blinked.
At the same time, every time the guide data is read, the time between events is accumulated for a predetermined time (T1), and the actual performance elapsed time (T2) is counted, and preparations are made to compare the two.
[0046]
FIG. 12 shows a detailed flowchart of the S304 keyboard processing of FIG.
First, the value of the pointer n specifying the key number is set to “0” (S1201).
Then, it is checked whether the key of the key number indicated by the value of the pointer n has been pressed / released and whether the key operation has not changed (S1202). Is detected, the velocity value corresponding to the key pressing speed is detected and stored in the register VELOCITY (S1203).
[0047]
Next, a note-on command is created based on the value (key number) of the pointer n and the velocity value stored in the register VELOCITY (S1204), and the note-on command is sent to the sound source 108 to generate a tone signal. A generation process is instructed (S1205).
Then, "1" indicating that the key is pressed is set in a register ON (n) indicating whether or not the key corresponding to the value of the pointer n has been pressed (S1206), and the key number is designated. The value of the pointer n to be executed is incremented (S1207).
[0048]
Next, it is determined whether or not the value of the pointer n has reached the maximum value of the number of keys (S1208).
Here, if the incremented value of the pointer n does not reach the maximum value of the number of keys, the process returns to S1202.
[0049]
On the other hand, if it is detected in the process of S1202 that the key corresponding to the value of the pointer n has been changed from on to off, the register VELOCITY is set to “0” (S1209).
Then, a note-off command is created based on the value of the pointer n and the data “0” of the register VELOCITY (S1210), and the note-off command is sent to the sound source 108 to instruct a sound-mute process (S1211).
Then, "0" indicating that the key is released is set in the register ON (n) corresponding to the value of the pointer n (S1212), and the process proceeds to S1207.
If it is detected in the process of S1202 that there is no change in the key switch whose key number is n, the process proceeds to the process of S1207.
[0050]
The above processing is repeated until the value of the pointer n reaches the maximum value of the number of keys, and the key change state of all keys on the keyboard 103 is detected.
When the value of the pointer n reaches the maximum value of the number of keys in the process of S1208, the process proceeds to the process of S1301 in FIG.
[0051]
As described above, the processing in FIG. 12 shows a part of the keyboard processing, and the processing for generating a musical tone is executed in accordance with the presence or absence of detection of a key operation.
Specifically, it is determined whether or not a key press / release operation has been performed for all keys of the keyboard 103, or whether or not any key operation has been performed. The tone signal generation processing is instructed based on the key number and the velocity.
Further, when the key that has been depressed is released, an instruction is given to mute the tone that is being sounded corresponding to this key number.
[0052]
In the processing of S1301 in FIG. 13, it is determined whether or not the start flag STF indicates “0”.
If the start flag STF is "0", the routine is terminated because it is in the stop state.
If the start flag STF is not "0", it is determined whether or not the flag WAIT F indicates "1" (S1302).
If the flag WAIT F is "1" indicating a key press waiting state, "0" is set as the first key number in the pointer n (S1303), and the note (key number) stored in the register GNOTE is set. ) Is equal to or equal to the value of the pointer n (S1304).
[0053]
Here, if the note stored in the GNONE is equal to the value of the pointer n, it is determined whether or not the register ON (n) indicates “1” indicating that the key is pressed (S1305). ).
If the register ON (n) indicates "1", the value of the register VELOCITY which stores the velocity when the key of the key number corresponding to the value of the pointer n is depressed is stored in GVELOCITY. It is determined whether or not the value is within the range of the “velocity” of the guide data being used ± the allowable value α (S1306).
[0054]
Here, if the value of the register VELOCITY is within the range of the value of GVELOCITY ± the allowable value α, the value of the pointer n designating the key number is incremented (S1307), and the value of this pointer n becomes the maximum of the key number. It is determined whether or not the number has been reached (S1308).
If the value of the pointer n has not reached the maximum number of key numbers in the process of S1308, the process returns to the process of S1304 again.
[0055]
On the other hand, when the value of the pointer n indicating the key number does not match the value of the note of the guide data stored in the register GNOTE in the process of S1304, the register ON (n) indicates “1”. It is determined whether or not there is (S1311).
Then, if the register ON (n) is not “1”, the process proceeds to S1307. However, when the key number register ON (n) is “1”, that is, when a key other than the key corresponding to the note (key number) stored in the register GNOTE is pressed, the routine ends. I do.
In this way, it is also verified whether or not a key that has not been depressed in the event of the guide data is depressed.For example, a key that has not been depressed in the guide data is depressed. When the key is pressed, the subsequent guide data is not read, so that the key to be pressed continues to be lit until the key is correctly pressed.
Then, it is determined whether the key indicated by the read guide data has been pressed with a velocity within an allowable range over all keys of the keyboard 103, and whether a key not guided by the performance has been pressed. Check whether or not.
[0056]
On the other hand, if the register ON (n) is not “1” in the process of S1305, that is, if the key corresponding to the note stored in the register GNOTE has not been pressed, or If the velocity at the time of depressing the key corresponding to the value does not satisfy the range of the allowable value of the guide velocity, the routine is terminated without doing anything.
Even if the key to be depressed is not correctly depressed, the subsequent guide data is not read, so that the key to be depressed continues to be lit until the key is depressed correctly. I have.
[0057]
Next, when the value of the pointer n reaches the maximum number of key numbers in the process of S1308, “0” indicating the key press waiting state release is set in the flag WAIT F (S1309), and the value of the pointer n The turned-on guide LED is turned off (S1310).
[0058]
As described above, the process of FIG. 13 is a part of the keyboard process, and when the key whose performance is guided reaches the sounding timing, it is determined whether or not all the keys have been pressed.
More specifically, when the guide data is read out and the guide LED is turned on to notify that the key is pressed, a key-depressing operation is performed. The state of the key depression / key release and the velocity of the depressed key are checked in order, and the note of the guide data and this velocity are compared.
When the correct key is pressed, the lit key LED is turned off. However, even if the guided key is not pressed, or even if the guided key is pressed, the guide data is not displayed. If the key pressing speed is less than the allowable value for the indicated reference velocity, it is determined that a performance error has occurred, and the key LED in the performance guide continues to be lit until the key is correctly pressed.
[0059]
Next, the process proceeds to S1401 in FIG. 14, and it is determined whether or not the flag CHANGE F indicating a change in tempo indicates “1” (S1401).
If the flag CHANGE F indicating the change in tempo is not "1", the routine ends without performing any operation. However, if CHANGE F indicates "1", the actual performance elapsed time until this processing is performed. Is stored in the register SABUN (S1402).
[0060]
Then, based on the accumulated time difference data stored in the register SABUN, the value stored in the register TEMPO is changed and rewritten (S1403).
Next, based on the value of this register TEMPO, the value of the minimum unit time that determines the timing cycle for reading the guide data ROM 106 is changed (S1404).
At this time, for example, if T2> T1, the speed at which the user plays is slower than the speed of the tempo value set in advance by the tempo switch, so the value of the register "TEMPO" is changed to be larger, and the guide data is changed. The reading speed of the.
Conversely, if T2 <T1, the value of the register "TEMPO" is changed to be small, so that the reading of the guide data is expedited.
[0061]
When the value of "TEMPO" is changed, the flag CHANGE F is set to "0" (S1405).
Then, the timer T1 for accumulating the "time" value of the guide data and the timer T2 for accumulating the key pressing time are each set to "0" (S1406), and the routine ends.
[0062]
As described above, the processing of FIG. 14 is a part of the keyboard processing, and when the accumulated key pressed for a key displayed as a guide is pressed for a predetermined time (for example, one bar), the tempo of the user during this time is displayed. The difference in tempo set in advance by the tempo switch is obtained, and the reading speed of the guide data is adjusted according to the difference in tempo.
Then, the performance guide is advanced by controlling the reading tempo of the guide data so that the performance can be performed at the user's pace.
[0063]
Again, returning to the processing of S1302, if the flag WAIT F is not “1”, that is, if the key is not in a key press waiting state, the flow shifts to the processing of S1507 in FIG. 15 and the value of the pointer n indicating the key number is changed. Set to “0”.
The state at this time is a state in which the LED of the key to be pressed next time is blinking, and this state has not yet reached the key pressing timing.
[0064]
Next, it is determined whether or not the value of the register NEXT NOTE for storing the note corresponding to the key to be pressed next from the guide data is equal to the value of the pointer n (S1508).
Here, if the note stored in the register NEXT NOTE is equal to the pitch value corresponding to the key number corresponding to the value of the pointer n, it indicates that the key corresponding to the value of the pointer n is in the depressed state. Is set in the register ON (n) (S1509).
[0065]
If the value of the register ON (n) indicates "1", the value of the register VELOCITY for storing the velocity value of the key corresponding to the value of the pointer n when the key is depressed is stored in the guide data in the next time. It is determined whether or not the value of NEXT VELOCITY storing the value of the velocity of the key to be depressed is within the range of the allowable value ± α (S1510).
[0066]
Here, if the value of the register VELOCITY is within the allowable value ± α with respect to the value of the register NEXT VELOCITY, the value of the pointer n indicating the key number is incremented (S1511), and the value of the pointer n is It is determined whether the number exceeds the maximum number (S1512).
Here, if the value of the pointer n does not exceed the maximum number of key numbers, the process returns to S1508 again.
[0067]
In this way, it is determined whether or not the key to be pressed next time has been pressed earlier than the correct key pressing timing for all keys on the keyboard 103, and the key that has been pressed earlier is the key pressing speed (velocity) of the guide data. Is checked to see if it is within the allowable range.
If the value of the pointer n is different from the note stored in the register NEXT NOTE in the process of S1508, the process proceeds to S1521, and the key whose register ON (n) corresponds to the value of the pointer n indicates the pressed state. Check whether it is "1".
At this time, if the value of the pointer (n) is not “1”, that is, if the key corresponding to the value of the pointer (n) is not pressed, the process proceeds to S1511.
However, if the register ON (n) is "1" and a key number n different from the note in the register NEXT NOTE is pressed, the routine ends without doing anything.
In this way, it is also verified whether or not a key that has not been depressed in the event of the guide data is depressed.For example, a key that has not been depressed in the guide data is depressed. When the key is locked, the guide data following the key is not read, so that the key to be pressed continues to blink until the key is correctly pressed.
[0068]
If the register ON (n) is not "1" in the process of S1509, that is, if the key corresponding to the note stored in NEXT NOTE has not been pressed, or the corresponding key has been pressed. Even if the key is pressed, if the key is depressed at a key depressing speed (key depressing intensity) whose velocity is out of the allowable range of the guide data, the routine ends without doing anything.
[0069]
Then, if the value of the pointer n exceeds the maximum number of key numbers in the processing of S1512, the check of the pressed state of all keys on the keyboard 103 is completed.
Then, the blinking guide LED of the key corresponding to the value of the pointer n is turned off (S1513).
Then, after incrementing the address pointer AD (S1514), the guide data indicated by the address pointer AD is read (S1515), and it is determined whether or not the read data indicates "END". (S1516).
[0070]
At this time, if the read data is not “END”, the process proceeds to S1601 in FIG. 16. If the read guide data is “END” indicating the end, the start flag STF Is set to "0" indicating the end of the performance guide (S1517), and all notes being sounded by note-on are turned off and an instruction for mute processing is issued (S1518).
Then, all the blinking / lighting guide LEDs are turned off (S1519), and then the timer T3 of the minimum unit time for reading the guide data is stopped counting (S1520), and this routine ends.
[0071]
As described above, the processing of FIG. 15 is a part of the keyboard processing, and when the LED of the key whose performance is guided is not turned on, that is, when the LED of the key to be pressed next is blinking and displayed. If the user presses a key before it changes to the lit state, the next guide data is read in advance to advance the performance guide without delay.
For example, when the key LED flashes and is in a key press standby state, even if the key is pressed quickly, the key of the key whose performance is guided as described above turns on and the key press timing is reached. In the same manner as in the processing when the key is pressed, the key-depressed / released state and the velocity of the depressed key are sequentially checked over all keys of the keyboard 103, and the next note indicated by the guide data and the allowable Compare with the velocity of the range.
Then, if the next key is correctly pressed only for the key for which the performance of the next key is performed, the LED of the blinking next key is turned off, and the next guide data is read out. Even if the key is not depressed, or even if the key of the next key is guided, even if the key is depressed, the key depressing speed is below the allowable value of the reference velocity recorded in the guide data. If so, it is determined as a performance mistake.
Then, the blinking of the LED of the next key is continued, and the reading of the next succeeding guide data is suspended.
[0072]
Next, in the process of S1601 in FIG. 16, it is determined whether or not the read data indicates an “event”.
If the data read here indicates "event", it is determined whether or not the "part" of the "event" is data indicating "right hand" (S1602).
[0073]
If the “part” of the “event” is data indicating “right hand”, then it is determined whether the “identification code” of the “event” indicates “note-on” (S1603). .
If the “part” of the read “event” is not “right hand”, the read event is converted into a sound generation event (S1610), and the converted data is transmitted to the sound source 108. After instructing a tone signal generation process (S1611), the process returns to S1514 in FIG.
[0074]
On the other hand, if the “identification code” of this “event” indicates “note-on”, the “note” of this “event” was the key to be pressed next time, or the key was pressed earlier than the correct keying timing. It is determined whether the note indicates a “NEXT NOTE” which is a note indicating a key (S1604).
[0075]
If the "note" of this "event" indicates "NEXT NOTE", the register TIME for storing the "time" of the guide data is set to "0" (S1605), and the processing in S1606 is performed. move on.
[0076]
On the other hand, if the data read in the process of S1601 is not “event”, and if the “part” of the “event” read in the process of S1602 is not “right hand”, the “event” read in the process of S1603 If the “identification code” of “” does not indicate “note on”, or if the “note” of the “event” read out in the process of S1604 does not match the note stored in “NEXT NOTE”, If any of the above, the process returns to S1514.
Next, in the process of S1606, the address pointer indicated by the register AD is stored in the register NEXT AD (S1606).
[0077]
Next, the address pointer of the register NEXT AD is incremented (S1607).
Then, the guide data indicated by the address pointer indicated by the NEXT AD is read (S1608), and it is determined whether or not the read guide data indicates "END" (S1609).
[0078]
Here, if the read guide data is not “END”, the flow shifts to the processing of S1701 in FIG.
On the other hand, if the guide data read here indicates “END”, the process returns to S1401 in FIG.
Next, it is determined whether or not the guide data read in the process of S1701 indicates “event”.
If the read guide data indicates "event", it is determined whether the "part" of the "event" is data indicating "right hand" (S1702).
[0079]
If the “part” of the “event” is data indicating “right hand”, it is determined whether or not the “event” indicates “note-on” (S1703).
If this "event" indicates "note-on", the "note" of this "event" is stored in the register NEXT NOTE (S1704), and the process proceeds to S1705.
[0080]
However, if the guide data read in the processing of S1701 is not “event”, the “part” of the “event” of the guide data read in the processing of S1702 is not “right hand”, or If the event of the guide data read out in the process is not “note-on”, the process also returns to the process of S1514 in FIG.
[0081]
Next, in the processing of S1705, the "velocity" of the "event" is stored in the register NEXT VELOCITY.
Then, the guide LED of the key corresponding to the note stored in the register NEXT VELOCITY is blinked (S1706), and the process returns to S1401 in FIG.
As described above, the processing in FIGS. 16 and 17 is a part of the keyboard processing, and even if the key to be pressed next time is correctly pressed, the next guide data is read in advance. The guide process for the next key is further advanced.
[0082]
In the present embodiment, a key displayed as a guide and a key that has been pressed are compared, and the pressed key is all of the keys displayed as a guide, and only the key displayed as a guide is used. Only in some cases, the next performance guide is continued, and when another performance operation is detected, the performance guide is stopped, so that even if the correct key is pressed, other unguided If a key is also pressed at the same time, the guide is not advanced until the key is completely correctly played, so that the user can learn the correct key press.
[0083]
Furthermore, even if a key is depressed only for the key indicated by the guide, the velocity recorded in the guide data is compared with the velocity at the time of depressing the key, and the velocity within the allowable range (key depressing speed) ), The performance guide is continued, but if the pressed velocity does not satisfy the allowable value, the performance guide is not advanced, so the user is prompted to adjust the key touch. be able to.
[0084]
Further, if the guided key is depressed with a proper key touch, the performance tempo of the user may be compared with the tempo specified in advance by the tempo switch, and the error may exceed an allowable value. Even if there is, the configuration is such that the reading speed of the guide data is automatically adjusted to match this user's performance tempo, so the user can learn the correct key operation at his own pace without worrying about the performance tempo. You can concentrate on only.
[0085]
As another embodiment, score display data is stored in the guide data ROM 106, a performance guide is displayed on the guide display unit 107, the score display data is read out, and the score guided by the performance guide is read. They may be displayed at the same time.
In addition, fingering display data is stored in the guide data ROM 106, the performance guide is displayed on the guide display unit 107, the fingering display data is read out, and the fingering image corresponding to the performance guide is simultaneously displayed. You may.
[0086]
Further, the performance guide and the performance evaluation may be instructed to sound by voice or the like.
The present invention is not limited to the above-described embodiment, and may be embodied in other various forms in specific configurations, functions, operations, and effects without departing from the gist thereof.
[0087]
Further, the operation procedure described in the above embodiment can be implemented by being programmed and executed by a computer. At that time, the computer program can be supplied to the computer through a disk-type recording medium such as a hard disk, various memories such as a semiconductor memory or a card-type memory, or various program recording media such as a communication network.
[0088]
【The invention's effect】
As described above, according to the present invention, it is detected whether or not a performance operation has been performed on all of the performance operators provided on the musical instrument, and the performance-guided performance operator to be performed is detected. Is compared with the performance operator whose performance operation has been performed, and the performance operator whose performance is operated is all of the performance operators whose performance is guided, and only the guided performance operator is detected. In such a case, the next performance guide is continued, but if any other performance operation is detected, the performance guide is stopped, so that the user's wrong performance operation or misunderstanding of the performance method can be corrected. it can.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a performance instruction device of the present invention.
FIG. 2 shows a data configuration of guide data stored in a storage area of a guide data ROM shown in FIG.
FIG. 3 is a basic flowchart showing a general processing procedure of the entire operation of the performance instruction apparatus.
FIG. 4 is a flowchart showing details of a subroutine of the SW processing shown in FIG. 3;
FIG. 5 is a flowchart showing details of a subroutine of the tempo SW process shown in FIG. 4;
FIG. 6 is a flowchart (part 1) showing details of a subroutine of the start / stop SW processing shown in FIG. 4;
7 is a flowchart (part 2) showing details of a subroutine of the start / stop SW processing shown in FIG. 4;
FIG. 8 is a flowchart (part 1) showing details of a subroutine of the guide processing shown in FIG. 3;
FIG. 9 is a flowchart (part 2) showing details of a subroutine of the guide processing shown in FIG. 3;
FIG. 10 is a flowchart (part 3) showing details of a subroutine of the guide processing shown in FIG. 3;
FIG. 11 is a flowchart (part 4) showing details of a subroutine of the guide processing shown in FIG. 3;
FIG. 12 is a flowchart (part 1) showing details of a subroutine of the keyboard processing shown in FIG. 3;
FIG. 13 is a flowchart (part 2) illustrating details of a subroutine of the keyboard processing shown in FIG. 3;
FIG. 14 is a flowchart (part 3) showing details of a subroutine of the keyboard processing shown in FIG. 3;
FIG. 15 is a flowchart (part 4) showing details of a subroutine of the keyboard processing shown in FIG. 3;
FIG. 16 is a flowchart (part 5) showing details of a subroutine of the keyboard processing shown in FIG. 3;
FIG. 17 is a flowchart (part 6) showing details of a subroutine of the keyboard processing shown in FIG. 3;
[Explanation of symbols]
101 CPU
102 switch group
103 keys
104 Program ROM
105 Work RAM
106 Guide data ROM
107 Guide display unit
108 sound source
109 sounding circuit

Claims (2)

一連の音高情報を記憶する記憶手段と、
この記憶手段より音高情報を読み出す読出手段と、
この読出手段により読み出された音高情報に基づき、演奏装置に設けられた複数の操作子の中から演奏すべき演奏操作子をガイドする演奏ガイド手段と、
前記複数の演奏操作子夫々に対して演奏操作されたか否かを検出する演奏操作検出手段と、
この演奏操作検出手段により前記演奏装置の全ての演奏操作子に対して演奏操作がなされたか否かの検出が終了した後に、前記演奏ガイド手段によりガイドされた演奏すべき演奏操作子と、前記演奏操作検出手段により演奏操作がなされたと検出された演奏操作子とを比較し、当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであるか否かを判定する判定手段と、
前記判定手段により当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであると判定された場合にのみ、前記記憶手段から次に続く音高情報を読み出すように前記読出手段を制御すると共に、それ以外の演奏操作が検出された場合は前記読出手段の読出し動作を停止するように制御する制御手段と、
を有することを特徴とする演奏指示装置。
Storage means for storing a series of pitch information;
Reading means for reading pitch information from the storage means;
Performance guide means for guiding a performance operator to be played from a plurality of operators provided in the performance device based on the pitch information read by the reading means;
Performance operation detecting means for detecting whether or not a performance operation has been performed for each of the plurality of performance operators;
After the performance operation detecting means completes the detection of whether or not the performance operation has been performed on all the performance operators of the performance device, the performance operator to be played guided by the performance guide means and the performance operator Comparing a performance operator detected that the performance operation has been performed by the operation detection means, and the performance operator detected that the performance operation has been performed is all of the guided performance operators, and Determining means for determining whether or not only the guided performance operator,
When it is determined that the performance operators detected by the determination means to have performed the performance operations are all of the guided performance operators and only the guided performance operators, Control means for controlling the reading means to read the next succeeding pitch information from the storage means, and controlling to stop the reading operation of the reading means when other performance operation is detected. When,
A performance instructing device comprising:
記憶手段に記憶された音高情報を読み出し、この読み出された音高情報に基づいて、演奏装置に設けられた複数の操作子の中から演奏すべき演奏操作子をガイドするステップと、
前記複数の演奏操作子夫々に対して演奏操作されたか否かを検出するステップと、
前記複数の演奏操作子夫々に対して演奏操作がなされたか否かの検出が終了した後に、前記演奏ガイドされた演奏すべき演奏操作子と、前記演奏操作がなされたと検出された演奏操作子とを比較し、当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであるか否かを判定するステップと、
当該演奏操作がなされたことを検出された演奏操作子が、当該ガイドされた演奏操作子の全てであり、且つ、当該ガイドされた演奏操作子のみであると判定された場合にのみ、前記記憶手段から次に続く音高情報を読み出すと共に、それ以外の演奏操作が検出された場合は音高情報の読出し動作を停止するように制御するステップと、
を有することを特徴とする演奏指示処理のプログラム。
Reading the pitch information stored in the storage means, and guiding a performance operator to be played from a plurality of operators provided in the performance device based on the read pitch information;
Detecting whether a performance operation has been performed for each of the plurality of performance operators,
After the detection of whether or not a performance operation has been performed on each of the plurality of performance operators, a performance operator to be played, which is guided by the performance, and a performance operator detected to have performed the performance operation, To determine whether or not the performance operators detected to have performed the performance operation are all of the guided performance operators and only the guided performance operator. Steps and
Only when it is determined that the performance operators detected to have performed the performance operation are all the guided performance operators and only the guided performance operator, the storage operation is performed. Reading the next succeeding pitch information from the means, and controlling to stop the reading operation of the pitch information when other performance operation is detected;
A performance instruction processing program characterized by having:
JP2003007737A 2003-01-16 2003-01-16 Apparatus and processing program for musical performance indication Pending JP2004219778A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003007737A JP2004219778A (en) 2003-01-16 2003-01-16 Apparatus and processing program for musical performance indication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003007737A JP2004219778A (en) 2003-01-16 2003-01-16 Apparatus and processing program for musical performance indication

Publications (1)

Publication Number Publication Date
JP2004219778A true JP2004219778A (en) 2004-08-05

Family

ID=32897743

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003007737A Pending JP2004219778A (en) 2003-01-16 2003-01-16 Apparatus and processing program for musical performance indication

Country Status (1)

Country Link
JP (1) JP2004219778A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006171255A (en) * 2004-12-15 2006-06-29 Casio Comput Co Ltd Performance support device and program for performance support processing
JP2007279568A (en) * 2006-04-11 2007-10-25 Kawai Musical Instr Mfg Co Ltd Electronic musical instrument
JP2015233291A (en) * 2005-02-02 2015-12-24 オーディオブラクス インダストリア エ コメルシオ デ プロデュトス エレトロニコス ソシエダ アノニマ Mobile communication device with music instrumental function

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006171255A (en) * 2004-12-15 2006-06-29 Casio Comput Co Ltd Performance support device and program for performance support processing
JP2015233291A (en) * 2005-02-02 2015-12-24 オーディオブラクス インダストリア エ コメルシオ デ プロデュトス エレトロニコス ソシエダ アノニマ Mobile communication device with music instrumental function
JP2007279568A (en) * 2006-04-11 2007-10-25 Kawai Musical Instr Mfg Co Ltd Electronic musical instrument

Similar Documents

Publication Publication Date Title
JP2006284817A (en) Electronic musical instrument
JP4650182B2 (en) Automatic accompaniment apparatus and program
JP4535015B2 (en) Electronic musical instrument system
JP4424218B2 (en) Electronic music apparatus and computer program applied to the apparatus
JP2004219778A (en) Apparatus and processing program for musical performance indication
JP2006251376A (en) Musical sound controller
JP4054912B2 (en) Fingering instruction device and fingering instruction processing program
JP2007086571A (en) Music information display device and program
JP4561664B2 (en) Electronic musical instrument system
JP2005208154A (en) Musical piece retrieval system and musical piece retrieval program
JPH11102193A (en) Karaoke sing-along machine
JP4534926B2 (en) Image display apparatus and program
JP3475472B2 (en) Fingering state detection device and fingering state navigation device
JP3005915B2 (en) Electronic musical instrument
JP3358568B2 (en) Performance assisting device and recording medium therefor
JP3055554B2 (en) Operation instruction device
JPS61256391A (en) Automatic performer
JP4254656B2 (en) Automatic performance device and program
JP4186353B2 (en) Performance data editing apparatus, performance data editing method, and recording medium
JP2002333877A (en) Playing practice device, method for controlling the playing practice device, program for playing aid and recording medium
JP3345453B2 (en) Automatic performance device
JP4029710B2 (en) Registration data calling device and registration data calling program
JPS6296698U (en)
JPS6237252Y2 (en)
JP2004118165A (en) Hand shape display device, musical performance guiding device, hand shape display program, and musical performance guiding program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090120